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

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

    <bug>
          <bug_id>8211</bug_id>
          
          <creation_ts>2005-10-13 19:52:54 +0400</creation_ts>
          <short_desc>Неверная зависимость пакета hal</short_desc>
          <delta_ts>2012-03-16 13:58:06 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>hal</component>
          <version>unstable</version>
          <rep_platform>all</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>P2</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Slava Semushin">php-coder</reporter>
          <assigned_to name="Anton Farygin">rider</assigned_to>
          <cc>gns</cc>
    
    <cc>inger</cc>
    
    <cc>ktirf</cc>
    
    <cc>rider</cc>
    
    <cc>sbolshakov</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31836</commentid>
    <comment_count>0</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2005-10-13 19:52:54 +0400</bug_when>
    <thetext>Лишняя, как мне кажется, зависимость на openmotif-demos. Этот пакет &quot;contains
the Motif demo applications&quot;. Исходя из этого и просмотрев список файлов в
пакете я пришел к выводу, что hal&apos;у оно не нужно.

Пожалуйста, удалите лишнюю зависимость..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31837</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2005-10-13 20:01:19 +0400</bug_when>
    <thetext>Неясно, зачем hal требует openmotif вообще.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31838</commentid>
    <comment_count>2</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2005-10-13 20:18:27 +0400</bug_when>
    <thetext>(In reply to comment #1)
&gt; Неясно, зачем hal требует openmotif вообще.

Он его не требует. Он требует лишь openmotif-demos:

[c0der@mycomp ~]$ rpm -qR hal G motif                                     23:15
openmotif-demos</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31839</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2005-10-13 20:21:50 +0400</bug_when>
    <thetext>Прошу прощения, погорячился.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31855</commentid>
    <comment_count>4</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-14 10:49:51 +0400</bug_when>
    <thetext>hal&apos;у эти зависимости дейтсвительно не нужны.
перевешиваю на пакет rpm-build, ибо openmotif почему-то вытягивается find-requires.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31869</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2005-10-14 13:15:12 +0400</bug_when>
    <thetext>А при чём тут rpm-build?  Нужна дополнительная информация.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31919</commentid>
    <comment_count>6</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2005-10-15 07:28:47 +0400</bug_when>
    <thetext>*** Bug 8222 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32241</commentid>
    <comment_count>7</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-20 16:42:50 +0400</bug_when>
    <thetext>Вот дополнительная информация:
$ for i in `fgrep openmotif
/raid/ALT/branches/Sisyphus-branch-3.0/i586/base/contents_index |grep demos|grep
bin|cut -f 1|sed -s &quot;s,^.*\/,,&quot;`;do fgrep $i *;done
Бинарный файл hald совпадает
hal-system-power-set-power-save:    todo
hal-system-power-set-power-save:todo() {
hal-system-power-set-power-save:        todo
hal-system-power-set-power-save:    todo
hal-system-power-set-power-save:    todo
hal-system-power-set-power-save:    todo
hal-system-power-set-power-save:    todo
hal-system-power-set-power-save:    todo

Т.е. - в пакете openmotif-demos содержится программа с именем todo. 

А в скрипте /usr/bin/hal-system-power-set-power-save есть функция с именем todo
и вызов этой функции в разных частях скрипта.

findreq вытягивает почему-то todo не из скрипта, а из openmotif-demos
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32244</commentid>
    <comment_count>8</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-20 16:56:58 +0400</bug_when>
    <thetext>тут inger предлагает некое решение:
[16:48:17] &lt;inger&gt; я переименовал свою функцию
[16:48:33] &lt;Rider&gt; ну я же не могу такой бредовый патч в mainstream послать
[16:48:52] &lt;inger&gt; ну это конечно да, они имеют право на свои функции
[16:49:10] &lt;Rider&gt; типа &quot;мужики, у нас тут добанутый findreq, не называйте
пожалуйста функции так, что бы они совпадали по имени с файлами из других пакетов&quot;
[16:49:11] &lt;inger&gt; надо бы наверное действительно попробовать мозг усилить у
requires 
[16:49:32] &lt;inger&gt; ведь по идее shell умеет отличать процедуру от внешней проги
(type)
[16:49:37] &lt;Rider&gt; ну по идее да</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32252</commentid>
    <comment_count>9</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2005-10-20 17:03:40 +0400</bug_when>
    <thetext>Чтобы findreq &quot;вытянул&quot; функцию из скрипта, а не executable из индекса, нужно
чтобы определение функции было доступно shell&apos;у до первого использования.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32256</commentid>
    <comment_count>10</comment_count>
    <who name="inger@altlinux.org">inger</who>
    <bug_when>2005-10-20 17:07:47 +0400</bug_when>
    <thetext>Дима, в любом случае это не правильно.

findreq - должен давать ожидаемые результаты. А он не может сработать верно даже
на скрипте из двух строчек.

Мы же не будем править все скрипты на свете.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32258</commentid>
    <comment_count>11</comment_count>
    <who name="inger@altlinux.org">inger</who>
    <bug_when>2005-10-20 17:08:14 +0400</bug_when>
    <thetext>Стоит засоурсить файл с функцией и крышу у req срывает.

---./zzz
todo()
{
        echo &quot;aaa&quot;
}
---

---./l.sh
. ./zzz

todo
---

Запускаем:
$ ./l.sh
aaa
$bash --rpm-requires l.sh
executable(/etc/bashrc)
executable(todo)


В случае когда функция в том же месте - всё работает отлично:
---- ./l.sh
todo()
{
        echo &quot;aaa&quot;
}

todo

-----

$ bash --rpm-requires l.sh
executable(/etc/bashrc)
function(todo)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32260</commentid>
    <comment_count>12</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2005-10-20 17:11:18 +0400</bug_when>
    <thetext>Я все свои скрипты давным-давно зафиксил.
Так что проблемы в rpm-build не вижу.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32261</commentid>
    <comment_count>13</comment_count>
    <who name="inger@altlinux.org">inger</who>
    <bug_when>2005-10-20 17:12:13 +0400</bug_when>
    <thetext>не стоит прогибаться под изменчивый мир, пусть лучше он прогнётся под нас.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32262</commentid>
    <comment_count>14</comment_count>
    <who name="inger@altlinux.org">inger</who>
    <bug_when>2005-10-20 17:15:11 +0400</bug_when>
    <thetext>Это сложно исправить? Cкрипт даёт ложные разультаты на законных программах - не
так ли?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32264</commentid>
    <comment_count>15</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-20 17:55:45 +0400</bug_when>
    <thetext>ну с моими скриптами тоже проблем нет. Есть явная проблема со скриптами &quot;снаружи&quot;.

Фиксить их все считаю бесмысленным увеличением затрат на сопровождение пакетов.

Тем более что фикс будет заключаться в переименовывании функции.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32265</commentid>
    <comment_count>16</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-20 17:58:28 +0400</bug_when>
    <thetext>не стоит перевешивать багу обратно на hal. С точки зрения правил написания
скриптв в hal ошибок нет.

А вот неверный алгоритм поиска зависимостей в rpm-build - есть. 

Может быть стоит вообще отключить поиск зависимостей в шелловских скриптах ?

Ибо вот такой пример:
[ -x /bin/true ] &amp;&amp; /bin/true

Наверняка потянет за собой зависимость на на пакет с /bin/true. Хотя реально
зависимость как бы и не нужна.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32266</commentid>
    <comment_count>17</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-20 17:58:56 +0400</bug_when>
    <thetext>Забыл reassign сделать обратно.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32267</commentid>
    <comment_count>18</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-20 18:00:53 +0400</bug_when>
    <thetext>Увеличиваю до blocker, ибо в текущей ситуации помимо всего прочего появление
пакета, содержащего &quot;левый&quot; бинарный файл может привести к тому, что после
пересборки репозитарий будет развален.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32268</commentid>
    <comment_count>19</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-20 18:03:00 +0400</bug_when>
    <thetext>Кстати, никому не кажется, что такой вот поиск зависимостей в шелловских
скриптах выглядит немного бредово ?

Примерно как искать вызовы dlopen и exec в бинарных файлах (вот только не надо
этого делать).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32270</commentid>
    <comment_count>20</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2005-10-20 18:45:17 +0400</bug_when>
    <thetext>Не надо пытаться тратить моё время впустую.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32287</commentid>
    <comment_count>21</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-21 10:09:17 +0400</bug_when>
    <thetext>Не стоит так поступать и с моим временем.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32297</commentid>
    <comment_count>22</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2005-10-21 15:54:08 +0400</bug_when>
    <thetext>Антон, если тебе нужно, чтобы я реагировал на твои багрепорты,
не надо перевешивать то, что я не считаю ошибкой в моём пакете, на мой пакет.
Bugzilla, между прочим, имеет довольно удобные средства фильтрации.

Если в твоём пакете find-requires находит зависимости, которые ты считаешь
избыточными, то ничто тебе не мешает (на выбор):
- отфильтровать ненужные зависимости
- выключить поиск зависимостей этого типа
- выключить поиск зависимостей вообще
- заменить find-requires на другую программу
- и т.п.

Механизм поиска зависимостей в shell-скриптах в обозримом будущем я менять не
планирую.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32302</commentid>
    <comment_count>23</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-21 16:09:24 +0400</bug_when>
    <thetext>Ну что ж, используй средства фильтрации. Я не считаю что это ошибка у меня в
пакете. И еще раз просьба: не надо кушать мое  (и других мантейнеров) время.

IMHO проще исправить ошибку в одном пакете, а не в нескольких тысячах делать
WORKAROUND&apos;ы.

Можешь закрывать как LATER, если сейчас не собираешься исправлять.

Да, в hal-0.5.4-alt6 применен subst на эту функцию, изменяющий ее имя.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32303</commentid>
    <comment_count>24</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2005-10-21 16:10:49 +0400</bug_when>
    <thetext>OK, договорились.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32308</commentid>
    <comment_count>25</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2005-10-21 17:33:45 +0400</bug_when>
    <thetext>Однако, бага в hal, при чём действительно blocker.  find-requires (а точнее
bash) тут прав на все 100%:

$ cat ~/bin/somefun
#!/bin/sh

echo hello from executable

$ cat testfun         
#!/bin/sh 

somefun

somefun () {
echo hello from function
}

somefun

$ ./testfun 
hello from executable
hello from function
$
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32309</commentid>
    <comment_count>26</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2005-10-21 17:36:23 +0400</bug_when>
    <thetext>Ну и как следствие предыдущего камента:

$ sh --rpm-requires ./testfun
executable(somefun)
function(somefun)

А ведь именно так shell.req и работает...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32310</commentid>
    <comment_count>27</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2005-10-21 17:36:57 +0400</bug_when>
    <thetext>Всё-таки hal....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32311</commentid>
    <comment_count>28</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2005-10-21 17:45:29 +0400</bug_when>
    <thetext>&gt; Тем более что фикс будет заключаться в переименовывании функции.

Фикс - перестановка определения функции todo до первого её использования.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32312</commentid>
    <comment_count>29</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-21 17:48:25 +0400</bug_when>
    <thetext>а эта фича sh --rpm-requires - она наша или есть во всех bash&apos;ах ?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32313</commentid>
    <comment_count>30</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-21 17:50:16 +0400</bug_when>
    <thetext>Мда.. судя по bash-2.05b-rh-alt-requires.patch - наша.

subst в качестве фикса меня устраивает больше.. не надо будет в mainstream патчи
отправлять. Странные.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32315</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2005-10-21 19:59:49 +0400</bug_when>
    <thetext>sh --rpm-requires работает как предпроцессор он не выполняет команд(ни каких
действий) ... только анализ кода. Исходя из этого если функция(алиас) объявлена
в другом файле, который добавляется с помощью &quot;source&quot;, то у shell нет
возможности узнать что это ... функция или команда.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32335</commentid>
    <comment_count>32</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2005-10-23 13:02:15 +0400</bug_when>
    <thetext>Только сейчас заметил, что баг весит на hal и assign&apos;ут на ldv@.. сейчас
исправлю..:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32336</commentid>
    <comment_count>33</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2005-10-23 13:06:36 +0400</bug_when>
    <thetext>.oO ( вот так подарочек на день рождения :)) блок-бага гг )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32337</commentid>
    <comment_count>34</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2005-10-23 14:46:13 +0400</bug_when>
    <thetext>Seems to be fixed in hal-0.5.4-alt6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32348</commentid>
    <comment_count>35</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2005-10-23 21:14:12 +0400</bug_when>
    <thetext>Хех... а это что? и зачем оно мне?

[c0der@mycomp ~]$ sudo apt-get install hal
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
  acpid libhal
Следующие пакеты будут ОБНОВЛЕНЫ:
  hal libhal
Следующие НОВЫЕ пакеты будут установлены:
  acpid
2 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 32 не будет
обновлено.
Необходимо получить 368kB архивов.
После распаковки потребуется дополнительно 39,9kB дискового пространства.
Продолжить? [Y/n] n
Прервано.

&lt;JT&gt;
Вот после такого люди и ставят софт из исходников и под Гентуу. Эти зависимости,
причем ладно бы нужные, но ведь часто они не нужны.. кажется, помню возмущался,
что kde захотел какой-то софт или библиотеку для беспроводных сетей, который у
меня нет..
&lt;/JT&gt;

А в Дебиане, с его возможностью, указать рекомендуемые пакеты, но не
обязательные все проще или нет?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32353</commentid>
    <comment_count>36</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2005-10-23 23:20:19 +0400</bug_when>
    <thetext>(In reply to comment #30)
&gt; subst в качестве фикса меня устраивает больше.. не надо будет в mainstream патчи
&gt; отправлять. Странные.
Ну, можно обозвать это &quot;cleanup&quot;, пояснив, что хорошие мальчики таки определяют
функции до использования. :)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32381</commentid>
    <comment_count>37</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2005-10-24 15:35:55 +0400</bug_when>
    <thetext>(In reply to comment #35)
&gt; Хех... а это что? и зачем оно мне?
&gt; 
&gt; [c0der@mycomp ~]$ sudo apt-get install hal
&gt; Чтение списков пакетов... Завершено
&gt; Построение дерева зависимостей... Завершено
&gt; Следующие дополнительные пакеты будут установлены:
&gt;   acpid libhal
&gt; Следующие пакеты будут ОБНОВЛЕНЫ:
&gt;   hal libhal
&gt; Следующие НОВЫЕ пакеты будут установлены:
&gt;   acpid
&gt; 2 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 32 не будет
&gt; обновлено.
&gt; Необходимо получить 368kB архивов.
&gt; После распаковки потребуется дополнительно 39,9kB дискового пространства.
&gt; Продолжить? [Y/n] n
&gt; Прервано.
&gt; 
&gt; &lt;JT&gt;
&gt; Вот после такого люди и ставят софт из исходников и под Гентуу. Эти зависимости,
&gt; причем ладно бы нужные, но ведь часто они не нужны.. кажется, помню возмущался,
&gt; что kde захотел какой-то софт или библиотеку для беспроводных сетей, который у
&gt; меня нет..
&gt; &lt;/JT&gt;
&gt; 
&gt; А в Дебиане, с его возможностью, указать рекомендуемые пакеты, но не
&gt; обязательные все проще или нет?

Новый hal теперь обязательно хочет acpid, ибо не умеет напрямую работать с
/proc/acpi/events

К сожалению, собрать hal именно таким образом - обязательная необходимость.
Иначе на /proc/acpi/events будет идти в системе война, и этого нам не нужно.

Но это уже не имеет отношения к этой ошибке</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>