From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 9367D1581F0 for ; Fri, 24 Jan 2025 17:13:56 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 7DA9F343523 for ; Fri, 24 Jan 2025 17:13:56 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id A2A7111042D; Fri, 24 Jan 2025 17:13:52 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 9390211042D for ; Fri, 24 Jan 2025 17:13:52 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 29E36335C11 for ; Fri, 24 Jan 2025 17:13:52 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id B6195170C for ; Fri, 24 Jan 2025 17:13:50 +0000 (UTC) From: "Viorel Munteanu" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Viorel Munteanu" Message-ID: <1737738820.0ad7087efcfbd8f0825ba8c46ef4db7550a6e495.ceamac@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox-guest-additions/files/, ... X-VCS-Repository: repo/gentoo X-VCS-Files: app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.1.6-disable-vboxvideo-module.patch app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.24-r1.ebuild app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.1.6-r1.ebuild X-VCS-Directories: app-emulation/virtualbox-guest-additions/ app-emulation/virtualbox-guest-additions/files/ X-VCS-Committer: ceamac X-VCS-Committer-Name: Viorel Munteanu X-VCS-Revision: 0ad7087efcfbd8f0825ba8c46ef4db7550a6e495 X-VCS-Branch: master Date: Fri, 24 Jan 2025 17:13:50 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 29584bb2-725c-49e4-b293-88f028195200 X-Archives-Hash: ab6d53b628664a3804ac822e3db938e6 commit: 0ad7087efcfbd8f0825ba8c46ef4db7550a6e495 Author: Viorel Munteanu gentoo org> AuthorDate: Fri Jan 24 17:08:54 2025 +0000 Commit: Viorel Munteanu gentoo org> CommitDate: Fri Jan 24 17:13:40 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0ad7087e app-emulation/virtualbox-guest-additions: remove vboxvideo Remove deprecated vboxvideo module. Also remove the example xorg.conf file that was using it. Closes: https://bugs.gentoo.org/701088 Signed-off-by: Viorel Munteanu gentoo.org> ...-additions-7.1.6-disable-vboxvideo-module.patch | 19 ++ .../virtualbox-guest-additions-7.0.24-r1.ebuild | 285 ++++++++++++++++++++ .../virtualbox-guest-additions-7.1.6-r1.ebuild | 286 +++++++++++++++++++++ 3 files changed, 590 insertions(+) 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 000000000000..1ccf0baa3740 --- /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/virtualbox-guest-additions-7.0.24-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.24-r1.ebuild new file mode 100644 index 000000000000..272679693d42 --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.24-r1.ebuild @@ -0,0 +1,285 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev + +MY_PN="VirtualBox" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild +LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~x86" +IUSE="+dbus gui" + +RDEPEND=" + acct-group/vboxguest + acct-group/vboxsf + acct-user/vboxguest + 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 + ) +" +# some libs here are indirect dependencies, and also needed at compile time. +# keeping them in DEPEND to avoid warnings from qa-vdb. +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 + +VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src" +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 \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 + + # Provide kernel sources + 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 + + # PaX fixes (see bug #298988) + eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch + + # 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.0.16/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} + --with-linux="${KV_OUT_DIR}" + --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=_Gentoo + 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[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + local modlist=( vboxguest vboxsf ) + modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /etc/modprobe.d # 485996 + newins - vboxsf.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Internal Aliases - Do not edit + # ------------------------------ + alias fs-vboxsf vboxsf + EOF + + 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 + + # udev rule for vboxdrv + local udev_rules_dir="/lib/udev/rules.d" + dodir ${udev_rules_dir} + echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + + # VBoxClient autostart file + insinto /etc/xdg/autostart + doins "${FILESDIR}"/vboxclient.desktop + + systemd_dounit "${FILESDIR}/${PN}.service" + + readme.gentoo_create_doc +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + udev_reload + + 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 +} + +pkg_postrm() { + udev_reload +} 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 000000000000..ea448bd33c03 --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.1.6-r1.ebuild @@ -0,0 +1,286 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev + +MY_PN="VirtualBox" +MY_PV=${PV^^} +MY_P=${MY_PN}-${MY_PV} + +DESCRIPTION="VirtualBox kernel modules and 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}" + +# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild +LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~x86" +IUSE="+dbus gui" + +RDEPEND=" + acct-group/vboxguest + acct-group/vboxsf + acct-user/vboxguest + 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 + ) +" +# some libs here are indirect dependencies, and also needed at compile time. +# keeping them in DEPEND to avoid warnings from qa-vdb. +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 + +VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src" +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 \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 + + # Provide kernel sources + 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 + + # PaX fixes (see bug #298988) + eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch + + # 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} + --with-linux="${KV_OUT_DIR}" + --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=_Gentoo + 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[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + local modlist=( vboxguest vboxsf ) + modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /etc/modprobe.d # 485996 + newins - vboxsf.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Internal Aliases - Do not edit + # ------------------------------ + alias fs-vboxsf vboxsf + EOF + + 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 + + # udev rule for vboxdrv + local udev_rules_dir="/lib/udev/rules.d" + dodir ${udev_rules_dir} + echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + + # VBoxClient autostart file + insinto /etc/xdg/autostart + doins "${FILESDIR}"/vboxclient.desktop + + systemd_dounit "${FILESDIR}/${PN}.service" + + readme.gentoo_create_doc +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + udev_reload + + 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 +} + +pkg_postrm() { + udev_reload +}