[devel] rpm-build-4.0.4-alt78 tcl dependencies

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пн Сен 10 02:28:25 MSD 2007


Есть два класса, к которым можно отнести большую часть
несобравшихся пакетов.  Первый класс связан с падением на поиске
tcl зависимостей.  Поиск tcl зависимостей стал менее опциональным,
что пока считается правильным без дополнительных пояснений.
Проверка на наличие интерпретатора [ -x /usr/bin/tclsh ] пред
запуском /usr/lib/rpm/tcl.req в принципе убрана.  Кроме того,
раньше на поиск зависимостей шли только файлы с расширением
*.tcl.  Теперь для отсева файлов используется скрипт tcl.req.files,
который, кроме tcl модулей, отбирает также tcl скрипты.  Вот он.

#!/bin/sh -efu
while IFS=$'\t' read -r f t; do
	# tcl modules
	case "$f" in
		*.tcl)
			case "$t" in
				*"symbolic link to"*)
					continue ;;
				*" text"*)
					echo "$f"; continue ;;
				*)
					echo "${0##*/}: $f: $t" >&2
					echo "$f"; continue ;;
			esac
	esac
	# scripts
	case "$t" in
		#!/usr/bin/tclsh
		*"/tclsh script text"*)
			echo "$f"; continue ;;
		#!/usr/bin/env tclsh
		*" tclsh script text"*)
			echo "$f"; continue ;;
		#!/usr/bin/wish
		*"/wish script text"*)
			echo "$f"; continue ;;
		#!/usr/bin/env wish
		*" wish script text"*)
			echo "$f"; continue ;;
	esac
done

Поясню также, что сейчас пакет rpm-build-tcl не содержит зависимости
на tcl, то есть фактическая возможность запуска tcl.req ничем не
гарантируется.  Всё это вместе приводит к падению tcl.req и,
следовательно, невозможности сборки некоторых пакетов.

> AutoScan-1.01-alt1
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	RPM build errors:

Этот пакет содержит wish скрипт:
$ rpmfile /ALT/Sisyphus/files/i586/RPMS/AutoScan-1.01-alt1.i586.rpm |grep wish
/usr/bin/AutoScan_Network_Error.sh      100755  a /usr/bin/wish script text executable
$

Это скрипт, по-видимому, не требует никаких tcl пакетов.
$ rpmpeek /ALT/Sisyphus/files/i586/RPMS/AutoScan-1.01-alt1.i586.rpm grep require ./usr/bin/AutoScan_Network_Error.sh  
$

> TclTutor-2.0-alt0.2
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	RPM build errors:
> 	error: Failed to find Requires
> 	/bin/sh failed

