[buildd-tools-devel] Bug#749640: buildd-uploader doesn't consider architecture when setting package uploaded

Riku Voipio riku.voipio at iki.fi
Wed May 28 19:15:30 UTC 2014


Package: buildd
Version: 0.64.0-1+buildd20140413.0
Severity: normal

We see the following error in buildd log:

May 28 14:35:52 buildd-uploader[28069]: owncloud-client: not taken by you, but by buildd_armhf-henze. Skipping.

This is a buildd which builds multiple architectures (armel/armhf), with
a similar conf in .builddrc:

for my $dist_name (qw{sid experimental}) {
        for my $arch (qw{armel armhf}) {
                push @$distributions, {
                        built_architecture => $arch, 
                        dist_name => [ $dist_name ], 
                        logs_mail_also => $admin_mail,
                        wanna_build_db_user => "buildd_armhf-hartmann", }
     }
 }
 
Package builds fine, picking up right package from right w-b database:

May 28 14:08:25 buildd[7884]: Starting build (dist=experimental) of owncloud-client_1.6.0~rc2+dfsg-1
May 28 14:08:25 buildd[7884]: command line: nice -n 10 sbuild --apt-update --no-apt-upgrade --no-apt-distupgrade --batch --stats-dir=/home/buildd/stats --dist=experimental --sbuild-mode=buildd --mailfrom=buildd on hartmann <xx at xx> --maintainer=<xx at xx> --keyid=xx --mail-log-to=xx at xx --build-dep-resolver=aptitude --arch=armel owncloud-client_1.6.0~rc2+dfsg-1
May 28 14:30:47 buildd[7884]: sbuild of owncloud-client_1.6.0~rc2+dfsg-1 succeeded -- marking as built in wanna-build
May 28 14:30:48 buildd[7884]: owncloud-client_1.6.0~rc2+dfsg-1 is autosigned, moving to 'upload'

$ wanna-build -d experimental -A armel --info owncloud-client
owncloud-client:
  Package             : owncloud-client
  Version             : 1.6.0~rc2+dfsg-1
  Builder             : buildd_armhf-hartmann
  State               : Built

If we look at the armhf db:

$ wanna-build -d experimental -A armhf --info owncloud-client
owncloud-client:
  Package             : owncloud-client
  Version             : 1.6.0~rc2+dfsg-1
  Builder             : buildd_armhf-henze
  State               : Installed

We see that buildd-uploader is consulting the wrong database for the package.
Debug ouptut confirms this:

D2: Pipe (PID 28169, GLOB(0x206b018)) created for: ssh -l wb-buildd buildd.d.o wanna-build --arch=armhf --user=buildd_armhf-hartmann --uploaded --dist=experimental owncloud-client_1.6.0~rc2+dfsg-1

Looking at Uploader.pm sources:

        my $dist_config = $self->get_dist_config_by_name($dist_name);
        my $db = $self->get_db_handle($dist_config);

        my $pipe = $db->pipe_query('--uploaded', '--dist=' . $dist_name, $pkg);

get_dist_config_by_name doesn't know that there are two "experimental" dist_name items in .builddrc, 
and doesn't get an arch paramater to know which one to take.

I think buildd-uploader should pick the architecture from the .changes filename, and
pick the distconfig that has matching BUILT_ARCHITECTURE. Then pipe_query should do the right thing.

Riku



More information about the Buildd-tools-devel mailing list