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

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

    <bug>
          <bug_id>41262</bug_id>
          
          <creation_ts>2021-11-01 22:11:37 +0300</creation_ts>
          <short_desc>hsh --ini --verbose does not identify post script</short_desc>
          <delta_ts>2022-12-05 23:53:37 +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>hasher</component>
          <version>unstable</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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="Vitaly Chikunov">vt</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          <cc>arseny</cc>
    
    <cc>at</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>204327</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2021-11-01 22:11:37 +0300</bug_when>
    <thetext>В случае ошибки возникающей в какой-то команде в ~/.hasher/install/post скрипте во время hsh --ini не понятно где возникает ошибка. Может создаться не правильное впечатление что ошибка где-то в posttrans-filetriggers. Запуск hsh --ini --verbose не отображает, что запускается post скрипт, из-за этого локализация элементарной ошибки очень сложна.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204328</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-11-01 22:37:34 +0300</bug_when>
    <thetext>В качестве решения, которое будет работать со всеми версиями hasher, могу предложить всегда добавлять set -x в ~/.hasher/install/post

А в остальном, как обычно, патчи приветствуются.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204329</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2021-11-01 22:43:46 +0300</bug_when>
    <thetext>Я, видимо, плохо описал проблему.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205856</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-12-08 01:08:37 +0300</bug_when>
    <thetext>OK, а в чём тогда проблема?
Хочется не вставлять отладку в ~/.hasher/install/post,
но при этом получать отладочные сообщения о том, что /.host/postin запустился?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205857</commentid>
    <comment_count>4</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2021-12-08 01:24:31 +0300</bug_when>
    <thetext>Я бы сам вставил отладку в ~/.hasher/install/post если бы знал что проблема в нем, но как раз это и неизвестно. &quot;Не понятно где возникает ошибка&quot; - не &quot;не понятно где в post&quot;, а &quot;не понятно где в hsh --ini&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205858</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-12-08 01:28:54 +0300</bug_when>
    <thetext>Добавить фразу Executing /.host/postin, или добавить -x в скрипт, который запускает /.host/postin?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205859</commentid>
    <comment_count>6</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2021-12-08 01:35:10 +0300</bug_when>
    <thetext>Было бы желательно хотя бы добавить фразу Executing ~/.hasher/install/post или аналогичное что бы показало, что дело не в каком-то из пакетов или filetrigger, а в моём post. Я думаю -x это не покажет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205860</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-12-08 01:40:20 +0300</bug_when>
    <thetext>Попробуй такой патч:

--- a/hasher/hsh-sh-functions.in
+++ b/hasher/hsh-sh-functions.in
@@ -427,6 +427,7 @@ create_entry_header()
 TMPDIR=&quot;\$HOME/tmp&quot;
 export TMPDIR
 cd /.in
+${verbose:+set -x}
 __EOF__
        chmod 755 &quot;$entry&quot;
 }
@@ -443,6 +444,7 @@ if [ -z &quot;\$FAKEROOTKEY&quot; -a &quot;\$USER&quot; = root -a -x /usr/bin/fakeroot ]; then
        fi
 fi
 cd /.in
+${verbose:+set -x}
 __EOF__
        chmod 755 &quot;$entry&quot;
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205888</commentid>
    <comment_count>8</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2021-12-08 20:31:23 +0300</bug_when>
    <thetext>Это не помогает. Я прошу сделать вывод сообщения, что сейчас запускается ~/.hasher/install/post</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218336</commentid>
    <comment_count>9</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2022-12-05 01:17:09 +0300</bug_when>
    <thetext>(In reply to Vitaly Chikunov from comment #8)
&gt; Это не помогает. Я прошу сделать вывод сообщения, что сейчас запускается
&gt; ~/.hasher/install/post

Реализовать именно это предложение довольно сложно. Сообщение должно будет порождаться из /.host/entry; либшелльные лог-сообщения опционально идут ещё и в сислог, крайне неудобно это делать из /.host/entry. Можно в entry засунуть только явный printf &gt;&amp;2, конечно, но это первый прецедент такого псевдо-verbose сообщения. В общем, лично мне не нравится.

Теперь конструктивные предложения.

В версии hasher 1.6.0-alt1 postin запускается прямо после следующих verbose-сообщений:
* &apos;hsh-install: calculated mount points: &apos;&quot;$required_mountpoints&quot;
* &apos;hsh-initroot: RPM database updated.&apos; (если chroot cache отключен или протух)
Зачем я это упоминаю? Если hsh --initroot-only не добирается до этого места, значит, postin не виноват.

В версии hasher 1.6.0-alt1 postin запускается прямо перед следующими verbose-сообщениями:
* &apos;hsh-install: Packages installation complete.&apos;
* &apos;hsh-initroot: First time initialization complete.&apos; (если chroot cache отключен или протух)
Зачем я это упоминаю? Может, вместо сообщения о postin стоит ввести в этих программах сообщения о начале &quot;packages installation&quot; и &quot;first time initialization&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218341</commentid>
    <comment_count>10</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2022-12-05 09:18:23 +0300</bug_when>
    <thetext>Пользователю надо узнать что сейчас выполняется ~/.hasher/install/post и следующие ошибки - из него. По всем эти надписям это не понятно, так что они не нужны.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218411</commentid>
    <comment_count>11</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2022-12-05 23:53:37 +0300</bug_when>
    <thetext>(In reply to Vitaly Chikunov from comment #8)
&gt; Это не помогает. Я прошу сделать вывод сообщения, что сейчас запускается
&gt; ~/.hasher/install/post

Попробуй такой патч:

diff --git a/hasher/hsh-install b/hasher/hsh-install
index caa8d7d..2101b79 100755
--- a/hasher/hsh-install
+++ b/hasher/hsh-install
@@ -161,6 +161,7 @@ if type adjust_kernel_headers &gt;/dev/null 2&gt;&amp;1; then
 	adjust_kernel_headers --first
 fi
 if [ -x /.host/postin ]; then
+	${verbose:+echo &gt;&amp;2 \$0: executing /.host/postin}
 	/.host/postin
 fi
 __EOF__
diff --git a/hasher/hsh-sh-cache-chroot-functions b/hasher/hsh-sh-cache-chroot-functions
index 099459b..c5aa1c6 100644
--- a/hasher/hsh-sh-cache-chroot-functions
+++ b/hasher/hsh-sh-cache-chroot-functions
@@ -372,6 +372,7 @@ if type adjust_kernel_headers &gt;/dev/null 2&gt;&amp;1; then
 	adjust_kernel_headers
 fi
 if [ -x /.host/postin ]; then
+	${verbose:+echo &gt;&amp;2 \$0: executing /.host/postin}
 	/.host/postin
 fi
 groupadd -g $gid0 caller ||:</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>