#!/usr/bin/make -f
-# Sample debian/rules that uses debhelper.
-# GNU copyright 1997 to 1999 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
-# This is the debhelper compatibility version to use.
-export DH_COMPAT=3
-
-# 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
-CFLAGS="-O2"
-WITHDEBUG=""
-ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -g
- WITHDEBUG="--with-debug"
-endif
-
-configure: configure-stamp
-configure-stamp:
- dh_testdir
+%:
+ dh $@
+override_dh_auto_configure:
autoheader
autoconf
- env CFLAGS=$(CFLAGS) \
- ./configure --prefix=/usr --sysconfdir=/etc \
- --mandir=/usr/share/man --with-docbook=no \
- $(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 \
+ --enable-compression \
+ --with-mbedtls \
+ --with-brotli \
+ --with-docbook=/usr/share/sgml/docbook/stylesheet/dsssl/modular
+
+override_dh_auto_build:
$(MAKE)
- touch build-stamp
-
-clean:
- dh_testdir
- dh_testroot
- rm -f build-stamp configure-stamp
-
- -$(MAKE) clean
- rm -f privoxy
- rm -f configure config.h config.h.in config.log config.cache \
- config.status GNUmakefile
+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
+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 -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
-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#^confdir \.#confdir /etc/privoxy#' \
- -e 's#^logdir \.#logdir /var/log/privoxy#' \
- < 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 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
-
- cp -r doc/webserver/user-manual $(DEBDIR)/usr/share/doc/privoxy/
- cp -r doc/webserver/faq $(DEBDIR)/usr/share/doc/privoxy/
- cp -r doc/webserver/developer-manual $(DEBDIR)/usr/share/doc/privoxy/
+# 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
+
+override_dh_install:
+ dh_install
+ install -m0644 debian/apparmor/usr.sbin.privoxy \
+ $(DEBDIR)/etc/apparmor.d/
+ dh_apparmor --profile-name=usr.sbin.privoxy
+
+override_dh_installdocs:
+ dh_installdocs
+ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
+ (cd $(DEBDIR)/usr/share/doc/privoxy/; \
+ mv privoxy-index.html index.html)
+ (cd $(DEBDIR)/usr/share/doc/privoxy/user-manual; ln -s '../p_doc.css')
+endif
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
+override_dh_perl:
+# We only need perl-base:
+ dh_perl -d
-# Build architecture-dependent files here.
-binary-arch: build install
- dh_testdir
- dh_testroot
-# dh_installdebconf
- dh_installdocs
- 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
- dh_fixperms
-# dh_makeshlibs
- dh_installdeb
-# dh_perl
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
+override_dh_installsystemd:
+ dh_installsystemd
+ dh_installsystemd --name privoxy-cleanup