enable hardening build flags
[debian/amanda] / debian / rules
index 70d35904c57972ab74fee3caf600792e95b9c0ab..cfe01c5e5eaa972024d74fa929f243ef150bea10 100755 (executable)
@@ -1,12 +1,10 @@
 #!/usr/bin/make -f
-# debian/rules for amanda using debhelper. GNU copyright 1998 by Bdale Garbee.
-# requires automake 1.2d (from experimental tree)
+# Copyright 1998-2011 by Bdale Garbee.  License GPL v2
 
-#      Warning - do *not* use -j on an SMP machine, or the build gets
-#              confused... some sort of race condition in the makefiles?
+export DH_VERBOSE=1
 
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
+DPKG_EXPORT_BUILDFLAGS = 1
+-include /usr/share/dpkg/buildflags.mk
 
 r=$(shell pwd)/debian/amanda-common
 s=$(shell pwd)/debian/amanda-server
@@ -18,28 +16,45 @@ configure-stamp:
        # pick up latest config files provided by autotools-dev
        cp -f /usr/share/misc/config.sub config/config.sub
        cp -f /usr/share/misc/config.guess config/config.guess
-#      automake --foreign
-#      autoconf -l config
+       # do we need --{htmldir,dvidir,pdfdir,psdir} to force subdirectories?
+       # should we re-craft this to use --without-server and --without-client,
+       #       and lose the amanda-common package?
        MAILER=/usr/bin/mail \
-       ./configure --prefix=/usr --bindir=/usr/sbin --mandir=/usr/share/man \
-               --with-amlibexecdir=/usr/lib/amanda --enable-shared \
-               --sysconfdir=/etc --localstatedir=/var/lib \
+       SSH=/usr/bin/ssh \
+       ./configure \
+               --prefix=/usr \
+               --bindir=/usr/sbin \
+               --libexecdir=/usr/lib/amanda \
+               --without-amlibexecdir \
+               --without-amperldir \
+               --sysconfdir=/etc \
+               --sharedstatedir=/var/lib \
+               --localstatedir=/var/lib \
+               --with-user=backup \
+               --with-group=backup  \
+               --with-tcpportrange=50000,50100 \
+               --with-udpportrange=840,860 \
+               --with-debugging=/var/log/amanda \
                --with-gnutar-listdir=/var/lib/amanda/gnutar-lists \
                --with-index-server=localhost \
-               --with-user=backup --with-group=backup  \
-               --with-bsd-security --with-amandahosts \
+               --with-bsd-security \
                --with-smbclient=/usr/bin/smbclient \
-               --with-debugging=/var/log/amanda \
-               --with-tcpportrange=50000,50100 --with-udpportrange=840,860 \
+               --with-amandahosts \
                --with-ssh-security \
-               --with-bsdtcp-security --with-bsdudp-security
+               --with-bsdtcp-security \
+               --with-bsdudp-security \
+               --without-ipv6 \
+               --enable-s3-device
+
        touch missing
        touch configure-stamp
 
-build: build-stamp 
+build: build-arch build-indep
+build-arch: build-stamp
+build-indep: build-stamp
 build-stamp: configure-stamp
        dh_testdir
-       MAILER=/usr/bin/mail make CFLAGS="-O2 -g -Wall \
+       MAILER=/usr/bin/mail $(MAKE) CFLAGS="$(CFLAGS) -O2 -g -Wall \
                -DAMANDATES_FILE='\"/var/lib/amanda/amandates\"' \
                -DIGNORE_TAR_ERRORS "
        touch build-stamp
@@ -66,21 +81,22 @@ binary-arch: build
        dh_clean -k
        dh_installdirs -a
        make install DESTDIR=$(r)
+       sed -i "/dependency_libs/ s/'.*'/''/" `find $(r)/usr/lib/amanda/ -name '*.la'`
        install -m 644 debian/amandahosts $(r)/etc/amandahosts
        dh_installdocs -a
        dh_installexamples -a
+       ln -s ../amanda/example $(r)/usr/share/doc/examples
        cp ChangeLog $(r)/usr/share/doc/amanda-common/changelog
-       cp debian/xinetd.d/amandaidx $(s)/etc/xinetd.d
-       cp debian/xinetd.d/amidxtape $(s)/etc/xinetd.d
-       cp debian/xinetd.d/amanda $(r)/etc/xinetd.d                     
+       cp example/xinetd.amandaserver $(r)/etc/xinetd.d/amanda
        dh_installmenu -a
        dh_installcron -a
        dh_installchangelogs -a
        dh_installdebconf -a
+       dh_installman -a
        dh_strip -a
        dh_compress -a
        dh_movefiles -a --sourcedir=debian/amanda-common
-       rm $(s)/usr/lib/amanda/chg-mtx
+       rm -r $(r)/usr/share/amanda
        dh_fixperms -av
        # fix perms manually
        chown -R backup:backup debian/*/var/lib/*
@@ -93,6 +109,9 @@ binary-arch: build
        chmod -R u=rwX,g=rwX,o-rwx $(c)/var/lib/amanda/gnutar-lists
        # .. setuid
        chown root:backup \
+               $(c)/usr/lib/amanda/application/amgtar \
+               $(c)/usr/lib/amanda/application/amstar \
+               $(c)/usr/lib/amanda/calcsize \
                $(c)/usr/lib/amanda/killpgrp \
                $(c)/usr/lib/amanda/rundump \
                $(c)/usr/lib/amanda/runtar \
@@ -100,6 +119,9 @@ binary-arch: build
                $(s)/usr/lib/amanda/planner \
                $(s)/usr/sbin/amcheck
        chmod u=srwx,g=rx,o=r \
+               $(c)/usr/lib/amanda/application/amgtar \
+               $(c)/usr/lib/amanda/application/amstar \
+               $(c)/usr/lib/amanda/calcsize \
                $(c)/usr/lib/amanda/killpgrp \
                $(c)/usr/lib/amanda/rundump \
                $(c)/usr/lib/amanda/runtar \
@@ -112,8 +134,9 @@ binary-arch: build
                $(r)/usr/share/lintian/overrides/amanda-common
        install -o root -g root -m 0644 debian/amanda-server.lintian \
                $(s)/usr/share/lintian/overrides/amanda-server
-       dh_makeshlibs -a
+       dh_makeshlibs -pamanda-common --noscripts
        dh_installdeb -a
+       dh_perl -a usr/lib/amanda/perl
        dh_shlibdeps -a -l"debian/amanda-common/usr/lib:debian/amanda-client/usr/lib:debian/amanda-server/usr/lib"
        # strip out the non-versioned amanda-common references, we need
        # the versioned ones in the control file and dupes are ugly...
@@ -129,4 +152,4 @@ source diff:
        @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
 
 binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary
+.PHONY: configure build-indep build-arch build clean binary-indep binary-arch binary