Bug 7315

Summary: Dependencies out of established module paths
Product: Sisyphus Reporter: Mikhail Zabaluev <mhz>
Component: rpm-build-perlAssignee: at <at>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: minor    
Priority: P2 CC: at, crux, ldv, viy
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 7253    

Description Mikhail Zabaluev 2005-07-07 10:31:27 MSD
Сборка gtk-doc дает зависимость на perl(gtkdoc-common.pl).
gtkdoc-common.pl содержится в том же пакете и лежит в /usr/share/gtk-doc/data/



Expected Results:  
Зависимость на скрипт вне путей поиска модулей perl не должна возникать.
Comment 1 Kachalov Anton 2005-07-07 11:00:54 MSD
Тут всё ещё хуже.
Дело в том, что perl-овые скрипты делают:
unshift @INC, '/usr/share/gtk-doc/data';
require "gtkdoc-common.pl"
Сам же gtkdoc-common.pl не является пакетом или чем бы то ни было ещё. Это
просто файл с функциями. Не провайдить же все перловые файлы, которые не
являются пакетами или чем-то, что ищется perl.prov'ом. Просто в этом случае,
gtk-doc начнёт провайдить:
perl(gtkdoc-common.pl)
perl(gtkdoc-mktmpl)
...
Можно добавить доп. логику и отрезать /usr/bin и /usr/lib/perl5. Но это жуткий
костыль. Проще зафиксить gtk-doc, ибо он кривой. Если глянуть в соседние дистры,
то там есть хаки, которые пытаются вырезать эту зависимость. Зафиксить сам
gtk-doc - это час работы. Нужно всего-лишь сделать из gtkdoc-common.pl пакет и
поправить скрипты. Честно говоря - это проще.
Comment 2 Mikhail Zabaluev 2005-07-07 23:52:55 MSD
(In reply to comment #1)
> Можно добавить доп. логику и отрезать /usr/bin и /usr/lib/perl5. Но это жуткий
> костыль. Проще зафиксить gtk-doc, ибо он кривой. Если глянуть в соседние дистры,
> то там есть хаки, которые пытаются вырезать эту зависимость. Зафиксить сам
> gtk-doc - это час работы. Нужно всего-лишь сделать из gtkdoc-common.pl пакет и
> поправить скрипты. Честно говоря - это проще.

На каждый чих не накрестишься.
Насколько я помню, в предыдущей инкарнации perl.req в зависимости записывались
только те файлы, которые находились в @INC по умолчанию. В этом оригинальный
смысл зависимости perl(blahblah.pm): blahblah.pm должен включаться без
модификации @INC. Вдобавок, это избавляло от зависимостей на модули, заведомо
отсутствующие в дистрибутиве или на платформе (поскольку еще не было разработано
надежного средства выявить условный use/require).
Comment 3 Dmitry V. Levin 2007-04-07 20:49:06 MSD
Это ещё актуально?
Comment 4 at@altlinux.org 2007-04-07 22:26:07 MSD
Это ещё актуально.
Я не знаю, что с этим делать, и пока склонен оставить всё как есть.
Зависимость на perl(gtkdoc-common.pl) генерируется правильно.
Сейчас не существует хорошего способа узнать, что gtk-doc.pl на самом деле лежит
в каком-то левом месте.  Чтобы для gtkdoc-common.pl добавлялся также и provides,
можно использовать _perl_lib_path.
Comment 5 at@altlinux.org 2007-10-02 22:25:47 MSD
Hopefully fixed in rpm-build-perl-0.6.5.
Please try to remove "Provides: perl(gtkdoc-common.pl)".