summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-03-12 11:57:47 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-03-12 11:57:47 +0000
commit47ac19467d84100074607d6a9316806834a8a78e (patch)
tree2cc6559cb1b7252d816ce4503e33a6adbd0bf89b
parent2b1271615a4fa63945fdb87d0c6ef92e6b15d43b (diff)
app-emulation/virtualbox-guest-additions : import from Gentoo, port to DKMS framework
-rw-r--r--app-emulation/virtualbox-guest-additions/Manifest2
-rw-r--r--app-emulation/virtualbox-guest-additions/files/vboxclient.desktop7
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-5-localconfig30
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch24
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.1.6-disable-vboxvideo-module.patch19
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd-r125
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions.service16
-rw-r--r--app-emulation/virtualbox-guest-additions/files/xorg.conf.vbox13
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.1.6-r1.ebuild232
-rw-r--r--app-emulation/virtualbox-guest-modules/files/virtualbox-guest-kmod5
-rw-r--r--app-emulation/virtualbox-guest-modules/files/virtualbox-guest-rules2
-rw-r--r--app-emulation/virtualbox-guest-modules/virtualbox-guest-modules-7.1.6.ebuild45
-rw-r--r--metadata/md5-cache/app-emulation/virtualbox-guest-additions-7.1.6-r115
-rw-r--r--metadata/md5-cache/app-emulation/virtualbox-guest-modules-7.1.613
-rw-r--r--metadata/md5-cache/sys-kernel/virtualbox-guest-modules-dkms-7.1.613
-rw-r--r--metadata/pkg_desc_index3
-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
22 files changed, 682 insertions, 0 deletions
diff --git a/app-emulation/virtualbox-guest-additions/Manifest b/app-emulation/virtualbox-guest-additions/Manifest
new file mode 100644
index 00000000..5a451676
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/Manifest
@@ -0,0 +1,2 @@
+DIST VirtualBox-7.1.6.tar.bz2 205786817 BLAKE2B 5328efe566217f69b665be58b19fc18f5898d634f0ee4057de93e66817dc15a2a708c71d9b323cfce752adf221dac44cbf2be0b8bfd37b2051c777fff0f4759a SHA512 16aa69eef997550e40e2759b9e0aa28b082d04de1352c62246bd8c63bb951545e5d6c6c1d930ae284c5c925eb44d504f071f545aa934bc4d94fbdb5ba74423d9
+DIST virtualbox-patches-7.1.0.tar.bz2 5952 BLAKE2B cb024f36249d7d312c9d0f9231c22a9609d45de1d4c82ca36672fea703765d437d7a414d810adb5eb5f2db92018b669c3b5d0c32372c5ced90f5e13f82344ffa SHA512 c6ef54b7d60f01f5f2b89c6fd7f8b7b509bc62bca0502114cedcbaaf9643445ea413bba481dcf43fb96b5b4d94d64395965682c1ee160d889213615c9272184c
diff --git a/app-emulation/virtualbox-guest-additions/files/vboxclient.desktop b/app-emulation/virtualbox-guest-additions/files/vboxclient.desktop
new file mode 100644
index 00000000..316eb9f6
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/vboxclient.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=VirtualBox Client Service
+Exec=VBoxClient-all
+Terminal=false
+X-KDE-StartupNotify=false
+StartupNotify=false
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-5-localconfig b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-5-localconfig
new file mode 100644
index 00000000..f04dab4d
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-5-localconfig
@@ -0,0 +1,30 @@
+# -*- Makefile -*-
+#
+# Overwrite some default kBuild settings
+#
+
+#
+# Copyright (C) 2006-2008 Sun Microsystems, Inc.
+#
+# This file is part of VirtualBox Open Source Edition (OSE), as
+# available from http://www.virtualbox.org. This file is free software;
+# you can redistribute it and/or modify it under the terms of the GNU
+# General Public License as published by the Free Software Foundation,
+# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
+# distribution. VirtualBox OSE is distributed in the hope that it will
+# be useful, but WITHOUT ANY WARRANTY of any kind.
+#
+
+# don't build testcases to save time, they are not needed for the package
+VBOX_WITH_TESTCASES :=
+VBOX_WITH_VALIDATIONKIT :=
+
+KBUILD_MSG_STYLE := brief
+
+## paths, origin, hardening
+VBOX_WITH_HARDENING := 2
+VBOX_WITH_ORIGIN :=
+VBOX_ONLY_ADDITIONS := 1
+
+## don't build with -Werror
+VBOX_WITH_WARNINGS_AS_ERRORS :=
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
new file mode 100644
index 00000000..8e53107a
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
@@ -0,0 +1,24 @@
+This file ends up included in
+src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp which
+is compiled with -ffreestanding, so it shouldn't include math.h
+
+See also: https://bugs.gentoo.org/907597
+
+--- a/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
++++ b/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
+@@ -169,6 +169,7 @@
+ #ifndef IN_MODULE
+ /* XXX Not for modules */
+ #include <limits.h>
++#if defined __STDC_HOSTED__ && __STDC_HOSTED__ == 1
+ #if !defined(MAXSHORT) || !defined(MINSHORT) || \
+ !defined(MAXINT) || !defined(MININT)
+ /*
+@@ -178,6 +179,7 @@
+
+ #include <math.h>
+ #endif
++#endif // defined __STDC_HOSTED__ && __STDC_HOSTED__ == 1
+ #undef MAXSHORT
+ #define MAXSHORT SHRT_MAX
+ #undef MINSHORT
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.1.6-disable-vboxvideo-module.patch b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.1.6-disable-vboxvideo-module.patch
new file mode 100644
index 00000000..1ccf0baa
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.1.6-disable-vboxvideo-module.patch
@@ -0,0 +1,19 @@
+The vboxvideo module is deprecated.
+Do not build it when VBOX_NO_LEGACY_XORG_X11 is defined.
+
+--- a/src/VBox/Additions/linux/drm/Makefile.kmk
++++ b/src/VBox/Additions/linux/drm/Makefile.kmk
+@@ -25,6 +25,8 @@
+ # SPDX-License-Identifier: GPL-3.0-only
+ #
+
++ifndef VBOX_NO_LEGACY_XORG_X11
++
+ SUB_DEPTH = ../../../../..
+ include $(KBUILD_PATH)/subheader.kmk
+
+@@ -50,3 +52,4 @@
+
+ include $(FILE_KBUILD_SUB_FOOTER)
+
++endif
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd-r1 b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd-r1
new file mode 100644
index 00000000..17c90bb9
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd-r1
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+pidfile="/var/run/vboxguest-service.pid"
+command="/usr/sbin/vboxguest-service"
+command_args="--foreground"
+command_background="true"
+
+depend() {
+ need dbus localmount
+ before display-manager
+}
+
+start_pre() {
+ einfo "Loading kernel modules"
+ /sbin/modprobe vboxguest 2>&1
+ /sbin/modprobe vboxsf 2>&1
+}
+
+stop_post() {
+ einfo "Removing kernel modules"
+ /sbin/modprobe -r vboxsf 2>&1
+ /sbin/modprobe -r vboxguest 2>&1
+}
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions.service b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions.service
new file mode 100644
index 00000000..35f9ce24
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=VirtualBox Guest Additions
+ConditionVirtualization=oracle
+Before=display-manager.service
+
+[Service]
+Type=simple
+ExecStartPre=/sbin/modprobe vboxguest
+ExecStartPre=/sbin/modprobe vboxsf
+ExecStart=/usr/sbin/vboxguest-service --foreground
+ExecStopPost=/sbin/modprobe -r vboxsf
+ExecStopPost=/sbin/modprobe -r vboxguest
+PIDFile=/var/run/vboxguest-service.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-emulation/virtualbox-guest-additions/files/xorg.conf.vbox b/app-emulation/virtualbox-guest-additions/files/xorg.conf.vbox
new file mode 100644
index 00000000..a8624694
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/xorg.conf.vbox
@@ -0,0 +1,13 @@
+Section "Device"
+ Identifier "Device-vboxvideo"
+ Driver "vboxvideo"
+EndSection
+Section "Screen"
+ Identifier "Screen-vboxvideo"
+ Device "Device-vboxvideo"
+EndSection
+
+Section "ServerLayout"
+ Identifier "Default Layout"
+ Screen "Screen-vboxvideo"
+EndSection
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.1.6-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.1.6-r1.ebuild
new file mode 100644
index 00000000..6fe5f541
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.1.6-r1.ebuild
@@ -0,0 +1,232 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo readme.gentoo-r1 systemd toolchain-funcs
+
+MY_PN="VirtualBox"
+MY_PV=${PV^^}
+MY_P=${MY_PN}-${MY_PV}
+
+DESCRIPTION="VirtualBox user-space tools for Gentoo guests"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.0.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${MY_PV}"
+
+LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~x86"
+IUSE="+dbus gui"
+
+RDEPEND="
+ app-emulation/virtualbox-guest-modules
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ x11-apps/xrandr
+ x11-apps/xrefresh
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXmu
+ x11-libs/libXt
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ gui? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-base/xorg-proto
+ )
+"
+BDEPEND="
+ >=dev-lang/yasm-0.6.2
+ >=dev-build/kbuild-0.1.9998.3127
+ sys-devel/bin86
+ sys-power/iasl
+"
+
+DOCS=() # Don't install the default README file during einstalldocs
+
+CONFIG_CHECK="~DRM_TTM ~DRM_VMWGFX"
+WARNING_DRM_TTM="DRM_TTM is needed for running the vboxvideo driver."
+WARNING_DRM_VMWGFX="DRM_VMWGFX is the recommended driver for VMSVGA."
+
+DOC_CONTENTS="\n
+Please add users to the \"vboxguest\" group so they can\n
+benefit from seamless mode, auto-resize and clipboard.\n
+\n
+The vboxsf group has been added to make automount services work.\n
+These services are part of the shared folders support.\n
+\n
+Please add:\n
+ /etc/init.d/virtualbox-guest-additions\n
+to the default runlevel in order to start\n
+needed services.\n
+\n
+An autostart .desktop file has been installed to start\n
+VBoxClient in desktop sessions.\n
+\n
+You can mount shared folders with:\n
+ mount -t vboxsf <shared_folder_name> <mount_point>\n
+\n
+Warning:\n
+ this ebuild is only needed if you are running gentoo\n
+ inside a VirtualBox Virtual Machine, you don't need\n
+ it to run VirtualBox itself.\n
+\n"
+
+src_prepare() {
+ # Remove shipped binaries (kBuild,yasm), see bug #232775
+ rm -r kBuild/bin tools || die
+
+ # Disable things unused or splitted into separate ebuilds
+ cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
+ if use gui; then
+ echo "VBOX_NO_LEGACY_XORG_X11 := 1" >> LocalConfig.kmk || die
+ else
+ echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die
+ fi
+
+ # Remove pointless GCC version check
+ sed -e '/ check_gcc$/d' -i configure || die
+
+ # Respect LDFLAGS (bug #759100)
+ sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die
+
+ eapply "${FILESDIR}"/${PN}-7.1.6-disable-vboxvideo-module.patch
+ eapply "${WORKDIR}/virtualbox-patches-7.1.0/patches"
+ eapply_user
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+
+ # Build the user-space tools, warnings are harmless
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --nofatal
+ --disable-xpcom
+ --disable-sdl-ttf
+ --disable-pulse
+ --disable-alsa
+ $(usev !dbus --disable-dbus)
+ --target-arch=${ARCH}
+ --build-headless
+ )
+
+ # bug #843437
+ # Respect LDFLAGS (bug #759100)
+ # Cannot use LDFLAGS here because they also get passed to $(LD)
+ cat >> LocalConfig.kmk <<-EOF || die
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+ CCLDFLAGS=${LDFLAGS}
+ EOF
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Redcore
+ VBOX_ONLY_ADDITIONS=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LD="$(tc-getCC)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_CXX="$(tc-getCXX)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+ TOOL_YASM_AS=yasm
+ )
+
+ MAKE="kmk" emake "${myemakeargs[@]}"
+}
+
+src_install() {
+ cd out/linux.${ARCH}/release/bin/additions || die
+
+ insinto /sbin
+ newins mount.vboxsf mount.vboxsf
+ fperms 4755 /sbin/mount.vboxsf
+
+ if use dbus; then
+ newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
+ else
+ newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
+ fi
+
+ insinto /usr/sbin/
+ newins VBoxService vboxguest-service
+ fperms 0755 /usr/sbin/vboxguest-service
+
+ insinto /usr/bin
+ doins VBoxControl
+ fperms 0755 /usr/bin/VBoxControl
+
+ # VBoxClient user service and xrandr wrapper
+ if use gui ; then
+ doins VBoxClient
+ fperms 0755 /usr/bin/VBoxClient
+ doins VBoxDRMClient
+ fperms 4755 /usr/bin/VBoxDRMClient
+
+ pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
+ newins 98vboxadd-xclient VBoxClient-all
+ fperms 0755 /usr/bin/VBoxClient-all
+ popd &>/dev/null || die
+ fi
+
+ # VBoxClient autostart file
+ insinto /etc/xdg/autostart
+ doins "${FILESDIR}"/vboxclient.desktop
+
+ systemd_dounit "${FILESDIR}/${PN}.service"
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ if ! use gui ; then
+ elog "The use flag \"gui\" is off, enable it to install the"
+ elog "X Window System drivers and integration."
+ fi
+
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/virtualbox-guest-modules/files/virtualbox-guest-kmod b/app-emulation/virtualbox-guest-modules/files/virtualbox-guest-kmod
new file mode 100644
index 00000000..46d59dbe
--- /dev/null
+++ b/app-emulation/virtualbox-guest-modules/files/virtualbox-guest-kmod
@@ -0,0 +1,5 @@
+# modprobe.d configuration file for VBOXSF
+
+# Internal Aliases - Do not edit
+# ------------------------------
+alias fs-vboxsf vboxsf
diff --git a/app-emulation/virtualbox-guest-modules/files/virtualbox-guest-rules b/app-emulation/virtualbox-guest-modules/files/virtualbox-guest-rules
new file mode 100644
index 00000000..e4311fd0
--- /dev/null
+++ b/app-emulation/virtualbox-guest-modules/files/virtualbox-guest-rules
@@ -0,0 +1,2 @@
+KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"
+KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"
diff --git a/app-emulation/virtualbox-guest-modules/virtualbox-guest-modules-7.1.6.ebuild b/app-emulation/virtualbox-guest-modules/virtualbox-guest-modules-7.1.6.ebuild
new file mode 100644
index 00000000..e8c4e3d0
--- /dev/null
+++ b/app-emulation/virtualbox-guest-modules/virtualbox-guest-modules-7.1.6.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=8
+
+inherit udev
+
+DESCRIPTION="Kernel Modules (guest) for Virtualbox"
+HOMEPAGE="http://www.virtualbox.org/"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE=""
+
+DEPEND="
+ acct-group/vboxguest
+ acct-group/vboxsf
+ acct-user/vboxguest
+ ~sys-kernel/${PN}-dkms-${PV}"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ insinto /etc/modprobe.d/
+ newins "${FILESDIR}"/virtualbox-guest-kmod virtualbox-guest.conf
+
+ insinto /lib/udev/rules.d
+ newins "${FILESDIR}"/virtualbox-guest-rules 60-virtualbox-guest-additions.rules
+}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/metadata/md5-cache/app-emulation/virtualbox-guest-additions-7.1.6-r1 b/metadata/md5-cache/app-emulation/virtualbox-guest-additions-7.1.6-r1
new file mode 100644
index 00000000..f8b7406f
--- /dev/null
+++ b/metadata/md5-cache/app-emulation/virtualbox-guest-additions-7.1.6-r1
@@ -0,0 +1,15 @@
+BDEPEND=>=dev-lang/yasm-0.6.2 >=dev-build/kbuild-0.1.9998.3127 sys-devel/bin86 sys-power/iasl virtual/pkgconfig
+DEFINED_PHASES=compile configure install postinst prepare
+DEPEND=app-emulation/virtualbox-guest-modules sys-libs/pam sys-libs/zlib dbus? ( sys-apps/dbus ) gui? ( x11-apps/xrandr x11-apps/xrefresh x11-libs/libX11 x11-libs/libXext x11-libs/libXmu x11-libs/libXt ) gui? ( x11-libs/libICE x11-libs/libSM x11-libs/libXau x11-libs/libXdmcp x11-base/xorg-proto )
+DESCRIPTION=VirtualBox user-space tools for Gentoo guests
+EAPI=8
+HOMEPAGE=https://www.virtualbox.org/
+INHERIT=edo readme.gentoo-r1 systemd toolchain-funcs
+IUSE=+dbus gui
+KEYWORDS=~amd64 ~x86
+LICENSE=GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )
+RDEPEND=app-emulation/virtualbox-guest-modules sys-libs/pam sys-libs/zlib dbus? ( sys-apps/dbus ) gui? ( x11-apps/xrandr x11-apps/xrefresh x11-libs/libX11 x11-libs/libXext x11-libs/libXmu x11-libs/libXt )
+SLOT=0/7.1
+SRC_URI=https://download.virtualbox.org/virtualbox/7.1.6/VirtualBox-7.1.6.tar.bz2 https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.0.tar.bz2
+_eclasses_=edo 367e103a74bf77e6a8da7894d999fa3c multilib b2a329026f2e404e9e371097dda47f96 readme.gentoo-r1 b045f3acf546393ab6b3170781875358 systemd 54bd206bb5c4efac6ae28b6b006713b0 toolchain-funcs 6afdb6107430c1832ca7e16aacbf8fa1
+_md5_=7b2d46b0eccdfc2f51ed7c7cf8319cff
diff --git a/metadata/md5-cache/app-emulation/virtualbox-guest-modules-7.1.6 b/metadata/md5-cache/app-emulation/virtualbox-guest-modules-7.1.6
new file mode 100644
index 00000000..681c3461
--- /dev/null
+++ b/metadata/md5-cache/app-emulation/virtualbox-guest-modules-7.1.6
@@ -0,0 +1,13 @@
+BDEPEND=virtual/pkgconfig
+DEFINED_PHASES=compile install postinst postrm
+DEPEND=acct-group/vboxguest acct-group/vboxsf acct-user/vboxguest ~sys-kernel/virtualbox-guest-modules-dkms-7.1.6
+DESCRIPTION=Kernel Modules (guest) for Virtualbox
+EAPI=8
+HOMEPAGE=http://www.virtualbox.org/
+INHERIT=udev
+KEYWORDS=amd64
+LICENSE=GPL-2
+RDEPEND=acct-group/vboxguest acct-group/vboxsf acct-user/vboxguest ~sys-kernel/virtualbox-guest-modules-dkms-7.1.6
+SLOT=0
+_eclasses_=multilib b2a329026f2e404e9e371097dda47f96 toolchain-funcs 6afdb6107430c1832ca7e16aacbf8fa1 udev f3d9a4376ebd22131726a68e1a0a058f
+_md5_=4af167ac0905c4dd3df23afbaa0bb4fd
diff --git a/metadata/md5-cache/sys-kernel/virtualbox-guest-modules-dkms-7.1.6 b/metadata/md5-cache/sys-kernel/virtualbox-guest-modules-dkms-7.1.6
new file mode 100644
index 00000000..73b3a861
--- /dev/null
+++ b/metadata/md5-cache/sys-kernel/virtualbox-guest-modules-dkms-7.1.6
@@ -0,0 +1,13 @@
+BDEPEND=>=dev-build/kbuild-0.1.9998.3127
+DEFINED_PHASES=compile configure install postinst prepare prerm
+DEPEND=sys-kernel/dkms
+DESCRIPTION=Kernel Modules (guest) source for Virtualbox
+EAPI=8
+HOMEPAGE=http://www.virtualbox.org/
+KEYWORDS=~amd64
+LICENSE=GPL-2
+RDEPEND=sys-kernel/dkms
+RESTRICT=mirror
+SLOT=0
+SRC_URI=https://download.virtualbox.org/virtualbox/7.1.6/VirtualBox-7.1.6.tar.bz2
+_md5_=0de8db54e057e9e18e6a6fa3e40760f5
diff --git a/metadata/pkg_desc_index b/metadata/pkg_desc_index
index 5342fa3b..b52b43e5 100644
--- a/metadata/pkg_desc_index
+++ b/metadata/pkg_desc_index
@@ -8,6 +8,8 @@ app-arch/unp 2.0_pre9-r1: Script for unpacking various file formats
app-backup/timeshift 24.06.3: A system restore utility for Linux
app-emulation/qemu-guest-agent 8.2.0-r6: QEMU Guest Agent (qemu-ga) for use when running inside a VM
app-emulation/steam 1.0.0.79: Installer, launcher and supplementary files for Valve's Steam client
+app-emulation/virtualbox-guest-additions 7.1.6-r1: VirtualBox user-space tools for Gentoo guests
+app-emulation/virtualbox-guest-modules 7.1.6: Kernel Modules (guest) for Virtualbox
app-emulation/virtualbox-modules 7.1.6: Kernel Modules for Virtualbox
app-laptop/tp_smapi 0.44-r1: IBM ThinkPad SMAPI BIOS driver
app-misc/calamares-config-redcore 1.314.1337-r18: Redcore Linux Calamares modules config
@@ -73,6 +75,7 @@ sys-kernel/linux-sources-redcore-lts 5.15.178-r1 6.1.130-r1 6.6.82-r1 6.12.18-r1
sys-kernel/nvidia-drivers-dkms 390.157-r8 470.256.02-r1 550.144.03: NVIDIA driver sources for linux
sys-kernel/tp_smapi-dkms 0.44-r4: IBM ThinkPad SMAPI BIOS driver sources
sys-kernel/vhba-dkms 20240917-r1: Virtual (SCSI) Host Bus Adapter kernel module for the CDEmu suite sources
+sys-kernel/virtualbox-guest-modules-dkms 7.1.6: Kernel Modules (guest) source for Virtualbox
sys-kernel/virtualbox-modules-dkms 7.1.6: Kernel Modules source for Virtualbox
sys-kernel/zfs-dkms 2.3.0: ZFS sources for linux
sys-power/radeon-profile 20200824-r10: Read current clocks of ATi/AMD Radeon cards
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
+}