[oe-commits] Martin Panter : xmlrpc-c_1.06.41.bb: QA issue with staging (workdir) for . la files in xmlrpc-c package

git version control git at git.openembedded.org
Thu Dec 30 21:06:01 UTC 2010


Module: openembedded.git
Branch: testing-next
Commit: 83e703f70646ab84a9ed4b2677da5e5f6ed38dbe
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=83e703f70646ab84a9ed4b2677da5e5f6ed38dbe

Author: Martin Panter <vadmium+floss at gmail.com>
Date:   Fri Dec 24 19:59:02 2010 +0000

xmlrpc-c_1.06.41.bb: QA issue with staging (workdir) for .la files in xmlrpc-c package

I think I've solved this problem. Half of my solution is to modify the
xmlrpc-c package's Make file to pass the library file names directly
instead of using the "-L<directory> -l<name>" method. The other half
is to force it to use the newer Libtool version instead of its own.
See patch #1 attached, though I'm not really an expert on Libtool or
Open embedded, so I can't say if it might break something else, and I
haven't even tested out the packages I built yet.

Adds a patch to avoid using -L link flags, and forces the Make files to use a
newer external Libtool.

Fix do_configure to bypass reconfigure but still generate libtool

Fix below messages

NOTE: Multiple libraries (libxmlrpc_server_cgi.so.3,
libxmlrpc_util.so.3, libxmlrpc_client.so.3, libxmlrpc_abyss.so.3,
libxmlrpc_server_abyss.so.3, libxmlrpc_server.so.3, libxmlrpc.so.3)
found and LEAD_SONAME not defined

ERROR: QA Issue with xmlrpc-c: No GNU_HASH in the elf binary:
'/scratch/oe/work/armv7a-oe-linux-gnueabi/xmlrpc-c-1.06.41-r1/packages-split/xmlrpc-c/usr/lib/libxmlrpc_server_cgi.so.3.6.15'

Signed-off-by: Khem Raj <raj.khem at gmail.com>
Signed-off-by: Martin Panter <vadmium+floss at gmail.com>

---

 recipes/xmlrpc-c/xmlrpc-c-1.06.41/lib-path.patch |   58 ++++++++++++++++++++++
 recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb             |   21 ++++++--
 2 files changed, 74 insertions(+), 5 deletions(-)

