Package: taglib Version: 1.7-1 Followup-For: Bug #651019 User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu precise ubuntu-patch
Hi guys, Here's an alternative patch for multiarch support. Relevant differences: - libtag1-dev is also marked Multi-Arch: same; in discussing with Kees, this seems to have been an oversight. - instead of rewriting debian/libtag1-rusxmms.install at build-time, we can override dh_install to pass a --sourcedir option, which I think is a bit more elegant. - instead of hard-coding DEB_HOST_MULTIARCH into CMakeLists.txt, I suggest that we just drop the FORCE argument to set(LIB_INSTALL_DIR [...]). This lets us override this directory directly on the commandline, and is IMHO sensible in its own right. I'm uploading this version of the patch to Ubuntu. Thanks for considering! -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer http://www.debian.org/ slanga...@ubuntu.com vor...@debian.org
=== modified file 'debian/compat' --- debian/compat 2009-03-20 01:36:31 +0000 +++ debian/compat 2011-12-06 01:38:46 +0000 @@ -1 +1 @@ -7 +9 === modified file 'debian/control' --- debian/control 2011-04-09 19:32:40 +0000 +++ debian/control 2011-12-06 01:58:18 +0000 @@ -2,7 +2,7 @@ Section: libs Priority: optional Maintainer: Modestas Vainius <mo...@debian.org> -Build-Depends: cmake (>= 2.6.2), debhelper (>= 7.3), dpkg-dev (>= 1.15.3), quilt (>= 0.46-7~), zlib1g-dev, librcc-dev +Build-Depends: cmake (>= 2.6.2), debhelper (>= 8.1.3~), dpkg-dev (>= 1.15.3), quilt (>= 0.46-7~), zlib1g-dev, librcc-dev Build-Depends-Indep: doxygen, graphviz, gsfonts-x11 Standards-Version: 3.9.2 Homepage: http://developer.kde.org/~wheeler/taglib.html @@ -11,6 +11,8 @@ Package: libtag1c2a Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} Depends: libtag1-vanilla (= ${binary:Version}) | libtag1-rusxmms (= ${binary:Version}), ${misc:Depends} Conflicts: libtag-extras0 Description: audio meta-data library @@ -26,6 +28,8 @@ Package: libtag1-vanilla Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Conflicts: libtag1-rusxmms, libtag-extras0 Replaces: libtag1c2a (<< 1.5-5) @@ -41,6 +45,8 @@ Package: libtag1-rusxmms Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Conflicts: libtag1-vanilla, libtag-extras0 Replaces: libtag1c2a (<< 1.5-5) @@ -58,6 +64,7 @@ Package: libtag1-dev Section: libdevel Architecture: any +Multi-Arch: same Depends: libtag1c2a (= ${binary:Version}), ${misc:Depends} Description: audio meta-data library - development files TagLib is a library for reading and editing the meta-data of several popular @@ -84,6 +91,8 @@ Package: libtagc0 Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Description: audio meta-data library - C bindings TagLib is a library for reading and editing the meta-data of several popular @@ -97,6 +106,8 @@ Package: libtagc0-dev Section: libdevel Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} Depends: libtagc0 (= ${binary:Version}), libtag1-dev (= ${binary:Version}), ${misc:Depends} Description: audio meta-data library - development files for C bindings TagLib is a library for reading and editing the meta-data of several popular === modified file 'debian/libtag1-dev.install' --- debian/libtag1-dev.install 2011-04-09 19:32:40 +0000 +++ debian/libtag1-dev.install 2011-12-06 01:38:46 +0000 @@ -78,5 +78,5 @@ usr/include/taglib/wavproperties.h usr/include/taglib/xingheader.h usr/include/taglib/xiphcomment.h -usr/lib/libtag.so -usr/lib/pkgconfig/taglib.pc +usr/lib/*/libtag.so +usr/lib/*/pkgconfig/taglib.pc === modified file 'debian/libtag1-rusxmms.install' --- debian/libtag1-rusxmms.install 2010-05-07 17:37:15 +0000 +++ debian/libtag1-rusxmms.install 2011-12-06 01:53:44 +0000 @@ -1,2 +1 @@ -debian/tmp-rusxmms/usr/lib/libtag.so.1 usr/lib -debian/tmp-rusxmms/usr/lib/libtag.so.1.* usr/lib +usr/lib/*/libtag.so.1* === modified file 'debian/libtag1-vanilla.install' --- debian/libtag1-vanilla.install 2010-05-07 17:37:15 +0000 +++ debian/libtag1-vanilla.install 2011-12-06 01:38:46 +0000 @@ -1,2 +1,2 @@ -usr/lib/libtag.so.1 -usr/lib/libtag.so.1.* +usr/lib/*/libtag.so.1 +usr/lib/*/libtag.so.1.* === modified file 'debian/libtagc0-dev.install' --- debian/libtagc0-dev.install 2009-03-20 01:36:31 +0000 +++ debian/libtagc0-dev.install 2011-12-06 01:38:46 +0000 @@ -1,3 +1,3 @@ usr/include/taglib/tag_c.h -usr/lib/libtag_c.so -usr/lib/pkgconfig/taglib_c.pc +usr/lib/*/libtag_c.so +usr/lib/*/pkgconfig/taglib_c.pc === modified file 'debian/libtagc0.install' --- debian/libtagc0.install 2009-03-20 01:36:31 +0000 +++ debian/libtagc0.install 2011-12-06 01:38:46 +0000 @@ -1,2 +1,2 @@ -usr/lib/libtag_c.so.0 -usr/lib/libtag_c.so.0.0.0 +usr/lib/*/libtag_c.so.0 +usr/lib/*/libtag_c.so.0.0.0 === added file 'debian/patches/multiarch.diff' --- debian/patches/multiarch.diff 1970-01-01 00:00:00 +0000 +++ debian/patches/multiarch.diff 2011-12-06 02:19:54 +0000 @@ -0,0 +1,18 @@ +Description: don't force the library install directory + We need to be able to override this directory for multiarch library + installation, so don't use the "FORCE" option to set(). +Author: Steve Langasek <steve.langa...@canonical.com> + +Index: trunk/CMakeLists.txt +=================================================================== +--- trunk.orig/CMakeLists.txt ++++ trunk/CMakeLists.txt +@@ -19,7 +19,7 @@ + # + ## the following are directories where stuff will be installed to + set(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" CACHE PATH "The subdirectory to the binaries prefix (default prefix/bin)" FORCE) +-set(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE) ++set(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})") + set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The subdirectory to the header prefix" FORCE) + + if (CMAKE_COMPILER_IS_GNUCXX) === modified file 'debian/patches/series' --- debian/patches/series 2011-04-09 19:32:40 +0000 +++ debian/patches/series 2011-12-06 02:18:26 +0000 @@ -1 +1,2 @@ upstream_doxygen_out_of_source.diff +multiarch.diff === modified file 'debian/rules' --- debian/rules 2011-04-09 19:32:40 +0000 +++ debian/rules 2011-12-06 02:13:58 +0000 @@ -2,8 +2,9 @@ export CFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden export CXXFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) -CMAKE_ARGS = -DCMAKE_USE_RELATIVE_PATHS=ON -DWITH_ASF=ON -DWITH_MP4=ON +CMAKE_ARGS = -DCMAKE_USE_RELATIVE_PATHS=ON -DWITH_ASF=ON -DWITH_MP4=ON -DLIB_INSTALL_DIR:PATH=/usr/lib/$(DEB_HOST_MULTIARCH) DH_AUTO_ARGS = --buildsystem=cmake QUILT := quilt --quiltrc /dev/null MAKE_ME = $(MAKE) -f $(lastword $(MAKEFILE_LIST)) @@ -55,8 +56,8 @@ ### Install / binary building ### override_dh_auto_install: dh_auto_install --builddirectory=builddir-vanilla $(DH_AUTO_ARGS) - install -d -m755 debian/tmp-rusxmms/usr/lib/ - cp -a builddir-rusxmms/taglib/libtag.so.* debian/tmp-rusxmms/usr/lib + install -d -m755 debian/tmp-rusxmms/usr/lib/$(DEB_HOST_MULTIARCH) + cp -a builddir-rusxmms/taglib/libtag.so.* debian/tmp-rusxmms/usr/lib/$(DEB_HOST_MULTIARCH)/ override_dh_installdocs: dh_installdocs @@ -65,6 +66,10 @@ install -m644 -oroot -groot -T bindings/README debian/libtag1c2a/usr/share/doc/libtag1c2a/README.bindings; \ fi; +override_dh_install: + dh_install -plibtag1-rusxmms --sourcedir=$(CURDIR)/debian/tmp-rusxmms + dh_install -Nlibtag1-rusxmms + # Generate docs when building indep doc/html/index.html: | build # build-indep gets invoked in buildds as well...