Import Debian changes 4.89-2+deb9u3~bpo8+1
[hcoop/debian/exim4.git] / debian / rules
index 582ed0f..8feb3cd 100755 (executable)
@@ -70,7 +70,6 @@ endif
 ifeq ($(buildbasepackages),yes)
 basedaemonpackages=exim4-daemon-light
 combinedadbgpackage=exim4-base eximon4
-combinedidbgpackage=exim4-config exim4
 exim4dbg=exim4-dbg
 dhstripparm=--dbg-package=$(exim4dbg)
 exim4dev=exim4-dev
@@ -78,14 +77,11 @@ extraadbgpackage=$(basedaemonpackages) $(extradaemonpackages)
 else
 basedaemonpackages=
 combinedadbgpackage=
-combinedidbgpackage=
 exim4dbg=
 dhstripparm=
 exim4dev=
 extraadbgpackage=$(extradaemonpackages)
 endif
-#DEBUGOUT:=$(shell echo >&2 buildbasepackages $(buildbasepackages))
-#DEBUGOUT:=$(shell echo >&2 extradaemonpackages $(extradaemonpackages))
 
 # If you want to build with OpenSSL instead of GnuTLS, uncomment this
 # OPENSSL:=1
@@ -98,7 +94,6 @@ buildpackages=$(combinedadbgpackage) $(extraadbgpackage) $(addsuffix -dbg,$(extr
 # generate -pexim4-base -peximon4 ... commandline for debhelper
 dhbuildpackages=$(addprefix -p,$(buildpackages))
 dhcombinedadbgpackage=$(addprefix -p,$(combinedadbgpackage))
-dhcombinedidbgpackage=$(addprefix -p,$(combinedidbgpackage))
 
 # exim4-daemon-heavy --> b-exim4-daemon-heavy/build-Linux-x86_64/exim
 daemonbinaries=$(addprefix b-,$(addsuffix /build-$(buildname)/exim,$(extradaemonpackages)))
@@ -109,7 +104,20 @@ BDIRS=$(addprefix b-,$(extradaemonpackages) $(basedaemonpackages))
 # get upstream-version from debian/changelog, i.e. anything until the first -
 DEBVERSION := $(shell dpkg-parsechangelog | sed -n '/^Version: /s/^Version: //p')
 UPSTREAMVERSION := $(shell echo $(DEBVERSION) | sed -n 's/\(.\+\)-[^-]\+/\1/p')
-MTACONFLICTS := $(shell cat $(DEBIAN)/mtalist)
+DEBTIME := $(shell dpkg-parsechangelog --show-field Date)
+REPBUILDDATE := \
+       $(shell env LC_ALL=C TZ=UTC date --date="$(DEBTIME)" '+%b %e %Y')
+REPBUILDTIME := \
+       $(shell env LC_ALL=C TZ=UTC date --date="$(DEBTIME)" '+%H:%M:%S')
+
+PROVIDE_DEFAULT_MTA := $(shell if dpkg-vendor --is Ubuntu || \
+       dpkg-vendor --derives-from Ubuntu ; then : ; else \
+       echo "default-mta" ; fi)
+# for reproducible build. If set exim would use $TZ as default value for
+# TIMEZONE_DEFAULT
+undefine TZ
+unexport TZ
+
 
 # set up build directory b-exim4-daemon-heavy/
 $(addsuffix /Makefile,$(BDIRS)): %/Makefile:
@@ -119,6 +127,10 @@ $(addsuffix /Makefile,$(BDIRS)): %/Makefile:
                -name 'b-*' -o -print0 | \
                xargs --no-run-if-empty --null \
                cp -a --target-directory=$*
+       printf '#define REPBUILDDATE "$(REPBUILDDATE)"\n' \
+               > $*/src/repbuildtime.h && \
+               printf '#define REPBUILDTIME "$(REPBUILDTIME)"\n' \
+               >> $*/src/repbuildtime.h
 
 
 unpack-configs: unpack-configs-stamp
@@ -130,11 +142,12 @@ unpack-configs-stamp: src/EDITME exim_monitor/EDITME
 ifdef OPENSSL
        patch EDITME.exim4-light $(DEBIAN)/EDITME.openssl.exim4-light.diff
 endif
-       -for editme in $(DEBIAN)/EDITME.exim4-*.diff; do \
+       for editme in $(DEBIAN)/EDITME.exim4-*.diff; do \
          if [ "$$editme" != "$(DEBIAN)/EDITME.exim4-light.diff" ]; then \
            TARGETNAME=`basename $$editme .diff`; \
            echo patch -o $$TARGETNAME EDITME.exim4-light $$editme; \
-           patch -o $$TARGETNAME EDITME.exim4-light $$editme; \
+           patch -o $$TARGETNAME EDITME.exim4-light $$editme || \
+           exit $$? ;\
          fi; \
        done
        touch unpack-configs-stamp
@@ -176,9 +189,6 @@ configure: configure-stamp
 configure-stamp: $(addsuffix /Makefile,$(BDIRS)) unpack-configs-stamp
        dh_testdir
        # Add here commands to configure the package.
-       # We currently do not want to build depend on debhelper 7.2.3 just to
-       # keep it from installing the wrong upstream changelog. 490937
-       rm -fv CHANGES
        touch $@ 
 
 # Build binaries for the base package, the eximon4 package, and the
@@ -212,15 +222,9 @@ b-exim4-daemon-custom/build-$(buildname)/exim: b-exim4-daemon-custom/Makefile co
        cd $(<D) && $(MAKE) FULLECHO=''
 
 build-indep: build-indep-stamp
-build-indep-stamp:
+build-indep-stamp: debian/README.Debian
        dh_testdir
-
-       # Add here command to compile/build the arch indep package.
-       # It's ok not to do anything here, if you don't need to build
-       #  anything for this package.
-       #/usr/bin/docbook-to-man $(DEBIAN)/exim.sgml > exim.1
-
-       touch build-indep-stamp
+       touch $@
 
 build-arch: build-arch-stamp test-stamp
 
@@ -232,7 +236,7 @@ endif
        dh_testdir
        # Which version of Berkeley DB are we building against?
        printf '#include <db.h>\ninstdbversionis DB_VERSION_MAJOR DB_VERSION_MINOR\n' | \
-               cpp | grep instdbversionis |\
+               cpp -P | grep instdbversionis |\
                sed -e 's/[[:space:]]*instdbversionis[[:space:]]//' \
                -e 's/[[:space:]][[:space:]]*/./' \
                -e 's_^_s/^BDBVERSION=.*/BDBVERSION=_' \
@@ -289,12 +293,9 @@ cleanfiles:
        #pwd
        chmod 755 $(DEBIAN)/exim-gencert \
                $(DEBIAN)/lynx-dump-postprocess $(DEBIAN)/script \
-               $(DEBIAN)/exim-adduser
+               $(DEBIAN)/exim-adduser $(DEBIAN)/exim4_refresh_gnutls-params
        dh_clean
        rm -rf $(BDIRS)
-       # fix broken (0600) permissions in original tarball
-       #find OS doc scripts exim_monitor src util -perm -044 -or -print0 |\
-       #       xargs -0r chmod -c og+r
 
 installbase-stamp: b-exim4-daemon-light/build-$(buildname)/exim debian/README.Debian debian/README.Debian.html
        dh_testdir
@@ -361,16 +362,13 @@ installbase-stamp: b-exim4-daemon-light/build-$(buildname)/exim debian/README.De
                { cd $(DEBIAN)/exim4-config/etc/exim4/conf.d/ && \
                tar xf - ; }
 
-       # ship a copy in examples
-       # install -m644 $(DEBIAN)/debconf/exim4.conf.template $(DEBIAN)/exim4-config/usr/share/doc/exim4-config/examples/exim4.conf.template.debconf
        install -m644 $(DEBIAN)/email-addresses $(DEBIAN)/exim4-config/etc/
        install -m640 -oroot -groot $(DEBIAN)/passwd.client \
                $(DEBIAN)/exim4-config/etc/exim4/
        chmod 755 $(DEBIAN)/debconf/update-exim4.conf.template
        env CONFDIR=$(DEBIAN)/debconf \
                $(DEBIAN)/debconf/update-exim4.conf.template --nobackup --run
-#      dh_movefiles
-       touch installbase-stamp
+       touch $@
 
 
 # This dependency expands to
@@ -382,57 +380,65 @@ $(debiandaemonbinaries): $(DEBIAN)/%/usr/sbin/exim4: b-%/build-$(buildname)/exim
        install -m4755 -oroot -groot $< $@
 
 
+ifeq ($(buildbasepackages),yes)
+install=installbase-stamp $(debiandaemonbinaries)
+else
+install=$(debiandaemonbinaries)
+endif
+
+override_dh_installchangelogs:
+       dh_installchangelogs -pexim4-base doc/ChangeLog
+       dh_installchangelogs --no-package=exim4-base \
+               -XCHANGES -Xdoc/ChangeLog
+
+override_dh_installppp:
+       dh_installppp --name=exim4
+
+override_dh_strip-arch:
+       dh_strip $(dhcombinedadbgpackage) $(dhstripparm)
+       for pkg in $(extraadbgpackage); do \
+         dh_strip -p$$pkg --dbg-package=$${pkg}-dbg; \
+       done
+
+override_dh_fixperms:
+       dh_fixperms -X/etc/exim4/passwd.client -Xusr/sbin/exim4
+
+override_dh_gencontrol:
+       dh_gencontrol -- \
+               -VUpstream-Version=$(UPSTREAMVERSION) \
+               -VMTA-Conflicts="$(shell cat $(DEBIAN)/mtalist)" \
+               -Vdist:Provides:exim4-daemon-light="$(PROVIDE_DEFAULT_MTA)"
+
+override_dh_installlogrotate:
+       dh_installlogrotate
+       dh_installlogrotate --name=exim4-paniclog
+
+override_dh_installinit:
+       dh_installinit --noscripts --name=exim4
+
+override_dh_install:
+       # install config.h from daemon package, but not from exim4-daemon-light
+       dh_install -p exim4-dev \
+               $(shell ls -1 b-exim4-daemon-*/build-$(buildname)/config.h | grep -v ^b-exim4-daemon-light/) \
+               usr/include/exim4
+       dh_install
+
+override_dh_link:
+       rm -rf debian/exim4/usr/share/doc/exim4
+       dh_link
+
+override_dh_auto_install:
+       # disabled
+
 # Build architecture-independent files here.
 # this is just exim4-config and exim4.
 binary-indep: build $(install)
 ifeq ($(buildbasepackages),yes)
-       dh_testdir -i
-       dh_testroot -i
-       # upstream changelog is only in exim4-base
-       dh_link -i
-       dh_installchangelogs -i -XCHANGES
-       dh_installdocs -i
-       dh_installexamples -i
-       #dh_installmenu -i
-       dh_installdebconf -i
-       dh_installlogrotate -i
-#      dh_installemacsen -i
-       #dh_installpam -i
-       #dh_installmime -i
-#      dh_installinit -i
-       dh_installcron -i
-#      dh_installinfo -i
-#      dh_undocumented -i
-       dh_installppp -i --name=exim4
-       dh_installman -i
-       dh_install -i
-       dh_lintian -i
-       dh_strip $(dhcombinedidbgpackage) $(dhstripparm)
-       #for pkg in $(extraidbgpackage); do \
-       #  dh_strip -p$$pkg --dbg-package=$${pkg}-dbg; \
-       #done
-       dh_compress -i
-       dh_fixperms -i -X/etc/exim4/passwd.client
-#      dh_makeshlibs -i
-       dh_installdeb -i
-#      dh_perl -i
-       dh_shlibdeps -i
-       dh_gencontrol -i -- -VUpstream-Version=$(UPSTREAMVERSION) \
-               -VMTA-Conflicts="$(MTACONFLICTS)"
-       dh_md5sums -i
-       dh_builddeb -i
+       dh binary-indep
 endif
 
 # Build architecture-dependent files here.
-ifeq ($(buildbasepackages),yes)
-install=installbase-stamp $(debiandaemonbinaries)
-else
-install=$(debiandaemonbinaries)
-endif
-
 binary-arch: build $(install)
-       dh_testdir $(dhbuildpackages)
-       dh_testroot $(dhbuildpackages)
        # symlink identical maintainerscripts
        @for i in $(extradaemonpackages) ; do \
                ln -sfv exim4-daemon-light.prerm \
@@ -440,50 +446,7 @@ binary-arch: build $(install)
                ln -sfv exim4-daemon-light.postinst \
                        "$(DEBIAN)/$$i.postinst" ; \
        done
-       # upstream changelog is only in exim4-base, the other packages include
-       # a symlink
-       dh_installchangelogs -pexim4-base doc/ChangeLog
-       # remove "-pexim4-base" from "-pexim4-base -pexim4-daemon-light ..."
-       dh_installchangelogs $(subst -pexim4-base ,,$(dhbuildpackages)) \
-               -XCHANGES
-       dh_installdocs $(dhbuildpackages)
-       dh_installexamples $(dhbuildpackages)
-       dh_installmenu $(dhbuildpackages)
-       dh_installdebconf $(dhbuildpackages)
-       dh_installlogrotate $(dhbuildpackages)
-       dh_installlogrotate $(dhbuildpackages) --name=exim4-paniclog
-#      dh_installemacsen $(dhbuildpackages)
-       dh_installpam $(dhbuildpackages)
-       dh_installmime $(dhbuildpackages)
-       #dh_installinit $(dhbuildpackages) --noscripts --name=exim4
-       # work around #347577 (fixed in debhelper 5.0.15)
-       dh_installinit $(dhbuildpackages) -n --name=exim4
-       dh_installcron $(dhbuildpackages)
-#      dh_installinfo $(dhbuildpackages)
-#      dh_undocumented $(dhbuildpackages)
-       dh_installman $(dhbuildpackages)
-       dh_install $(dhbuildpackages)
-       # install config.h from daemon package, but not from exim4-daemon-light
-       dh_install -p exim4-dev \
-               $(shell ls -1 b-exim4-daemon-*/build-$(buildname)/config.h | grep -v ^b-exim4-daemon-light/) \
-               usr/include/exim4
-       dh_lintian $(dhbuildpackages)
-       dh_strip $(dhcombinedadbgpackage) $(dhstripparm)
-       for pkg in $(extraadbgpackage); do \
-         dh_strip -p$$pkg --dbg-package=$${pkg}-dbg; \
-       done
-       dh_link $(dhbuildpackages)
-       dh_compress $(dhbuildpackages)
-       dh_fixperms $(dhbuildpackages) -Xusr/sbin/exim4
-#      dh_makeshlibs $(dhbuildpackages)
-       dh_installdeb $(dhbuildpackages)
-#      dh_perl $(dhbuildpackages)
-       dh_shlibdeps $(dhbuildpackages)
-       dh_gencontrol $(dhbuildpackages) -- \
-               -VUpstream-Version=$(UPSTREAMVERSION) \
-               -VMTA-Conflicts="$(MTACONFLICTS)"
-       dh_md5sums $(dhbuildpackages)
-       dh_builddeb $(dhbuildpackages)
+       dh binary-arch
 
 binary: binary-arch binary-indep
 .PHONY: build clean binary-indep binary-arch binary install