Bug#935590: libopusfile0: Please make multi-arch co-installable

2022-05-30 Thread Simon McVittie
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

2022-05-30 Thread Simon McVittie
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

2020-05-13 Thread Simon McVittie
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

2019-08-24 Thread Simon McVittie
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