From 68ace2786dc26749014ea70a6ebb2b896b1f25d1 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 20 Jun 2015 19:13:07 +0100 Subject: [PATCH] Infra: Support not running out of working tree --- infra/dgit-repos-policy-debian | 4 +++- infra/dgit-repos-server | 3 ++- infra/dgit-ssh-dispatch | 5 ++++- tests/lib | 10 ++-------- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/infra/dgit-repos-policy-debian b/infra/dgit-repos-policy-debian index a770c55e..339081e9 100755 --- a/infra/dgit-repos-policy-debian +++ b/infra/dgit-repos-policy-debian @@ -86,7 +86,9 @@ our %deliberately; sub apiquery ($) { my ($subpath) = @_; local $/=undef; - my $cmd = "$dgitlive/dgit -d$distro \$DGIT_TEST_OPTS"; + my $dgit = "$dgitlive/dgit"; + $dgit = "dgit" if !stat_exists $dgit; + my $cmd = "$dgit -d$distro \$DGIT_TEST_OPTS"; $cmd .= " -".("D" x $debuglevel) if $debuglevel; $cmd .= " archive-api-query $subpath"; printdebug "apiquery $cmd\n"; diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server index b43d5745..50cba570 100755 --- a/infra/dgit-repos-server +++ b/infra/dgit-repos-server @@ -163,7 +163,8 @@ $SIG{__WARN__} = sub { die $_[0]; }; # appropriate lock. # # If policy hook wants to run dgit (or something else in the dgit -# package), it should use DGIT-LIVE-DIR/dgit (etc.) +# package), it should use DGIT-LIVE-DIR/dgit (etc.), or if that is +# ENOENT, use the installed version. use POSIX; diff --git a/infra/dgit-ssh-dispatch b/infra/dgit-ssh-dispatch index f5250555..6d4efbff 100755 --- a/infra/dgit-ssh-dispatch +++ b/infra/dgit-ssh-dispatch @@ -22,7 +22,7 @@ our $lre = $package_re; our $qre = '["'."']?"; # $dispatchdir/distro=DISTRO should contain -# dgit-live a clone of dgit +# dgit-live a clone of dgit (only if not using installed vsns) # diverts # repos/ } by virtue of # suites } dgit-repos-server's defaults relating to @@ -134,6 +134,7 @@ sub dispatch () { $ENV{'PERLLIB'} =~ s#^(?=.)#:#; $ENV{'PERLLIB'} =~ s#^# $ENV{DGIT_TEST_INTREE} // $dgitlive #e; my $s = "$dgitlive/infra/dgit-repos-server"; + $s = "dgit-repos-server" if !stat_exists $s; exec $s, $distro, $d, $authrune, qw(--ssh); die "exec $s: $!"; } elsif ($cmd eq 'upload-pack') { @@ -146,6 +147,8 @@ sub dispatch () { m#^${qre}git-upload-pack ${qre}/dgit/($lre)/(?:repos/)?_dgit-repos-server\.git${qre}$# ) { my $distro= $1; + # if running installed packages, source code should come + # some other way serve_up("$dispatchdir/distro=$1/dgit-live/.git"); } elsif (m#^${qre}git-upload-pack\s#) { die "unknown repo to serve ($_). use dgit, or for server source ". diff --git a/tests/lib b/tests/lib index 70ad0b18..22ae0ff5 100644 --- a/tests/lib +++ b/tests/lib @@ -481,16 +481,10 @@ t-drs () { drs_dispatch=$tmp/distro=test-dummy mkdir $drs_dispatch - if [ "x$DGIT_TEST_INTREE" = x ]; then - cat >&2 <