diff options
Diffstat (limited to 'sys-kernel')
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 +} |