Bug 7242

Summary: использование башизма в скриптах не проходит через find-requires
Product: Sisyphus Reporter: Anton Farygin <rider>
Component: rpm-buildAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: critical    
Priority: P2 CC: arseny, glebfm, imz, ldv, placeholder, vt
Version: unstable   
Hardware: all   
OS: Linux   

Description Anton Farygin 2005-06-29 15:45:46 MSD
$ cat test.sh
#!/bin/bash
        while read NAME DISP REST; do
                test "pts/1" = "$DISP" && break
        done < <(who)
        echo "${NAME:--}"

$ /bin/sh --rpm-requires test.sh
test.sh: line 4: syntax error near unexpected token `<'
test.sh: line 4: `      done < <(who)'

$ /bin/bash --rpm-requires test.sh
executable(/etc/bashrc)
Comment 1 Anton Farygin 2005-06-29 15:47:35 MSD
соответственно в /usr/lib/rpm/shell.req используется sh.

Может быть стоит использовать то, что написано в самом скрипте ?
Comment 2 at@altlinux.org 2005-06-29 16:44:10 MSD
У нас /bin/sh не понимает process substitution -- конструкцию <(...), при том,
что явно это нигде не отключается.  Я об этом рассказывал ещё в прошлом году (в
кулуарах, да!), но причину мы выяснить не смогли.
Comment 3 Anton Farygin 2005-06-29 17:41:05 MSD
В итоге все это выливается в невозможность собрать программы с таким кодом.
Т.е. - единственный способ сейчас - это отключить поиск зависимостей, а этого
делать не хочется, т.к. скрипты писал не я, они большие и вычитывать все просто
долго.
Comment 4 Dmitry V. Levin 2005-06-29 22:29:43 MSD
* Wed Jun 29 2005 Dmitry V. Levin <ldv@altlinux.org> 4.0.4-alt46
- shell.req: use "bash" for Bourne-Again shell scripts, and "sh"
  for others (closes #7242).