use strict;
use warnings;
-# push @INC, q{usr/share/dgit/infra/perl5}; ###substituted###
+# Scripts and programs which are going to `use Debian::Dgit' but which
+# live in dgit-infrastructure (ie are installed with install-infra)
+# should `use Debian::Dgit::Infra' first. All this module does is
+# adjust @INC so that the script gets the version of the script from
+# the dgit-infrastructure package (which is installed in a different
+# location and may be a different version).
+
+# unshift @INC, q{/usr/share/dgit/infra/perl5}; ###substituted###
1;
dgit-repos-policy-debian dgit-repos-admin-debian \
dgit-repos-policy-trusting dgit-mirror-rsync
INFRA_EXAMPLES=get-dm-txt ssh-wrap drs-cron-wrap get-suites
-INFRA_PERLMODULES=Debian/Dgit/Policy/Debian.pm
+INFRA_PERLMODULES= \
+ Debian/Dgit.pm \
+ Debian/Dgit/Infra.pm \
+ Debian/Dgit/Policy/Debian.pm
all:
* Better error handling in dgit-repos-policy-debian.
* dgit-repos-policy-debian.: fix git-cat-file-handling with multiple
taints in db (!).
+ * dgit-infrastructure has, and uses, its own copies of the perl modules.
+ This avoids introducing a versioned dependency between dgit and
+ dgit-infrastructure (and also makes it easier to test cross-version
+ compatibility).
Documentation:
* Document the dgit-distro.DISTRO.quilt-mode config setting.
dgit clone and dgit fetch construct git commits from uploads.
Package: dgit-infrastructure
-Depends: ${misc:Depends}, perl, git-core, dgit, gpgv, chiark-utils-bin,
+Depends: ${misc:Depends}, perl, git-core, gpgv, chiark-utils-bin,
libjson-perl, libdigest-sha-perl, libdbd-sqlite3-perl, sqlite3
+Recommends: dgit
Architecture: all
Priority: extra
Description: dgit server backend infrastructure
This package contains tools which are useful for setting up a dgit
- git repository server. You probably want dgit, the client package.
+ git repository server. You probably want dgit, the client package,
+ instead of dgit-infrastructure.
v=$$(perl -ne 'print if s/^version:\s+//i' DEBIAN/control); \
perl -i -pe "s/UNRELEASED/$$v/g if m/###substituted###/" usr/bin/dgit
+globalperl=/usr/share/perl5
+infraperl=/usr/share/dgit/infra/perl5
+
override_dh_auto_install:
make install prefix=/usr DESTDIR=debian/dgit
- make install-infra prefix=/usr DESTDIR=debian/dgit-infrastructure
+ make install-infra prefix=/usr DESTDIR=debian/dgit-infrastructure \
+ perldir=$(infraperl)
+# # Most of the Perl modules in dgit-infrastructure live in
+# # $(infraperl). The exception is Debian::Dgit::Infra, which
+# # lives in $(globalperl) and adds $(infraperl) to @INC.
+ set -ex; \
+ base=debian/dgit-infrastructure; \
+ mod=Debian/Dgit/Infra.pm; \
+ src=$${base}$(infraperl)/$${mod}; \
+ dst=$${base}$(globalperl)/$${mod}; \
+ mkdir -p $${dst%/*}; \
+ mv -f $$src $$dst; \
+ perl -i -p -e 'next unless m/###substituted###/;' \
+ -e 'next unless s/^# (?=unshift \@INC,)//;' \
+ -e 'die unless s{q\{\S+\}}{q{$(infraperl)}};' \
+ $$dst
debian/tests/control: tests/enumerate-tests debian/tests/control.in
$< gencontrol >$@.new && mv -f $@.new $@