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
+}

Reply via email to