Summary: | apt ставит лишние пакеты в сборочный чрут | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | at <at> |
Component: | apt | Assignee: | placeholder <placeholder> |
Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | boyarsh, glebfm, imz, ktirf, ldv, placeholder |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | 4753 | ||
Bug Blocks: |
Description
at@altlinux.org
2008-01-21 17:55:51 MSK
Дело в том, что $ rpmquery -R gtk-doc |fgrep scrollkeeper scrollkeeper Точно. С другой стороны, [builder@people .in]$ rpm -q --whatrequires scrollkeeper warning: no package requires scrollkeeper [builder@people .in]$ rpm -qR gtk-doc |grep scrollkeeper scrollkeeper [builder@people .in]$ Зависимость на scrollkeeper в gtk-doc прописана так: Requires(post,postun): scrollkeeper То есть требуется только для запуска макросов %update_scrollkeeper и %clean_scrollkeeper, а для работы не требуется. При этом мкросы раскрываются как $ rpm --eval %update_scrollkeeper [ -x /usr/bin/scrollkeeper-update ] && /usr/bin/scrollkeeper-update -q ||: $ rpm --eval %clean_scrollkeeper [ "$1" = 0 -a -x /usr/bin/scrollkeeper-update ] && /usr/bin/scrollkeeper-update -q ||: $ То есть у них тоже необязательный запуск. А теперь внимание, сюрприз: $ rpm -qf /usr/bin/scrollkeeper-update librarian-0.7.0-alt6 $ rpm -qR librarian |grep scrollk $ Казалось бы, при чем здесь scrollkeeper. Я всё больше склоняюсь к мысли, что нужно сделать (безусловный) автоматический поиск зависимостей в %post/%pre скриптах, а вручную зависимости _вообще_ не писать. А макросы для %pre/%post скриптов можно написать достаточно аккуратно, чтобы зависимости искались как надо (или, наоборот, не искались, как следовало бы сделать в данном случае). $ sudo apt-get install scrollkeeper Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: libscrollkeeper The following packages will be REMOVED: gnumeric librarian yelp The following NEW packages will be installed: libscrollkeeper scrollkeeper 0 upgraded, 2 newly installed, 3 removed and 1 not upgraded. Need to get 0B/272kB of archives. After unpacking 30.9MB disk space will be freed. Do you want to continue? [Y/n] Что-то бред какой-то. [at@people RPMS]$ hsh-install gnumeric librarian yelp scrollkeeper Reading Package Lists... Building Dependency Tree... Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: librarian: Obsoletes: scrollkeeper (< 0.3.14.rarian) scrollkeeper: PreDepends: libscrollkeeper (= 0.3.14-alt12) Depends: libscrollkeeper.so.0()(64bit) E: Broken packages hsh-install: failed to calculate package file list. hsh-install: Failed to generate package file list. [at@people RPMS]$ (In reply to comment #2) > А теперь внимание, сюрприз: > > $ rpm -qf /usr/bin/scrollkeeper-update > librarian-0.7.0-alt6 > $ rpm -qR librarian |grep scrollk > $ > > Казалось бы, при чем здесь scrollkeeper. > > $ sudo apt-get install scrollkeeper > Reading Package Lists... Done > Building Dependency Tree... Done > The following extra packages will be installed: > libscrollkeeper > The following packages will be REMOVED: > gnumeric librarian yelp > The following NEW packages will be installed: > libscrollkeeper scrollkeeper > 0 upgraded, 2 newly installed, 3 removed and 1 not upgraded. > Need to get 0B/272kB of archives. > After unpacking 30.9MB disk space will be freed. > Do you want to continue? [Y/n] > > Что-то бред какой-то. > > [at@people RPMS]$ hsh-install gnumeric librarian yelp scrollkeeper > Reading Package Lists... > Building Dependency Tree... > Some packages could not be installed. This may mean that you have > requested an impossible situation or if you are using the unstable > distribution that some required packages have not yet been created > or been moved out of Incoming. > The following information may help to resolve the situation: > > The following packages have unmet dependencies: > librarian: Obsoletes: scrollkeeper (< 0.3.14.rarian) > scrollkeeper: PreDepends: libscrollkeeper (= 0.3.14-alt12) > Depends: libscrollkeeper.so.0()(64bit) > E: Broken packages > hsh-install: failed to calculate package file list. > hsh-install: Failed to generate package file list. > [at@people RPMS]$ 2ktirf: Что делают в Сизифе пакеты *scrollkeeper*? Кстати вызов %update_scrollkeeper происходит для пакета gtk-doc-manual: %post manual %update_scrollkeeper %postun manual %clean_scrollkeeper А зависимость на scrollkeeper стоит в пакете gtk-doc. Как бы всю эту лавочку разом прикрыть. Потому что людишки когда вручную пишут ошибаются безбожно, да и сам я аз есмь тово. $ rpm -q --scripts gtk-doc $ rpm -qR gtk-doc |grep scrollk scrollkeeper $ gtk-doc не должен содержать вызовы этих скриптов и требовать scrollkeeper, это отдельный баг. Что касается взаимоотношений librarian и scrollkeeper, они просты: librarian - это нестабильное замещение scrollkeeper, с предоставлением обратной совместимости по вызовам. Scrollkeeper потихоньку доживает свой век, но пока стабильнее, чем librarian; кроме того, librarian нет в бранче, есть только scrollkeeper. |