[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