chiark / gitweb /
changelog: start 9.14
[dgit.git] / debian / rules
index 9249f8889e26bda0159b9217ed7a1f5db728265d..4d1a760274e419a93444c3e98291881f28839ab9 100755 (executable)
@@ -3,7 +3,8 @@
 # dgit
 # Integration between git and Debian-style archives
 #
-# Copyright (C)2013-2016 Ian Jackson
+# Copyright (C)2013-2019 Ian Jackson
+# Copyright (C)2019      Sean Whitton
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -30,26 +31,64 @@ override_dh_gencontrol:
         v=$$(perl -ne 'print if s/^version:\s+//i' DEBIAN/control); \
         perl -i -pe "s/UNRELEASED/$$v/g if m/###substituted###/" usr/bin/dgit
 
+override_dh_auto_clean:
+       dh_auto_clean
+       make -C po clean
+
 globalperl=/usr/share/perl5
-infraperl=/usr/share/dgit/infra/perl5
 
-override_dh_auto_install:
+override_dh_auto_install: specpkg_install_gdp \
+ specpkg_install_gdr \
+ specpkg_install_infra
        make install prefix=/usr DESTDIR=debian/dgit
-       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.
+       make -C po install prefix=/usr DESTDIR=../debian/tmp \
+               SUPPRESS_PO_UPDATE=1 S=''
+       mv debian/dgit/usr/bin/git-playtree-setup debian/dgit/usr/share/dgit
+       make -C po4a install DESTDIR=../debian/tmp S=''
+
+override_dh_missing:
+       dh_missing --fail-missing
+
+specpkg_install_gdp: p=git-debpush
+
+specpkg_install_gdr: p=git-debrebase
+specpkg_install_gdr: pm=GDR
+
+specpkg_install_infra: p=dgit-infrastructure
+specpkg_install_infra: pm=Infra
+
+define specpkg_install_common
+       make install-$(tok) prefix=/usr DESTDIR=debian/$(p) perldir=$(specperl)
+endef
+
+specpkg_install_gdp: tok=gdp
+specpkg_install_gdp: specperl=/usr/share/dgit/gdp/perl5
+specpkg_install_gdp:
+       $(specpkg_install_common)
+       set -x; perl -i -pe 'next unless m/###substituted###/;' \
+ -e 's{^(git_playtree_setup)=.*}{$$1=/usr/share/$p/git-playtree-setup};' \
+               debian/$(p)/usr/bin/*
+
+specpkg_install_%: tok=$*
+specpkg_install_%: specperl=/usr/share/dgit/$(tok)/perl5
+specpkg_install_%:
+       $(specpkg_install_common)
+#      # Most of the Perl modules in this package live in
+#      # $(specperl).  The exception is Debian::Dgit::Infra, which
+#      # lives in $(globalperl) and adds $(specperl) to @INC.
+#      # We also abuse this for git-playtree-setup.  In .debs, this
+#      # goes in the per-.deb @INC dir.  See Dgit.pm::playtree_setup.
        set -ex; \
-        base=debian/dgit-infrastructure; \
-        mod=Debian/Dgit/Infra.pm; \
-        src=$${base}$(infraperl)/$${mod}; \
+        base=debian/$(p); \
+        mod=Debian/Dgit/$(pm).pm; \
+        src=$${base}$(specperl)/$${mod}; \
         dst=$${base}$(globalperl)/$${mod}; \
         mkdir -p $${dst%/*}; \
         mv -f $$src $$dst; \
+        install -m 755 git-playtree-setup $${base}$(specperl); \
         perl -i -p -e 'next unless m/###substituted###/;' \
                -e 'next unless s/^# (?=unshift \@INC,)//;' \
-               -e 'die unless s{q\{\S+\}}{q{$(infraperl)}};' \
+               -e 'die unless s{q\{\S+\}}{q{$(specperl)}};' \
                 $$dst
 
 debian/tests/control: tests/enumerate-tests debian/tests/control.in