#!/usr/bin/make -f

WW_VERSION   := 4.6.5
PKG          := $(CURDIR)/debian/warewulf-ohpc
PKG_DRACUT   := $(CURDIR)/debian/warewulf-dracut-ohpc
SRCDIR       := $(CURDIR)/warewulf-$(WW_VERSION)

TFTPDIR      := /srv/tftpboot
SRVDIR       := /srv
STATEDIR     := /srv
WWGROUP      := warewulf

%:
	dh $@

override_dh_auto_configure:
	test -s SOURCES/warewulf-$(WW_VERSION).tar.gz || \
		wget -q -O SOURCES/warewulf-$(WW_VERSION).tar.gz \
			https://github.com/warewulf/warewulf/releases/download/v$(WW_VERSION)/warewulf-$(WW_VERSION).tar.gz
	rm -rf $(SRCDIR)
	tar xf SOURCES/warewulf-$(WW_VERSION).tar.gz
	cd $(SRCDIR) && \
		patch -p1 < ../SOURCES/hosts.ww.patch || true

override_dh_auto_build:
	cd $(SRCDIR) && \
	export OFFLINE_BUILD=1 && \
	export GOTOOLCHAIN=local && \
	make defaults \
		VERSION=$(WW_VERSION) \
		PREFIX=/usr \
		BINDIR=/usr/bin \
		SYSCONFDIR=/etc \
		DATADIR=/usr/share \
		LOCALSTATEDIR=$(STATEDIR) \
		SHAREDSTATEDIR=$(STATEDIR) \
		MANDIR=/usr/share/man \
		INFODIR=/usr/share/info \
		DOCDIR=/usr/share/doc \
		SRVDIR=$(SRVDIR) \
		TFTPDIR=$(TFTPDIR) \
		SYSTEMDDIR=/lib/systemd/system \
		BASHCOMPDIR=/etc/bash_completion.d/ \
		FIREWALLDDIR=/usr/lib/firewalld/services \
		WWCLIENTDIR=/warewulf \
		IPXESOURCE=/usr/lib/ipxe \
		DRACUTMODDIR=/usr/lib/dracut/modules.d \
		CACHEDIR=/var/cache && \
	make build

override_dh_auto_install:
	cd $(SRCDIR) && \
	export OFFLINE_BUILD=1 && \
	export GOTOOLCHAIN=local && \
	export NO_BRP_STALE_LINK_ERROR=yes && \
	make install DESTDIR=$(PKG)
	# Dracut subpackage
	mkdir -p $(PKG_DRACUT)/usr/lib/dracut/modules.d
	mv $(PKG)/usr/lib/dracut/modules.d/90wwinit \
		$(PKG_DRACUT)/usr/lib/dracut/modules.d/90wwinit || true
	# Create state directories
	mkdir -p $(PKG)$(STATEDIR)/warewulf/chroots
	mkdir -p $(PKG)$(STATEDIR)/warewulf/overlays
	# Create tftpboot directory
	mkdir -p $(PKG)$(TFTPDIR)
	install -m 0644 SOURCES/warewulf.conf-ubuntu \
		$(PKG)/etc/warewulf/warewulf.conf
	install -d -m 0755 $(PKG)/etc/dnsmasq.d
	printf '%s\\n' \
		'# Installed by warewulf-ohpc for DHCP/TFTP provisioning.' \
		'# Disable DNS service so dnsmasq can coexist with systemd-resolved.' \
		'port=0' \
		'bind-interfaces' \
		> $(PKG)/etc/dnsmasq.d/warewulf-ohpc.conf

override_dh_auto_clean:
	rm -rf $(SRCDIR)

override_dh_fixperms:
	dh_fixperms
	# dh_fixperms resets files under /usr/share to 0644; these overlays
	# must remain private for OpenSSH and NetworkManager on compute nodes.
	chmod 0600 $(PKG)/usr/share/warewulf/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww
	chmod 0600 $(PKG)/usr/share/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_*_key.ww
	chmod 0644 $(PKG)/usr/share/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_*_key.pub.ww

override_dh_usrlocal:

override_dh_shlibdeps:
	dh_shlibdeps -- --ignore-missing-info || true

override_dh_strip:
	dh_strip --no-automatic-dbgsym || true

override_dh_auto_test:

override_dh_dwz:
