#!/usr/bin/make -f

include /usr/share/dpkg/default.mk

VERSION := $(DEB_VERSION_UPSTREAM)
REVISION := $(shell echo $(DEB_VERSION) | cut -d- -f2)

SPHINX_BUILD = $(shell dpkg -L python3-sphinx | grep "sphinx-build$$")

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

%:
	dh $@ --with autoreconf,python3,systemd,sphinxdoc --parallel

adapt_meta_file:
	@# Embed the downstream version in the module.
	@sed \
	  -e 's/^Version:.*/Version:      $(VERSION)/' \
	  -e 's/^Release:.*/Release:      $(REVISION)/' \
	  -i.orig META


override_dh_autoreconf: adapt_meta_file
	dh_autoreconf

override_dh_auto_configure:
	@# Build the userland, but don't build the kernel modules.
	dh_auto_configure -- \
	  --bindir=/usr/bin \
	  --sbindir=/sbin \
	  --libdir=/lib \
	  --with-udevdir=/lib/udev \
	  --with-zfsexecdir=/usr/lib/zfs-linux \
	  --enable-systemd \
	  --enable-pyzfs \
	  --with-systemdunitdir=/lib/systemd/system \
	  --with-systemdpresetdir=/lib/systemd/system-preset \
	  --with-systemdgeneratordir=/lib/systemd/system-generators \
	  --with-config=user

override_dh_auto_test:
	# The dh_auto_test rule is disabled because
	# `make check` cannot run in an unprivileged build environment.

override_dh_auto_install:
	@# Install the utilities.
	$(MAKE) install DESTDIR='$(CURDIR)/debian/tmp'

	# Use upstream's bash completion
	install -D -t '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/' \
		'$(CURDIR)/contrib/bash_completion.d/zfs'

	# Move from bin_dir to /usr/sbin
	# Remove suffix (.py) as per policy 10.4 - Scripts
	# https://www.debian.org/doc/debian-policy/ch-files.html#s-scripts
	mkdir -p '$(CURDIR)/debian/tmp/usr/sbin/'
	mv '$(CURDIR)/debian/tmp/usr/bin/arc_summary' '$(CURDIR)/debian/tmp/usr/sbin/arc_summary'
	mv '$(CURDIR)/debian/tmp/usr/bin/arcstat' '$(CURDIR)/debian/tmp/usr/sbin/arcstat'
	mv '$(CURDIR)/debian/tmp/usr/bin/dbufstat' '$(CURDIR)/debian/tmp/usr/sbin/dbufstat'

	@# Zed has dependencies outside of the system root.
	mv '$(CURDIR)/debian/tmp/sbin/zed' '$(CURDIR)/debian/tmp/usr/sbin/zed'

	mkdir -p $(CURDIR)/debian/tmp/usr/lib
	for i in `ls $(CURDIR)/debian/tmp/lib/*.so`; do \
		ln -s /lib/`readlink $${i}` $(CURDIR)/debian/tmp/usr/lib/`basename $${i}`; \
		rm $${i}; \
	done

	chmod a-x '$(CURDIR)/debian/tmp/etc/zfs/zfs-functions'
	chmod a-x '$(CURDIR)/debian/tmp/etc/default/zfs'
	chmod a-x '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/zfs'

override_dh_python3:
	dh_python3 -p python3-pyzfs

override_dh_makeshlibs:
	dh_makeshlibs -a -V
ifeq ($(BUILD_UDEB), true)
	dh_makeshlibs -V -plibnvpair1linux
	dh_makeshlibs -V -plibuutil1linux
	dh_makeshlibs -V -plibzfs2linux
	dh_makeshlibs -V -plibzpool2linux
	dh_makeshlibs -V -pzfsutils-linux
endif

override_dh_strip:
	dh_strip --dbg-package=zfs-dbg

override_dh_auto_clean:
	find . -name .gitignore -delete
	rm -rf zfs-$(DEB_VERSION_UPSTREAM)
	dh_auto_clean
	@if test -e META.orig; then mv META.orig META; fi

override_dh_install:
	find . -name lib*.la -delete
	dh_install --fail-missing

override_dh_installdocs:
	dh_installdocs
ifeq (,$(findstring nodoc, $(DEB_BUILD_OPTIONS)))
	http_proxy='127.0.0.1:9' $(SPHINX_BUILD) -N -bhtml "$(CURDIR)/contrib/pyzfs/docs/source/" debian/pyzfs-doc/usr/share/doc/pyzfs-doc/html/
endif

# ------------

debian-copyright:
	cme update dpkg-copyright -file debian/copyright.cme