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 =