use warnings;
use 5.010;
+die "wanna-build disabled" if -f "/org/wanna-build/NO-WANNA-BUILD";
+
package conf;
use vars qw< $basedir $dbbase $transactlog $mailprog $buildd_domain >;
$privmode = 0;
$distribution = 'any';
}
+ $privmode = 1 if $distribution =~ /security/;
}
},
'order|O=s' => sub {
}
}
-$distribution ||= "sid";
-
my $schema_suffix = '';
-if ((isin( $op_mode, qw(list info distribution-architectures distribution-aliases)) && $distribution !~ /security/ && !$recorduser && !($privmode)) || $simulate) {
+if ((isin( $op_mode, qw(list info distribution-architectures distribution-aliases)) && !$recorduser && !$privmode) || $simulate) {
$dbh = DBI->connect("DBI:Pg:service=wanna-build") ||
die "FATAL: Cannot open database: $DBI::errstr\n";
$schema_suffix = '_public';
$distribution = $distribution_aliases{$distribution} if (isin($distribution, keys %distribution_aliases));
$op_mode ||= "set-building";
-undef $distribution if $distribution eq 'any';
if ($distribution) {
my @dists = split(/[, ]+/, $distribution);
foreach my $dist (@dists) {
die "Bad distribution '$distribution'\n"
- if !isin($dist, keys %distributions);
+ if !isin($dist, keys %distributions, "any");
}
}
-if (!isin ( $op_mode, qw(list) ) && ( !$distribution || $distribution =~ /[ ,]/)) {
+if (!isin ( $op_mode, qw(list) ) && ( ($distribution//"") =~ /[ ,]/)) {
die "multiple distributions are only allowed for list";
}
if ($verbose) {
my $version = '$Revision: db181a534e9d $ $Date: 2008/03/26 06:20:22 $ $Author: rmurray $';
$version =~ s/(^\$| \$ .*$)//g;
- print "wanna-build $version for $distribution on $arch\n";
+ print "wanna-build $version for ".($distribution//"sid")." on $arch\n";
}
if (!@ARGV && !isin( $op_mode, qw(list merge-quinn merge-partial-quinn import export
}
if (!isin($op_mode, qw<distribution-architectures distribution-aliases>)) {
die "need an architecture" unless $arch;
+ my $rows = $dbh->selectall_hashref('SELECT distribution as d from distribution_architectures where architecture=? and distribution=?', [qw<d>], undef, ($arch, $distribution//"sid")) if ($distribution//"") ne 'any';
+ $rows = $dbh->selectall_hashref('SELECT distribution as d from distribution_architectures where architecture=?', [qw<d>], undef, ($arch,)) unless $rows;
+ die "architecture ($arch) does not exist (at least not for ".($distribution//"sid").")" if !keys %$rows and $distribution//"sid" ne 'any';
+ die "architecture ($arch) does not exist" if !keys %$rows;
}
+my $suite = $distribution;
+$distribution ||='sid';
+undef $distribution if $distribution eq 'any';
+
SWITCH: foreach ($op_mode) {
/^set-(.+)/ && do {
add_packages( $1, @ARGV );
last SWITCH;
};
/^distribution-architectures/ && do {
- show_distribution_architectures();
+ show_distribution_architectures({'suite' => $suite});
last SWITCH;
};
/^distribution-aliases/ && do {
sub filterarch {
return "" unless $_[0];
- return Dpkg::Deps::parse($_[0], ("reduce_arch" => 1, "host_arch" => $_[1]))->dump();
+ return Dpkg::Deps::deps_parse($_[0], ("reduce_arch" => 1, "host_arch" => $_[1]))->output();
}
sub wb_edos_builddebcheck {
}
}
- print "calling: edos-debcheck $edosoptions < $sourcesfile ".join('', map {" '-base FILE' ".$_ } @$packagefiles)."\n";
+ print "calling: edos-debcheck $edosoptions < $sourcesfile ".join('', map {" -I ".$_ } @$packagefiles)."\n";
open(my $result_cmd, '-|',
- "edos-debcheck $edosoptions < $sourcesfile ".join('', map {" '-base FILE' ".$_ } @$packagefiles));
+ "edos-debcheck $edosoptions < $sourcesfile ".join('', map {" -I ".$_ } @$packagefiles));
my $explanation="";
my $result={};
}
sub show_distribution_architectures {
+ my $args = shift;
my $q = 'SELECT distribution, spacecat_all(architecture) AS architectures '.
'FROM distribution_architectures '.
'GROUP BY distribution';
my $rows = $dbh->selectall_hashref($q, 'distribution');
- foreach my $name (keys %$rows) {
+ if ($args->{suite}) {
+ print $rows->{$args->{'suite'}}->{'architectures'}."\n";
+ } else {
+ foreach my $name (keys %$rows) {
print $name.': '.$rows->{$name}->{'architectures'}."\n";
- }
+ }
+ }
}
sub show_distribution_aliases {