Log a message right before exiting gracefully
[privoxy.git] / debian / rules
index 5490b5d..e7745b0 100755 (executable)
 #!/usr/bin/make -f
-# Sample debian/rules that uses debhelper.
-# GNU copyright 1997 to 1999 by Joey Hess.
-
+#
+# (c) 2002-2021 Roland Rosenfeld <roland@debian.org>
+#
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
+#export DH_OPTIONS=-v
 
-# These are used for cross-compiling and for saving the configure script
-# from having to guess our platform (since we know it already)
-DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
 DEBDIR=`pwd`/debian/privoxy
 
-OPTIMIZE=
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-        OPTIMIZE=-O0
-else
-        OPTIMIZE=-O2
-endif
-
-configure: configure-stamp
-configure-stamp:
-       dh_testdir
+%:
+       dh $@
 
+override_dh_auto_configure:
        autoheader
        autoconf
-       env CFLAGS="$(OPTIMIZE) -g" \
-               ./configure --prefix=/usr --sysconfdir=/etc \
-               --mandir=/usr/share/man $(WITHDEBUG)
-
-       touch configure-stamp
-
-build: build-stamp
-build-stamp: configure-stamp 
-       dh_testdir
-
+       dh_auto_configure -- \
+               --prefix=/usr \
+               --sysconfdir=/etc \
+               --mandir=/usr/share/man \
+               --enable-zlib \
+               --enable-no-gifs \
+               --enable-external-filters \
+               --enable-extended-statistics \
+               --enable-pcre-host-patterns \
+               --with-mbedtls \
+               --with-brotli \
+               --with-docbook=/usr/share/sgml/docbook/stylesheet/dsssl/modular
+
+override_dh_auto_build:
        $(MAKE)
-
-#      backup formatted upstream documentation:
-       for x in text webserver pdf; do \
-               if [ ! -d doc/$$x.dist ]; then \
-                       cp -a doc/$$x doc/$$x.dist; \
-               fi; \
-       done
-       for x in INSTALL README privoxy.1; do \
-               if [ ! -f $$x.dist ]; then \
-                       cp -a $$x $$x.dist; \
-               fi; \
-       done
-
-       (cd doc/source; $(MAKE) pdf)
-       (cd doc/source; $(MAKE) all)
-
-       touch build-stamp
-
-clean:
-       dh_testdir
-       dh_testroot
-       rm -f build-stamp configure-stamp
-
-       -$(MAKE) clean
-       -$(MAKE) distclean
-       rm -f privoxy 
-       rm -f configure config.h GNUmakefile 
-       rm -f doc/source/ldp.dsl
+#      preserve auto build documentation from source package:
+       tar cf debian/doc.tar README INSTALL AUTHORS doc/source doc/webserver
+       env -u LANG LC_ALL=C.UTF-8 $(MAKE) dok
+       rm -f doc/webserver/user-manual/*.bak
+       env -u LANG LC_ALL=C.UTF-8 $(MAKE) man
+       env -u LANG LC_ALL=C.UTF-8 $(MAKE) man2html
+
+override_dh_auto_clean:
+#      restore auto build documentation from source package:
+       [ ! -f debian/doc.tar ] || tar xf debian/doc.tar
+       rm -f debian/doc.tar
+       find doc/source -name \*.html | xargs -r rm -f
+       [ ! -f GNUmakefile ] || $(MAKE) clean
+       [ ! -f GNUmakefile ] || $(MAKE) distclean
+       rm -f configure config.h GNUmakefile
+       rm -f privoxy.8
        rm -rf obj
        rm -f ActivityConsole.jar
        rm -f src/java/org/privoxy/activityconsole/*.class
+       rm -f doc/source/ldp.dsl
+       rm -rf doc/source/temp
+       dh_clean -Xrc.privoxy.orig
 
-#      restore formatted upstream documentation:
-       for x in text webserver pdf; do \
-               if [ -d doc/$$x.dist ]; then \
-                       rm -rf doc/$$x; \
-                       mv doc/$$x.dist doc/$$x; \
-               fi; \
-       done
-       for x in INSTALL README privoxy.1; do \
-               if [ -f $$x.dist ]; then \
-                       rm -f $$x; \
-                       mv $$x.dist $$x; \
-               fi; \
-       done
-
-       dh_clean
-
-install: build
-       dh_testdir
-       dh_testroot
-       dh_clean -k
-       dh_installdirs
-
+override_dh_auto_install:
        install -m 0755 privoxy $(DEBDIR)/usr/sbin/privoxy
-
-       sed -e 's/^\(\(trust\|proxy\)-info-url\|admin-address\)/#\1/'  \
-           -e 's/^\(enable-\(edit-actions\|remote-toggle\)\)[  ]*1/\1 0/' \
-           -e 's#^confdir .*#confdir /etc/privoxy#' \
-           -e 's#^logdir .*#logdir /var/log/privoxy#' \
-           -e 's%^#\(user-manual\).*%\1 /usr/share/doc/privoxy/user-manual%' \
-           -e 's/\(Sample Configuration File for Privoxy\).*/\1/' \
-           -e 's/Id: config,v.*/Id: config,v $$/' \
-               < config > $(DEBDIR)/etc/privoxy/config
+       sed -e 's/\(Sample Configuration File for Privoxy\).*/\1/;' < config \
+           > $(DEBDIR)/usr/share/privoxy/config
        install -m 0644 default.action $(DEBDIR)/etc/privoxy/default.action
