Bug 7242 - использование башизма в скриптах не проходит через find-requires
Summary: использование башизма в скриптах не проходит через find-requires
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build (show other bugs)
Version: unstable
Hardware: all Linux
: P2 critical
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-06-29 15:45 MSD by Anton Farygin
Modified: 2007-04-06 16:01 MSD (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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).