summaryrefslogtreecommitdiff
path: root/sys-kernel
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel')
-rw-r--r--sys-kernel/virtualbox-guest-modules-dkms/Manifest1
-rw-r--r--sys-kernel/virtualbox-guest-modules-dkms/files/Makefile-dkms.patch32
-rw-r--r--sys-kernel/virtualbox-guest-modules-dkms/files/Makefile-no-vboxvideo.patch90
-rw-r--r--sys-kernel/virtualbox-guest-modules-dkms/files/dkms.conf10
-rw-r--r--sys-kernel/virtualbox-guest-modules-dkms/files/vboxguest-6.1.36-log-use-c99.patch13
-rw-r--r--sys-kernel/virtualbox-guest-modules-dkms/virtualbox-guest-modules-dkms-7.1.6.ebuild72
6 files changed, 218 insertions, 0 deletions
diff --git a/sys-kernel/virtualbox-guest-modules-dkms/Manifest b/sys-kernel/virtualbox-guest-modules-dkms/Manifest
new file mode 100644
index 00000000..cceb1e2f
--- /dev/null
+++ b/sys-kernel/virtualbox-guest-modules-dkms/Manifest
@@ -0,0 +1 @@
+DIST VirtualBox-7.1.6.tar.bz2 205786817 BLAKE2B 5328efe566217f69b665be58b19fc18f5898d634f0ee4057de93e66817dc15a2a708c71d9b323cfce752adf221dac44cbf2be0b8bfd37b2051c777fff0f4759a SHA512 16aa69eef997550e40e2759b9e0aa28b082d04de1352c62246bd8c63bb951545e5d6c6c1d930ae284c5c925eb44d504f071f545aa934bc4d94fbdb5ba74423d9
diff --git a/sys-kernel/virtualbox-guest-modules-dkms/files/Makefile-dkms.patch b/sys-kernel/virtualbox-guest-modules-dkms/files/Makefile-dkms.patch
new file mode 100644
index 00000000..8e1a8c69
--- /dev/null
+++ b/sys-kernel/virtualbox-guest-modules-dkms/files/Makefile-dkms.patch
@@ -0,0 +1,32 @@
+diff '--color=auto' -Nur a/Makefile b/Makefile
+--- a/Makefile 2025-03-12 10:37:08.581683046 +0000
++++ b/Makefile 2025-03-12 10:35:30.305692527 +0000
+@@ -24,14 +24,17 @@
+ # SPDX-License-Identifier: GPL-3.0-only
+ #
+
+-ifneq ($(KERNELRELEASE),)
++ifneq ($(KBUILD_EXTMOD),)
+
+-# Building from kBuild (make -C <kernel_directory> M=`pwd`)
+-# or inside a kernel source tree.
++# Building from kBuild (make -C <kernel_directory> M=`pwd`).
++# KBUILD_EXTMOD is set to $(M) in this case.
+
+-obj-m = vboxguest/ vboxsf/
++obj-m = vboxguest/
++ ifneq ($(wildcard $(KBUILD_EXTMOD)/vboxsf/Makefile),)
++obj-m += vboxsf/
++ endif
+
+-else # ! KERNELRELEASE
++else # ! KBUILD_EXTMOD
+
+ KBUILD_VERBOSE =
+ ifeq ($(KBUILD_VERBOSE),)
+@@ -107,4 +110,4 @@
+ install-vboxguest install-vboxsf \
+ clean-vboxguest clean-vboxsf
+
+-endif # ! KERNELRELEASE
++endif # ! KBUILD_EXTMOD
diff --git a/sys-kernel/virtualbox-guest-modules-dkms/files/Makefile-no-vboxvideo.patch b/sys-kernel/virtualbox-guest-modules-dkms/files/Makefile-no-vboxvideo.patch
new file mode 100644
index 00000000..908c812f
--- /dev/null
+++ b/sys-kernel/virtualbox-guest-modules-dkms/files/Makefile-no-vboxvideo.patch
@@ -0,0 +1,90 @@
+diff '--color=auto' -Nur a/Makefile b/Makefile
+--- a/Makefile 2025-01-21 12:49:27.000000000 +0000
++++ b/Makefile 2025-03-12 10:31:49.695713811 +0000
+@@ -29,7 +29,7 @@
+ # Building from kBuild (make -C <kernel_directory> M=`pwd`)
+ # or inside a kernel source tree.
+
+-obj-m = vboxguest/ vboxsf/ vboxvideo/
++obj-m = vboxguest/ vboxsf/
+
+ else # ! KERNELRELEASE
+
+@@ -42,7 +42,7 @@
+ VBOX_QUIET_SH := set -x;
+ endif
+
+-all: vboxguest vboxsf vboxvideo
++all: vboxguest vboxsf
+
+ vboxguest:
+ @echo "=== Building 'vboxguest' module ==="
+@@ -69,18 +69,6 @@
+ echo; \
+ fi
+
+-vboxvideo:
+- + $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
+- echo "=== Building 'vboxvideo' module ==="; \
+- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo || exit 1; \
+- if [ -f vboxvideo/vboxvideo.ko ]; then \
+- cp vboxvideo/vboxvideo.ko .; \
+- elif [ -f vboxvideo/vboxvideo.o ]; then \
+- cp vboxvideo/vboxvideo.o .; \
+- fi; \
+- echo; \
+- fi
+-
+ install-vboxguest:
+ + $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest install
+
+@@ -89,12 +77,7 @@
+ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxsf install; \
+ fi
+
+-install-vboxvideo:
+- + $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
+- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo install; \
+- fi
+-
+-install: install-vboxguest install-vboxsf install-vboxvideo
++install: install-vboxguest install-vboxsf
+
+ clean-vboxguest:
+ + $(VBOX_QUIET)$(MAKE) -C vboxguest clean
+@@ -106,31 +89,22 @@
+ fi
+ rm -f vboxsf.*o
+
+-clean-vboxvideo:
+- + $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
+- $(MAKE) -C vboxvideo clean; \
+- fi
+- rm -f vboxvideo.*o
+-
+-clean: clean-vboxguest clean-vboxsf clean-vboxvideo
++clean: clean-vboxguest clean-vboxsf
+
+ check:
+ $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest check
+
+ unload:
+- $(VBOX_QUIET)/sbin/rmmod vboxvideo || true
+- $(VBOX_QUIET)/sbin/rmmod vboxvfs || true
+ $(VBOX_QUIET)/sbin/rmmod vboxsf || true
+ $(VBOX_QUIET)/sbin/rmmod vboxguest || true
+
+ load: unload
+ $(VBOX_QUIET)/sbin/insmod vboxguest.ko
+ $(VBOX_QUIET)if [ -f vboxsf.ko ]; then /sbin/insmod vboxsf.ko; fi
+- $(VBOX_QUIET)if [ -f vboxvideo.ko ]; then /sbin/insmod vboxvideo.ko; fi
+
+ .PHONY: all install clean check unload load \
+- vboxguest vboxsf vboxvideo \
+- install-vboxguest install-vboxsf install-vboxvideo \
+- clean-vboxguest clean-vboxsf clean-vboxvideo
++ vboxguest vboxsf \
++ install-vboxguest install-vboxsf \
++ clean-vboxguest clean-vboxsf
+
+ endif # ! KERNELRELEASE
diff --git a/sys-kernel/virtualbox-guest-modules-dkms/files/dkms.conf b/sys-kernel/virtualbox-guest-modules-dkms/files/dkms.conf
new file mode 100644
index 00000000..e1196f45
--- /dev/null
+++ b/sys-kernel/virtualbox-guest-modules-dkms/files/dkms.conf
@@ -0,0 +1,10 @@
+PACKAGE_NAME="virtualbox-guest-modules-dkms"
+PACKAGE_VERSION="7.1.6"
+BUILD_EXCLUSIVE_KERNEL="^(5\.[0-9]+\.|6\.[0-9]\.|\.|6\.1[0-2]\.)" # only build for kernels v5.x.x up to and including v6.12.x
+BUILT_MODULE_NAME[0]="vboxguest"
+BUILT_MODULE_LOCATION[0]="vboxguest"
+DEST_MODULE_LOCATION[0]="/extra/dkms"
+BUILT_MODULE_NAME[1]="vboxsf"
+BUILT_MODULE_LOCATION[1]="vboxsf"
+DEST_MODULE_LOCATION[1]="/extra/dkms"
+AUTOINSTALL="yes"
diff --git a/sys-kernel/virtualbox-guest-modules-dkms/files/vboxguest-6.1.36-log-use-c99.patch b/sys-kernel/virtualbox-guest-modules-dkms/files/vboxguest-6.1.36-log-use-c99.patch
new file mode 100644
index 00000000..41641f23
--- /dev/null
+++ b/sys-kernel/virtualbox-guest-modules-dkms/files/vboxguest-6.1.36-log-use-c99.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/298988
+
+--- a/vboxguest/Makefile
++++ b/vboxguest/Makefile
+@@ -149,7 +149,7 @@
+ IN_MODULE \
+ RT_WITH_VBOX \
+ VBGL_VBOXGUEST \
+- VBOX_WITH_HGCM
++ VBOX_WITH_HGCM LOG_USE_C99
+ ifeq ($(VBOX_KBUILD_TARGET_ARCH),amd64)
+ VBOXMOD_DEFS += VBOX_WITH_64_BITS_GUESTS
+ endif
diff --git a/sys-kernel/virtualbox-guest-modules-dkms/virtualbox-guest-modules-dkms-7.1.6.ebuild b/sys-kernel/virtualbox-guest-modules-dkms/virtualbox-guest-modules-dkms-7.1.6.ebuild
new file mode 100644
index 00000000..222e7fac
--- /dev/null
+++ b/sys-kernel/virtualbox-guest-modules-dkms/virtualbox-guest-modules-dkms-7.1.6.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=8
+
+
+MY_PN="VirtualBox"
+MY_PV=${PV^^}
+MY_P=${MY_PN}-${MY_PV}
+
+DESCRIPTION="Kernel Modules (guest) source for Virtualbox"
+HOMEPAGE="http://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${MY_PV}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+RESTRICT="mirror"
+IUSE=""
+
+DEPEND="
+ sys-kernel/dkms
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-build/kbuild-0.1.9998.3127
+"
+
+VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
+
+src_prepare() {
+ rm -r kBuild/bin tools || die
+
+ pushd src/VBox/Additions &>/dev/null || die
+ ebegin "Extracting guest kernel module sources"
+ kmk GuestDrivers-src vboxguest-src vboxsf-src &>/dev/null
+ eend $? || die
+ popd &>/dev/null || die
+
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/Makefile-no-vboxvideo.patch
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/Makefile-dkms.patch
+
+ eapply_user
+}
+
+src_configure() {
+ :
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ dodir usr/src/${P}
+ insinto usr/src/${P}
+ doins ${FILESDIR}/dkms.conf
+ doins -r ${VBOX_MOD_SRC_DIR}/*
+}
+
+pkg_postinst() {
+ dkms add ${PN}/${PV}
+}
+
+pkg_prerm() {
+ dkms remove ${PN}/${PV} --all
+}