summaryrefslogtreecommitdiff
path: root/recipes/tcltk
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2010-05-19 13:16:25 +0200
committerKoen Kooi <koen@openembedded.org>2010-05-19 14:20:54 +0200
commit0ad7f1f257fa28707329dd1ade790335b5a1882e (patch)
treedcc308d3aafcd44cc9732aa3b8fc6fdf78de5e6e /recipes/tcltk
parent3e51206d0dfca1fc153999af43977d66ddaef8b2 (diff)
tcl: add 8.5.8
Diffstat (limited to 'recipes/tcltk')
-rw-r--r--recipes/tcltk/tcl-8.5.8/confsearch.diff22
-rw-r--r--recipes/tcltk/tcl-8.5.8/manpages.diff23
-rw-r--r--recipes/tcltk/tcl-8.5.8/mips.diff23
-rw-r--r--recipes/tcltk/tcl-8.5.8/non-linux.diff55
-rw-r--r--recipes/tcltk/tcl-8.5.8/rpath.diff41
-rw-r--r--recipes/tcltk/tcl-8.5.8/tcllibrary.diff22
-rw-r--r--recipes/tcltk/tcl-8.5.8/tclpackagepath.diff32
-rw-r--r--recipes/tcltk/tcl-8.5.8/tclport.diff14
-rw-r--r--recipes/tcltk/tcl-8.5.8/tclprivate.diff41
-rw-r--r--recipes/tcltk/tcl_8.5.8.bb51
10 files changed, 324 insertions, 0 deletions
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 <sys/fpu.h>
+ #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 <stanislav.maslovski@gmail.com>.
+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"
+