Summary: | Паразитные зависимости | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey V Turchin <zerg> |
Component: | rpm-build-ruby | Assignee: | majioa <majioa> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | blocker | ||
Priority: | P3 | CC: | 3aHyga, aen, at, cas, evg, iv, ldv, majioa, rider, shaba |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 36362 |
Description
Sergey V Turchin
2019-03-21 09:55:22 MSK
В общем, у меня вся сборка встала. :-( http://git.altlinux.org/tasks/225168/build/100/x86_64/log : > Ruby requires detection for qt5-webkit-devel > Require calculation results: > qt5-webkit = 5.212.0-alt10 > ruby(2.5.0) Да, это rpm-build-ruby. http://git.altlinux.org/gears/r/rpm-build-ruby.git?p=rpm-build-ruby.git;a=blob;f=ruby.req;h=d42e0650609f572c95cd2e43659f15819496e775;hb=c691655fd8cc63d061aa904e696e4341b868654f#l83 > def pkgname > ENV['RPM_SUBPACKAGE_NAME'].gsub(/(-doc|-devel)$/, '') > end (В ответ на комментарий №3) > Да, это rpm-build-ruby. > nbr с сегодняшнего дня в отпуске на неделю. (In reply to comment #4) > (В ответ на комментарий №3) > > Да, это rpm-build-ruby. > > > > nbr с сегодняшнего дня в отпуске на неделю. Автор этого волшебного скрипта, похоже, всё таки Pavel Skrylev <majioa@altlinux.org>: http://git.altlinux.org/gears/r/rpm-build-ruby.git?p=rpm-build-ruby.git;a=commit;h=8380213a8681d72a342d569e97e44a28af734393 Похоже, любой пакет, в сборочный чрут которого попадает rpm-build-ruby, получает зависимость на ruby(2.5.0) и такой вот pkgname: > ENV['RPM_SUBPACKAGE_NAME'].gsub(/(-doc|-devel)$/, '') Вообще любой. В числе невинно пострадавших, например, libwebkit2gtk и perl-prelude. > Похоже, любой пакет, в сборочный чрут которого попадает rpm-build-ruby,
> получает зависимость на ruby(2.5.0) и такой вот pkgname:
>
> > ENV['RPM_SUBPACKAGE_NAME'].gsub(/(-doc|-devel)$/, '')
>
Не в любой, а тот, который был оформлен как руби и тот, который содержит исполняемые библиотеки (.so), которые собственно и крепятся к ruby.
а зачем в нерубишных пакетах rpm-build-ruby?
2ldv: эту проблему надо решать каким-то другим способом, например включив автору сего чудного пакета жёсткий ревью всех его изменений. Павел, вы не делаете разницы между ruby и не-ruby в своём rpm-build-ruby. Мало ли зачем прилетит rpm-build-ruby в систему - причин может быть множество и одна из них - сборка пакетов на ruby. НО зачем при этом ломать зависимости других, не имеющих отношения к ruby пакетов ? (In reply to comment #7) > 2ldv: эту проблему надо решать каким-то другим способом, например включив > автору сего чудного пакета жёсткий ревью всех его изменений. > > Павел, вы не делаете разницы между ruby и не-ruby в своём rpm-build-ruby. Мало > ли зачем прилетит rpm-build-ruby в систему - причин может быть множество и одна > из них - сборка пакетов на ruby. НО зачем при этом ломать зависимости других, > не имеющих отношения к ruby пакетов ? Антон, вы за языком следите иногда или нет?) У меня в рубишных пакетах все норм, зачем вставлять в нерубишные пакеты rpm-build-ruby мне не известно по сю пору. Павел, ну сделайте тогда так, что бы rpm-build-ruby нельзя было поставить в систему, в которой он не нужен. Не забудьте только при этом о существовании пакетов, в которых есть код как на ruby, так и на других языках программирования. (В ответ на комментарий №6) > а зачем в нерубишных пакетах rpm-build-ruby? Например, есть src-пакет pkg, из которого собираются pkg-ruby-scripts, libpkg и pkg-devel, при этом бинарного пакета pkg нет. (В ответ на комментарий №8) > зачем вставлять в нерубишные пакеты rpm-build-ruby мне не известно по сю пору. Это не важно. Ваш пакет не должен никому мешать даже при сборке на локальной системе с всегда установленным rpm-build-ruby. (In reply to comment #6) > > Похоже, любой пакет, в сборочный чрут которого попадает rpm-build-ruby, > > получает зависимость на ruby(2.5.0) и такой вот pkgname: > > > > > ENV['RPM_SUBPACKAGE_NAME'].gsub(/(-doc|-devel)$/, '') > > > > Не в любой, а тот, который был оформлен как руби и тот, который содержит > исполняемые библиотеки (.so), которые собственно и крепятся к ruby. Действительно, я погорячился. Зависимость на ruby(<version>) получает любой пакет, в сборочной среде которого есть rpm-build-ruby, а в пакете -- хоть один файл с расширением `.so`. Павел, я прошу Вас признать баг и сообщить, какие шаги будут предприняты для его исправления. Также сообщите, если Вам нужна помощь. Спасибо. (In reply to comment #12) > (In reply to comment #6) > > > Похоже, любой пакет, в сборочный чрут которого попадает rpm-build-ruby, > > > получает зависимость на ruby(2.5.0) и такой вот pkgname: > > > > > > > ENV['RPM_SUBPACKAGE_NAME'].gsub(/(-doc|-devel)$/, '') > > > > > > > Не в любой, а тот, который был оформлен как руби и тот, который содержит > > исполняемые библиотеки (.so), которые собственно и крепятся к ruby. > > Действительно, я погорячился. Зависимость на ruby(<version>) получает любой > пакет, в сборочной среде которого есть rpm-build-ruby, а в пакете -- хоть один > файл с расширением `.so`. > > Павел, я прошу Вас признать баг и сообщить, какие шаги будут предприняты для > его исправления. Также сообщите, если Вам нужна помощь. Спасибо. Для сравнения пример python3.req.files http://git.altlinux.org/gears/r/rpm-build-python3.git?p=rpm-build-python3.git;a=blob;f=rpm-build-python3/python3.req.files;h=662da46a519d6dcab1dfa3f165f029f7e072a996;hb=HEAD#l47 Рассматриваются только *.so в особых питоновских путях: is_python3_path "$f" || continue case "$t" in # shortcut for possible python3 extensions *ELF*" shared object"*) echo "$f" continue ;; esac (В ответ на комментарий №13) > Рассматриваются только *.so в особых питоновских путях: Так же это всё равно не повод ставить зависимость на отсутствующий пакет. (In reply to comment #12) > (In reply to comment #6) > > > Похоже, любой пакет, в сборочный чрут которого попадает rpm-build-ruby, > > > получает зависимость на ruby(2.5.0) и такой вот pkgname: > > > > > > > ENV['RPM_SUBPACKAGE_NAME'].gsub(/(-doc|-devel)$/, '') > > > > > > > Не в любой, а тот, который был оформлен как руби и тот, который содержит > > исполняемые библиотеки (.so), которые собственно и крепятся к ruby. > > Действительно, я погорячился. Зависимость на ruby(<version>) получает любой > пакет, в сборочной среде которого есть rpm-build-ruby, а в пакете -- хоть один > файл с расширением `.so`. > > Павел, я прошу Вас признать баг и сообщить, какие шаги будут предприняты для > его исправления. Также сообщите, если Вам нужна помощь. Спасибо. Павел, исправьте это, пожалуйста, незамедлительно. Спасибо. Если в пакете нет надобности в сборке руинов, мягко говоря, добавлять туда его сборочный пакет неумно. Это касается и пакета qt5-webkit, который у меня заняв хешерницу на весь день успешно собрался и без оного пакета. Что касается пакета rpm-build-ruby, так если он добавлен, то он думает, что нужно сопроводителю как-то анализировать файлы на предмет руби зависимостей. Хотя сегодняшнею сборкою rpm-build-ruby я и поправил это автодобавление. Однако, я все ещё считаю, что сопроводителям, не следует добвалять абы что в свои сборочные зависимости, хотя бы потому, что это добавляет мусора, которого во множестве спеков и сборок и так предостаточно. Но в ближайшее время я вообще выпилю из него анализ пакетов не имеющих отношение к руби подсистеме, почти целиком переписав определялку рубинозависимых пакетов. Добавлять в пакет A-devel зависимость на несуществующий пакет A неправильно в любом случае, вне зависимости от ruby. Поскольку у вас нет возможности узнать, существует ли пакет A, то не добавляйте такую зависимость. Вы, наверное, не хотите, чтобы я резал пакет rpm-build-ruby скальпелем, поэтому, пожалуйста, сделайте это самостоятельно. На данный момент попадание пакета rpm-build-ruby в сборочную среду нижеперечисленных исходных пакетов приводит к добавлению паразитной зависимости на несуществующие пакеты: ImageMagick allegro4.4 bro cal3d clamav googletest hiredis icu itpp kde4-python kf5-kconfigwidgets kf5-kiconthemes kf5-kjs kf5-kjsembed libcangjie libevent2.1 libfltk13 libgcrypt libgloox libgphoto2 libjemalloc2 libpcap libpng16 libredblack librtmidi libsixel mariadb mnogosearch mono oniguruma opencdk openssl1.1 pcre perl pympi qt5-base qt5-declarative qt5-webengine qt5-xmlpatterns rasqal scorep smokegen torque unixODBC wayland Например, при пересборке пакета pcre у пакета libpcre-devel появляется зависимость на несуществующий пакет libpcre. rpm-build-ruby-1:1.0.0-alt4 -> sisyphus: Thu Mar 21 2019 Dmitry V. Levin <ldv@altlinux> 1:1.0.0-alt4 - NMU. - Removed injection of parasite dependencies (closes: #36325). У ImageMagick, кстати, нет прямой сборочной зависимости на rpm-build-ruby. Да и $ curl -s http://git.altlinux.org/beehive/logs/Sisyphus-x86_64/latest/success/ImageMagick-6.9.10.33-alt1|grep -i ruby Ничего не показывает. Но зависимость на rpm-build-ruby есть у libruby-devel. (In reply to comment #20) > У ImageMagick, кстати, нет прямой сборочной зависимости на rpm-build-ruby. Это хорошо. У pcre тоже нет. Я просто привёл (неполный) список исходных пакетов, которые получили бы анметы, если бы rpm-build-ruby попал к ним в сборочную среду. По результатам последней тестовой пересборки rpm-build-ruby попадал в сборочную среду следующих пакетов, не считая *ruby* и gem-*: $ echo rpm-build-ruby | join -11 -22 -o2.1 - /beehive/stats/Sisyphus-x86_64/ufb-2 |grep -Ev '^gem-|ruby' alexandria asciidoctor calligra chef chef-zero erubis fluentd flvtool2 fog foreman geos github2spec gwyddion kde4-amarok kde4webdev kde5-kaddressbook kde5-libkdcraw kf5-plasma-framework libcaca libdmtx libprelude libstfl0 libwebkitgtk4 maruku mustache nokogiri-gemspec obexftp ohai opennebula opennebula-context pcs perl-Devel-Cover puma puppet puppetdb puppetserver qt4-webkit qt5-webkit rake-compiler rdiscount redcloth rhc ronn sdoc sprockets swig taskjuggler thor unicorn userblocker vim voodoo weechat xapian-bindings Из этого списка надо получить список пакетов, собранных после появления нового rpm-build-ruby в репозитории и отправить их на простую пересборку. Но лучше, конечно, пересмотреть список сборочных зависимостей этих пакетов. наверняка в ряде случаев данная зависимость является паразитной и её удаление не приведёт к ошибкам сборки. (В ответ на комментарий №21) > (In reply to comment #20) > > У ImageMagick, кстати, нет прямой сборочной зависимости на rpm-build-ruby. > > Это хорошо. У pcre тоже нет. > Я просто привёл (неполный) список исходных пакетов, которые получили бы анметы, > если бы rpm-build-ruby попал к ним в сборочную среду. > > По результатам последней тестовой пересборки rpm-build-ruby попадал в сборочную > среду следующих пакетов, не считая *ruby* и gem-*: На самом деле уже попало в сизиф, например libwebkitgtk4. Можно ли вычислить это в сизифе и отправить на пересборку? |