The attached patch would let libupnp build one single convenience .so
which contains all of libupnp, libixml and libthreadutil.

However I'm still unhappy with SONAME versioning in this approach and
feel more refinement is needed. Also, the list of visible entry points
that need to be manually maintained is longer than I'd like.  Probably
a good idea to discuss both of these with upstream.

This solution would itself require fixes and uploads to some of our
packages which don't use pkg-config to locate libupnp (I'm thinking of
wmaloader), and also cause confusion for users who wish to compile
their own software using libupnp, since two of the three libs they'd
expect would no longer exist.

For wheezy->jessie there is no major SONAME bump so I think no need to
rebuild.  In fact it seems to me that solving this bug by any method
would force a rebuild and transition so it's not appropriate to fix it
at the moment. Discussion still welcome and I'll have another look at
some time after Jessie is out.

Apols for any dodgy gmail formatting of this mail,

Nick
Description: Assimilate ixml and threadutil shared libraries into libupnp 
itself.
Bug-Debian: https://bugs.debian.org/670562
Index: libupnp-1.6.19.try/ixml/Makefile.am
===================================================================
--- libupnp-1.6.19.try.orig/ixml/Makefile.am
+++ libupnp-1.6.19.try/ixml/Makefile.am
@@ -10,7 +10,6 @@ SUBDIRS               = doc
 AM_CPPFLAGS            = -I$(srcdir)/inc -I$(srcdir)/src/inc
 AM_CFLAGS              = 
 
-LDADD                  = libixml.la
 
 if ENABLE_DEBUG
     AM_CPPFLAGS                += -DDEBUG
@@ -18,7 +17,7 @@ else
     AM_CPPFLAGS                += -DNDEBUG
 endif
 
-lib_LTLIBRARIES                = libixml.la
+noinst_LTLIBRARIES             = libixml.la
 
 libixml_la_LDFLAGS     = -version-info $(LT_VERSION_IXML) \
                          -export-symbols-regex '^ixml.*'
Index: libupnp-1.6.19.try/threadutil/Makefile.am
--- libupnp-1.6.19.try.orig/threadutil/Makefile.am
+++ libupnp-1.6.19.try/threadutil/Makefile.am
@@ -13,7 +13,7 @@ else
 endif
 
 
-lib_LTLIBRARIES                = libthreadutil.la
+noinst_LTLIBRARIES             = libthreadutil.la
 
 libthreadutil_la_LDFLAGS = -version-info $(LT_VERSION_THREADUTIL)
 
Index: libupnp-1.6.19.try/libupnp.pc.in
--- libupnp-1.6.19.try.orig/libupnp.pc.in
+++ libupnp-1.6.19.try/libupnp.pc.in
@@ -6,6 +6,6 @@ includedir=@includedir@
 Name: libupnp
 Description: Linux SDK for UPnP Devices
 Version: @VERSION@
-Libs: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ -L${libdir} -lupnp -lthreadutil -lixml 
+Libs: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ -L${libdir} -lupnp
 Cflags: @PTHREAD_CFLAGS@ -I${includedir}/upnp
 
Index: libupnp-1.6.19.try/upnp/Makefile.am
--- libupnp-1.6.19.try.orig/upnp/Makefile.am
+++ libupnp-1.6.19.try/upnp/Makefile.am
@@ -12,9 +12,11 @@ AM_CPPFLAGS = \
        -I$(top_srcdir)/ixml/inc
 
 LDADD = \
-       libupnp.la \
-       $(top_builddir)/threadutil/libthreadutil.la \
-       $(top_builddir)/ixml/libixml.la
+       libupnp.la
+
+libupnp_la_LIBADD = \
+       ../threadutil/libthreadutil.la \
+       ../ixml/libixml.la
 
 
 upnpincludedir = $(includedir)/upnp
Index: libupnp-1.6.19.try/upnp/sample/Makefile.am
--- libupnp-1.6.19.try.orig/upnp/sample/Makefile.am
+++ libupnp-1.6.19.try/upnp/sample/Makefile.am
@@ -10,9 +10,7 @@ AM_CPPFLAGS = \
        -I$(top_srcdir)/ixml/inc
 
 LDADD = \
-       $(top_builddir)/upnp/libupnp.la \
-       $(top_builddir)/threadutil/libthreadutil.la \
-       $(top_builddir)/ixml/libixml.la
+       $(top_builddir)/upnp/libupnp.la
 
 # samples
 noinst_PROGRAMS =

Reply via email to