# # spec file for package tcl (Version 8.5.2) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine # package are under the same license as the package itself. # # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild Name: tcl Url: http://www.tcl.tk Version: 8.5.2 Release: 4 %define TCL_MINOR %(echo %version | cut -c1-3) BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: The Tcl Programming Language License: BSD 3-Clause Group: Development/Languages/Tcl AutoReqProv: on Provides: tclsh tclsh%{TCL_MINOR} PreReq: /bin/rm Source0: %name%{version}-src.tar.bz2 Source1: tcl-rpmlintrc Source2: baselibs.conf Source3: macros.tcl Patch0: tcl.patch Patch1: tcl-format.patch %description Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more. Open source and business-friendly, Tcl is a mature yet evolving language that is truly cross platform, easily deployed and highly extensible. For more information on Tcl see http://www.tcl.tk and http://wiki.tcl.tk . Authors: -------- The Tcl Core Team %package devel Group: Development/Libraries/Tcl License: BSD 3-Clause Summary: Header Files and C API Documentation for Tcl Requires: tcl = %version %description devel This package contains header files and documentation needed for writing Tcl extensions in compiled languages like C, C++, etc., or for embedding the Tcl interpreter in programs written in such languages. This package is not needed for writing extensions or applications in the Tcl language itself. Authors: -------- The Tcl Core Team %prep %setup -q -n %name%version %patch0 %patch1 %build cd unix %configure \ --enable-treads \ --enable-man-symlinks \ --enable-man-compression=gzip %define scriptdir %_libdir/tcl MAKE='make %{?jobs:-j%jobs} TCL_LIBRARY="%scriptdir/tcl%TCL_MINOR" TCL_PACKAGE_PATH="%_libdir/tcl %_datadir/tcl" CFLAGS="%optflags $PFLAGS" LDFLAGS_OPTIMIZE="%optflags $PFLAGS" SHLIB_LD="gcc -shared %optflags $PFLAGS"' # Build with instrumentation for profiling PFLAGS="%cflags_profile_generate" eval $MAKE # Some of the regressioin tests write to $HOME, so better redirect them mkdir home export HOME=$PWD/home # Run the testsuite to gather some data for the profile-based # optimisation and let rpmbuild fail on unexpected test failures. cat > known-failures <&1 | tee testresults grep FAILED testresults | grep -Fqvf known-failures && exit 1 # If we don't do profile based optimisation, we are done at this point. test -z "$PFLAGS" && exit 0 # Rebuild and use the profiling results make clean PFLAGS="%cflags_profile_feedback" eval $MAKE %install make -C unix install install-private-headers \ INSTALL_ROOT=%buildroot \ TCL_LIBRARY="%scriptdir/tcl%TCL_MINOR" rm -f %buildroot%scriptdir/tcl%TCL_MINOR/ldAix ln -sf tclsh%TCL_MINOR %buildroot%_prefix/bin/tclsh mkdir -p %buildroot%_datadir/tcl install -D %{S:3} %buildroot/etc/rpm/macros.tcl %clean rm -rf %buildroot %if %_lib == lib64 %post test -L /usr/lib/tcl%TCL_MINOR && /bin/rm -f /usr/lib/tcl%TCL_MINOR exit 0 %endif %files %defattr(-,root,root,755) %doc README changes license.terms ChangeLog* %docdir %_mandir/mann %doc %_mandir/man1/* %doc %_mandir/mann/* %_prefix/bin/* %_libdir/lib*.so %_datadir/tcl %scriptdir %exclude %scriptdir/*/tclAppInit.c /etc/rpm/macros.tcl %files devel %defattr(-,root,root) %doc %_mandir/man3/* %_includedir/* %scriptdir/*/tclAppInit.c %_libdir/*.a %_libdir/tclConfig.sh %changelog * Mon Apr 07 2008 max@suse.de - Added /etc/rpm/macros.tcl - Fixed behaviour of "%% d" format string. * Wed Apr 02 2008 max@suse.de - New release: 8.5.2: * Speed: 8.5 now runs 10%% faster than 8.4 with bytecode improvements, object caching and reduced memory usage. * Bignums: Tcl now supports arbitrary-precision integers, which improves math operations on large integers. * Safer interps: Tcl's powerful safe interpreter mechanism now has improved control of time and command limits in slave interpreters. * clock command: More robust implementation of command for specifying time, with significant l10n and i18n improvements. * dict command: New data structure that allows access to data by value rather than a variable name, which is substantially faster. * Additional improvements: Faster list search, new and improved mathematics procedures, anonymous procedures, new ways to package Tcl extensions, Tcl-level custom channel types, file and line location information for each command, and more. * More details in /usr/share/doc/packages/tcl/changes . - Changed install locations for extensions: Compiled packages now go into their own subdir under /usr/lib{,64}/tcl, script-only packages go into /usr/share/tcl . * Wed Jun 06 2007 max@suse.de - New Patchlevel release: 8.4.15 - fix [file copy] on afs - use > 32 async sockets on 64bit system - fix list shimmer crash in [lsort] - fix list shimmer crash in [foreach] - fix list shimmer crash in [array set] - fix buffer overflow in [registry keys] * Tue Oct 17 2006 max@suse.de - New patchlevel release: 8.4.14rc2 - srand() accept wide input. - interactive Tcl_Main blocks main loop - proc re-compile: preserve the previous bytecode while references still on the stack - fixed [glob] on VFS - fix intermittent failures in TclUnixWaitForFile() - fix filesystem segfaults - use of MT-safe system calls - make [lappend $nonList] complain - alignment fixes in unicode encoding routines - [set ::http::strict 1] (default value is 0) to enable URL validity checking against RFC 2986 * Mon Sep 11 2006 max@suse.de - New version: 8.4.13 - Fixes abs(MIN_INT) handling (obsoletes tcl-abs.patch) - Fixes exec (#127822, obsoletes tcl-exec.patch) - Several other bugfixes. * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Mon Jan 16 2006 max@suse.de - Fixed a potential segfault in the exec command (#127822). * Mon Dec 12 2005 max@suse.de - Fixed abs(MIN_INT) handling. * Thu Dec 08 2005 max@suse.de - New version: 8.4.12 * Sun Nov 06 2005 schwab@suse.de - Fix syntax error in unix configure script. * Wed Jul 27 2005 max@suse.de - New version: 8.4.11 - Fixed package loading path. Now Tcl extensions are found under /usr/share/tcl, /usr/lib, and on biarch platforms also under /usr/lib64. * Tue Jun 14 2005 max@suse.de - New version: 8.4.10 - Moved script libraries to /usr/share/tcl . * Mon May 09 2005 max@suse.de - Fixed profile-based optimisation with gcc4 (tcl-profile.patch). * Mon Mar 21 2005 max@suse.de - Added prerequisites for the trigger scripts (bug #74027). * Fri Mar 18 2005 max@suse.de - Make sure that tcl-32bit finds the script libraries when installed on a 64bit system. * Fri Dec 03 2004 max@suse.de - New version: 8.4.9 * Mon Nov 22 2004 max@suse.de - New version: 8.4.8 * Thu Aug 19 2004 schwab@suse.de - Fix broken tests that depend on particular directory order. * Tue Jul 27 2004 max@suse.de - New version: 8.4.7 * Thu May 27 2004 max@suse.de - Added tcl-utf8-null.patch to fix bug #39165. Tcl wrote nullbytes as 0xc0, 0xc80 instead of 0x00 when writing to a UTF-8 encoded channel. * Fri Mar 05 2004 max@suse.de - Updated to the official 8.4.6 source tarball which fixes a memory leak. * Fri Feb 27 2004 max@suse.de - New version: 8.4.6 * Fri Feb 06 2004 max@suse.de - Added -fno-strict-aliasing to CFLAGS. * Tue Jan 20 2004 schwab@suse.de - Move %%define before first use. * Thu Jan 15 2004 max@suse.de - Added LDFLAGS for gcc-3.4 and feedback based optimization. * Mon Jan 12 2004 max@suse.de - New version: 8.4.5 - Removed tclbench, since "make test" seems to be enough exercise for the feedback based optimization. * Thu Oct 02 2003 max@suse.de - Removed support for building static libs from the spec file. - Added open-std-channels.patch to prevent tclsh from crashing when it's started with one or more of std{in,out,err} closed. * Tue Sep 02 2003 max@suse.de - Disabled building of the static library to save build time and CD space. * Wed Aug 13 2003 max@suse.de - Cleaned up the spec file from cruft, left from the times when it built multiple packages. - Added support for GCC feedback based optimization. - Added support for parallel compilaton. * Thu Jul 24 2003 max@suse.de - Fixed a typo, that broke [pkg_mkIndex -verbose]. * Wed Jul 23 2003 max@suse.de - New version: 8.4.4 * Wed May 21 2003 max@suse.de - New version: 8.4.3 - Removed obsolete patches * Wed Mar 05 2003 max@suse.de - Updated to official 8.4.2 release tarball - Essental diff to RC1 added as tcl-20030305.path.gz * Thu Feb 27 2003 max@suse.de - Updated to 8.4.2 RC1, and added an essential diff to the previous tarball (tcl-20030227.patch.bz2). - tcl-StringObj.patch is no longer needed. - Disabled the httpold-4.12 test, because it sometimes fails on Hammer due to timing issues. * Tue Feb 18 2003 max@suse.de - Updated to CVS HEAD, and added diff to the previous tarball for completeness. - Added tcl-StringObj.patch to fix a bug in conjunction with expect (Bug #23694). - Made the testsuite break build if any test fails. * Fri Feb 07 2003 max@suse.de - Upgrade to CVS HEAD (8.4.2pre). * Mon Nov 25 2002 max@suse.de - Upgrade to 8.4.1 - Added tcl-HEAD.patch with fixes that went in after the 8.4.1 release. - Moved itcl, iwidgets, tk, and tclx into separate soure packages. * Mon Sep 09 2002 max@suse.de - Added patch to final 8.4.0. - Another couple of memleak and docu fixes. * Thu Sep 05 2002 max@suse.de - Next round of fixes (tcl8.4-20020905.patch tk8.4-20020905.patch). - A detailed ChangeLog is at the top of the new patches. - Removed autoconf and automake from neededforbuild. * Tue Sep 03 2002 max@suse.de - Another CVS snapshot for Tcl and Tk. - The version numbers have been bumped from 8.4b3 to 8.4.0 - A couple more bug fixes. For details see the new ChangeLog entries in the patches. * Mon Sep 02 2002 max@suse.de - Added patches for to update Tcl and Tk to current CVS HEAD to fix some segfault cases and memleaks e.g. bug #18651. See ChangeLog for more details. - Renamed Object.3 to Tcl_Obj.3 to resolve a name conflict. * Thu Aug 15 2002 max@suse.de - Updated Tcl and Tk to the latest CVS snapshot which is close to the official 8.4b2 release. - Updated Itcl to 3.3 from CVS because it better fits with Tcl8.4. - Removed excessive braces from RPM macros, and some more cleanups in the spec file. - Using x-devel-packages instead of xf86 in needeforbuild. - socklen_t.patch isn't needed anymore. - Fixed CFLAGS (-fPIC) for TclX. - Updated TclX to 8.4 from CVS (needed for Tcl/Tk 8.4). This doesn't include /usr/bin/tcl and /usr/bin/wishx anymore. In case a script needs one of them, please use a normal tclsh or wish and add a line saying "package require Tclx" to the beginning of the script. * Fri Jul 26 2002 max@suse.de - Removed gdb from #neededforbuild. * Mon Jul 22 2002 max@suse.de - Updated to the latest CVS HEAD. - Fixed socket calls on s390x (socklen_t.patch). * Mon Jul 01 2002 max@suse.de - New Versions of Tcl and Tk: 8.4b1 * Fri Jun 07 2002 max@suse.de - New Version of tkcon: 2.3. - Fixed directory permissions in iwidgets. - Put things that are common to all subpackages into shell functions to make maintainance of the spec file easier. * Wed Apr 24 2002 max@suse.de - Fixed creation of Tk's pkgIndex.tcl. - Fixed permissions and path to wish in iwidgets demo scripts. * Wed Apr 03 2002 ro@suse.de - fix to build with latest autoconf (LIBOBJS vs. AC_LIBOBJ) * Wed Feb 20 2002 uli@suse.de - fixed to build on ARM * Wed Feb 20 2002 max@suse.de - Fixed for lib64-s390x (libdir.patch). - Running the testsuite after building Tcl. * Mon Feb 18 2002 max@suse.de - Changed TclX to use -fPIC instead of -fpic . * Wed Feb 06 2002 max@suse.de - Fixed a typo in the http package. - Moved iwidgets out of the itcl dir. * Thu Jan 17 2002 max@suse.de - Moved Tix and Expect back into their own source packages. - Added some private headers to tcl-devel to be able to build Tix and Expect independent of the Tcl/Tk sources. - replaced %%{_prefix}/lib by %%{_libdir} where apropriate * Fri Dec 14 2001 uli@suse.de - build static only on ARM * Fri Nov 16 2001 schwab@suse.de - Use $(SHLIB_CFLAGS) in itcl makefiles. * Mon Oct 29 2001 max@suse.de - New versions: o Tcl/Tk 8.3.4 o expect 5.33.0 o Tix 8.1.1 o [incr Tcl/Tk] 3.2.1 o [incr Widgets] 4.0.0 - Included tkcon-2.2 with Tk. - Removed unnecessary explicit dependencies between the subpackages. - Changed the memory man page back to the one that comes with Tcl. - Changed the -C configure switch to be only used when needed and supported. * Fri Sep 21 2001 max@suse.de - replaced the "memory" man page from Tcl with the one from TclX, because it is better and there was a filename clash in the two packages before. * Mon Jun 18 2001 schwab@suse.de - Fix TK_XINCLUDES in tkConfig.sh. * Wed Jun 13 2001 schwab@suse.de - Add %%suse_update_config. - Fix for new autoconf (force use of cache file). * Tue May 08 2001 mfabian@suse.de - bzip2 sources * Tue Apr 10 2001 max@suse.de - new version of Tcl/Tk: 8.3.3 * Mon Apr 02 2001 max@suse.de - security fix for expect (/var/tmp/[...] was in rpath). * Thu Mar 08 2001 max@suse.de - made exclusion of static libs for manual builds more robust * Wed Mar 07 2001 max@suse.de - added xdevel and xshared to #neededforbuild - using %%if to exclude things when building without static libs. * Wed Jan 10 2001 max@suse.de - Fixed a bug itcl's manpage installation - man.macros was not copied into the individual manpages. * Mon Jan 08 2001 max@suse.de - Enabling XIM by default. This fixes the compose and deadkey problem. Bug #5234 * Tue Dec 19 2000 max@suse.de - Fix for race condition with tmpnam(3) in tclUnixPipe.c * Thu Nov 30 2000 ro@suse.de - try to fix static-lib install * Thu Nov 30 2000 max@suse.de - re-enabled static libs * Wed Nov 29 2000 max@suse.de - renamed tcld to tcl-devel - new version of Tcl/Tk: 8.3.2 - new version of [incr Tcl]: 3.2 - new version of TclX: 8.3.2 - new version of expect: 5.32 - new version of Tix: 8.1.0 * Fri Nov 24 2000 schwab@suse.de - Fix typo in itk makefile. * Wed Nov 15 2000 ro@suse.de - use "export LANG=en_US" to make it build despite col bug * Wed Sep 13 2000 max@suse.de - When running in build or autobuild, configure didn't recognize the termios API, because the check needed stdin to be a tty. Changed tcl.m4 to fix this by relying on the existance of termios.h . * Wed May 31 2000 max@suse.de - New version of Tix: 4.1.007 - Applied Bruce Stephens' Patch to make Tix work with Tcl/Tk 8.3 http://www.egroups.com/message/tix/494 * Wed May 17 2000 schwab@suse.de - Recover bug fixes. * Thu May 04 2000 max@suse.de - new version of Tcl/Tk: 8.3.1 - new version of TclX: 8.2.0 - new version of expect: 5.31 - new version of itcl: 3.1.0 - the package uses RPM_BUILD_ROOT now - some of schwab's bad documented "fixes" got lost * Fri Apr 14 2000 schwab@suse.de - Use $RPM_OPT_FLAGS as default CFLAGS. - expect, tix: fix missing declarations. - itcl: make sure we link to the libraries just built. * Wed Apr 12 2000 schwab@suse.de - expect: make sure ptsname is declared. - tclX: fix autoconf check for clock_t (look in ) * Mon Feb 28 2000 schwab@suse.de - Add group tags - expect: use --localdir with autoreconf, update config.{guess,sub} - tcl: fix printf formats * Thu Feb 24 2000 schwab@suse.de - Fix 64 Bit Bug in expect. * Tue Jan 25 2000 kukuk@suse.de - Remove autopasswd, mkpasswd and tkpasswd from expect file list. They will not work with PAM. Fixes [Bug 638] and [Bug 1554] * Sat Nov 27 1999 kukuk@suse.de - Fix duplicate SIGPWR/SIGLOST on SPARC * Mon Nov 15 1999 kasal@suse.de - fixed a few minor bugs in spec file, mainly: call "autoreconf --force" instead of "autoconf" to regenerate also the configure scripts in subdirs rm *.o before creating the dynamic version of the library * Mon Nov 08 1999 max@suse.de - added some compatibility links: /usr/X11R6/bin/wish -> ../../bin/wish8.0 /usr/X11R6/bin/wish8.0 -> ../../bin/wish8.0 /usr/X11R6/bin/tixwish -> ../../bin/tixwish4.1.8.0 /usr/X11R6/bin/tixwish4.1.8.0 -> ../../bin/tixwish4.1.8.0 * Fri Oct 08 1999 max@suse.de - integrated tclX8.0.4 as an additional subpackage * Thu Oct 07 1999 max@suse.de - integrated expect-5.30 as an additional subpackage - changed the names of some tk manpages because they interferred with itcl - removed the tix-sam libraries from tcld * Thu Sep 30 1999 max@suse.de - this is a test version for the beta distribution - major rework of the spec-file - renamed the packages from tcl_new, tk_new, etc. to tcl, tk, etc. - Moved Tk from /usr/X11R6 to /usr. - Moved Tix from /usr/lib/tcltk to /usr/lib - Included itcl 3.0.1 as a subpackage - There is a new subpackage, called tcld that holds all the static libs and header files for Tcl, Tk, Tix and Itcl. - Most file lists are auto-generated now. * Mon Sep 27 1999 bs@suse.de - fixed requirements for sub packages * Mon Sep 13 1999 bs@suse.de - ran old prepare_spec on spec file to switch to new prepare_spec. * Sun Mar 14 1999 max@suse.de - new version: 8.0.5 - ro's patch from Mon Sep 21 1998 is not needed anymore * Tue Mar 02 1999 ro@suse.de - changed macro TK to TKK in specfile 2char macros don't seem to work in current rpm * Fri Jan 15 1999 max@suse.de - fixed path bug with applications linked against libtk which do not reside in /usr/X11R6 * Thu Nov 26 1998 max@suse.de - corrected some paths in tix to make it find its init script and libraries correctly * Tue Nov 24 1998 max@suse.de - merged spec files of tcl_new, tk_new and tix_new into tcl_new.spec - this changes file is from now on for all three packages * Mon Nov 23 1998 max@suse.de - new version: 8.0.4 - cleand up softlinks and compression for man pages * Mon Sep 21 1998 ro@suse.de - for GLIBC EOPNOTSUPP and ENOTSUP seem to map to same value - catch duplicate cases for this reason in tclPosixStr.c * Mon Nov 10 1997 hf@suse.de new version 8.0p1 * Mon Oct 27 1997 hf@suse.de ready for autobuild * Thu Jul 03 1997 hf@suse.de A new release 8.0b2, the second (and probably final) beta release for Tcl 8.0. * Tue Jun 03 1997 hf@suse.de - added static librs and all links for the manpages in the /usr/doc/packages/tcl8.0/man * Tue Apr 15 1997 hf@suse.de - manpages hardlinks removed and added softlinks to compressd manpages the new directory for the manpages is /usr/doc/packeges/tcl8.0/man