$dbbase ||= "build-db";
$transactlog ||= "transactions.log";
$mailprog ||= "/usr/sbin/sendmail";
-require "/etc/wanna-build.conf";
+require "/org/wanna-build/etc/wanna-build.conf";
die "$conf::basedir is not a directory\n" if ! -d $conf::basedir;
die "dbbase is empty\n" if ! $dbbase;
die "transactlog is empty\n" if ! $transactlog;
use FileHandle;
use File::Copy;
use DBI;
+use lib '/org/wanna-build/bin';
use WannaBuild;
our ($verbose, $mail_logs, $list_order, $list_state,
}
my $schema_suffix = '';
-# TODO: Base this on something else, like an option that is passed.
-if ($real_user eq 'nobody') {
+if (isin( $op_mode, qw(list info)) && $distribution !~ /security/) {
$dbh = DBI->connect("DBI:Pg:service=wanna-build") ||
die "FATAL: Cannot open database: $DBI::errstr\n";
$schema_suffix = '_public';
}
}
if (defined ($pkg->{'builder'}) && $user ne $pkg->{'builder'} &&
- !($pkg->{'builder'} =~ /^(\w+)-\w+/ && $1 eq $user)) {
+ !($pkg->{'builder'} =~ /^(\w+)-\w+/ && $1 eq $user) &&
+ !$opt_override) {
print "$name: not taken by you, but by ".
"$pkg->{'builder'}. Skipping.\n";
return;
foreach $dist (@dists) {
my $pname = "$name" . ($info_all_dists ? "($dist)" : "");
- $pkg = get_source_info($name);
+ $pkg = get_readonly_source_info($name);
if (!defined( $pkg )) {
print "$pname: not registered\n";
next;
chomp( $val );
$val = "\n$val" if isin( $key, qw(Failed Old-Failed));
$val =~ s/\n/\n /g;
- printf " %-20s: %s\n", $key, $val;
+ my $print_key = $key;
+ $print_key = 'Package' if ($key eq 'package');
+ $print_key = 'Version' if ($key eq 'version');
+ $print_key = 'Builder' if ($key eq 'builder');
+ $print_key = 'State' if ($key eq 'state');
+ $print_key = 'Section' if ($key eq 'section');
+ $print_key = 'Priority' if ($key eq 'priority');
+ $print_key = 'Installed-Version' if ($key eq 'installed_version');
+ $print_key = 'Previous-State' if ($key eq 'previous_state');
+ $print_key = 'State-Change' if ($key eq 'state_change');
+ printf " %-20s: %s\n", $print_key, $val;
}
foreach $key (sort keys %$pkg) {
next if isin( $key, @firstkeys );
my $val = $pkg->{$key};
+ next if !defined($val);
chomp( $val );
$val = "\n$val" if isin( $key, qw(Failed Old-Failed));
$val =~ s/\n/\n /g;
- printf " %-20s: %s\n", $key, $val;
+ my $print_key = $key;
+ $print_key = 'BD-Problem' if ($key eq 'bd_problem');
+ $print_key = 'Binary-NMU-Changelog' if ($key eq 'binary_nmu_changelog');
+ $print_key = 'Binary-NMU-Version' if ($key eq 'binary_nmu_version');
+ $print_key = 'BuildPri' if ($key eq 'buildpri');
+ $print_key = 'Depends' if ($key eq 'depends');
+ $print_key = 'Failed' if ($key eq 'failed');
+ $print_key = 'Failed-Category' if ($key eq 'failed_category');
+ $print_key = 'Notes' if ($key eq 'notes');
+ $print_key = 'Distribution' if ($key eq 'distribution');
+ $print_key = 'Old-Failed' if ($key eq 'old_failed');
+ $print_key = 'PermBuildPri' if ($key eq 'permbuildpri');
+ $print_key = 'Rel' if ($key eq 'rel');
+ printf " %-20s: %s\n", $print_key, $val;
}
}
}
Usage: $prgname <options...> <package_version...>
Options:
-v, --verbose: Verbose execution.
+ -A arch: Architecture this operation is for.
--take: Take package for building [default operation]
-f, --failed: Record in database that a build failed due to
deficiencies in the package (that aren't fixable without a new
return '"' . $arch . $schema_suffix . '".users';
}
-sub get_source_info {
+sub get_readonly_source_info {
my $name = shift;
my $pkg = $dbh->selectrow_hashref('SELECT * FROM ' .
table_name() . ' WHERE package = ? AND distribution = ?',
return $pkg;
}
+sub get_source_info {
+ my $name = shift;
+ my $pkg = $dbh->selectrow_hashref('SELECT * FROM ' .
+ table_name() . ' WHERE package = ? AND distribution = ?' .
+ 'FOR UPDATE',
+ undef, $name, $distribution);
+ return $pkg;
+}
+
sub get_all_source_info {
my $db = $dbh->selectall_hashref('SELECT * FROM ' . table_name() .
' WHERE distribution = ?',