]> code.ossystems Code Review - openembedded-core.git/commitdiff
tcl: Install header into 8.6 instead of PN-PV in user/include
authorKhem Raj <raj.khem@gmail.com>
Tue, 12 Nov 2013 04:07:15 +0000 (20:07 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 20 Nov 2013 14:02:53 +0000 (14:02 +0000)
This helps in compiling other programs like expect which
depend on private headers but 8.5, 8.6 and so on is enough
granularity and currently we had 8.6.x and so on which
means that expect recipe will need to be touched whenever there
is minor update of tcl.

Additionally the encode creating symlink to shared object in
patch and remove it from recipe

Refresh patches after making changes to Configure.in we
propertly generate configure and not patch is directly as
was the case.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
meta/recipes-devtools/tcltk/tcl/alter-includedir.patch [new file with mode: 0644]
meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch
meta/recipes-devtools/tcltk/tcl/fix_non_native_build_issue.patch
meta/recipes-devtools/tcltk/tcl/no_packages.patch
meta/recipes-devtools/tcltk/tcl/tcl-add-soname.patch
meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch
meta/recipes-devtools/tcltk/tcl_8.6.1.bb

diff --git a/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch b/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch
new file mode 100644 (file)
index 0000000..f543910
--- /dev/null
@@ -0,0 +1,46 @@
+Lets install the include header and private header files into 
+usr/include/tcl8.6 when version of tcl is 8.6.x
+
+Upstream-Status: Inappropriate [Configuration Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmai.com>
+
+Index: unix/Makefile.in
+===================================================================
+--- unix.orig/Makefile.in      2013-11-11 01:00:36.431550403 -0800
++++ unix/Makefile.in   2013-11-11 01:05:09.587557282 -0800
+@@ -53,7 +53,7 @@
+ SCRIPT_INSTALL_DIR    = $(INSTALL_ROOT)$(TCL_LIBRARY)
+ # Directory in which to install the include file tcl.h:
+-INCLUDE_INSTALL_DIR   = $(INSTALL_ROOT)$(includedir)
++INCLUDE_INSTALL_DIR   = $(INSTALL_ROOT)$(includedir)/tcl$(VERSION)
+ # Path to the private tcl header dir:
+ PRIVATE_INCLUDE_DIR   = @PRIVATE_INCLUDE_DIR@
+Index: unix/configure.in
+===================================================================
+--- unix.orig/configure.in     2013-11-11 01:00:36.467550403 -0800
++++ unix/configure.in  2013-11-11 01:00:36.503550404 -0800
+@@ -791,7 +791,7 @@
+ eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
+ TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
+-PRIVATE_INCLUDE_DIR='$(includedir)'
++PRIVATE_INCLUDE_DIR='$(includedir)/tcl$(VERSION)'
+ HTML_DIR='$(DISTDIR)/html'
+ # Note:  in the following variable, it's important to use the absolute
+Index: unix/configure
+===================================================================
+--- unix.orig/configure        2013-11-11 01:00:36.467550403 -0800
++++ unix/configure     2013-11-11 01:00:36.503550404 -0800
+@@ -19134,7 +19134,7 @@
+ eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
+ TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
+-PRIVATE_INCLUDE_DIR='$(includedir)'
++PRIVATE_INCLUDE_DIR='$(includedir)/tcl$(VERSION)'
+ HTML_DIR='$(DISTDIR)/html'
+ # Note:  in the following variable, it's important to use the absolute
index ed581755c6b1820f60cd1eedfafc0690ca92133c..be273419aed681e2232031561f76d2841ab6833d 100644 (file)
@@ -15,11 +15,11 @@ Fixes tcl target recipe build on old distros which have glibc older than 2.14
 Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
 2012/04/26
 
-diff --git unix.orig/Makefile.in unix/Makefile.in
-index 571d53f..16351f6 100644
---- unix.orig/Makefile.in
-+++ unix/Makefile.in
-@@ -679,7 +679,7 @@ topDirName:
+Index: unix/Makefile.in
+===================================================================
+--- unix.orig/Makefile.in      2013-11-10 23:38:01.787425628 -0800
++++ unix/Makefile.in   2013-11-10 23:37:59.807425578 -0800
+@@ -686,7 +686,7 @@
  # tcltest executable gets the build directory burned into its ld search path.
  # This keeps tcltest from picking up an already installed version of the Tcl
  # library.
@@ -28,7 +28,7 @@ index 571d53f..16351f6 100644
                TCLLIBPATH="@abs_builddir@/pkgs" \
                TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"
  
-@@ -705,7 +705,7 @@ test-tcl: ${TCLTEST_EXE}
+@@ -712,7 +712,7 @@
        $(SHELL_ENV) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl $(TESTFLAGS)
  
  gdb-test: ${TCLTEST_EXE}
index 80d718caf12dbb5cc3ec96c976284afef1b05fca..c60eb7537927a9d8a76cb983ceebdfac91fa5656 100644 (file)
@@ -1,10 +1,10 @@
 Upstream-Status: Pending
 
-diff --git unix.orig/Makefile.in unix/Makefile.in
-index df05759..571d53f 100644
---- unix.orig/Makefile.in
-+++ unix/Makefile.in
-@@ -702,23 +702,23 @@ tcltest-real:
+Index: unix/Makefile.in
+===================================================================
+--- unix.orig/Makefile.in      2013-11-10 23:37:34.243424934 -0800
++++ unix/Makefile.in   2013-11-10 23:37:34.243424934 -0800
+@@ -709,23 +709,23 @@
  test: test-tcl test-packages
  
  test-tcl: ${TCLTEST_EXE}
@@ -32,7 +32,7 @@ index df05759..571d53f 100644
  
  # The following target generates the shared libraries in dltest/ that are used
  # for testing; they are included as part of the "tcltest" target (via the
-@@ -736,23 +736,23 @@ dltest.marker: ${STUB_LIB_FILE}
+@@ -743,23 +743,23 @@
  # This target can be used to run tclsh from the build directory
  # via `make shell SCRIPT=/tmp/foo.tcl`
  shell: ${TCL_EXE}
index b0458145898b9f511918b5f767c238d84896f20d..ab6cc4316928151468a420675193cdc7038e71b9 100644 (file)
@@ -5,11 +5,11 @@ Upstream-Status:Inappropriate [embedded specific]
 
 Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
 
-diff --git unix.orig/Makefile.in unix/Makefile.in
-index 16351f6..76ccadb 100644
---- unix.orig/Makefile.in
-+++ unix/Makefile.in
-@@ -601,7 +601,7 @@ SRCS = $(GENERIC_SRCS) $(TOMMATH_SRCS) $(UNIX_SRCS) $(NOTIFY_SRCS) \
+Index: unix/Makefile.in
+===================================================================
+--- unix.orig/Makefile.in      2013-11-10 23:38:12.235425891 -0800
++++ unix/Makefile.in   2013-11-10 23:38:12.231425891 -0800
+@@ -611,7 +611,7 @@
  # Start of rules
  #--------------------------------------------------------------------------
  
@@ -18,7 +18,7 @@ index 16351f6..76ccadb 100644
  
  binaries: ${LIB_FILE} $(STUB_LIB_FILE) ${TCL_EXE}
  
-@@ -646,12 +646,12 @@ Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
+@@ -653,12 +653,12 @@
  #tclConfig.h: $(UNIX_DIR)/tclConfig.h.in
  #     $(SHELL) config.status
  
@@ -33,7 +33,7 @@ index 16351f6..76ccadb 100644
        rm -rf Makefile config.status config.cache config.log tclConfig.sh \
                tclConfig.h *.plist Tcl.framework tcl.pc
        cd dltest ; $(MAKE) distclean
-@@ -699,7 +699,7 @@ tcltest-real:
+@@ -706,7 +706,7 @@
  # tcltest, ie:
  #     % make test TESTFLAGS="-verbose bps -file fileName.test"
  
@@ -42,7 +42,7 @@ index 16351f6..76ccadb 100644
  
  test-tcl: ${TCLTEST_EXE}
        $(SHELL_ENV) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl $(TESTFLAGS)
-@@ -764,7 +764,7 @@ INSTALL_PACKAGE_TARGETS = install-packages
+@@ -771,7 +771,7 @@
  INSTALL_DEV_TARGETS = install-headers
  INSTALL_EXTRA_TARGETS = @EXTRA_INSTALL@
  INSTALL_TARGETS = $(INSTALL_BASE_TARGETS) $(INSTALL_DOC_TARGETS) $(INSTALL_DEV_TARGETS) \
index d3691f64fc054af144feb7de8eeb5cd8faec8d2d..96276eab0ef4fd580245fecef90532307384349e 100644 (file)
@@ -2,29 +2,23 @@ Upstream-Status: Pending
 
 Index: unix/configure
 ===================================================================
---- unix.orig/configure        2013-09-19 23:17:13.000000000 +0300
-+++ unix/configure     2013-10-16 15:58:37.450136217 +0300
-@@ -6899,6 +6899,7 @@
-           LIBS="$LIBS -lc"
-           SHLIB_CFLAGS=""
-           SHLIB_SUFFIX=".so"
-+          SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.so.0'
+--- unix.orig/configure        2013-09-19 13:17:13.000000000 -0700
++++ unix/configure     2013-11-11 00:20:51.519490342 -0800
+@@ -7599,6 +7599,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"
-           LD_LIBRARY_PATH_VAR="LIBPATH"
+           DL_LIBS="-ldl"
 Index: unix/tcl.m4
 ===================================================================
---- unix.orig/tcl.m4   2013-09-19 23:17:13.000000000 +0300
-+++ unix/tcl.m4        2013-10-16 16:18:50.719586228 +0300
-@@ -1408,6 +1408,7 @@
-       Linux*|GNU*|NetBSD-Debian)
-           SHLIB_CFLAGS="-fPIC"
-           SHLIB_SUFFIX=".so"
-+          SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.0'
-           CFLAGS_OPTIMIZE="-O2"
-           # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
-@@ -1415,12 +1416,15 @@
+--- unix.orig/tcl.m4   2013-09-19 13:17:13.000000000 -0700
++++ unix/tcl.m4        2013-11-11 00:17:24.263485123 -0800
+@@ -1415,6 +1415,9 @@
            # get rid of the warnings.
            #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
  
@@ -34,19 +28,19 @@ Index: unix/tcl.m4
            SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
-           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
-           AS_IF([test $doRpath = yes], [
--              CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
-+              CC_SEARCH_FLAGS=''])
-           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
-           AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"])
-           AS_IF([test $do64bit = yes], [
-@@ -2050,7 +2054,7 @@
-     AS_IF([test "${SHARED_BUILD}" = 1 -a "${SHLIB_SUFFIX}" != ""], [
-         LIB_SUFFIX=${SHARED_LIB_SUFFIX}
--        MAKE_LIB='${SHLIB_LD} -o [$]@ ${OBJS} ${TCL_SHLIB_LD_EXTRAS} ${SHLIB_LD_LIBS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}'
-+        MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}'
-         AS_IF([test "${SHLIB_SUFFIX}" = ".dll"], [
-             INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) "$(BIN_INSTALL_DIR)/$(LIB_FILE)"'
-             DLL_INSTALL_DIR="\$(BIN_INSTALL_DIR)"
+Index: unix/Makefile.in
+===================================================================
+--- unix.orig/Makefile.in      2013-09-19 13:17:13.000000000 -0700
++++ unix/Makefile.in   2013-11-11 00:20:32.423489861 -0800
+@@ -796,7 +796,10 @@
+           done;
+       @echo "Installing $(LIB_FILE) to $(DLL_INSTALL_DIR)/"
+       @@INSTALL_LIB@
+-      @chmod 555 "$(DLL_INSTALL_DIR)/$(LIB_FILE)"
++      mv "$(DLL_INSTALL_DIR)"/$(LIB_FILE) "$(DLL_INSTALL_DIR)"/$(LIB_FILE).0
++      ln -sf $(LIB_FILE).0 "$(DLL_INSTALL_DIR)"/$(LIB_FILE)
++      ln -sf "$(DLL_INSTALL_DIR)"/$(LIB_FILE).0 ./
++      @chmod 555 "$(DLL_INSTALL_DIR)"/$(LIB_FILE).0
+       @echo "Installing ${TCL_EXE} as $(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}"
+       @$(INSTALL_PROGRAM) ${TCL_EXE} "$(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}"
+       @echo "Installing tclConfig.sh to $(CONFIG_INSTALL_DIR)/"
index afdd8803cc21f83dba1f3702035a3c30b240cb42..16f7c805161da2db62ff56780b32d5abed9ab4ef 100644 (file)
@@ -19,11 +19,24 @@ Signed-off-by: Kai Kang <kai.kang@windriver.com>
  configure |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/configure b/configure
-index 478a4d5..79c2979 100755
---- a/configure
-+++ b/configure
-@@ -18772,7 +18772,7 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}"
+Index: unix/configure
+===================================================================
+--- unix.orig/configure        2013-11-10 23:38:33.643426430 -0800
++++ unix/configure     2013-11-10 23:39:51.347428387 -0800
+@@ -19134,7 +19134,7 @@
+ eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
+-TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
++TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
+ PRIVATE_INCLUDE_DIR='$(includedir)'
+ HTML_DIR='$(DISTDIR)/html'
+Index: unix/configure.in
+===================================================================
+--- unix.orig/configure.in     2013-11-10 23:20:50.000000000 -0800
++++ unix/configure.in  2013-11-10 23:39:41.199428131 -0800
+@@ -790,7 +790,7 @@
  
  eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
  
@@ -32,6 +45,3 @@ index 478a4d5..79c2979 100755
  PRIVATE_INCLUDE_DIR='$(includedir)'
  HTML_DIR='$(DISTDIR)/html'
  
--- 
-1.7.9.5
-
index e23970848f3d20de5d2a59a8667e349f09d30f8e..f40475d2b5df6d06a123ef889b5e6c0b2d5e0b30 100644 (file)
@@ -15,11 +15,12 @@ BASE_SRC_URI = "${SOURCEFORGE_MIRROR}/tcl/tcl${PV}-src.tar.gz \
                 file://tcl-add-soname.patch"
 
 SRC_URI = "${BASE_SRC_URI} \
-          file://fix_non_native_build_issue.patch \
-          file://fix_issue_with_old_distro_glibc.patch \
-          file://no_packages.patch \
-          file://tcl-remove-hardcoded-install-path.patch \
-       "
+           file://fix_non_native_build_issue.patch \
+           file://fix_issue_with_old_distro_glibc.patch \
+           file://no_packages.patch \
+           file://tcl-remove-hardcoded-install-path.patch \
+           file://alter-includedir.patch \
+          "
 SRC_URI[md5sum] = "aae4b701ee527c6e4e1a6f9c7399882e"
 SRC_URI[sha256sum] = "16ee769248e64ba1cae6b4834fcc4e4edd7470d881410e8d58f7dd1434343514"
 
@@ -27,6 +28,8 @@ SRC_URI_class-native = "${BASE_SRC_URI}"
 
 S = "${WORKDIR}/tcl${PV}/unix"
 
+VER = "8.6"
+
 inherit autotools
 
 DEPENDS_class-native = ""
@@ -43,9 +46,8 @@ do_compile_prepend() {
 }
 
 do_install() {
-       autotools_do_install
-       oe_libinstall -so libtcl8.6 ${D}${libdir}
-       ln -sf ./tclsh8.6 ${D}${bindir}/tclsh
+       autotools_do_install install-private-headers
+       ln -sf ./tclsh${VER} ${D}${bindir}/tclsh
        sed -i "s+${WORKDIR}+${STAGING_INCDIR}+g" tclConfig.sh
        sed -i "s,-L${libdir},-L=${libdir},g" tclConfig.sh
        sed -i "s,-I${includedir},-I=${includedir},g" tclConfig.sh 
@@ -54,8 +56,8 @@ do_install() {
        cd ..
        for dir in compat generic unix
        do
-               install -d ${D}${includedir}/tcl${PV}/$dir
-               install -m 0644 ${S}/../$dir/*.h ${D}${includedir}/tcl${PV}/$dir/
+               install -d ${D}${includedir}/${BPN}${VER}/$dir
+               install -m 0644 ${S}/../$dir/*.h ${D}${includedir}/${BPN}${VER}/$dir/
        done
 }
 
@@ -65,8 +67,8 @@ tcl_sysroot_preprocess () {
 }
 
 PACKAGES =+ "tcl-lib"
-FILES_tcl-lib = "${libdir}/libtcl8.6.so*"
-FILES_${PN} += "${libdir}/tcl8.6 ${libdir}/tcl8"
+FILES_tcl-lib = "${libdir}/libtcl${VER}.so.*"
+FILES_${PN} += "${libdir}/tcl${VER} ${libdir}/tcl8"
 FILES_${PN}-dev += "${libdir}/tclConfig.sh ${libdir}/tclooConfig.sh"
 
 # isn't getting picked up by shlibs code