Bug 29535 - Поделить NetworkManager-glib
Summary: Поделить NetworkManager-glib
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: NetworkManager-glib (show other bugs)
Version: unstable
Hardware: all Linux
: P3 enhancement
Assignee: Mikhail Efremov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-30 13:54 MSK by Zerg
Modified: 2013-12-11 18:30 MSK (History)
1 user (show)

See Also:


Attachments
apt-get-remove-NetworkManager-glib.txt (38.59 KB, text/plain)
2013-10-30 13:54 MSK, Zerg
no flags Details
NetworkManager.spec.patch (3.47 KB, patch)
2013-10-30 18:07 MSK, Sergey V Turchin
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Zerg 2013-10-30 13:54:31 MSK
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 в имена пакетов?
Comment 1 Mikhail Efremov 2013-10-30 17:03:10 MSK
Я, собственно, давно хотел это сделать (ориентируясь на пакеты в Debian, мне нравится как у них побито). Заодно и обеспечить, чтобы они начинались с lib*, как у нас принято. Так что против такого патча не буду.
А soname в имени... Ну, хуже от этого точно не будет, плюс у нас есть Shared Libs Policy (хоть так и не принятое, кажется).
Comment 2 Sergey V Turchin 2013-10-30 17:28:42 MSK
(В ответ на комментарий №1)
> хуже от этого точно не будет
Для зависимостей будет точно лучше. Ща займусь, тогда.
Comment 3 Sergey V Turchin 2013-10-30 18:07:21 MSK
Created attachment 5983 [details]
NetworkManager.spec.patch

Если что, в моих местах строки типа
Conflicts: NetworkManager-glib <= 0.9.8.8-alt1
корректнее, чем
Conflicts: %name-glib < %version
, но можете использовать свой вариант, если хочется.
Comment 4 Repository Robot 2013-10-30 22:08:17 MSK
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).
Comment 5 Zerg 2013-10-30 23:12:44 MSK
> Drop NetworkManager-glib subpackage.
> Obsoletes: NetworkManager-glib <= 0.9.8.8-alt1
Ай-ай, не надо! Плохо для обновления.
Потом, когда NetworkManager-glib уже ни у кого не будет установлен инсталлятором, можно будет просто выкинуть.
Comment 6 Zerg 2013-10-30 23:19:01 MSK
В моем варианте было всё абсолютно корректно.
Текущий вариант мне не нравится по причинам:
1. Убрано условие в зависимости от версии SONAME, что ухудшает зависимости.
2. Добавлены обсолеты, на библиотеки, вообще не содержащиеся в обсолетящем пакете, что ухудшает зависимости.
Comment 7 Zerg 2013-10-30 23:20:42 MSK
А сплитить NetworkManager-glib-devel я бы не стал. Не вижу особого смысла.
Comment 8 Mikhail Efremov 2013-10-31 15:35:33 MSK
(В ответ на комментарий №6)
> В моем варианте было всё абсолютно корректно.
> Текущий вариант мне не нравится по причинам:
> 1. Убрано условие в зависимости от версии SONAME, что ухудшает зависимости.
> 2. Добавлены обсолеты, на библиотеки, вообще не содержащиеся в обсолетящем
> пакете, что ухудшает зависимости.

Как именно ухудшают?
Задача была снести NetworkManager-glib при обновлении. Я не вижу никакого смысла в виртуальном пакете ни в установленной системе, ни в репозитории (к счастью ни у одного пакета не было зависимости на него).
Conflicts тут не поможет, так только сносит крышу apt. Любой из этих пакетов действительно делает существование старого NetworkManager-glib в системе бессмысленным (а точнее невозможным), что и выражает Obsolets в данном случае. Provides же там нет, разумеется.
И делать Obsolets в зависимости от soname я не вижу никакого смысла. Это будет очень странная конструкция.
Какие именно проблемы возможны в текущей схеме? Я не вижу никаких.

(В ответ на комментарий №7)
> А сплитить NetworkManager-glib-devel я бы не стал. Не вижу особого смысла.

Не надо создавать бардак, если уж распиливать пакет с библиотеками, то и devel-часть тоже. Я бы удивился не найдя libfoo-devel для libfoo.
Comment 9 Sergey V Turchin 2013-10-31 15:43:44 MSK
(В ответ на комментарий №8)
> Как именно ухудшают?
Я полагал, это очевидно.

>ни у одного пакета не было зависимости на него
Зато, он у всех установлен.

> Я не вижу никакого смысла в виртуальном пакете
Там не менее, вы сделали менно его. В моем варианте реальный пакет.

> Conflicts тут не поможет, так только сносит крышу apt.
У меня был самый корректный вариант из возможных.
Comment 10 Sergey V Turchin 2013-12-11 16:52:20 MSK
Вот, к чему привел ваш вариант (обновление с 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
Завершено
Следующие пакеты будут ОБНОВЛЕНЫ:
Comment 11 Repository Robot 2013-12-11 18:26:28 MSK
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.