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

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

    <bug>
          <bug_id>50150</bug_id>
          
          <creation_ts>2024-04-24 19:09:18 +0300</creation_ts>
          <short_desc>NEW unmet dependencies detected: /usr/bin/rm /usr/bin/bash</short_desc>
          <delta_ts>2025-01-21 15:44:34 +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>rpm-build</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=50527</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>46625</blocked>
    
    <blocked>50121</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrew Vasilyev">andy</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>arseny</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>klark</cc>
    
    <cc>lav</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>vt</cc>
    
    <cc>ytinka7</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>245355</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Vasilyev">andy</who>
    <bug_when>2024-04-24 19:09:18 +0300</bug_when>
    <thetext>При сборке resource-agents получаем:

	x86_64: NEW unmet dependencies detected:
 ldirectord#4.14.0-alt1:sisyphus+345762.100.1.1@1713964559       /usr/bin/rm
 resource-agents#4.14.0-alt1:sisyphus+345762.100.1.1@1713964559  /usr/bin/bash

  из-за

checking for rm... /usr/bin/rm
checking for bash... /usr/bin/bash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245359</commentid>
    <comment_count>1</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2024-04-24 19:52:41 +0300</bug_when>
    <thetext>Тут по сути главный вопрос, где мы будем переопределять ac_cv_path_RM, ac_cv_path_BASH_SHELL и прочие?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245360</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2024-04-24 19:56:41 +0300</bug_when>
    <thetext>Наверное, CanonPath мог бы заменять requires, но если это не используется в самой конфигурируемой проге.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245361</commentid>
    <comment_count>3</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2024-04-24 20:00:22 +0300</bug_when>
    <thetext>Используется наверняка.
Вообще говоря, не нужно полных путей к rm в скриптах.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245362</commentid>
    <comment_count>4</comment_count>
    <who name="Andrew Vasilyev">andy</who>
    <bug_when>2024-04-24 20:09:02 +0300</bug_when>
    <thetext>/usr/bin/bash используется в shebang, а /usr/bin/rm в данном конкретном случае
прилетает в service файл. Там принято писать полный путь.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245363</commentid>
    <comment_count>5</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2024-04-24 20:12:03 +0300</bug_when>
    <thetext>Я бы сделал

export ac_cv_path_RM=/bin/rm 
export ac_cv_path_BASH_SHELL=/bin/bash

