Bug 39242 - Добавление Suggests в rpm
Summary: Добавление Suggests в rpm
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-11-10 16:08 MSK by Vitaly Lipatov
Modified: 2020-11-11 21:57 MSK (History)
11 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2020-11-10 16:08:35 MSK
Указание Suggests позволило бы мягко указывать, какой пакет поставить при прочих равных.

Например, при установке mediawiki-extensions-PdfHandler 

 # apt-cache depends mediawiki-extensions-PdfHandler выбрался бы конкретный пакет, а не первый попавшийся. В то же время Suggests не мешается, если требуемая зависимость уже установлена.

mediawiki-extensions-PdfHandler-1.35.0-alt4:p9+261266.40.4.1@1604944379
  Требует: </usr/bin/convert>
    ImageMagick-tools-6.9.11.23-alt1:p9+254712.100.2.1@1594661886
    GraphicsMagick-ImageMagick-compat-1.3.30-alt2.1:sisyphus+219907.6600.2.1@1548537237
Comment 1 Anton Farygin 2020-11-10 16:12:46 MSK
поддерживаю, очень нужна эта возможность.
Comment 2 Sergey V Turchin 2020-11-10 16:19:55 MSK
https://fedoraproject.org/wiki/Packaging:WeakDependencies
Comment 3 Dmitry V. Levin 2020-11-10 19:09:46 MSK
Вы пишете про указание Suggests (пакет rpm-build), в примере у вас apt-cache (пакет apt), а баг вешаете на rpm.  Я не понимаю.
Comment 4 Vitaly Lipatov 2020-11-10 19:20:26 MSK
(Ответ для Dmitry V. Levin на комментарий #3)
> Вы пишете про указание Suggests (пакет rpm-build), в примере у вас apt-cache
> (пакет apt), а баг вешаете на rpm.  Я не понимаю.
Исправил на rpm-build.
Как я понимаю, после того, как можно будет добавлять тэг Suggests в пакет, можно будет перейти к apt для его учитывания.
Comment 5 Dmitry V. Levin 2020-11-11 12:54:58 MSK
Поскольку перспективы добавления поддержки чего-либо в apt сейчас более чем туманны, я предлагаю подождать, пока они прояснятся.
Comment 6 Vitaly Lipatov 2020-11-11 15:53:34 MSK
(Ответ для Dmitry V. Levin на комментарий #5)
> Поскольку перспективы добавления поддержки чего-либо в apt сейчас более чем
> туманны, я предлагаю подождать, пока они прояснятся.

Да, но если из апстрим в rpm приедет поддержка Suggestions, то их можно было было бы поддерживать помимо rpm (типа сначала ставить все suggestions из rpm-пакетов, а потом уже аптом ставить пакеты). Это было бы полезно для разрешаторов неоднозначных зависимостей, которые сейчас всё равно вне apt находятся.

В общем, видимо, это бага пока будет просто для новостей по теме...
Comment 7 mikhailnov 2020-11-11 16:15:28 MSK
(Ответ для Vitaly Lipatov на комментарий #6)
> Это было бы полезно для
> разрешаторов неоднозначных зависимостей, которые сейчас всё равно вне apt
> находятся.
А о каких резрешаторах вне apt речь?
Comment 8 mikhailnov 2020-11-11 16:16:33 MSK
Помимо rpm-build, понадобится поддержка в генераторе метаданных, чтобы дополнительные разрешаторы могли этим пользоваться.
Comment 9 Andrey Cherepanov 2020-11-11 17:34:39 MSK
(Ответ для Михаил Новоселов на комментарий #7)
> (Ответ для Vitaly Lipatov на комментарий #6)
> > Это было бы полезно для
> > разрешаторов неоднозначных зависимостей, которые сейчас всё равно вне apt
> > находятся.
> А о каких резрешаторах вне apt речь?

Об интерактивных оболочках: synaptic, packageinstall, alterator-pkg, alterator-packages, packageinstall, PackageKit. Пожалуйста, реализуйте во всех указанных пакетах хуки интерактивного выбора.
Comment 10 mikhailnov 2020-11-11 17:38:56 MSK
В апстримном rpm нет никаких хуков интерактивного выбора, там либо в пакетном менеджере включена установка мягких зависимостей, либо нет. Как и нет вопросов, что сделать с изменившимся %config, в отличие от dpkg.
Comment 11 Andrey Cherepanov 2020-11-11 17:41:05 MSK
(Ответ для Михаил Новоселов на комментарий #10)
> В апстримном rpm нет никаких хуков интерактивного выбора, там либо в
> пакетном менеджере включена установка мягких зависимостей, либо нет. Как и
> нет вопросов, что сделать с изменившимся %config, в отличие от dpkg.

В таком случае ценность подобного решения крайне сомнительна.
Comment 12 mikhailnov 2020-11-11 17:43:16 MSK
(Ответ для Andrey Cherepanov на комментарий #11)
> (Ответ для Михаил Новоселов на комментарий #10)
> > В апстримном rpm нет никаких хуков интерактивного выбора, там либо в
> > пакетном менеджере включена установка мягких зависимостей, либо нет. Как и
> > нет вопросов, что сделать с изменившимся %config, в отличие от dpkg.
> 
> В таком случае ценность подобного решения крайне сомнительна.

Это вполне решит то, что хочет решить Виталий.

Suggests прописывается не в тех пакетах, которые участвуют в выборе, а в неком стороннем пакете, который может быть установлен. Решение о выборе должно приниматься штатным резолвером зависимостей на основе анализа всех метаданных подключенных репозиториев, делать какие-то сторонние выборы в обход apt сомнительно, т.к. потребует изобрести велосипедный разрешатель зависимостей, по функционалу фактически дублирующий apt, а результаты их выбора могут оказаться разными.
Comment 13 mikhailnov 2020-11-11 17:46:28 MSK
Suggests вообще не требуется для какого-то интерактивного выбора между альтернативами, мне кажется. Сейчас известно, что 2 пакета предоставляют /usr/bin/convert, этой информации достаточно для дачи пользователю возможности интерактивного выбора.
Suggests рулит выбором по умолчанию, кажется, в apt где-то были списки приоритетов, поставляемые конфигами, если я не путаю и они правда есть, то Suggests - примерно то же самое, но реализованное иначе.
Comment 14 Vitaly Lipatov 2020-11-11 21:57:44 MSK
(Ответ для Михаил Новоселов на комментарий #7)
> (Ответ для Vitaly Lipatov на комментарий #6)
> > Это было бы полезно для
> > разрешаторов неоднозначных зависимостей, которые сейчас всё равно вне apt
> > находятся.
> А о каких резрешаторах вне apt речь?
Ну вообще я имел в виду установку пакетов в hasher и у меня ещё есть похожая штука rpmreqs в etersoft-build-utils, которая выводит список зависимостей, разрешённый в названия пакетов.