Bug#935590: libopusfile0: Please make multi-arch co-installable
Control: tags -1 + patch On Mon, 30 May 2022 at 17:33:37 +0100, Simon McVittie wrote: > On Sat, 24 Aug 2019 at 11:43:35 +0100, Simon McVittie wrote: > > libopusfile0 and libopusfile-dev are not Multi-Arch co-installable > > This is still the case as of 0.12-1: Helmut's patch from #899138 has > been applied but my follow-up has not. I'll send a tested patch when I > have one (I need to fix this for the Steam Runtime anyway). Please see https://salsa.debian.org/multimedia-team/opusfile/-/merge_requests/1 or the attached patches. Thanks, smcv >From 68a8160c1a6a3a5f4e8b54a70b94a2eb762c674f Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Wed, 19 Dec 2018 19:42:35 + Subject: [PATCH 1/2] Mark libopusfile0, libopusfile-dev as Multi-Arch: same This builds on Helmut Grohne's work in #899138 to allow (for example) libopusfile-dev:amd64 and libopusfile-dev:s390x to be co-installed, making it possible to do cross-builds without either using a chroot or removing the host architecture's libopusfile. Closes: #935590 Signed-off-by: Simon McVittie --- debian/control | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debian/control b/debian/control index 4d27a6e..d856d47 100644 --- a/debian/control +++ b/debian/control @@ -23,6 +23,7 @@ Vcs-Browser: https://salsa.debian.org/multimedia-team/opusfile Package: libopusfile0 Section: libs Architecture: any +Multi-Arch: same Depends: ${misc:Depends}, ${shlibs:Depends}, @@ -41,6 +42,7 @@ Description: High-level API for basic manipulation of Ogg Opus audio streams Package: libopusfile-dev Section: libdevel Architecture: any +Multi-Arch: same Depends: libogg-dev (>= 1.3.0), libopus-dev (>= 1.0.1), -- 2.36.1 >From 2d10b227c83c75d6230b247deed1e15e0779d29a Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Mon, 30 May 2022 17:40:19 +0100 Subject: [PATCH 2/2] d/control: Mark libopusfile-doc as Multi-Arch: foreign Signed-off-by: Simon McVittie --- debian/control | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/control b/debian/control index d856d47..ae488cf 100644 --- a/debian/control +++ b/debian/control @@ -65,6 +65,7 @@ Description: development files for libopusfile Package: libopusfile-doc Section: doc Architecture: all +Multi-Arch: foreign Depends: ${misc:Depends}, Suggests: -- 2.36.1
Bug#935590: libopusfile0: Please make multi-arch co-installable
Control: reopen -1 0.12-1 On Sat, 24 Aug 2019 at 11:43:35 +0100, Simon McVittie wrote: > libopusfile0 and libopusfile-dev are not Multi-Arch co-installable This is still the case as of 0.12-1: Helmut's patch from #899138 has been applied but my follow-up has not. I'll send a tested patch when I have one (I need to fix this for the Steam Runtime anyway). Thanks, smcv
Bug#935590: libopusfile0: Please make multi-arch co-installable
On Sat, 24 Aug 2019 at 11:43:35 +0100, Simon McVittie wrote: > libopusfile0 and libopusfile-dev are not Multi-Arch co-installable, > which makes it awkward to use them for cross-compilation, or depend on > libopusfile0 in i386 software that is to be installed on amd64 machines libopusfile-dbg is also not Multi-Arch co-installable, which is problematic if you need to debug both amd64 and i386 programs that use libopusfile0. The easiest way to resolve that is to drop the -dbg package and make use of automatic -dbgsym packages, as was done in #923031. Please see #960498 for a minimal patch for the equivalent change in speex. Doing the same in opusfile would require basically the same patch, but with names and version numbers changed - please let me know if you would like a specific, tested patch for that. As I said on #923031 some time ago, the changes on #923031 are all good things to have. If it would help to get them applied, I'd be happy to help with reviewing them and breaking them up into individual git commits with justifications, least-intrusive/highest-priority first. > The same changes are in active use in the Steam Runtime Future versions of the Steam Runtime will also use automatic -dbgsym packages for opusfile, and I would like to upstream those improvements into Debian. smcv
Bug#935590: libopusfile0: Please make multi-arch co-installable
Package: libopusfile0 Version: 0.9+20170913-1 Severity: normal Tags: patch Control: block -1 by 899138 Control: block 923031 by -1 libopusfile0 and libopusfile-dev are not Multi-Arch co-installable, which makes it awkward to use them for cross-compilation, or depend on libopusfile0 in i386 software that is to be installed on amd64 machines (for example, it would be problematic if Wine wanted to use opusfile). The attached patches are a minimal change to address this, building on what Helmut Grohne provided in #899138. Please consider applying them. The same changes are in active use in the Steam Runtime[1], a library runtime environment for Steam games, for which multiarch co-installability is particularly important because many older games are i386-only. The version of opusfile in the Steam Runtime has also been updated to 0.11, which did not require any particular packaging changes. Thanks, smcv [1] http://repo.steamstatic.com/steamrt/pool/main/o/opusfile/ >From 204f60efa9e6b16ecef2f892b6aba23d1bdf858d Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Sat, 19 May 2018 20:16:21 +0200 Subject: [PATCH 1/2] Install library and pkg-config metadata to multiarch locations Closes: #899138 --- debian/libopusfile-dev.install | 6 +++--- debian/libopusfile0.install| 2 +- debian/rules | 5 ++--- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/debian/libopusfile-dev.install b/debian/libopusfile-dev.install index bbc9008..abebe49 100644 --- a/debian/libopusfile-dev.install +++ b/debian/libopusfile-dev.install @@ -1,4 +1,4 @@ usr/include/* -usr/lib/lib*.a -usr/lib/lib*.so -usr/lib/pkgconfig/*.pc +usr/lib/*/lib*.a +usr/lib/*/lib*.so +usr/lib/*/pkgconfig/*.pc diff --git a/debian/libopusfile0.install b/debian/libopusfile0.install index d0dbfd1..3ddde58 100644 --- a/debian/libopusfile0.install +++ b/debian/libopusfile0.install @@ -1 +1 @@ -usr/lib/lib*.so.* +usr/lib/*/lib*.so.* diff --git a/debian/rules b/debian/rules index 515ea57..fa29142 100755 --- a/debian/rules +++ b/debian/rules @@ -11,9 +11,7 @@ PARALLEL = $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NJOBS= -j$(or $(PARALLEL),$(NUM_CPUS),1) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +include /usr/share/dpkg/architecture.mk # -fstack-protector-all is added by the default autoconf tests. @@ -70,6 +68,7 @@ $(objdir)/config.status: configure --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/usr \ + --libdir='$${prefix}/lib/$(DEB_HOST_MULTIARCH)' \ $(EXTRA_CONFIG_FLAGS) \ CPPFLAGS="$(CPPFLAGS)" \ CFLAGS="$(CFLAGS)" \ -- 2.23.0 >From 1b8253749254ef4cea8eec658c121cc4dc8c0d89 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Wed, 19 Dec 2018 19:42:35 + Subject: [PATCH 2/2] Mark libopusfile0, libopusfile-dev as Multi-Arch: same This builds on Helmut Grohne's work in #899138 to allow (for example) libopusfile-dev:amd64 and libopusfile-dev:s390x to be co-installed, making it possible to do cross-builds without either using a chroot or removing the host architecture's libopusfile. Signed-off-by: Simon McVittie --- debian/control | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debian/control b/debian/control index f4e30af..6045af8 100644 --- a/debian/control +++ b/debian/control @@ -13,6 +13,7 @@ Vcs-Browser: https://salsa.debian.org/ron/opusfile Package: libopusfile0 Section: libs Architecture: any +Multi-Arch: same Depends: ${shlibs:Depends} Description: High-level API for basic manipulation of Ogg Opus audio streams libopusfile provides several sets of built-in routines for file and stream @@ -29,6 +30,7 @@ Description: High-level API for basic manipulation of Ogg Opus audio streams Package: libopusfile-dev Section: libdevel Architecture: any +Multi-Arch: same Depends: libopusfile0 (= ${binary:Version}), libopus-dev (>= 1.0.1), libogg-dev (>= 1.3.0) Recommends: libssl-dev Description: High-level API for basic manipulation of Ogg Opus audio streams -- 2.23.0