Created attachment 5982 [details] apt-get-remove-NetworkManager-glib.txt apt-get-remove NetworkManager-glib приводит к Следующие пакеты имеют неудовлетворенные зависимости: jdom: Требует: jaxen jetty-annotations: Требует: jetty-plus (= 8.1.5-alt4_6jpp7.qa1) E: Извините, `битые' пакеты Предлагаю разделить каждую библиотеку в отдельный подпакет, чтобы исключить из ситуации остальные зависимые пакеты, облегчив задачу apt-у. Если мантейнер не против, я могу сделать spec.patch . Вопрос только, делать проще или включать версии soname в имена пакетов?
Я, собственно, давно хотел это сделать (ориентируясь на пакеты в Debian, мне нравится как у них побито). Заодно и обеспечить, чтобы они начинались с lib*, как у нас принято. Так что против такого патча не буду. А soname в имени... Ну, хуже от этого точно не будет, плюс у нас есть Shared Libs Policy (хоть так и не принятое, кажется).
(В ответ на комментарий №1) > хуже от этого точно не будет Для зависимостей будет точно лучше. Ща займусь, тогда.
Created attachment 5983 [details] NetworkManager.spec.patch Если что, в моих местах строки типа Conflicts: NetworkManager-glib <= 0.9.8.8-alt1 корректнее, чем Conflicts: %name-glib < %version , но можете использовать свой вариант, если хочется.
NetworkManager-0.9.8.8-alt2 -> sisyphus: * Wed Oct 30 2013 Mikhail Efremov <sem@altlinux> 0.9.8.8-alt2 - Move all development documentation to the devel-doc subpackage. - Split NetworkManager-glib-devel too. - Split NetworkManager-glib subpackage (by zerg@) (closes: #29535).
> Drop NetworkManager-glib subpackage. > Obsoletes: NetworkManager-glib <= 0.9.8.8-alt1 Ай-ай, не надо! Плохо для обновления. Потом, когда NetworkManager-glib уже ни у кого не будет установлен инсталлятором, можно будет просто выкинуть.
В моем варианте было всё абсолютно корректно. Текущий вариант мне не нравится по причинам: 1. Убрано условие в зависимости от версии SONAME, что ухудшает зависимости. 2. Добавлены обсолеты, на библиотеки, вообще не содержащиеся в обсолетящем пакете, что ухудшает зависимости.
А сплитить NetworkManager-glib-devel я бы не стал. Не вижу особого смысла.
(В ответ на комментарий №6) > В моем варианте было всё абсолютно корректно. > Текущий вариант мне не нравится по причинам: > 1. Убрано условие в зависимости от версии SONAME, что ухудшает зависимости. > 2. Добавлены обсолеты, на библиотеки, вообще не содержащиеся в обсолетящем > пакете, что ухудшает зависимости. Как именно ухудшают? Задача была снести NetworkManager-glib при обновлении. Я не вижу никакого смысла в виртуальном пакете ни в установленной системе, ни в репозитории (к счастью ни у одного пакета не было зависимости на него). Conflicts тут не поможет, так только сносит крышу apt. Любой из этих пакетов действительно делает существование старого NetworkManager-glib в системе бессмысленным (а точнее невозможным), что и выражает Obsolets в данном случае. Provides же там нет, разумеется. И делать Obsolets в зависимости от soname я не вижу никакого смысла. Это будет очень странная конструкция. Какие именно проблемы возможны в текущей схеме? Я не вижу никаких. (В ответ на комментарий №7) > А сплитить NetworkManager-glib-devel я бы не стал. Не вижу особого смысла. Не надо создавать бардак, если уж распиливать пакет с библиотеками, то и devel-часть тоже. Я бы удивился не найдя libfoo-devel для libfoo.
(В ответ на комментарий №8) > Как именно ухудшают? Я полагал, это очевидно. >ни у одного пакета не было зависимости на него Зато, он у всех установлен. > Я не вижу никакого смысла в виртуальном пакете Там не менее, вы сделали менно его. В моем варианте реальный пакет. > Conflicts тут не поможет, так только сносит крышу apt. У меня был самый корректный вариант из возможных.
Вот, к чему привел ваш вариант (обновление с p7 до Sisyphus): file /usr/lib64/libnm-util.so.2.4.0 from install of libnm-util2-0.9.8.8-alt3 conflicts with file from package NetworkManager-glib-0.9.8.8-alt2.M70P.1 file /usr/lib64/libnm-glib.so.4.6.0 from install of libnm-glib4-0.9.8.8-alt3 conflicts with file from package NetworkManager-glib-0.9.8.8-alt2.M70P.1 E: Ошибка во время исполнения транзакции P.S. Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Подсчет обновлений... Starting Starting 2 Investigating libsasl2-3 Package libsasl2-3 has broken dep on libsasl2 Considering libsasl2 1 as a solution to libsasl2-3 3 Added libsasl2 to the remove list Fixing libsasl2-3 via remove of libsasl2 Investigating nxclient Package nxclient has broken dep on libfreetype.so.6()(64bit) Considering libfreetype 6 as a solution to nxclient 0 Removing nxclient rather than change libfreetype.so.6()(64bit) Investigating i586-libsasl2.32bit Package i586-libsasl2.32bit has broken dep on libsasl2 Considering libsasl2 1 as a solution to i586-libsasl2.32bit 0 Removing i586-libsasl2.32bit rather than change libsasl2 Investigating libgraphite2 Package libgraphite2 has broken dep on graphite2 Considering graphite2 1 as a solution to libgraphite2 -1 Holding Back libgraphite2 rather than change graphite2 Done Завершено Следующие пакеты будут ОБНОВЛЕНЫ:
NetworkManager-0.9.8.8-alt4 -> sisyphus: * Wed Dec 11 2013 Mikhail Efremov <sem@altlinux> 0.9.8.8-alt4 - Fix 'Obsoletes' tags (closes: #29535). - Support build with bluez5. - Patches from upstream git: + agents: fix crash in nm_secret_agent_cancel_secrets() (rh #922855). + agents: fix removing requests from hash table while iterating it.