в пакете.  Вопрос, много ли у нас таких пакетов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245364</commentid>
    <comment_count>6</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-04-24 20:59:20 +0300</bug_when>
    <thetext>(In reply to Andrew Vasilyev from comment #4)
&gt; /usr/bin/bash используется в shebang, а /usr/bin/rm в данном конкретном
&gt; случае
&gt; прилетает в service файл. Там принято писать полный путь.

Отсюда, видимо, следует, что нам в любом случае придётся предусматривать то, что Глеб предложил, с фиксацией ac_cv_path_*.

Но далеко не факт, что этого достаточно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245365</commentid>
    <comment_count>7</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-04-24 21:05:50 +0300</bug_when>
    <thetext>Посмотрел по логам последней тестовой пересборки без filesystem 3:
  % grep -Er &apos;checking for rm...[[:space:]]+(/bin/|)rm&apos; success | tail
  success/samba-4.19.6-alt1:checking for rm... rm
  success/scponly-4.8-alt2.qa1:checking for rm... /bin/rm
  success/scponly-4.8-alt2.qa1:checking for rm... /bin/rm
  success/sdcc-1:4.4.0-alt1:checking for rm... rm -f
  success/snapper-0.10.7-alt1:checking for rm... /bin/rm
  success/splint-3.1.2-alt2.qa1:checking for rm... rm
  success/squid-6.8-alt1:checking for rm... /bin/rm
  success/vdsm-4.50.6-alt1.1:checking for rm... /bin/rm
  success/wfc-R2304-alt1:checking for rm... /bin/rm
  success/whoson-2.05-alt2.1:checking for rm... /bin/rm

Не все эти проверки из-под autotools (хотя бы samba можно вспомнить), поэтому они могут игнорировать ac_cv_*.
Видно, что проверки принципиально разные: где-то rm, где-то /bin/rm, а где-то вообще `rm -f`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245367</commentid>
    <comment_count>8</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-04-24 21:26:39 +0300</bug_when>
    <thetext>(In reply to Gleb F-Malinovskiy from comment #5)
&gt; Я бы сделал
&gt; 
&gt; export ac_cv_path_RM=/bin/rm 
&gt; export ac_cv_path_BASH_SHELL=/bin/bash
&gt; 
&gt; в пакете.  Вопрос, много ли у нас таких пакетов.

% grep -Elr &apos;checking for rm...[[:space:]]+&apos; ~/success | wc -l
76
% grep -Elr &apos;checking for rm...[[:space:]]+/bin/rm&apos; ~/success | wc -l
58
% grep -Elr &apos;checking for rm...[[:space:]]+rm -f&apos; ~/success | wc -l
4
% grep -Elr &apos;checking for rm...[[:space:]]+[^r/]&apos; ~/success | wc -l
1
Этот один очень забавный:
libabigail-1.8.2-alt1:checking for rm... yes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245373</commentid>
    <comment_count>9</comment_count>
    <who name="Andrew Vasilyev">andy</who>
    <bug_when>2024-04-24 22:19:28 +0300</bug_when>
    <thetext>(Ответ для Gleb F-Malinovskiy на комментарий #5)
&gt; export ac_cv_path_RM=/bin/rm 
&gt; export ac_cv_path_BASH_SHELL=/bin/bash

  Костыль помог, спасибо.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245600</commentid>
    <comment_count>10</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-04-28 19:27:21 +0300</bug_when>
    <thetext>А вот сколько содержат &quot;checking for bash&quot;:
  % grep -a -Elr &apos;checking for bash[.][.][.][[:space:]]+&apos; ~/success | wc -l
  53
  % grep -a -Elr &apos;checking for bash[.][.][.][[:space:]]+/bin/bash&apos; ~/success | wc -l
  33
  % grep -a -Elr &apos;checking for bash[.][.][.][[:space:]]+/bin/sh&apos; ~/success | wc -l
  15
  % grep -a -Elr &apos;checking for bash[.][.][.][[:space:]]+[^/]&apos; ~/success | wc -l
  5
Последние 5 тоже забавные:
  % grep -a -Er &apos;checking for bash[.][.][.][[:space:]]+[^/]&apos; success
  success/armagetronad-0.2.8.3.4-alt1:checking for bash... yes
  success/armagetronad-0.2.8.3.4-alt1:checking for bash... yes
  success/gnuastro-0.22-alt1:checking for bash... yes
  success/libxc-6.2.2-alt1:checking for bash... yes
  success/swtpm-0.8.1-alt1:checking for bash... yes
  success/wxedid-0.0.27-alt2:checking for bash... yes

Минимум один из них уже не проходит unmet check:
https://git.altlinux.org/tasks/346583/
  [00:00:09] checking for bash... /usr/bin/bash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245648</commentid>
    <comment_count>11</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-04-29 13:55:39 +0300</bug_when>
    <thetext>В моём списке тех пакетов, которые точно будет нужно пересобрать в p11, нашлось 2 пакета, которых это коснулось:

librarian: https://git.altlinux.org/tasks/346583/
  [00:00:09] checking for bash... /usr/bin/bash
apcupsd: https://git.altlinux.org/tasks/346043/
  [00:00:04] checking for sh... /usr/bin/sh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245666</commentid>
    <comment_count>12</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2024-04-29 15:45:53 +0300</bug_when>
    <thetext>JFYI

team:/beehive/logs/Sisyphus/x86_64/latest$ grep -Elr &apos;^Requires:.*/usr/bin/(ba)?sh&apos; success | sort
success/apcupsd-3.14.14-alt3
success/autogen-5.18.16-alt1
success/bash-defaults-5.2.15-alt1
success/corosync-3.1.8-alt2
success/corosync-qdevice-3.0.3-alt1
success/gnustep-make-2.8.0-alt2.1
success/lbdb-0.39-alt2
success/librarian-0.8.1-alt7
success/libsmi-0.5.0-alt2
success/mpb-1.5-alt5
success/ngsolve-6.2.2304-alt1
success/pacemaker-2.1.7-alt1
success/pekwm-0.2.1-alt1
success/quilt-0.67-alt2
success/verlihub-0.9.8e-alt3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245674</commentid>
    <comment_count>13</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-04-29 16:09:33 +0300</bug_when>
    <thetext>(In reply to Vitaly Chikunov from comment #12)
&gt; JFYI
&gt; 
&gt; team:/beehive/logs/Sisyphus/x86_64/latest$ grep -Elr
&gt; &apos;^Requires:.*/usr/bin/(ba)?sh&apos; success | sort
&gt; success/apcupsd-3.14.14-alt3
&gt; success/autogen-5.18.16-alt1
&gt; success/bash-defaults-5.2.15-alt1
&gt; success/corosync-3.1.8-alt2
&gt; success/corosync-qdevice-3.0.3-alt1
&gt; success/gnustep-make-2.8.0-alt2.1
&gt; success/lbdb-0.39-alt2
&gt; success/librarian-0.8.1-alt7
&gt; success/libsmi-0.5.0-alt2
&gt; success/mpb-1.5-alt5
&gt; success/ngsolve-6.2.2304-alt1
&gt; success/pacemaker-2.1.7-alt1
&gt; success/pekwm-0.2.1-alt1
&gt; success/quilt-0.67-alt2
&gt; success/verlihub-0.9.8e-alt3

С остальными можно постепенно разобраться.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257814</commentid>
    <comment_count>14</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2025-01-21 14:04:24 +0300</bug_when>
    <thetext>Ещё в одном месте столкнулись. Какой прогресс по ошибке ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257815</commentid>
    <comment_count>15</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2025-01-21 14:06:34 +0300</bug_when>
    <thetext>Мне из переписки непонятно какое решение правильно ?

/usr/bin/bash - это корректно ?
если нет, то почему ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257816</commentid>
    <comment_count>16</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2025-01-21 14:26:33 +0300</bug_when>
    <thetext>Исправить _эту багу_ самым простым для мейнтейнеров способом было бы лучше, переделав такие R: и P: в вид `executable(bash)`, не зависящий от PATH.
Другое похожее решение — определить операцию, отображающую такие пути в некий канонический путь. Один из вариантов такой операции я успел описать здесь:
https://bugzilla.altlinux.org/show_bug.cgi?id=50527#c2

Были высказаны и другие позиции.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257819</commentid>
    <comment_count>17</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2025-01-21 14:29:06 +0300</bug_when>
    <thetext>(In reply to Anton Farygin from comment #15)
&gt; Мне из переписки непонятно какое решение правильно ?
Пока что мейнтейнеры делали так:
1) смотрели, какая из двух зависимостей /bin/x, /usr/bin/x кем-либо предоставляется;
2) ставили в своём пакете тот hashbang (или же путь в ином месте, ...), который — результат п. 1.

&gt; /usr/bin/bash - это корректно ?
Вот /usr/bin/sh ­— (пока что) точно неправильно. А про bash могут быть другие варианты.

&gt; если нет, то почему ?
Согласно comment 16, если в авторитетном перечне из пакета lsb не указан predefined path для некой команды Y, отличный от её realpath-положения в файлодереве, то указывать её как /usr/bin/Y можно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257820</commentid>
    <comment_count>18</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2025-01-21 14:31:33 +0300</bug_when>
    <thetext>(In reply to Arseny Maslennikov from comment #16)
&gt; Исправить _эту багу_ самым простым для мейнтейнеров способом было бы лучше,
&gt; переделав такие R: и P: в вид `executable(bash)`, не зависящий от PATH.

Вот для штук типа `rm` этот вид — самый дальновидный и корректный. А bash — это же интерпретатор такой, как питон.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257821</commentid>
    <comment_count>19</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2025-01-21 14:32:18 +0300</bug_when>
    <thetext>(In reply to Arseny Maslennikov from comment #18)
&gt; (In reply to Arseny Maslennikov from comment #16)
&gt; &gt; Исправить _эту багу_ самым простым для мейнтейнеров способом было бы лучше,
&gt; &gt; переделав такие R: и P: в вид `executable(bash)`, не зависящий от PATH.
&gt; 
&gt; Вот для штук типа `rm` этот вид — самый дальновидный и корректный. А bash —
&gt; это же интерпретатор такой, как питон.

(Gleb F-Malinovskiy from comment #3)
&gt; Вообще говоря, не нужно полных путей к rm в скриптах.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>