#!/usr/bin/make -f

SHELL := bash -e

export DH_OPTIONS

include /usr/share/dpkg/architecture.mk

KERNEL_VERSION=6.17.4-1-pve
IMAGE_PACKAGE_NAME=proxmox-kernel-$(KERNEL_VERSION)
PACKAGE_NAME=$(IMAGE_PACKAGE_NAME)-signed
PACKAGE_VERSION=6.17.4-1
PACKAGE_DIR=debian/$(PACKAGE_NAME)
SIGNATURE_DIR=debian/signatures/${IMAGE_PACKAGE_NAME}

build: build-arch build-indep
build-arch:
build-indep:

clean:
	dh_testdir
	dh_clean

binary: binary-arch binary-indep
binary-arch:
	dh_testdir
	mkdir -p $(PACKAGE_DIR)/boot
	rsync -a $(patsubst %,/boot/%-$(KERNEL_VERSION),config System.map vmlinuz) $(PACKAGE_DIR)/boot/
	if [ -f $(SIGNATURE_DIR)/boot/vmlinuz-$(KERNEL_VERSION).sig ]; then \
		sbattach --attach $(SIGNATURE_DIR)/boot/vmlinuz-$(KERNEL_VERSION).sig \
			$(PACKAGE_DIR)/boot/vmlinuz-$(KERNEL_VERSION); \
	else \
		echo "No signature for image 'vmlinuz-$(KERNEL_VERSION)' found in '$(SIGNATURE_DIR)'"; \
		false; \
	fi
	mkdir -p $(PACKAGE_DIR)/lib/modules/$(KERNEL_VERSION)
	rsync -ar /lib/modules/$(KERNEL_VERSION)/ $(PACKAGE_DIR)/lib/modules/$(KERNEL_VERSION)/
	mkdir -p $(PACKAGE_DIR)/lib/modprobe.d/
	cp /lib/modprobe.d/blacklist_$(IMAGE_PACKAGE_NAME).conf $(PACKAGE_DIR)/lib/modprobe.d/
	dh_install
	dh_installchangelogs
	dh_installdocs -A debian/copyright debian/SOURCE
	dh_lintian
	dh_compress
	dh_fixperms
	dh_installdeb
	# Copy most package relations and description from unsigned package
	for field in Depends Suggests Recommends Breaks; do \
		echo >> debian/$(PACKAGE_NAME).substvars "unsigned:$$field=$$(dpkg-query -f '$${'$$field'}' -W $(IMAGE_PACKAGE_NAME))"; \
	done
	echo >> debian/$(PACKAGE_NAME).substvars "unsigned:DescriptionShort=$$(dpkg-query -f '$${Description}' -W $(IMAGE_PACKAGE_NAME) | head -n 1)"
	echo >> debian/$(PACKAGE_NAME).substvars "unsigned:DescriptionLong=$$(dpkg-query -f '$${Description}' -W $(IMAGE_PACKAGE_NAME) | tail -n +2 | sed -rz 's/\$$/$${}/g; s/^ //; s/\n \.?/$${Newline}/g')"
	dh_gencontrol -- -v$(PACKAGE_VERSION)
	dh_md5sums
	dh_builddeb
binary-indep:

.PHONY: build build-arch build-indep clean binary binary-arch binary-indep
