commit: a2ae708b4dc5d23b9af9c76e22e33f88d826d0d5 Author: Viorel Munteanu <ceamac <AT> gentoo <DOT> org> AuthorDate: Thu May 29 08:27:52 2025 +0000 Commit: Viorel Munteanu <ceamac <AT> gentoo <DOT> org> CommitDate: Thu May 29 08:46:17 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a2ae708b
app-emulation/virtualbox-modules: support kernel 6.15 Add initial support for kernel 6.15, backported from virtualbox-7.2.0_beta1 Closes: https://bugs.gentoo.org/956675 Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org> .../virtualbox-modules-7.1.8-kernel-6.15.patch | 74 ++++++++++++++++++++++ .../virtualbox-modules-7.0.26-r1.ebuild | 52 +++++++++++++++ .../virtualbox-modules-7.1.8-r1.ebuild | 52 +++++++++++++++ 3 files changed, 178 insertions(+) diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-7.1.8-kernel-6.15.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-7.1.8-kernel-6.15.patch new file mode 100644 index 000000000000..33efe9f1b468 --- /dev/null +++ b/app-emulation/virtualbox-modules/files/virtualbox-modules-7.1.8-kernel-6.15.patch @@ -0,0 +1,74 @@ +Add initial support for kernel 6.15.0. +Patch obtained by comparing sources from 7.1.8 and 7.2.0_BETA1 where upstream added support. +https://bugs.gentoo.org/956675 + +--- a/vboxdrv/Makefile-footer.gmk ++++ b/vboxdrv/Makefile-footer.gmk +@@ -115,6 +115,7 @@ VBOXMOD_EXT := ko + + # build defs + EXTRA_CFLAGS += $(VBOXMOD_CFLAGS) $(addprefix -I,$(KERN_INCL) $(VBOXMOD_INCL)) $(VBOXMOD_0_KFLAGS) $(KDEBUG) ++ccflags-y += $(EXTRA_CFLAGS) + $(VBOXMOD_0_TARGET)-y := $(VBOXMOD_OBJS) + obj-m += $(VBOXMOD_0_TARGET).o + +--- a/vboxdrv/r0drv/linux/timer-r0drv-linux.c ++++ b/vboxdrv/r0drv/linux/timer-r0drv-linux.c +@@ -422,7 +422,11 @@ static void rtTimerLnxStopSubTimer(PRTTIMERLNXSUBTIMER pSubTimer, bool fHighRes) + } + else + #endif ++# if RTLNX_VER_MIN(6,15,0) ++ timer_delete(&pSubTimer->u.Std.LnxTimer); ++#else + del_timer(&pSubTimer->u.Std.LnxTimer); ++#endif + + rtTimerLnxSetState(&pSubTimer->enmState, RTTIMERLNXSTATE_STOPPED); + } +@@ -470,7 +474,11 @@ static void rtTimerLnxDestroyIt(PRTTIMER pTimer) + hrtimer_cancel(&pTimer->aSubTimers[iCpu].u.Hr.LnxTimer); + else + #endif ++# if RTLNX_VER_MIN(6,15,0) ++ timer_delete_sync(&pTimer->aSubTimers[iCpu].u.Std.LnxTimer); ++#else + del_timer_sync(&pTimer->aSubTimers[iCpu].u.Std.LnxTimer); ++#endif + } + + /* +@@ -1626,8 +1634,13 @@ RTDECL(int) RTTimerCreateEx(PRTTIMER *ppTimer, uint64_t u64NanoInterval, uint32_ + #ifdef RTTIMER_LINUX_WITH_HRTIMER + if (pTimer->fHighRes) + { ++#if RTLNX_VER_MIN(6,15,0) ++ hrtimer_setup(&pTimer->aSubTimers[iCpu].u.Hr.LnxTimer, ++ rtTimerLinuxHrCallback, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); ++#else + hrtimer_init(&pTimer->aSubTimers[iCpu].u.Hr.LnxTimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); + pTimer->aSubTimers[iCpu].u.Hr.LnxTimer.function = rtTimerLinuxHrCallback; ++#endif + } + else + #endif +--- a/vboxnetadp/Makefile-footer.gmk ++++ b/vboxnetadp/Makefile-footer.gmk +@@ -115,6 +115,7 @@ VBOXMOD_EXT := ko + + # build defs + EXTRA_CFLAGS += $(VBOXMOD_CFLAGS) $(addprefix -I,$(KERN_INCL) $(VBOXMOD_INCL)) $(VBOXMOD_0_KFLAGS) $(KDEBUG) ++ccflags-y += $(EXTRA_CFLAGS) + $(VBOXMOD_0_TARGET)-y := $(VBOXMOD_OBJS) + obj-m += $(VBOXMOD_0_TARGET).o + +--- a/vboxnetflt/Makefile-footer.gmk ++++ b/vboxnetflt/Makefile-footer.gmk +@@ -115,6 +115,7 @@ VBOXMOD_EXT := ko + + # build defs + EXTRA_CFLAGS += $(VBOXMOD_CFLAGS) $(addprefix -I,$(KERN_INCL) $(VBOXMOD_INCL)) $(VBOXMOD_0_KFLAGS) $(KDEBUG) ++ccflags-y += $(EXTRA_CFLAGS) + $(VBOXMOD_0_TARGET)-y := $(VBOXMOD_OBJS) + obj-m += $(VBOXMOD_0_TARGET).o + diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.26-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.26-r1.ebuild new file mode 100644 index 000000000000..f9cf6cec7c48 --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.26-r1.ebuild @@ -0,0 +1,52 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# XXX: the tarball here is just the kernel modules split out of the binary +# package that comes from VirtualBox-*.run +# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb + +EAPI=8 + +inherit linux-mod-r1 + +MY_P="vbox-kernel-module-src-${PV}" +DESCRIPTION="Kernel Modules for Virtualbox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz" +S="${WORKDIR}" + +LICENSE="GPL-3" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +CONFIG_CHECK="~!SPINLOCK JUMP_LABEL" + +PATCHES=( + "${FILESDIR}"/${PN}-7.1.8-kernel-6.15.patch +) + +src_compile() { + local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc ) + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + insinto /usr/lib/modules-load.d/ + newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf + + insinto /etc/modprobe.d # bug #945135 + newins - virtualbox.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Starting with kernel 6.12, + # KVM initializes virtualization on module loading by default. + # This prevents VirtualBox VMs from starting. + # See also: + # https://bugs.gentoo.org/945135 + # https://www.virtualbox.org/wiki/Changelog-7.1 + # ------------------------------ + options kvm enable_virt_at_load=0 + EOF +} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.1.8-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.1.8-r1.ebuild new file mode 100644 index 000000000000..e22f5075bf5d --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.1.8-r1.ebuild @@ -0,0 +1,52 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# XXX: the tarball here is just the kernel modules split out of the binary +# package that comes from VirtualBox-*.run +# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb + +EAPI=8 + +inherit linux-mod-r1 + +MY_P="vbox-host-kernel-module-src-${PV}" +DESCRIPTION="Kernel Modules for Virtualbox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz" +S="${WORKDIR}" + +LICENSE="GPL-3" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +CONFIG_CHECK="~!SPINLOCK JUMP_LABEL" + +PATCHES=( + "${FILESDIR}"/${PN}-7.1.8-kernel-6.15.patch +) + +src_compile() { + local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc ) + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + insinto /usr/lib/modules-load.d/ + newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf + + insinto /etc/modprobe.d # bug #945135 + newins - virtualbox.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Starting with kernel 6.12, + # KVM initializes virtualization on module loading by default. + # This prevents VirtualBox VMs from starting. + # See also: + # https://bugs.gentoo.org/945135 + # https://www.virtualbox.org/wiki/Changelog-7.1 + # ------------------------------ + options kvm enable_virt_at_load=0 + EOF +}