-       install -m 0644 standard.action $(DEBDIR)/etc/privoxy/standard.action
+       install -m 0644 match-all.action $(DEBDIR)/etc/privoxy/match-all.action
        install -m 0644 user.action $(DEBDIR)/etc/privoxy/user.action
+       install -m 0644 regression-tests.action \
+               $(DEBDIR)/etc/privoxy/regression-tests.action
        install -m 0644 default.filter $(DEBDIR)/etc/privoxy/default.filter
+       install -m 0644 user.filter $(DEBDIR)/etc/privoxy/user.filter
        install -m 0644 trust $(DEBDIR)/etc/privoxy/trust
 
+       install -m 0755 tools/privoxy-log-parser.pl \
+               $(DEBDIR)/usr/bin/privoxy-log-parser
+       pod2man tools/privoxy-log-parser.pl \
+               > $(DEBDIR)/usr/share/man/man1/privoxy-log-parser.1
+
+       install -m 0755 tools/privoxy-regression-test.pl \
+               $(DEBDIR)/usr/bin/privoxy-regression-test
+       pod2man tools/privoxy-regression-test.pl \
+               > $(DEBDIR)/usr/share/man/man1/privoxy-regression-test.1
+
        cp -r templates $(DEBDIR)/etc/privoxy/
        rm -f $(DEBDIR)/etc/privoxy/templates/*~
-       rm -rf $(DEBDIR)/etc/privoxy/templates/CVS
 
+#      Remove trailing spaces from config files:
+       find $(DEBDIR)/etc/privoxy -type f \
+       | xargs grep -l ' $$' \
+       | while read f; do \
+           sed -e 's/  *$$//' < $$f > $$f.new; \
+           mv -f $$f.new $$f; \
+       done
 
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
+override_dh_install:
+       dh_install
+       install -m0644 debian/apparmor/usr.sbin.privoxy \
+               $(DEBDIR)/etc/apparmor.d/
+       dh_apparmor --profile-name=usr.sbin.privoxy
 
-# Build architecture-dependent files here.
-binary-arch: build install
-       dh_testdir
-       dh_testroot
-#      dh_installdebconf       
-       dh_installdocs -XCVS
+override_dh_installdocs:
+       dh_installdocs
        (cd $(DEBDIR)/usr/share/doc/privoxy/; \
         mv privoxy-index.html index.html)
-       dh_installexamples
-       dh_installmenu
-       dh_installlogrotate
-#      dh_installemacsen
-#      dh_installpam
-#      dh_installmime
-       dh_installinit
-       dh_installcron
-       dh_installman
-       dh_installinfo
-#      dh_undocumented
-       dh_installchangelogs ChangeLog
-       dh_link
-       dh_strip
-       dh_compress -Xpdf
-       dh_fixperms
-#      dh_makeshlibs
-       dh_installdeb
-#      dh_perl
-       dh_shlibdeps
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
+       (cd $(DEBDIR)/usr/share/doc/privoxy/user-manual; ln -s '../p_doc.css')
 
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
+override_dh_perl:
+#      We only need perl-base:
+       dh_perl -d