[oe-commits] Michael 'Mickey' Lauer : tcltk: 8.4.11 -> 8.4.19; try harder to get proper library packaging

GIT User account git at amethyst.openembedded.net
Sat Jan 24 20:24:30 UTC 2009


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 2d441c0f1b596a90dc4b8ecac238b435132de4c1
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=2d441c0f1b596a90dc4b8ecac238b435132de4c1

Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date:   Sat Jan 24 21:06:22 2009 +0100

tcltk: 8.4.11 -> 8.4.19; try harder to get proper library packaging

---

 packages/tcltk/files/tcl-add-soname.patch     |   45 +++++++++++++---
 packages/tcltk/files/tk-add-soname.patch      |   68 ++++++++++++++++++++++---
 packages/tcltk/tcl_8.4.11.bb                  |   50 ------------------
 packages/tcltk/tcl_8.4.19.bb                  |   43 ++++++++++++++++
 packages/tcltk/{tk_8.4.11.bb => tk_8.4.19.bb} |   37 ++++++++------
 5 files changed, 162 insertions(+), 81 deletions(-)

diff --git a/packages/tcltk/files/tcl-add-soname.patch b/packages/tcltk/files/tcl-add-soname.patch
index fe02736..9512443 100644
--- a/packages/tcltk/files/tcl-add-soname.patch
+++ b/packages/tcltk/files/tcl-add-soname.patch
@@ -1,12 +1,41 @@
-diff -u tcl8.3.5/unix/tcl.m4~ tcl8.3.5/unix/tcl.m4
---- unix/tcl.m4~	2003-01-14 20:42:53.000000000 +0900
-+++ unix/tcl.m4	2003-01-14 20:42:53.000000000 +0900
-@@ -954,7 +954,7 @@
- 	    CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+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"
-+		SHLIB_LD='${CC} -shared -Wl,-soname,${@}'
+ 		SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
  		DL_OBJS="tclLoadDl.o"
  		DL_LIBS="-ldl"
- 		LDFLAGS="-rdynamic"
+ 		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/packages/tcltk/files/tk-add-soname.patch b/packages/tcltk/files/tk-add-soname.patch
index 31702ca..f1f132f 100644
--- a/packages/tcltk/files/tk-add-soname.patch
+++ b/packages/tcltk/files/tk-add-soname.patch
@@ -1,12 +1,64 @@
-diff -u tk8.3.5/unix/tcl.m4~ tk8.3.5/unix/tcl.m4
---- unix/tcl.m4~	2003-01-14 21:22:12.000000000 +0900
-+++ unix/tcl.m4	2003-01-14 21:22:12.000000000 +0900
-@@ -949,7 +949,7 @@
- 	    CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+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"
-+		SHLIB_LD='${CC} -shared -Wl,-soname,${@}'
+ 		SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
  		DL_OBJS="tclLoadDl.o"
  		DL_LIBS="-ldl"
- 		LDFLAGS="-rdynamic"
+ 		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/packages/tcltk/tcl_8.4.11.bb b/packages/tcltk/tcl_8.4.11.bb
deleted file mode 100644
index 4bf3efd..0000000
--- a/packages/tcltk/tcl_8.4.11.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-DESCRIPTION = "Tool Command Language"
-LICENSE = "tcl"
-SECTION = "devel/tcltk"
-HOMEPAGE = "http://tcl.sourceforge.net"
-PR = "r6"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/tcl/tcl${PV}-src.tar.gz \
-           file://tcl-add-soname.patch;patch=1 \
-           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
-	oe_libinstall -so libtcl8.4 ${D}${libdir}
-	ln -sf ./tclsh8.4 ${D}${bindir}/tclsh
-}
-
-FILES_${PN} += "${libdir}/tcl8.4 ${libdir}/libtcl8.4.so"
diff --git a/packages/tcltk/tcl_8.4.19.bb b/packages/tcltk/tcl_8.4.19.bb
new file mode 100644
index 0000000..440537b
--- /dev/null
+++ b/packages/tcltk/tcl_8.4.19.bb
@@ -0,0 +1,43 @@
+DESCRIPTION = "Tool Command Language"
+LICENSE = "tcl"
+SECTION = "devel/tcltk"
+HOMEPAGE = "http://tcl.sourceforge.net"
+PR = "r0"
+
+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() {
+	autotools_stage_all
+	mv libtcl8.4.so libtcl8.4.so.0
+	oe_libinstall -so libtcl8.4 ${STAGING_LIBDIR}
+}
+
+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/packages/tcltk/tk_8.4.11.bb b/packages/tcltk/tk_8.4.19.bb
similarity index 51%
rename from packages/tcltk/tk_8.4.11.bb
rename to packages/tcltk/tk_8.4.19.bb
index 85b5124..a9bb0bd 100644
--- a/packages/tcltk/tk_8.4.11.bb
+++ b/packages/tcltk/tk_8.4.19.bb
@@ -3,20 +3,24 @@ LICENSE = "tcl"
 SECTION = "devel/tcltk"
 HOMEPAGE = "http://tcl.sourceforge.net"
 DEPENDS = "tcl virtual/libx11 libxt"
-RDEPENDS = "tcl"
-PR = "r5"
-
-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 \
-           file://fix-configure.patch;patch=1;pnum=2"
-
+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}"
+EXTRA_OECONF = "\
+  --enable-threads \
+  --with-tcl=${STAGING_BINDIR_CROSS} \
+  --x-includes=${STAGING_INCDIR} \
+  --x-libraries=${STAGING_LIBDIR} \
+"
 
 do_configure() {
 	gnu-configize
@@ -24,10 +28,10 @@ do_configure() {
 }
 
 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}
+	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
@@ -42,8 +46,11 @@ do_stage() {
 
 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
 }
 
-FILES_${PN} += "${libdir}/tk8.4 ${libdir}/libtk8.4.so"
+PACKAGES =+ "${PN}-lib"
+FILES_${PN}-lib = "${libdir}/libtk8.4.so.*"
+FILES_${PN} += "${libdir}"





More information about the Openembedded-commits mailing list