}
$state = $pkg->{'State'};
- if ($state eq "Dep-Wait") {
+ if ($state eq "BD-Uninstallable") {
if ($opt_override) {
- print "$name: Forcing source dependency list to be cleared\n";
+ print "$name: Forcing uninstallability mark to be removed. This is not permanent and might be reset with the next trigger run\n";
+
+ change_state( \$pkg, 'Needs-Build' );
+ delete $pkg->{'Builder'};
+ delete $pkg->{'Depends'};
+ log_ta( $pkg, "--give-back" );
+ $db{$name} = $pkg;
+ print "$name: given back\n" if $verbose;
+ return;
}
else {
- print "$name: waiting for source dependencies. Skipping\n",
+ print "$name: has uninstallable build-dependencies. Skipping\n",
" (use --override to clear dependency list and ",
"give back anyway)\n";
return;
}
}
- if ($state eq "BD-Uninstallable") {
+ elsif ($state eq "Dep-Wait") {
if ($opt_override) {
- print "$name: Forcing uninstallability mark to be removed\n";
+ print "$name: Forcing source dependency list to be cleared\n";
}
else {
- print "$name: has uninstallable build-dependencies. Skipping\n",
+ print "$name: waiting for source dependencies. Skipping\n",
" (use --override to clear dependency list and ",
"give back anyway)\n";
return;
"Skipping.\n";
return;
}
- change_state( \$pkg, 'Needs-Build' );
+ change_state( \$pkg, 'BD-Uninstallable' );
+ $pkg->{'BD-Problem'} = "Installability of build dependencies not tested yet";
delete $pkg->{'Builder'};
delete $pkg->{'Depends'};
log_ta( $pkg, "--give-back" );
return;
}
- change_state( \$pkg, 'Needs-Build' );
+ change_state( \$pkg, 'BD-Uninstallable' );
+ $pkg->{'BD-Problem'} = "Installability of build dependencies not tested yet";
delete $pkg->{'Builder'};
delete $pkg->{'Depends'};
$pkg->{'Binary-NMU-Version'} = $binNMUver;
my $val = $ui->{$key};
$val =~ s/\n*$//;
$val =~ s/^/ /mg;
- $val =~ s/^ $/ ./mg;
+ $val =~ s/^ +$/ ./mg;
print F "$key: $val\n";
}
print F "\n";
my $val = $pkg->{$key};
$val =~ s/\n*$//;
$val =~ s/^/ /mg;
- $val =~ s/^ $/ ./mg;
+ $val =~ s/^ +$/ ./mg;
print F "$key: $val\n";
}
print F "\n";
my $change =
(defined $interesting_packages{$key} and $pkg->{'State'} eq 'Needs-Build') ||
(not defined $interesting_packages{$key} and $pkg->{'State'} eq 'BD-Uninstallable');
+ my $problemchange = $interesting_packages{$key} ne $pkg->{'BD-Problem'};
if ($change) {
if (defined $interesting_packages{$key}) {
change_state( \$pkg, 'BD-Uninstallable' );
} else {
change_state( \$pkg, 'Needs-Build' );
}
+ }
+ if ($problemchange) {
+ if (defined $interesting_packages{$key}) {
+ $pkg->{'BD-Problem'} = $interesting_packages{$key};
+ }
+ }
+ if ($change) {
log_ta( $pkg, "--merge-all" );
- $db{$key} = $pkg;
print "edos-builddebchange changed state of ${key}_$pkg->{'Version'} to $pkg->{'State'}\n" if $verbose;
}
+ if ($change || $problemchange) {
+ $db{$key} = $pkg;
+ }
}
}
a new version number (source-version + "+b<num>")
--give-back: Mark a package as ready to build that is in state Building,
Built or Build-Attempted. To give back a package in state Failed, use
- --override
+ --override. This command will actually put the package in state
+ BD-Uninstallable, until the installability of its Build-Dependencies
+ were verified. This happens at each call of --merge-all, usually
+ every 15 minutes.
--merge-quinn: Merge quinn-diff output into database.
--merge-packages: Merge Packages files into database.
--pretend-avail: Pretend that given packages are available now and give
--export FILE: Export database to a ASCII file FILE
--lock-for PID: Locks the database for the process with this pid
--unlock-for PID: Unlocks the database for the process with this pid
- --act-on-behalf-of PID: Ignores the log (if it is held by this pid)
+ --act-on-behalf-of PID: Ignores the lock (if it is held by this pid)
--start-transaction: Creates a copy of the state of the database, for
use with --transactional. This overrides any previous uncommited
transaction. Should only be used after --lock-for