после обновления rpmrebuild не работает сборка части пакетов: 2026-Oct-20 16:17:11 :: [x86_64-i586] plan: #4 +4 -4 =12728 2026-Oct-20 16:17:32 :: [i586] remote arepo: initroot failed 2026-Oct-20 16:17:32 :: [x86_64-i586] remote build FAILED 2026-Oct-20 16:17:32 :: [x86_64-i586] build FAILED 2026-Oct-20 16:17:32 :: task #437885 for sisyphus FAILED
Проверены зависимости через RDB и исходники packages/gears/r/rpmrebuild.git, ветка sisyphus (2.21-alt1, commit 199fd53). В задании 437940 падение происходит ещё до пересборки пакетов, при архивации chroot: https://git.altlinux.org/tasks/437940/arepo/x86_64-i586/arepo.log hasher-privd: parent: work_limits_ok: bytes written limit (503316480 bytes) exceeded hsh-initroot: Chroot archivation failed. 503316480 байт = 480 МиБ. В этом chroot установлен rpmrebuild-2.21-alt1 из задания 437794. Сравнение бинарных пакетов через RDB: 2.11-alt6 (x86_64, p11) и 2.21-alt1 (noarch, Sisyphus). Добавились Requires: /bin/mail, /sbin/getcap, /usr/bin/env, bash, diffutils, grep, man-db, rpm2archive, rpmlib(FileDigests), sh, tar, util-linux; исчезла /bin/sh. Сам rpmrebuild вырос примерно со 172 до 227 КиБ содержимого файлов. Существенно важнее новые транзитивные зависимости, которые присутствуют и в логе установки chroot. Откуда берутся новые зависимости: 1. util-linux — команда rev в rpmrebuild/rpmrebuild_files.sh:189: file_cap=$( getcap "$file" | rev | cut -f1 -d' ' | rev ) Она используется только при RPMREBUILD_CAP_FROM_FS=yes (--cap-from-fs). По умолчанию capabilities берутся из RPM. Ради разбора последнего поля строки подтягивается util-linux с PAM, libmount, libsmartcols, libudev и другими зависимостями. Этот разбор можно заменить средствами bash. 2. man-db — функция List_Plugins(), rpmrebuild/rpmrebuild_parser.src:127–148: text=$(man "$plug" | awk "/$plug +- /{print}" ) Вызов нужен для локализованных описаний при --list-plugin, не для пересборки. С man-db приходят groff-base, less, libpipeline, libgdbm. При пустом результате функция уже умеет выводить просто имя плагина; наличие man можно проверять явно и предусмотреть корректный fallback без него. 3. /bin/mail — SendBugReport(), rpmrebuild/rpmrebuild.sh:414–435. При обновлении исключён ALT-патч rpmrebuild-alt-remove-SendBugReport.patch, удалявший эту функцию с 2017 года. Diff rpmrebuild.spec между 82592bb (2.11-alt6) и sisyphus подтверждает удаление Patch4 и его применения. В обосновании старого патча прямо указан основной сценарий rpmrebuild-arepo, работающий в batch-режиме; в новом коде SendBugReport также немедленно возвращается в batch-режиме. Имеет смысл восстановить этот ALT-патч. 4. /sbin/getcap — чтение capabilities с файловой системы. В rpmrebuild/rpmrebuild_files.sh:60–69 уже предусмотрено отсутствие getcap: предупреждение и отключение RPMREBUILD_CAP_FROM_FS. Это опциональная возможность, но автозависимость стала обязательной. 5. rpm2archive и tar — новый предпочтительный путь распаковки, rpmrebuild/rpmrebuild.sh:137–155. При наличии rpm2archive используется rpm2archive - < RPM | tar -xz -C BUILDROOT, но ветка else по-прежнему распаковывает через rpm2cpio + cpio. Поэтому обязательность rpm2archive (и подтягиваемой им libarchive13) не следует из логики кода. 6. diffutils — diff в плагине rpmrebuild/plugins/replacefile.sh:115. /usr/bin/env и зависимости на интерпретаторы связаны в том числе с новыми shebang #!/usr/bin/env bash и #!/usr/bin/env sh. Лог сборки подтверждает автоматическое обнаружение этих команд shell.req, а не добавление явных Requires в ALT spec: https://git.altlinux.org/tasks/437794/build/400/x86_64/log Итого: есть явная потеря ALT-патча удаления SendBugReport и несколько обязательных автозависимостей ради опциональных функций. В первую очередь стоит вернуть патч, убрать rev из разбора capabilities и аккуратно обработать необязательные man/getcap/rpm2archive, не отключая все автозависимости целиком. Полная разница размеров старого и нового chroot не измерялась; достаточность этих изменений для прохождения лимита 480 МиБ пока не проверена повторным запуском arepo.
Всё так, блокер на весь репозиторий. По-хорошему arepo test нужно внедрить на стадии install check, но это уже совсем другая история.
Также из-за этого, похоже, modsign пострадал: https://git.altlinux.org/tasks/437876/logs/events.3.1.log
Попытка оторвать зависимости всё равно не помогает: https://git.altlinux.org/tasks/437980/arepo/x86_64-i586/arepo.log: ... Arepoizing nginx-1.30.5-alt1.i586.rpm /usr/lib/rpmrebuild/rpmrebuild.sh: ERROR: (ProcessLongOptions) File not found : 'arepo.plug' Command exited with non-zero status 1 0.00user 0.00system 0:00.00elapsed 83%CPU (0avgtext+0avgdata 2080maxresident)k 0inputs+0outputs (0major+1165minor)pagefaults 0swaps Если нет готового решения, я предлагаю откатить обновление пакета и попробовать ещё раз уже с учётом всех регрессий.
(Ответ для Gleb F-Malinovskiy на комментарий #4) > Попытка оторвать зависимости всё равно не помогает: > https://git.altlinux.org/tasks/437980/arepo/x86_64-i586/arepo.log: > ... > Arepoizing nginx-1.30.5-alt1.i586.rpm > /usr/lib/rpmrebuild/rpmrebuild.sh: ERROR: (ProcessLongOptions) File not > found : 'arepo.plug' > Command exited with non-zero status 1 > 0.00user 0.00system 0:00.00elapsed 83%CPU (0avgtext+0avgdata > 2080maxresident)k > 0inputs+0outputs (0major+1165minor)pagefaults 0swaps > > Если нет готового решения, я предлагаю откатить обновление пакета и > попробовать ещё раз уже с учётом всех регрессий. это починилось тоже легко, сейчас сделаю тестовое задание.
rpmrebuild-2.21-alt2 -> sisyphus: Wed Oct 21 2026 Anton Farygin <rider@altlinux> 2.21-alt2 - Initialize plugin directory before parsing options to fix rpmrebuild-arepo. - Remove dependencies on optional tools to reduce arepo chroot size (ALT #61153). - Restore removal of SendBugReport.
(Ответ для Anton Farygin на комментарий #5) > (Ответ для Gleb F-Malinovskiy на комментарий #4) > > Попытка оторвать зависимости всё равно не помогает: > > https://git.altlinux.org/tasks/437980/arepo/x86_64-i586/arepo.log: > > ... > > Arepoizing nginx-1.30.5-alt1.i586.rpm > > /usr/lib/rpmrebuild/rpmrebuild.sh: ERROR: (ProcessLongOptions) File not > > found : 'arepo.plug' > > Command exited with non-zero status 1 > > 0.00user 0.00system 0:00.00elapsed 83%CPU (0avgtext+0avgdata > > 2080maxresident)k > > 0inputs+0outputs (0major+1165minor)pagefaults 0swaps > > > > Если нет готового решения, я предлагаю откатить обновление пакета и > > попробовать ещё раз уже с учётом всех регрессий. > > это починилось тоже легко, сейчас сделаю тестовое задание. Спасибо!