#!/usr/bin/make -f
#
-# (C) 2002-2006 Roland Rosenfeld <roland@debian.org>, based on
-# Sample debian/rules that uses debhelper.
-# This file is public domain software, originally written by Joey Hess.
-
+# (c) 2002-2022 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
-
-build: build-stamp
-build-stamp: patch-stamp
- dh_testdir
+%:
+ dh $@
+override_dh_auto_configure:
autoheader
autoconf
- env CFLAGS="$(OPTIMIZE) -g" \
- ./configure --prefix=/usr --sysconfdir=/etc \
- --mandir=/usr/share/man $(WITHDEBUG) \
+ 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 \
+ --enable-compression \
+ --with-mbedtls \
+ --with-brotli \
--with-docbook=/usr/share/sgml/docbook/stylesheet/dsssl/modular
- $(MAKE)
-# create missing doc/pdf directory if necessary:
- [ -d doc/pdf ] || mkdir doc/pdf
- $(MAKE) dok-pdf
- $(MAKE) dok
- env -u LANG $(MAKE) man
- $(MAKE) man2html
-
-# remove trailing whitespaces:
- for x in developer-manual user-manual faq; do \
- sed -e 's/[ ]*$$//' < doc/text/$$x.txt > doc/text/$$x.nws;\
- mv -f doc/text/$$x.nws doc/text/$$x.txt; \
- done
- touch build-stamp
+override_dh_auto_build:
+ $(MAKE)
-clean: clean1 unpatch
-clean1:
- dh_testdir
- dh_testroot
- rm -f build-stamp configure-stamp
+ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
+# preserve auto build documentation from source package:
+ tar cf debian/doc.tar README INSTALL AUTHORS doc/webserver privoxy.8
+ 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
+endif
- -$(MAKE) clean
- -$(MAKE) distclean
+override_dh_auto_clean:
+ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
+# restore auto build documentation from source package:
+ [ ! -f debian/doc.tar ] || tar xf debian/doc.tar
+ rm -f debian/doc.tar
+endif
+ 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
-# rm -rf doc/pdf
-
- dh_clean -Xrc.privoxy.orig
-
-install: build-stamp
- dh_testdir
- dh_testroot
- dh_clean -k -Xrc.privoxy.orig
- dh_installdirs
+ dh_clean
+override_dh_auto_install:
install -m 0755 privoxy $(DEBDIR)/usr/sbin/privoxy
-
- install -m 644 config $(DEBDIR)/etc/privoxy/config
+ sed -e 's/\(Sample Configuration File for Privoxy\).*/\1/;' < config \
+ > $(DEBDIR)/usr/share/privoxy/config
+ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
+ echo "with doc"
+else
+# use remote user-manual (default) on nodoc configuration:
+ sed -i 's/^user-manual/#user-manual/' \
+ $(DEBDIR)/usr/share/privoxy/config
+endif
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 CVS tags and trailing spaces from config files:
+# Remove trailing spaces from config files:
find $(DEBDIR)/etc/privoxy -type f \
- | xargs grep -l '\$$[A-Z][^$$]*:[^$$]*\$$' \
+ | xargs grep -l ' $$' \
| while read f; do \
- sed -e 's/\$$\(Id: [^$$]*,v\)[^$$]*\$$/\1/' \
- -e 's/\$$\(Source: [^$$]*\)\$$/\1/' \
- -e 's/\$$\(Log: [^$$]*\)\$$/\1/' \
- -e 's/ *$$//' < $$f > $$f.new; \
+ sed -e 's/ *$$//' < $$f > $$f.new; \
mv -f $$f.new $$f; \
done
-# Build architecture-independent files here.
-binary-indep: build-stamp 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-stamp install
- dh_testdir
- dh_testroot
-# dh_installdebconf
- dh_installdocs -XCVS
+override_dh_installdocs:
+ dh_installdocs
+ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
(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
-
-patch: patch-stamp
-patch-stamp:
- dpatch apply-all
- touch patch-stamp
- #dpatch call-all -a=pkg-info >patch-stamp
-
-unpatch:
- dpatch deapply-all
- rm -rf patch-stamp debian/patched
-
-binary: binary-indep binary-arch
-
-.PHONY: build clean binary-indep binary-arch binary install patch unpatch \
- clean1
+ (cd $(DEBDIR)/usr/share/doc/privoxy/user-manual; ln -s '../p_doc.css')
+endif
+
+override_dh_perl:
+# We only need perl-base:
+ dh_perl -d
+
+override_dh_installsystemd:
+ dh_installsystemd
+ dh_installsystemd --name privoxy-cleanup