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.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.
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.gruenbich...@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-@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 > _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel