Your message dated Sun, 17 Sep 2017 21:07:38 +0000
with message-id <[email protected]>
and subject line Bug#854233: fixed in licensecheck 3.0.31-2
has caused the Debian Bug report #854233,
regarding licensecheck: Please mark licensecheck as Multi-Arch:foreign
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
854233: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=854233
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: licensecheck
Version: 3.0.28-1
Severity: wishlist
Tags: patch
User: [email protected]
Usertags: cross-satisfiability
Hi,
currently, licensecheck is involved in 48 source packages not being able
to satisfy their crossbuild dependencies. See [1] for a list (Ctrl+F for
licensecheck). This is because the dependencies of a source package have
to be installed for the architecture that the source package is built
for. During native compilation, that architecture is equal to the native
architecture. During cross compilation it is a different architecture
than the native architecture. The licensecheck package is
Architecture:all and thus implicitly treated as being the native
architecture. As it is, the package is thus unable to satisfy crossbuild
dependencies of any source package build depending on it.
There are multiple ways to resolve this situation:
- make licensecheck Multi-Arch:foreign (with private perl lib)
- make licensecheck Multi-Arch:foreign and split out perl library into
a new package which is Architecture:any Multi-Arch:same
- adapt all build dependencies on it with the :native qualifier
For a binary package to be marked as Multi-Arch:foreign it has to not
expose the architecture it is installed in. This seems to be the case
for the licensecheck application. The interface the licensecheck script
provides seems to be architecture independent.
Unfortunately, the binary package also ships perl modules. Perl modules
can be architecture independent (pure perl) or architecture specific (XS
modules). The problem arises when the architecture independent module is
on a dependency path between two architecture specific packages. The
architecture independent package is unable to transport the architecture
of its reverse dependency and it can thus happen that two XS modules of
different architectures end up in the same installation set. Since the
architecture of all XS modules has to be equal, the package becomes
unusable. This is called the multiarch interpreter problem and a list of
affected packages can be found here [2]. The only solution to the
problem with our current dependency model is to put the architecture
independent perl module into a binary package that is marked as
Architecture:any and Multi-Arch:same.
Fortunately though, a look through codesearch seems to suggest that
nobody is using the perl module provided by the licensecheck binary
package. Thus it is possible to just make the perl module private and
thus prevent accidental usage by third parties. If the module is ever
required by others, then it should be moved into a separate package
which is marked Architecture:any and Multi-Arch:same.
Since the problem can be fixed in the licensecheck package, we can avoid
having to patch the 48 source packages that build depend on it.
I attached a patch which marks the licensecheck package
Multi-Arch:foreign and moves the perl module into a private path.
Thanks!
cheers, josch
[1] https://bootstrap.debian.net/cross_all.html
[2] https://bootstrap.debian.net/ma_interpreter.html
diff -Nru licensecheck-3.0.29/debian/changelog
licensecheck-3.0.29/debian/changelog
--- licensecheck-3.0.29/debian/changelog 2017-01-24 11:55:30.000000000
+0100
+++ licensecheck-3.0.29/debian/changelog 2017-02-05 09:31:18.000000000
+0100
@@ -1,3 +1,17 @@
+licensecheck (3.0.29-1.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Make the licensecheck package Multi-Arch:foreign so that it is able to
+ satisfy the crossbuild dependencies of (as of today) 49 source packages.
+ For the licensecheck binary package to be Multi-Arch foreign, the perl
+ module parts have to be hidden from the world and must thus not be
+ installed into the common perl search path. If the module part of
+ licensecheck is ever needed by another module, then the module would have
+ to be moved to a new binary package and marked as Architecture:any
+ Multi-Arch:same to avoid the multiarch interpreter problem.
+
+ -- Johannes Schauer <[email protected]> Sun, 05 Feb 2017 09:31:18 +0100
+
licensecheck (3.0.29-1) unstable; urgency=medium
[ upstream ]
diff -Nru licensecheck-3.0.29/debian/control licensecheck-3.0.29/debian/control
--- licensecheck-3.0.29/debian/control 2017-01-24 11:52:22.000000000 +0100
+++ licensecheck-3.0.29/debian/control 2017-02-05 09:22:15.000000000 +0100
@@ -39,6 +39,7 @@
Recommends: ${cdbs:Recommends}
Breaks: devscripts (<< 2.16.6~)
Replaces: devscripts (<< 2.16.6~)
+Multi-Arch: foreign
Description: simple license checker for source files
Licensecheck attempts to determine the license that applies to each
file passed to it, by searching the start of the file for text
diff -Nru licensecheck-3.0.29/debian/patches/series
licensecheck-3.0.29/debian/patches/series
--- licensecheck-3.0.29/debian/patches/series 1970-01-01 01:00:00.000000000
+0100
+++ licensecheck-3.0.29/debian/patches/series 2017-02-05 09:31:18.000000000
+0100
@@ -0,0 +1 @@
+use-private-module
diff -Nru licensecheck-3.0.29/debian/patches/use-private-module
licensecheck-3.0.29/debian/patches/use-private-module
--- licensecheck-3.0.29/debian/patches/use-private-module 1970-01-01
01:00:00.000000000 +0100
+++ licensecheck-3.0.29/debian/patches/use-private-module 2017-02-05
09:31:18.000000000 +0100
@@ -0,0 +1,19 @@
+Description: use private licensecheck module
+ For the licensecheck binary package to be Multi-Arch foreign, the perl module
+ parts have to be hidden from the world and must thus not be installed into
+ the common perl search path. If the module part of licensecheck is ever needed
+ by another module, then the module would have to be moved to a new binary
+ package and marked as Architecture:any Multi-Arch:same to avoid the multiarch
+ interpreter problem.
+Author: Johannes Schauer <[email protected]>
+
+--- licensecheck-3.0.29.orig/bin/licensecheck
++++ licensecheck-3.0.29/bin/licensecheck
+@@ -17,6 +17,7 @@ use String::Escape qw(unbackslash);
+ use List::Util 1.45 qw(uniq uniqstr);
+ use Sort::Key::Multi 1.25 qw(rs_keysort rus_keysort);
+
++use lib '/usr/share/licensecheck';
+ use App::Licensecheck;
+
+ =head1 NAME
diff -Nru licensecheck-3.0.29/debian/rules licensecheck-3.0.29/debian/rules
--- licensecheck-3.0.29/debian/rules 2017-01-24 11:50:10.000000000 +0100
+++ licensecheck-3.0.29/debian/rules 2017-02-05 09:31:18.000000000 +0100
@@ -16,6 +16,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+DEB_MAKEMAKER_USER_FLAGS=LIB=/usr/share/licensecheck
+
include /usr/share/cdbs/1/rules/utils.mk
include /usr/share/cdbs/1/class/perl-makemaker.mk
include /usr/share/cdbs/1/rules/debhelper.mk
--- End Message ---
--- Begin Message ---
Source: licensecheck
Source-Version: 3.0.31-2
We believe that the bug you reported is fixed in the latest version of
licensecheck, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Jonas Smedegaard <[email protected]> (supplier of updated licensecheck package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Sun, 17 Sep 2017 22:10:06 +0200
Source: licensecheck
Binary: licensecheck
Architecture: source all
Version: 3.0.31-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Perl Group <[email protected]>
Changed-By: Jonas Smedegaard <[email protected]>
Description:
licensecheck - simple license checker for source files
Closes: 854233
Changes:
licensecheck (3.0.31-2) unstable; urgency=medium
.
* Fix patch and adapt build to install library-part as private
library, to be multiarch-friendly.
Closes: Bug#854233. Thanks to Johannes Schauer and Helmuth Grohne.
Checksums-Sha1:
afede52f29d051e354a634837248e08113337bd5 2493 licensecheck_3.0.31-2.dsc
22eb36d70341c2caabeebd5f3f87389b1f236889 27920
licensecheck_3.0.31-2.debian.tar.xz
9ea714d68e63011baadb357bc4156c227fb583df 31498 licensecheck_3.0.31-2_all.deb
93461577a2b079102f5d944e22ad8ff98d0f9e76 7159
licensecheck_3.0.31-2_amd64.buildinfo
Checksums-Sha256:
9e6ce0a2dbfe1bc29638edf502584464eec13d4d1f218969cee6f8d384dc492e 2493
licensecheck_3.0.31-2.dsc
5b5bde3c137013dbc2f87852442a707ddc06869fad8c01149879da0f4cf7fb9f 27920
licensecheck_3.0.31-2.debian.tar.xz
3c80b6e55dfa5bd20e37e3efaacdd9451f9c235a9e748e9f09402372450e92db 31498
licensecheck_3.0.31-2_all.deb
afd2d78eab02f5a007031a9554912f67ecdbe37438cb206b726eb9b02b08f952 7159
licensecheck_3.0.31-2_amd64.buildinfo
Files:
f58cdbd3e5d2c29889212fb8cb932b77 2493 admin optional licensecheck_3.0.31-2.dsc
bfc17a3973c7e0ade95c81717ced0c03 27920 admin optional
licensecheck_3.0.31-2.debian.tar.xz
0f2a83412f5678c92fdf0cecccd67e2e 31498 admin optional
licensecheck_3.0.31-2_all.deb
192a525110ed293e4ff322286dd67f42 7159 admin optional
licensecheck_3.0.31-2_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAlm+1z0ACgkQLHwxRsGg
ASHfYw//eMXyih7YFDcml5+OHcoNMvzj7/zZ50qHpbhO7alEV1+8wlnmuUe5tJVU
WX9oj4IxUV3NaMytfNaa45kZ943Ga1MgXu79h3EhGV2MvrLd3+k9NJ/3LG0Cwkkv
olZqYT3a1nLrxPlWKihz5mgf+GrZIWOtg1+N9SAqoe7ikw1ffP2WO2Hotn6Vf+3X
Ycj+d0n5bicFGzhTZk5FYCHxUC/vRmujil9O5rVqxWvJxiwC5qjnIoBbfjF4t/TM
Cfg40JzldrE8Qa1O/zi13RpwhUwaypjWqLE2xQlQn//SBnfxbuSiarXFpOSamx6b
hOAbCK74AFzjG4qa0h9GmtcbZn9d0f7KEd3dZ2D9kNfUAfkgbGshKOl+u7GqX6Oq
aRgYQch8P070gBBVOCg2nEv9Sr2xGE5JnFiS/nEJRxhNhf9BDxGtY83DTHtZoerC
582Rm4cDSQuQ9OUpCNuflKI/byJuJfb/z9sLvVfQo/hAJnHjKsGeTtJN9mOKc4ND
BFw0wkuUgv0keshTITslLxDO4Ho7WQlY7MmgSm1dNckh6jwlCR97sB3ArxByJGdv
OTqtnsYmp/HbddHSyEvboxgyYYQ5Sec29LKJAnA7p0NGQhR3yXNm+I8VuZbC0VHU
tJ6yDWxSVyj7fCZdBdY5KeZGCzDb606U7svm73JZs/k+lUuXEMU=
=+aJm
-----END PGP SIGNATURE-----
--- End Message ---