[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1123694: soapyhydrasdr installs into a foreign multiarch directory



Source: soapyhydrasdr
Version: 0.1.0-2
Severity: serious
Justification: wrong multiarch directory
Tags: patch
User: debian-cross@lists.debian.org
Usertags: ftcbfs

soapyhydrasdr successfully cross builds a broken package. Upon closer
inspection of a native build, I noticed that this is also the case for
the native builds uploaded to the archive.

https://buildd.debian.org/status/fetch.php?pkg=soapyhydrasdr&arch=arm64&ver=0.1.0-2&stamp=1762215701&raw=0

| soapysdr0.8-module-hydrasdr_0.1.0-2_arm64.deb
| ---------------------------------------------
| 
|  new Debian package, version 2.0.
|  size 22964 bytes: control archive=812 bytes.
|      600 bytes,    15 lines      control
|      556 bytes,     6 lines      md5sums
|  Package: soapysdr0.8-module-hydrasdr
|  Source: soapyhydrasdr
|  Version: 0.1.0-2
|  Architecture: arm64
|  Maintainer: Debian Hamradio Maintainers <debian-hams@lists.debian.org>
|  Installed-Size: 153
|  Depends: libc6 (>= 2.38), libgcc-s1 (>= 3.0), libhydrasdr0 (>= 1.0.2), libsoapysdr0.8 (>= 0.8.1), libstdc++6 (>= 5.2)
|  Section: hamradio
|  Priority: optional
|  Multi-Arch: same
|  Homepage: https://github.com/hydrasdr/SoapyHydraSDR
|  Description: HydraSDR device support for SoapySDR
|   The Soapy HydraSDR project provides a SoapySDR hardware support module.
|   .
|   Adds HydraSDR RFOne software defined radio support via Soapy.
| 
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/lib/
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/lib/aarch64-linux-gnu/
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/lib/aarch64-linux-gnu/SoapySDR/
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/lib/aarch64-linux-gnu/SoapySDR/modules0.8/
| -rw-r--r-- root/root     67792 2025-11-03 23:25 ./usr/lib/aarch64-linux-gnu/SoapySDR/modules0.8/libSoapyHydraSDR.so
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/lib/x86_64-linux-gnu/
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/lib/x86_64-linux-gnu/SoapySDR/
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/lib/x86_64-linux-gnu/SoapySDR/modules0.8/
| -rw-r--r-- root/root     67792 2025-11-03 23:25 ./usr/lib/x86_64-linux-gnu/SoapySDR/modules0.8/libSoapyHydraSDR.so
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/share/
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/share/doc/
| drwxr-xr-x root/root         0 2025-11-03 23:25 ./usr/share/doc/soapysdr0.8-module-hydrasdr/
| -rw-r--r-- root/root      1665 2025-08-01 06:09 ./usr/share/doc/soapysdr0.8-module-hydrasdr/README.md
| -rw-r--r-- root/root       320 2025-11-03 23:25 ./usr/share/doc/soapysdr0.8-module-hydrasdr/changelog.Debian.gz
| -rw-r--r-- root/root        98 2025-08-01 06:09 ./usr/share/doc/soapysdr0.8-module-hydrasdr/changelog.gz
| -rw-r--r-- root/root      1273 2025-08-01 06:09 ./usr/share/doc/soapysdr0.8-module-hydrasdr/copyright

Quite definitely, it should not be installing to
/usr/lib/x86_64-linux-gnu.

The upstream CMakeLists.txt tries quite a bit to avoid this outcome, but
it ultimately fails. It first checks whether the user might have defined
SOAPY_SDR_MODULE_DIR. That's not the case during a package build. Then
it tries to locate SoapySDR using pkg-config and it may even find it,
but Debian's SoapySDR.pc does not include a moduledir, so that does not
help either. It then tries a few common locations and eventually falls
back to /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.8. That's where our
path comes from.

I think the best solution here would be adding the moduledir to
SoapySDR.pc. In the mean time, I suggest overriding the variable to fix
the installation path. I'm attaching a patch for your convenience.

Helmut
diff -Nru soapyhydrasdr-0.1.0/debian/changelog soapyhydrasdr-0.1.0/debian/changelog
--- soapyhydrasdr-0.1.0/debian/changelog	2025-11-04 00:25:00.000000000 +0100
+++ soapyhydrasdr-0.1.0/debian/changelog	2025-12-17 15:23:44.000000000 +0100
@@ -1,3 +1,10 @@
+soapyhydrasdr (0.1.0-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix wrong installation path by forcing SOAPY_SDR_MODULE_DIR. (Closes: #-1)
+
+ -- A. Maitland Bottoms <helmut@benjy>  Wed, 17 Dec 2025 15:23:44 +0100
+
 soapyhydrasdr (0.1.0-2) unstable; urgency=medium
 
   * upload to unstable
diff -Nru soapyhydrasdr-0.1.0/debian/rules soapyhydrasdr-0.1.0/debian/rules
--- soapyhydrasdr-0.1.0/debian/rules	2025-11-03 14:05:06.000000000 +0100
+++ soapyhydrasdr-0.1.0/debian/rules	2025-12-17 15:23:44.000000000 +0100
@@ -1,4 +1,10 @@
 #!/usr/bin/make -f
 export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+
+include /usr/share/dpkg/architecture.mk
+
 %:
 	dh $@
+
+override_dh_auto_configure:
+	dh_auto_configure -- -DSOAPY_SDR_MODULE_DIR=/usr/lib/$(DEB_HOST_MULTIARCH)/SoapySDR/modules0.8

Reply to: