summaryrefslogtreecommitdiff
path: root/dgit
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2014-01-19 01:58:32 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2014-01-19 01:58:32 +0000
commitff7144ab274902514897ab18a76a37aced50b047 (patch)
treed695a0e041b859fc5f3b019112c3587618caa4ff /dgit
parente1babed90f59ff09a97ff75793488e0e7b874252 (diff)
Be able to clone or fetch from Debian backports suites (which are a bit like main Debian suites but also a bit not like them).
Diffstat (limited to 'dgit')
-rwxr-xr-xdgit15
1 files changed, 14 insertions, 1 deletions
diff --git a/dgit b/dgit
index bb1d217..a5736e1 100755
--- a/dgit
+++ b/dgit
@@ -457,6 +457,8 @@ our %defcfg = ('dgit.default.distro' => 'debian',
'dgit-distro.debian.sshpsql-dbname' => 'service=projectb',
'dgit-distro.debian.upload-host' => 'ftp-master', # for dput
'dgit-distro.debian.mirror' => 'http://ftp.debian.org/debian/',
+ 'dgit-distro.debian.backports-quirk' => '%-backports*',
+ 'dgit-distro.debian-backports.mirror' => 'http://backports.debian.org/debian-backports/',
'dgit-distro.test-dummy.ssh' => "$td/ssh",
'dgit-distro.test-dummy.username' => "alice",
'dgit-distro.test-dummy.git-check' => "ssh-cmd",
@@ -497,6 +499,17 @@ sub access_basedistro () {
sub access_quirk () {
# returns (quirk name, distro to use instead, quirk-specific info)
my $basedistro = access_basedistro();
+ my $backports_quirk = cfg("dgit-distro.$basedistro.backports-quirk",
+ 'RETURN-UNDEF');
+ if (defined $backports_quirk) {
+ my $re = $backports_quirk;
+ $re =~ s/[^-0-9a-z_\%*]/\\$&/ig;
+ $re =~ s/\*/.*/g;
+ $re =~ s/\%/([-0-9a-z_]+)/ or badcfg "backports-quirk needs \%";
+ if ($isuite =~ m/^$re$/) {
+ return ('backports',"$basedistro-backports",$1);
+ }
+ }
return ('none',$basedistro);
}
@@ -614,7 +627,7 @@ sub archive_query ($) {
my ($method) = @_;
my $query = access_cfg('archive-query','RETURN-UNDEF');
if (!defined $query) {
- my $distro = access_distro();
+ my $distro = access_basedistro();
if ($distro eq 'debian') {
$query = "sshpsql:".
access_someuserhost('sshpsql').':'.