Bug#949883: mark libjson-perl Multi-Arch: foreign

Helmut Grohne helmut at subdivi.de
Sun Jan 26 15:58:56 GMT 2020


Source: libjson-perl
Version: 4.02000-1
Tags: patch
User: debian-cross at lists.debian.org
Usertags: cross-satisfiability
Control: affects -1 + src:cod-tools src:gbrowse src:h2o src:heimdal src:krb5-strength src:libhtml-template-pro-perl src:libtime-y2038-perl src:mysql-5.7 src:os-autoinst src:pcp src:task src:webauth

The affected packages cannot satisfy their cross Build-Depends, because
their dependency on libjson-perl is not satisfiable. In general,
Architecture: all packages can never satisfy cross Build-Depends unless
marked Multi-Arch: foreign or annotated :native, but neither is always
correct.

Often times, the multiarch hinter tells when to mark Architecture: all
package Multi-Arch: foreign, but it doesn't emit a hint for
libjson-perl. That's the case, because libjson-perl depends on perl
without :any. If you rebuild libjson-perl in unstable, you'll notice
that it now depends on perl:any. This is due to a change in debhelper.
It formerly only used perl:any for applications, but now also allows the
:any annotation for pure perl modules. Once the perl dependency carries
:any, libjson-perl will be flagged by the hinter. Expect this to happen
for other pure perl modules after rebuilding them with a current
debhelper.

So yeah, we can and should mark libjson-perl Multi-Arch: foreign,
because it isn't architecture-dependent at all. Please consider applying
the attached patch. Also consider noting this as a pattern: A pure perl
module that doesn't depend on any other modules should usually be marked
Multi-Arch: foreign. Do note that once there is a dependency on a perl
extension module, Multi-Arch: foreign becomes wrong. It's a little
wicked and this is the somewhat famous multiarch interpreter problem. So
let's just solve the easy case without dependencies here.

Helmut
-------------- next part --------------
diff --minimal -Nru libjson-perl-4.02000/debian/changelog libjson-perl-4.02000/debian/changelog
--- libjson-perl-4.02000/debian/changelog	2019-02-24 15:56:57.000000000 +0100
+++ libjson-perl-4.02000/debian/changelog	2020-01-26 16:45:26.000000000 +0100
@@ -1,3 +1,10 @@
+libjson-perl (4.02000-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Mark libjson-perl Multi-Arch: foreign. (Closes: #-1)
+
+ -- Helmut Grohne <helmut at subdivi.de>  Sun, 26 Jan 2020 16:45:26 +0100
+
 libjson-perl (4.02000-1) unstable; urgency=medium
 
   * Import upstream version 4.02000.
diff --minimal -Nru libjson-perl-4.02000/debian/control libjson-perl-4.02000/debian/control
--- libjson-perl-4.02000/debian/control	2019-02-24 15:56:57.000000000 +0100
+++ libjson-perl-4.02000/debian/control	2020-01-26 16:45:26.000000000 +0100
@@ -19,6 +19,7 @@
 
 Package: libjson-perl
 Architecture: all
+Multi-Arch: foreign
 Depends: ${misc:Depends},
          ${perl:Depends}
 Recommends: libjson-xs-perl (>= 2.340)


More information about the pkg-perl-maintainers mailing list