diff --git a/recipes/xmlrpc-c/xmlrpc-c-1.06.41/lib-path.patch b/recipes/xmlrpc-c/xmlrpc-c-1.06.41/lib-path.patch
new file mode 100644
index 0000000..1ec148b
--- /dev/null
+++ b/recipes/xmlrpc-c/xmlrpc-c-1.06.41/lib-path.patch
@@ -0,0 +1,58 @@
+Don't use build directories in the library search path because it apparently
+causes Libtool to hard-code the build directories inside installed .la files,
+triggering "QA issues". Use with newer Libtool.
+--- xmlrpc-c-1.06.41/src/Makefile
++++ xmlrpc-c-1.06.41/src/Makefile
+@@ -7,8 +7,8 @@ VPATH = .:$(SRCDIR)
+ 
+ include $(BUILDDIR)/Makefile.config
+ 
+-ABYSS_LIBDIR = $(BUILDDIR)/lib/abyss/src/.libs
+-LIBUTIL_LIBDIR = $(BUILDDIR)/lib/libutil/.libs
++ABYSS_LIB = $(BUILDDIR)/lib/abyss/src/libxmlrpc_abyss.la
++LIBUTIL_LIB = $(BUILDDIR)/lib/libutil/libxmlrpc_util.la
+ 
+ default: all
+ 
+@@ -70,17 +70,17 @@ endif
+ # may require the necessary -L options in addition.
+ 
+ LIBXMLRPC_CLIENT_OBJS = xmlrpc_client.lo xmlrpc_client_global.lo
+-LIBXMLRPC_CLIENT_LIBDEP = -lxmlrpc_util -lxmlrpc
++LIBXMLRPC_CLIENT_LIBDEP = $(LIBUTIL_LIB) libxmlrpc.la
+ 
+ LIBXMLRPC_SERVER_OBJS = registry.lo system_method.lo
+-LIBXMLRPC_SERVER_LIBDEP = -lxmlrpc_util -lxmlrpc
++LIBXMLRPC_SERVER_LIBDEP = $(LIBUTIL_LIB) libxmlrpc.la
+ 
+ LIBXMLRPC_SERVER_ABYSS_OBJS = xmlrpc_server_abyss.lo
+ LIBXMLRPC_SERVER_ABYSS_LIBDEP = \
+-  -lxmlrpc_util -lxmlrpc_server -L$(ABYSS_LIBDIR) -lxmlrpc_abyss -lxmlrpc
++  $(LIBUTIL_LIB) libxmlrpc_server.la $(ABYSS_LIB) libxmlrpc.la
+ 
+ LIBXMLRPC_SERVER_CGI_OBJS = xmlrpc_server_cgi.lo
+-LIBXMLRPC_SERVER_CGI_LIBDEP = -lxmlrpc_util -lxmlrpc_server -lxmlrpc
++LIBXMLRPC_SERVER_CGI_LIBDEP = $(LIBUTIL_LIB) libxmlrpc_server.la libxmlrpc.la
+ 
+ LIBXMLRPC_OBJS = \
+ 	trace.lo \
+@@ -96,7 +96,7 @@ LIBXMLRPC_OBJS = \
+ 	xmlrpc_utf8.lo \
+ 	xmlrpc_authcookie.lo \
+ 
+-LIBXMLRPC_LIBDEP = -lxmlrpc_util $(LIBXML_LIBS)
++LIBXMLRPC_LIBDEP = $(LIBUTIL_LIB) $(LIBXML_LIBS)
+ 
+ LIB_OBJS = $(LIBXMLRPC_CLIENT_OBJS) $(LIBXMLRPC_SERVER_OBJS)
+ 
+@@ -133,9 +133,7 @@ all: $(TARGET_LTLIBRARIES) $(SUBDIRS:%=%
+ 
+ LDFLAGS = $(LADD)
+ 
+-LIBPATHS = -L.libs -L$(LIBUTIL_LIBDIR)
+-
+-LIBLDFLAGS = $(LDFLAGS_VERSINFO) -rpath $(LIBINST_DIR) $(LIBPATHS) $(LADD)
++LIBLDFLAGS = $(LDFLAGS_VERSINFO) -rpath $(LIBINST_DIR) $(LADD)
+ 
+ 
+ libxmlrpc.la: $(LIBXMLRPC_OBJS)
diff --git a/recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb b/recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb
index e9bbc31..3cd8179 100644
--- a/recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb
+++ b/recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb
@@ -2,24 +2,35 @@ DESCRIPTION = "XML-RPC for C/C++ is programming libraries and related tools to h
 write an XML-RPC server or client in C or C++."
 LICENSE = "GPLv2+"
 DEPENDS = "curl libxml2"
-PR = "r1"
-
+PR = "r2"
+LEAD_SONAME = "libxmlrpc.so.3"
 # note: this is version 1.06.47
 # there seems to be versions with higher numbers (e.g. 1.11.00)
 # but these are actually not newer
 
 EXTRA_OECONF = " --enable-libxml2-backend -disable-libwww-client"
 
+TARGET_CC_ARCH += "${LDFLAGS}"
+
 PARALLEL_MAKE = ""
 
 inherit autotools binconfig
 
-do_configure () {
-	gnu-configize
+do_configure() {
+        # no autoreconf please
+        aclocal
+        autoconf
+        libtoolize --force
+        gnu-configize --force
         oe_runconf
 }
+do_compile_prepend () {
+       (cd ${S}; ln -s ${HOST_SYS}-libtool libtool)
+}
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tgz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tgz \
+        file://lib-path.patch \
+"
 SRC_URI[md5sum] = "02c6b89b8ff911341b6b6d4a6c621ea9"
 SRC_URI[sha256sum] = "a13f5ef40ed75d89543b9cd086185121dead9fc7de850ca4d2edd9a0cec12205"
 





More information about the Openembedded-commits mailing list