-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-# 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)
-
-CFLAGS = -Wall -g
-
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -O0
-else
- CFLAGS += -O2
-endif
-ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
- INSTALL_PROGRAM += -s
-endif
-
-configure-ngircd: configure
- dh_testdir
-
- # configure "standard" variant:
- ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
- --prefix=/usr \
- --sysconfdir=/etc/ngircd \
- --mandir=\$${prefix}/share/man \
- --with-syslog --with-zlib
-
-configure-ngircd-full: configure
- dh_testdir
-
- # configure "full" variant:
- ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
- --prefix=/usr \
- --sysconfdir=/etc/ngircd \
- --mandir=\$${prefix}/share/man \
- --with-syslog --with-zlib \
- --with-gnutls --with-ident --with-tcp-wrappers \
- --enable-ipv6
-
-build:
- dh_clean -k
-
-build-ngircd: build-stamp-ngircd
-build-stamp-ngircd: configure-ngircd
- dh_testdir
- rm -f build-stamp-*
-
- # Add here commands to compile the "standard" package:
- $(MAKE)
-
- touch build-stamp-ngircd
-
-build-ngircd-full: build-stamp-ngircd-full
-build-stamp-ngircd-full: configure-ngircd-full
- dh_testdir
- rm -f build-stamp-*
-
- # Add here commands to compile the "full" package:
- $(MAKE)
-
- touch build-stamp-ngircd-full
-
-clean:
- dh_testdir
- dh_testroot
- rm -f build-stamp*
- rm -f $(CURDIR)/debian/ngircd-full.default
- rm -f $(CURDIR)/debian/ngircd-full.init
- rm -f $(CURDIR)/debian/ngircd-full.postinst
-
- # Add here commands to clean up after the build process:
- -$(MAKE) clean
-
-ifneq "$(wildcard /usr/share/misc/config.sub)" ""
- cp -f /usr/share/misc/config.sub config.sub
-endif
-ifneq "$(wildcard /usr/share/misc/config.guess)" ""
- cp -f /usr/share/misc/config.guess config.guess
-endif
- dh_clean
-
-install: install-ngircd install-ngircd-full
-
-install-ngircd: build-ngircd
- dh_testdir
- dh_testroot
- dh_installdirs
-
- # Add here commands to install the "standard" package into debian/ngircd:
- $(MAKE) install DESTDIR=$(CURDIR)/debian/ngircd
- rm $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/INSTALL*
- rm $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/COPYING*
- mkdir -p $(CURDIR)/debian/ngircd/var/run/ircd
- cat $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/sample-ngircd.conf | \
- sed -e "s/;ServerUID = 65534/ServerUID = irc/g" | \
- sed -e "s/;ServerGID = 65534/ServerGID = irc/g" | \
- sed -e "s/;MotdFile = \/usr\/local\/etc\/ngircd.motd/MotdFile = \/etc\/ngircd\/ngircd.motd/g" | \
- sed -e "s/;PidFile = \/var\/run\/ngircd\/ngircd.pid/PidFile = \/var\/run\/ircd\/ngircd.pid/g" \
- >$(CURDIR)/debian/ngircd/etc/ngircd/ngircd.conf
- touch $(CURDIR)/debian/ngircd/etc/ngircd/ngircd.motd
-
-install-ngircd-full: build-ngircd-full
- dh_testdir
- dh_testroot
- dh_installdirs
-
- # Add here commands to install the "full" package into debian/ngircd-full:
- $(MAKE) install DESTDIR=$(CURDIR)/debian/ngircd-full
- rm $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd/INSTALL*
- rm $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd/COPYING*
- mv $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd \
- $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd-full
- mkdir -p $(CURDIR)/debian/ngircd-full/var/run/ircd
- cat $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd-full/sample-ngircd.conf | \
- sed -e "s/;ServerUID = 65534/ServerUID = irc/g" | \
- sed -e "s/;ServerGID = 65534/ServerGID = irc/g" | \
- sed -e "s/;MotdFile = \/usr\/local\/etc\/ngircd.motd/MotdFile = \/etc\/ngircd\/ngircd.motd/g" | \
- sed -e "s/;PidFile = \/var\/run\/ngircd\/ngircd.pid/PidFile = \/var\/run\/ircd\/ngircd.pid/g" \
- >$(CURDIR)/debian/ngircd-full/etc/ngircd/ngircd.conf
- touch $(CURDIR)/debian/ngircd-full/etc/ngircd/ngircd.motd
-
-# Build architecture-independent files here.
-binary-indep:
- # We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
- ln -s $(CURDIR)/debian/ngircd.default \
- $(CURDIR)/debian/ngircd-full.default
- ln -s $(CURDIR)/debian/ngircd.init \
- $(CURDIR)/debian/ngircd-full.init
- ln -s $(CURDIR)/debian/ngircd.postinst \
- $(CURDIR)/debian/ngircd-full.postinst
-
- dh_testdir
- dh_testroot
- dh_installchangelogs -a -A ChangeLog
- dh_installdocs -a
- dh_installinit -a
- dh_strip -a
- dh_compress -a
- dh_fixperms -a
- dh_installdeb -a
- dh_shlibdeps -a
- dh_gencontrol -a
- dh_md5sums -a
- dh_builddeb -a
-
-binary: binary-indep binary-arch
-
-.PHONY: build clean binary-indep binary-arch binary install
-
-# -eof-
+# See FEATURE AREAS in dpkg-buildflags(1).
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+%:
+ dh $@
+
+# Disable dh_autoreconf since we are using de-ANSI-fication which was removed
+# from automake a while ago. See <https://github.com/ngircd/ngircd/issues/261>.
+override_dh_autoreconf:
+
+override_dh_auto_configure:
+ dh_auto_configure -- \
+ --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
+ --prefix=/usr \
+ --mandir=\$${prefix}/share/man \
+ --sysconfdir=/etc/ngircd \
+ --with-iconv \
+ --with-ident \
+ --with-openssl \
+ --with-pam \
+ --with-syslog \
+ --with-zlib
+
+execute_before_dh_auto_install:
+ ln -fs $(CURDIR)/contrib/ngircd.service $(CURDIR)/debian/ngircd.service
+
+execute_after_dh_auto_install:
+# Generate the default ngircd.conf:
+ install -o root -g irc -m 0640 -D /dev/null \
+ $(CURDIR)/debian/ngircd/etc/ngircd/ngircd.conf
+ sed \
+ -e "s|;ServerUID = 65534|ServerUID = irc|g" \
+ -e "s|;ServerGID = 65534|ServerGID = irc|g" \
+ -e "s|;PidFile = /var/run/ngircd/ngircd.pid|PidFile = /run/ircd/ngircd.pid|g" \
+ -e "s|;PAM = yes|PAM = no|g" \
+ -e "s|;\[SSL\]|[SSL]|g" \
+ -e "s|;CAFile = /etc/ssl/CA/cacert.pem|CAFile = /etc/ssl/certs/ca-certificates.crt|g" \
+ $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/sample-ngircd.conf \
+ >>$(CURDIR)/debian/ngircd/etc/ngircd/ngircd.conf
+
+# Create drop-in configuration directory:
+ install -o root -g irc -m 0750 -d \
+ $(CURDIR)/debian/ngircd/etc/ngircd/ngircd.conf.d
+
+# Install an empty MOTD file.
+ install -o root -g irc -m 0640 -D /dev/null \
+ $(CURDIR)/debian/ngircd/etc/ngircd/ngircd.motd
+
+# Install the logcheck(8) configuration.
+ install -o root -g root -m 0644 -D \
+ $(CURDIR)/contrib/ngircd.logcheck \
+ $(CURDIR)/debian/ngircd/etc/logcheck/ignore.d.paranoid/ngircd
+
+# Install the fail2ban configuration.
+ install -o root -g root -m 0644 -D \
+ $(CURDIR)/contrib/ngircd-fail2ban.conf \
+ $(CURDIR)/debian/ngircd/etc/fail2ban/filter.d/ngircd.conf
+
+# Make lintian happy :-)
+ rm $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/COPYING
+ mv $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/ChangeLog \
+ $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/changelog
+
+override_dh_fixperms:
+# Preserve the permissions of files installed in /etc/ngircd!
+ dh_fixperms -X/etc/ngircd
+
+override_dh_compress:
+# The Commands.txt file is read by the daemon, don't compress it!
+ dh_compress -XCommands.txt