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...

Reply via email to