Source: sbuild
Version: git
Severity: minor
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hi,
while trying to catch up with a mipsel (--arch=mips2) building of
packages which for obvious reasons need to stay seperate from anything
Debian official i tried using buildd to build all and mipsel arch
at the same time.
Resulting packages were uploaded correctly but sometimes throw
a perl error on buildd-uploader
Use of uninitialized value in concatenation (.) or string at
/usr/share/perl5/Buildd/Base.pm line 166.
Use of uninitialized value in concatenation (.) or string at
/usr/share/perl5/Buildd/Base.pm line 169.
Can't call method "get" on an undefined value at
/usr/share/perl5/Sbuild/Base.pm line 74.
Debugging the issue it turned out the
Buildd::Uploader->upload
had a different assumption about the calling convention for
Buildd::Uploader->uploaded
The first thought it should pass in an array (Which arch_name suddenly
became) but ->uploaded only expected a scalar. It passed it to
Buildd::Base::get_arch_dist_config_by_name()
which failed horribly.
So i propose a patch something like this:
https://salsa.debian.org/flo/sbuild/-/commit/cc095b20ad225b48d56a362d0cf3a219c6cf9246
commit cc095b20ad225b48d56a362d0cf3a219c6cf9246
Author: Florian Lohoff <[email protected]>
Date: Thu Jan 26 13:15:26 2023 +0100
Fix passing argument mismatch
Buildd::Uploader->uploaded takes an scalar argument for the architecture
whereas Buildd::Uploader->upload passes in an array. This breaks when
something really writes more than one architecture in the .changes file.
Convert to pass by reference and before passing to
->get_arch_dist_config_by_name()
eliminate possible "all" from the list when there is more than one
architecture in the array.
diff --git a/lib/Buildd/Uploader.pm b/lib/Buildd/Uploader.pm
index 302f5da0..a05cef94 100644
- --- a/lib/Buildd/Uploader.pm
+++ b/lib/Buildd/Uploader.pm
@@ -83,9 +83,13 @@ sub run {
sub uploaded ($@) {
my $self = shift;
my $pkg = shift;
- - my $arch_name = shift;
+ my $arch_array = shift;
my $dist_name = shift;
+ my $arch_name=(scalar @{$arch_array} > 1)
+ ? (grep { !/all/ } @{$arch_array})[0]
+ : $arch_array->[0];
+
my $msgs = "";
my $dist_config = $self->get_arch_dist_config_by_name($arch_name,
$dist_name);
@@ -180,7 +184,7 @@ sub upload ($$) {
} else {
($pkg = $f) =~ s/_\S+\.changes$//;
}
- - $self->uploaded($pkg, @archs, @dists);
+ $self->uploaded($pkg, \@archs, @dists);
} else {
push (@after, $f);
}
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEdb9o7oebX2papQ/KkN1BIMsJ8i8FAmPScekACgkQkN1BIMsJ
8i9lhRAAg9l2YsF+zOsvPEqHdMUprmm/uEuAdMFGtJt3L+6BlRvWBXBuz7xZ0FzY
OqxOuPUS6PSnfreLgfsgLbfSyPVGgZ6Vlh6u7XzNBhdn/W/ErbTqRv39J9qDgcwY
9JAZc4NxmEFasAF5QQqwjj65S31LoXHAhSB4d5/AMai5kIWu7SgfYLFoAZ1DIrul
WZS9DDo2Yu4cMP+sZdZ+d8OhdFUph4crBusXmSrXQSI8BTFSj0pt5FXQKuSETRmH
iC2yOIeAPJNbHnkGpdo/KF6nyv9LoEwslqp22bigEqquH17U/VaQoV+yCCD94S0N
JhjVTqqywAGtlh0Z+lntAmA7c7P3Sd/YlcA9waCjxBppsEJ8PXZUQYVcFDPpYRM2
yePhnM93YSTlptZ49iujKHdqwT44WAb8KJT0eBH7In15nJVF32kxSV90RYex5QPG
Degx5A0yCRwHpRLjYG8L+3kQJ+9UP6Y2g+pDgxmI437k+gs3kT7tLjNjUupnw/Ej
3TWBjbdVWZggRVOMlUvpHgbBUJ19yNXjljP971tWVn80bCTudSoL8a7D+gkOkoxL
kB66VhRTuw72Cg5fTY5JbHmLbJGPxp2Vi6Dv2ebTmg7E0p3JiEcQ1iiT15s/jxK2
PK+rc7Rd7k6WGFbqrc3xZuFWIsDJI4zKL9p8HoIzu+DkWxYM1LI=
=P1aT
-----END PGP SIGNATURE-----