about summary refs log tree commit diff
path: root/contrib/Debian/rules
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2024-01-19 22:07:38 +0100
committerAlexander Barton <alex@barton.de>2024-01-20 16:43:54 +0100
commit47f9c6d0a0085da2fbcbdae0a9736b79a98cc527 (patch)
tree7b78e62494a00cababe3b6cdb1d80f7fa3976f2f /contrib/Debian/rules
parentc65c3435e3107846a1995aea166e8241595fffa4 (diff)
downloadngircd-47f9c6d0a0085da2fbcbdae0a9736b79a98cc527.tar.gz
ngircd-47f9c6d0a0085da2fbcbdae0a9736b79a98cc527.zip
Update included Debian package configuration
- Rewrite using current dh_make.
- Standards-Version: 4.6.2.
- No longer build 3 different packages; only build "ngircd" which now
  includes support for IDENT, PAM (disabled in the ngircd.conf installed
  by the package), SSL (OpenSSL), ZLib and IPv6.
- Update package description accordingly.
- No longer install a SysV init file, only install ngircd.service unit.
Diffstat (limited to 'contrib/Debian/rules')
-rwxr-xr-xcontrib/Debian/rules298
1 files changed, 63 insertions, 235 deletions
diff --git a/contrib/Debian/rules b/contrib/Debian/rules
index 9dce5f8a..4be91f36 100755
--- a/contrib/Debian/rules
+++ b/contrib/Debian/rules
@@ -1,237 +1,65 @@
 #!/usr/bin/make -f
-#
-# ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2016 Alexander Barton (alex@barton.de) and Contributors
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# Please read the file COPYING, README and AUTHORS for more information.
-#
-# debian/rules for ngIRCd
-#
-# Based on the sample debian/rules that uses debhelper,
-# GNU copyright 1997 to 1999 by Joey Hess.
-#
 
-# 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 \
-	  --docdir=\$${prefix}/share/doc/ngircd \
-	  --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 \
-	  --docdir=\$${prefix}/share/doc/ngircd-full \
-	  --with-syslog --with-zlib \
-	  --with-openssl --with-iconv --with-ident --with-tcp-wrappers \
-	  --with-pam \
-	  --enable-ipv6
-
-configure-ngircd-full-dbg: configure
-	dh_testdir
-
-	# configure "full debug" variant:
-	./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
-	  --prefix=/usr \
-	  --sysconfdir=/etc/ngircd \
-	  --mandir=\$${prefix}/share/man \
-	  --docdir=\$${prefix}/share/doc/ngircd-full-dbg \
-	  --enable-debug --enable-sniffer \
-	  --with-syslog --with-zlib \
-	  --with-openssl --with-iconv --with-ident --with-tcp-wrappers \
-	  --with-pam \
-	  --enable-ipv6
-
-build:
-	dh_prep
-
-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
-
-build-ngircd-full-dbg: build-stamp-ngircd-full-dbg
-build-stamp-ngircd-full-dbg: configure-ngircd-full-dbg
-	dh_testdir
-	rm -f build-stamp-*
-
-	# Add here commands to compile the "full debug" package:
-	$(MAKE)
-
-	touch build-stamp-ngircd-full
-
-clean:
-	dh_testdir
-	dh_testroot
-	rm -f build-stamp*
-	rm -f $(CURDIR)/debian/ngircd.service
-	rm -f $(CURDIR)/debian/ngircd-full.default
-	rm -f $(CURDIR)/debian/ngircd-full.init
-	rm -f $(CURDIR)/debian/ngircd-full.postinst
-	rm -f $(CURDIR)/debian/ngircd-full.service
-	rm -f $(CURDIR)/debian/ngircd-full-dbg.default
-	rm -f $(CURDIR)/debian/ngircd-full-dbg.postinst
-	rm -f $(CURDIR)/debian/ngircd-full-dbg.init
-	rm -f $(CURDIR)/debian/ngircd-full-dbg.service
-
-	# Add here commands to clean up after the build process:
-	[ ! -f Makefile ] || $(MAKE) distclean
-
-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-full-dbg
-
-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*
-	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|;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-full/INSTALL*
-	rm $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd-full/COPYING*
-	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|;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
-	mkdir -p $(CURDIR)/debian/ngircd-full/etc/pam.d
-	cp $(CURDIR)/debian/ngircd.pam $(CURDIR)/debian/ngircd-full/etc/pam.d/ngircd
-
-install-ngircd-full-dbg: build-ngircd-full-dbg
-	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-dbg
-	rm $(CURDIR)/debian/ngircd-full-dbg/usr/share/doc/ngircd-full-dbg/INSTALL*
-	rm $(CURDIR)/debian/ngircd-full-dbg/usr/share/doc/ngircd-full-dbg/COPYING*
-	cat $(CURDIR)/debian/ngircd-full-dbg/usr/share/doc/ngircd-full-dbg/sample-ngircd.conf | \
-	 sed -e "s|;ServerUID = 65534|ServerUID = irc|g" | \
-	 sed -e "s|;ServerGID = 65534|ServerGID = irc|g" | \
-	 sed -e "s|;PidFile = /var/run/ngircd/ngircd.pid|PidFile = /var/run/ircd/ngircd.pid|g" \
-	 >$(CURDIR)/debian/ngircd-full-dbg/etc/ngircd/ngircd.conf
-	touch $(CURDIR)/debian/ngircd-full-dbg/etc/ngircd/ngircd.motd
-	mkdir -p $(CURDIR)/debian/ngircd-full-dbg/etc/pam.d
-	cp $(CURDIR)/debian/ngircd.pam $(CURDIR)/debian/ngircd-full-dbg/etc/pam.d/ngircd
-
-# 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)/contrib/ngircd.service \
-	 $(CURDIR)/debian/ngircd.service
-
-	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
-	cp $(CURDIR)/contrib/ngircd.service \
-	 $(CURDIR)/debian/ngircd-full.service
-	echo "Alias=ngircd.service" >>$(CURDIR)/debian/ngircd-full.service
-
-	ln -s $(CURDIR)/debian/ngircd.default \
-	 $(CURDIR)/debian/ngircd-full-dbg.default
-	ln -s $(CURDIR)/debian/ngircd.init \
-	 $(CURDIR)/debian/ngircd-full-dbg.init
-	ln -s $(CURDIR)/debian/ngircd.postinst \
-	 $(CURDIR)/debian/ngircd-full-dbg.postinst
-	cp $(CURDIR)/contrib/ngircd.service \
-	 $(CURDIR)/debian/ngircd-full-dbg.service
-	echo "Alias=ngircd.service" >>$(CURDIR)/debian/ngircd-full-dbg.service
-
-	dh_testdir
-	dh_testroot
-	dh_installchangelogs -a -A ChangeLog
-	dh_installdocs -a
-	dh_installsystemd -a
-	dh_installinit -a
-	dh_strip -a --no-package=ngircd-full-dbg
-	dh_compress -a -XCommands.txt
-	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" \
+	 $(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
+
+#	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