#!/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 # Reduce setgid programs (cf. CVE-2024-28085) CONFOPTS += --disable-use-tty-group # 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 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