From 9ef340664f076600ac35566d6a91911903ea3d0e Mon Sep 17 00:00:00 2001 From: Andreas Barth Date: Sun, 6 Jun 2010 13:21:47 +0000 Subject: [PATCH] wanna-build/merge-v3: allow to specify source packages which are considered to be installed/related unless they're (also) in the real source packages triggers: do so for overlay suites (so that we could schedule binNMUs in testing) and for secondary suites (so that we could binNMU unstable packages in experimental; please note that this won't be useful before we get the binNU-build-dependency code). --- bin/wanna-build | 19 +++++++++++++++---- triggers/common | 4 ++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/bin/wanna-build b/bin/wanna-build index 02adc05..99bd7a2 100755 --- a/bin/wanna-build +++ b/bin/wanna-build @@ -497,7 +497,7 @@ sub process { /^merge-v3/ && do { die "This operation is restricted to admin users\n" if (defined @conf::admin_users and !isin( $real_user, @conf::admin_users) and !$simulate); - # call with installed-packages+ . installed-sources+ [ . available-for-build-packages+ ] + # call with installed-packages+ . installed-sources+ [ . available-for-build-packages* [ . consider-as-installed-source* ] ] # in case available-for-build-packages is not specified, installed-packages are used lock_table() unless $simulate; my $replacemap = { '%ARCH%' => $arch, '%SUITE%' => $distribution }; @@ -505,8 +505,16 @@ sub process { my @ipkgs = &parse_argv( \@ARGV, '.'); my @isrcs = &parse_argv( \@ARGV, '.'); my @bpkgs = &parse_argv( \@ARGV, '.'); + my @psrcs = &parse_argv( \@ARGV, '.'); use WB::QD; my $srcs = WB::QD::readsourcebins($arch, $Pas, \@isrcs, \@ipkgs); + my $psrcs = WB::QD::readsourcebins($arch, $Pas, \@psrcs, []); + foreach my $k (keys %$$psrcs) { + next if $$srcs->{$k}; + my $pkg = $$psrcs->{$k}; + $pkg->{'status'} = 'related'; + $$srcs->{$k} = $pkg; + } parse_all_v3($$srcs); @bpkgs = @ipkgs unless @bpkgs; call_edos_depcheck( {'arch' => $arch, 'pkgs' => @bpkgs, 'srcs' => $$srcs, 'depwait' => 1 }); @@ -2935,10 +2943,10 @@ sub parse_all_v3() { $pkg->{'package'} = $name; } - if ($pkgs->{'status'} eq 'installed' && $pkg->{'binary_nmu_version'} && $pkgs->{'binnmu'} < $pkg->{'binary_nmu_version'}) { + if (isin($pkgs->{'status'}, qw (installed, related)) && $pkg->{'binary_nmu_version'} && $pkgs->{'binnmu'} < $pkg->{'binary_nmu_version'}) { $pkgs->{'status'} = 'out-of-date'; } - if ($pkgs->{'status'} eq 'installed') { + if (isin($pkgs->{'status'}, qw (installed, related))) { if ($pkg->{'state'} ne 'Installed') { change_state( \$pkg, 'Installed'); $pkg->{'version'} = $pkgs->{'version'}; @@ -2946,7 +2954,10 @@ sub parse_all_v3() { $pkg->{'binary_nmu_version'} = $pkgs->{'binnmu'}; $pkg->{'section'} = $pkgs->{'section'}; $pkg->{'priority'} = $pkgs->{'priority'}; - print "merge-v3: set $name ($arch) to installed\n" if $verbose || $simulate; + if (isin($pkgs->{'status'}, qw (related))) { + $pkg->{'notes'} = "related"; + } + print "merge-v3: set $name ($arch) to installed/".$pkg->{'notes'}."\n" if $verbose || $simulate; log_ta( $pkg, "--merge-v3: installed" ) unless $simulate; update_source_info($pkg) unless $simulate; } diff --git a/triggers/common b/triggers/common index ffeb752..94a7eb6 100644 --- a/triggers/common +++ b/triggers/common @@ -72,12 +72,12 @@ do_wb_merge_all() { then #wanna-build -v --merge-all --arch=$ARCH --dist=$WB_SUITE Packages.$SUITE.$ARCH-all quinn-$SUITE.$ARCH Sources.$SUITE-all # this currently makes the packages unknown to wanna-build. Perhaps we should keep them in pseudo-installed or so. Hm. - wanna-build -v --Pas ${PAS_FILE} --merge-v3 --arch=$ARCH --dist=$WB_SUITE Packages.$SUITE.$ARCH . Sources.$SUITE . Packages.$SUITE.$ARCH-all + wanna-build -v --Pas ${PAS_FILE} --merge-v3 --arch=$ARCH --dist=$WB_SUITE Packages.$SUITE.$ARCH . Sources.$SUITE . Packages.$SUITE.$ARCH-all . Sources.$SUITE-all fi if [ "$4" = "secondary" ] then #wanna-build -v --merge-all-secondary --arch=$ARCH --dist=$WB_SUITE Packages.$SUITE.$ARCH quinn-$SUITE.$ARCH Sources.$SUITE Packages.$SUITE.$ARCH-all - wanna-build -v --Pas ${PAS_FILE} --merge-v3 --arch=$ARCH --dist=$WB_SUITE Packages.$SUITE.$ARCH . Sources.$SUITE . Packages.$SUITE.$ARCH-all + wanna-build -v --Pas ${PAS_FILE} --merge-v3 --arch=$ARCH --dist=$WB_SUITE Packages.$SUITE.$ARCH . Sources.$SUITE . Packages.$SUITE.$ARCH-all . Sources.$SUITE-all fi echo "do_wb_merge_all $SUITE/$ARCH done" } -- 2.39.2