Bug 29584

Summary: libshell требует для сборки себя же
Product: Sisyphus Reporter: solo <solo>
Component: libshellAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: minor    
Priority: P3 CC: legion
Version: unstableKeywords: patch
Hardware: all   
OS: Linux   

Description solo 2013-11-14 19:02:54 MSK
Начиная от версии 0.1.7, libshell требует для сборки себя же. При отсутствии libshell в системе (сборочном chroot) наблюдаю следующее:

...
+ make install DESTDIR=/builddir/build/BUILDROOT/libshell-0.2.0-1.el6.altell1.noarch DESTDIR=/builddir/build/BUILDROOT/libshell-0.2.0-1.el6.altell1.noarch install install-single
install -d -m755 /builddir/build/BUILDROOT/libshell-0.2.0-1.el6.altell1.noarch/bin
cp -a shell-args shell-cmdline shell-config shell-error shell-getopt shell-ini-config shell-ip-address shell-mail-address shell-process shell-quote shell-regexp shell-run shell-signal shell-source shell-string shell-unittest shell-var shell-version /builddir/build/BUILDROOT/libshell-0.2.0-1.el6.altell1.noarch/bin/
install -d -m755 /builddir/build/BUILDROOT/libshell-0.2.0-1.el6.altell1.noarch/usr/share/man/man3
for i in docs/libshell.man docs/shell-error.man; do \
		d="${i%.man}.3"; d="${d##*/}"; \
		install -m644 $i /builddir/build/BUILDROOT/libshell-0.2.0-1.el6.altell1.noarch/usr/share/man/man3/$d; \
	done
install -d -m755 /builddir/build/BUILDROOT/libshell-0.2.0-1.el6.altell1.noarch/usr/share/libshell
/builddir/build/BUILD/libshell-0.2.0/gen-deps.sh shell-args shell-cmdline shell-config shell-error shell-getopt shell-ini-config shell-ip-address shell-mail-address shell-process shell-quote shell-regexp shell-run shell-signal shell-source shell-string shell-unittest shell-var shell-version > /builddir/build/BUILDROOT/libshell-0.2.0-1.el6.altell1.noarch/usr/share/libshell/DEPS
./shell-quote: line 9: .: shell-version: file not found
make: *** [install] Error 1

Причина: Скрипты gen-deps.sh и gen-syms.sh используют shell-quote, расположенный в каталоге сборки:

...
. ./shell-quote

А shell-quote, пытается задействовать нужные скрипты через PATH:

...
. shell-version
. shell-error
. shell-string

Что вызывает ошибку, если их там нет.

Предлагаю при вызове сборочных скриптов (gen-*.sh) дополнять PATH каталогом, из которого скрипты инсталлируются (см. http://git.altlinux.org/people/solo/packages/?p=libshell.git;a=commitdiff;h=b8818d5cae1e3d9a16dc85689605eabecc55f83f).
Comment 1 Alexey Gladkov 2013-11-15 15:51:44 MSK
Хм ... Согласен, но только мне кажется, что правильнее PATH="$(CURDIR):$(PATH)"
Comment 2 Alexey Gladkov 2013-11-15 15:53:43 MSK
Исправите или мне закоммитить ?
Comment 3 solo 2013-11-15 16:19:15 MSK
(В ответ на комментарий №2)
> Исправите или мне закоммитить ?

Патч готов сделать сейчас. Если нужно NMU -- то только ночью.
Comment 5 Alexey Gladkov 2013-11-15 16:54:01 MSK
Забрал. Спасибо. Скоро выложу.
Comment 6 Repository Robot 2015-02-24 15:56:12 MSK
libshell-0.3.0-alt1 -> sisyphus:

* Tue Feb 24 2015 Alexey Gladkov <legion@altlinux> 0.3.0-alt1
- New version (0.3.0).
- Fix bootstrap (ALT#29584).
- shell-ini-config changes:
  + Add ini_config_is_set() function.
  + Take care about lines without values (ALT#30713).
- shell-unittest changes:
  + Add TESTCASES variable to list individual testcases (ALT#27059).
  + Add TESTTRACE variable to run testcase in debug mode (ALT#27059).