<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>61153</bug_id>
          
          <creation_ts>2026-10-21 09:45:11 +0300</creation_ts>
          <short_desc>сломалось arepo</short_desc>
          <delta_ts>2026-10-21 18:40:47 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>rpmrebuild</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anton Farygin">rider</reporter>
          <assigned_to name="Andrey Cherepanov">cas</assigned_to>
          <cc>eltsovga</cc>
    
    <cc>george</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>iv</cc>
    
    <cc>ldv</cc>
    
    <cc>rider</cc>
    
    <cc>shevchenkodyu</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>302983</commentid>
    <comment_count>0</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2026-10-21 09:45:11 +0300</bug_when>
    <thetext>после обновления 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303004</commentid>
    <comment_count>1</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2026-10-21 11:28:39 +0300</bug_when>
    <thetext>Проверены зависимости через 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 &quot;$file&quot; | rev | cut -f1 -d&apos; &apos; | 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 &quot;$plug&quot; | awk &quot;/$plug +- /{print}&quot; )
Вызов нужен для локализованных описаний при --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 - &lt; 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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303009</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2026-10-21 11:54:24 +0300</bug_when>
    <thetext>Всё так, блокер на весь репозиторий.
По-хорошему arepo test нужно внедрить на стадии install check, но это уже совсем другая история.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303011</commentid>
    <comment_count>3</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2026-10-21 11:57:51 +0300</bug_when>
    <thetext>Также из-за этого, похоже, modsign пострадал:  https://git.altlinux.org/tasks/437876/logs/events.3.1.log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303020</commentid>
    <comment_count>4</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2026-10-21 13:50:47 +0300</bug_when>
    <thetext>Попытка оторвать зависимости всё равно не помогает:
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 : &apos;arepo.plug&apos;
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

Если нет готового решения, я предлагаю откатить обновление пакета и попробовать ещё раз уже с учётом всех регрессий.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303025</commentid>
    <comment_count>5</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2026-10-21 14:11:02 +0300</bug_when>
    <thetext>(Ответ для Gleb F-Malinovskiy на комментарий #4)
&gt; Попытка оторвать зависимости всё равно не помогает:
&gt; https://git.altlinux.org/tasks/437980/arepo/x86_64-i586/arepo.log:
&gt; ...
&gt; Arepoizing nginx-1.30.5-alt1.i586.rpm
&gt; /usr/lib/rpmrebuild/rpmrebuild.sh: ERROR: (ProcessLongOptions) File not
&gt; found : &apos;arepo.plug&apos;
&gt; Command exited with non-zero status 1
&gt; 0.00user 0.00system 0:00.00elapsed 83%CPU (0avgtext+0avgdata
&gt; 2080maxresident)k
&gt; 0inputs+0outputs (0major+1165minor)pagefaults 0swaps
&gt; 
&gt; Если нет готового решения, я предлагаю откатить обновление пакета и
&gt; попробовать ещё раз уже с учётом всех регрессий.

это починилось тоже легко, сейчас сделаю тестовое задание.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303035</commentid>
    <comment_count>6</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2026-10-21 15:19:29 +0300</bug_when>
    <thetext>rpmrebuild-2.21-alt2 -&gt; sisyphus:

Wed Oct 21 2026 Anton Farygin &lt;rider@altlinux&gt; 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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303068</commentid>
    <comment_count>7</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2026-10-21 18:40:47 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #5)
&gt; (Ответ для Gleb F-Malinovskiy на комментарий #4)
&gt; &gt; Попытка оторвать зависимости всё равно не помогает:
&gt; &gt; https://git.altlinux.org/tasks/437980/arepo/x86_64-i586/arepo.log:
&gt; &gt; ...
&gt; &gt; Arepoizing nginx-1.30.5-alt1.i586.rpm
&gt; &gt; /usr/lib/rpmrebuild/rpmrebuild.sh: ERROR: (ProcessLongOptions) File not
&gt; &gt; found : &apos;arepo.plug&apos;
&gt; &gt; Command exited with non-zero status 1
&gt; &gt; 0.00user 0.00system 0:00.00elapsed 83%CPU (0avgtext+0avgdata
&gt; &gt; 2080maxresident)k
&gt; &gt; 0inputs+0outputs (0major+1165minor)pagefaults 0swaps
&gt; &gt; 
&gt; &gt; Если нет готового решения, я предлагаю откатить обновление пакета и
&gt; &gt; попробовать ещё раз уже с учётом всех регрессий.
&gt; 
&gt; это починилось тоже легко, сейчас сделаю тестовое задание.

Спасибо!</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>