Не пишите, пожалуйста, в этот список рассылки 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,
Правильное решение -- починить вычисление зависимостей во время пересборки.
Обходной путь -- выпилить %ubt из спеки sssd (и других пакетов, которые "внезапно" перестали пересобираться).
Всем бобра,
Алексей
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel