This was long overdue, allows to access the full feature set of our kernel for some tools using the Linux API directly.
Packaging mostly taken from Debian[0] [0]: https://salsa.debian.org/kernel-team/linux/-/blob/debian/4.19.118-2/debian/rules.real#L367 Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com> --- Package name could be probably better, just took the first thing coming to my mind. Also, the approach of butting Kernel MAJ.MIN version in there or using the kernel package version, or none at all, should be evaluated. I'd guess none could be preferred as it should be backwards compatible anyway (never break userspace™) so the newest one is always wanted. note: This was working really quick, almost suspicious... Tested by building QEMU (which inspired my doing this now in the first place due to the sizeof bug we have with Debian's plin linux-libc-dev package on build) debian/control.in | 12 ++++++++++++ debian/rules | 22 ++++++++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/debian/control.in b/debian/control.in index 9b807c1d40c5..c457564eafe9 100644 --- a/debian/control.in +++ b/debian/control.in @@ -69,3 +69,15 @@ Depends: busybox, Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub-efi-arm64, Description: The Proxmox PVE Kernel Image This package contains the linux kernel and initial ramdisk used for booting + +Package: pve-kernel-@KVMAJMIN@-libc-dev +Section: devel +Priority: optional +Architecture: any +Provides: linux-libc-dev, +Conflicts: linux-libc-dev, +Replaces: linux-libc-dev, +Depends: ${misc:Depends} +Description: Linux support headers for userspace development + This package provides userspaces headers from the Linux kernel. These headers + are used by the installed headers for GNU libc and other system libraries. diff --git a/debian/rules b/debian/rules index e530eb548707..dc839b127507 100755 --- a/debian/rules +++ b/debian/rules @@ -15,6 +15,7 @@ CHANGELOG_DATE:=$(shell dpkg-parsechangelog -SDate) PVE_KERNEL_PKG=pve-kernel-${KVNAME} PVE_HEADER_PKG=pve-headers-${KVNAME} +PVE_USR_HEADER_PKG=pve-kernel-${KERNEL_MAJMIN}-libc-dev LINUX_TOOLS_PKG=linux-tools-${KERNEL_MAJMIN} KERNEL_SRC_COPY=${KERNEL_SRC}_tmp @@ -87,7 +88,7 @@ debian/control: $(wildcard debian/*.in) build: .compile_mark .tools_compile_mark .modules_compile_mark -install: .install_mark .tools_install_mark .headers_install_mark +install: .install_mark .tools_install_mark .headers_install_mark .usr_headers_install_mark dh_installdocs -A debian/copyright debian/SOURCE dh_installchangelogs dh_installman @@ -97,7 +98,7 @@ install: .install_mark .tools_install_mark .headers_install_mark binary: install debian/rules fwcheck abicheck - dh_strip -N${PVE_HEADER_PKG} + dh_strip -N${PVE_HEADER_PKG} -N${PVE_USR_HEADER_PKG} dh_makeshlibs dh_shlibdeps dh_installdeb @@ -207,6 +208,23 @@ binary: install ln -sf /usr/src/linux-headers-${KVNAME} debian/${PVE_HEADER_PKG}/lib/modules/${KVNAME}/build touch $@ +.usr_headers_install_mark: PKG_DIR = debian/${PVE_USR_HEADER_PKG} +.usr_headers_install_mark: OUT_DIR = ${PKG_DIR}/usr +.usr_headers_install_mark: .config_mark + rm -rf '${PKG_DIR}' + mkdir -p '${PKG_DIR}' + $(MAKE) -C ${KERNEL_SRC} headers_check ARCH=$(KERNEL_HEADER_ARCH) + $(MAKE) -C ${KERNEL_SRC} headers_install ARCH=$(KERNEL_HEADER_ARCH) INSTALL_HDR_PATH='$(CURDIR)'/$(OUT_DIR) + rm -rf $(OUT_DIR)/include/drm $(OUT_DIR)/include/scsi + find $(OUT_DIR)/include \( -name .install -o -name ..install.cmd \) -execdir rm {} + + +# Move include/asm to arch-specific directory + mkdir -p $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH) + mv $(OUT_DIR)/include/asm $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/ + test ! -d $(OUT_DIR)/include/arch || \ + mv $(OUT_DIR)/include/arch $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/ + touch $@ + .modules_compile_mark: ${MODULES}/zfs.ko touch $@ -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel