diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-03-12 11:57:47 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-03-12 11:57:47 +0000 |
commit | 47ac19467d84100074607d6a9316806834a8a78e (patch) | |
tree | 2cc6559cb1b7252d816ce4503e33a6adbd0bf89b /app-emulation | |
parent | 2b1271615a4fa63945fdb87d0c6ef92e6b15d43b (diff) |
app-emulation/virtualbox-guest-additions : import from Gentoo, port to DKMS framework
Diffstat (limited to 'app-emulation')
12 files changed, 420 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 +} |