]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
tcl: Update to 5.8.11.
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 12 Feb 2012 16:16:56 +0000 (17:16 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 12 Feb 2012 16:16:56 +0000 (17:16 +0100)
Adds the tclstub library and a development package with all
the header files that are needed to use tcl.

tcl/patches/tcl-8.5.1-autopath.patch [moved from tcl/patches/tcl-8.5.8-autopath.patch with 100% similarity]
tcl/patches/tcl-8.5.10-conf.patch [moved from tcl/patches/tcl-8.5.8-conf.patch with 100% similarity]
tcl/patches/tcl-8.5.9-hidden.patch [new file with mode: 0644]
tcl/tcl.nm

diff --git a/tcl/patches/tcl-8.5.9-hidden.patch b/tcl/patches/tcl-8.5.9-hidden.patch
new file mode 100644 (file)
index 0000000..451cda2
--- /dev/null
@@ -0,0 +1,33 @@
+diff -up tcl8.5.6/generic/tclPort.h.old tcl8.5.6/generic/tclPort.h
+--- tcl8.5.6/generic/tclPort.h.old     2009-02-09 16:40:08.000000000 +0100
++++ tcl8.5.6/generic/tclPort.h 2009-02-09 16:40:26.000000000 +0100
+@@ -24,7 +24,7 @@
+ #endif
+ #include "tcl.h"
+ #if !defined(_WIN32)
+-#   include "tclUnixPort.h"
++#   include "../unix/tclUnixPort.h"
+ #endif
+ #if defined(__CYGWIN__)
+diff -up tcl8.5.6/generic/tclInt.h.bbb tcl8.5.6/generic/tclInt.h
+--- tcl8.5.6/generic/tclInt.h.bbb      2008-11-14 01:22:39.000000000 +0100
++++ tcl8.5.6/generic/tclInt.h  2009-02-11 13:05:13.000000000 +0100
+@@ -2773,7 +2773,7 @@ MODULE_SCOPE void        TclClockInit(Tcl_Inter
+ MODULE_SCOPE int      TclClockOldscanObjCmd(
+                           ClientData clientData, Tcl_Interp *interp,
+                           int objc, Tcl_Obj *const objv[]);
+-MODULE_SCOPE int      Tcl_CloseObjCmd(ClientData clientData,
++extern int    Tcl_CloseObjCmd(ClientData clientData,
+                           Tcl_Interp *interp, int objc,
+                           Tcl_Obj *const objv[]);
+ MODULE_SCOPE int      Tcl_ConcatObjCmd(ClientData clientData,
+@@ -2934,7 +2934,7 @@ MODULE_SCOPE int Tcl_RegsubObjCmd(Client
+ MODULE_SCOPE int      Tcl_RenameObjCmd(ClientData clientData,
+                           Tcl_Interp *interp, int objc,
+                           Tcl_Obj *const objv[]);
+-MODULE_SCOPE int      Tcl_ReturnObjCmd(ClientData clientData,
++extern int    Tcl_ReturnObjCmd(ClientData clientData,
+                           Tcl_Interp *interp, int objc,
+                           Tcl_Obj *const objv[]);
+ MODULE_SCOPE int      Tcl_ScanObjCmd(ClientData clientData,
index 0ce3438a8ace48441f60802f4828b1296afe20ce..11a9287727f7eb06fcb1663092075e9d0861993f 100644 (file)
@@ -4,8 +4,10 @@
 ###############################################################################
 
 name       = tcl
-version    = 8.5.10
-release    = 2
+major_ver  = 8.5
+version    = %{major_ver}.11
+release    = 1
+thisapp    = tcl%{version}
 
 groups     = Development/Languages
 url        = http://tcl.sourceforge.net/
@@ -18,47 +20,78 @@ description
        applications, protocols, devices, and frameworks.
 end
 
-source_dl  = http://downloads.sourceforge.net/project/%{name}/%{name}/%{thisapp}
+source_dl  = http://downloads.sourceforge.net/project/%{name}/Tcl/%{version}/
 sources    = tcl%{version}-src.tar.gz
 
 build
        requires
-               perl>=5.14.2-9.ip3
                autoconf
                automake
+               perl >= 5.14.2-9.ip3
        end
 
-       DIR_APP = %{DIR_SRC}/tcl%{version}/unix
        CFLAGS += -DTCL_NO_STACK_CHECK=1
+       make_extra = TCL_LIBRARY=%{datadir}/%{name}%{major_ver}
 
-       configure_options +=\
+       configure_options += \
+               --disable-threads \
+               --enable-symbols \
                --enable-shared
 
-       prepare
-               cd %{DIR_SRC} && %{MACRO_EXTRACT} %{DIR_DL}/${source}/%{sources}
-               cd %{DIR_APP} && cd ..
+       prepare_cmds
+               cd unix && autoconf
+       end
 
-               %{MACRO_PATCHES}
+       build
+               cd unix
+               ./configure \
+                       %{configure_options}
 
-               cd %{DIR_APP} && autoconf
+               make %{PARALLELISMFLAGS} %{make_extra}
        end
 
-       test
-               # Skip remote tests http, httpold and socket.
-               # Also skip unixInit-1.1. This test fails because "kill -PIPE"
-               # will be executed and we don't support that.
-               make test TESTFLAGS="-skip 'http* socket* unixInit-1.1'"
+       install
+               cd unix
+               make install %{make_extra} INSTALL_ROOT=%{BUILDROOT}
+               cd ..
+
+               ln -svf tclsh%{major_ver} %{BUILDROOT}/usr/bin/tclsh
+
+               # for linking with -lib%{name}
+               ln -svf lib%{name}%{major_ver}.so %{BUILDROOT}%{libdir}/lib%{name}.so
+
+               # paths don't look at /usr/lib for efficiency, so we symlink into tcl8.5 for now
+               mkdir -pv %{BUILDROOT}%{libdir}/%{name}%{major_ver}
+               ln -svf ../%{name}Config.sh %{BUILDROOT}%{libdir}/%{name}%{major_ver}/%{name}Config.sh
+
+               mkdir -pv %{BUILDROOT}%{includedir}/%{name}-private/{generic,unix}
+               find generic unix -name "*.h" -exec cp -p '{}' %{BUILDROOT}%{includedir}/%{name}-private/'{}' ';'
+               (
+                       cd %{BUILDROOT}%{includedir}
+                       for i in *.h; do
+                               [ -f %{BUILDROOT}%{includedir}/%{name}-private/generic/${i} ] && ln -sf ../../${i} \
+                                       %{BUILDROOT}%{includedir}/%{name}-private/generic;
+                       done
+               )
+
+               # remove buildroot traces
+               sed -i -e "s|$PWD/unix|%{libdir}|; s|$PWD|%{includedir}/%{name}-private|" %{BUILDROOT}%{libdir}/%{name}Config.sh
+               rm -rf %{BUILDROOT}%{datadir}/%{name}%{major_ver}/ldAix
        end
 
-       install_cmds
-               cd %{DIR_APP} && make install-private-headers DESTDIR=%{BUILDROOT}
-               ln -sf tclsh8.5 %{BUILDROOT}/usr/bin/tclsh
+       # Keep libtclstub*.a.
+       keep_libraries
+               %{libdir}/lib%{name}stub%{major_ver}.a
        end
 end
 
 packages
        package %{name}
 
+       package %{name}-devel
+               template DEVEL
+       end
+
        package %{name}-debuginfo
                template DEBUGINFO
        end