tcltk: 8.4.11 -> 8.4.19; try harder to get proper library packaging
authorMichael 'Mickey' Lauer <mickey@vanille-media.de>
Sat, 24 Jan 2009 20:06:22 +0000 (21:06 +0100)
committerMichael 'Mickey' Lauer <mickey@vanille-media.de>
Sat, 24 Jan 2009 20:23:09 +0000 (21:23 +0100)
packages/tcltk/files/tcl-add-soname.patch
packages/tcltk/files/tk-add-soname.patch
packages/tcltk/tcl_8.4.11.bb [deleted file]
packages/tcltk/tcl_8.4.19.bb [new file with mode: 0644]
packages/tcltk/tk_8.4.19.bb [moved from packages/tcltk/tk_8.4.11.bb with 51% similarity]

index fe02736..9512443 100644 (file)
@@ -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, [
index 31702ca..f1f132f 100644 (file)
@@ -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 (file)
index 4bf3efd..0000000
+++ /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 (file)
index 0000000..440537b
--- /dev/null
@@ -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"
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 (file)
@@ -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}"