diff -Nru dpkg-1.21.8/debian/changelog dpkg-1.21.8+rpi1/debian/changelog --- dpkg-1.21.8/debian/changelog 2022-05-25 08:39:29.000000000 +0000 +++ dpkg-1.21.8+rpi1/debian/changelog 2022-05-29 20:21:55.000000000 +0000 @@ -1,3 +1,11 @@ +dpkg (1.21.8+rpi1) bookworm-staging; urgency=medium + + [changes brought forward from 1.20.5+rpi1 by Peter Michael Green at Sun, 02 Aug 2020 12:08:02 +0000] + * Hack up Vendor.pm so it doesn't fail + (see https://lists.debian.org/debian-dpkg/2020/08/msg00004.html ) + + -- Raspbian forward porter Sun, 29 May 2022 20:21:55 +0000 + dpkg (1.21.8) unstable; urgency=medium [ Guillem Jover ] diff -Nru dpkg-1.21.8/scripts/Dpkg/Vendor.pm dpkg-1.21.8+rpi1/scripts/Dpkg/Vendor.pm --- dpkg-1.21.8/scripts/Dpkg/Vendor.pm 2022-05-24 17:36:59.000000000 +0000 +++ dpkg-1.21.8+rpi1/scripts/Dpkg/Vendor.pm 2022-05-29 20:21:55.000000000 +0000 @@ -153,29 +153,47 @@ =cut sub get_vendor_object { + #print STDERR "entering get_vendor_object\n"; my $vendor = shift || get_current_vendor() || 'Default'; state %OBJECT_CACHE; + #print STDERR "maybe leaving get_vendor_object by exit 1\n"; return $OBJECT_CACHE{$vendor} if exists $OBJECT_CACHE{$vendor}; + #print STDERR "did not leave get_vendor_object by exit 1\n"; my ($obj, @names); + + #print STDERR "14.24b.5.18a.16.1\n"; push @names, $vendor, lc($vendor), ucfirst($vendor), ucfirst(lc($vendor)); + #print STDERR "14.24b.5.18a.16.2\n"; foreach my $name (@names) { - eval qq{ + #print STDERR $name."\n"; + my $modulefilename = "/usr/share/perl5/Dpkg/Vendor/".$name.".pm"; + #print STDERR $modulefilename."\n"; + if (-e $modulefilename) { + #print STDERR "perl module exists\n"; + eval qq{ pop \@INC if \$INC[-1] eq '.'; require Dpkg::Vendor::$name; \$obj = Dpkg::Vendor::$name->new(); - }; - unless ($@) { + }; + unless ($@) { $OBJECT_CACHE{$vendor} = $obj; + #print STDERR "leaving get_vendor_object by exit 2\n"; return $obj; + } } } + #exit(1234); + #print STDERR "14.24b.5.18a.16.3\n"; my $info = get_vendor_info($vendor); + #print STDERR "14.24b.5.18a.16.4\n"; if (defined $info and defined $info->{'Parent'}) { + #print STDERR "recursively calling get_vendor_object for parent distribution and returning the result\n"; return get_vendor_object($info->{'Parent'}); } else { + #print STDERR "recursively calling get_vendor_object for default distribution and returning the result\n"; return get_vendor_object('Default'); } }