integrate meta packages and change prefix

long overdue, and avoids the issue of the meta packages version going down
after being folded in from the pve-kernel-meta repository.

the ABI needs to be bumped for every published kernel package now that modules
are signed, else the booted kernel image containing the public part of the
ephemeral signing key, and the on-disk (potentially upgraded in-place) signed
module files can disagree, and module loading would fail.

not changed (yet): git repository name, pve-firmware

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2023-07-17 15:57:58 +02:00
parent 7a00dc5a16
commit 6e72c5b2b7
10 changed files with 157 additions and 90 deletions

View File

@ -1,22 +1,22 @@
include /usr/share/dpkg/pkg-info.mk include /usr/share/dpkg/pkg-info.mk
# also bump pve-kernel-meta if either of MAJ.MIN, PATCHLEVEL or KREL change # also bump proxmox-kernel-meta if the default MAJ.MIN version changes!
KERNEL_MAJ=6 KERNEL_MAJ=6
KERNEL_MIN=2 KERNEL_MIN=2
KERNEL_PATCHLEVEL=16 KERNEL_PATCHLEVEL=16
# increment KREL if the ABI changes (abicheck target in debian/rules) # increment KREL for every published package release!
# rebuild packages with new KREL and run 'make abiupdate' # rebuild packages with new KREL and run 'make abiupdate'
KREL=5 KREL=6
PKGREL=6 PKGREL=7
KERNEL_MAJMIN=$(KERNEL_MAJ).$(KERNEL_MIN) KERNEL_MAJMIN=$(KERNEL_MAJ).$(KERNEL_MIN)
KERNEL_VER=$(KERNEL_MAJMIN).$(KERNEL_PATCHLEVEL) KERNEL_VER=$(KERNEL_MAJMIN).$(KERNEL_PATCHLEVEL)
EXTRAVERSION=-$(KREL)-pve EXTRAVERSION=-$(KREL)-pve
KVNAME=$(KERNEL_VER)$(EXTRAVERSION) KVNAME=$(KERNEL_VER)$(EXTRAVERSION)
PACKAGE=pve-kernel-$(KVNAME) PACKAGE=proxmox-kernel-$(KVNAME)
HDRPACKAGE=pve-headers-$(KVNAME) HDRPACKAGE=proxmox-headers-$(KVNAME)
ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH) ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
@ -31,7 +31,7 @@ GITVERSION:=$(shell git rev-parse HEAD)
SKIPABI=0 SKIPABI=0
BUILD_DIR=pve-kernel-$(KERNEL_VER) BUILD_DIR=proxmox-kernel-$(KERNEL_VER)
KERNEL_SRC=ubuntu-kernel KERNEL_SRC=ubuntu-kernel
KERNEL_SRC_SUBMODULE=submodules/$(KERNEL_SRC) KERNEL_SRC_SUBMODULE=submodules/$(KERNEL_SRC)
@ -46,19 +46,21 @@ MODULE_DIRS=$(ZFSDIR)
# exported to debian/rules via debian/rules.d/dirs.mk # exported to debian/rules via debian/rules.d/dirs.mk
DIRS=KERNEL_SRC ZFSDIR MODULES DIRS=KERNEL_SRC ZFSDIR MODULES
DSC=pve-kernel_$(KERNEL_VER)-$(PKGREL).dsc DSC=proxmox-kernel-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(PKGREL).dsc
DST_DEB=$(PACKAGE)_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb DST_DEB=$(PACKAGE)_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb
META_DEB=proxmox-kernel-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(PKGREL)_all.deb
HDR_DEB=$(HDRPACKAGE)_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb HDR_DEB=$(HDRPACKAGE)_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb
USR_HDR_DEB=pve-kernel-libc-dev_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb META_HDR_DEB=proxmox-headers-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(PKGREL)_all.deb
USR_HDR_DEB=proxmox-kernel-libc-dev_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb
LINUX_TOOLS_DEB=linux-tools-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb LINUX_TOOLS_DEB=linux-tools-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb
LINUX_TOOLS_DBG_DEB=linux-tools-$(KERNEL_MAJMIN)-dbgsym_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb LINUX_TOOLS_DBG_DEB=linux-tools-$(KERNEL_MAJMIN)-dbgsym_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb
DEBS=$(DST_DEB) $(HDR_DEB) $(LINUX_TOOLS_DEB) $(LINUX_TOOLS_DBG_DEB) # $(USR_HDR_DEB) DEBS=$(DST_DEB) $(META_DEB) $(HDR_DEB) $(META_HDR_DEB) $(LINUX_TOOLS_DEB) $(LINUX_TOOLS_DBG_DEB) # $(USR_HDR_DEB)
all: deb all: deb
deb: $(DEBS) deb: $(DEBS)
$(LINUX_TOOLS_DEB) $(HDR_DEB): $(DST_DEB) $(META_DEB) $(META_HDR_DEB) $(LINUX_TOOLS_DEB) $(HDR_DEB): $(DST_DEB)
$(DST_DEB): $(BUILD_DIR).prepared $(DST_DEB): $(BUILD_DIR).prepared
cd $(BUILD_DIR); dpkg-buildpackage --jobs=auto -b -uc -us cd $(BUILD_DIR); dpkg-buildpackage --jobs=auto -b -uc -us
lintian $(DST_DEB) lintian $(DST_DEB)
@ -161,5 +163,5 @@ abi-tmp-$(KVNAME):
.PHONY: clean .PHONY: clean
clean: clean:
rm -rf *~ pve-kernel-[0-9]*/ *.prepared $(KERNEL_CFG_ORG) rm -rf *~ proxmox-kernel-[0-9]*/ *.prepared $(KERNEL_CFG_ORG)
rm -f *.deb *.dsc *.changes *.buildinfo *.build pve-kernel*.tar.* rm -f *.deb *.dsc *.changes *.buildinfo *.build proxmox-kernel*.tar.*

