• dpkg-source -b failing on raspbian (and probably other derivatives)

    From peter green@21:1/5 to All on Sun Aug 2 14:20:01 2020
    Recently in raspbian bullseye-staging dpkg-source -b started failing. There were no error messages, it just exited with
    status 127. For example

    dpkg-source: info: using source format '3.0 (quilt)'
    dpkg-source: info: building yubikey-personalization using existing ./yubikey-personalization_1.20.0.orig.tar.gz
    dpkg-source: warning: upstream signing key but no upstream tarball signature dpkg-source: info: using patch list from debian/patches/series dpkg-buildpackage: error: dpkg-source -b . subprocess returned exit status 127


    I am not absolutely sure what update triggered this, but the timing suggests it was most likely the update to
    libdpkg-perl and/or dpkg-dev 1.20.5 (note: at the time of the test dpkg itself was still at 1.19.7 waiting
    for a build slot).

    After adding a whole bunch of print statements to the code I found it seems to be failing in the following block
    of code in Vendor.pm (print statements mine)

    print "14.24b.5.18a.16.2\n";
    foreach my $name (@names) {
    print $name."\n";
    eval qq{
    pop \@INC if \$INC[-1] eq '.';
    require Dpkg::Vendor::$name;
    \$obj = Dpkg::Vendor::$name->new();
    };
    unless ($@) {
    $OBJECT_CACHE{$vendor} = $obj;
    print "leaving get_vendor_object by exit 2\n";
    return $obj;
    }
    }

    print "14.24b.5.18a.16.3\n";

    Looking at the git history the code in question doesn't seem to have been touched for several years. Did 1.20.5 change
    the strictness mode for the perl interpreter or something?

    I am hacking up a dirty fix and will post it when it is complete, but I suspect fixing this properly needs someone with
    far more knowledge of dpkg and perl than I posses.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)