blob: c4d47c990306efd31e499a195ea0912de6df812a (
plain)
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 := -v@signedtemplate_binaryversion@
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_%
|