From 0ad7f1f257fa28707329dd1ade790335b5a1882e Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 19 May 2010 13:16:25 +0200 Subject: tcl: add 8.5.8 --- recipes/tcltk/tcl-8.5.8/confsearch.diff | 22 ++++++++++++ recipes/tcltk/tcl-8.5.8/manpages.diff | 23 ++++++++++++ recipes/tcltk/tcl-8.5.8/mips.diff | 23 ++++++++++++ recipes/tcltk/tcl-8.5.8/non-linux.diff | 55 +++++++++++++++++++++++++++++ recipes/tcltk/tcl-8.5.8/rpath.diff | 41 +++++++++++++++++++++ recipes/tcltk/tcl-8.5.8/tcllibrary.diff | 22 ++++++++++++ recipes/tcltk/tcl-8.5.8/tclpackagepath.diff | 32 +++++++++++++++++ recipes/tcltk/tcl-8.5.8/tclport.diff | 14 ++++++++ recipes/tcltk/tcl-8.5.8/tclprivate.diff | 41 +++++++++++++++++++++ recipes/tcltk/tcl_8.5.8.bb | 51 ++++++++++++++++++++++++++ 10 files changed, 324 insertions(+) create mode 100644 recipes/tcltk/tcl-8.5.8/confsearch.diff create mode 100644 recipes/tcltk/tcl-8.5.8/manpages.diff create mode 100644 recipes/tcltk/tcl-8.5.8/mips.diff create mode 100644 recipes/tcltk/tcl-8.5.8/non-linux.diff create mode 100644 recipes/tcltk/tcl-8.5.8/rpath.diff create mode 100644 recipes/tcltk/tcl-8.5.8/tcllibrary.diff create mode 100644 recipes/tcltk/tcl-8.5.8/tclpackagepath.diff create mode 100644 recipes/tcltk/tcl-8.5.8/tclport.diff create mode 100644 recipes/tcltk/tcl-8.5.8/tclprivate.diff create mode 100644 recipes/tcltk/tcl_8.5.8.bb (limited to 'recipes') diff --git a/recipes/tcltk/tcl-8.5.8/confsearch.diff b/recipes/tcltk/tcl-8.5.8/confsearch.diff new file mode 100644 index 0000000000..f38dbca3c4 --- /dev/null +++ b/recipes/tcltk/tcl-8.5.8/confsearch.diff @@ -0,0 +1,22 @@ +Patch by Sergei Golovan allows to find tclConfig.sh in /usr/share/tcltk/tcl8.5 +and tkConfig.sh in /usr/share/tcltk/tk8.5 where they are located in Debian +installation. + +--- tcl8.5-8.5.8.orig/unix/tcl.m4 ++++ tcl8.5-8.5.8/unix/tcl.m4 +@@ -93,6 +93,7 @@ + `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ ++ `ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + ; do + if test -f "$i/tclConfig.sh" ; then +@@ -223,6 +224,7 @@ + `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ ++ `ls -d /usr/share/tcltk/tk8.5 2>/dev/null` \ + `ls -d /usr/lib 2>/dev/null` \ + ; do + if test -f "$i/tkConfig.sh" ; then diff --git a/recipes/tcltk/tcl-8.5.8/manpages.diff b/recipes/tcltk/tcl-8.5.8/manpages.diff new file mode 100644 index 0000000000..3dd75b8408 --- /dev/null +++ b/recipes/tcltk/tcl-8.5.8/manpages.diff @@ -0,0 +1,23 @@ +Patch by Chris Waters fixes installing of several manual pages which +aren't installed by upstream script but are referenced inside other +manual pages. + +--- tcl8.5-8.5.8.orig/unix/installManPage ++++ tcl8.5-8.5.8/unix/installManPage +@@ -48,8 +48,16 @@ + *.n) SECTION=n ;; + esac + ++NAME=`basename $MANPAGE .$SECTION` + SRCDIR=`dirname $MANPAGE` + ++SPECIALS="DString Thread Notifier RegExp" ++for n in $SPECIALS; do ++ if [ "$NAME" = "$n" ] ; then ++ NAMES="$n $NAMES" ++ fi ++done ++ + FIRST="" + for f in $NAMES; do + f=$f.$SECTION$SUFFIX diff --git a/recipes/tcltk/tcl-8.5.8/mips.diff b/recipes/tcltk/tcl-8.5.8/mips.diff new file mode 100644 index 0000000000..59f3e3251f --- /dev/null +++ b/recipes/tcltk/tcl-8.5.8/mips.diff @@ -0,0 +1,23 @@ +Patch by Sergei Golovan "fixes" building Tcl 8.5.8 for MIPS architectures +until a proper solution isn't suggested. + +--- tcl8.5-8.5.8.orig/generic/tclStrToD.c ++++ tcl8.5-8.5.8/generic/tclStrToD.c +@@ -73,7 +73,7 @@ + * MIPS floating-point units need special settings in control registers + * to use gradual underflow as we expect. + */ +-#if defined(__mips) ++#if 0 && defined(__mips) + #include + #endif + /* +@@ -2166,7 +2166,7 @@ + } bitwhack; + #endif + +-#if defined(__mips) ++#if 0 && defined(__mips) + union fpc_csr mipsCR; + + mipsCR.fc_word = get_fpc_csr(); diff --git a/recipes/tcltk/tcl-8.5.8/non-linux.diff b/recipes/tcltk/tcl-8.5.8/non-linux.diff new file mode 100644 index 0000000000..bfc755b643 --- /dev/null +++ b/recipes/tcltk/tcl-8.5.8/non-linux.diff @@ -0,0 +1,55 @@ +Patch by Sergei Golovan (originally by Mike Markley and Chris Waters) fixes +building on non-linux Debian architectures. + +--- tcl8.5-8.5.8.orig/unix/configure ++++ tcl8.5-8.5.8/unix/configure +@@ -6536,6 +6536,9 @@ + if test "`uname -s`" = "AIX" ; then + tcl_cv_sys_version=AIX-`uname -v`.`uname -r` + fi ++ if test "`uname -s`" = "NetBSD" -a -f /etc/debian_version ; then ++ system=NetBSD-Debian ++ fi + fi + fi + +@@ -7340,7 +7343,7 @@ + fi + + ;; +- Linux*) ++ Linux*|GNU*|NetBSD-Debian) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" +--- tcl8.5-8.5.8.orig/unix/Makefile.in ++++ tcl8.5-8.5.8/unix/Makefile.in +@@ -172,6 +172,7 @@ + SHLIB_LD = @SHLIB_LD@ + SHLIB_CFLAGS = @SHLIB_CFLAGS@ + SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ ++SHLIB_LD_FLAGS = @SHLIB_LD_FLAGS@ + TCL_SHLIB_LD_EXTRAS = @TCL_SHLIB_LD_EXTRAS@ + + SHLIB_SUFFIX = @SHLIB_SUFFIX@ +--- tcl8.5-8.5.8.orig/unix/tcl.m4 ++++ tcl8.5-8.5.8/unix/tcl.m4 +@@ -962,6 +962,9 @@ + if test "`uname -s`" = "AIX" ; then + tcl_cv_sys_version=AIX-`uname -v`.`uname -r` + fi ++ if test "`uname -s`" = "NetBSD" -a -f /etc/debian_version ; then ++ tcl_cv_sys_version=NetBSD-Debian ++ fi + fi + fi + ]) +@@ -1422,7 +1425,7 @@ + ]) + ]) + ;; +- Linux*) ++ Linux*|GNU*|NetBSD-Debian) + SHLIB_CFLAGS="-fPIC" + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" diff --git a/recipes/tcltk/tcl-8.5.8/rpath.diff b/recipes/tcltk/tcl-8.5.8/rpath.diff new file mode 100644 index 0000000000..beab6508ca --- /dev/null +++ b/recipes/tcltk/tcl-8.5.8/rpath.diff @@ -0,0 +1,41 @@ +Patch by Chris Waters removes -rpath from search flags and adds -soname +to library build options. + +--- tcl8.5-8.5.8.orig/unix/configure ++++ tcl8.5-8.5.8/unix/configure +@@ -7351,6 +7351,9 @@ + # get rid of the warnings. + #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" + ++ # following line added by CW for Debian GNU/Linux ++ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}.0" ++ + SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" +--- tcl8.5-8.5.8.orig/unix/Makefile.in ++++ tcl8.5-8.5.8/unix/Makefile.in +@@ -729,7 +729,10 @@ + fi + @echo "Installing $(LIB_FILE) to $(LIB_INSTALL_DIR)/" + @@INSTALL_LIB@ +- @chmod 555 "$(LIB_INSTALL_DIR)"/$(LIB_FILE) ++ mv "$(LIB_INSTALL_DIR)"/$(LIB_FILE) "$(LIB_INSTALL_DIR)"/$(LIB_FILE).0 ++ ln -sf $(LIB_FILE).0 "$(LIB_INSTALL_DIR)"/$(LIB_FILE) ++ ln -sf "$(LIB_INSTALL_DIR)"/$(LIB_FILE).0 ./ ++ @chmod 555 "$(LIB_INSTALL_DIR)"/$(LIB_FILE).0 + @if test "$(TCL_BUILD_EXP_FILE)" != ""; then \ + echo "Installing $(TCL_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \ + $(INSTALL_DATA) $(TCL_BUILD_EXP_FILE) \ +--- tcl8.5-8.5.8.orig/unix/tcl.m4 ++++ tcl8.5-8.5.8/unix/tcl.m4 +@@ -1433,6 +1433,9 @@ + # get rid of the warnings. + #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" + ++ # following line added by CW for Debian GNU/Linux ++ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}.0" ++ + SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" diff --git a/recipes/tcltk/tcl-8.5.8/tcllibrary.diff b/recipes/tcltk/tcl-8.5.8/tcllibrary.diff new file mode 100644 index 0000000000..f61e788019 --- /dev/null +++ b/recipes/tcltk/tcl-8.5.8/tcllibrary.diff @@ -0,0 +1,22 @@ +--- tcl8.5-8.5.8.orig/unix/configure ++++ tcl8.5-8.5.8/unix/configure +@@ -18808,7 +18808,7 @@ + + eval "TCL_LIB_FILE=${TCL_LIB_FILE}" + +-TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)' ++test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)' + PRIVATE_INCLUDE_DIR='$(includedir)' + HTML_DIR='$(DISTDIR)/html' + +--- tcl8.5-8.5.8.orig/unix/configure.in ++++ tcl8.5-8.5.8/unix/configure.in +@@ -734,7 +734,7 @@ + + eval "TCL_LIB_FILE=${TCL_LIB_FILE}" + +-TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)' ++test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)' + PRIVATE_INCLUDE_DIR='$(includedir)' + HTML_DIR='$(DISTDIR)/html' + diff --git a/recipes/tcltk/tcl-8.5.8/tclpackagepath.diff b/recipes/tcltk/tcl-8.5.8/tclpackagepath.diff new file mode 100644 index 0000000000..a9511566e7 --- /dev/null +++ b/recipes/tcltk/tcl-8.5.8/tclpackagepath.diff @@ -0,0 +1,32 @@ +Patch by Sergei Golovan allows to specify TCL_PACKAGE_PATH at configure stage +without adding /usr/lib to it. It helps to put the policy compliant value to +::tcl_pkgPath variable and to TCL_PACKAGE_PATH variable in tclConfig.sh. + +--- tcl8.5-8.5.8.orig/unix/configure ++++ tcl8.5-8.5.8/unix/configure +@@ -18945,9 +18945,9 @@ + test -z "$TCL_MODULE_PATH" && \ + TCL_MODULE_PATH="~/Library/Tcl /Library/Tcl /System/Library/Tcl" + elif test "$prefix/lib" != "$libdir"; then +- TCL_PACKAGE_PATH="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}" ++ test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="${libdir} ${prefix}/lib" + else +- TCL_PACKAGE_PATH="${prefix}/lib ${TCL_PACKAGE_PATH}" ++ test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="${prefix}/lib" + fi + + #-------------------------------------------------------------------- +--- tcl8.5-8.5.8.orig/unix/configure.in ++++ tcl8.5-8.5.8/unix/configure.in +@@ -833,9 +833,9 @@ + test -z "$TCL_MODULE_PATH" && \ + TCL_MODULE_PATH="~/Library/Tcl /Library/Tcl /System/Library/Tcl" + elif test "$prefix/lib" != "$libdir"; then +- TCL_PACKAGE_PATH="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}" ++ test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="${libdir} ${prefix}/lib" + else +- TCL_PACKAGE_PATH="${prefix}/lib ${TCL_PACKAGE_PATH}" ++ test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="${prefix}/lib" + fi + + #-------------------------------------------------------------------- diff --git a/recipes/tcltk/tcl-8.5.8/tclport.diff b/recipes/tcltk/tcl-8.5.8/tclport.diff new file mode 100644 index 0000000000..d434663d0c --- /dev/null +++ b/recipes/tcltk/tcl-8.5.8/tclport.diff @@ -0,0 +1,14 @@ +Patch by Stanislav Maslovski . +See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=488491 + +--- tcl8.5-8.5.8.orig/generic/tclPort.h ++++ tcl8.5-8.5.8/generic/tclPort.h +@@ -24,7 +24,7 @@ + #if defined(__WIN32__) + # include "tclWinPort.h" + #else +-# include "tclUnixPort.h" ++# include "../unix/tclUnixPort.h" + #endif + + #if !defined(LLONG_MIN) diff --git a/recipes/tcltk/tcl-8.5.8/tclprivate.diff b/recipes/tcltk/tcl-8.5.8/tclprivate.diff new file mode 100644 index 0000000000..3d4ca57c8c --- /dev/null +++ b/recipes/tcltk/tcl-8.5.8/tclprivate.diff @@ -0,0 +1,41 @@ +Patch by Chris Waters sets paths which are normally point to a directory +with Tcl sources to a subdirectory of /usr/include/tcl8.4 (debian/rules +puts private Tcl headers there). + +--- tcl8.5-8.5.8.orig/unix/tclConfig.sh.in ++++ tcl8.5-8.5.8/unix/tclConfig.sh.in +@@ -111,7 +111,7 @@ + + # String to pass to linker to pick up the Tcl library from its + # build directory. +-TCL_BUILD_LIB_SPEC='@TCL_BUILD_LIB_SPEC@' ++TCL_BUILD_LIB_SPEC='@TCL_LIB_SPEC@' + + # String to pass to linker to pick up the Tcl library from its + # installed directory. +@@ -146,7 +146,7 @@ + # different place than the directory containing the source files, this + # points to the location of the sources, not the location where Tcl was + # compiled. +-TCL_SRC_DIR='@TCL_SRC_DIR@' ++TCL_SRC_DIR='@includedir@/tcl-private' + + # List of standard directories in which to look for packages during + # "package require" commands. Contains the "prefix" directory plus also +@@ -164,14 +164,14 @@ + + # String to pass to linker to pick up the Tcl stub library from its + # build directory. +-TCL_BUILD_STUB_LIB_SPEC='@TCL_BUILD_STUB_LIB_SPEC@' ++TCL_BUILD_STUB_LIB_SPEC='@TCL_STUB_LIB_SPEC@' + + # String to pass to linker to pick up the Tcl stub library from its + # installed directory. + TCL_STUB_LIB_SPEC='@TCL_STUB_LIB_SPEC@' + + # Path to the Tcl stub library in the build directory. +-TCL_BUILD_STUB_LIB_PATH='@TCL_BUILD_STUB_LIB_PATH@' ++TCL_BUILD_STUB_LIB_PATH='@TCL_STUB_LIB_PATH@' + + # Path to the Tcl stub library in the install directory. + TCL_STUB_LIB_PATH='@TCL_STUB_LIB_PATH@' diff --git a/recipes/tcltk/tcl_8.5.8.bb b/recipes/tcltk/tcl_8.5.8.bb new file mode 100644 index 0000000000..220e858056 --- /dev/null +++ b/recipes/tcltk/tcl_8.5.8.bb @@ -0,0 +1,51 @@ +DESCRIPTION = "Tool Command Language" +LICENSE = "tcl" +SECTION = "devel/tcltk" +HOMEPAGE = "http://tcl.sourceforge.net" + +SRC_URI = "\ + ${SOURCEFORGE_MIRROR}/tcl/tcl${PV}-src.tar.gz \ + file://confsearch.diff;patch=1;pnum=2 \ + file://manpages.diff;patch=1;pnum=2 \ + file://non-linux.diff;patch=1;pnum=2 \ + file://rpath.diff;patch=1;pnum=2 \ + file://tcllibrary.diff;patch=1;pnum=2 \ + file://tclpackagepath.diff;patch=1;pnum=2 \ + file://tclprivate.diff;patch=1;pnum=2 \ +" + +SRC_URI[md5sum] = "7f123e53b3daaaba2478d3af5a0752e3" +SRC_URI[sha256sum] = "6b090c1024038d0381e1ccfbd6d5c0f0e6ef205269ceb9d28bd7bd7ac5bbf4a7" + +S = "${WORKDIR}/tcl${PV}/unix" + +inherit autotools binconfig + +EXTRA_OECONF = "--enable-threads" + +do_compile_prepend() { + echo > ../compat/fixstrtod.c + sed -i -e 's:./tclsh :tclsh :g' Makefile +} + +BINCONFIG_GLOB = "*Config.sh" + +do_install() { + autotools_do_install + # Stage a few extra headers to make tk happy + install -m 0644 ../generic/*.h ${D}${includedir} + install -m 0644 *.h ${D}${includedir} + ln -sf tclsh8.5 ${D}${bindir}/tclsh +} + +SYSROOT_PREPROCESS_FUNCS =+ "tcl_sysroot" + +tcl_sysroot() { + sed -i 's:/usr/include/tcl-private:${STAGING_INCDIR}:' tclConfig.sh +} + +PACKAGES =+ "${PN}-lib" +FILES_${PN}-lib = "${libdir}/libtcl8.5.so.*" +FILES_${PN} += "${libdir}/tcl*" +FILES_${PN}-dev += "${libdir}/tclConfig.sh" + -- cgit 1.2.3-korg