50
debian/control.in vendored
View File

@ -1,4 +1,4 @@
Source: pve-kernel Source: proxmox-kernel-@KVMAJMIN@
Section: devel Section: devel
Priority: optional Priority: optional
Maintainer: Proxmox Support Team <support@proxmox.com> Maintainer: Proxmox Support Team <support@proxmox.com>
@ -31,7 +31,7 @@ Build-Depends: asciidoc-base,
xmlto, xmlto,
zlib1g-dev, zlib1g-dev,
zstd, zstd,
Build-Conflicts: pve-headers-@KVNAME@, Build-Conflicts: proxmox-headers-@KVNAME@,
Standards-Version: 4.6.2 Standards-Version: 4.6.2
Vcs-Git: git://git.proxmox.com/git/pve-kernel Vcs-Git: git://git.proxmox.com/git/pve-kernel
Vcs-Browser: https://git.proxmox.com/?p=pve-kernel.git Vcs-Browser: https://git.proxmox.com/?p=pve-kernel.git
@ -45,48 +45,72 @@ Description: Linux kernel version specific tools for version @KVMAJMIN@
This package provides the architecture dependent parts for kernel This package provides the architecture dependent parts for kernel
version locked tools (such as perf and x86_energy_perf_policy) version locked tools (such as perf and x86_energy_perf_policy)
Package: pve-headers-@KVNAME@ Package: proxmox-headers-@KVNAME@
Section: devel Section: devel
Priority: optional Priority: optional
Architecture: any Architecture: any
Provides: linux-headers-@KVNAME@-amd64, Provides: linux-headers-@KVNAME@-amd64, pve-headers-@KVNAME@
Depends: ${misc:Depends}, Depends: ${misc:Depends},
Description: Proxmox Kernel Headers Description: Proxmox Kernel Headers
This package contains the linux kernel headers This package contains the linux kernel headers
Package: pve-kernel-@KVNAME@ Package: proxmox-kernel-@KVNAME@
Section: admin Section: admin
Priority: optional Priority: optional
Architecture: any Architecture: any
Provides: linux-image-@KVNAME@-amd64, Provides: linux-image-@KVNAME@-amd64, pve-kernel-@KVNAME@
Suggests: pve-firmware, Suggests: pve-firmware,
Depends: busybox, initramfs-tools | linux-initramfs-tool, ${misc:Depends}, Depends: busybox, initramfs-tools | linux-initramfs-tool, ${misc:Depends},
Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub-efi-arm64, Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub-efi-arm64,
Description: Proxmox Kernel Image Description: Proxmox Kernel Image
This package contains the linux kernel and initial ramdisk used for booting This package contains the linux kernel and initial ramdisk used for booting
Package: pve-kernel-@KVNAME@-dbgsym Package: proxmox-kernel-@KVNAME@-dbgsym
Architecture: any Architecture: any
Provides: linux-debug, Provides: linux-debug, pve-kernel-@KVNAME@-dbgsym
Section: devel Section: devel
Priority: optional Priority: optional
Build-Profiles: <pkg.pve-kernel.debug> Build-Profiles: <pkg.proxmox-kernel.debug>
Depends: ${misc:Depends}, Depends: ${misc:Depends},
Description: Proxmox Kernel debug image Description: Proxmox Kernel debug image
This package provides the kernel debug image for version @KVNAME@. The debug This package provides the kernel debug image for version @KVNAME@. The debug
kernel image contained in this package is NOT meant to boot from - it is kernel image contained in this package is NOT meant to boot from - it is
uncompressed, and unstripped, and suitable for use with crash/kdump-tools/.. uncompressed, and unstripped, and suitable for use with crash/kdump-tools/..
to analyze kernel crashes. This package also contains the pve-kernel modules to analyze kernel crashes. This package also contains the proxmox-kernel modules
in their unstripped version. in their unstripped version.
Package: pve-kernel-libc-dev Package: proxmox-kernel-libc-dev
Section: devel Section: devel
Priority: optional Priority: optional
Architecture: any Architecture: any
Provides: linux-libc-dev (=${binary:Version}), Provides: linux-libc-dev (=${binary:Version}), pve-kernel-libc-dev
Conflicts: linux-libc-dev, Conflicts: linux-libc-dev,
Replaces: linux-libc-dev, Replaces: linux-libc-dev, pve-kernel-libc-dev
Breaks: pve-kernel-libc-dev
Depends: ${misc:Depends}, Depends: ${misc:Depends},
Description: Linux support headers for userspace development Description: Linux support headers for userspace development
This package provides userspaces headers from the Linux kernel. These headers This package provides userspaces headers from the Linux kernel. These headers
are used by the installed headers for GNU libc and other system libraries. are used by the installed headers for GNU libc and other system libraries.
Package: proxmox-headers-@KVMAJMIN@
Architecture: all
Section: admin
Provides: linux-headers-amd64, linux-headers-generic, pve-headers-@KVMAJMIN@
Replaces: pve-headers-@KVMAJMIN@
Priority: optional
Depends: proxmox-headers-@KVNAME@, ${misc:Depends},
Description: Latest Proxmox Kernel Headers
This is a metapackage which will install the kernel headers
for the latest available proxmox kernel from the @KVMAJMIN@
series.
Package: proxmox-kernel-@KVMAJMIN@
Architecture: all
Section: admin
Provides: linux-image-amd64, linux-image-generic, wireguard-modules (=1.0.0), pve-kernel-@KVMAJMIN@
Replaces: pve-kernel-@KVMAJMIN@
Priority: optional
Depends: pve-firmware, proxmox-kernel-@KVNAME@, ${misc:Depends},
Description: Latest Proxmox Kernel Image
This is a metapackage which will install the latest available
proxmox kernel from the @KVMAJMIN@ series.

