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

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

    <bug>
          <bug_id>51035</bug_id>
          
          <creation_ts>2024-08-02 17:07:46 +0300</creation_ts>
          <short_desc>systemd-binfmt.filetrigger filetrigger is broken</short_desc>
          <delta_ts>2024-08-07 17:42:25 +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>systemd</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Maksimenkov">maksimenkovda</reporter>
          <assigned_to name="Alexey Shabalin">shaba</assigned_to>
          <cc>arseny</cc>
    
    <cc>at</cc>
    
    <cc>glebfm</cc>
    
    <cc>iv</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>shaba</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>249605</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Maksimenkov">maksimenkovda</who>
    <bug_when>2024-08-02 17:07:46 +0300</bug_when>
    <thetext>Инициализация hasher под aarch64 заканчивается ошибкой &quot;child: handle_child: execve: /.host/entry: Exec format error&quot;

Версии:
hasher-1.7.4-alt1
hasher-priv-2.0.14-alt1

Системы:
ALT Linux Workstation 10.2, обновлено до Sisyphus
ALT Linux Workstation K 10.3, обновлено до Sisyphus
ALT Linux Education 10.2, обновлено до Sisyphus
ALT Linux Server 10.2, обновлено до Sisyphus

Шаги воспроизведения:
# apt-get install hasher qemu-user-static-aarch64 qemu-user-static-binfmt-aarch64
# apt-repo rm all &amp;&amp; cat &gt; /etc/apt/sources.list &lt;&lt; EOF
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus aarch64 classic
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus noarch classic
EOF
# systemctl enable --now hasher-privd.service
# hasher-useradd &lt;USER&gt;
# su - &lt;USER&gt;
$ mkdir ~/hasher &amp;&amp; hsh --init --target=aarch64 --with-qemu aarch64 -v

Ожидаемый результат: Инициализация заканчивается ошибкой

hasher-privd: child: handle_child: execve: /.host/entry: Exec format error
hsh-initroot: Failed to create RPM database.

Реальный результат: Инициализация без ошибок

Дополнительная информация:

Не воспроизводится в p10 на образах
ALT Linux Workstation 10.2
ALT Linux Workstation K 10.3
ALT Linux Education 10.2
ALT Linux Server 10.2

После перезагрузки ошибка не воспроизводится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249606</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry Maksimenkov">maksimenkovda</who>
    <bug_when>2024-08-02 17:23:23 +0300</bug_when>
    <thetext>&gt; После перезагрузки ошибка не воспроизводится.

После перезагрузки системы ошибка не воспроизводится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249615</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2024-08-03 10:50:22 +0300</bug_when>
    <thetext>По какой-то причине эффект от установки пакета qemu-user-static-binfmt-aarch64 проявился только после перезагрузки системы.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249617</commentid>
    <comment_count>3</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-08-03 11:20:32 +0300</bug_when>
    <thetext>Ошибка в файлтриггере /usr/lib/rpm/systemd-binfmt.filetrigger:

$ cat /usr/lib/rpm/systemd-binfmt.filetrigger
#!/bin/sh -e

[ -L /proc/1/root ] || exit 0

LC_ALL=C grep -E -qs &apos;^/(lib|usr/lib|etc)/binfmt.d/.+\.conf&apos; &amp;&amp; systemd-binfmt &gt;/dev/null 2&gt;&amp;1 ||:

systemd-binfmt находится не в $PATH, а в /usr/lib/systemd/, так что этот триггер не отрабатывает. Если удалить перенаправление stderr (которое, кстати, в любом случае лишнее), то при установке qemu-user-static-aarch64 можно увидеть:

/usr/lib/rpm/systemd-binfmt.filetrigger: line 5: systemd-binfmt: command not found</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249618</commentid>
    <comment_count>4</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-08-03 11:28:45 +0300</bug_when>
    <thetext>Кстати, есть подозрение, что даже если корректно вызвать /usr/lib/systemd/systemd-binfmt, при обновлении, например, qemu-user-static-aarch64, старый бинарник останется висеть предзагруженным, что неправильно.

Так что я бы не вызывал эту утилиту напрямую, а делал просто systemctl restart systemd-binfmt.service.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249764</commentid>
    <comment_count>5</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-08-06 16:56:22 +0300</bug_when>
    <thetext>Аналогичная проблема, кстати, присутствует в макросе %binfmt_apply из rpm-macros-systemd-6-alt2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249765</commentid>
    <comment_count>6</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-08-06 16:57:36 +0300</bug_when>
    <thetext>(In reply to Ivan A. Melnikov from comment #5)
&gt; Аналогичная проблема, кстати, присутствует в макросе %binfmt_apply из
&gt; rpm-macros-systemd-6-alt2

... который, к счастью, нигде не используется. Может, удалить его?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249793</commentid>
    <comment_count>7</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-08-07 12:09:02 +0300</bug_when>
    <thetext>(In reply to Ivan A. Melnikov from comment #3)
&gt; Ошибка в файлтриггере /usr/lib/rpm/systemd-binfmt.filetrigger:

Предлагаю чинить так:
https://git.altlinux.org/people/iv/packages/systemd.git?a=commitdiff;h=86f80e938b16aaf59fe8efdb0d2e9a80b86ce961

Собрано в задаче 354545, куда я также добавил последние исправления сборки без tmp2 (для riscv64 и loongarch64). Please review and approve.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249838</commentid>
    <comment_count>8</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2024-08-07 17:42:25 +0300</bug_when>
    <thetext>systemd-1:255.10-alt2 -&gt; sisyphus:

 Tue Aug 06 2024 Ivan A. Melnikov &lt;iv@altlinux&gt; 1:255.10-alt2
 - Fix systemd-binfmt filetrigger (ALT#51035).
 - Fix build w/o tmp2 (fixes FTBFS on loongarch64 and riscv64).
 - Make sure bootctl man page is present when there is
   the binary (backported upstream fix).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>