1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
include /usr/share/dpkg/default.mk
SHELL := bash -e
include debian/rules.defs
export DH_OPTIONS
export DEB_RULES_REQUIRES_ROOT ?= no
GENCONTROL_ARGS := -v6.12.63-1
BUILDDEB_ARGS := -Zxz $(if $(filter pkg.linux.quick,$(DEB_BUILD_PROFILES)),-z0)
stamp = [ -d $(dir $@) ] || mkdir $(dir $@); touch $@
define dh_binary_pre
dh_testroot
dh_prep
dh_installdirs
endef
define dh_binary_post
dh_install $(DH_INSTALL_ARGS)
# Workaround #1068189. By Debian policy and aligned debhelper behaviour /usr/share/doc/package
# is permitted to be a symbolic link to another directory in /usr/share/doc only if the two
# packages come from the same source package. The package build will fail with the new debhelper
# version since debhelper/13.15. As the linux-signed-* packages are quite special in the eco-
# system, make the workaround to fallback to the old behaviour until it is agreed on how to
# resolve the situation policy conformant.
# https://www.debian.org/doc/debian-policy/ch-docs.html#copyright-information
$(if $(INSTALLDOCS_LINK_DOC),
mkdir -p debian/$(PACKAGE_NAME)/usr/share/doc && ln -sf $(INSTALLDOCS_LINK_DOC) debian/$(PACKAGE_NAME)/usr/share/doc/$(PACKAGE_NAME),
dh_installdocs)
dh_installchangelogs
dh_installexamples
dh_installman
dh_installudev
dh_bugfiles
dh_ucf
dh_lintian
dh_icons
dh_link
dh_compress
dh_fixperms
dh_missing
dh_strip $(DH_STRIP_ARGS) -Xvmlinux -Xvmlinuz
dh_makeshlibs -Xvmlinux -Xvmlinuz
dh_shlibdeps $(DH_SHLIBDEPS_ARGS)
dh_installdeb
if command -v dh_movetousr >/dev/null; then dh_movetousr; fi
dh_gencontrol -- $(GENCONTROL_ARGS)
dh_md5sums
dh_builddeb -- $(BUILDDEB_ARGS)
endef
build-indep:
$(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION)
$(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR): IMAGE_PACKAGE_NAME = linux-image-$(REAL_VERSION)-unsigned
$(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SIGNATURE_DIR = debian/signatures/$(IMAGE_PACKAGE_NAME)
$(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR): INSTALL_DIR=$(BUILD_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
$(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR):
mkdir -p $(INSTALL_DIR)/boot
rsync -a $(patsubst %,/boot/%-$(REAL_VERSION),config System.map $(IMAGE_INSTALL_STEM)) \
$(INSTALL_DIR)/boot/
sbattach --attach $(SIGNATURE_DIR)/boot/vmlinuz-$(REAL_VERSION).sig \
$(INSTALL_DIR)/boot/vmlinuz-$(REAL_VERSION)
mkdir -p $(INSTALL_DIR)/lib/modules/$(REAL_VERSION)
rsync -a $(addprefix /lib/modules/$(REAL_VERSION)/,kernel modules.builtin modules.builtin.modinfo modules.order) \
$(INSTALL_DIR)/lib/modules/$(REAL_VERSION)/
# Copy any device tree files
if [ -d /usr/lib/linux-image-$(REAL_VERSION) ]; then \
mkdir -p $(INSTALL_DIR)/usr/lib/linux-image-$(REAL_VERSION); \
rsync -a /usr/lib/linux-image-$(REAL_VERSION)/ \
$(INSTALL_DIR)/usr/lib/linux-image-$(REAL_VERSION)/; \
fi
$(stamp)
build_image:
binary_image: DH_OPTIONS = -p$(PACKAGE_NAME)
binary_image: DH_STRIP_ARGS = --no-automatic-dbgsym
binary_image: REAL_VERSION = $(ABINAME)$(LOCALVERSION)
binary_image: IMAGE_PACKAGE_NAME = linux-image-$(REAL_VERSION)-unsigned
binary_image: DIR2 = $(BUILD_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
binary_image: PACKAGE_DIR = debian/$(PACKAGE_NAME)
binary_image: $(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
binary_image:
$(dh_binary_pre)
dh_install --sourcedir=$(DIR2) boot
dh_install --sourcedir=$(DIR2) lib
if [ -d $(DIR2)/usr ]; then dh_install --sourcedir=$(DIR2) usr; fi
# Copy bug scripts but change the info file to refer to the right package
mkdir -p $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)
rsync -a /usr/share/bug/$(IMAGE_PACKAGE_NAME)/ \
$(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/
sed -i -e 's/^PACKAGE_NAME=.*/PACKAGE_NAME=$(PACKAGE_NAME)/' \
-e 's/^PACKAGE_VERSION=.*/PACKAGE_VERSION=$(PACKAGE_VERSION)/' \
$(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/info
$(dh_binary_post)
build_meta:
binary_meta:
$(dh_binary_pre)
$(dh_binary_post)
build_installer:
binary_installer: REAL_VERSION = $(ABINAME)$(LOCALVERSION)
binary_installer: export KW_DEFCONFIG_DIR=debian/installer
binary_installer: export KW_CONFIG_DIR=debian/installer
binary_installer: export SOURCEDIR = $(BUILD_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
binary_installer: DH_OPTIONS_IMAGE = -p$(IMAGE_PACKAGE_NAME) --sourcedir=$(SOURCEDIR)
binary_installer: $(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
binary_installer:
$(dh_binary_pre)
DH_OPTIONS="$(DH_OPTIONS_IMAGE)" dh_install boot/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION)
DH_OPTIONS="$(DH_OPTIONS_IMAGE)" dh_install lib/modules/$(REAL_VERSION)/modules.builtin
DH_OPTIONS="$(DH_OPTIONS_IMAGE)" dh_install lib/modules/$(REAL_VERSION)/modules.order
ifneq ($(filter arm64 armel armhf mipsel mips64el mipsr6 mipsr6el mips64r6 mips64r6el riscv64,$(ARCH)),)
DH_OPTIONS="$(DH_OPTIONS_IMAGE)" dh_install usr/lib/linux-image-$(REAL_VERSION)
endif
kernel-wedge copy-modules $(ABINAME) $(FLAVOUR) $(REAL_VERSION)
kernel-wedge find-dups $(REAL_VERSION)
kernel-wedge find-unpackaged $(REAL_VERSION) $(REAL_VERSION)
kernel-wedge check $$(dh_listpackages)
dh_fixperms
dh_gencontrol -- $(GENCONTROL_ARGS)
dh_builddeb -- $(BUILDDEB_ARGS)
.PHONY: build_% binary_%
|