17
debian/proxmox-kernel-meta.postinst.in vendored Executable file
View File

@ -0,0 +1,17 @@
#! /bin/sh
# Abort if any command returns an error value
set -e
case "$1" in
configure)
# setup kernel links for installation CD (rescue boot)
mkdir -p /boot/pve
ln -sf /boot/vmlinuz-@@KVNAME@@ /boot/pve/vmlinuz-@@KVMAJMIN@@
ln -sf /boot/initrd.img-@@KVNAME@@ /boot/pve/initrd.img-@@KVMAJMIN@@
;;
esac
#DEBHELPER#
exit 0

19
debian/proxmox-kernel-meta.postrm.in vendored Executable file
View File

@ -0,0 +1,19 @@
#! /bin/sh
# Abort if any command returns an error value
set -e
case "$1" in
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
# remove kernel symlinks
rm -f /boot/pve/vmlinuz-@@KVNAME@@
rm -f /boot/pve/initrd.img-@@KVNAME@@
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#

129
debian/rules vendored
View File

@ -16,15 +16,16 @@ MAKEFLAGS += $(subst parallel=,-j,$(filter parallel=%,${DEB_BUILD_OPTIONS}))
CHANGELOG_DATE:=$(shell dpkg-parsechangelog -SDate) CHANGELOG_DATE:=$(shell dpkg-parsechangelog -SDate)
CHANGELOG_DATE_UTC_ISO := $(shell date -u -d '$(CHANGELOG_DATE)' +%Y-%m-%dT%H:%MZ) CHANGELOG_DATE_UTC_ISO := $(shell date -u -d '$(CHANGELOG_DATE)' +%Y-%m-%dT%H:%MZ)
PVE_KERNEL_PKG=pve-kernel-$(KVNAME) PMX_KERNEL_PKG=proxmox-kernel-$(KVNAME)
PVE_DEBUG_KERNEL_PKG=pve-kernel-$(KVNAME)-dbgsym PMX_KERNEL_SERIES_PKG=proxmox-kernel-$(KERNEL_MAJMIN)
PVE_HEADER_PKG=pve-headers-$(KVNAME) PMX_DEBUG_KERNEL_PKG=proxmox-kernel-$(KVNAME)-dbgsym
PVE_USR_HEADER_PKG=pve-kernel-libc-dev PMX_HEADER_PKG=proxmox-headers-$(KVNAME)
PMX_USR_HEADER_PKG=proxmox-kernel-libc-dev
LINUX_TOOLS_PKG=linux-tools-$(KERNEL_MAJMIN) LINUX_TOOLS_PKG=linux-tools-$(KERNEL_MAJMIN)
KERNEL_SRC_COPY=$(KERNEL_SRC)_tmp KERNEL_SRC_COPY=$(KERNEL_SRC)_tmp
# TODO: split for archs, move to files? # TODO: split for archs, move to files?
PVE_CONFIG_OPTS= \ PMX_CONFIG_OPTS= \
-m INTEL_MEI_WDT \ -m INTEL_MEI_WDT \
-d CONFIG_SND_PCM_OSS \ -d CONFIG_SND_PCM_OSS \
-e CONFIG_TRANSPARENT_HUGEPAGE_MADVISE \ -e CONFIG_TRANSPARENT_HUGEPAGE_MADVISE \
@ -92,14 +93,18 @@ PVE_CONFIG_OPTS= \
-e CONFIG_PAGE_TABLE_ISOLATION -e CONFIG_PAGE_TABLE_ISOLATION
debian/control: $(wildcard debian/*.in) debian/control: $(wildcard debian/*.in)
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/pve-kernel.prerm.in > debian/$(PVE_KERNEL_PKG).prerm sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-kernel.prerm.in > debian/$(PMX_KERNEL_PKG).prerm
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/pve-kernel.postrm.in > debian/$(PVE_KERNEL_PKG).postrm sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-kernel.postrm.in > debian/$(PMX_KERNEL_PKG).postrm
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/pve-kernel.postinst.in > debian/$(PVE_KERNEL_PKG).postinst sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-kernel.postinst.in > debian/$(PMX_KERNEL_PKG).postinst
sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/pve-headers.postinst.in > debian/$(PVE_HEADER_PKG).postinst sed -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-headers.postinst.in > debian/$(PMX_HEADER_PKG).postinst
chmod +x debian/$(PVE_KERNEL_PKG).prerm sed -e 's/@@KVMAJMIN@@/$(KERNEL_MAJMIN)/g' -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-kernel-meta.postrm.in > debian/$(PMX_KERNEL_SERIES_PKG).postrm
chmod +x debian/$(PVE_KERNEL_PKG).postrm sed -e 's/@@KVMAJMIN@@/$(KERNEL_MAJMIN)/g' -e 's/@@KVNAME@@/$(KVNAME)/g' < debian/proxmox-kernel-meta.postinst.in > debian/$(PMX_KERNEL_SERIES_PKG).postinst
chmod +x debian/$(PVE_KERNEL_PKG).postinst chmod +x debian/$(PMX_KERNEL_PKG).prerm
chmod +x debian/$(PVE_HEADER_PKG).postinst chmod +x debian/$(PMX_KERNEL_PKG).postrm
chmod +x debian/$(PMX_KERNEL_PKG).postinst
chmod +x debian/$(PMX_KERNEL_SERIES_PKG).postrm
chmod +x debian/$(PMX_KERNEL_SERIES_PKG).postinst
chmod +x debian/$(PMX_HEADER_PKG).postinst
sed -e 's/@KVNAME@/$(KVNAME)/g' -e 's/@KVMAJMIN@/$(KERNEL_MAJMIN)/g' < debian/control.in > debian/control sed -e 's/@KVNAME@/$(KVNAME)/g' -e 's/@KVMAJMIN@/$(KERNEL_MAJMIN)/g' < debian/control.in > debian/control
build: .compile_mark .tools_compile_mark .modules_compile_mark build: .compile_mark .tools_compile_mark .modules_compile_mark
@ -114,7 +119,7 @@ install: .install_mark .tools_install_mark .headers_install_mark .usr_headers_in
binary: install binary: install
debian/rules fwcheck abicheck debian/rules fwcheck abicheck
dh_strip -N$(PVE_HEADER_PKG) -N$(PVE_USR_HEADER_PKG) dh_strip -N$(PMX_HEADER_PKG) -N$(PMX_USR_HEADER_PKG)
dh_makeshlibs dh_makeshlibs
dh_shlibdeps dh_shlibdeps
dh_installdeb dh_installdeb
@ -123,7 +128,7 @@ binary: install
dh_builddeb dh_builddeb
.config_mark: .config_mark:
cd $(KERNEL_SRC); scripts/config $(PVE_CONFIG_OPTS) cd $(KERNEL_SRC); scripts/config $(PMX_CONFIG_OPTS)
$(MAKE) -C $(KERNEL_SRC) oldconfig $(MAKE) -C $(KERNEL_SRC) oldconfig
# copy to allow building in parallel to kernel/module compilation without interference # copy to allow building in parallel to kernel/module compilation without interference
rm -rf $(KERNEL_SRC_COPY) rm -rf $(KERNEL_SRC_COPY)
@ -131,47 +136,47 @@ binary: install
touch $@ touch $@
.compile_mark: .config_mark .compile_mark: .config_mark
$(MAKE) -C $(KERNEL_SRC) KBUILD_BUILD_VERSION_TIMESTAMP="PVE $(DEB_VERSION) ($(CHANGELOG_DATE_UTC_ISO))" $(MAKE) -C $(KERNEL_SRC) KBUILD_BUILD_VERSION_TIMESTAMP="PMX $(DEB_VERSION) ($(CHANGELOG_DATE_UTC_ISO))"
touch $@ touch $@
.install_mark: .compile_mark .modules_compile_mark .install_mark: .compile_mark .modules_compile_mark
rm -rf debian/$(PVE_KERNEL_PKG) rm -rf debian/$(PMX_KERNEL_PKG)
mkdir -p debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME) mkdir -p debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME)
mkdir debian/$(PVE_KERNEL_PKG)/boot mkdir debian/$(PMX_KERNEL_PKG)/boot
install -m 644 $(KERNEL_SRC)/.config debian/$(PVE_KERNEL_PKG)/boot/config-$(KVNAME) install -m 644 $(KERNEL_SRC)/.config debian/$(PMX_KERNEL_PKG)/boot/config-$(KVNAME)
install -m 644 $(KERNEL_SRC)/System.map debian/$(PVE_KERNEL_PKG)/boot/System.map-$(KVNAME) install -m 644 $(KERNEL_SRC)/System.map debian/$(PMX_KERNEL_PKG)/boot/System.map-$(KVNAME)
install -m 644 $(KERNEL_SRC)/$(KERNEL_IMAGE_PATH) debian/$(PVE_KERNEL_PKG)/boot/$(KERNEL_INSTALL_FILE)-$(KVNAME) install -m 644 $(KERNEL_SRC)/$(KERNEL_IMAGE_PATH) debian/$(PMX_KERNEL_PKG)/boot/$(KERNEL_INSTALL_FILE)-$(KVNAME)
$(MAKE) -C $(KERNEL_SRC) INSTALL_MOD_PATH=$(BUILD_DIR)/debian/$(PVE_KERNEL_PKG)/ modules_install $(MAKE) -C $(KERNEL_SRC) INSTALL_MOD_PATH=$(BUILD_DIR)/debian/$(PMX_KERNEL_PKG)/ modules_install
# install zfs drivers # install zfs drivers
install -d -m 0755 debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME)/zfs install -d -m 0755 debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME)/zfs
install -m 644 $(addprefix $(MODULES)/,zfs.ko zavl.ko znvpair.ko zunicode.ko zcommon.ko icp.ko zlua.ko spl.ko zzstd.ko) debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME)/zfs install -m 644 $(addprefix $(MODULES)/,zfs.ko zavl.ko znvpair.ko zunicode.ko zcommon.ko icp.ko zlua.ko spl.ko zzstd.ko) debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME)/zfs
# remove firmware # remove firmware
rm -rf debian/$(PVE_KERNEL_PKG)/lib/firmware rm -rf debian/$(PMX_KERNEL_PKG)/lib/firmware
ifeq ($(filter pkg.pve-kernel.debug,$(DEB_BUILD_PROFILES)),) ifeq ($(filter pkg.proxmox-kernel.debug,$(DEB_BUILD_PROFILES)),)
echo "'pkg.pve-kernel.debug' build profile disabled, skipping -dbgsym creation" echo "'pkg.proxmox-kernel.debug' build profile disabled, skipping -dbgsym creation"
else else
echo "'pkg.pve-kernel.debug' build profile enabled, creating -dbgsym contents" echo "'pkg.proxmox-kernel.debug' build profile enabled, creating -dbgsym contents"
mkdir -p debian/$(PVE_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME) mkdir -p debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME)
mkdir debian/$(PVE_DEBUG_KERNEL_PKG)/usr/lib/debug/boot mkdir debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/boot
install -m 644 $(KERNEL_SRC)/vmlinux debian/$(PVE_DEBUG_KERNEL_PKG)/usr/lib/debug/boot/vmlinux-$(KVNAME) install -m 644 $(KERNEL_SRC)/vmlinux debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/boot/vmlinux-$(KVNAME)
cp -r debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME) debian/$(PVE_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/ cp -r debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME) debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/
rm -f debian/$(PVE_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME)/source rm -f debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME)/source
rm -f debian/$(PVE_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME)/build rm -f debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME)/build
rm -f debian/$(PVE_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME)/modules.* rm -f debian/$(PMX_DEBUG_KERNEL_PKG)/usr/lib/debug/lib/modules/$(KVNAME)/modules.*
endif endif
# strip debug info # strip debug info
find debian/$(PVE_KERNEL_PKG)/lib/modules -name \*.ko -print | while read f ; do strip --strip-debug "$$f"; done find debian/$(PMX_KERNEL_PKG)/lib/modules -name \*.ko -print | while read f ; do strip --strip-debug "$$f"; done
# finalize # finalize
/sbin/depmod -b debian/$(PVE_KERNEL_PKG)/ $(KVNAME) /sbin/depmod -b debian/$(PMX_KERNEL_PKG)/ $(KVNAME)
# Autogenerate blacklist for watchdog devices (see README) # Autogenerate blacklist for watchdog devices (see README)
install -m 0755 -d debian/$(PVE_KERNEL_PKG)/lib/modprobe.d install -m 0755 -d debian/$(PMX_KERNEL_PKG)/lib/modprobe.d
ls debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME)/kernel/drivers/watchdog/ > watchdog-blacklist.tmp ls debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME)/kernel/drivers/watchdog/ > watchdog-blacklist.tmp
echo ipmi_watchdog.ko >> watchdog-blacklist.tmp echo ipmi_watchdog.ko >> watchdog-blacklist.tmp
cat watchdog-blacklist.tmp|sed -e 's/^/blacklist /' -e 's/.ko$$//'|sort -u > debian/$(PVE_KERNEL_PKG)/lib/modprobe.d/blacklist_$(PVE_KERNEL_PKG).conf cat watchdog-blacklist.tmp|sed -e 's/^/blacklist /' -e 's/.ko$$//'|sort -u > debian/$(PMX_KERNEL_PKG)/lib/modprobe.d/blacklist_$(PMX_KERNEL_PKG).conf
rm -f debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME)/source rm -f debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME)/source
rm -f debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME)/build rm -f debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME)/build
touch $@ touch $@
.tools_compile_mark: .compile_mark .tools_compile_mark: .compile_mark
@ -194,9 +199,9 @@ endif
touch $@ touch $@
.headers_prepare_mark: .config_mark .headers_prepare_mark: .config_mark
rm -rf debian/$(PVE_HEADER_PKG) rm -rf debian/$(PMX_HEADER_PKG)
mkdir -p debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME) mkdir -p debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
install -m 0644 $(KERNEL_SRC)/.config debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME) install -m 0644 $(KERNEL_SRC)/.config debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
make -C $(KERNEL_SRC_COPY) mrproper make -C $(KERNEL_SRC_COPY) mrproper
cd $(KERNEL_SRC_COPY); find . -path './debian/*' -prune \ cd $(KERNEL_SRC_COPY); find . -path './debian/*' -prune \
-o -path './include/*' -prune \ -o -path './include/*' -prune \
@ -210,35 +215,35 @@ endif
-o -name '*.sh' \ -o -name '*.sh' \
-o -name '*.pl' \ -o -name '*.pl' \
\) \ \) \
-print | cpio -pd --preserve-modification-time $(BUILD_DIR)/debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME) -print | cpio -pd --preserve-modification-time $(BUILD_DIR)/debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
cd $(KERNEL_SRC_COPY); \ cd $(KERNEL_SRC_COPY); \
( \ ( \
find arch/$(KERNEL_HEADER_ARCH) -name include -type d -print | \ find arch/$(KERNEL_HEADER_ARCH) -name include -type d -print | \
xargs -n1 -i: find : -type f \ xargs -n1 -i: find : -type f \
) | \ ) | \
cpio -pd --preserve-modification-time $(BUILD_DIR)/debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME) cpio -pd --preserve-modification-time $(BUILD_DIR)/debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
touch $@ touch $@
.headers_compile_mark: .headers_prepare_mark .headers_compile_mark: .headers_prepare_mark
# set output to subdir of source to reduce number of hardcoded paths in output files # set output to subdir of source to reduce number of hardcoded paths in output files
rm -rf $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PVE_HEADER_PKG) rm -rf $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG)
mkdir -p $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PVE_HEADER_PKG) mkdir -p $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG)
cp $(KERNEL_SRC)/.config $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PVE_HEADER_PKG)/.config cp $(KERNEL_SRC)/.config $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG)/.config
$(MAKE) -C $(KERNEL_SRC_COPY) O=$(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PVE_HEADER_PKG) -j1 syncconfig modules_prepare prepare scripts $(MAKE) -C $(KERNEL_SRC_COPY) O=$(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG) -j1 syncconfig modules_prepare prepare scripts
cd $(KERNEL_SRC_COPY); cp -a include scripts $(BUILD_DIR)/debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME) cd $(KERNEL_SRC_COPY); cp -a include scripts $(BUILD_DIR)/debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
find $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PVE_HEADER_PKG) -name \*.o.ur-\* -o -name '*.cmd' | xargs rm -f find $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG) -name \*.o.ur-\* -o -name '*.cmd' | xargs rm -f
rsync --ignore-existing -r -v -a $(addprefix $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PVE_HEADER_PKG)/,arch include kernel scripts tools) $(BUILD_DIR)/debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)/ rsync --ignore-existing -r -v -a $(addprefix $(BUILD_DIR)/$(KERNEL_SRC_COPY)/$(PMX_HEADER_PKG)/,arch include kernel scripts tools) $(BUILD_DIR)/debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)/
rm -rf $(BUILD_DIR)/$(KERNEL_SRC_COPY) rm -rf $(BUILD_DIR)/$(KERNEL_SRC_COPY)
touch $@ touch $@
.headers_install_mark: .compile_mark .modules_compile_mark .headers_compile_mark .headers_install_mark: .compile_mark .modules_compile_mark .headers_compile_mark
cp $(KERNEL_SRC)/include/generated/compile.h debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)/include/generated/compile.h cp $(KERNEL_SRC)/include/generated/compile.h debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)/include/generated/compile.h
install -m 0644 $(KERNEL_SRC)/Module.symvers debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME) install -m 0644 $(KERNEL_SRC)/Module.symvers debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)
mkdir -p debian/$(PVE_HEADER_PKG)/lib/modules/$(KVNAME) mkdir -p debian/$(PMX_HEADER_PKG)/lib/modules/$(KVNAME)
ln -sf /usr/src/linux-headers-$(KVNAME) debian/$(PVE_HEADER_PKG)/lib/modules/$(KVNAME)/build ln -sf /usr/src/linux-headers-$(KVNAME) debian/$(PMX_HEADER_PKG)/lib/modules/$(KVNAME)/build
touch $@ touch $@
.usr_headers_install_mark: PKG_DIR = debian/$(PVE_USR_HEADER_PKG) .usr_headers_install_mark: PKG_DIR = debian/$(PMX_USR_HEADER_PKG)
.usr_headers_install_mark: OUT_DIR = $(PKG_DIR)/usr .usr_headers_install_mark: OUT_DIR = $(PKG_DIR)/usr
.usr_headers_install_mark: .config_mark .usr_headers_install_mark: .config_mark
rm -rf '$(PKG_DIR)' rm -rf '$(PKG_DIR)'
@ -272,7 +277,7 @@ $(MODULES)/zfs.ko: .compile_mark
cp $(MODULES)/$(ZFSDIR)/module/zstd/zzstd.ko $(MODULES)/ cp $(MODULES)/$(ZFSDIR)/module/zstd/zzstd.ko $(MODULES)/
fwlist-$(KVNAME): .compile_mark .modules_compile_mark fwlist-$(KVNAME): .compile_mark .modules_compile_mark
debian/scripts/find-firmware.pl debian/$(PVE_KERNEL_PKG)/lib/modules/$(KVNAME) >fwlist.tmp debian/scripts/find-firmware.pl debian/$(PMX_KERNEL_PKG)/lib/modules/$(KVNAME) >fwlist.tmp
mv fwlist.tmp $@ mv fwlist.tmp $@
.PHONY: fwcheck .PHONY: fwcheck
@ -287,7 +292,7 @@ fwcheck: fwlist-$(KVNAME) fwlist-previous
abi-$(KVNAME): .compile_mark abi-$(KVNAME): .compile_mark
debian/scripts/abi-generate debian/$(PVE_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)/Module.symvers abi-$(KVNAME) $(KVNAME) debian/scripts/abi-generate debian/$(PMX_HEADER_PKG)/usr/src/linux-headers-$(KVNAME)/Module.symvers abi-$(KVNAME) $(KVNAME)
.PHONY: abicheck .PHONY: abicheck
abicheck: debian/scripts/abi-check abi-$(KVNAME) abi-prev-* abi-blacklist abicheck: debian/scripts/abi-check abi-$(KVNAME) abi-prev-* abi-blacklist

View File

@ -1,2 +1,2 @@
pve-kernel source: debian-control-has-dbgsym-package (in section for pve-kernel-*-pve-dbgsym) Package [debian/control:*] proxmox-kernel-6.2 source: debian-control-has-dbgsym-package (in section for proxmox-kernel-*-pve-dbgsym) Package [debian/control:*]
pve-kernel source: license-problem-gfdl-invariants invariant part is: with the :ref:`invariant sections <fdl-invariant>` being list their titles, with the :ref:`front-cover texts <fdl-cover-texts>` being list, and with the :ref:`back-cover texts <fdl-cover-texts>` being list [ubuntu-kernel/Documentation/userspace-api/media/fdl-appendix.rst] proxmox-kernel-6.2 source: license-problem-gfdl-invariants invariant part is: with the :ref:`invariant sections <fdl-invariant>` being list their titles, with the :ref:`front-cover texts <fdl-cover-texts>` being list, and with the :ref:`back-cover texts <fdl-cover-texts>` being list [ubuntu-kernel/Documentation/userspace-api/media/fdl-appendix.rst]