From 1dfc21cbaf756541de67da4e99ef96f517adb279 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Fri, 26 Feb 2016 15:24:30 -0800 Subject: [PATCH] add changes to support arch only uploads --- bin/wanna-build | 12 ++++++++++-- etc/wanna-build.conf.local | 10 +++++----- lib/WB/QD.pm | 25 ++++++++++++++++++------- 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/bin/wanna-build b/bin/wanna-build index c953121..f9edb04 100755 --- a/bin/wanna-build +++ b/bin/wanna-build @@ -21,7 +21,8 @@ # use strict; use warnings; -use 5.010; +no warnings 'experimental'; +use v5.14;; die "wanna-build disabled" if -f "/org/wanna-build/NO-WANNA-BUILD"; @@ -41,6 +42,7 @@ die "mailprog binary $conf::mailprog does not exist or isn't executable\n" if !-x $conf::mailprog; package main; +use feature "switch"; use POSIX; use FileHandle; use File::Copy; @@ -343,7 +345,7 @@ $list_order ||= $yamlmap->{"list-order"}{'default'}; $api //= $yamlmap->{"api"}; $api //= 0; -if (isin($op_mode, qw) && defined @conf::admin_users && !isin( $real_user, @conf::admin_users) && !$simulate ) { +if (isin($op_mode, qw) && @conf::admin_users && !isin( $real_user, @conf::admin_users) && !$simulate ) { die "This operation is restricted to admin users"; } if (!isin($op_mode, qw)) { @@ -403,6 +405,8 @@ undef $distribution if $distribution eq 'any'; $$srcs->{$k} = $pkg; } } +# use Data::Dumper; +# print STDERR Dumper($srcs,$arch,$distribution); parse_all_v3($$srcs, {'arch' => $arch, 'suite' => $distribution, 'time' => $curr_date}); # The packages passed to edos-debcheck are normally the binaries available, # unless you've also a base suite the builder will take packages from. @@ -2140,6 +2144,10 @@ sub parse_all_v3 { SRCS: foreach my $name (keys %$srcs) { +# if ($name eq 'r-bioc-abarray') { +# use Data::Dumper; +# print STDERR Dumper($srcs->{$name}) +# } next if $name eq '_binary'; # state = installed, out-of-date, uncompiled, packages-arch-specific, overwritten-by-arch-all, arch-not-in-arch-list, arch-all-only diff --git a/etc/wanna-build.conf.local b/etc/wanna-build.conf.local index 7cea357..4899957 100644 --- a/etc/wanna-build.conf.local +++ b/etc/wanna-build.conf.local @@ -12,20 +12,20 @@ $basedir = "/org/wanna-build/db"; #$ignore_epochs = 0; # mail address of database maintainer (informed about a few things) -$db_maint = "wb-team\@buildd.debian.org"; +$db_maint = "don\@donarmstrong.com"; # mail address of not-for-us maintainer (informed about Not-For-Us state # changes) -$notforus_maint = "notforus\@buildd.debian.org"; +$notforus_maint = "don+notforus\@donarmstrong.com"; # mail address for logs of all state changes #$log_mail = "m68k-changes\@nocrew.org"; # where to send wanna-build statistics mails -$stat_mail = "wb-team\@buildd.debian.org"; +$stat_mail = "don+wbstats\@donarmstrong.com"; # mail domain under which the buildds can be reached -$buildd_domain = "buildd.debian.org"; +$buildd_domain = "int.donarmstrong.com"; # file to publish statistics over WWW (optional) #$web_stats = "/var/www/buildd/stats.txt"; @@ -51,7 +51,7 @@ $quinn_source = "/org/buildd.debian.org/web/quinn-diff/output"; # ftp.uni-erlangen.de is multi-section, buildd.debian.org not (yet) $quinn_source_multi_section = 0; -@admin_users = qw(wbadm); +@admin_users = qw(wbadm don); # don't remove this, Perl needs it: 1; diff --git a/lib/WB/QD.pm b/lib/WB/QD.pm index 83527bc..3487a67 100644 --- a/lib/WB/QD.pm +++ b/lib/WB/QD.pm @@ -49,6 +49,8 @@ sub readsourcebins { next unless $p->{'name'} and $p->{'version'}; foreach my $tarch (split(/\s+/, $p->{'arch'})) { $p->{'for-us'} = 1 if debarch_is($arch, $tarch); + # Arch: all hackery. + $p->{'for-us'} = 1 if $tarch eq 'all' and $arch eq 'amd64'; } # ignore if package already exists with higher version @@ -87,7 +89,8 @@ sub readsourcebins { #next if $pas->{$p->{'binary'}} && pasignore($pas->{$p->{'binary'}}, $arch); # only continue if it's arch-specific... - next if $p->{'arch'} eq 'all'; + # Arch: all hackery. + next if $p->{'arch'} eq 'all' and $arch ne 'amd64'; # annotate the source package if present, continue otherwise next unless $srcs->{$p->{'source'}}; @@ -107,6 +110,10 @@ sub readsourcebins { SRCS: for my $k (keys %$srcs) { +# if ($k eq 'r-bioc-abarray') { +# use Data::Dumper; +# print STDERR Dumper($srcs->{$k}) +# } if ($srcs->{$k}->{'installed'}) { $srcs->{$k}->{'status'} = 'installed'; delete $srcs->{$k}->{'installed'}; @@ -116,18 +123,22 @@ sub readsourcebins { $srcs->{$k}->{'status'} = 'uncompiled'; } delete $srcs->{$k}->{'compiled'}; - $srcs->{$k}->{'status'} = 'installed' if $srcs->{$k}->{'arch'} && $srcs->{$k}->{'arch'} eq 'all'; + # $srcs->{$k}->{'status'} = 'installed' if $srcs->{$k}->{'arch'} && $srcs->{$k}->{'arch'} eq 'all'; if (!$srcs->{$k}->{'for-us'} && $srcs->{$k}->{'status'} ne 'installed') { $srcs->{$k}->{'status'} = 'arch-not-in-arch-list'; } delete $srcs->{$k}->{'for-us'}; - if ($srcs->{$k}->{'arch'} eq 'all') { - $srcs->{$k}->{'status'} = 'arch-all-only'; - delete $srcs->{$k}->{'arch'}; - next; - } +# if ($k eq 'r-bioc-abarray') { +# use Data::Dumper; +# print STDERR Dumper($srcs->{$k}) +# } +# if ($srcs->{$k}->{'arch'} eq 'all') { +# $srcs->{$k}->{'status'} = 'arch-all-only'; +# delete $srcs->{$k}->{'arch'}; +# next; +# } delete $srcs->{$k}->{'arch'}; if (pasignore($pas->{'%'.$k}, $arch)) { -- 2.39.2