summaryrefslogtreecommitdiffstats
path: root/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules178
1 files changed, 178 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..a03d8cc
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,178 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/architecture.mk
+include /usr/share/dpkg/pkg-info.mk
+
+ifeq ($(DEB_HOST_ARCH_OS),linux)
+CONFOPTS += --with-selinux
+CONFOPTS += --with-smack
+CONFOPTS += --enable-partx
+
+ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
+ CONFOPTS += --without-systemd --without-udev --without-audit
+else
+ CONFOPTS += --with-systemd --with-udev --with-audit
+endif
+
+ifneq ($(filter pkg.util-linux.noverity,$(DEB_BUILD_PROFILES)),)
+ CONFOPTS += --without-cryptsetup
+else
+ CONFOPTS += --with-cryptsetup=dlopen
+endif
+endif
+
+
+CONFOPTS += --enable-write
+
+# build static versions of programs used in fdisk-udeb and util-linux-udeb
+CONFOPTS += --enable-static-programs=fdisk,sfdisk,blkid
+
+# Help welcome packaging the (libmount) python bindings.
+# See http://bugs.debian.org/811361
+CONFOPTS += --without-python
+
+# disable utilities shipped by other packages
+# => login
+CONFOPTS += --disable-login
+CONFOPTS += --disable-nologin
+# => procps
+CONFOPTS += --disable-kill
+# => passwd
+CONFOPTS += --disable-chfn-chsh
+# => bsdmainutils
+CONFOPTS += --disable-cal
+
+# Keep hwclock as GPLv2 (and others)
+CONFOPTS += --disable-hwclock-gplv3
+
+# Get the list of binary package, except lib* and *-udeb, from
+# debian/control instead of hardcoding the list when installing
+# bash-completions below.
+BINARYPACKAGES := $(shell awk '/^Package: /{if($$2 !~ /^lib|-udeb$$/) print $$2}' $(CURDIR)/debian/control )
+
+# hardening
+export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow
+
+%:
+ dh $@
+
+override_dh_autoreconf:
+ AM_OPTS=--copy LT_OPTS=--copy dh_autoreconf ./autogen.sh
+
+override_dh_auto_configure:
+ dh_auto_configure -- $(CONFOPTS)
+
+override_dh_auto_install:
+ dh_auto_install
+ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
+ # Manually generate and install units to avoid missing files when
+ # util-linux.install gets executed in stage1 builds.
+ install -d debian/tmp/lib/systemd/system
+ make PATHFILES=sys-utils/fstrim.service sys-utils/fstrim.service
+ install -m644 sys-utils/fstrim.service debian/tmp/lib/systemd/system/fstrim.service
+ install -m644 sys-utils/fstrim.timer debian/tmp/lib/systemd/system/fstrim.timer
+endif
+ #
+ # remove *.la files
+ rm -f debian/tmp/usr/lib/*/*.la
+ #
+ # Avoid shipping static libraries.
+ # - libblkid.a is used by e2fsprogs.
+ find debian/tmp/usr/lib -name 'lib*.a' \! -name 'libuuid.a' \! -name 'libblkid.a' -delete
+
+override_dh_auto_clean:
+ dh_auto_clean
+ # drop arch-overrides, generated in dh_install by dh-exec usage.
+ rm -f debian/uuid-runtime.install.$(DEB_HOST_ARCH) \
+ debian/util-linux.install.$(DEB_HOST_ARCH)
+
+override_dh_install:
+ # generate arch-override, as dh-exec install-rename can only run once.
+ [ -f debian/util-linux.install.$(DEB_HOST_ARCH) ] || \
+ debian/util-linux.install > \
+ debian/util-linux.install.$(DEB_HOST_ARCH)
+ [ -f debian/uuid-runtime.install.$(DEB_HOST_ARCH) ] || \
+ debian/uuid-runtime.install > \
+ debian/uuid-runtime.install.$(DEB_HOST_ARCH)
+ #
+ install -D -p -m644 debian/fdisk-udeb.lintian-overrides \
+ debian/fdisk-udeb/usr/share/lintian/overrides/fdisk-udeb
+ dh_install \
+ -Nfdisk-udeb -Nlibblkid1-udeb \
+ -Nlibfdisk1-udeb -Nlibsmartcols1-udeb -Nlibuuid1-udeb \
+ -Nutil-linux-udeb
+ dh_install --remaining-packages
+ #
+ # Install bash-completions only for binaries we ship
+ for PACKAGE in $(BINARYPACKAGES) ; do \
+ for BINARY in debian/$$PACKAGE/bin/* debian/$$PACKAGE/sbin/* \
+ debian/$$PACKAGE/usr/bin/* \
+ debian/$$PACKAGE/usr/sbin/* ; \
+ do \
+ BASENAME=$$(basename $$BINARY); \
+ BCDIR=usr/share/bash-completion/completions/; \
+ BCNAME=$$BCDIR/$$BASENAME ; \
+ if [ "$$BASENAME" != '*' ] && find "debian/tmp/$$BCNAME" -quit; \
+ then \
+ echo "$$PACKAGE: Installing $$BCNAME"; \
+ [ -d debian/$$PACKAGE/$$BCDIR ] || \
+ mkdir -p debian/$$PACKAGE/$$BCDIR; \
+ mv debian/tmp/$$BCNAME debian/$$PACKAGE/$$BCNAME; \
+ fi; \
+ done; \
+ done
+ #
+ rm -rf debian/*-udeb/usr/share/doc
+
+override_dh_installman:
+ dh_installman --language=C
+
+override_dh_missing:
+ dh_missing --list-missing
+
+override_dh_gencontrol:
+ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
+ dh_gencontrol --package=bsdutils -- -v1:$(DEB_VERSION_UPSTREAM_REVISION)
+endif
+ dh_gencontrol --remaining-packages
+
+override_dh_installinit:
+ # hwclock works on all Linux architectures, except s390
+ # (and s390x, of course).
+ifeq (linux,$(DEB_HOST_ARCH_OS))
+ifeq (,$(findstring s390,$(DEB_HOST_ARCH)))
+ # install /etc/init.d/hwclock.sh
+ dh_installinit --package=util-linux-extra --name=hwclock.sh --no-start
+ # install /etc/default/hwclock
+ dh_installinit --package=util-linux-extra --name=hwclock
+endif
+endif
+ # install uuidd sysvinit script
+ make misc-utils/uuidd.rc
+ ln -s ../misc-utils/uuidd.rc debian/uuid-runtime.uuidd.init
+ dh_installinit --name=uuidd --restart-after-upgrade
+ rm -f debian/uuid-runtime.uuidd.init
+
+override_dh_installpam:
+ dh_installpam --package=util-linux --name=runuser
+ dh_installpam --package=util-linux --name=runuser-l
+ dh_installpam --package=util-linux --name=su
+ dh_installpam --package=util-linux --name=su-l
+
+override_dh_fixperms:
+ dh_fixperms -i -a -Xusr/bin/wall -Xusr/bin/write -Xbin/mount -Xbin/umount -Xbin/su
+
+ifeq (linux,$(DEB_HOST_ARCH_OS))
+override_dh_installsystemd:
+ dh_installsystemd -putil-linux fstrim.timer
+ dh_installsystemd -putil-linux fstrim.service
+ dh_installsystemd --remaining-packages
+endif
+
+override_dh_auto_test:
+ifeq ($(DEB_HOST_ARCH_OS), linux)
+ dh_auto_test --max-parallel=1
+else
+ @echo "WARNING: non-linux detected, making tests non-fatal."
+ dh_auto_test --max-parallel=1 || true
+endif