Не пишите, пожалуйста, в этот список рассылки html-only письма, если хотите, чтобы их можно было нормально прочесть. On Fri, Oct 26, 2018 at 03:55:20PM +0400, Alexey Sheplyakov wrote: >
Привет!
 
23.10.2018, 15:03, "Ivan A. Melnikov" <iv@altlinux.org>:
> Привет,
>
> Хочу рассказать вам одну историю. Букв много, мораль не ясна,
> так что можете не читать это всё.
>
> Не так давно в Сизифе перестал пересобираться пакет sssd: падали
> два теста[0]. Проблему можно воспроизвести и сейчас, забрав из
> архивов sssd-1.16.3-alt1.S1.src.rpm. Вчерашняя сборка
> sssd-2.0.0-alt1.src.rpm проблеме не подвержена.
>
> asheplyakov@, собиравший 1.16.3-alt1 и исправлявший как раз
> эти два теста, посмотрел на проблему и сказал, что в сборочной
> среде во время пересборки не был смонтирован /proc. Тем временем,
> BR: /proc в спеке, естественно, был.
>
> Дальше веселее: оказывается, sssd-1.16.3-alt1.S1.src.rpm
> пересобирается в сизифном хешере самa по себе, но не пересобирается
> с --query-repackage. Это странно: мне казалось, что на пакеты,
> собираетмые в Сизиф из gear, --query-repackage не должен
> значимо влиять, однако он, очевидно, влиял.
>
> В логах hsh --verborse --query-repackage sssd-1.16.3-alt1.S1.src.rpm
> нашёлся такой фрагмент:
>
>   Building for target x86_64
>   Wrote: /usr/src/in/nosrpm/sssd-1.16.3-alt1.nosrc.rpm
>   hsh-rebuild: sssd-1.16.3-alt1.S1.src.rpm: created src.rpm file.
>   hsh-rebuild: sssd-1.16.3-alt1.S1.src.rpm: fetched build dependencies.
>   hsh-rebuild: sssd-1.16.3-alt1.S1.src.rpm: calculated build dependencies:
>   hsh-rebuild: calculated mount points:
>   hsh-rebuild: fetched installed file dependencies.
>   hsh-rebuild: calculated mount points:
>
> Куда же пропали все зависимости? Оказывается, haser пытается получить
> их вот так[1]:
>
>   rpmquery -pR -- "\${@%.src.rpm}".*src.rpm
>
> ну то есть выполняется команда
>
>   rpmquery -pR -- sssd-1.16.3-alt1.S1.*src.rpm
>
> Однако release у sssd на самом деле alt1%ubt, что в современных
> реалиях раскрывается в просто alt1, и файлов, соответствующих
> шаблону sssd-1.16.3-alt1.S1.*src.rpm просто нет.
>
> Добавьте к этому фишку rpmquery: она умеет раскрывать шаблоны
> имён файлов сама, и если ни один файл не попал под шаблон, не
> считает это ошибкой:
>
>   $ rpmquery -pR foo; echo "exit code: $?"
>   error: open of foo failed: No such file or directory
>   exit code: 1
>   $ rpmquery -pR 'foo*'; echo "exit code: $?"
>   exit code: 0
>
> В итоге хешер считает, что у пакета просто нет зависимостей.
> Однако к этому времени в чруте уже достаточно всего чтобы у
> sssd прошёл ./configure, и сброка падает только на тестах.
>
> В новой сборке sssd %ubt в релизе уже нет, так что ежедневная
> пересборка должна проходить успешно.
>
> Вот такая вот история. Много букв, мораль не ясна.
 
 
Мораль-то как раз ясна.
 
1) Принудительная замена %ubt на %nil (кроме свего прочего) сломала пересборку
пакетов, которые а) используют %ubt, б) требуют  /proc для сборки.  Это изменение
крайне необдуманное и несвоевременное. Нужно его отменить, и от %ubt уходить
постепенно (если будет показана польза/необходимость такого ухода).
 
2) Метод "обновляйся, потом разберемся", с помощью которого "починили" пересборку sssd,
в корне неверный, и привел к нерабочему sssd (подробности в https://bugzilla.altlinux.org/show_bug.cgi?id=35545)
Правильное решение -- починить вычисление зависимостей во время пересборки.
Обходной путь -- выпилить %ubt из спеки  sssd (и других пакетов, которые "внезапно" перестали пересобираться).
 
 
Всем бобра,
     Алексей
> _______________________________________________ > Devel mailing list > Devel@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/devel