Этот пакет содержит некоторое количество tcl скриптов.
$ rpmfile /ALT/Sisyphus/files/noarch/RPMS/TclTutor-2.0-alt0.2.noarch.rpm |grep tcl
/usr/bin/TclTutor.tcl   100755  Bourne shell script text executable
/usr/bin/tcltutor       120777  symbolic link to `TclTutor.tcl'
/usr/share/TclTutor/htmllib.tcl 100644  Bourne shell script text executable
/usr/share/TclTutor/scaler.tcl  100644  ASCII English text
$

Эти скрипты, по-видимому, не требуют никаких tcl пакетов.

$ rpmpeek /ALT/Sisyphus/files/noarch/RPMS/TclTutor-2.0-alt0.2.noarch.rpm grep require ./usr/bin/TclTutor.tcl ./usr/share/TclTutor/htmllib.tcl ./usr/share/TclTutor/scaler.tcl
./usr/bin/TclTutor.tcl:#  Using packages would be good, but would require some more installation
./usr/share/TclTutor/htmllib.tcl:# package require http 2
./usr/share/TclTutor/htmllib.tcl:# Applications can overwrite this procedure, as required, or
./usr/share/TclTutor/htmllib.tcl:# HM$win structure.  We don't need to check for the existance of required
./usr/share/TclTutor/htmllib.tcl:       HMextract_param $param name             ;# required
./usr/share/TclTutor/scaler.tcl:#   Throws an error if unrecognized arguments or required args
$ 

> alterator-firewall-0.5-alt3
> 	shell.req:
> 	/usr/src/tmp/alterator-firewall-buildroot/usr/lib/alterator/backend3/template-oldfw:
> 	message_loop not found (skip)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	RPM build errors:

Этот пакет содержит tcl скрипт, который, кажется, ничего не требует.
$ rpmfile /ALT/Sisyphus/files/i586/RPMS/alterator-firewall-0.5-alt3.i586.rpm |grep tcl
/etc/dwall-alt/expert/scripts/parse.tcl 100644  a /usr/bin/tclsh script text executable
$ 

> eciadsl-usermode-0.11beta1-alt1
> 	shell.req: /usr/src/tmp/eciadsl-usermode-buildroot/usr/bin/eciadsl-start: fatal not found
> 	(skip)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	RPM build errors:
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	/bin/sh failed

$ rpmfile /ALT/Sisyphus/files/i586/RPMS/eciadsl-usermode-0.11beta1-alt1.i586.rpm |grep wish
/usr/bin/eciadsl-config-tk  100755      a /usr/bin/wish script text executable
$
Кажется, этот скрипт ничего не требует.

> freesci-0.3.5-alt2
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	RPM build errors:

/usr/bin/freesci-setup  100755  a /usr/bin/wish script text executable
не требует

> fvwm-tcl-1.2-alt1
> 	find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl)
> 	/usr/lib/rpm/tcl.prov: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.prov: line 3: exec: /usr/bin/tclsh: cannot execute: No such file
> 	or directory
> 	RPM build errors:
> 	error: /bin/sh failed
> 	error: Failed to find Provides
> 	/bin/sh failed


/usr/lib/fvwm-tcl/fvwm.tcl  100644      ASCII text
/usr/lib/fvwm-tcl/pkgIndex.tcl  100644  ASCII English text

Скрипт fvwm.tcl может что-то требовать.
$ rpmpeek /ALT/Sisyphus/files/i586/RPMS/fvwm-tcl-1.2-alt1.i586.rpm grep require ./usr/lib/fvwm-tcl/fvwm.tcl
package require Tcl 8.0 ;# we need binary command
if {[catch {package require Tclx}]} {
        error "Tclx is required for all systems except Linux"
$

Примечательно однако, что пакет fvwm-tcl не предоставляет ни одной
tcl(...) зависимости:
$ rpm -qp --provides /ALT/Sisyphus/files/i586/RPMS/fvwm-tcl-1.2-alt1.i586.rpm                      
fvwm-tcl = 1.2-alt1
$

> geany-0.11-alt1
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	RPM build errors:
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	/bin/sh failed


/usr/share/geany/filetypes.tcl  100644  ASCII C++ program text, with very long lines
похоже на ложное срабатывание по расширению *.tcl

> gettext-0.14.6-alt2
> 	shell.req: /usr/src/tmp/gettext-buildroot/usr/bin/gettextize: func_modify_Makefile_am
> 	not found (skip)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	RPM build errors:

$ rpmfile gettext-tools-0.14.6-alt2.i586.rpm |grep tcl 
/usr/share/gettext/msgunfmt.tcl 100644  ASCII English text
$
не требует

> git-1.5.3.1-alt1
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	RPM build errors:
> 	error: Failed to find Requires
> 	/bin/sh failed

$ rpmfile gitk-1.5.3.1-alt1.i586.rpm               
/usr/bin/gitk   100755  Bourne shell script text executable
/usr/share/man/man1/gitk.1.gz   100644  gzip compressed data, from Unix, max compression
$
файл /usr/bin/gitk написан на wish, но ничего не требует

> gsm-tools-0.0.4-alt5
> 	find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl)
> 	/usr/lib/rpm/tcl.prov: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.prov: line 3: exec: /usr/bin/tclsh: cannot execute: No such file
> 	or directory
> 	error: /bin/sh failed
> 	error: Failed to find Provides
> 	RPM build errors:


$ rpmfile gsm-tools-0.0.4-alt5.noarch.rpm |grep tcl
/usr/bin/gsm-tools      100755  a /usr/bin/tclsh script text executable
/usr/share/tcl/gsm-tools    40755       directory
/usr/share/tcl/gsm-tools/gui.tcl        100644  ASCII text, with very long lines
/usr/share/tcl/gsm-tools/lib_phone_common.tcl   100644  ASCII text
/usr/share/tcl/gsm-tools/lib_siemens.tcl        100644  ASCII text
/usr/share/tcl/gsm-tools/lib_t39.tcl    100644  ASCII text
/usr/share/tcl/gsm-tools/phonebooklib.tcl       100644  a /usr/bin/tclsh script text executable
/usr/share/tcl/gsm-tools/pkgIndex.tcl   100644  ASCII English text
/usr/share/tcl/gsm-tools/smslib.tcl     100644  ASCII C program text
$

Здесь очень плохая ситуация -- обламывается tcl.prov (а не req).
По идее должна появиться зависимость Provides: tcl(smslib).
Если она не появится, то это чревато анметами.

Замечу, что tcl.prov ЗАПУСКАЕТСЯ ТОЛЬКО НА ФАЙЛЫ pkgIndex.tcl,
которые ЗАВЕДОМО ДОЛЖНЫ ЧТО-ТО ПРЕДОСТАВЛЯТЬ.

> koules-1.4-alt5
> 	gccmakedep  -- -Ixlib  -I/usr/include -I/usr/include   -Dlinux -D__i386__
> 	-D_POSIX_C_SOURCE=199309L			      -D_POSIX_SOURCE
> 	-D_XOPEN_SOURCE					-D_BSD_SOURCE
> 	-D_SVID_SOURCE				       -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
> 	-DFUNCPROTO=15 -DNARROWPROTO   -DSOUND -DJOYSTICK -DNETSUPPORT -DMITSHM -DHAVEUSLEEP -Wall
> 	-ffast-math  -Ixlib	    -DASSEMBLY	   -DSOUNDSERVER=\"/usr/games/koules.sndsrv.linux\"
> 	-DSOUNDDIR=\"/usr/share/games/koules\"	-DSOUNDDEV=\"/dev/dsp\"   -- koules.c menu.c
> 	gameplan.c font.c intro.c rcfiles.c	  framebuffer.c cmap-x11.c sound.c nas_sound.c
> 	rsound.c client.c server.c sock.c objectsio.c mygetopt.c
> 	rm: cannot remove `mdep27049.tmp': No such file or directory
> 	rm: cannot remove `Makefile.bak': No such file or directory
> 	rm: cannot remove `mdep27049.tmp*': No such file or directory
> 	make: Leaving directory `/usr/src/RPM/BUILD/koules1.4'
> 	--
> 	shell.req: /usr/src/tmp/koules-buildroot/usr/games/koules: mainmenu not found (skip)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	RPM build errors:
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	/bin/sh failed

/usr/games/koules.tcl   100755  a /usr/bin/wish script text executable
не требует

> ltsp5-5.0-alt0.44
> 	symlinks.req: /usr/src/tmp/ltsp5-buildroot/etc/X11/xorg.conf.auto:
> 	/var/cache/ltspconf/xorg.conf -> /var/cache/ltspconf/xorg.conf (raw, not found)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	RPM build errors:
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	/bin/sh failed


$ rpmfile ltsp5-client-5.0-alt0.44.i586.rpm |grep tcl
/usr/sbin/ltsconf       100755  a /usr/bin/tclsh script text executable
/usr/share/ltsp-client/conffile.tcl     100644  ASCII English text
$ rpmpeek ltsp5-client-5.0-alt0.44.i586.rpm grep require -A1  ./usr/sbin/ltsconf       
#package require conffile
source /usr/share/ltsp-client/conffile.tcl
$

Требует самого себя...

> micq-0.5.0.3-alt1.1
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	RPM build errors:
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	File listed twice: /usr/share/micq/contrib

/usr/share/micq/contrib/logconv.tcl     100644  a /usr/bin/tclsh script text executable
/usr/share/micq/contrib/logmod.tcl      100644  a /usr/bin/tclsh script text executable
не требует

> openmpi-1.2.3-alt4
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	RPM build errors:

/etc/openmpi/openmpi-totalview.tcl      100644  ASCII English text
не требует

> remind-03.01.00-alt1
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	RPM build errors:
> 	error: Failed to find Requires
> 	/bin/sh failed

/usr/bin/cm2rem.tcl     100755  Bourne shell script text executable
не требует

> rp-pppoe-3.7-alt2
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	RPM build errors:
> 	error: Failed to find Requires
> 	Macro %b not found

$ rpmfile rp-pppoe-gui-3.7-alt2.i586.rpm |grep wish  
/usr/bin/tkpppoe        100755  a /usr/bin/wish script text executable

вероятно что-то требует:
set problem [catch {package require msgcat} err]

> sandman-0.5.6-alt1
> 	find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl)
> 	/usr/lib/rpm/tcl.prov: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.prov: line 3: exec: /usr/bin/tclsh: cannot execute: No such file
> 	or directory
> 	RPM build errors:
> 	error: /bin/sh failed
> 	error: Failed to find Provides
> 	/bin/sh failed


$ rpmfile sandman-0.5.6-alt1.noarch.rpm |grep tcl       
/usr/bin/sandcl 100755  a /usr/bin/tclsh script text executable
/usr/share/sandlib/pkgIndex.tcl 100644  ASCII English text
/usr/share/sandlib/sandbox.tcl  100644  ASCII English text
/usr/share/sandlib/sandcl.tcl   100644  ASCII English text
/usr/share/sandlib/sandcvs.tcl  100644  ASCII English text
/usr/share/sandlib/sandlib.tcl  100644  ASCII English text
/usr/share/sandlib/sandpm.tcl   100644  ASCII English text
/usr/share/sandlib/sandrep.tcl  100644  ASCII English text
/usr/share/sandlib/sandserv.tcl 100644  ASCII English text
/usr/share/sandlib/sandtask.tcl 100644  ASCII English text
/usr/share/sandlib/sandtool.tcl 100644  ASCII English text
$
Опять не отрабатывает prov.

> seiros-pbx-fax-1.1-alt1
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	RPM build errors:
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	/bin/sh failed

/usr/bin/fax-send       100755  a /usr/bin/tclsh script text executable
Требует!
$ rpmpeek seiros-pbx-fax-1.1-alt1.noarch.rpm grep require ./usr/bin/fax-send
package require mime
package require smtp
$

> tcl-snack-2.2.10-alt1
> 	shell.req: /usr/src/tmp/tcl-snack-buildroot/usr/share/tcl/snack2.2.10/demos/mapChan.tcl:
> 	wish8.3 not found (skip)
> 	hasher-priv: master: idle time limit (3600 seconds) exceeded

Хех, shell.req завис.
Кажется, я знаю почему.

> timetool-2.8-alt7
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	RPM build errors:
> 	error: /bin/sh failed
> 	error: Failed to find Requires
> 	/bin/sh failed

/usr/lib/timetool/dialog.tcl    100644  ASCII English text
почти не требует
catch {source $env(CONTROL_PANEL_LIB_DIR)/colorscheme.tcl}

> tkeca-4.0.2-alt0.5
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	error:

/usr/bin/tkeca.tcl      100755  Bourne shell script text executable
не требует

> vim-plugin-lh_cpp-ftplugin-20040316-alt1.1
> 	find-requires: running scripts
> 	(files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl)
> 	/usr/lib/rpm/tcl.req: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.req: line 3: exec: /usr/bin/tclsh: cannot execute: No such file or
> 	directory
> 	error: /bin/sh failed
> 	error:

$ rpmfile vim-plugin-lh_cpp-ftplugin-20040316-alt1.1.noarch.rpm |grep tcl
/usr/share/vim/vimfiles/after/template/template.tcl     100644  ISO-8859 text, with CRLF line terminators
$
ошибочное опознание по расширению *.tcl

> vtcl-1.6.0-alt1
> 	find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl)
> 	/usr/lib/rpm/tcl.prov: line 3: /usr/bin/tclsh: No such file or directory
> 	/usr/lib/rpm/tcl.prov: line 3: exec: /usr/bin/tclsh: cannot execute: No such file
> 	or directory
> 	RPM build errors:
> 	error: /bin/sh failed
> 	error: Failed to find Provides
> 	/bin/sh failed

Очень много tcl файлов, не срабатывает prov.
/usr/share/vtcl-1.6.0/lib/color.tcl     100644  ASCII English text
/usr/share/vtcl-1.6.0/lib/command.tcl   100644  ASCII English text
/usr/share/vtcl-1.6.0/lib/compound.tcl  100644  ASCII English text
/usr/share/vtcl-1.6.0/lib/compounds.tcl 100644  ASCII English text


Вроде всё.
Итого, имеется более 20 поломанных пакетов.
Надо обсудить, что с ними делать.

Можно обратить внимание на то, что большинство скриптов на самом деле
не требуют каких-либо tcl пактов (то есть внешних модулей).  В принципе
можно было бы в tcl.req.files добавить проверку типа 'grep -w require',
и если заведомо ничего не требуется, то зависимости можно не искать.
Это починило бы большую часть пакетов.  В остальные же пакеты пришлось
бы добавить BuildRequires: tcl.

Но мне этот вариант не нравится вот в каком отношении.  Поиск tcl
зависимостей даёт больше, чем просто зависимости, которых почти нет.
По идее, дополнительно происходит syntax check.  Это очень мощный
и притом бесплатный способ проверки скриптов, он фактически защищает
от запаковки заведомо поломанного кода.  Фактически такой подход
уже является "нашим стилем" в rpm-build в других аналогичных случаях.
Проверка синтаксиса при анализе шелл-зависимостей мне пару раз помогала
обнаружить ошибки в шелл-скриптах.  В перле то же самое.  Недавно
я помогал migor@ собирать перловую софтину OpenCA, и практически
вынужден был исправить все ошибки в перловых скриптах (настоящие!),
чтобы пакет собрался.

Так что я предлагаю другой вариант: внести tcl в базовую сборочную
среду.  Это решает все проблемы.  Единственный недостаток -- это
внесение нового пакета в базовую сборочную среду per se.  Это в общем-то
не слишком популярный интерпретатор, но не "левый", то есть с давней
традицией, историей и т.п.

Вместе с тем, я не предлагаю ПРОСТО внести tcl в базовую сборочную
среду.  Я предлагаю решить проблему НАЛИЧИЯ в базовой сборочной среде
скриптов rpm-build-tcl, возможность запуска которых ничем не
гарантируется.  То есть нужно либо вынести rpm-build-tcl из базовой
сборочной среды, либо добавить в него зависимость на tcl, чтобы скрипты
поиска зависимостей всегда работали.  Я предлагаю второй вариант.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070910/04464a28/attachment-0002.bin>


Подробная информация о списке рассылки Devel