[pve-devel] [PATCH kernel] add pve-kernel-X.Y-libc-dev package
Fabian Grünbichler
f.gruenbichler at proxmox.com
Thu May 28 13:31:15 CEST 2020
On May 27, 2020 7:03 pm, Thomas Lamprecht wrote:
> 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.lamprecht at 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.
IMHO we should not encode the version in the package name, since we
always only want one version of the package installed and different
-libc packages for different kernel versions are not co-installable
anyway. The only caveat is that we need to be careful when building new
opt-in kernels and NOT upload the -libc package until we switch over the
default kernel series, but even if we do, it should not break anything.
Besides that, but without a full rebuild-test:
Reviewed-By: Fabian Grünbichler <f.gruenbichler at proxmox.com>
>
> 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- at 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 at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
More information about the pve-devel
mailing list