[devel] про sssd, query-repackage и ubt

Ivan A. Melnikov iv на altlinux.org
Вт Окт 23 14:03:37 MSK 2018


Привет,

Хочу рассказать вам одну историю. Букв много, мораль не ясна,
так что можете не читать это всё.

Не так давно в Сизифе перестал пересобираться пакет 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 в релизе уже нет, так что ежедневная
пересборка должна проходить успешно.

Вот такая вот история. Много букв, мораль не ясна. Спасибо
что были с нами.

Refs:

[0] http://git.altlinux.org/beehive/logs/Sisyphus-x86_64/archive/2018/1022/error/sssd-1.16.3-alt1.S1.zst

[1] http://git.altlinux.org/gears/h/hasher.git?p=hasher.git;a=blob;f=hasher/hsh-rebuild;h=dbb8471ab6ac59ada7a5f08d2dec3ffa1e150670;hb=d5279152e6ae7bf21df760bbf09931f021a9f7d6#l247

--
  wbr,
    iv m.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 195 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20181023/031945e2/attachment.bin>


Подробная информация о списке рассылки Devel