"merge-sources" => { mode => "merge-sources" },
"pretend-avail" => { short => "p", mode => "pretend-avail" },
"merge-all" => { mode => "merge-all" },
- "merge-all-overlay" => { mode => "merge-all-overlay" },
+ "merge-all-secondary" => { mode => "merge-all-secondary" },
info => { short => "i", mode => "info" },
'binNMU' => { mode => 'set-binary-nmu', arg => \$binNMUver,
code => sub { die "Invalid binNMU version: $binNMUver\n"
if (defined @conf::admin_users and
!isin( $real_user, @conf::admin_users));
lock_table();
- parse_packages();
+ parse_packages(0);
last SWITCH;
};
/^merge-sources/ && do {
lock_table();
my @ARGS = @ARGV;
@ARGV = ( $ARGS[0] );
- my $pkgs = parse_packages();
+ my $pkgs = parse_packages(0);
@ARGV = ( $ARGS[1] );
parse_quinn_diff(0);
@ARGV = ( $ARGS[2] );
call_edos_depcheck( $ARGS[0], $srcs );
last SWITCH;
};
- /^merge-all-overlay/ && do {
+ /^merge-all-secondary/ && do {
die "This operation is restricted to admin users\n"
if (defined @conf::admin_users and
!isin( $real_user, @conf::admin_users));
+ # This is in case the chroot has multiple unrelated
+ # dist, for instance unstable and experimental.
+ # This is not for stable and proposed-updates.
+ # The second packages file contains a combination
+ # of all Packages files known to the buildd, the
+ # first only for the current dist.
lock_table();
my @ARGS = @ARGV;
@ARGV = ( $ARGS[0] );
- my $pkgs = parse_packages();
+ my $pkgs = parse_packages(0);
+ @ARGV = ( $ARGS[3] );
+ my $pkgs = parse_packages(1);
@ARGV = ( $ARGS[1] );
parse_quinn_diff(0);
@ARGV = ( $ARGS[2] );
# This function looks through a Packages file and sets the state of
# packages to 'Installed'
sub parse_packages {
+ my $depwait_only = shift;
my $installed;
my $pkgs = get_all_source_info();
next if (defined ($installed->{$name}) and $installed->{$name}{'version'} ne "" and
version_lesseq( $version, $installed->{$name}{'version'} ));
$installed->{$name}{'version'} = $version;
+ next if $depwait_only;
$installed->{$name}{'depends'} = $depends;
$installed->{$name}{'all'} = 1 if $architecture eq "all";
undef $installed->{$name}{'Provider'};