summaryrefslogtreecommitdiff
path: root/recipes/tcltk
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/tcltk')
-rw-r--r--recipes/tcltk/files/disable-xim.patch20
-rw-r--r--recipes/tcltk/files/tcl-add-soname.patch41
-rw-r--r--recipes/tcltk/files/tk-add-soname.patch64
-rw-r--r--recipes/tcltk/tcl-native_8.4.19.bb22
-rw-r--r--recipes/tcltk/tcl/fix-configure.patch44
-rw-r--r--recipes/tcltk/tcl_8.4.19.bb55
-rw-r--r--recipes/tcltk/tk-native_8.4.19.bb22
-rw-r--r--recipes/tcltk/tk/fix-configure.patch16
-rw-r--r--recipes/tcltk/tk_8.4.19.bb56
9 files changed, 340 insertions, 0 deletions
diff --git a/recipes/tcltk/files/disable-xim.patch b/recipes/tcltk/files/disable-xim.patch
new file mode 100644
index 0000000000..bc11d3bbe9
--- /dev/null
+++ b/recipes/tcltk/files/disable-xim.patch
@@ -0,0 +1,20 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- ../generic/tk.h~disable-xim
++++ ../generic/tk.h
+@@ -109,9 +109,9 @@
+ * Decide whether or not to use input methods.
+ */
+
+-#ifdef XNQueryInputStyle
+-#define TK_USE_INPUT_METHODS
+-#endif
++//#ifdef XNQueryInputStyle
++#undef TK_USE_INPUT_METHODS
++//#endif
+
+ /*
+ * Dummy types that are used by clients:
diff --git a/recipes/tcltk/files/tcl-add-soname.patch b/recipes/tcltk/files/tcl-add-soname.patch
new file mode 100644
index 0000000000..951244327b
--- /dev/null
+++ b/recipes/tcltk/files/tcl-add-soname.patch
@@ -0,0 +1,41 @@
+Patch by Chris Waters removes -rpath from search flags and adds -soname
+to library build options.
+
+--- tcl8.4-8.4.19.orig/unix/configure
++++ tcl8.4-8.4.19/unix/configure
+@@ -3072,12 +3072,15 @@
+ # 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"
++
+ if test "$have_dl" = yes; then
+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
+ DL_OBJS="tclLoadDl.o"
+ DL_LIBS="-ldl"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
++ CC_SEARCH_FLAGS=""
+ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ else
+ ac_safe=`echo "dld.h" | sed 'y%./+-%__p_%'`
+--- tcl8.4-8.4.19.orig/unix/tcl.m4
++++ tcl8.4-8.4.19/unix/tcl.m4
+@@ -1346,12 +1346,15 @@
+ # 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"
++
+ if test "$have_dl" = yes; then
+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
+ DL_OBJS="tclLoadDl.o"
+ DL_LIBS="-ldl"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
++ CC_SEARCH_FLAGS=""
+ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ else
+ AC_CHECK_HEADER(dld.h, [
diff --git a/recipes/tcltk/files/tk-add-soname.patch b/recipes/tcltk/files/tk-add-soname.patch
new file mode 100644
index 0000000000..f1f132f2a4
--- /dev/null
+++ b/recipes/tcltk/files/tk-add-soname.patch
@@ -0,0 +1,64 @@
+Patch by Chris Waters removes -rpath from search flags and adds -soname
+to library build options.
+
+Also, it fixes Makefile.in to put correct Tk library filename to pkgIndex.tcl
+
+--- tk8.4-8.4.19.orig/unix/configure
++++ tk8.4-8.4.19/unix/configure
+@@ -2568,12 +2568,15 @@
+ # 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
++ TK_SHLIB_LD_EXTRAS="-Wl,-soname,\${TK_LIB_FILE}.0"
++
+ if test "$have_dl" = yes; then
+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
+ DL_OBJS="tclLoadDl.o"
+ DL_LIBS="-ldl"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
++ CC_SEARCH_FLAGS=""
+ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ else
+ ac_safe=`echo "dld.h" | sed 'y%./+-%__p_%'`
+--- tk8.4-8.4.19.orig/unix/Makefile.in
++++ tk8.4-8.4.19/unix/Makefile.in
+@@ -635,7 +635,7 @@
+ relative=`echo | awk '{ORS=" "; split("$(TK_PKG_DIR)",a,"/"); for (f in a) {print ".."}}'`;\
+ echo "if {[package vcompare [package provide Tcl] $(TCLVERSION)] != 0} { return }";\
+ echo "package ifneeded Tk $(MAJOR_VERSION).$(MINOR_VERSION)\
+- [list load [file join \$$dir $${relative}$(TK_LIB_FILE)] Tk]";\
++ [list load [file join $(LIB_RUNTIME_DIR) $(TK_LIB_FILE).0] Tk]";\
+ ) > $(PKG_INDEX); \
+ fi
+ @echo "Installing $(LIB_FILE) to $(LIB_INSTALL_DIR)/"
+--- tk8.4-8.4.19.orig/unix/tcl.m4
++++ tk8.4-8.4.19/unix/tcl.m4
+@@ -1346,20 +1346,23 @@
+ # 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
++ TK_SHLIB_LD_EXTRAS="-Wl,-soname,\${TK_LIB_FILE}.0"
++
+ if test "$have_dl" = yes; then
+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
+ DL_OBJS="tclLoadDl.o"
+ DL_LIBS="-ldl"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+- LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
++ CC_SEARCH_FLAGS=""
++ LD_SEARCH_FLAGS="${CC_SEARCH_FLAGS}"
+ else
+ AC_CHECK_HEADER(dld.h, [
+ SHLIB_LD="ld -shared"
+ DL_OBJS="tclLoadDld.o"
+ DL_LIBS="-ldld"
+ CC_SEARCH_FLAGS=""
+- LD_SEARCH_FLAGS=""])
++ LD_SEARCH_FLAGS="${CC_SEARCH_FLAGS}"])
+ fi
+ if test "`uname -m`" = "alpha" ; then
+ CFLAGS="$CFLAGS -mieee"
diff --git a/recipes/tcltk/tcl-native_8.4.19.bb b/recipes/tcltk/tcl-native_8.4.19.bb
new file mode 100644
index 0000000000..a2d5efae42
--- /dev/null
+++ b/recipes/tcltk/tcl-native_8.4.19.bb
@@ -0,0 +1,22 @@
+inherit native
+include tcl_8.4.19.bb
+
+do_stage() {
+ oe_libinstall -a libtclstub8.4 ${STAGING_LIBDIR}
+ oe_libinstall -so libtcl8.4 ${STAGING_LIBDIR}
+ sed -i "s+${WORKDIR}+${STAGING_INCDIR}+g" tclConfig.sh
+ sed -i "s,-L${libdir},," tclConfig.sh
+ install -d ${STAGING_BINDIR}/
+ install -m 0755 tclConfig.sh ${STAGING_BINDIR}
+ install -m 0755 tclsh ${STAGING_BINDIR}/tclsh8.4
+ ln -s tclsh8.4 ${STAGING_BINDIR}/tclsh
+ cd ..
+ for dir in compat generic unix
+ do
+ install -d ${STAGING_INCDIR}/tcl${PV}/$dir
+ install -m 0644 $dir/*.h ${STAGING_INCDIR}/tcl${PV}/$dir/
+ done
+ install -m 0644 generic/tcl.h ${STAGING_INCDIR}
+ install -m 0644 generic/tclDecls.h ${STAGING_INCDIR}
+ install -m 0644 generic/tclPlatDecls.h ${STAGING_INCDIR}
+}
diff --git a/recipes/tcltk/tcl/fix-configure.patch b/recipes/tcltk/tcl/fix-configure.patch
new file mode 100644
index 0000000000..8b2654bae0
--- /dev/null
+++ b/recipes/tcltk/tcl/fix-configure.patch
@@ -0,0 +1,44 @@
+Index: unix/tcl.m4
+===================================================================
+--- tcl8.4.11/unix.orig/tcl.m4
++++ tcl8.4.11/unix/tcl.m4
+@@ -845,7 +845,7 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
+ # results, and the version is kept in special file).
+
+ if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+- system=MP-RAS-`awk '{print $3}' /etc/.relid'`
++ system=MP-RAS-`awk '{print $3}' /etc/.relid`
+ fi
+ if test "`uname -s`" = "AIX" ; then
+ system=AIX-`uname -v`.`uname -r`
+@@ -2250,7 +2250,7 @@ AC_DEFUN(SC_BLOCKING_STYLE, [
+ # results, and the version is kept in special file).
+
+ if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+- system=MP-RAS-`awk '{print $3}' /etc/.relid'`
++ system=MP-RAS-`awk '{print $3}' /etc/.relid`
+ fi
+ if test "`uname -s`" = "AIX" ; then
+ system=AIX-`uname -v`.`uname -r`
+Index: unix/configure
+===================================================================
+--- tcl8.4.11/unix.orig/configure
++++ tcl8.4.11/unix/configure
+@@ -2130,7 +2130,7 @@ echo "configure:2121: checking system ve
+ # results, and the version is kept in special file).
+
+ if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+- system=MP-RAS-`awk '{print }' /etc/.relid'`
++ system=MP-RAS-`awk '{print }' /etc/.relid`
+ fi
+ if test "`uname -s`" = "AIX" ; then
+ system=AIX-`uname -v`.`uname -r`
+@@ -7608,7 +7608,7 @@ echo "configure:7600: checking FIONBIO v
+ # results, and the version is kept in special file).
+
+ if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+- system=MP-RAS-`awk '{print }' /etc/.relid'`
++ system=MP-RAS-`awk '{print }' /etc/.relid`
+ fi
+ if test "`uname -s`" = "AIX" ; then
+ system=AIX-`uname -v`.`uname -r`
diff --git a/recipes/tcltk/tcl_8.4.19.bb b/recipes/tcltk/tcl_8.4.19.bb
new file mode 100644
index 0000000000..e70a2c861c
--- /dev/null
+++ b/recipes/tcltk/tcl_8.4.19.bb
@@ -0,0 +1,55 @@
+DESCRIPTION = "Tool Command Language"
+LICENSE = "tcl"
+SECTION = "devel/tcltk"
+HOMEPAGE = "http://tcl.sourceforge.net"
+PR = "r2"
+
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/tcl/tcl${PV}-src.tar.gz \
+ file://tcl-add-soname.patch;patch=1;pnum=2 \
+# file://fix-configure.patch;patch=1;pnum=2 \
+"
+S = "${WORKDIR}/tcl${PV}/unix"
+
+inherit autotools
+
+EXTRA_OECONF = "--enable-threads"
+
+do_configure() {
+ gnu-configize
+ oe_runconf
+}
+
+do_compile_prepend() {
+ echo > ../compat/fixstrtod.c
+}
+
+do_stage() {
+ oe_libinstall -a libtclstub8.4 ${STAGING_LIBDIR}
+ oe_libinstall -so libtcl8.4 ${STAGING_LIBDIR}
+ sed -i "s+${WORKDIR}+${STAGING_INCDIR}+g" tclConfig.sh
+ sed -i "s,-L${libdir},," tclConfig.sh
+ install -d ${STAGING_BINDIR_CROSS}/
+ install -m 0755 tclConfig.sh ${STAGING_BINDIR_CROSS}
+ cd ..
+ for dir in compat generic unix
+ do
+ install -d ${STAGING_INCDIR}/tcl${PV}/$dir
+ install -m 0644 $dir/*.h ${STAGING_INCDIR}/tcl${PV}/$dir/
+ done
+ install -m 0644 generic/tcl.h ${STAGING_INCDIR}
+ install -m 0644 generic/tclDecls.h ${STAGING_INCDIR}
+ install -m 0644 generic/tclPlatDecls.h ${STAGING_INCDIR}
+}
+
+do_install() {
+ autotools_do_install
+ mv libtcl8.4.so libtcl8.4.so.0
+ oe_libinstall -so libtcl8.4 ${D}${libdir}
+ ln -sf ./tclsh8.4 ${D}${bindir}/tclsh
+}
+
+PACKAGES =+ "${PN}-lib"
+FILES_${PN}-lib = "${libdir}/libtcl8.4.so.*"
+FILES_${PN} += "${libdir}/tcl8.4"
+FILES_${PN}-dev += "${libdir}/tclConfig.sh"
diff --git a/recipes/tcltk/tk-native_8.4.19.bb b/recipes/tcltk/tk-native_8.4.19.bb
new file mode 100644
index 0000000000..df880769ff
--- /dev/null
+++ b/recipes/tcltk/tk-native_8.4.19.bb
@@ -0,0 +1,22 @@
+inherit native
+include tk_8.4.19.bb
+DEPENDS = "tcl-native"
+
+do_stage() {
+ oe_libinstall -a libtkstub8.4 ${STAGING_LIBDIR}
+ oe_libinstall -so libtk8.4 ${STAGING_LIBDIR}
+ sed -i "s+${WORKDIR}+${STAGING_INCDIR}+g" tkConfig.sh
+ install -m 0755 tkConfig.sh ${STAGING_BINDIR}
+ install -m 0755 wish ${STAGING_BINDIR}/wish8.4
+ ln -s wish8.4 ${STAGING_BINDIR}/wish
+ cd ..
+ #for dir in compat generic unix
+ #do
+ # install -d ${STAGING_INCDIR}/tk${PV}/$dir
+ #install -m 0644 $dir/*.h ${STAGING_INCDIR}/tk${PV}/$dir/
+ #done
+ install -m 0644 generic/tk.h ${STAGING_INCDIR}
+ install -m 0644 generic/tkDecls.h ${STAGING_INCDIR}
+ install -m 0644 generic/tkPlatDecls.h ${STAGING_INCDIR}
+
+}
diff --git a/recipes/tcltk/tk/fix-configure.patch b/recipes/tcltk/tk/fix-configure.patch
new file mode 100644
index 0000000000..6c6f0374bd
--- /dev/null
+++ b/recipes/tcltk/tk/fix-configure.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- tk8.4.11/unix/configure~fix-configure
++++ tk8.4.11/unix/configure
+@@ -1849,7 +1849,7 @@
+ # results, and the version is kept in special file).
+
+ if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+- system=MP-RAS-`awk '{print }' /etc/.relid'`
++ system=MP-RAS-`awk '{print }' /etc/.relid`
+ fi
+ if test "`uname -s`" = "AIX" ; then
+ system=AIX-`uname -v`.`uname -r`
diff --git a/recipes/tcltk/tk_8.4.19.bb b/recipes/tcltk/tk_8.4.19.bb
new file mode 100644
index 0000000000..a9bb0bd6df
--- /dev/null
+++ b/recipes/tcltk/tk_8.4.19.bb
@@ -0,0 +1,56 @@
+DESCRIPTION = "Tool Command Language ToolKit Extension"
+LICENSE = "tcl"
+SECTION = "devel/tcltk"
+HOMEPAGE = "http://tcl.sourceforge.net"
+DEPENDS = "tcl virtual/libx11 libxt"
+PR = "r0"
+
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/tcl/tk${PV}-src.tar.gz \
+ file://disable-xim.patch;patch=1;pnum=0 \
+ file://tk-add-soname.patch;patch=1;pnum=2 \
+# file://fix-configure.patch;patch=1;pnum=2 \
+"
+S = "${WORKDIR}/tk${PV}/unix"
+
+inherit autotools
+
+EXTRA_OECONF = "\
+ --enable-threads \
+ --with-tcl=${STAGING_BINDIR_CROSS} \
+ --x-includes=${STAGING_INCDIR} \
+ --x-libraries=${STAGING_LIBDIR} \
+"
+
+do_configure() {
+ gnu-configize
+ oe_runconf
+}
+
+do_stage() {
+ oe_libinstall -a libtkstub8.4 ${STAGING_LIBDIR}
+ oe_libinstall -so libtk8.4 ${STAGING_LIBDIR}
+ sed -i "s+${WORKDIR}+${STAGING_INCDIR}+g" tkConfig.sh
+ install -m 0755 tkConfig.sh ${STAGING_BINDIR_CROSS}
+ cd ..
+ #for dir in compat generic unix
+ #do
+ # install -d ${STAGING_INCDIR}/tk${PV}/$dir
+ #install -m 0644 $dir/*.h ${STAGING_INCDIR}/tk${PV}/$dir/
+ #done
+ install -m 0644 generic/tk.h ${STAGING_INCDIR}
+ install -m 0644 generic/tkDecls.h ${STAGING_INCDIR}
+ install -m 0644 generic/tkPlatDecls.h ${STAGING_INCDIR}
+
+}
+
+do_install() {
+ autotools_do_install
+ mv libtk8.4.so libtk8.4.so.0
+ oe_libinstall -so libtk8.4 ${D}${libdir}
+ ln -sf ./wish8.4 ${D}${bindir}/wish
+}
+
+PACKAGES =+ "${PN}-lib"
+FILES_${PN}-lib = "${libdir}/libtk8.4.so.*"
+FILES_${PN} += "${libdir}"