our (@debsign) = qw(debsign);
our $keyid;
+our $debug = 0;
open DEBUG, ">/dev/null" or die $!;
our %opts_opt_map = ('dget' => \@dget,
'debsign' => \@debsign);
our $remotename = 'dgit';
-our $ourdscfield = 'Vcs-Git-Master';
+our $ourdscfield = 'Vcs-Dgit-Master';
our $branchprefix = 'dgit';
sub lbranch () { return "$branchprefix/$suite"; }
}
sub runcmd {
- printcmd(\*DEBUG,"+",@_);
+ printcmd(\*DEBUG,"+",@_) if $debug>0;
$!=0; $?=0;
die "@_ $! $?" if system @_;
}
sub cmdoutput_errok {
die Dumper(\@_)." ?" if grep { !defined } @_;
- printcmd(\*DEBUG,"|",@_);
+ printcmd(\*DEBUG,"|",@_) if $debug>0;
open P, "-|", @_ or die $!;
my $d;
$!=0; $?=0;
our %defcfg = ('dgit.default.distro' => 'debian',
'dgit.default.username' => '',
+ 'dgit.default.archive-query-default-component' => 'main',
'dgit.default.ssh' => 'ssh',
'dgit-distro.debian.git-host' => 'git.debian.org',
'dgit-distro.debian.git-proto' => 'git+ssh://',
sub cfg {
foreach my $c (@_) {
- my $v = cmdoutput_errok(@git, qw(config --), $c);
+ my $v;
+ {
+ local ($debug) = $debug-1;
+ $v = cmdoutput_errok(@git, qw(config --), $c);
+ };
if ($?==0) {
chomp $v;
return $v;
my $url = $'; #';
die unless $proto eq 'madison';
$rmad ||= cmdoutput qw(rmadison -asource),"-s$suite","-u$url",$package;
- $rmad =~ m/^ \s*( [^ \t|]+ )\s* \|
+ $rmad =~ m{^ \s*( [^ \t|]+ )\s* \|
\s*( [^ \t|]+ )\s* \|
- \s*( [^ \t|]+ )\s* \|
- \s*( [^ \t|]+ )\s* /x or die "$rmad $?";
+ \s*( [^ \t|/]+ )(?:/([^ \t|/]+)) \s* \|
+ \s*( [^ \t|]+ )\s* }x or die "$rmad $?";
$1 eq $package or die "$rmad $package ?";
my $vsn = $2;
if ($suite ne $3) {
print "canonical suite name for $suite is $3\n";
$suite = $3;
}
- $4 eq 'source' or die "$rmad ?";
+ my $component;
+ if (defined $4) {
+ $component = $4;
+ } else {
+ $component = access_cfg('archive-query-default-component');
+ }
+ $5 eq 'source' or die "$rmad ?";
my $prefix = substr($package, 0, $package =~ m/^l/ ? 4 : 1);
- my $subpath = "/pool/main/$prefix/$package/${package}_$vsn.dsc";
+ my $subpath = "/pool/$component/$prefix/$package/${package}_$vsn.dsc";
return ($vsn,$subpath);
}
sub get_archive_dsc () {
my ($vsn,$subpath) = archive_query();
- # fixme madison does not show us the component
$dscurl = access_cfg('mirror').$subpath;
$dscdata = url_get($dscurl);
my $dscfh = new IO::File \$dscdata, '<' or die $!;
- print DEBUG Dumper($dscdata);
+ print DEBUG Dumper($dscdata) if $debug>1;
$dsc = Dpkg::Control::Hash->new(allow_pgp=>1);
$dsc->parse($dscfh, 'dsc') or die "parsing of $dscurl failed\n";
- print DEBUG Dumper($dsc);
+ print DEBUG Dumper($dsc) if $debug>1;
my $fmt = $dsc->{Format};
die "unsupported format $fmt, sorry\n" unless $format_ok{$fmt};
}
(access_cfg('ssh'),access_gituserhost(),
" set -e; cd ".access_cfg('git-path').";".
" if test -d $package.git; then echo 1; else echo 0; fi");
- print DEBUG ">$r<\n";
+ print DEBUG "got \`$r'\n";
die "$r $! $?" unless $r =~ m/^[01]$/;
return $r+0;
} else {
$dryrun=1;
} elsif (s/^-D/-/) {
open DEBUG, ">&STDERR" or die $!;
+ $debug++;
} elsif (s/^-c(.*=.*)//s) {
push @git, '-c', $1;
} elsif (s/^-C(.*)//s) {