* [devel] rpm-build-4.0.4-alt78 rebuild status @ 2007-09-09 18:19 Alexey Tourbin 2007-09-09 19:45 ` [devel] rpm-build-4.0.4-alt78 beehive_status Alexey Tourbin 2007-09-10 22:25 ` [devel] rpm-build-4.0.4-alt78 rebuild status Michael Shigorin 0 siblings, 2 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-09 18:19 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 2098 bytes --] Слава Столлману, проша пересборка сизифа с новым rpm-build, почти сразу после последней плановой пересборки (в пятницу). Теперь есть возможность сравнить статус этих пересборок. Часть пакетов не собралось, что с высокой вероятностью указывает на то, что они не собрались именно из-за изменений в rpm-build. Вот список не собравшихся пакетов (по сравнению с плановой пересборкой). [at@basalt beehive]$ comm -13 <(ls -1 old-logs/i586/2007/0907/error) <(ls -1 error) AutoScan-1.01-alt1 GroupUserFolder-3.2-alt1.1 ORBit2-2.14.7-alt1 TclTutor-2.0-alt0.2 Zope-2.7.7-alt1 alterator-firewall-0.5-alt3 carol-0:2.2.7-alt1_1jpp1.7 cherry-2.0.cvs20060301-alt1 devhelp-0.14-alt1 eciadsl-usermode-0.11beta1-alt1 fedora-ds-adminutil-1.1.2-alt1.20070817 freesci-0.3.5-alt2 fvwm-tcl-1.2-alt1 geany-0.11-alt1 geda-utils-20070526-alt1 gettext-0.14.6-alt2 git-1.5.3.1-alt1 gsm-tools-0.0.4-alt5 jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 kdesdk-3.5.7-alt1 koules-1.4-alt5 lazarus-0.9.22-alt1 libalut-1.1.0-alt1.2 libgtkmathview-0.7.7-alt1 libopenal-0.0.8-alt3 libunwind-0.99-alt1 ltsp5-5.0-alt0.44 micq-0.5.0.3-alt1.1 nemerle-0.9.3.99.6733-alt2.1 openmpi-1.2.3-alt4 perl-WWW-Mechanize-1.18-alt1 planner-0.14.2-alt3 python-module-gst-0.10.8-alt1 remind-03.01.00-alt1 rp-pppoe-3.7-alt2 sandman-0.5.6-alt1 seiros-pbx-fax-1.1-alt1 tcl-snack-2.2.10-alt1 timetool-2.8-alt7 tkeca-4.0.2-alt0.5 vim-plugin-lh_cpp-ftplugin-20040316-alt1.1 vtcl-1.6.0-alt1 wanpipe-3.1.3-alt1 wbxml2-0.9.2-alt2.svn49synce xmms2-0.2-alt5.DrHouse xorg-x11-proto-devel-7.3.0-alt4 [at@basalt beehive]$ В свою очередь пакеты, которые собрались, у некоторых из них изменились зависимости. Первичный осмотр показывает, что в ряде случаев изменение зависимостей совсем нетривиальное. Я собираюсь осмотреть все неперсобравшиеся пакеты, а также все нетривиальные изменения зависимостей, и отписать по каждому случаю или по классу случаев в devel@. К тривиальным изменениям зависимостей я отношу добавление зависимостей на coreutils, grep, sed и т.д. -- от добра добра не ищут. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [devel] rpm-build-4.0.4-alt78 beehive_status 2007-09-09 18:19 [devel] rpm-build-4.0.4-alt78 rebuild status Alexey Tourbin @ 2007-09-09 19:45 ` Alexey Tourbin 2007-09-09 19:54 ` Slava Semushin ` (4 more replies) 2007-09-10 22:25 ` [devel] rpm-build-4.0.4-alt78 rebuild status Michael Shigorin 1 sibling, 5 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-09 19:45 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 19886 bytes --] On Sun, Sep 09, 2007 at 10:19:38PM +0400, Alexey Tourbin wrote: > Вот список не собравшихся пакетов (по сравнению с плановой пересборкой). Вот этот же самый список с диагностикой, отформатированный при помощи скрипта beehive_status из qa-robot.git. I: Sisyphus-20070909 beehive_status: +46 (106) 46 NEW error logs 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: GroupUserFolder-3.2-alt1.1 (Missing operator before $?) syntax error at /usr/src/tmp/GroupUserFolder-buildroot/usr/lib/zope/lib/python/Products/GroupUserFolder/cvs2cl.pl line 2, near "$0 $" /usr/src/tmp/GroupUserFolder-buildroot/usr/lib/zope/lib/python/Products/GroupUserFolder/cvs2cl.pl had compilation errors. # /usr/src/tmp/GroupUserFolder-buildroot/usr/lib/zope/lib/python/Products/GroupUserFolder/cvs2cl.pl: deparse failed. isPerl=0.0337665222703543. error: /bin/sh failed error: Failed to find Requires RPM build errors: ORBit2-2.14.7-alt1 Testing Async invocations ... ** ERROR **: file client.c: line 1982 (testAsync): assertion failed: (ev->_major == CORBA_NO_EXCEPTION) aborting... ././test.sh: line 24: 30519 Aborted ./client $1 Test failed with params: --ORBIIOPIPv4=1 --ORBIIOPUSock=0 --ORBCorbaloc=1 if this is an IPv4 test, can you ping apiary.office.altlinux.org ? FAIL: ./test.sh 1 of 1 tests failed Please report to http://bugzilla.gnome.org/enter_bug.cgi?product=ORBit2 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 Zope-2.7.7-alt1 /usr/lib/rpm/python.req.py: /usr/src/tmp/Zope-buildroot/usr/lib/python2.4/site-packages/ZPublisher/xmlrpc.py: line=157 IGNORE module=traceback /usr/src/tmp/Zope-buildroot/usr/lib/python2.4/site-packages/ZPublisher/Client.py: line 47: syntax error near unexpected token `(' /usr/src/tmp/Zope-buildroot/usr/lib/python2.4/site-packages/ZPublisher/Client.py: line 47: `class BadReply(Exception):' error: /bin/sh failed error: Failed to find Requires RPM build errors: 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: carol-0:2.2.7-alt1_1jpp1.7 [junit] Tests run: 11, Failures: 0, Errors: 0, Time elapsed: 2.912 sec [junit] Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread [junit] at java.lang.Thread.start(Native Method) -- [junit] Tests run: 11, Failures: 1, Errors: 1, Time elapsed: 3.428 sec [junit] Test org.objectweb.carol.jtests.conform.basic.clients.MultiProtocolTests FAILED process.stopper: -- process.stopper: hasher-priv: master: idle time limit (3600 seconds) exceeded cherry-2.0.cvs20060301-alt1 (Missing operator before ?) syntax error at /usr/src/tmp/cherry-buildroot/usr/lib/cherry/tariffsrv/CALC.pl line 2, near "/bin/sh " /usr/src/tmp/cherry-buildroot/usr/lib/cherry/tariffsrv/CALC.pl had compilation errors. # /usr/src/tmp/cherry-buildroot/usr/lib/cherry/tariffsrv/CALC.pl: deparse failed. isPerl=0.00157232704402516. error: /bin/sh failed error: devhelp-0.14-alt1 find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl) Package libgnomeui-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libgnomeui-2.0.pc' to the PKG_CONFIG_PATH environment variable Package 'libgnomeui-2.0', required by 'devhelp', not found RPM build errors: error: /bin/sh failed error: Failed to find Provides /bin/sh failed 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 fedora-ds-adminutil-1.1.2-alt1.20070817 find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl) Package icu was not found in the pkg-config search path. Perhaps you should add the directory containing `icu.pc' to the PKG_CONFIG_PATH environment variable Package 'icu', required by 'adminutil', not found error: /bin/sh failed error: Failed to find Provides RPM build errors: 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: 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 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 geda-utils-20070526-alt1 MemoryError error: /bin/sh failed error: Failed to find Requires RPM build errors: 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: 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 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: jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 find-requires: running scripts (files,lib,pam,perl,pkgconfig,python,shebang,shell,static,symlinks,tcl) /usr/src/tmp/jakarta-commons-latka-buildroot/usr/share/jakarta-commons-latka-1.0/bin/latka.sh: line 19: syntax error near unexpected token `do\r' /usr/src/tmp/jakarta-commons-latka-buildroot/usr/share/jakarta-commons-latka-1.0/bin/latka.sh: line 19: `do\r' error: /bin/sh failed error: Failed to find Requires RPM build errors: kdesdk-3.5.7-alt1 /usr/src/tmp/kdesdk-buildroot/usr/bin/svnlastchange syntax OK /usr/src/tmp/kdesdk-buildroot/usr/bin/kde-build: line 839: syntax error near unexpected token `|' /usr/src/tmp/kdesdk-buildroot/usr/bin/kde-build: line 839: ` |' RPM build errors: error: /bin/sh failed error: Failed to find Requires /bin/sh failed 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 lazarus-0.9.22-alt1 (Missing operator before $?) syntax error at /usr/src/tmp/lazarus-buildroot/usr/lib/lazarus/tools/cvs2cl.pl line 2, near "$0 $" /usr/src/tmp/lazarus-buildroot/usr/lib/lazarus/tools/cvs2cl.pl had compilation errors. -- RPM build errors: error: /bin/sh failed error: Failed to find Requires /bin/sh failed libalut-1.1.0-alt1.2 find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl) Package libopenal was not found in the pkg-config search path. Perhaps you should add the directory containing `libopenal.pc' to the PKG_CONFIG_PATH environment variable Package 'libopenal', required by 'freealut', not found RPM build errors: error: /bin/sh failed error: Failed to find Provides /bin/sh failed libgtkmathview-0.7.7-alt1 find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl) Package mathmlview-backend-gtk was not found in the pkg-config search path. Perhaps you should add the directory containing `mathmlview-backend-gtk.pc' to the PKG_CONFIG_PATH environment variable Package 'mathmlview-backend-gtk', required by 'GtkMathView', not found RPM build errors: error: /bin/sh failed error: Failed to find Provides /bin/sh failed libopenal-0.0.8-alt3 ./usr/lib: /sbin/ldconfig: Cannot stat ./usr/lib/libopenal.so: No such file or directory /sbin/ldconfig: Cannot stat ./usr/lib/libopenal.so.0: No such file or directory libopenal.so.0 -> libopenal.so.0.0.0 (changed) -- find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl) Package @requirements@ was not found in the pkg-config search path. Perhaps you should add the directory containing `@requirements@.pc' to the PKG_CONFIG_PATH environment variable Package '@requirements@', required by 'OpenAL', not found error: /bin/sh failed error: Failed to find Provides RPM build errors: libunwind-0.99-alt1 latex2man -t ./libunwind.trans unw_create_addr_space.tex unw_create_addr_space.man make[1]: latex2man: Command not found make[1]: Leaving directory `/usr/src/RPM/BUILD/libunwind-0.99-alpha/doc' 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 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 nemerle-0.9.3.99.6733-alt2.1 ** (process:13190): WARNING **: Missing method .ctor in assembly /usr/src/tmp/nemerle-buildroot/usr/lib/mono/gac/Nemerle.Macros/0.9.3.19849__5291d186334f6101/Nemerle.Macros.dll, type Nemerle.Internal.OperatorAttribute ** ERROR **: Can't find custom attr constructor image: /usr/src/tmp/nemerle-buildroot/usr/lib/mono/gac/Nemerle.Macros/0.9.3.19849__5291d186334f6101/Nemerle.Macros.dll mtoken: 0x0a0002e2 aborting... error: /bin/sh failed error: 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: perl-WWW-Mechanize-1.18-alt1 t/local/back............# Started http://localhost:56839/ # Failed test '404 check' # at t/local/back.t line 148. -- dubious Test returned status 1 (wstat 256, 0x100) DIED. FAILED test 28 Failed 1/38 tests, 97.37% okay (less 2 skipped tests: 35 okay, 92.11%) -- 9 tests and 10 subtests skipped. Failed 1/40 test scripts. 1/448 subtests failed. Files=40, Tests=448, 188 wallclock secs ( 5.38 cusr + 0.54 csys = 5.92 CPU) Failed 1/40 test programs. 1/448 subtests failed. make: *** [test_dynamic] Error 255 planner-0.14.2-alt3 find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl) Package libgsf-1 was not found in the pkg-config search path. Perhaps you should add the directory containing `libgsf-1.pc' to the PKG_CONFIG_PATH environment variable Package 'libgsf-1', required by 'libplanner', not found RPM build errors: error: /bin/sh failed error: Failed to find Provides File listed twice: /usr/share/gnome/help/planner python-module-gst-0.10.8-alt1 find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl) Package pygtk-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `pygtk-2.0.pc' to the PKG_CONFIG_PATH environment variable Package 'pygtk-2.0', required by 'gst-python', not found RPM build errors: error: /bin/sh failed error: Failed to find Provides /bin/sh failed 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 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 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 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 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 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 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: 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: 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 wanpipe-3.1.3-alt1 shell.req: /usr/src/tmp/wanpipe-buildroot/etc/wanpipe/lib/x25_lib.sh: menu_name not found (skip) /usr/src/tmp/wanpipe-buildroot/etc/wanpipe/samples/redialer: line 17: syntax error near unexpected token `newline' /usr/src/tmp/wanpipe-buildroot/etc/wanpipe/samples/redialer: line 17: `PHONE1=<INSERT PHONE NUMBER>' error: /bin/sh failed error: wbxml2-0.9.2-alt2.svn49synce find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl) Package libxml-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libxml-2.0.pc' to the PKG_CONFIG_PATH environment variable Package 'libxml-2.0', required by 'libwbxml2', not found error: /bin/sh failed error: Failed to find Provides RPM build errors: xmms2-0.2-alt5.DrHouse pkgconfig.prov: /usr/src/tmp/xmms2-buildroot/usr/lib/pkgconfig/xmms2-client-cpp-glib.pc: invalid pkg-config output: xmms2-client-cpp-glib = 0.2 DrHouse error: /bin/sh failed error: xorg-x11-proto-devel-7.3.0-alt4 find-provides: running scripts (alternatives,lib,pam,perl,pkgconfig,python,shell,tcl) Package xau was not found in the pkg-config search path. Perhaps you should add the directory containing `xau.pc' to the PKG_CONFIG_PATH environment variable Package 'xau', required by 'PrintProto', not found error: /bin/sh failed error: Failed to find Provides RPM build errors: Total 106 error logs. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 beehive_status 2007-09-09 19:45 ` [devel] rpm-build-4.0.4-alt78 beehive_status Alexey Tourbin @ 2007-09-09 19:54 ` Slava Semushin 2007-09-09 19:57 ` Slava Semushin 2007-09-09 20:12 ` Alexey Tourbin 2007-09-09 22:28 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Alexey Tourbin ` (3 subsequent siblings) 4 siblings, 2 replies; 29+ messages in thread From: Slava Semushin @ 2007-09-09 19:54 UTC (permalink / raw) To: ALT Linux Team development discussions 2007/9/10, Alexey Tourbin <at / altlinux.ru>: > On Sun, Sep 09, 2007 at 10:19:38PM +0400, Alexey Tourbin wrote: > > Вот список не собравшихся пакетов (по сравнению с плановой пересборкой). [...] > 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 [...] Я так понимаю, что это ложное срабатывание: [c0der@rock ~/git/geany/geany.git]$ grep -r tclsh . ./geany/data/filetypes.tcl:compiler=tclsh8.4 "%f" ./geany/data/filetypes.tcl:run_cmd=tclsh8.4 "%f" [c0der@rock ~/git/geany/geany.git]$ file geany/data/filetypes.tcl geany/data/filetypes.tcl: ASCII C++ program text, with very long lines На самом же деле это файл для подсветки синтаксиса языка tcl. И из-за его расширения подумали, что это скрипт на tcl, что явно не так: [c0der@rock ~/git/geany/geany.git]$ head -5 geany/data/filetypes.tcl # For complete documentation of this file; please see Geany's main documentation [styling] # foreground;background;bold;italic default=0x000000;0xffffff;false;false comment=0xd00000;0xffffff;false;false Мне нужно делать что-то по этому поводу? -- + Slava Semushin | slava.semushin @ gmail.com + ALT Linux Team | php-coder @ altlinux.ru ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 beehive_status 2007-09-09 19:54 ` Slava Semushin @ 2007-09-09 19:57 ` Slava Semushin 2007-09-09 20:15 ` Alexey Tourbin 2007-09-09 20:12 ` Alexey Tourbin 1 sibling, 1 reply; 29+ messages in thread From: Slava Semushin @ 2007-09-09 19:57 UTC (permalink / raw) To: ALT Linux Team development discussions 2007/9/10, Slava Semushin <slava.semushin / gmail.com>: > 2007/9/10, Alexey Tourbin <at / altlinux.ru>: > > On Sun, Sep 09, 2007 at 10:19:38PM +0400, Alexey Tourbin wrote: > > > Вот список не собравшихся пакетов (по сравнению с плановой пересборкой). > [...] > Я так понимаю, что это ложное срабатывание: Эээ... похоже япрогнал. [build_settings] # %f will be replaced by the complete filename # %e will be replaced by the filename without extension # (use only one of it at one time) compiler=tclsh8.4 "%f" run_cmd=tclsh8.4 "%f" Если правильно понимаю, то будет вызываться эта команда, а такой у нас, видимо, нет. > Мне нужно делать что-то по этому поводу? Что, заменить tclsh84 на tclsh? -- + Slava Semushin | slava.semushin @ gmail.com + ALT Linux Team | php-coder @ altlinux.ru ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 beehive_status 2007-09-09 19:57 ` Slava Semushin @ 2007-09-09 20:15 ` Alexey Tourbin 0 siblings, 0 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-09 20:15 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 1166 bytes --] On Mon, Sep 10, 2007 at 02:57:03AM +0700, Slava Semushin wrote: > 2007/9/10, Slava Semushin <slava.semushin / gmail.com>: > > 2007/9/10, Alexey Tourbin <at / altlinux.ru>: > > > On Sun, Sep 09, 2007 at 10:19:38PM +0400, Alexey Tourbin wrote: > > > > Вот список не собравшихся пакетов (по сравнению с плановой пересборкой). > > [...] > > Я так понимаю, что это ложное срабатывание: > > Эээ... похоже япрогнал. > > [build_settings] > # %f will be replaced by the complete filename > # %e will be replaced by the filename without extension > # (use only one of it at one time) > compiler=tclsh8.4 "%f" > run_cmd=tclsh8.4 "%f" > > Если правильно понимаю, то будет вызываться эта команда, а такой у > нас, видимо, нет. Нет, ты наверное неправильно понял. Файлы с расширением *.tcl (и дополнительно файл если file(1) опознает их как text) считаются кодом на языке tcl и обрабатываются при помощи tcl.req из пакета rpm-build-tcl. У пакета rpm-build-tcl сейчас нет зависимости на tcl, поэтому запуск tcl.req обламывается. Короче я буду постепенно всё объяснять, не надо задавать вопросов раньше, чем начнёт казаться, что не будет ответов. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 beehive_status 2007-09-09 19:54 ` Slava Semushin 2007-09-09 19:57 ` Slava Semushin @ 2007-09-09 20:12 ` Alexey Tourbin 2007-09-09 20:16 ` Led 2007-09-09 20:39 ` Alexey I. Froloff 1 sibling, 2 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-09 20:12 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 2075 bytes --] On Mon, Sep 10, 2007 at 02:54:32AM +0700, Slava Semushin wrote: > 2007/9/10, Alexey Tourbin <at / altlinux.ru>: > > On Sun, Sep 09, 2007 at 10:19:38PM +0400, Alexey Tourbin wrote: > > > Вот список не собравшихся пакетов (по сравнению с плановой пересборкой). > [...] > > 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 > [...] > > Я так понимаю, что это ложное срабатывание: > > [c0der@rock ~/git/geany/geany.git]$ grep -r tclsh . > ./geany/data/filetypes.tcl:compiler=tclsh8.4 "%f" > ./geany/data/filetypes.tcl:run_cmd=tclsh8.4 "%f" > [c0der@rock ~/git/geany/geany.git]$ file geany/data/filetypes.tcl > geany/data/filetypes.tcl: ASCII C++ program text, with very long lines > > На самом же деле это файл для подсветки синтаксиса языка tcl. И из-за > его расширения подумали, что это скрипт на tcl, что явно не так: > > [c0der@rock ~/git/geany/geany.git]$ head -5 geany/data/filetypes.tcl > # For complete documentation of this file; please see Geany's main documentation > [styling] > # foreground;background;bold;italic > default=0x000000;0xffffff;false;false > comment=0xd00000;0xffffff;false;false > > Мне нужно делать что-то по этому поводу? Осталось понять, почему этот пакет раньше собирался. Файлы с расширением *.tcl всегда обрабатывались. Просто раньше в find-requires была проверка на [ -x /usr/bin/tcl ]. Теперь ее там нет. Однако кажется, что tcl.req охотно кушает твой filetypes.tcl [builder@mash .in]$ RPM_BUILD_ROOT=/usr/src/tmp/geany-buildroot /usr/lib/rpm/tcl.req <<< /usr/src/tmp/geany-buildroot/usr/share/geany/filetypes.tcl [builder@mash .in]$ Будем разбираться. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 beehive_status 2007-09-09 20:12 ` Alexey Tourbin @ 2007-09-09 20:16 ` Led 2007-09-09 22:30 ` Alexey Tourbin 2007-09-09 20:39 ` Alexey I. Froloff 1 sibling, 1 reply; 29+ messages in thread From: Led @ 2007-09-09 20:16 UTC (permalink / raw) To: ALT Linux Team development discussions 2007/9/9, Alexey Tourbin <at@altlinux.ru>: > On Mon, Sep 10, 2007 at 02:54:32AM +0700, Slava Semushin wrote: > > 2007/9/10, Alexey Tourbin <at / altlinux.ru>: > > > On Sun, Sep 09, 2007 at 10:19:38PM +0400, Alexey Tourbin wrote: > > > > Вот список не собравшихся пакетов (по сравнению с плановой пересборкой). > > [...] > > > 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 > > [...] > > > > Я так понимаю, что это ложное срабатывание: > > > > [c0der@rock ~/git/geany/geany.git]$ grep -r tclsh . > > ./geany/data/filetypes.tcl:compiler=tclsh8.4 "%f" > > ./geany/data/filetypes.tcl:run_cmd=tclsh8.4 "%f" > > [c0der@rock ~/git/geany/geany.git]$ file geany/data/filetypes.tcl > > geany/data/filetypes.tcl: ASCII C++ program text, with very long lines > > > > На самом же деле это файл для подсветки синтаксиса языка tcl. И из-за > > его расширения подумали, что это скрипт на tcl, что явно не так: > > > > [c0der@rock ~/git/geany/geany.git]$ head -5 geany/data/filetypes.tcl > > # For complete documentation of this file; please see Geany's main documentation > > [styling] > > # foreground;background;bold;italic > > default=0x000000;0xffffff;false;false > > comment=0xd00000;0xffffff;false;false > > > > Мне нужно делать что-то по этому поводу? > > Осталось понять, почему этот пакет раньше собирался. > Файлы с расширением *.tcl всегда обрабатывались. > > Просто раньше в find-requires была проверка на [ -x /usr/bin/tcl ]. > Теперь ее там нет. > > Однако кажется, что tcl.req охотно кушает твой filetypes.tcl > > [builder@mash .in]$ RPM_BUILD_ROOT=/usr/src/tmp/geany-buildroot /usr/lib/rpm/tcl.req <<< /usr/src/tmp/geany-buildroot/usr/share/geany/filetypes.tcl > [builder@mash .in]$ > > Будем разбираться. А можно заодно разобраться python-зависимостями? А то приходится в %install переименовывать все python-скрипты, добавляя расширения .py, смотреть, какие зависимости нашлись и потом прописывать их в спеке вручную :( -- Led. ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 beehive_status 2007-09-09 20:16 ` Led @ 2007-09-09 22:30 ` Alexey Tourbin 0 siblings, 0 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-09 22:30 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 490 bytes --] On Sun, Sep 09, 2007 at 11:16:24PM +0300, Led wrote: > А можно заодно разобраться python-зависимостями? А то приходится в > %install переименовывать все python-скрипты, добавляя расширения .py, > смотреть, какие зависимости нашлись и потом прописывать их в спеке > вручную :( Так и сделано. В смысле, не переименование в *.py, а поиск зависимостей в не-*.py питоновских скриптах. :) Но там в двух-трёх случаях стали появляться какие-то анметы очень нехорошие. Дойдём и до них. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 beehive_status 2007-09-09 20:12 ` Alexey Tourbin 2007-09-09 20:16 ` Led @ 2007-09-09 20:39 ` Alexey I. Froloff 2007-09-09 23:05 ` Alexey Tourbin 1 sibling, 1 reply; 29+ messages in thread From: Alexey I. Froloff @ 2007-09-09 20:39 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 573 bytes --] * Alexey Tourbin <at@> [070910 00:14]: > Просто раньше в find-requires была проверка на [ -x /usr/bin/tcl ]. > Теперь ее там нет. Вот интересно, а должны ли rpm-build-скриптовойязык требовать обязательного наличия /usr/bin/скриптовойязык? Особенно если от rpm-build-скриптовойязык зависит сам rpm-build? perl есть в basesystem, но есть ещё tcl и python, а скоро может появиться и ruby. Получается, дешевле вручную проставлять зависимость на rpm-build-XXX и требовать интертрепатор, чем вносить их всех в зависимости rpm-build... -- Regards, Sir Raorn. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 beehive_status 2007-09-09 20:39 ` Alexey I. Froloff @ 2007-09-09 23:05 ` Alexey Tourbin 0 siblings, 0 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-09 23:05 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 2303 bytes --] On Mon, Sep 10, 2007 at 12:39:40AM +0400, Alexey I. Froloff wrote: > * Alexey Tourbin <at@> [070910 00:14]: > > Просто раньше в find-requires была проверка на [ -x /usr/bin/tcl ]. > > Теперь ее там нет. > Вот интересно, а должны ли rpm-build-скриптовойязык требовать > обязательного наличия /usr/bin/скриптовойязык? Особенно если от > rpm-build-скриптовойязык зависит сам rpm-build? perl есть в > basesystem, но есть ещё tcl и python, а скоро может появиться и > ruby. > > Получается, дешевле вручную проставлять зависимость на > rpm-build-XXX и требовать интертрепатор, чем вносить их всех в > зависимости rpm-build... Кое-что на эту тему я написал в письме про 'tcl dependencies'. Мое мнение таково: зависимости всех популярных языков программирования должны искаться в безусловном порядке, то есть, по сути, в rpm-build в идеале должны появиться зависимости на все пакеты rpm-build-язык. Иначе мы получаем не только плавающие зависимости Requires, но и, что гораздо хуже, плавающие зависимости Provides. Особенно если пакеты возьмётся собирать какой-нибудь неофит при помощи так называемого rpmrb скрипта. Автоматически обнаружить такое обстоятельство не проще, чем выяснить, пьет ли maintainer коньяк по утрам. Но конечно, с другой стороны, нельзя тащить в базовую сборочную среду всё подряд. Прежде чем подсистема "язык-зависимости" сможет стать кандидатом на внесение в зависимости rpm-build, она должна отвечать целому ряду требований. Первое требование такое: язык должен широко и незавимо использоваться. То есть его скритпы должны всплывать "тут и там", а не только в специфических для этого языка пакетах. Если все языковые пакеты как один называются язык-*, то нет смысла вносить это в базовую сборочную среду, а есть смысл написать полиси для сборки язык-* пакетов. Конечно, все реальные случаи скорее "серые". Но не безнадёжно серые. Далее, нужено очень квалифицированный maintainer, который, во-первых, способен самостоятельно написать скрипты поиска зависимостей (или хотя бы хорошо разобраться в тех, которые он утащил из другого дистрибутива), а также "всё понимать" и, следовательно, быть способным решать вопросы, когда поиск зависимостей идет не очень гладко. С таким maintainer'ом в принципе есть что дальше обсуждать. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [devel] rpm-build-4.0.4-alt78 tcl dependencies 2007-09-09 19:45 ` [devel] rpm-build-4.0.4-alt78 beehive_status Alexey Tourbin 2007-09-09 19:54 ` Slava Semushin @ 2007-09-09 22:28 ` Alexey Tourbin 2007-09-09 23:27 ` Led ` (3 more replies) 2007-09-10 10:13 ` [devel] rpm-build-4.0.4-alt78 beehive_status Sergey Bolshakov ` (2 subsequent siblings) 4 siblings, 4 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-09 22:28 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 20598 bytes --] Есть два класса, к которым можно отнести большую часть несобравшихся пакетов. Первый класс связан с падением на поиске 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, чтобы скрипты поиска зависимостей всегда работали. Я предлагаю второй вариант. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 tcl dependencies 2007-09-09 22:28 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Alexey Tourbin @ 2007-09-09 23:27 ` Led 2007-09-09 23:48 ` [devel] #! shebang fixer Alexey Tourbin 2007-09-10 8:48 ` [devel] tcl.req.files: re-exec check implemented Alexey Tourbin 2007-09-10 10:46 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Sergey Bolshakov ` (2 subsequent siblings) 3 siblings, 2 replies; 29+ messages in thread From: Led @ 2007-09-09 23:27 UTC (permalink / raw) To: ALT Linux Team development discussions 2007/9/10, Alexey Tourbin <at@altlinux.ru>: > > 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 пакетов. Там вот такое: $ head -3 /usr/bin/TclTutor.tcl #!/bin/sh # \ exec wish "$0" "$@" Наветное, имеет смысл заменить на явное #!/usr/bin/wish ? ___ Led ^ permalink raw reply [flat|nested] 29+ messages in thread
* [devel] #! shebang fixer 2007-09-09 23:27 ` Led @ 2007-09-09 23:48 ` Alexey Tourbin 2007-09-10 8:48 ` [devel] tcl.req.files: re-exec check implemented Alexey Tourbin 1 sibling, 0 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-09 23:48 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 3163 bytes --] On Mon, Sep 10, 2007 at 02:27:11AM +0300, Led wrote: > > Этот пакет содержит некоторое количество 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 пакетов. > > Там вот такое: > $ head -3 /usr/bin/TclTutor.tcl > #!/bin/sh > # \ > exec wish "$0" "$@" > > Наветное, имеет смысл заменить на явное > #!/usr/bin/wish > ? Здесь есть два подхода. Во-первых, можно написать shebang fixer. То есть чтобы на стадии fixup, перед поиском зависимостей, совершенно автоматически выправлять все кривые шебанги. Но этот фиксер будет эвристическим, и если он облажается, то это будет пшик и автору фиксера дадут подзатыльник. Подумайте: на самом деле придётся писать full-fledged шелл-парсер. Ведь "$0" "$@" это простейший вариант, а любая менее тривиальная манипуляция с аргументами может ввести фиксер в глубокий ступор. В лучшем случае он просто ничего не зафиксит. А в худшем случае зафиксит так что мало не покажется. Кроме того, есть такие случаи, которые зафиксить принципиально нельзя, и которые, вместе с тем, имеют свой глубокий смысл. $ head -3 /usr/lib/rpm/tcl.req #!/bin/sh # -*- tcl -*- \ exec ${RPM_TCLSH:-/usr/bin/tclsh} "$0" "$@" $ Поэтому я решил, что можно реализовать менее навязчивые варианты. В частности, в новом rpm-build уже реализовано распознавание /usr/bin/env для всех типичных случаев. В частности, релевантная часть анализатора шебанга (shebang.req) выглядит так: local f="$1" line=; shift line=$(sed -n '1s|^#![[:space:]]*/|/|p' "$f") [ -n "$line" ] || return 0 set -- $line case "$#,$1" in 2,/usr/bin/env) FindPackage "$f" "$1" "$2" ;; *) FindPackage "$f" "$1" ;; esac То есть скрыть зависимость на интерпретатор через /usr/bin/env в типичном случае (если всего один аргумент у env) уже нельзя. Теперь только остаётся придумать, что делать с re-exec'ом. В принципе, подход тоже есть, он реализован в shell.req: if ! reqs="$($sh --rpm-requires "$f")"; then # sh --rpm-requires failed, and stderr is already there. # We are almost dead. The last chance to escape is to see # if the shell is used only to re-exec another interpreter, e.g. # exec tclsh "$0" "$@" if line1=$(egrep -m1 -v '^[[:space:]]*(#|$)' "$f"); then set -- $line1 if [ $# -gt 1 ] && [ "$1" = exec ]; then Info "$f is $2 script!" FindPackage "$f" "$2" return 0 fi fi Fatal "$f: $sh --rpm-requires failed" fi Проблема тут в том, что этот код нельзя сделать вполне универсальным, то есть реализовать на его основе диспетчерезацию на другой тип зависимостей. Но можно просто вставить аналогичный код в tcl.req.files. Кажется, это единственный язык, который в котором любят делать шебанг-хак через re-exec в первой значащей строчке. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [devel] tcl.req.files: re-exec check implemented 2007-09-09 23:27 ` Led 2007-09-09 23:48 ` [devel] #! shebang fixer Alexey Tourbin @ 2007-09-10 8:48 ` Alexey Tourbin 1 sibling, 0 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-10 8:48 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 1898 bytes --] On Mon, Sep 10, 2007 at 02:27:11AM +0300, Led wrote: > 2007/9/10, Alexey Tourbin <at@altlinux.ru>: > > > 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 пакетов. > > Там вот такое: > $ head -3 /usr/bin/TclTutor.tcl > #!/bin/sh > # \ > exec wish "$0" "$@" > > Наветное, имеет смысл заменить на явное > #!/usr/bin/wish > ? В общем я реализовал проверку на "exec tclsh" и "exec wish" в tcl.req.files. Это означает, что все #!/bin/sh скрипты будут проверяться, нет ли в первой значащей строчке "exec tclsh". Это не очень красиво с точки зрения скорости поиска зависимостей, то есть как бы немножко нарушается идея того, что *.req.files скирпты не должны делать ничего лишнего. Но и не критично. См. /people/at/packages/rpm-build-tcl.git $ file -NF$'\t' /usr/bin/* |grep 'Bourne shell script text' |./tcl.req.files /usr/bin/gitk /usr/bin/movaMTK-real /usr/bin/movaTK-real /usr/bin/mova_sendTK /usr/bin/pentaxsetup $ [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 tcl dependencies 2007-09-09 22:28 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Alexey Tourbin 2007-09-09 23:27 ` Led @ 2007-09-10 10:46 ` Sergey Bolshakov 2007-09-10 20:46 ` Alexey Tourbin ` (2 more replies) 2007-09-10 20:39 ` [devel] rpm-build-4.0.4-alt78 tcl SCRIPTS DISABLED Alexey Tourbin 2007-09-10 22:38 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Michael Shigorin 3 siblings, 3 replies; 29+ messages in thread From: Sergey Bolshakov @ 2007-09-10 10:46 UTC (permalink / raw) To: devel >>>>> "Alexey" == Alexey Tourbin <at@altlinux.ru> writes: > Есть два класса, к которым можно отнести большую часть > несобравшихся пакетов. Первый класс связан с падением на поиске > tcl зависимостей. Поиск tcl зависимостей стал менее опциональным, > что пока считается правильным без дополнительных пояснений. > Проверка на наличие интерпретатора [ -x /usr/bin/tclsh ] пред > запуском /usr/lib/rpm/tcl.req в принципе убрана. Кроме того, > раньше на поиск зависимостей шли только файлы с расширением > *.tcl. Теперь для отсева файлов используется скрипт tcl.req.files, > который, кроме tcl модулей, отбирает также tcl скрипты. Вот он. Прежде всего, замечательно, что у тебя нашлось время/желание этим заняться. [skipped] > Поясню также, что сейчас пакет rpm-build-tcl не содержит зависимости > на tcl, то есть фактическая возможность запуска tcl.req ничем не > гарантируется. Всё это вместе приводит к падению tcl.req и, > следовательно, невозможности сборки некоторых пакетов. [skipped] >> 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 > $ Вероятно, потому, что этот пакет располагает свои файлы в нестандартном для tcl месте (не ниже /usr/share/tcl) >> 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, > которые ЗАВЕДОМО ДОЛЖНЫ ЧТО-ТО ПРЕДОСТАВЛЯТЬ. Да, странно, я посмотрю. [skipped] >> 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 По той же причине, что и fvwm-tcl. Вообще, хотя в rpm-build-tcl есть механизм для расширения путей поиска provides, я не думаю, что предоставлять такие зависимости хорошая идея, поскольку нет способа указать в дальнейшем путь поиска, по которому такой provides расположен. > Вроде всё. > Итого, имеется более 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, чтобы скрипты > поиска зависимостей всегда работали. Я предлагаю второй вариант. Вынос rpm-build-tcl из базовой сборочной среды -- это упование на то, что майнтайнер впишет его в buildreq(pre). Как нетрудно убедиться, это не сработало (в варианте buildreq: tcl) даже с автором rpm-build-tcl и sandman. Последствия выноса -- некоторая деградация технологии сборки для tcl, бонус -- убыстрение процесса сборки, в отдалённом будущем -- вычищение базы apt от пары-тройки сотен сущностей. 'Техносноб' (с) во мне внёс бы tcl в rpm-build, конформист -- вынес бы умирающее тело на воздух. -- ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 tcl dependencies 2007-09-10 10:46 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Sergey Bolshakov @ 2007-09-10 20:46 ` Alexey Tourbin 2007-09-10 21:52 ` [devel] rpm-build-4.0.4-alt78 -- remove rpm-build-tcl? Alexey Tourbin 2007-09-10 22:13 ` [devel] rpm-build-4.0.4-alt78 rpm-build-tcl vs BuildRequires(pre) Alexey Tourbin 2 siblings, 0 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-10 20:46 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 2228 bytes --] On Mon, Sep 10, 2007 at 02:46:18PM +0400, Sergey Bolshakov wrote: > > /usr/lib/fvwm-tcl/fvwm.tcl 100644 ASCII text > > /usr/lib/fvwm-tcl/pkgIndex.tcl 100644 ASCII English text > > Примечательно однако, что пакет fvwm-tcl не предоставляет ни одной > > tcl(...) зависимости: > > $ rpm -qp --provides /ALT/Sisyphus/files/i586/RPMS/fvwm-tcl-1.2-alt1.i586.rpm > > fvwm-tcl = 1.2-alt1 > Вероятно, потому, что этот пакет располагает свои файлы в > нестандартном для tcl месте (не ниже /usr/share/tcl) > > Очень много 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 > > По той же причине, что и fvwm-tcl. > Вообще, хотя в rpm-build-tcl есть механизм для расширения > путей поиска provides, я не думаю, что предоставлять такие > зависимости хорошая идея, поскольку нет способа указать > в дальнейшем путь поиска, по которому такой provides расположен. Да. Нужно внушать maintainer'ам, что файлы pkgIndex.tcl должны лежать в каталоге типа /usr/share/tcl/$name. С другой стороны, если в пакетах типа fwvm-tcl есть встроенный интерпретатор, то в нём, наверное, зашит соответствующий "private" путь к библиотекам. Но здесь может получиться несовпадение по Requires и Provides. > Вынос rpm-build-tcl из базовой сборочной среды -- это упование > на то, что майнтайнер впишет его в buildreq(pre). > Как нетрудно убедиться, это не сработало (в варианте buildreq: tcl) > даже с автором rpm-build-tcl и sandman. > > Последствия выноса -- некоторая деградация технологии сборки для > tcl, бонус -- убыстрение процесса сборки, в отдалённом будущем -- > вычищение базы apt от пары-тройки сотен сущностей. > 'Техносноб' (с) во мне внёс бы tcl в rpm-build, конформист -- > вынес бы умирающее тело на воздух. Плохо что всё же не удается реализовать поиск зависимостей в скриптах. К сожалению, обнадеживаясь предыдущим опытом с питоном, я взялся за дело, не изучив внимательно код tcl.req. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 -- remove rpm-build-tcl? 2007-09-10 10:46 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Sergey Bolshakov 2007-09-10 20:46 ` Alexey Tourbin @ 2007-09-10 21:52 ` Alexey Tourbin 2007-09-11 9:49 ` Sergey Bolshakov 2007-09-10 22:13 ` [devel] rpm-build-4.0.4-alt78 rpm-build-tcl vs BuildRequires(pre) Alexey Tourbin 2 siblings, 1 reply; 29+ messages in thread From: Alexey Tourbin @ 2007-09-10 21:52 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 12395 bytes --] On Mon, Sep 10, 2007 at 02:46:18PM +0400, Sergey Bolshakov wrote: > Вынос rpm-build-tcl из базовой сборочной среды -- это упование > на то, что майнтайнер впишет его в buildreq(pre). Это не совсем так. См. ниже. > Как нетрудно убедиться, это не сработало (в варианте buildreq: tcl) > даже с автором rpm-build-tcl и sandman. > > Последствия выноса -- некоторая деградация технологии сборки для > tcl, бонус -- убыстрение процесса сборки, в отдалённом будущем -- > вычищение базы apt от пары-тройки сотен сущностей. > 'Техносноб' (с) во мне внёс бы tcl в rpm-build, конформист -- > вынес бы умирающее тело на воздух. Можно обсудить вариант выноса rpm-build-tcl из базовой сборочной среды. Мой старый аргумент ЗА сохранение rpm-build-tcl состоит в следующем: Tcl скрипты встречаются тут и там, и для того, чтобы результат поиска зависимостей не "плавал" в зависимости от укомплектовки buildroot'а, а также в интересах syntax check, нужно иметь всегда работающий tcl.req и tcl.prov. Теперь следующие обстоятельства отменяют этот аргумент: в Tcl фактически нет понятие syntax check; поиск зависимостей сводится чисто к выполнению кода; поэтому он годится для модулей, но совершенно не годится для скриптов. Следовательно, как зависимости скриптов, так и их syntax check, это по сути моя преждевременная идея от недопонимания специфики Tcl. Если просто оторвать rpm-build-tcl от rpm-build, то, естественно, сломается некоторое (довольно большое) число пакетов. Вариант решения этой проблемы состоит в том, чтобы подшить rpm-build-tcl в зависимости к tcl-devel. Тогда все пакеты, у которых сейчас в билдрут встаёт tcl-devel, заведомо не должны сломаться от этой перетасовки. К этому классу пакетов относятся как минимум все компилируемые tcl extensions. Я грепю логи успешно собравшихся пакетов, чтобы показать, что пакеты tcl и tcl-devel на самом деле, в большей половине случаев, соседствуют в билдруте. [at@basalt success]$ ls |xargs egrep -H '^tcl-(devel-)?8\.4' FaxMail-2.3-ipl9mdk:tcl-8.4.13-alt1.0 R-base-2.4.1-alt1:tcl-8.4.13-alt1.0 R-base-2.4.1-alt1:tcl-devel-8.4.13-alt1.0 TiMidity++-2.13.2-alt7:tcl-8.4.13-alt1.0 TiMidity++-2.13.2-alt7:tcl-devel-8.4.13-alt1.0 alicq-0.8.9-alt5:tcl-8.4.13-alt1.0 asterisk1.4-1.4.11-alt1.20070713:tcl-8.4.13-alt1.0 asterisk1.4-1.4.11-alt1.20070713:tcl-devel-8.4.13-alt1.0 avr-libc-1:1.4.4-alt1:tcl-8.4.13-alt1.0 axiom-1:3.2006.09-alt3:tcl-8.4.13-alt1.0 axiom-1:3.2006.09-alt3:tcl-devel-8.4.13-alt1.0 bibtex2html-1.85-alt1:tcl-8.4.13-alt1.0 binutils-1:2.17.50.0.6-alt1:tcl-8.4.13-alt1.0 bwidget-1.8.0-alt1:tcl-8.4.13-alt1.0 catdoc-0.94.2-alt1:tcl-8.4.13-alt1.0 coq-8.0pl3-alt2:tcl-8.4.13-alt1.0 courier-authlib-0.59.1-alt1.0:tcl-8.4.13-alt1.0 darcs-1.0.9-alt2:tcl-8.4.13-alt1.0 dejagnu-1:1.4.4-alt2:tcl-8.4.13-alt1.0 dirdiff-2.1-alt2:tcl-8.4.13-alt1.0 dirdiff-2.1-alt2:tcl-devel-8.4.13-alt1.0 doxygen-1:1.5.1-alt1:tcl-8.4.13-alt1.0 dstool-2.0-alt2:tcl-8.4.13-alt1.0 dstool-2.0-alt2:tcl-devel-8.4.13-alt1.0 dstool_tk-0.2003-alt2:tcl-8.4.13-alt1.0 dstool_tk-0.2003-alt2:tcl-devel-8.4.13-alt1.0 dstool_tk-doc-2.0-alt1:tcl-8.4.13-alt1.0 eggdrop-1.6.18-alt1:tcl-8.4.13-alt1.0 eggdrop-1.6.18-alt1:tcl-devel-8.4.13-alt1.0 emacs-ruby-mode-1.59-alt3:tcl-8.4.13-alt1.0 emacs-text-modes-0.2-alt2:tcl-8.4.13-alt1.0 emacspeak-23.0-alt1:tcl-8.4.13-alt1.0 emacspeak-23.0-alt1:tcl-devel-8.4.13-alt1.0 erlang-R11B-alt2:tcl-8.4.13-alt1.0 erlang-R11B-alt2:tcl-devel-8.4.13-alt1.0 expect-1:5.43-alt3:tcl-8.4.13-alt1.0 expect-1:5.43-alt3:tcl-devel-8.4.13-alt1.0 findutils-4.2.29-alt1:tcl-8.4.13-alt1.0 foomatic-db-3.0.2-alt4:tcl-8.4.13-alt1.0 foomatic-db-engine-3.0.2-alt3:tcl-8.4.13-alt1.0 foomatic-filters-3.0.2-alt5:tcl-8.4.13-alt1.0 freewrl-1.18.9-alt0.1:tcl-8.4.13-alt1.0 gcl-2.6.8-alt0.09cvs20061026:tcl-8.4.13-alt1.0 gcl-2.6.8-alt0.09cvs20061026:tcl-devel-8.4.13-alt1.0 generator-0.35-alt0.3:tcl-8.4.13-alt1.0 generator-0.35-alt0.3:tcl-devel-8.4.13-alt1.0 geomview-1.8.2-alt5.rc9:tcl-8.4.13-alt1.0 geomview-1.8.2-alt5.rc9:tcl-devel-8.4.13-alt1.0 gnucap-20070329-alt0.1:tcl-8.4.13-alt1.0 gorilla-1.4-alt5:tcl-8.4.13-alt1.0 graphviz-2.2.1-alt2:tcl-8.4.13-alt1.0 graphviz-2.2.1-alt2:tcl-devel-8.4.13-alt1.0 grass-6.2.2-alt1:tcl-8.4.13-alt1.0 grass-6.2.2-alt1:tcl-devel-8.4.13-alt1.0 hping3-0.0.20051105-alt2:tcl-8.4.13-alt1.0 hping3-0.0.20051105-alt2:tcl-devel-8.4.13-alt1.0 ibutils-1.2-alt2:tcl-8.4.13-alt1.0 ibutils-1.2-alt2:tcl-devel-8.4.13-alt1.0 ical-2.3.1-alt2.1:tcl-8.4.13-alt1.0 ical-2.3.1-alt2.1:tcl-devel-8.4.13-alt1.0 inn-2.4.3-alt3:tcl-8.4.13-alt1.0 iozone-3.283-alt1:tcl-8.4.13-alt1.0 kernel-image-std-smp-2.6.18-alt7:tcl-8.4.13-alt1.0 kernel-image-xen-dom0-2.6.18-alt2:tcl-8.4.13-alt1.0 krb5-1.5.1-alt6:tcl-8.4.13-alt1.0 krb5-1.5.1-alt6:tcl-devel-8.4.13-alt1.0 lablGL-1.02-alt1:tcl-8.4.13-alt1.0 lablGL-1.02-alt1:tcl-devel-8.4.13-alt1.0 lablgtk2-1:2.6.0-alt3.1:tcl-8.4.13-alt1.0 libcamlimages-2.2.0-alt5:tcl-8.4.13-alt1.0 libdb4.3-4.3.29-alt4:tcl-8.4.13-alt1.0 libdb4.3-4.3.29-alt4:tcl-devel-8.4.13-alt1.0 libdb4.4-4.4.20-alt2:tcl-8.4.13-alt1.0 libdb4.4-4.4.20-alt2:tcl-devel-8.4.13-alt1.0 libgraphite-2.0-alt0.1:tcl-8.4.13-alt1.0 libocamlsdl-0.7.2-alt4:tcl-8.4.13-alt1.0 liboop-1.0-alt1.1:tcl-8.4.13-alt1.0 liboop-1.0-alt1.1:tcl-devel-8.4.13-alt1.0 linuxwacom-0.7.6-alt1:tcl-8.4.13-alt1.0 linuxwacom-0.7.6-alt1:tcl-devel-8.4.13-alt1.0 lyx13-1.3.7-alt2:tcl-8.4.13-alt1.0 maxima-5.12.0-alt1:tcl-8.4.13-alt1.0 metakit-2.4.9.6-alt1:tcl-8.4.13-alt1.0 metakit-2.4.9.6-alt1:tcl-devel-8.4.13-alt1.0 mldonkey-2.9.0-alt0.1:tcl-8.4.13-alt1.0 netwag-5.34.0-alt1:tcl-8.4.13-alt1.0 newt-0.50.39-alt3:tcl-8.4.13-alt1.0 obexftp-0.22-alt1.rc6:tcl-8.4.13-alt1.0 obexftp-0.22-alt1.rc6:tcl-devel-8.4.13-alt1.0 ocaml-3.09.3-alt0.1:tcl-8.4.13-alt1.0 ocaml-3.09.3-alt0.1:tcl-devel-8.4.13-alt1.0 ocamlnet-2.2.4-alt1:tcl-8.4.13-alt1.0 ocamlnet-2.2.4-alt1:tcl-devel-8.4.13-alt1.0 perl-Net-CUPS-0.51-alt1:tcl-8.4.13-alt1.0 pgtcl-1.6-alt3:tcl-8.4.13-alt1.0 pgtcl-1.6-alt3:tcl-devel-8.4.13-alt1.0 postgresql8.0-8.0.11-alt1:tcl-8.4.13-alt1.0 postgresql8.0-8.0.11-alt1:tcl-devel-8.4.13-alt1.0 postgresql8.1-8.1.8-alt3:tcl-8.4.13-alt1.0 postgresql8.1-8.1.8-alt3:tcl-devel-8.4.13-alt1.0 postgresql8.2-8.2.4-alt2:tcl-8.4.13-alt1.0 postgresql8.2-8.2.4-alt2:tcl-devel-8.4.13-alt1.0 ppracer-0.3.1-alt3:tcl-8.4.13-alt1.0 ppracer-0.3.1-alt3:tcl-devel-8.4.13-alt1.0 pybliographic-0.2-alt0.1:tcl-8.4.13-alt1.0 python-2.4.4-alt12:tcl-8.4.13-alt1.0 python-2.4.4-alt12:tcl-devel-8.4.13-alt1.0 python-module-Crypto-2.0-alt2.1:tcl-8.4.13-alt1.0 python-module-OpenGL-2.0.2.01-alt2:tcl-8.4.13-alt1.0 python-module-OpenSSL-0.6-alt2.1.1:tcl-8.4.13-alt1.0 python-module-imaging-1.1.4-alt11:tcl-8.4.13-alt1.0 python-module-imaging-1.1.4-alt11:tcl-devel-8.4.13-alt1.0 python-module-matplotlib-0.90.0-alt1:tcl-8.4.13-alt1.0 python-module-pybliographer-1.3.3-alt0.1:tcl-8.4.13-alt1.0 python-module-pyxmpp-1.0.0-alt2:tcl-8.4.13-alt1.0 python-module-ruledispatch-0.5a0-alt0.1:tcl-8.4.13-alt1.0 python-module-sybase-1:0.38-alt1:tcl-8.4.13-alt1.0 python-module-twisted-conch-0.8.0-alt1:tcl-8.4.13-alt1.0 python-module-twisted-lore-0.3.0-alt1:tcl-8.4.13-alt1.0 python-module-twisted-mail-0.4.0-alt2:tcl-8.4.13-alt1.0 python-module-twisted-names-0.4.0-alt1:tcl-8.4.13-alt1.0 python-module-twisted-news-0.3.0-alt1:tcl-8.4.13-alt1.0 python-module-twisted-runner-0.2.0-alt1:tcl-8.4.13-alt1.0 python-module-twisted-web-0.7.0-alt1:tcl-8.4.13-alt1.0 python-module-twisted-web2-0.2.0-alt1:tcl-8.4.13-alt1.0 python-module-twisted-words-0.5.0-alt1:tcl-8.4.13-alt1.0 qtcl-1.2-alt5:tcl-8.4.13-alt1.0 qtcl-1.2-alt5:tcl-devel-8.4.13-alt1.0 rrd-1.2.23-alt1:tcl-8.4.13-alt1.0 rrd-1.2.23-alt1:tcl-devel-8.4.13-alt1.0 ruby-1.8.6-alt2:tcl-8.4.13-alt1.0 ruby-1.8.6-alt2:tcl-devel-8.4.13-alt1.0 scilab-4.1.1-alt1.2:tcl-8.4.13-alt1.0 scilab-4.1.1-alt1.2:tcl-devel-8.4.13-alt1.0 scotty-2:3.0.0-alt4:tcl-8.4.13-alt1.0 scotty-2:3.0.0-alt4:tcl-devel-8.4.13-alt1.0 skencil-0.6.17-alt1:tcl-8.4.13-alt1.0 skencil-0.6.17-alt1:tcl-devel-8.4.13-alt1.0 sqlite-2.8.16-alt1.1.0:tcl-8.4.13-alt1.0 sqlite-2.8.16-alt1.1.0:tcl-devel-8.4.13-alt1.0 sqlite3-3.4.2-alt1:tcl-8.4.13-alt1.0 sqlite3-3.4.2-alt1:tcl-devel-8.4.13-alt1.0 swig-1.3.31-alt1:tcl-8.4.13-alt1.0 swig-1.3.31-alt1:tcl-devel-8.4.13-alt1.0 tcl-blt-2.4z-alt2:tcl-8.4.13-alt1.0 tcl-blt-2.4z-alt2:tcl-devel-8.4.13-alt1.0 tcl-ck-8.4-alt5:tcl-8.4.13-alt1.0 tcl-ck-8.4-alt5:tcl-devel-8.4.13-alt1.0 tcl-cost-2.2-alt5.p1:tcl-8.4.13-alt1.0 tcl-cost-2.2-alt5.p1:tcl-devel-8.4.13-alt1.0 tcl-dnotebook-0.1-alt0.1:tcl-8.4.13-alt1.0 tcl-dom-3.1-alt3:tcl-8.4.13-alt1.0 tcl-dom-3.1-alt3:tcl-devel-8.4.13-alt1.0 tcl-gpgme-1.0.1-alt4:tcl-8.4.13-alt1.0 tcl-gpgme-1.0.1-alt4:tcl-devel-8.4.13-alt1.0 tcl-httpd-3.5.1-alt0.4:tcl-8.4.13-alt1.0 tcl-httpd-3.5.1-alt0.4:tcl-devel-8.4.13-alt1.0 tcl-img-1.3.0-alt5:tcl-8.4.13-alt1.0 tcl-img-1.3.0-alt5:tcl-devel-8.4.13-alt1.0 tcl-incrtcl-3.3.0-alt4:tcl-8.4.13-alt1.0 tcl-incrtcl-3.3.0-alt4:tcl-devel-8.4.13-alt1.0 tcl-iwidgets-4.0.2-alt2:tcl-8.4.13-alt1.0 tcl-iwidgets-4.0.2-alt2:tcl-devel-8.4.13-alt1.0 tcl-ldap-3.0-alt9:tcl-8.4.13-alt1.0 tcl-ldap-3.0-alt9:tcl-devel-8.4.13-alt1.0 tcl-memchan-2.2.1-alt3:tcl-8.4.13-alt1.0 tcl-memchan-2.2.1-alt3:tcl-devel-8.4.13-alt1.0 tcl-plugin-3.1-alt1:tcl-8.4.13-alt1.0 tcl-plugin-3.1-alt1:tcl-devel-8.4.13-alt1.0 tcl-readline-2.1.1-alt7:tcl-8.4.13-alt1.0 tcl-readline-2.1.1-alt7:tcl-devel-8.4.13-alt1.0 tcl-sasl-1.0-alt0.3:tcl-8.4.13-alt1.0 tcl-sasl-1.0-alt0.3:tcl-devel-8.4.13-alt1.0 tcl-soap-1.6.8-alt0.2:tcl-8.4.13-alt1.0 tcl-soap-1.6.8-alt0.2:tcl-devel-8.4.13-alt1.0 tcl-syslog-2.0-alt1.0:tcl-8.4.13-alt1.0 tcl-syslog-2.0-alt1.0:tcl-devel-8.4.13-alt1.0 tcl-tile-0.7.8-alt1:tcl-8.4.13-alt1.0 tcl-tile-0.7.8-alt1:tcl-devel-8.4.13-alt1.0 tcl-tix-8.2.0-alt4:tcl-8.4.13-alt1.0 tcl-tix-8.2.0-alt4:tcl-devel-8.4.13-alt1.0 tcl-tkXwin-1.0-alt4:tcl-8.4.13-alt1.0 tcl-tkXwin-1.0-alt4:tcl-devel-8.4.13-alt1.0 tcl-tksystray-0.2-alt1:tcl-8.4.13-alt1.0 tcl-tksystray-0.2-alt1:tcl-devel-8.4.13-alt1.0 tcl-tktable-2.9-alt3:tcl-8.4.13-alt1.0 tcl-tktable-2.9-alt3:tcl-devel-8.4.13-alt1.0 tcl-tktreectrl-2.2-alt1:tcl-8.4.13-alt1.0 tcl-tktreectrl-2.2-alt1:tcl-devel-8.4.13-alt1.0 tcl-tls-1.5.1-alt4:tcl-8.4.13-alt1.0 tcl-tls-1.5.1-alt4:tcl-devel-8.4.13-alt1.0 tcl-togl-1.7-alt1:tcl-8.4.13-alt1.0 tcl-togl-1.7-alt1:tcl-devel-8.4.13-alt1.0 tcl-trf-2.1-alt7:tcl-8.4.13-alt1.0 tcl-trf-2.1-alt7:tcl-devel-8.4.13-alt1.0 tcl-vfs-1.3-alt7:tcl-8.4.13-alt1.0 tcl-vfs-1.3-alt7:tcl-devel-8.4.13-alt1.0 tcl-xml-3.1-alt4:tcl-8.4.13-alt1.0 tcl-xml-3.1-alt4:tcl-devel-8.4.13-alt1.0 tcl-xslt-3.1-alt3:tcl-8.4.13-alt1.0 tcl-xslt-3.1-alt3:tcl-devel-8.4.13-alt1.0 tcllib-1:1.9-alt1:tcl-8.4.13-alt1.0 tclx-1:8.4-alt6:tcl-8.4.13-alt1.0 tclx-1:8.4-alt6:tcl-devel-8.4.13-alt1.0 tetex-latex-babelbib-1.20-alt1:tcl-8.4.13-alt1.0 tetex-latex-rcs-3.1-alt2:tcl-8.4.13-alt1.0 tk-8.4.13-alt2.0:tcl-8.4.13-alt1.0 tk-8.4.13-alt2.0:tcl-devel-8.4.13-alt1.0 tkabber-0.10.0-alt2:tcl-8.4.13-alt1.0 tkabber-plugins-0.10.0-alt1:tcl-8.4.13-alt1.0 tkcon-2.4-alt3:tcl-8.4.13-alt1.0 tkcon-2.4-alt3:tcl-devel-8.4.13-alt1.0 tkdvd-4.0.6-alt1:tcl-8.4.13-alt1.0 torque-2.1.8-alt1.1:tcl-8.4.13-alt1.0 torque-2.1.8-alt1.1:tcl-devel-8.4.13-alt1.0 tuxracer-0.61-alt9:tcl-8.4.13-alt1.0 tuxracer-0.61-alt9:tcl-devel-8.4.13-alt1.0 uudeview-0.5.20-alt1:tcl-8.4.13-alt1.0 uudeview-0.5.20-alt1:tcl-devel-8.4.13-alt1.0 vim-4:7.1.094-alt1:tcl-8.4.13-alt1.0 vim-4:7.1.094-alt1:tcl-devel-8.4.13-alt1.0 vkeybd-1:0.1.17a-alt1:tcl-8.4.13-alt1.0 vkeybd-1:0.1.17a-alt1:tcl-devel-8.4.13-alt1.0 wavesurfer-1.8.5-alt1:tcl-8.4.13-alt1.0 wordnet-2.1-alt2:tcl-8.4.13-alt1.0 wordnet-2.1-alt2:tcl-devel-8.4.13-alt1.0 xen-3.1.0-alt2:tcl-8.4.13-alt1.0 yaz-2.1.54-alt1:tcl-8.4.13-alt1.0 yodl-1:1.31.18-alt1:tcl-8.4.13-alt1.0 [at@basalt success]$ Значит, относительно безопасная перетасовка rpm-build-tcl состоит в следующем: 1) в любом случае добавить Reqruies: tcl в rpm-built-tcl; 2) в любом случае добавить Requires: rpm-build-tcl в tcl-devel; 3) возможно, убрать Requires: rpm-build-tcl из rpm-build. Чтобы понять, насколько эта перетасовка действительно безопасна, желательно выборочно проверить те пакеты из этого списка, у которых в билдруте tcl-devel не стоит -- как минимум, на предмет использования макросов типа %_tcllibdir. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 -- remove rpm-build-tcl? 2007-09-10 21:52 ` [devel] rpm-build-4.0.4-alt78 -- remove rpm-build-tcl? Alexey Tourbin @ 2007-09-11 9:49 ` Sergey Bolshakov 2007-09-11 14:59 ` Alexey Tourbin 0 siblings, 1 reply; 29+ messages in thread From: Sergey Bolshakov @ 2007-09-11 9:49 UTC (permalink / raw) To: devel >>>>> "Alexey" == Alexey Tourbin <at@altlinux.ru> writes: > On Mon, Sep 10, 2007 at 02:46:18PM +0400, Sergey Bolshakov wrote: >> Вынос rpm-build-tcl из базовой сборочной среды -- это упование >> на то, что майнтайнер впишет его в buildreq(pre). > Это не совсем так. См. ниже. >> Как нетрудно убедиться, это не сработало (в варианте buildreq: tcl) >> даже с автором rpm-build-tcl и sandman. >> >> Последствия выноса -- некоторая деградация технологии сборки для >> tcl, бонус -- убыстрение процесса сборки, в отдалённом будущем -- >> вычищение базы apt от пары-тройки сотен сущностей. >> 'Техносноб' (с) во мне внёс бы tcl в rpm-build, конформист -- >> вынес бы умирающее тело на воздух. > Можно обсудить вариант выноса rpm-build-tcl из базовой сборочной среды. > Мой старый аргумент ЗА сохранение rpm-build-tcl состоит в следующем: > Tcl скрипты встречаются тут и там, и для того, чтобы результат поиска > зависимостей не "плавал" в зависимости от укомплектовки buildroot'а, > а также в интересах syntax check, нужно иметь всегда работающий tcl.req > и tcl.prov. > Теперь следующие обстоятельства отменяют этот аргумент: в Tcl фактически > нет понятие syntax check; поиск зависимостей сводится чисто к выполнению > кода; поэтому он годится для модулей, но совершенно не годится для > скриптов. Следовательно, как зависимости скриптов, так и их syntax > check, это по сути моя преждевременная идея от недопонимания специфики > Tcl. > Если просто оторвать rpm-build-tcl от rpm-build, то, естественно, > сломается некоторое (довольно большое) число пакетов. Вариант решения > этой проблемы состоит в том, чтобы подшить rpm-build-tcl в зависимости > к tcl-devel. Тогда все пакеты, у которых сейчас в билдрут встаёт > tcl-devel, заведомо не должны сломаться от этой перетасовки. К этому > классу пакетов относятся как минимум все компилируемые tcl extensions. > Я грепю логи успешно собравшихся пакетов, чтобы показать, что пакеты > tcl и tcl-devel на самом деле, в большей половине случаев, соседствуют > в билдруте. Такое положение дел объясняется тем обстоятельством, что стандартные для расширений tcl (необязательно бинарных) сборочные скрипты (именуемые TEA -- tcl extension architecture) опираются на информацию из /usr/lib/tclConfig.sh Тем не менее, нет никаких способов форсировать применение этой самой TEA, и вполне могут существовать расширения, для которых наличие tcl-devel в билдруте избыточно. [skipped] > Значит, относительно безопасная перетасовка rpm-build-tcl состоит > в следующем: 1) в любом случае добавить Reqruies: tcl в rpm-built-tcl; > 2) в любом случае добавить Requires: rpm-build-tcl в tcl-devel; > 3) возможно, убрать Requires: rpm-build-tcl из rpm-build. > Чтобы понять, насколько эта перетасовка действительно безопасна, > желательно выборочно проверить те пакеты из этого списка, у которых > в билдруте tcl-devel не стоит -- как минимум, на предмет использования > макросов типа %_tcllibdir. Если таковые найдутся, их несложно будет починить. Бишь, обсуждаемый вариант вполне возможен, осталось выяснить, зачем такая перетасовка нужна -- мне кажется, мы несколько увлеклись процессом и потеряли из виду желаемый результат (я, по крмере). 1) не может иметь фатальных последствий; 2) и далее -- я не могу сделать выбора, не представляя шкалы приоритетов. -- ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 -- remove rpm-build-tcl? 2007-09-11 9:49 ` Sergey Bolshakov @ 2007-09-11 14:59 ` Alexey Tourbin 2007-09-11 15:35 ` Led 0 siblings, 1 reply; 29+ messages in thread From: Alexey Tourbin @ 2007-09-11 14:59 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 2351 bytes --] On Tue, Sep 11, 2007 at 01:49:21PM +0400, Sergey Bolshakov wrote: > > Значит, относительно безопасная перетасовка rpm-build-tcl состоит > > в следующем: 1) в любом случае добавить Reqruies: tcl в rpm-built-tcl; > > 2) в любом случае добавить Requires: rpm-build-tcl в tcl-devel; > > 3) возможно, убрать Requires: rpm-build-tcl из rpm-build. > > > Чтобы понять, насколько эта перетасовка действительно безопасна, > > желательно выборочно проверить те пакеты из этого списка, у которых > > в билдруте tcl-devel не стоит -- как минимум, на предмет использования > > макросов типа %_tcllibdir. > > Если таковые найдутся, их несложно будет починить. > Бишь, обсуждаемый вариант вполне возможен, осталось выяснить, зачем > такая перетасовка нужна -- мне кажется, мы несколько увлеклись > процессом и потеряли из виду желаемый результат (я, по крмере). Мы пытаемся ответить на вопрос, какие подсистемы язык+зависимости должны входить в базовую сборочную среду и почему. Цель состоит в том, чтобы рационально ответить на этот вопрос, и, руководствуясь ответом, привести в соответствие зависимости у пакетов (а также сформулировать полиси/требования для всех будущих подсистем, например для руби). Польза от подсистемы язык+зависимости в базовой сборочной среде проявляется, когда этот язык широко и независимо используется, и его скрипты встречаются "тут и там" без особой привязки к самому языку. Помимо зависимостей, внесение в базовую сборочную среду преследует также промежуточную, но очень важную цель -- syntax check, чтобы не паковать заведомо кривые скрипты. На данный момент tcl.req не умеет искать зависимости в Tcl скриптах, только в модулях; syntax check скриптов также невозможен. Никакой пользы для "случайных скриптов" от rpm-build-tcl нету; этот пакет полезен только для сборки Tcl модулей. Остается только вопрос в том, что могут сломаться некоторые Tcl модули, потому что для сборки они не используют tcl-devel. Но это вопрос скорее полиси для сборки Tcl модулей. > 1) не может иметь фатальных последствий; > 2) и далее -- я не могу сделать выбора, не представляя > шкалы приоритетов. Шкалу приоритетов на самом деле никто не знает. Если не деньги решают. Но есть некий градиент технологической консистентности, и есть смысл перемещаться туда, куда показывает этот градиент. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 -- remove rpm-build-tcl? 2007-09-11 14:59 ` Alexey Tourbin @ 2007-09-11 15:35 ` Led 0 siblings, 0 replies; 29+ messages in thread From: Led @ 2007-09-11 15:35 UTC (permalink / raw) To: devel В сообщении от Tuesday 11 September 2007 17:59:34 Alexey Tourbin написал(а): > Остается только вопрос в том, что могут сломаться некоторые Tcl модули, > потому что для сборки они не используют tcl-devel. Но это вопрос скорее > полиси для сборки Tcl модулей. $ rpm -qi tcl-devel | grep '^Summary' Summary : Header files and C programming manual for TCL Можно ещё и $ rpm -ql tcl-devel | grep include Если Tcl модуль не содержит *.so, то tcl-devel для его сборки не нужен. Или я чего-то не понимаю? -- Led ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 rpm-build-tcl vs BuildRequires(pre) 2007-09-10 10:46 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Sergey Bolshakov 2007-09-10 20:46 ` Alexey Tourbin 2007-09-10 21:52 ` [devel] rpm-build-4.0.4-alt78 -- remove rpm-build-tcl? Alexey Tourbin @ 2007-09-10 22:13 ` Alexey Tourbin 2007-09-11 9:30 ` Sergey Bolshakov 2 siblings, 1 reply; 29+ messages in thread From: Alexey Tourbin @ 2007-09-10 22:13 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 862 bytes --] On Mon, Sep 10, 2007 at 02:46:18PM +0400, Sergey Bolshakov wrote: > Вынос rpm-build-tcl из базовой сборочной среды -- это упование > на то, что майнтайнер впишет его в buildreq(pre). > Как нетрудно убедиться, это не сработало (в варианте buildreq: tcl) > даже с автором rpm-build-tcl и sandman. Насколько я понимаю, buildreq(pre) в hasher требуется не для того, чтобы можно было раскрыть вообще все макросы в spec-файле; а только для того, чтобы можно было собрать src.rpm с правильным хедером. То есть, buildreq(pre) нужен преимущественно в вариантах, когда в зависимостях есть внешние макросы (типа Requires: apache2 > %apache2_version). Кажется, у tcl пакетах нет такой потребности. В любом случае, лучше не ставить зависимости на версию tcl в spec-файле, а линковать Tcl extensions с libtcl (будет автоматическая зависимость через soname). [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 rpm-build-tcl vs BuildRequires(pre) 2007-09-10 22:13 ` [devel] rpm-build-4.0.4-alt78 rpm-build-tcl vs BuildRequires(pre) Alexey Tourbin @ 2007-09-11 9:30 ` Sergey Bolshakov 2007-09-11 15:49 ` [devel] link tcl extensions with libtcl Alexey Tourbin 0 siblings, 1 reply; 29+ messages in thread From: Sergey Bolshakov @ 2007-09-11 9:30 UTC (permalink / raw) To: devel >>>>> "Alexey" == Alexey Tourbin <at@altlinux.ru> writes: > On Mon, Sep 10, 2007 at 02:46:18PM +0400, Sergey Bolshakov wrote: >> Вынос rpm-build-tcl из базовой сборочной среды -- это упование >> на то, что майнтайнер впишет его в buildreq(pre). >> Как нетрудно убедиться, это не сработало (в варианте buildreq: tcl) >> даже с автором rpm-build-tcl и sandman. > Насколько я понимаю, buildreq(pre) в hasher требуется не для того, > чтобы можно было раскрыть вообще все макросы в spec-файле; а только > для того, чтобы можно было собрать src.rpm с правильным хедером. > То есть, buildreq(pre) нужен преимущественно в вариантах, когда > в зависимостях есть внешние макросы (типа Requires: apache2 > %apache2_version). Я не имел ввиду подчеркнуть (pre) vs просто buildreq. > Кажется, у tcl пакетах нет такой потребности. В любом случае, лучше > не ставить зависимости на версию tcl в spec-файле, а линковать Tcl > extensions с libtcl (будет автоматическая зависимость через > soname). Я не линкую extensions c libtcl, поскольку только libtcl как правило недостаточно -- обычно предполагается, что существует и содержимое /usr/share/tcl/tcl%major, начиная с init.tcl, да и soname там введён мною, в апстриме его нет. -- ^ permalink raw reply [flat|nested] 29+ messages in thread
* [devel] link tcl extensions with libtcl 2007-09-11 9:30 ` Sergey Bolshakov @ 2007-09-11 15:49 ` Alexey Tourbin 0 siblings, 0 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-11 15:49 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 1095 bytes --] On Tue, Sep 11, 2007 at 01:30:30PM +0400, Sergey Bolshakov wrote: > > Кажется, у tcl пакетах нет такой потребности. В любом случае, лучше > > не ставить зависимости на версию tcl в spec-файле, а линковать Tcl > > extensions с libtcl (будет автоматическая зависимость через > > soname). > > Я не линкую extensions c libtcl, поскольку только libtcl > как правило недостаточно -- обычно предполагается, что > существует и содержимое /usr/share/tcl/tcl%major, начиная > с init.tcl, да и soname там введён мною, в апстриме его нет. Я думаю, что линковка с libtcl дает более точный тип зависимостей. Это зависимость типа "равно", а не "больше или равно". По этому поводу уже имеется некоторый консенсус: в питоне 2.5 тоже стали линковать питоновские расширения с libpython (если питон собран в варианте с shared libaray). Я сбекпортил это изменение из svn в наш питон 2.4. Паковать отдельно библиотеку libtcl, если во всех случаях ее фактической работы подразумеватся наличие init.tcl, похоже, не имеет смысла. Я на самом деле не знаю, как там с ембедом дело обстоит. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 tcl SCRIPTS DISABLED 2007-09-09 22:28 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Alexey Tourbin 2007-09-09 23:27 ` Led 2007-09-10 10:46 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Sergey Bolshakov @ 2007-09-10 20:39 ` Alexey Tourbin 2007-09-10 22:38 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Michael Shigorin 3 siblings, 0 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-10 20:39 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 1161 bytes --] On Mon, Sep 10, 2007 at 02:28:25AM +0400, Alexey Tourbin wrote: > Проверка на наличие интерпретатора [ -x /usr/bin/tclsh ] пред > запуском /usr/lib/rpm/tcl.req в принципе убрана. Кроме того, > раньше на поиск зависимостей шли только файлы с расширением > *.tcl. Теперь для отсева файлов используется скрипт tcl.req.files, > который, кроме tcl модулей, отбирает также tcl скрипты. Поиск зависимостей в Tcl скриптах пришось отключить. tcl.req работает таким образом, что фактически исполняет весь код. В модулях с этим нет проблем, потому что там весь код преимущественно сводится к определению функций (а также загрузке других модулей, что и удается обнаружить). Исполнять код в скриптах нельзя, мало ли что эти скрипты пытаются делать. Особенность Tcl интерпретатора такова, что, насколько я понял, у него нету внутреннего syntax tree, оно обрывочно появляется лишь при выполнении кода, то есть при группировках/подстановках. То есть по идее это чистый интерпретатор, даже "хуже шелла". Однако изучение документации к Tcl и самого Tcl несколько меня отвлекает от того дела, за которое я здесь взялся. Не знаю хорошо это или плохо. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 tcl dependencies 2007-09-09 22:28 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Alexey Tourbin ` (2 preceding siblings ...) 2007-09-10 20:39 ` [devel] rpm-build-4.0.4-alt78 tcl SCRIPTS DISABLED Alexey Tourbin @ 2007-09-10 22:38 ` Michael Shigorin 3 siblings, 0 replies; 29+ messages in thread From: Michael Shigorin @ 2007-09-10 22:38 UTC (permalink / raw) To: devel On Mon, Sep 10, 2007 at 02:28:25AM +0400, Alexey Tourbin wrote: > То есть нужно либо вынести rpm-build-tcl из базовой сборочной > среды, либо добавить в него зависимость на tcl, чтобы скрипты > поиска зависимостей всегда работали. Я предлагаю второй > вариант. +1 -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 beehive_status 2007-09-09 19:45 ` [devel] rpm-build-4.0.4-alt78 beehive_status Alexey Tourbin 2007-09-09 19:54 ` Slava Semushin 2007-09-09 22:28 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Alexey Tourbin @ 2007-09-10 10:13 ` Sergey Bolshakov 2007-09-10 22:28 ` [devel] rpm-build-tcl Requires += tcl? Michael Shigorin 2007-09-11 16:13 ` [devel] Zope-2.7.7-alt1 Alexey Tourbin 4 siblings, 0 replies; 29+ messages in thread From: Sergey Bolshakov @ 2007-09-10 10:13 UTC (permalink / raw) To: devel >>>>> "Alexey" == Alexey Tourbin <at@altlinux.ru> writes: > On Sun, Sep 09, 2007 at 10:19:38PM +0400, Alexey Tourbin wrote: >> Вот список не собравшихся пакетов (по сравнению с плановой пересборкой). > Вот этот же самый список с диагностикой, отформатированный при помощи > скрипта beehive_status из qa-robot.git. [skipped] > 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 Этот зажился, пора в крем^W obsolete -- ^ permalink raw reply [flat|nested] 29+ messages in thread
* [devel] rpm-build-tcl Requires += tcl? 2007-09-09 19:45 ` [devel] rpm-build-4.0.4-alt78 beehive_status Alexey Tourbin ` (2 preceding siblings ...) 2007-09-10 10:13 ` [devel] rpm-build-4.0.4-alt78 beehive_status Sergey Bolshakov @ 2007-09-10 22:28 ` Michael Shigorin 2007-09-11 16:13 ` [devel] Zope-2.7.7-alt1 Alexey Tourbin 4 siblings, 0 replies; 29+ messages in thread From: Michael Shigorin @ 2007-09-10 22:28 UTC (permalink / raw) To: devel On Sun, Sep 09, 2007 at 11:45:13PM +0400, Alexey Tourbin wrote: > 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 Это недостача сборочной зависимости на tcl? Может, её в rpm-build-tcl засунуть? > 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 То же. > 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 Итого: поправить r-b-t и пересобрать эту стопку отвалов ещё раз? -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 29+ messages in thread
* [devel] Zope-2.7.7-alt1 2007-09-09 19:45 ` [devel] rpm-build-4.0.4-alt78 beehive_status Alexey Tourbin ` (3 preceding siblings ...) 2007-09-10 22:28 ` [devel] rpm-build-tcl Requires += tcl? Michael Shigorin @ 2007-09-11 16:13 ` Alexey Tourbin 4 siblings, 0 replies; 29+ messages in thread From: Alexey Tourbin @ 2007-09-11 16:13 UTC (permalink / raw) To: devel; +Cc: Andrey Orlov [-- Attachment #1: Type: text/plain, Size: 1866 bytes --] > Zope-2.7.7-alt1 > /usr/lib/rpm/python.req.py: > /usr/src/tmp/Zope-buildroot/usr/lib/python2.4/site-packages/ZPublisher/xmlrpc.py: > line=157 IGNORE module=traceback > /usr/src/tmp/Zope-buildroot/usr/lib/python2.4/site-packages/ZPublisher/Client.py: > line 47: syntax error near unexpected token `(' > /usr/src/tmp/Zope-buildroot/usr/lib/python2.4/site-packages/ZPublisher/Client.py: line 47: > `class BadReply(Exception):' > error: /bin/sh failed > error: Failed to find Requires > RPM build errors: Файл ZPublisher/Client.py начинается так: $ rpmpeek Zope-ZPublisher-2.7.7-alt1.i586.rpm head -5 ./usr/lib/python2.4/site-packages/ZPublisher/Client.py #!/bin/sh """:" exec python $0 ${1+"$@"} """ #" $ Раньше этот скрипт определялся ТОЛЬКО как шелл скрипт. Это связано со старой логикой обработки скриптов в find-requires. if шелл скрипт; then найти шелл зависимости elif перл скритп; then найти перл зависимости elif питон скрипт найти питон зависимости elif tcl скрипт найти tcl зависимости fi То есть раньше поиск питоновских зависимостей в этом файле просто не срабатывал, потому что он определялся как шелл-скрипт. В новом rpm-build поиск зависимостей каждого типа идет полностью независимо. Это значит, что определение данного скритпа как шелл-скрипта (из-за #!/bin/sh) не может помешать его последующему определению как питон скрипта (из-за расширения *.py). Новый подход в целом более правильный. В общем, питон теперь просто не может распарсить этот код. К сожалению, с ходу я не могу сказать, почему питон не может распарсить этот код. $ rpmpeek Zope-ZPublisher-2.7.7-alt1.i586.rpm cat -n ./usr/lib/python2.4/site-packages/ZPublisher/Client.py |grep -w -C2 47 45 from urlparse import urlparse 46 47 class BadReply(Exception): 48 pass 49 $ [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] rpm-build-4.0.4-alt78 rebuild status 2007-09-09 18:19 [devel] rpm-build-4.0.4-alt78 rebuild status Alexey Tourbin 2007-09-09 19:45 ` [devel] rpm-build-4.0.4-alt78 beehive_status Alexey Tourbin @ 2007-09-10 22:25 ` Michael Shigorin 1 sibling, 0 replies; 29+ messages in thread From: Michael Shigorin @ 2007-09-10 22:25 UTC (permalink / raw) To: devel On Sun, Sep 09, 2007 at 10:19:38PM +0400, Alexey Tourbin wrote: > Вот список не собравшихся пакетов (по сравнению с плановой > пересборкой). > > koules-1.4-alt5 > remind-03.01.00-alt1 Ого, что-то моих многовато зацепило. -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 29+ messages in thread
end of thread, other threads:[~2007-09-11 16:13 UTC | newest] Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-09-09 18:19 [devel] rpm-build-4.0.4-alt78 rebuild status Alexey Tourbin 2007-09-09 19:45 ` [devel] rpm-build-4.0.4-alt78 beehive_status Alexey Tourbin 2007-09-09 19:54 ` Slava Semushin 2007-09-09 19:57 ` Slava Semushin 2007-09-09 20:15 ` Alexey Tourbin 2007-09-09 20:12 ` Alexey Tourbin 2007-09-09 20:16 ` Led 2007-09-09 22:30 ` Alexey Tourbin 2007-09-09 20:39 ` Alexey I. Froloff 2007-09-09 23:05 ` Alexey Tourbin 2007-09-09 22:28 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Alexey Tourbin 2007-09-09 23:27 ` Led 2007-09-09 23:48 ` [devel] #! shebang fixer Alexey Tourbin 2007-09-10 8:48 ` [devel] tcl.req.files: re-exec check implemented Alexey Tourbin 2007-09-10 10:46 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Sergey Bolshakov 2007-09-10 20:46 ` Alexey Tourbin 2007-09-10 21:52 ` [devel] rpm-build-4.0.4-alt78 -- remove rpm-build-tcl? Alexey Tourbin 2007-09-11 9:49 ` Sergey Bolshakov 2007-09-11 14:59 ` Alexey Tourbin 2007-09-11 15:35 ` Led 2007-09-10 22:13 ` [devel] rpm-build-4.0.4-alt78 rpm-build-tcl vs BuildRequires(pre) Alexey Tourbin 2007-09-11 9:30 ` Sergey Bolshakov 2007-09-11 15:49 ` [devel] link tcl extensions with libtcl Alexey Tourbin 2007-09-10 20:39 ` [devel] rpm-build-4.0.4-alt78 tcl SCRIPTS DISABLED Alexey Tourbin 2007-09-10 22:38 ` [devel] rpm-build-4.0.4-alt78 tcl dependencies Michael Shigorin 2007-09-10 10:13 ` [devel] rpm-build-4.0.4-alt78 beehive_status Sergey Bolshakov 2007-09-10 22:28 ` [devel] rpm-build-tcl Requires += tcl? Michael Shigorin 2007-09-11 16:13 ` [devel] Zope-2.7.7-alt1 Alexey Tourbin 2007-09-10 22:25 ` [devel] rpm-build-4.0.4-alt78 rebuild status Michael Shigorin
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git