public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2016-03-11 17:31 Lars Wendler
  0 siblings, 0 replies; 32+ messages in thread
From: Lars Wendler @ 2016-03-11 17:31 UTC (permalink / raw
  To: gentoo-commits

commit:     249026b1b1d650cf5c2c071fc35b934881397928
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 11 17:31:20 2016 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Fri Mar 11 17:31:44 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=249026b1

app-emulation/virtualbox: Revbump to install VBoxVolInfo (via USE="lvm")

Package-Manager: portage-2.2.28
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 .../virtualbox/files/virtualbox-ose-5-wrapper      | 113 ++++++
 app-emulation/virtualbox/metadata.xml              |   1 +
 .../virtualbox/virtualbox-5.0.16-r1.ebuild         | 429 +++++++++++++++++++++
 3 files changed, 543 insertions(+)

diff --git a/app-emulation/virtualbox/files/virtualbox-ose-5-wrapper b/app-emulation/virtualbox/files/virtualbox-ose-5-wrapper
new file mode 100644
index 0000000..e2249b0
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-ose-5-wrapper
@@ -0,0 +1,113 @@
+#!/bin/sh
+## @file
+# Oracle VM VirtualBox startup script, Linux hosts.
+#
+
+#
+# Copyright (C) 2006-2015 Oracle Corporation
+#
+# 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 (GPL) 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.
+#
+
+PATH="/usr/bin:/bin:/usr/sbin:/sbin"
+CONFIG="/etc/vbox/vbox.cfg"
+
+test -r "${CONFIG}" &&
+    . "${CONFIG}"
+test -z "${INSTALL_DIR}" &&
+    if test -f /usr/lib/virtualbox/VirtualBox &&
+        test -x /usr/lib/virtualbox/VirtualBox; then
+        INSTALL_DIR=/usr/lib/virtualbox
+    else
+        echo "Could not find VirtualBox installation. Please reinstall."
+        exit 1
+    fi
+
+# Note: This script must not fail if the module was not successfully installed
+#       because the user might not want to run a VM but only change VM params!
+
+if [ "$1" = "shutdown" ]; then
+    SHUTDOWN="true"
+elif ! lsmod|grep -q vboxdrv; then
+    cat << EOF
+WARNING: The vboxdrv kernel module is not loaded. Either there is no module
+         available for the current kernel (`uname -r`) or it failed to
+         load. Please recompile the kernel module and install it by
+
+           for m in vbox{drv,netadp,netflt}; do modprobe \$m; done
+
+         You will not be able to start VMs until this problem is fixed.
+EOF
+elif [ ! -c /dev/vboxdrv ]; then
+    cat << EOF
+WARNING: The character device /dev/vboxdrv does not exist.
+         Please try to reload all the needed kernel modules by:
+
+           for m in vbox{netflt,netadp,drv}; do rmmod \$m; done
+           for m in vbox{drv,netadp,netflt}; do modprobe \$m; done
+
+         and if that is not successful, try to re-install the package by:
+
+           emerge -1av app-emulation/virtualbox-modules
+
+         You will not be able to start VMs until this problem is fixed.
+EOF
+fi
+
+SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'`
+if [ -z "$SERVER_PID" ]; then
+    # Server not running yet/anymore, cleanup socket path.
+    # See IPC_GetDefaultSocketPath()!
+    if [ -n "$LOGNAME" ]; then
+        rm -rf /tmp/.vbox-$LOGNAME-ipc > /dev/null 2>&1
+    else
+        rm -rf /tmp/.vbox-$USER-ipc > /dev/null 2>&1
+    fi
+fi
+
+if [ "$SHUTDOWN" = "true" ]; then
+    if [ -n "$SERVER_PID" ]; then
+        kill -TERM $SERVER_PID
+        sleep 2
+    fi
+    exit 0
+fi
+
+APP=`basename $0`
+case "$APP" in
+    VirtualBox|virtualbox)
+        exec "$INSTALL_DIR/VirtualBox" "$@"
+        ;;
+    VBoxManage|vboxmanage)
+        exec "$INSTALL_DIR/VBoxManage" "$@"
+        ;;
+    VBoxSDL|vboxsdl)
+        exec "$INSTALL_DIR/VBoxSDL" "$@"
+        ;;
+    VBoxVRDP|VBoxHeadless|vboxheadless)
+        exec "$INSTALL_DIR/VBoxHeadless" "$@"
+        ;;
+    VBoxAutostart|vboxautostart)
+        exec "$INSTALL_DIR/VBoxAutostart" "$@"
+        ;;
+    VBoxBalloonCtrl|vboxballoonctrl)
+        exec "$INSTALL_DIR/VBoxBalloonCtrl" "$@"
+        ;;
+    VBoxDTrace|vboxdtrace)
+        exec "$INSTALL_DIR/VBoxDTrace" "$@"
+        ;;
+    vboxwebsrv)
+        exec "$INSTALL_DIR/vboxwebsrv" "$@"
+        ;;
+    *)
+        echo "Unknown application - $APP"
+        exit 1
+        ;;
+esac
+exit 0

diff --git a/app-emulation/virtualbox/metadata.xml b/app-emulation/virtualbox/metadata.xml
index 3dd12a5..a070b76 100644
--- a/app-emulation/virtualbox/metadata.xml
+++ b/app-emulation/virtualbox/metadata.xml
@@ -9,6 +9,7 @@
 	<flag name="additions">Install Guest System Tools ISO</flag>
 	<flag name="extensions">Install extension module packages</flag>
 	<flag name="headless">Build without any graphic frontend</flag>
+	<flag name="lvm">Build VBoxVolInfo that needs devicemapper from <pkg>sys-fs/lvm2</pkg>.</flag>
 	<flag name="sdk">Enable building of SDK</flag>
 	<flag name="udev">Controls installation of special USB udev rules.</flag>
 	<flag name="vboxwebsrv">Build and install the VirtualBox webservice</flag>

diff --git a/app-emulation/virtualbox/virtualbox-5.0.16-r1.ebuild b/app-emulation/virtualbox/virtualbox-5.0.16-r1.ebuild
new file mode 100644
index 0000000..c842c91
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-5.0.16-r1.ebuild
@@ -0,0 +1,429 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+inherit eutils fdo-mime flag-o-matic java-pkg-opt-2 linux-info multilib pax-utils python-single-r1 toolchain-funcs udev
+
+MY_PV="${PV/beta/BETA}"
+MY_PV="${MY_PV/rc/RC}"
+MY_P=VirtualBox-${MY_PV}
+SRC_URI="http://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2
+	https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-5.0.16-patches-01.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise as well as home use"
+HOMEPAGE="http://www.virtualbox.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="alsa doc headless java libressl lvm pam pulseaudio +opengl python +qt4 +sdk +udev vboxwebsrv vnc"
+
+RDEPEND="!app-emulation/virtualbox-bin
+	~app-emulation/virtualbox-modules-${PV}
+	dev-libs/libIDL
+	>=dev-libs/libxslt-1.1.19
+	net-misc/curl
+	dev-libs/libxml2
+	media-libs/libpng:0=
+	media-libs/libvpx:0=
+	sys-libs/zlib
+	!headless? (
+		media-libs/libsdl:0[X,video]
+		x11-libs/libX11
+		x11-libs/libXcursor
+		x11-libs/libXext
+		x11-libs/libXmu
+		x11-libs/libXt
+		opengl? ( virtual/opengl media-libs/freeglut )
+		qt4? (
+			dev-qt/qtgui:4
+			dev-qt/qtcore:4
+			opengl? ( dev-qt/qtopengl:4 )
+			x11-libs/libXinerama
+		)
+	)
+	java? ( >=virtual/jre-1.6:= )
+	libressl? ( dev-libs/libressl:= )
+	!libressl? ( dev-libs/openssl:0= )
+	lvm? ( sys-fs/lvm2 )
+	udev? ( >=virtual/udev-171 )
+	vnc? ( >=net-libs/libvncserver-0.9.9 )"
+DEPEND="${RDEPEND}
+	>=dev-util/kbuild-0.1.9998_pre20131130
+	>=dev-lang/yasm-0.6.2
+	sys-devel/bin86
+	sys-libs/libcap
+	sys-power/iasl
+	virtual/pkgconfig
+	alsa? ( >=media-libs/alsa-lib-1.0.13 )
+	doc? (
+		dev-texlive/texlive-basic
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexrecommended
+		dev-texlive/texlive-latexextra
+		dev-texlive/texlive-fontsrecommended
+		dev-texlive/texlive-fontsextra
+	)
+	!headless? ( x11-libs/libXinerama )
+	java? ( >=virtual/jre-1.6:= )
+	pam? ( sys-libs/pam )
+	pulseaudio? ( media-sound/pulseaudio )
+	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
+	${PYTHON_DEPS}"
+
+QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so
+	usr/lib/virtualbox/VBoxSDL.so
+	usr/lib/virtualbox/VBoxSharedFolders.so
+	usr/lib/virtualbox/VBoxDD2.so
+	usr/lib/virtualbox/VBoxOGLrenderspu.so
+	usr/lib/virtualbox/VBoxPython.so
+	usr/lib/virtualbox/VBoxDD.so
+	usr/lib/virtualbox/VBoxDDU.so
+	usr/lib/virtualbox/VBoxREM64.so
+	usr/lib/virtualbox/VBoxSharedClipboard.so
+	usr/lib/virtualbox/VBoxHeadless.so
+	usr/lib/virtualbox/VBoxRT.so
+	usr/lib/virtualbox/VBoxREM.so
+	usr/lib/virtualbox/VBoxSettings.so
+	usr/lib/virtualbox/VBoxKeyboard.so
+	usr/lib/virtualbox/VBoxSharedCrOpenGL.so
+	usr/lib/virtualbox/VBoxVMM.so
+	usr/lib/virtualbox/VirtualBox.so
+	usr/lib/virtualbox/VBoxOGLhosterrorspu.so
+	usr/lib/virtualbox/components/VBoxC.so
+	usr/lib/virtualbox/components/VBoxSVCM.so
+	usr/lib/virtualbox/components/VBoxDDU.so
+	usr/lib/virtualbox/components/VBoxRT.so
+	usr/lib/virtualbox/components/VBoxREM.so
+	usr/lib/virtualbox/components/VBoxVMM.so
+	usr/lib/virtualbox/VBoxREM32.so
+	usr/lib/virtualbox/VBoxPython2_7.so
+	usr/lib/virtualbox/VBoxXPCOMC.so
+	usr/lib/virtualbox/VBoxOGLhostcrutil.so
+	usr/lib/virtualbox/VBoxNetDHCP.so
+	usr/lib/virtualbox/VBoxNetNAT.so"
+
+REQUIRED_USE="
+	java? ( sdk )
+	python? ( sdk )
+	vboxwebsrv? ( java )
+	${PYTHON_REQUIRED_USE}
+"
+
+pkg_setup() {
+	if ! use headless && ! use qt4 ; then
+		einfo "No USE=\"qt4\" selected, this build will not include"
+		einfo "any Qt frontend."
+	elif use headless && use qt4 ; then
+		einfo "You selected USE=\"headless qt4\", defaulting to"
+		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
+	fi
+
+	if ! use opengl ; then
+		einfo "No USE=\"opengl\" selected, this build will lack"
+		einfo "the OpenGL feature."
+	fi
+	if ! use python ; then
+		einfo "You have disabled the \"python\" USE flag. This will only"
+		einfo "disable the python bindings being installed."
+	fi
+	java-pkg-opt-2_pkg_setup
+	python-single-r1_pkg_setup
+
+	tc-ld-disable-gold #bug 488176
+	tc-export CC CXX LD AR RANLIB
+	export HOST_CC="$(tc-getBUILD_CC)"
+}
+
+src_prepare() {
+	# Remove shipped binaries (kBuild,yasm), see bug #232775
+	rm -r kBuild/bin tools || die
+
+	# Disable things unused or split into separate ebuilds
+	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+	# Respect LDFLAGS
+	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+	# Do not use hard-coded ld (related to bug #488176)
+	sed -e '/QUIET)ld /s@ld @$(LD) @' \
+		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+	# Use PAM only when pam USE flag is enbaled (bug #376531)
+	if ! use pam ; then
+		elog "Disabling PAM removes the possibility to use the VRDP features."
+		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+			src/VBox/HostServices/Makefile.kmk || die
+	fi
+
+	# add correct java path
+	if use java ; then
+		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+			-i "${S}"/Config.kmk || die
+		java-pkg-opt-2_src_prepare
+	fi
+
+	if ! gcc-specs-pie ; then
+		rm "${WORKDIR}/patches/050_${PN}-5.0.2-nopie.patch" || die
+	fi
+
+	eapply "${WORKDIR}/patches"
+
+	eapply_user
+}
+
+src_configure() {
+	local myconf
+	use alsa       || myconf+=( --disable-alsa )
+	use doc        || myconf+=( --disable-docs )
+	use java       || myconf+=( --disable-java )
+	use lvm        || myconf+=( --disable-devmapper )
+	use opengl     || myconf+=( --disable-opengl )
+	use pulseaudio || myconf+=( --disable-pulse )
+	use python     || myconf+=( --disable-python )
+	use vboxwebsrv && myconf+=( --enable-webservice )
+	use vnc        && myconf+=( --enable-vnc )
+	if ! use headless ; then
+		use qt4 || myconf+=( --disable-qt4 )
+	else
+		myconf+=( --build-headless --disable-opengl )
+	fi
+	if use amd64 && ! has_multilib_profile ; then
+		myconf+=( --disable-vmmraw )
+	fi
+	# not an autoconf script
+	./configure \
+		--with-gcc="$(tc-getCC)" \
+		--with-g++="$(tc-getCXX)" \
+		--disable-dbus \
+		--disable-kmods \
+		${myconf[@]} \
+		|| die "configure failed"
+}
+
+src_compile() {
+	source ./env.sh || die
+
+	# Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+	# and strip all flags
+	# strip-flags
+
+	MAKEJOBS=$(echo ${MAKEOPTS} | egrep -o '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+')
+	MAKELOAD=$(echo ${MAKEOPTS} | egrep -o '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+') #'
+	MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+	MAKE="kmk" emake \
+		VBOX_BUILD_PUBLISHER=_Gentoo \
+		TOOL_GCC3_CC="$(tc-getCC)" TOOL_GCC3_CXX="$(tc-getCXX)" \
+		TOOL_GCC3_AS="$(tc-getCC)" TOOL_GCC3_AR="$(tc-getAR)" \
+		TOOL_GCC3_LD="$(tc-getCXX)" TOOL_GCC3_LD_SYSMOD="$(tc-getLD)" \
+		TOOL_GCC3_CFLAGS="${CFLAGS}" TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" \
+		VBOX_GCC_OPT="${CXXFLAGS}" \
+		TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
+		all
+}
+
+src_install() {
+	cd "${S}"/out/linux.${ARCH}/release/bin || die
+
+	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each fwfile
+
+	vbox_inst() {
+		local binary="${1}"
+		local perms="${2:-0750}"
+		local path="${3:-${vbox_inst_path}}"
+
+		[[ -n "${binary}" ]] || die "vbox_inst: No binray given!"
+		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+		insinto ${path}
+		doins ${binary}
+		fowners root:vboxusers ${path}/${binary}
+		fperms ${perms} ${path}/${binary}
+	}
+
+	# Create configuration files
+	insinto /etc/vbox
+	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+	# Set the right libdir
+	sed -i \
+		-e "s@MY_LIBDIR@$(get_libdir)@" \
+		"${D}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+	# Install the wrapper script
+	exeinto ${vbox_inst_path}
+	newexe "${FILESDIR}/${PN}-ose-5-wrapper" "VBox"
+	fowners root:vboxusers ${vbox_inst_path}/VBox
+	fperms 0750 ${vbox_inst_path}/VBox
+
+	# Install binaries and libraries
+	insinto ${vbox_inst_path}
+	doins -r components
+
+	# *.rc files for x86_64 are only available on multilib systems
+	local rcfiles="*.rc"
+	if use amd64 && ! has_multilib_profile ; then
+		rcfiles=""
+	fi
+	for each in VBox{ExtPackHelperApp,Manage,SVC,Tunctl,XPCOMIPCD} *so *r0 ${rcfiles} ; do
+		vbox_inst ${each}
+	done
+
+	# These binaries need to be suid root in any case.
+	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+		vbox_inst ${each} 4750
+	done
+
+	# Install EFI Firmware files (bug #320757)
+	pushd "${S}"/src/VBox/Devices/EFI/FirmwareBin &>/dev/null || die
+	for fwfile in VBoxEFI{32,64}.fd ; do
+		vbox_inst ${fwfile} 0644
+	done
+	popd &>/dev/null || die
+
+	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+	# VBoxXPCOMIPCD (bug #524202)
+	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+		pax-mark -m "${D}"${vbox_inst_path}/${each}
+	done
+
+	# Symlink binaries to the shipped wrapper
+	for each in vbox{headless,manage} VBox{Headless,Manage,VRDP} ; do
+		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+	done
+	dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
+
+	# VRDPAuth only works with this (bug #351949)
+	dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+
+	# set an env-variable for 3rd party tools
+	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	doenvd "${T}/90virtualbox"
+
+	if ! use headless ; then
+		vbox_inst VBoxSDL 4750
+		pax-mark -m "${D}"${vbox_inst_path}/VBoxSDL
+
+		for each in vboxsdl VBoxSDL ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+
+		if use opengl && use qt4 ; then
+			vbox_inst VBoxTestOGL
+			pax-mark -m "${D}"${vbox_inst_path}/VBoxTestOGL
+		fi
+
+		if use qt4 ; then
+			vbox_inst VirtualBox 4750
+			pax-mark -m "${D}"${vbox_inst_path}/VirtualBox
+
+			for each in virtualbox VirtualBox ; do
+				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+			done
+
+			insinto /usr/share/${PN}
+			doins -r nls
+
+			newmenu "${FILESDIR}"/${PN}-ose.desktop-2 ${PN}.desktop
+		fi
+
+		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+		for size in 16 32 48 64 128 ; do
+			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+		done
+		newicon ${PN}-48px.png ${PN}.png
+		doicon -s scalable ${PN}.svg
+		popd &>/dev/null || die
+	fi
+
+	if use java ; then
+		java-pkg_regjar "${D}${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+		java-pkg_regso "${D}${vbox_inst_path}/libvboxjxpcom.so"
+	fi
+
+	if use lvm ; then
+		vbox_inst VBoxVolInfo 4750
+		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+	fi
+
+	if use sdk ; then
+		insinto ${vbox_inst_path}
+		doins -r sdk
+	fi
+
+	if use udev ; then
+		# New way of handling USB device nodes for VBox (bug #356215)
+		local udevdir="$(get_udevdir)"
+		insinto ${udevdir}
+		doins VBoxCreateUSBNode.sh
+		fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh
+		fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
+		insinto ${udevdir}/rules.d
+		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \
+			> "${T}"/10-virtualbox.rules || die
+		doins "${T}"/10-virtualbox.rules
+	fi
+
+	if use vboxwebsrv ; then
+		vbox_inst vboxwebsrv
+		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+	fi
+}
+
+pkg_postinst() {
+	fdo-mime_desktop_database_update
+
+	if use udev ; then
+		udevadm control --reload-rules \
+			&& udevadm trigger --subsystem-match=usb
+	fi
+
+	if ! use headless && use qt4 ; then
+		elog "To launch VirtualBox just type: \"virtualbox\"."
+	fi
+	elog "You must be in the vboxusers group to use VirtualBox."
+	elog ""
+	elog "The latest user manual is available for download at:"
+	elog "http://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+	elog ""
+	elog "For advanced networking setups you should emerge:"
+	elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
+	elog ""
+	elog "IMPORTANT!"
+	elog "If you upgrade from app-emulation/virtualbox-ose make sure to run"
+	elog "\"env-update\" as root and logout and relogin as the user you wish"
+	elog "to run ${PN} as."
+	elog ""
+	elog "Starting with version 4.0.0, ${PN} has USB-1 support."
+	elog "For USB-2 support, PXE-boot ability and VRDP support please emerge"
+	elog "  app-emulation/virtualbox-extpack-oracle"
+	elog "package."
+	elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and"
+	elog "the \"extension\" USE flag. For installation of the guest additions ISO"
+	elog "image, please emerge"
+	elog "  app-emulation/virtualbox-additions"
+	elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge"
+	elog "  app-emulation/virtualbox-extpack-oracle"
+	if ! use udev ; then
+		elog ""
+		elog "WARNING!"
+		elog "Without USE=udev, USB devices will likely not work in ${PN}."
+	elif [ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ] ; then
+		elog ""
+		elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
+		elog "or else USB in ${PN} won't work."
+	fi
+}
+
+pkg_postrm() {
+	fdo-mime_desktop_database_update
+}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2017-02-21 22:05 Magnus Granberg
  0 siblings, 0 replies; 32+ messages in thread
From: Magnus Granberg @ 2017-02-21 22:05 UTC (permalink / raw
  To: gentoo-commits

commit:     2133ca0baf659da8abfe799894f8e33699f8637f
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 21 22:02:09 2017 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Tue Feb 21 22:04:44 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2133ca0b

app-emulation/virtualbox-5.1.4: compile get kill by PaX

Compile get kill by PaX enable kernels, see bug 591582

Reported-by: Sarah Salzstein <sarah.salzstein <AT> gmail.com>
Patch-by: Quentin Minster <quentin <AT> minster.io>

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 .../files/virtualbox-5.1.4-paxmark-bldprogs.patch  | 59 ++++++++++++++++++++++
 app-emulation/virtualbox/metadata.xml              |  1 +
 app-emulation/virtualbox/virtualbox-5.1.14.ebuild  |  8 ++-
 3 files changed, 67 insertions(+), 1 deletion(-)

diff --git a/app-emulation/virtualbox/files/virtualbox-5.1.4-paxmark-bldprogs.patch b/app-emulation/virtualbox/files/virtualbox-5.1.4-paxmark-bldprogs.patch
new file mode 100644
index 0000000000..50fa306d17
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-5.1.4-paxmark-bldprogs.patch
@@ -0,0 +1,59 @@
+2017-02-20  Quentin Minster <quentin@minster.io>
+
+	#https://bugs.gentoo.org/show_bug.cgi?id=591582
+	* Config.kmk: add paxmark befor VBOX_VBOXTPG get run.
+	* src/VBox/VMM/Makefile.kmk: add paxmark befor VBOX_VBOXCPP get run.
+	* src/VBox/Main/Makefile.kmk: add paxmark befor USBIdDatabaseGenerator_1_TARGET get run.
+
+--- a/Config.kmk
++++ b/Config.kmk	2016-09-21 02:22:28 
+@@ -3719,11 +3719,13 @@
+ 		$(if-expr $(intersects $(KBUILD_TARGET_ARCH),$(KBUILD_ARCHES_64)),-64,-32) \
+ 		-h --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
+ define TOOL_VBoxTpG_DTRACE_HDR_CMDS
++	$(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
+ 	$(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)"
+ endef
+ TOOL_VBoxTpG_DTRACE_OBJ_NOT_NEEDED :=
+ TOOL_VBoxTpG_DTRACE_OBJ_FLAGS      := -G --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
+ define TOOL_VBoxTpG_DTRACE_OBJ_CMDS
++	$(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
+ 	$(QUIET)$(VBOX_VBOXTPG) \
+ 		$(if-expr $(intersects $(bld_trg_arch),$(KBUILD_ARCHES_64)),-64,-32) \
+ 		$(flags) \
+@@ -3738,6 +3740,7 @@
+ TOOL_VBoxTpG-Disabled_DTRACE_DEPORD     = $(VBOX_VBOXTPG)
+ TOOL_VBoxTpG-Disabled_DTRACE_HDR_FLAGS := -h
+ define TOOL_VBoxTpG-Disabled_DTRACE_HDR_CMDS
++	$(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
+ 	$(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)"
+ endef
+ TOOL_VBoxTpG-Disabled_DTRACE_OBJ_NOT_NEEDED := $(KBUILD_OSES)
+@@ -3752,6 +3755,7 @@
+ TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS =
+ define TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS
+ 	$(TOOL_StandardDTrace_DTRACE_HDR_CMDS)
++	$(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
+ 	$(QUIET)$(VBOX_VBOXTPG) --generate-wrapper-header --host-$(VBOX_HC_ARCH_BITS)-bit --ring-3-context \
+ 		$(filter-out -C, $(filter-out -h,$(flags))) \
+ 		-o "$(out).tmp" -s "$(source)"
+--- a/src/VBox/VMM/Makefile.kmk
++++ b/src/VBox/VMM/Makefile.kmk	2016-09-21 02:26:11 
+@@ -795,6 +795,7 @@
+  define def_vmm_lib_dtrace_preprocess
+   $$$$(VMMLibDTrace_0_OUTDIR)/$1: $2 $$(VBOX_VBOXCPP) | $$$$(dir $$$$@)
+ 	$$(QUIET)$$(call MSG_GENERATE,VMMLibDTrace,$$@,$$<)
++	$$(QUIET)paxmark.sh -m "$(VBOX_VBOXCPP)"
+ 	$$(QUIET)$(VBOX_VBOXCPP) -d \
+ 		-D VBOX_FOR_DTRACE_LIB \
+ 		-D VBOX_FOR_DTRACE_LIB_$(toupper $(KBUILD_TARGET_ARCH)) \
+--- a/src/VBox/Main/Makefile.kmk
++++ b/src/VBox/Main/Makefile.kmk	2016-09-21 02:31:23 
+@@ -522,6 +522,7 @@
+  $$(VBoxSVC_0_OUTDIR)/USBIdDatabase.cpp:  $$(USBIdDatabaseGenerator_1_TARGET) \
+  		$(PATH_SUB_CURRENT)/src-server/usb.ids $(PATH_SUB_CURRENT)/src-server/custom.ids | $$(dir $$@)
+ 	$(call MSG_GENERATE,USBIdDatabase,$@,$<)
++	$(QUIET)paxmark.sh -m "$(USBIdDatabaseGenerator_1_TARGET)"
+ 	$(QUIET)$(USBIdDatabaseGenerator_1_TARGET) -o "$@" $(filter %.ids,$^)
+ 
+  BLDPROGS += USBIdDatabaseGenerator

diff --git a/app-emulation/virtualbox/metadata.xml b/app-emulation/virtualbox/metadata.xml
index eaaefd5f24..d6912d5575 100644
--- a/app-emulation/virtualbox/metadata.xml
+++ b/app-emulation/virtualbox/metadata.xml
@@ -15,6 +15,7 @@
 <use>
   <flag name="headless">Build without any graphic frontend</flag>
   <flag name="lvm">Build VBoxVolInfo that needs devicemapper from <pkg>sys-fs/lvm2</pkg>.</flag>
+  <flag name="pax_kernel">Apply patch needed for pax enabled kernels.</flag>
   <flag name="sdk">Enable building of SDK</flag>
   <flag name="udev">Controls installation of special USB udev rules.</flag>
   <flag name="vboxwebsrv">Build and install the VirtualBox webservice</flag>

diff --git a/app-emulation/virtualbox/virtualbox-5.1.14.ebuild b/app-emulation/virtualbox/virtualbox-5.1.14.ebuild
index e9f05dbdd1..96ab03d27f 100644
--- a/app-emulation/virtualbox/virtualbox-5.1.14.ebuild
+++ b/app-emulation/virtualbox/virtualbox-5.1.14.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="http://www.virtualbox.org/"
 LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS="~amd64 ~x86"
-IUSE="alsa debug doc headless java libressl lvm pam pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
+IUSE="alsa debug doc headless java libressl lvm pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
 
 RDEPEND="!app-emulation/virtualbox-bin
 	~app-emulation/virtualbox-modules-${PV}
@@ -75,6 +75,7 @@ DEPEND="${RDEPEND}
 	!headless? ( x11-libs/libXinerama )
 	java? ( >=virtual/jre-1.6:= )
 	pam? ( sys-libs/pam )
+	pax_kernel? ( sys-apps/elfix )
 	pulseaudio? ( media-sound/pulseaudio )
 	qt5? ( dev-qt/linguist-tools:5 )
 	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
@@ -183,6 +184,11 @@ src_prepare() {
 		rm "${WORKDIR}"/patches/050_${PN}-*-nopie.patch || die
 	fi
 
+	# Only add paxmark patch when we're on pax_kernel
+	if use pax_kernel ; then
+		epatch "${FILESDIR}"/virtualbox-5.1.4-paxmark-bldprogs.patch || die
+	fi
+
 	eapply "${WORKDIR}/patches"
 
 	eapply_user


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2017-05-11 12:07 Lars Wendler
  0 siblings, 0 replies; 32+ messages in thread
From: Lars Wendler @ 2017-05-11 12:07 UTC (permalink / raw
  To: gentoo-commits

commit:     711bd6953ba3b6e086e30f77048b693f31082d73
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Thu May 11 12:07:06 2017 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Thu May 11 12:07:24 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=711bd695

app-emulation/virtualbox: Fixed OpenGL issue (bug #616238).

Package-Manager: Portage-2.3.5, Repoman-2.3.2

 .../virtualbox-5.1.22-opengl_dlopen_fix.patch      | 167 +++++++++++++++++++++
 ...x-5.1.22.ebuild => virtualbox-5.1.22-r1.ebuild} |   1 +
 2 files changed, 168 insertions(+)

diff --git a/app-emulation/virtualbox/files/virtualbox-5.1.22-opengl_dlopen_fix.patch b/app-emulation/virtualbox/files/virtualbox-5.1.22-opengl_dlopen_fix.patch
new file mode 100644
index 00000000000..71fa978ca6e
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-5.1.22-opengl_dlopen_fix.patch
@@ -0,0 +1,167 @@
+Index: VirtualBox-5.1.22/src/VBox/HostDrivers/Support/posix/SUPR3HardenedMain-posix.cpp
+===================================================================
+--- VirtualBox-5.1.22/src/VBox/HostDrivers/Support/posix/SUPR3HardenedMain-posix.cpp	(revision 115126)
++++ VirtualBox-5.1.22/src/VBox/HostDrivers/Support/posix/SUPR3HardenedMain-posix.cpp	(revision 115307)
+@@ -341,6 +341,7 @@
+      * Patch 64-bit hosts.
+      */
+     uint32_t cRipRelMovs = 0;
++    uint32_t cRelCalls = 0;
+ 
+     /* Just use the disassembler to skip 12 bytes or more, we might need to
+        rewrite mov instructions using RIP relative addressing. */
+@@ -349,7 +350,8 @@
+         cbInstr = 1;
+         int rc = DISInstr(pbTarget + offJmpBack, DISCPUMODE_64BIT, &Dis, &cbInstr);
+         if (   RT_FAILURE(rc)
+-            || (Dis.pCurInstr->fOpType & DISOPTYPE_CONTROLFLOW)
++            || (   Dis.pCurInstr->fOpType & DISOPTYPE_CONTROLFLOW
++                && Dis.pCurInstr->uOpcode != OP_CALL)
+             || (   Dis.ModRM.Bits.Mod == 0
+                 && Dis.ModRM.Bits.Rm  == 5 /* wrt RIP */
+                 && Dis.pCurInstr->uOpcode != OP_MOV))
+@@ -357,15 +359,23 @@
+ 
+         if (Dis.ModRM.Bits.Mod == 0 && Dis.ModRM.Bits.Rm == 5 /* wrt RIP */)
+             cRipRelMovs++;
++        if (   Dis.pCurInstr->uOpcode == OP_CALL
++            && (Dis.pCurInstr->fOpType & DISOPTYPE_RELATIVE_CONTROLFLOW))
++            cRelCalls++;
+ 
+         offJmpBack += cbInstr;
+         cbPatchMem += cbInstr;
+     }
+ 
++    /*
++     * Each relative call requires extra bytes as it is converted to a pushq imm32
++     * + mov [RSP+4], imm32 + a jmp qword [$+8 wrt RIP] to avoid clobbering registers.
++     */
++    cbPatchMem += cRelCalls * RT_ALIGN_32(13 + 6 + 8, 8);
+     cbPatchMem += 14; /* jmp qword [$+8 wrt RIP] + 8 byte address to jump to. */
+     cbPatchMem = RT_ALIGN_32(cbPatchMem, 8);
+ 
+-    /* Allocate suitable exectuable memory available. */
++    /* Allocate suitable executable memory available. */
+     bool fConvRipRelMovs = false;
+     uint8_t *pbPatchMem = supR3HardenedMainPosixExecMemAlloc(cbPatchMem, pbTarget, cRipRelMovs > 0);
+     if (!pbPatchMem)
+@@ -396,7 +406,8 @@
+         cbInstr = 1;
+         int rc = DISInstr(pbTarget + offInsn, DISCPUMODE_64BIT, &Dis, &cbInstr);
+         if (   RT_FAILURE(rc)
+-            || (Dis.pCurInstr->fOpType & DISOPTYPE_CONTROLFLOW))
++            || (   Dis.pCurInstr->fOpType & DISOPTYPE_CONTROLFLOW
++                && Dis.pCurInstr->uOpcode != OP_CALL))
+             return VERR_SUPLIB_UNEXPECTED_INSTRUCTION;
+ 
+         if (   Dis.ModRM.Bits.Mod == 0
+@@ -439,6 +450,34 @@
+                 pbPatchMem   += sizeof(int32_t);
+             }
+         }
++        else if (   Dis.pCurInstr->uOpcode == OP_CALL
++                 && (Dis.pCurInstr->fOpType & DISOPTYPE_RELATIVE_CONTROLFLOW))
++        {
++            /* Convert to absolute jump. */
++            uintptr_t uAddr = (uintptr_t)&pbTarget[offInsn + cbInstr] + (intptr_t)Dis.Param1.uValue;
++
++            /* Skip the push instructions till the return address is known. */
++            uint8_t *pbPatchMemPush = pbPatchMem;
++            pbPatchMem += 13;
++
++            *pbPatchMem++ = 0xff; /* jmp qword [$+8 wrt RIP] */
++            *pbPatchMem++ = 0x25;
++            *(uint32_t *)pbPatchMem = (uint32_t)(RT_ALIGN_PT(pbPatchMem + 4, 8, uint8_t *) - (pbPatchMem + 4));
++            pbPatchMem = RT_ALIGN_PT(pbPatchMem + 4, 8, uint8_t *);
++            *(uint64_t *)pbPatchMem = uAddr;
++            pbPatchMem += sizeof(uint64_t);
++
++            /* Push the return address onto stack. Difficult on amd64 without clobbering registers... */
++            uintptr_t uAddrReturn = (uintptr_t)pbPatchMem;
++            *pbPatchMemPush++ = 0x68; /* push imm32 sign-extended as 64-bit*/
++            *(uint32_t *)pbPatchMemPush = RT_LO_U32(uAddrReturn);
++            pbPatchMemPush += sizeof(uint32_t);
++            *pbPatchMemPush++ = 0xc7;
++            *pbPatchMemPush++ = 0x44;
++            *pbPatchMemPush++ = 0x24;
++            *pbPatchMemPush++ = 0x04; /* movl [RSP+4], imm32 */
++            *(uint32_t *)pbPatchMemPush = RT_HI_U32(uAddrReturn);
++        }
+         else
+         {
+             memcpy(pbPatchMem, pbTarget + offInsn, cbInstr);
+Index: VirtualBox-5.1.22/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
+===================================================================
+--- VirtualBox-5.1.22/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp	(revision 115126)
++++ VirtualBox-5.1.22/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp	(revision 115307)
+@@ -86,6 +86,9 @@
+ /** The max path length acceptable for a trusted path. */
+ #define SUPR3HARDENED_MAX_PATH      260U
+ 
++/** Enable to resolve symlinks using realpath() instead of cooking our own stuff. */
++#define SUP_HARDENED_VERIFY_FOLLOW_SYMLINKS_USE_REALPATH 1
++
+ #ifdef RT_OS_SOLARIS
+ # define dirfd(d) ((d)->d_fd)
+ #endif
+@@ -1091,7 +1094,8 @@
+ #endif
+ 
+ 
+-#if defined(RT_OS_DARWIN) || defined(RT_OS_LINUX)
++#ifndef SUP_HARDENED_VERIFY_FOLLOW_SYMLINKS_USE_REALPATH
++# if defined(RT_OS_DARWIN) || defined(RT_OS_LINUX)
+ /**
+  * Copies the error message to the error buffer and returns @a rc.
+  *
+@@ -1104,6 +1108,7 @@
+ {
+     return supR3HardenedSetErrorN(rc, pErrInfo, 1, pszMsg);
+ }
++# endif
+ #endif
+ 
+ 
+@@ -1893,7 +1898,9 @@
+     /*
+      * Verify each component from the root up.
+      */
++#ifndef SUP_HARDENED_VERIFY_FOLLOW_SYMLINKS_USE_REALPATH
+     uint32_t                iLoops = 0;
++#endif
+     SUPR3HARDENEDFSOBJSTATE FsObjState;
+     uint32_t                iComponent = 0;
+     while (iComponent < Info.cComponents)
+@@ -1915,6 +1922,24 @@
+             if (   RT_SUCCESS(rc)
+                 && S_ISLNK(FsObjState.Stat.st_mode))
+             {
++#if SUP_HARDENED_VERIFY_FOLLOW_SYMLINKS_USE_REALPATH /* Another approach using realpath() and verifying the result when encountering a symlink. */
++                char *pszFilenameResolved = realpath(pszFilename, NULL);
++                if (pszFilenameResolved)
++                {
++                    rc = supR3HardenedVerifyFile(pszFilenameResolved, hNativeFile, fMaybe3rdParty, pErrInfo);
++                    free(pszFilenameResolved);
++                    return rc;
++                }
++                else
++                {
++                    int iErr = errno;
++                    supR3HardenedError(VERR_ACCESS_DENIED, false /*fFatal*/,
++                                       "supR3HardenedVerifyFileFollowSymlinks: Failed to resolve the real path '%s': %s (%d)\n",
++                                       pszFilename, strerror(iErr), iErr);
++                    return supR3HardenedSetError4(VERR_ACCESS_DENIED, pErrInfo,
++                                                  "realpath failed for '", pszFilename, "': ", strerror(iErr));
++                }
++#else
+                 /* Don't loop forever. */
+                 iLoops++;
+                 if (iLoops < 8)
+@@ -1989,6 +2014,7 @@
+                 else
+                     return supR3HardenedSetError3(VERR_TOO_MANY_SYMLINKS, pErrInfo,
+                                                   "Too many symbolic links: '", pszFilename, "'");
++#endif
+             }
+         }
+         if (RT_FAILURE(rc))

diff --git a/app-emulation/virtualbox/virtualbox-5.1.22.ebuild b/app-emulation/virtualbox/virtualbox-5.1.22-r1.ebuild
similarity index 99%
rename from app-emulation/virtualbox/virtualbox-5.1.22.ebuild
rename to app-emulation/virtualbox/virtualbox-5.1.22-r1.ebuild
index 6f576db8b96..fda76d43805 100644
--- a/app-emulation/virtualbox/virtualbox-5.1.22.ebuild
+++ b/app-emulation/virtualbox/virtualbox-5.1.22-r1.ebuild
@@ -188,6 +188,7 @@ src_prepare() {
 	fi
 
 	eapply "${WORKDIR}/patches"
+	eapply "${FILESDIR}/${P}-opengl_dlopen_fix.patch" #616238
 
 	eapply_user
 }


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2017-07-26 19:21 Richard Farina
  0 siblings, 0 replies; 32+ messages in thread
From: Richard Farina @ 2017-07-26 19:21 UTC (permalink / raw
  To: gentoo-commits

commit:     a17d5f501cb5aa729632c90f57854db9828d7e7f
Author:     Zero_Chaos <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 26 19:18:37 2017 +0000
Commit:     Richard Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Wed Jul 26 19:20:23 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a17d5f50

app-emulation/virtualbox: fix nopie

Package-Manager: Portage-2.3.6, Repoman-2.3.3

 .../files/050_virtualbox-5.1.24-nopie.patch        | 158 +++++++++++++++++++++
 app-emulation/virtualbox/virtualbox-5.1.24.ebuild  |   1 +
 2 files changed, 159 insertions(+)

diff --git a/app-emulation/virtualbox/files/050_virtualbox-5.1.24-nopie.patch b/app-emulation/virtualbox/files/050_virtualbox-5.1.24-nopie.patch
new file mode 100644
index 00000000000..73c377a6c94
--- /dev/null
+++ b/app-emulation/virtualbox/files/050_virtualbox-5.1.24-nopie.patch
@@ -0,0 +1,158 @@
+diff -Naur VirtualBox-5.1.24/Config.kmk VirtualBox-5.1.24/Config.kmk
+--- VirtualBox-5.1.24/Config.kmk	2017-07-26 13:55:27.803972185 -0400
++++ VirtualBox-5.1.24/Config.kmk	2017-07-26 13:53:10.700974328 -0400
+@@ -2601,6 +2601,7 @@
+ 	$(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-overlength-strings?= $(call VBOX_GCC_CHECK_CC,-Wno-overlength-strings,)'
+ 	$(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-overloaded-virtual?= $(call VBOX_GCC_CHECK_CXX,-Wno-overloaded-virtual,)'
+ 	$(QUIET)$(APPEND) '$@' 'VBOX_GCC_fno-stack-protector   ?= $(call VBOX_GCC_CHECK_CC,-fno-stack-protector,)'
++	$(QUIET)$(APPEND) '$@' 'VBOX_GCC_nopie                 ?= $(call VBOX_GCC_CHECK_CC,-nopie,)'
+ 	$(QUIET)$(APPEND) '$@' 'VBOX_GCC_fno-dwarf2-cfi-asm    ?= $(call VBOX_GCC_CHECK_CC,-fno-dwarf2-cfi-asm,)'
+ 	$(QUIET)$(APPEND) '$@' 'VBOX_GCC_m64                   ?= $(call VBOX_GCC_CHECK_CC,-m64,)'
+ 	$(QUIET)$(APPEND) '$@' 'VBOX_GCC_no-pie                ?= $(call VBOX_GCC_CHECK_CC,-no-pie,)'
+@@ -3843,8 +3844,8 @@
+ 
+  ifeq ($(VBOX_LDR_FMT32),elf)
+  TEMPLATE_VBoxRc_TOOL                = $(VBOX_GCC32_TOOL)
+- TEMPLATE_VBoxRc_CXXFLAGS            = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
+- TEMPLATE_VBoxRc_CFLAGS              = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK)
++ TEMPLATE_VBoxRc_CXXFLAGS            = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
++ TEMPLATE_VBoxRc_CFLAGS              = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK)
+   ifeq ($(KBUILD_TARGET),solaris)
+    TEMPLATE_VBoxRc_LDFLAGS           = -r
+   else
+@@ -3864,8 +3865,8 @@
+  ifeq ($(VBOX_LDR_FMT32),macho)
+  TEMPLATE_VBoxRc_TOOL                = $(VBOX_GCC_TOOL)
+  TEMPLATE_VBoxRc_DEFS               += $(VBOX_DARWIN_DEF_SDK_DEFS)
+- TEMPLATE_VBoxRc_CXXFLAGS            = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-rtti
+- TEMPLATE_VBoxRc_CFLAGS              = $(VBOX_DARWIN_DEF_SDK_CFLAGS)   -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing
++ TEMPLATE_VBoxRc_CXXFLAGS            = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-rtti
++ TEMPLATE_VBoxRc_CFLAGS              = $(VBOX_DARWIN_DEF_SDK_CFLAGS)   -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing
+  TEMPLATE_VBoxRc_LDFLAGS             = $(VBOX_DARWIN_DEF_SDK_LDFLAGS)  -m32 -nostdlib
+  #TEMPLATE_VBoxRc_LDFLAGS.release     = -Wl,-S ???
+  endif
+@@ -3903,9 +3904,9 @@
+  endif
+ 
+  ifeq ($(VBOX_LDR_FMT32),elf)
+-  TEMPLATE_VBoxRcExe_CFLAGS   = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CFLAGS)) -O0
+-  TEMPLATE_VBoxRcExe_CXXFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CXXFLAGS)) -O0
+-  TEMPLATE_VBoxRcExe_LDFLAGS  = -g
++  TEMPLATE_VBoxRcExe_CFLAGS   = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CFLAGS)) -O0 $(VBOX_GCC_nopie)
++  TEMPLATE_VBoxRcExe_CXXFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CXXFLAGS)) -O0 $(VBOX_GCC_nopie)
++  TEMPLATE_VBoxRcExe_LDFLAGS  = -g $(VBOX_GCC_nopie)
+   TEMPLATE_VBoxRcExe_LDFLAGS.dbgopt = -g
+   TEMPLATE_VBoxRcExe_LDFLAGS.strict = -g
+   TEMPLATE_VBoxRcExe_LDFLAGS.release = -g
+@@ -3984,8 +3985,8 @@
+ 
+ ifeq ($(VBOX_LDR_FMT),elf)
+ TEMPLATE_VBoxR0_TOOL                = $(VBOX_GCC_TOOL)
+-TEMPLATE_VBoxR0_CFLAGS              = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
+-TEMPLATE_VBoxR0_CXXFLAGS            = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
++TEMPLATE_VBoxR0_CFLAGS              = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
++TEMPLATE_VBoxR0_CXXFLAGS            = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
+ TEMPLATE_VBoxR0_CFLAGS.amd64        = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables -ffreestanding
+ TEMPLATE_VBoxR0_CXXFLAGS.amd64      = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables
+ ifeq ($(KBUILD_TARGET),solaris)
+@@ -4018,12 +4019,12 @@
+ TEMPLATE_VBoxR0_DEFS               += $(VBOX_DARWIN_DEF_SDK_DEFS)
+ TEMPLATE_VBoxR0_CXXFLAGS            = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) \
+ 	-fno-common -msoft-float -static -fno-rtti -fno-exceptions $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing \
+-	-mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector)
++	-mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie)
+ TEMPLATE_VBoxR0_CXXFLAGS.amd64      = -m64 -mno-red-zone -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2  -mno-sse4a -fno-unwind-tables
+ TEMPLATE_VBoxR0_CXXFLAGS.x86        = -m32
+ TEMPLATE_VBoxR0_CFLAGS              = $(VBOX_DARWIN_DEF_SDK_CFLAGS)   -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) \
+ 	-fno-common -msoft-float -static -fno-exceptions $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing \
+-	-mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector)
++	-mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie)
+ TEMPLATE_VBoxR0_CFLAGS.amd64        = -m64 -mno-red-zone -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2  -mno-sse4a -fno-unwind-tables
+ TEMPLATE_VBoxR0_CFLAGS.x86          = -m32
+ TEMPLATE_VBoxR0_LDFLAGS             = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -nostdlib
+@@ -4259,7 +4260,7 @@
+ 	-Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
+ 	-Wimplicit-function-declaration -Werror-implicit-function-declaration \
+ 	-O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
+-	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
++	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ 	-nostdinc -std=c99
+ TEMPLATE_VBOXR0DRV_CFLAGS.x86          = -m32 -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2
+ TEMPLATE_VBOXR0DRV_CFLAGS.amd64        = -m64 --param inline-unit-growth=100 --param large-function-growth=1000 \
+@@ -4268,7 +4269,7 @@
+ TEMPLATE_VBOXR0DRV_CXXFLAGS            = -fno-exceptions -fno-rtti \
+ 	$(VBOX_GCC_WARN) -Wpointer-arith -Winline \
+ 	-O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \
+-	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
++	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ 	-nostdinc
+ TEMPLATE_VBOXR0DRV_CXXFLAGS.x86        = $(TEMPLATE_VBOXR0DRV_CFLAGS.x86)
+ TEMPLATE_VBOXR0DRV_CXXFLAGS.amd64      = $(TEMPLATE_VBOXR0DRV_CFLAGS.amd64)
+@@ -4341,7 +4342,7 @@
+ 	-Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
+ 	-Wimplicit-function-declaration -Werror-implicit-function-declaration \
+ 	-O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
+-	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
++	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ 	-nostdinc -std=c99 -msoft-float
+ TEMPLATE_VBOXR0DRV_CFLAGS.x86          = -m32 \
+     -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -mno-avx \
+@@ -4353,7 +4354,7 @@
+ TEMPLATE_VBOXR0DRV_CXXFLAGS            = -fno-exceptions -fno-rtti \
+ 	$(VBOX_GCC_WARN) -Wpointer-arith -Winline \
+ 	-O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \
+-	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
++	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ 	-nostdinc -msoft-float
+ TEMPLATE_VBOXR0DRV_CXXFLAGS.x86        = $(TEMPLATE_VBOXR0DRV_CFLAGS.x86)
+ TEMPLATE_VBOXR0DRV_CXXFLAGS.amd64      = $(TEMPLATE_VBOXR0DRV_CFLAGS.amd64)
+@@ -4394,7 +4395,7 @@
+ TEMPLATE_VBOXR0DRV_LDFLAGS             = -shared -no-undefined -dc -dy -lroot -rpath-link /boot/system/develop/lib/x86 --no-add-needed /boot/system/develop/lib/_KERNEL_ --no-add-needed /boot/system/develop/lib/haiku_version_glue.o
+ TEMPLATE_VBOXR0DRV_CFLAGS              = -fno-PIC \
+ 	$(VBOX_GCC_WARN) -Wstrict-prototypes $(VBOX_GCC_Wno-pointer-sign) -Wno-sign-compare \
+-	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
++	$(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
+ TEMPLATE_VBOXR0DRV_CFLAGS.x86          = -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
+ TEMPLATE_VBOXR0DRV_CFLAGS.x86          = -m32 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
+ TEMPLATE_VBOXR0DRV_CFLAGS.amd64        = -m64 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow \
+@@ -5210,8 +5211,8 @@
+  TEMPLATE_VBoxNoCrtGccLib_TOOL             = $(VBOX_GCC_TOOL)
+  TEMPLATE_VBoxNoCrtGccLib_ASTOOL           = $(VBOX_ASTOOL)
+  TEMPLATE_VBoxNoCrtGccLib_ASFLAGS          = $(VBOX_ASFLAGS)
+- TEMPLATE_VBoxNoCrtGccLib_CFLAGS          += $(VBOX_GCC_fno-stack-protector)
+- TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS        += $(VBOX_GCC_fno-stack-protector)
++ TEMPLATE_VBoxNoCrtGccLib_CFLAGS          += $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie)
++ TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS        += $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie)
+  ifeq ($(KBUILD_TARGET_ARCH),amd64)
+   # in 64-bit mode we'll build a sys-module (VBoxREM2).
+   if1of ($(KBUILD_TARGET), darwin solaris)
+@@ -6467,8 +6468,8 @@
+ TEMPLATE_VBOXGUESTR3XF86MOD_CFLAGS  = $(TEMPLATE_VBOXGUESTR3EXE_CFLAGS) -fno-pie -fno-merge-constants -std=c99 -ffreestanding
+ TEMPLATE_VBOXGUESTR3XF86MOD_CXXFLAGS= $(TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS) -fno-pie -fno-merge-constants -ffreestanding
+ ifndef VBOX_WITH_COMPATIBLE_LINUX_GUEST_PACKAGE
+- TEMPLATE_VBOXGUESTR3XF86MOD_CFLAGS   += $(VBOX_GCC_fno-stack-protector)
+- TEMPLATE_VBOXGUESTR3XF86MOD_CXXFLAGS += $(VBOX_GCC_fno-stack-protector)
++ TEMPLATE_VBOXGUESTR3XF86MOD_CFLAGS   += $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie)
++ TEMPLATE_VBOXGUESTR3XF86MOD_CXXFLAGS += $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie)
+ endif
+ TEMPLATE_VBOXGUESTR3XF86MOD_SYSSUFF = .o
+ TEMPLATE_VBOXGUESTR3XF86MOD_LIBS  = \
+diff -Naur VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk
+--- VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk	2017-07-26 13:55:27.746972186 -0400
++++ VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk	2017-07-26 13:53:10.641974329 -0400
+@@ -132,6 +132,7 @@
+ 	-W \
+ 	-Wformat-nonliteral \
+ 	$(VBOX_GCC_fno-stack-protector) \
++	$(VBOX_GCC_nopie) \
+ 	$(VBOX_GCC_fno-dwarf2-cfi-asm) \
+ 	$(VBOX_GCC_Wno-address)
+  TEMPLATE_iPxe_ASFLAGS = \
+@@ -155,6 +156,7 @@
+ 	-W \
+ 	-Wformat-nonliteral \
+ 	$(VBOX_GCC_fno-stack-protector) \
++	$(VBOX_GCC_nopie) \
+ 	$(VBOX_GCC_fno-dwarf2-cfi-asm) \
+ 	$(VBOX_GCC_Wno-address) \
+ 	-DASSEMBLY

diff --git a/app-emulation/virtualbox/virtualbox-5.1.24.ebuild b/app-emulation/virtualbox/virtualbox-5.1.24.ebuild
index cd3a220bcf6..8249f3d55e2 100644
--- a/app-emulation/virtualbox/virtualbox-5.1.24.ebuild
+++ b/app-emulation/virtualbox/virtualbox-5.1.24.ebuild
@@ -192,6 +192,7 @@ src_prepare() {
 	fi
 
 	eapply "${WORKDIR}/patches"
+	eapply "${FILESDIR}/050_virtualbox-5.1.24-nopie.patch"
 
 	eapply_user
 }


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2018-02-16 14:56 Lars Wendler
  0 siblings, 0 replies; 32+ messages in thread
From: Lars Wendler @ 2018-02-16 14:56 UTC (permalink / raw
  To: gentoo-commits

commit:     d087dca3521231a1e62ed53ab5a72795a0d2f0c9
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 16 14:39:42 2018 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Fri Feb 16 14:56:06 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d087dca3

app-emulation/virtualbox: Improved USB device detection.

Closes: https://bugs.gentoo.org/639352
Package-Manager: Portage-2.3.24, Repoman-2.3.6

 .../files/virtualbox-detect-usb-fix.patch          | 24 ++++++++++++++++++++++
 app-emulation/virtualbox/virtualbox-5.1.32.ebuild  |  1 +
 app-emulation/virtualbox/virtualbox-5.2.6.ebuild   |  1 +
 3 files changed, 26 insertions(+)

diff --git a/app-emulation/virtualbox/files/virtualbox-detect-usb-fix.patch b/app-emulation/virtualbox/files/virtualbox-detect-usb-fix.patch
new file mode 100644
index 00000000000..bbb28943c12
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-detect-usb-fix.patch
@@ -0,0 +1,24 @@
+Patch by Maciej S. Szmigiero to make the script work even if no USB device was
+plugged in before virtualbox got started.
+
+https://bugs.gentoo.org/639352
+
+--- a/src/VBox/Installer/linux/VBoxCreateUSBNode.sh
++++ b/src/VBox/Installer/linux/VBoxCreateUSBNode.sh
+@@ -32,13 +32,13 @@
+ devpath="`printf "/dev/vboxusb/%.3d/%.3d" $bus $device`"
+ case "$do_remove" in
+   0)
++  case "$group" in "") group="vboxusers";; esac
++  mkdir /dev/vboxusb -m 0750 2>/dev/null
++  chown root:$group /dev/vboxusb 2>/dev/null
+   if test -n "$class" -a "$class" -eq "$usb_class_hub"
+   then
+       exit 0
+   fi
+-  case "$group" in "") group="vboxusers";; esac
+-  mkdir /dev/vboxusb -m 0750 2>/dev/null
+-  chown root:$group /dev/vboxusb 2>/dev/null
+   mkdir "$devdir" -m 0750 2>/dev/null
+   chown root:$group "$devdir" 2>/dev/null
+   mknod "$devpath" c $1 $2 -m 0660 2>/dev/null

diff --git a/app-emulation/virtualbox/virtualbox-5.1.32.ebuild b/app-emulation/virtualbox/virtualbox-5.1.32.ebuild
index 8c962fe7c1f..698f0b56dda 100644
--- a/app-emulation/virtualbox/virtualbox-5.1.32.ebuild
+++ b/app-emulation/virtualbox/virtualbox-5.1.32.ebuild
@@ -193,6 +193,7 @@ src_prepare() {
 	fi
 
 	eapply "${WORKDIR}/patches"
+	eapply "${FILESDIR}/${PN}-detect-usb-fix.patch"
 
 	eapply_user
 }

diff --git a/app-emulation/virtualbox/virtualbox-5.2.6.ebuild b/app-emulation/virtualbox/virtualbox-5.2.6.ebuild
index 1464aa7bcd9..46c3c3cba7a 100644
--- a/app-emulation/virtualbox/virtualbox-5.2.6.ebuild
+++ b/app-emulation/virtualbox/virtualbox-5.2.6.ebuild
@@ -193,6 +193,7 @@ src_prepare() {
 	fi
 
 	eapply "${WORKDIR}/patches"
+	eapply "${FILESDIR}/${PN}-detect-usb-fix.patch"
 
 	eapply_user
 }


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2018-02-19 14:16 Lars Wendler
  0 siblings, 0 replies; 32+ messages in thread
From: Lars Wendler @ 2018-02-19 14:16 UTC (permalink / raw
  To: gentoo-commits

commit:     019f1401fa2e7da1baed6f6e07601e028c0a7006
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 19 14:16:14 2018 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Mon Feb 19 14:16:29 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=019f1401

app-emulation/virtualbox: Use tmpfiles.d file to create /dev/vboxusb

This replaces the previous approach which patched the script that
creates the device nodes in /dev/vboxusb/

Package-Manager: Portage-2.3.24, Repoman-2.3.6

 .../files/virtualbox-detect-usb-fix.patch          | 24 ----------------------
 .../virtualbox/files/virtualbox-vboxusb_tmpfilesd  |  1 +
 app-emulation/virtualbox/virtualbox-5.1.32.ebuild  |  7 +++++--
 app-emulation/virtualbox/virtualbox-5.2.6.ebuild   |  7 +++++--
 4 files changed, 11 insertions(+), 28 deletions(-)

diff --git a/app-emulation/virtualbox/files/virtualbox-detect-usb-fix.patch b/app-emulation/virtualbox/files/virtualbox-detect-usb-fix.patch
deleted file mode 100644
index bbb28943c12..00000000000
--- a/app-emulation/virtualbox/files/virtualbox-detect-usb-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Patch by Maciej S. Szmigiero to make the script work even if no USB device was
-plugged in before virtualbox got started.
-
-https://bugs.gentoo.org/639352
-
---- a/src/VBox/Installer/linux/VBoxCreateUSBNode.sh
-+++ b/src/VBox/Installer/linux/VBoxCreateUSBNode.sh
-@@ -32,13 +32,13 @@
- devpath="`printf "/dev/vboxusb/%.3d/%.3d" $bus $device`"
- case "$do_remove" in
-   0)
-+  case "$group" in "") group="vboxusers";; esac
-+  mkdir /dev/vboxusb -m 0750 2>/dev/null
-+  chown root:$group /dev/vboxusb 2>/dev/null
-   if test -n "$class" -a "$class" -eq "$usb_class_hub"
-   then
-       exit 0
-   fi
--  case "$group" in "") group="vboxusers";; esac
--  mkdir /dev/vboxusb -m 0750 2>/dev/null
--  chown root:$group /dev/vboxusb 2>/dev/null
-   mkdir "$devdir" -m 0750 2>/dev/null
-   chown root:$group "$devdir" 2>/dev/null
-   mknod "$devpath" c $1 $2 -m 0660 2>/dev/null

diff --git a/app-emulation/virtualbox/files/virtualbox-vboxusb_tmpfilesd b/app-emulation/virtualbox/files/virtualbox-vboxusb_tmpfilesd
new file mode 100644
index 00000000000..39378536a8b
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-vboxusb_tmpfilesd
@@ -0,0 +1 @@
+d /dev/vboxusb 0750 root vboxusers

diff --git a/app-emulation/virtualbox/virtualbox-5.1.32.ebuild b/app-emulation/virtualbox/virtualbox-5.1.32.ebuild
index 08304b19cae..744c42640cf 100644
--- a/app-emulation/virtualbox/virtualbox-5.1.32.ebuild
+++ b/app-emulation/virtualbox/virtualbox-5.1.32.ebuild
@@ -4,7 +4,7 @@
 EAPI=6
 
 PYTHON_COMPAT=( python2_7 )
-inherit eutils flag-o-matic java-pkg-opt-2 linux-info multilib pax-utils python-single-r1 toolchain-funcs udev xdg-utils
+inherit eutils flag-o-matic java-pkg-opt-2 linux-info multilib pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg-utils
 
 MY_PV="${PV/beta/BETA}"
 MY_PV="${MY_PV/rc/RC}"
@@ -193,7 +193,6 @@ src_prepare() {
 	fi
 
 	eapply "${WORKDIR}/patches"
-	eapply "${FILESDIR}/${PN}-detect-usb-fix.patch"
 
 	eapply_user
 }
@@ -416,6 +415,8 @@ src_install() {
 	if use doc ; then
 		dodoc UserManual.pdf
 	fi
+
+	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
 }
 
 pkg_postinst() {
@@ -426,6 +427,8 @@ pkg_postinst() {
 			&& udevadm trigger --subsystem-match=usb
 	fi
 
+	tmpfiles_process
+
 	if ! use headless && use qt5 ; then
 		elog "To launch VirtualBox just type: \"virtualbox\"."
 	fi

diff --git a/app-emulation/virtualbox/virtualbox-5.2.6.ebuild b/app-emulation/virtualbox/virtualbox-5.2.6.ebuild
index 7133045118b..efbaed97699 100644
--- a/app-emulation/virtualbox/virtualbox-5.2.6.ebuild
+++ b/app-emulation/virtualbox/virtualbox-5.2.6.ebuild
@@ -4,7 +4,7 @@
 EAPI=6
 
 PYTHON_COMPAT=( python2_7 )
-inherit eutils flag-o-matic java-pkg-opt-2 linux-info multilib pax-utils python-single-r1 toolchain-funcs udev xdg-utils
+inherit eutils flag-o-matic java-pkg-opt-2 linux-info multilib pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg-utils
 
 MY_PV="${PV/beta/BETA}"
 MY_PV="${MY_PV/rc/RC}"
@@ -193,7 +193,6 @@ src_prepare() {
 	fi
 
 	eapply "${WORKDIR}/patches"
-	eapply "${FILESDIR}/${PN}-detect-usb-fix.patch"
 
 	eapply_user
 }
@@ -416,6 +415,8 @@ src_install() {
 	if use doc ; then
 		dodoc UserManual.pdf
 	fi
+
+	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
 }
 
 pkg_postinst() {
@@ -426,6 +427,8 @@ pkg_postinst() {
 			&& udevadm trigger --subsystem-match=usb
 	fi
 
+	tmpfiles_process
+
 	if ! use headless && use qt5 ; then
 		elog "To launch VirtualBox just type: \"virtualbox\"."
 	fi


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2018-11-17 11:55 Lars Wendler
  0 siblings, 0 replies; 32+ messages in thread
From: Lars Wendler @ 2018-11-17 11:55 UTC (permalink / raw
  To: gentoo-commits

commit:     40432bd2a3ccbb98c1ae1db51ef04cd5be304e19
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 17 11:48:10 2018 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Sat Nov 17 11:54:51 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=40432bd2

app-emulation/virtualbox: Fixed build with USE="-opus"

Closes: https://bugs.gentoo.org/671280
Package-Manager: Portage-2.3.51, Repoman-2.3.12
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 .../files/virtualbox-6.0.0_beta2-no_libopus.patch  | 39 ++++++++++++++++++++++
 .../virtualbox/virtualbox-6.0.0_beta2.ebuild       | 12 +++++--
 2 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/app-emulation/virtualbox/files/virtualbox-6.0.0_beta2-no_libopus.patch b/app-emulation/virtualbox/files/virtualbox-6.0.0_beta2-no_libopus.patch
new file mode 100644
index 00000000000..ccf3f2acceb
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.0.0_beta2-no_libopus.patch
@@ -0,0 +1,39 @@
+--- VirtualBox-6.0.0_BETA2/src/VBox/Main/include/ConsoleImpl.h
++++ VirtualBox-6.0.0_BETA2/src/VBox/Main/include/ConsoleImpl.h
+@@ -147,9 +147,13 @@
+     int i_recordingGetSettings(settings::RecordingSettings &Settings);
+     int i_recordingStart(void);
+     int i_recordingStop(void);
++# ifdef VBOX_WITH_AUDIO_RECORDING
+     AudioVideoRec *i_recordingGetAudioDrv(void) const { return Recording.mAudioRec; }
++# endif
+     RecordingContext *i_recordingGetContext(void) const { return Recording.mpCtx; }
++# ifdef VBOX_WITH_AUDIO_RECORDING
+     HRESULT i_recordingSendAudio(const void *pvData, size_t cbData, uint64_t uDurationMs);
++# endif
+ #endif
+ 
+     const ComPtr<IMachine> &i_machine() const { return mMachine; }
+@@ -1038,7 +1042,10 @@
+     {
+         Recording()
+             : mpCtx(NULL)
+-            , mAudioRec(NULL) { }
++# ifdef VBOX_WITH_AUDIO_RECORDING
++            , mAudioRec(NULL)
++# endif
++        { }
+ 
+         /** The recording context. */
+         RecordingContext       *mpCtx;
+--- VirtualBox-6.0.0_BETA2/src/VBox/Main/src-client/Recording.cpp
++++ VirtualBox-6.0.0_BETA2/src/VBox/Main/src-client/Recording.cpp
+@@ -587,7 +587,7 @@
+ 
+     return rc;
+ #else
+-    RT_NOREF(pCtx, pvData, cbData, uTimeStampMs);
++    RT_NOREF(pvData, cbData, uTimeStampMs);
+     return VINF_SUCCESS;
+ #endif
+ }

diff --git a/app-emulation/virtualbox/virtualbox-6.0.0_beta2.ebuild b/app-emulation/virtualbox/virtualbox-6.0.0_beta2.ebuild
index b334d69c98a..0b6ff09dd2f 100644
--- a/app-emulation/virtualbox/virtualbox-6.0.0_beta2.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.0.0_beta2.ebuild
@@ -29,10 +29,11 @@ RDEPEND="!app-emulation/virtualbox-bin
 	dev-libs/libxml2
 	media-libs/libpng:0=
 	media-libs/libvpx:0=
-	sys-libs/zlib
+	sys-libs/zlib:=
 	!headless? (
 		media-libs/libsdl:0[X,video]
 		x11-libs/libX11
+		x11-libs/libxcb:=
 		x11-libs/libXcursor
 		x11-libs/libXext
 		x11-libs/libXmu
@@ -195,9 +196,16 @@ src_prepare() {
 
 	eapply "${WORKDIR}/patches"
 
+	eapply "${FILESDIR}"/${P}-no_libopus.patch
+
 	eapply_user
 }
 
+doecho() {
+	echo "$@"
+	"$@" || die
+}
+
 src_configure() {
 	local myconf=(
 		--with-gcc="$(tc-getCC)"
@@ -230,7 +238,7 @@ src_configure() {
 		myconf+=( --disable-vmmraw )
 	fi
 	# not an autoconf script
-	./configure ${myconf[@]} || die "configure failed"
+	doecho ./configure ${myconf[@]}
 }
 
 src_compile() {


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2018-12-07 21:42 Lars Wendler
  0 siblings, 0 replies; 32+ messages in thread
From: Lars Wendler @ 2018-12-07 21:42 UTC (permalink / raw
  To: gentoo-commits

commit:     be4b63a80148cc9f6c1d4f305ef3a1a28f52d676
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Fri Dec  7 20:29:55 2018 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Fri Dec  7 21:42:15 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=be4b63a8

app-emulation/virtualbox: fixed qt5 gui session startup

added some missing symlinks, and enhanced the wrapper script a bit more.

Closes: https://bugs.gentoo.org/671354
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 app-emulation/virtualbox/files/virtualbox-ose-6-wrapper |  3 +++
 app-emulation/virtualbox/virtualbox-6.0.0_beta3.ebuild  | 15 +++++++--------
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper b/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper
index 43e9c9ed448..af8090dd09a 100644
--- a/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper
+++ b/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper
@@ -84,6 +84,9 @@ case "$APP" in
     VirtualBox|virtualbox)
         exec "$INSTALL_DIR/VirtualBox" "$@"
         ;;
+    VirtualBoxVM|virtualboxvm)
+        exec "$INSTALL_DIR/VirtualBoxVM" "$@"
+        ;;
     VBoxManage|vboxmanage)
         exec "$INSTALL_DIR/VBoxManage" "$@"
         ;;

diff --git a/app-emulation/virtualbox/virtualbox-6.0.0_beta3.ebuild b/app-emulation/virtualbox/virtualbox-6.0.0_beta3.ebuild
index edda2a369a4..cd98a4875fd 100644
--- a/app-emulation/virtualbox/virtualbox-6.0.0_beta3.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.0.0_beta3.ebuild
@@ -262,7 +262,7 @@ src_install() {
 	use debug && binpath="debug"
 	cd "${S}"/out/linux.${ARCH}/${binpath}/bin || die
 
-	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each fwfile size ico icofile
+	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
 
 	vbox_inst() {
 		local binary="${1}"
@@ -312,11 +312,9 @@ src_install() {
 	done
 
 	# Install EFI Firmware files (bug #320757)
-	pushd "${S}"/src/VBox/Devices/EFI/FirmwareBin &>/dev/null || die
-	for fwfile in VBoxEFI{32,64}.fd ; do
-		vbox_inst ${fwfile} 0644
+	for each in VBoxEFI{32,64}.fd ; do
+		vbox_inst ${each} 0644
 	done
-	popd &>/dev/null || die
 
 	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
 	# VBoxXPCOMIPCD (bug #524202)
@@ -325,7 +323,7 @@ src_install() {
 	done
 
 	# Symlink binaries to the shipped wrapper
-	for each in vbox{headless,manage} VBox{BugReport,Headless,Manage,VRDP} ; do
+	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
 		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
 	done
 	dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
@@ -348,8 +346,9 @@ src_install() {
 		done
 
 		if use qt5 ; then
+			vbox_inst Virtualbox
+			vbox_inst VirtualboxVM 4750
 			for each in VirtualBox{,VM} ; do
-				vbox_inst ${each}
 				pax-mark -m "${ED%/}"${vbox_inst_path}/${each}
 			done
 
@@ -358,7 +357,7 @@ src_install() {
 				pax-mark -m "${ED%/}"${vbox_inst_path}/VBoxTestOGL
 			fi
 
-			for each in virtualbox VirtualBox ; do
+			for each in virtualbox{,vm} VirtualBox{,VM} ; do
 				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
 			done
 


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2019-01-16 12:02 Lars Wendler
  0 siblings, 0 replies; 32+ messages in thread
From: Lars Wendler @ 2019-01-16 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     64ef1ea0da5b2f6698afdfd2c2204fa1b40f7e12
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 16 12:01:30 2019 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Wed Jan 16 12:02:39 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64ef1ea0

app-emulation/virtualbox: Fixed build against dev-libs/libressl.

Closes: https://bugs.gentoo.org/673800
Package-Manager: Portage-2.3.56, Repoman-2.3.12
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 .../files/virtualbox-6.0.0-libressl.patch          | 24 ++++++++++++++++++++++
 app-emulation/virtualbox/virtualbox-6.0.0.ebuild   |  3 ++-
 app-emulation/virtualbox/virtualbox-6.0.2.ebuild   |  1 +
 3 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/app-emulation/virtualbox/files/virtualbox-6.0.0-libressl.patch b/app-emulation/virtualbox/files/virtualbox-6.0.0-libressl.patch
new file mode 100644
index 00000000000..a79ae1ddf68
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.0.0-libressl.patch
@@ -0,0 +1,24 @@
+https://bugs.gentoo.org/673800
+
+diff --git a/src/VBox/Runtime/common/crypto/ssl-openssl.cpp b/src/VBox/Runtime/common/crypto/ssl-openssl.cpp
+index e6d58b75..b2422983 100644
+--- a/src/VBox/Runtime/common/crypto/ssl-openssl.cpp
++++ b/src/VBox/Runtime/common/crypto/ssl-openssl.cpp
+@@ -271,7 +271,7 @@ RTDECL(int) RTCrSslCreateSessionForNativeSocket(RTCRSSL hSsl, RTHCINTPTR hNative
+             pSession->pBio = BIO_new_socket(hNativeSocket, BIO_NOCLOSE);
+             if (pSession->pBio)
+             {
+-# if OPENSSL_VERSION_NUMBER >= 0x10100000
++# if (OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER)) || LIBRESSL_VERSION_NUMBER >= 0x2070000f
+                 BIO_up_ref(pSession->pBio); /* our reference. */
+ # endif
+                 SSL_set_bio(pSession->pSsl, pSession->pBio, pSession->pBio);
+@@ -319,7 +319,7 @@ static int rtCrSslSessionDestroy(RTCRSSLSESSIONINT *pThis)
+     ASMAtomicWriteU32(&pThis->u32Magic, ~RTCRSSLSESSIONINT_MAGIC);
+     SSL_free(pThis->pSsl);
+     pThis->pSsl = NULL;
+-# if OPENSSL_VERSION_NUMBER >= 0x10100000
++# if (OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER)) || LIBRESSL_VERSION_NUMBER >= 0x2070000f
+     BIO_free(pThis->pBio);
+ # endif
+     pThis->pBio = NULL;

diff --git a/app-emulation/virtualbox/virtualbox-6.0.0.ebuild b/app-emulation/virtualbox/virtualbox-6.0.0.ebuild
index 09faed602e0..6cd4dce30fe 100644
--- a/app-emulation/virtualbox/virtualbox-6.0.0.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -195,6 +195,7 @@ src_prepare() {
 	fi
 
 	eapply "${WORKDIR}/patches"
+	eapply "${FILESDIR}"/${PN}-6.0.0-libressl.patch #673800
 
 	eapply_user
 }

diff --git a/app-emulation/virtualbox/virtualbox-6.0.2.ebuild b/app-emulation/virtualbox/virtualbox-6.0.2.ebuild
index 77317e5778d..699ab42ad4c 100644
--- a/app-emulation/virtualbox/virtualbox-6.0.2.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.0.2.ebuild
@@ -199,6 +199,7 @@ src_prepare() {
 
 	rm "${WORKDIR}/patches/010_virtualbox-5.2.12-qt511.patch" || die
 	eapply "${WORKDIR}/patches"
+	eapply "${FILESDIR}"/${PN}-6.0.0-libressl.patch #673800
 
 	eapply_user
 }


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2020-06-02 21:52 Andreas Sturmlechner
  0 siblings, 0 replies; 32+ messages in thread
From: Andreas Sturmlechner @ 2020-06-02 21:52 UTC (permalink / raw
  To: gentoo-commits

commit:     8507cc179dc91f1aa8803ee67e48018c7c6733b1
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Jun  2 21:26:38 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Jun  2 21:51:50 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8507cc17

app-emulation/virtualbox: Fix build with Qt 5.15

Thanks-to: cmvu <cmvu <AT> protonmail.com>
Closes: https://bugs.gentoo.org/726154
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/virtualbox-6.1.6-qt-5.15.patch           | 92 ++++++++++++++++++++++
 app-emulation/virtualbox/virtualbox-6.1.6.ebuild   |  2 +
 2 files changed, 94 insertions(+)

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.6-qt-5.15.patch b/app-emulation/virtualbox/files/virtualbox-6.1.6-qt-5.15.patch
new file mode 100644
index 00000000000..36f525593e0
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.1.6-qt-5.15.patch
@@ -0,0 +1,92 @@
+--- a/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp 2020-05-29 23:51:41.504432532 +0300
++++ b/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp 2020-05-29 23:49:26.943858460 +0300
+@@ -17,6 +17,8 @@
+ 
+ /* Qt includes: */
+ #include <QPainter>
++#include <QPainterPath>
++#include <QPainterPathStroker>
+ 
+ /* GUI include */
+ #include "UIImageTools.h"
+
+--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h 2020-05-30 00:09:50.369275092 +0300
++++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h 2020-05-30 00:01:14.152354690 +0300
+@@ -24,6 +24,7 @@
+ /* Qt includes: */
+ #include <QIcon>
+ #include <QWidget>
++#include <QPainterPath>
+ 
+ /* GUI includes: */
+ #include "UILibraryDefs.h"
+--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIMenuToolBar.cpp 2020-05-30 00:39:54.773447224 +0300
++++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIMenuToolBar.cpp 2020-05-30 00:41:36.274371761 +0300
+@@ -21,6 +21,7 @@
+ #include <QPainter>
+ #include <QStyle>
+ #include <QToolButton>
++#include <QPainterPath>
+ 
+ /* GUI includes: */
+ #include "UIMenuToolBar.h"
+--- a/src/VBox/Frontends/VirtualBox/src/widgets/UITabBar.cpp 2020-05-30 00:39:47.613523134 +0300
++++ b/src/VBox/Frontends/VirtualBox/src/widgets/UITabBar.cpp 2020-05-30 00:41:29.655441857 +0300
+@@ -29,6 +29,7 @@
+ #include <QMouseEvent>
+ #include <QStyleOption>
+ #include <QPainter>
++#include <QPainterPath>
+ #ifdef VBOX_WS_MAC
+ # include <QStackedLayout>
+ #endif
+--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIFilmContainer.cpp 2020-05-30 00:40:01.624374596 +0300
++++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIFilmContainer.cpp 2020-05-30 00:41:40.654325376 +0300
+@@ -23,6 +23,7 @@
+ #include <QScrollBar>
+ #include <QStyle>
+ #include <QVBoxLayout>
++#include <QPainterPath>
+ 
+ /* GUI includes: */
+ #include "UIFilmContainer.h"
+--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp 2020-05-30 00:40:08.844298062 +0300
++++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp 2020-05-30 00:41:44.594283652 +0300
+@@ -22,6 +22,7 @@
+ #include <QPaintEvent>
+ #include <QStyle>
+ #include <QVBoxLayout>
++#include <QPainterPath>
+ 
+ /* GUI includes: */
+ #include "UIPopupBox.h"
+--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp 2020-05-30 00:40:16.064221530 +0300
++++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp 2020-05-30 00:41:52.014205079 +0300
+@@ -27,6 +27,7 @@
+ #include <QToolButton>
+ #include <QVBoxLayout>
+ #include <QWindow>
++#include <QPainterPath>
+ #ifdef VBOX_WS_X11
+ # include <QWindowStateChangeEvent>
+ #endif
+--- a/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsScrollBar.cpp 2020-05-30 00:40:22.314155286 +0300
++++ b/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsScrollBar.cpp 2020-05-30 00:41:56.544157111 +0300
+@@ -28,6 +28,7 @@
+ #include <QStyleOptionGraphicsItem>
+ #include <QTimer>
+ #include <QTimerEvent>
++#include <QPainterPath>
+ 
+ /* GUI includes: */
+ #include "UIGraphicsButton.h"
+--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp 2020-05-30 00:40:34.375027462 +0300
++++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp 2020-05-30 00:42:01.244107347 +0300
+@@ -18,6 +18,7 @@
+ /* Qt includes: */
+ #include <QPainter>
+ #include <QTextEdit>
++#include <QPainterPath>
+ 
+ /* GUI includes: */
+ #include "UIPopupPane.h"

diff --git a/app-emulation/virtualbox/virtualbox-6.1.6.ebuild b/app-emulation/virtualbox/virtualbox-6.1.6.ebuild
index 7ddbfdc4204..a359a7ca30f 100644
--- a/app-emulation/virtualbox/virtualbox-6.1.6.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.1.6.ebuild
@@ -207,6 +207,8 @@ src_prepare() {
 		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
 	fi
 
+	eapply "${FILESDIR}"/${P}-qt-5.15.patch # TODO: upstream, bug #726154
+
 	eapply "${WORKDIR}/patches"
 
 	eapply_user


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2020-06-03  0:10 Andreas Sturmlechner
  0 siblings, 0 replies; 32+ messages in thread
From: Andreas Sturmlechner @ 2020-06-03  0:10 UTC (permalink / raw
  To: gentoo-commits

commit:     c15842f13dc218913f6d95555c65c90f844f5ec2
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Jun  3 00:09:26 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Jun  3 00:10:33 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c15842f1

app-emulation/virtualbox: Fix 6.0.20 build with Qt 5.15 too

Closes: https://bugs.gentoo.org/726154
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 ...-5.15.patch => virtualbox-6.0.20-qt-5.15.patch} | 10 ---
 .../files/virtualbox-6.1.6-qt-5.15.patch           | 82 ----------------------
 app-emulation/virtualbox/virtualbox-6.0.20.ebuild  |  2 +
 app-emulation/virtualbox/virtualbox-6.1.6.ebuild   |  3 +-
 4 files changed, 4 insertions(+), 93 deletions(-)

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.6-qt-5.15.patch b/app-emulation/virtualbox/files/virtualbox-6.0.20-qt-5.15.patch
similarity index 87%
copy from app-emulation/virtualbox/files/virtualbox-6.1.6-qt-5.15.patch
copy to app-emulation/virtualbox/files/virtualbox-6.0.20-qt-5.15.patch
index 36f525593e0..7ba03f02259 100644
--- a/app-emulation/virtualbox/files/virtualbox-6.1.6-qt-5.15.patch
+++ b/app-emulation/virtualbox/files/virtualbox-6.0.20-qt-5.15.patch
@@ -70,16 +70,6 @@
  #ifdef VBOX_WS_X11
  # include <QWindowStateChangeEvent>
  #endif
---- a/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsScrollBar.cpp 2020-05-30 00:40:22.314155286 +0300
-+++ b/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsScrollBar.cpp 2020-05-30 00:41:56.544157111 +0300
-@@ -28,6 +28,7 @@
- #include <QStyleOptionGraphicsItem>
- #include <QTimer>
- #include <QTimerEvent>
-+#include <QPainterPath>
- 
- /* GUI includes: */
- #include "UIGraphicsButton.h"
 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp 2020-05-30 00:40:34.375027462 +0300
 +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp 2020-05-30 00:42:01.244107347 +0300
 @@ -18,6 +18,7 @@

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.6-qt-5.15.patch b/app-emulation/virtualbox/files/virtualbox-6.1.6-qt-5.15.patch
index 36f525593e0..6518f60d080 100644
--- a/app-emulation/virtualbox/files/virtualbox-6.1.6-qt-5.15.patch
+++ b/app-emulation/virtualbox/files/virtualbox-6.1.6-qt-5.15.patch
@@ -1,75 +1,3 @@
---- a/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp 2020-05-29 23:51:41.504432532 +0300
-+++ b/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp 2020-05-29 23:49:26.943858460 +0300
-@@ -17,6 +17,8 @@
- 
- /* Qt includes: */
- #include <QPainter>
-+#include <QPainterPath>
-+#include <QPainterPathStroker>
- 
- /* GUI include */
- #include "UIImageTools.h"
-
---- a/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h 2020-05-30 00:09:50.369275092 +0300
-+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h 2020-05-30 00:01:14.152354690 +0300
-@@ -24,6 +24,7 @@
- /* Qt includes: */
- #include <QIcon>
- #include <QWidget>
-+#include <QPainterPath>
- 
- /* GUI includes: */
- #include "UILibraryDefs.h"
---- a/src/VBox/Frontends/VirtualBox/src/widgets/UIMenuToolBar.cpp 2020-05-30 00:39:54.773447224 +0300
-+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIMenuToolBar.cpp 2020-05-30 00:41:36.274371761 +0300
-@@ -21,6 +21,7 @@
- #include <QPainter>
- #include <QStyle>
- #include <QToolButton>
-+#include <QPainterPath>
- 
- /* GUI includes: */
- #include "UIMenuToolBar.h"
---- a/src/VBox/Frontends/VirtualBox/src/widgets/UITabBar.cpp 2020-05-30 00:39:47.613523134 +0300
-+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UITabBar.cpp 2020-05-30 00:41:29.655441857 +0300
-@@ -29,6 +29,7 @@
- #include <QMouseEvent>
- #include <QStyleOption>
- #include <QPainter>
-+#include <QPainterPath>
- #ifdef VBOX_WS_MAC
- # include <QStackedLayout>
- #endif
---- a/src/VBox/Frontends/VirtualBox/src/widgets/UIFilmContainer.cpp 2020-05-30 00:40:01.624374596 +0300
-+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIFilmContainer.cpp 2020-05-30 00:41:40.654325376 +0300
-@@ -23,6 +23,7 @@
- #include <QScrollBar>
- #include <QStyle>
- #include <QVBoxLayout>
-+#include <QPainterPath>
- 
- /* GUI includes: */
- #include "UIFilmContainer.h"
---- a/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp 2020-05-30 00:40:08.844298062 +0300
-+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp 2020-05-30 00:41:44.594283652 +0300
-@@ -22,6 +22,7 @@
- #include <QPaintEvent>
- #include <QStyle>
- #include <QVBoxLayout>
-+#include <QPainterPath>
- 
- /* GUI includes: */
- #include "UIPopupBox.h"
---- a/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp 2020-05-30 00:40:16.064221530 +0300
-+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp 2020-05-30 00:41:52.014205079 +0300
-@@ -27,6 +27,7 @@
- #include <QToolButton>
- #include <QVBoxLayout>
- #include <QWindow>
-+#include <QPainterPath>
- #ifdef VBOX_WS_X11
- # include <QWindowStateChangeEvent>
- #endif
 --- a/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsScrollBar.cpp 2020-05-30 00:40:22.314155286 +0300
 +++ b/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsScrollBar.cpp 2020-05-30 00:41:56.544157111 +0300
 @@ -28,6 +28,7 @@
@@ -80,13 +8,3 @@
  
  /* GUI includes: */
  #include "UIGraphicsButton.h"
---- a/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp 2020-05-30 00:40:34.375027462 +0300
-+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp 2020-05-30 00:42:01.244107347 +0300
-@@ -18,6 +18,7 @@
- /* Qt includes: */
- #include <QPainter>
- #include <QTextEdit>
-+#include <QPainterPath>
- 
- /* GUI includes: */
- #include "UIPopupPane.h"

diff --git a/app-emulation/virtualbox/virtualbox-6.0.20.ebuild b/app-emulation/virtualbox/virtualbox-6.0.20.ebuild
index f16c7450b10..7e8e5d10fb3 100644
--- a/app-emulation/virtualbox/virtualbox-6.0.20.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.0.20.ebuild
@@ -207,6 +207,8 @@ src_prepare() {
 		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
 	fi
 
+	eapply "${FILESDIR}"/${P}-qt-5.15.patch # TODO: upstream, bug #726154
+
 	rm "${WORKDIR}/patches/010_virtualbox-5.2.12-qt511.patch" || die
 	eapply "${WORKDIR}/patches"
 

diff --git a/app-emulation/virtualbox/virtualbox-6.1.6.ebuild b/app-emulation/virtualbox/virtualbox-6.1.6.ebuild
index a359a7ca30f..df439dfa0f3 100644
--- a/app-emulation/virtualbox/virtualbox-6.1.6.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.1.6.ebuild
@@ -207,7 +207,8 @@ src_prepare() {
 		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
 	fi
 
-	eapply "${FILESDIR}"/${P}-qt-5.15.patch # TODO: upstream, bug #726154
+	eapply "${FILESDIR}"/${PN}-6.0.20-qt-5.15.patch # TODO: upstream,
+	eapply "${FILESDIR}"/${P}-qt-5.15.patch # ... bug #726154
 
 	eapply "${WORKDIR}/patches"
 


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2021-04-22 16:55 Lars Wendler
  0 siblings, 0 replies; 32+ messages in thread
From: Lars Wendler @ 2021-04-22 16:55 UTC (permalink / raw
  To: gentoo-commits

commit:     e413567e5b45bde18607c150e5ba1ad4c9f38cc5
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 22 16:05:20 2021 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Thu Apr 22 16:54:58 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e413567e

app-emulation/virtualbox: Revbump to fix LsiLogicSAS storage controller

Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 .../virtualbox-6.1.20-lsilogicsas_crash_fix.patch  | 41 ++++++++++++++++++++++
 ...x-6.1.20.ebuild => virtualbox-6.1.20-r1.ebuild} |  6 +++-
 2 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.20-lsilogicsas_crash_fix.patch b/app-emulation/virtualbox/files/virtualbox-6.1.20-lsilogicsas_crash_fix.patch
new file mode 100644
index 00000000000..7f1e4b17983
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.1.20-lsilogicsas_crash_fix.patch
@@ -0,0 +1,41 @@
+Index: /trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp
+===================================================================
+--- trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp	(revision 88530)
++++ trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp	(revision 88643)
+@@ -3678,8 +3678,6 @@
+     LogFlowFunc(("pThis=%#p\n", pThis));
+ 
+-    /* Clear everything first. */
+     AssertPtrReturnVoid(pThisCC->pConfigurationPages);
+     PMptConfigurationPagesSupported pPages = pThisCC->pConfigurationPages;
+-    memset(pPages, 0, sizeof(MptConfigurationPagesSupported));
+ 
+     /* Manufacturing Page 0. */
+Index: /trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.h
+===================================================================
+--- trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.h	(revision 82968)
++++ trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.h	(revision 88643)
+@@ -3327,13 +3327,17 @@
+ 
+ #define MPT_CONFIG_PAGE_HEADER_INIT_MANUFACTURING(pg, type, nr, flags) \
++    RT_ZERO(*pg); \
+     MPT_CONFIG_PAGE_HEADER_INIT(pg, type, nr, flags | MPT_CONFIGURATION_PAGE_TYPE_MANUFACTURING)
+ 
+ #define MPT_CONFIG_PAGE_HEADER_INIT_IO_UNIT(pg, type, nr, flags) \
++    RT_ZERO(*pg); \
+     MPT_CONFIG_PAGE_HEADER_INIT(pg, type, nr, flags | MPT_CONFIGURATION_PAGE_TYPE_IO_UNIT)
+ 
+ #define MPT_CONFIG_PAGE_HEADER_INIT_IOC(pg, type, nr, flags) \
++    RT_ZERO(*pg); \
+     MPT_CONFIG_PAGE_HEADER_INIT(pg, type, nr, flags | MPT_CONFIGURATION_PAGE_TYPE_IOC)
+ 
+ #define MPT_CONFIG_PAGE_HEADER_INIT_BIOS(pg, type, nr, flags) \
++    RT_ZERO(*pg); \
+     MPT_CONFIG_PAGE_HEADER_INIT(pg, type, nr, flags | MPT_CONFIGURATION_PAGE_TYPE_BIOS)
+ 
+@@ -3342,4 +3346,5 @@
+  */
+ #define MPT_CONFIG_EXTENDED_PAGE_HEADER_INIT(pg, cb, nr, flags, exttype) \
++    RT_BZERO(pg, cb); \
+     (pg)->u.fields.ExtHeader.u8PageType   = (flags) | MPT_CONFIGURATION_PAGE_TYPE_EXTENDED; \
+     (pg)->u.fields.ExtHeader.u8PageNumber = (nr); \

diff --git a/app-emulation/virtualbox/virtualbox-6.1.20.ebuild b/app-emulation/virtualbox/virtualbox-6.1.20-r1.ebuild
similarity index 99%
rename from app-emulation/virtualbox/virtualbox-6.1.20.ebuild
rename to app-emulation/virtualbox/virtualbox-6.1.20-r1.ebuild
index 6af250ffce5..95da7ce00ed 100644
--- a/app-emulation/virtualbox/virtualbox-6.1.20.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.1.20-r1.ebuild
@@ -139,6 +139,10 @@ REQUIRED_USE="
 	${PYTHON_REQUIRED_USE}
 "
 
+PATCHES=(
+	"${FILESDIR}/${P}-lsilogicsas_crash_fix.patch"
+)
+
 pkg_pretend() {
 	if ! use headless && ! use qt5 ; then
 		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
@@ -214,7 +218,7 @@ src_prepare() {
 
 	eapply "${WORKDIR}/patches"
 
-	eapply_user
+	default
 }
 
 doecho() {


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2022-07-06  6:05 Sam James
  0 siblings, 0 replies; 32+ messages in thread
From: Sam James @ 2022-07-06  6:05 UTC (permalink / raw
  To: gentoo-commits

commit:     1fc46c8f5638d711c550447a86a13286bd79fe73
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Jul  6 04:44:34 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jul  6 06:05:17 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1fc46c8f

app-emulation/virtualbox: force usage of selected Python; add Python 3.10

- Finish off the work from earlier (started in 0e7860b78e08743e7ba8a9d641a085e349811f83
  and then 7dde6a6bd36cadd1c70d8ec3d3f956750231eeff) for forcing the right
  Python implementation to be used for USE=python/bindings builds.

  We now hijack the script that the Makefile calls to get the list of available
  interpreters (which is separate from the weird configure thing!) and just
  create a stub which outputs the paths for the corresponding implementation
  chosen via PYTHON_SINGLE_TARGET using the normal eclass machinery.

- Add a sanity check in src_install for when USE=python for
  /usr/$(get_libdir)/virtualbox/VBoxPython*.so to minimise the risk
  of silently not building & not realising it.

  (Noticed risk of this when in the middle of this work & noticed that
  w/o the extra (see next point) Makefile targets, it ends up silently
  just not doing anything).

- Import Arch Linux / upstream (on trunk) patches for Python 3.10
  (thanks to Kerin Millar for the pointer on that bit).

  We're resigned to having to update the Makefile every time
  a new Python comes out, but it's at least only one place,
  and it's not trivial for us to change it given.. kbuild.

  (It's not just a list, but a bunch of variables which get
  defined for each target.)

Closes: https://bugs.gentoo.org/856121
Closes: https://bugs.gentoo.org/785835
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/virtualbox-6.1.34-r3-python3.10.patch    | 122 +++++
 .../virtualbox/virtualbox-6.1.34-r4.ebuild         | 585 +++++++++++++++++++++
 2 files changed, 707 insertions(+)

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python3.10.patch b/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python3.10.patch
new file mode 100644
index 000000000000..e06e86910103
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python3.10.patch
@@ -0,0 +1,122 @@
+https://github.com/archlinux/svntogit-community/blob/b103146beee8b7c70d04685033a8536aed2e5aea/trunk/002-python310.patch
+https://github.com/archlinux/svntogit-community/blob/b103146beee8b7c70d04685033a8536aed2e5aea/trunk/003-pyunicode.patch
+
+https://www.virtualbox.org/changeset/90537/vbox
+https://www.virtualbox.org/changeset/86623/vbox
+--- a/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
++++ b/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
+@@ -84,7 +84,11 @@
+ #  define MANGLE_MODULE_INIT(a_Name)    RT_CONCAT(a_Name, MODULE_NAME_SUFFIX)
+ # endif
+ # ifdef VBOX_PYXPCOM_VERSIONED
+-#  if   PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
++#  if   PY_VERSION_HEX >= 0x030a0000 && PY_VERSION_HEX < 0x030b0000
++#   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython3_10")
++#   define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_10)
++
++#  elif   PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
+ #   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython3_9")
+ #   define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_9)
+ 
+--- a/src/libs/xpcom18a4/python/Makefile.kmk
++++ b/src/libs/xpcom18a4/python/Makefile.kmk
+@@ -4,7 +4,7 @@
+ #
+ 
+ #
+-# Copyright (C) 2009-2017 Oracle Corporation
++# Copyright (C) 2009-2021 Oracle Corporation
+ #
+ # This file is part of VirtualBox Open Source Edition (OSE), as
+ # available from http://www.virtualbox.org. This file is free software;
+@@ -20,7 +20,7 @@
+ 
+ #
+ # List of supported Python versions, defining a number of
+-# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|DEF]_[INC|LIB] variables
++# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|DEF]_[INC|LIB] variables
+ # which get picked up below.
+ #
+ ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
+@@ -646,6 +646,52 @@
+  endif
+ endif
+ 
++ifdef VBOX_PYTHON310_INC
++#
++# Python 3.10 version
++#
++DLLS += VBoxPython3_10
++VBoxPython3_10_EXTENDS    = VBoxPythonBase
++VBoxPython3_10_EXTENDS_BY = appending
++VBoxPython3_10_TEMPLATE   = XPCOM
++VBoxPython3_10_INCS       = $(VBOX_PYTHON310_INC)
++VBoxPython3_10_LIBS       = $(VBOX_PYTHON310_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++  ifdef VBOX_PYTHON310_LIB_X86
++DLLS += VBoxPython3_10_x86
++VBoxPython3_10_x86_EXTENDS    = VBoxPythonBase_x86
++VBoxPython3_10_x86_EXTENDS_BY = appending
++VBoxPython3_10_x86_TEMPLATE   = XPCOM
++VBoxPython3_10_x86_INCS       = $(VBOX_PYTHON310_INC)
++VBoxPython3_10_x86_LIBS       = $(VBOX_PYTHON310_LIB_X86)
++  endif
++ endif
++endif
++
++ifdef VBOX_PYTHON310M_INC
++#
++# Python 3.10 version with pymalloc
++#
++DLLS += VBoxPython3_10m
++VBoxPython3_10m_EXTENDS    = VBoxPythonBase_m
++VBoxPython3_10m_EXTENDS_BY = appending
++VBoxPython3_10m_TEMPLATE   = XPCOM
++VBoxPython3_10m_INCS       = $(VBOX_PYTHON310M_INC)
++VBoxPython3_10m_LIBS       = $(VBOX_PYTHON310M_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++  ifdef VBOX_PYTHON310M_LIB_X86
++DLLS += VBoxPython3_10m_x86
++VBoxPython3_10m_x86_EXTENDS    = VBoxPythonBase_x86_m
++VBoxPython3_10m_x86_EXTENDS_BY = appending
++VBoxPython3_10m_x86_TEMPLATE_  = XPCOM
++VBoxPython3_10m_x86_INCS       = $(VBOX_PYTHON310M_INC)
++VBoxPython3_10m_x86_LIBS       = $(VBOX_PYTHON310M_LIB_X86)
++  endif
++ endif
++endif
++
+ ifdef VBOX_PYTHONDEF_INC
+ #
+ # Python without versioning
+@@ -730,4 +776,3 @@
+ 
+ 
+ include $(FILE_KBUILD_SUB_FOOTER)
+-
+
+--- a/src/libs/xpcom18a4/python/src/PyXPCOM.h
++++ b/src/libs/xpcom18a4/python/src/PyXPCOM.h
+@@ -137,12 +137,14 @@
+ #  define PyInt_Check(o) PyLong_Check(o)
+ #  define PyInt_AsLong(o) PyLong_AsLong(o)
+ #  define PyNumber_Int(o) PyNumber_Long(o)
+-#  ifndef PyUnicode_AsUTF8
+-#   define PyUnicode_AsUTF8(o) _PyUnicode_AsString(o)
++#  if !defined(Py_LIMITED_API) && PY_VERSION_HEX <= 0x03030000 /* 3.3 added PyUnicode_AsUTF8AndSize */
++#   ifndef PyUnicode_AsUTF8
++#    define PyUnicode_AsUTF8(o) _PyUnicode_AsString(o)
++#   endif
++#   ifndef PyUnicode_AsUTF8AndSize
++#    define PyUnicode_AsUTF8AndSize(o,s) _PyUnicode_AsStringAndSize(o,s)
++#   endif
+ #  endif
+-#  ifndef PyUnicode_AsUTF8AndSize
+-#   define PyUnicode_AsUTF8AndSize(o,s) _PyUnicode_AsStringAndSize(o,s)
+-#  endif
+ typedef struct PyMethodChain
+ {
+     PyMethodDef *methods;
+

diff --git a/app-emulation/virtualbox/virtualbox-6.1.34-r4.ebuild b/app-emulation/virtualbox/virtualbox-6.1.34-r4.ebuild
new file mode 100644
index 000000000000..a20ee04a2d51
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-6.1.34-r4.ebuild
@@ -0,0 +1,585 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+#    Do NOT skip this part. It'll end up silently not-building the Python extension
+#    or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
+#  Python versions as upstream tends to lag. Upstream may have patches on their
+#  trunk branch but not release branch.
+#
+#  See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit desktop edo java-pkg-opt-2 linux-info multilib optfeature pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_PV="${PV/beta/BETA}"
+MY_PV="${MY_PV/rc/RC}"
+MY_P=${MY_PN}-${MY_PV}
+[[ ${PV} == *a ]] && DIR_PV="$(ver_cut 1-3)"
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
+	https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz"
+S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
+
+LICENSE="GPL-2 dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
+	KEYWORDS="~amd64"
+fi
+IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
+
+COMMON_DEPEND="
+	${PYTHON_DEPS}
+	!app-emulation/virtualbox-bin
+	acct-group/vboxusers
+	~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
+	dev-libs/libIDL
+	>=dev-libs/libxslt-1.1.19
+	net-misc/curl
+	dev-libs/libxml2
+	media-libs/libpng:0=
+	media-libs/libvpx:0=
+	sys-libs/zlib:=
+	!headless? (
+		media-libs/libsdl:0[X,video]
+		x11-libs/libX11
+		x11-libs/libxcb:=
+		x11-libs/libXcursor
+		x11-libs/libXext
+		x11-libs/libXmu
+		x11-libs/libXt
+		opengl? (
+			media-libs/libglvnd[X]
+			virtual/glu
+		)
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtgui:5
+			dev-qt/qtprintsupport:5
+			dev-qt/qtwidgets:5
+			dev-qt/qtx11extras:5
+			opengl? ( dev-qt/qtopengl:5 )
+			x11-libs/libXinerama
+		)
+	)
+	dev-libs/openssl:0=
+	virtual/libcrypt:=
+	lvm? ( sys-fs/lvm2 )
+	opus? ( media-libs/opus )
+	udev? ( >=virtual/udev-171 )
+	vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now. See bug #832166.
+DEPEND="
+	${COMMON_DEPEND}
+	alsa? ( >=media-libs/alsa-lib-1.0.13 )
+	!headless? (
+		x11-libs/libXinerama
+		opengl? ( virtual/opengl )
+	)
+	java? ( virtual/jdk:1.8 )
+	pam? ( sys-libs/pam )
+	pax-kernel? ( sys-apps/elfix )
+	pulseaudio? ( media-sound/pulseaudio )
+	qt5? ( dev-qt/linguist-tools:5 )
+	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	>=dev-util/kbuild-0.1.9998.3127
+	>=dev-lang/yasm-0.6.2
+	sys-apps/which
+	sys-devel/bin86
+	sys-libs/libcap
+	sys-power/iasl
+	virtual/pkgconfig
+	doc? (
+		app-text/docbook-sgml-dtd:4.4
+		dev-texlive/texlive-basic
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexrecommended
+		dev-texlive/texlive-latexextra
+		dev-texlive/texlive-fontsrecommended
+		dev-texlive/texlive-fontsextra
+	)
+	java? ( virtual/jdk:1.8 )
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	java? ( virtual/jre:1.8 )
+"
+
+QA_TEXTRELS="
+	usr/lib64/virtualbox/VMMR0.r0
+"
+
+QA_EXECSTACK="
+	usr/lib64/virtualbox/iPxeBaseBin
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+"
+
+QA_WX_LOAD="
+	usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+"
+
+REQUIRED_USE="
+	java? ( sdk )
+	python? ( sdk )
+	vboxwebsrv? ( java )
+	${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-vboxr0.patch
+
+	# Upstream patch for USE=-pam
+	# bug #843437
+	"${FILESDIR}"/${PN}-6.1.34-no-pam.patch
+
+	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
+
+	# This patch is needed to avoid automagic detection based on a hardcoded
+	# list of Pythons in configure. It's necessary but not sufficient
+	# (see the rest of the ebuild's logic for the remainder) to handle
+	# proper Python selection.
+	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
+
+	# Patch grabbed from Arch Linux / upstream for Python 3.10 support
+	"${FILESDIR}"/${PN}-6.1.34-r3-python3.10.patch
+
+	# Downloaded patchset
+	"${WORKDIR}"/patches
+)
+
+pkg_pretend() {
+	if ! use headless && ! use qt5 ; then
+		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
+	elif use headless && use qt5 ; then
+		einfo "You selected USE=\"headless qt5\", defaulting to"
+		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
+	fi
+
+	if ! use opengl ; then
+		einfo "No USE=\"opengl\" selected, this build will lack"
+		einfo "the OpenGL feature."
+	fi
+	if ! use python ; then
+		einfo "You have disabled the \"python\" USE flag. This will only"
+		einfo "disable the python bindings being installed."
+	fi
+}
+
+pkg_setup() {
+	java-pkg-opt-2_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	# Only add nopie patch when we're on hardened
+	if gcc-specs-pie ; then
+		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+	fi
+
+	# Only add paxmark patch when we're on pax-kernel
+	if use pax-kernel ; then
+		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
+	fi
+
+	# Remove shipped binaries (kBuild, yasm), see bug #232775
+	rm -r kBuild/bin tools || die
+
+	# Replace pointless GCC version check with something more sensible.
+	# This is needed for the qt5 version check.
+	sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
+		-i configure || die
+
+	# Disable things unused or split into separate ebuilds
+	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+	if ! use pch ; then
+		# bug #753323
+		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+			>> LocalConfig.kmk || die
+	fi
+
+	# Respect LDFLAGS
+	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+	# Do not use hard-coded ld (related to bug #488176)
+	sed -e '/QUIET)ld /s@ld @$(LD) @' \
+		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+	# Use PAM only when pam USE flag is enbaled (bug #376531)
+	if ! use pam ; then
+		einfo "Disabling PAM removes the possibility to use the VRDP features."
+		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+			src/VBox/HostServices/Makefile.kmk || die
+	fi
+
+	# add correct java path
+	if use java ; then
+		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+			-i "${S}"/Config.kmk || die
+		java-pkg-opt-2_src_prepare
+	fi
+}
+
+src_configure() {
+	tc-ld-disable-gold # bug #488176
+	tc-export CC CXX LD AR RANLIB
+	export HOST_CC="$(tc-getBUILD_CC)"
+
+	local myconf=(
+		--with-gcc="$(tc-getCC)"
+		--with-g++="$(tc-getCXX)"
+
+		--disable-dbus
+		--disable-kmods
+
+		$(usex alsa '' --disable-alsa)
+		$(usex debug --build-debug '')
+		$(usex doc '' --disable-docs)
+		$(usex java '' --disable-java)
+		$(usex lvm '' --disable-devmapper)
+		$(usex opus '' --disable-libopus)
+		$(usex pulseaudio '' --disable-pulse)
+		$(usex python '' --disable-python)
+		$(usex vboxwebsrv --enable-webservice '')
+		$(usex vnc --enable-vnc '')
+	)
+
+	if ! use headless ; then
+		myconf+=(
+			$(usex opengl '' --disable-opengl)
+			$(usex qt5 '' --disable-qt)
+		)
+	else
+		myconf+=(
+			--build-headless
+			--disable-opengl
+		)
+	fi
+
+	if use amd64 && ! has_multilib_profile ; then
+		myconf+=( --disable-vmmraw )
+	fi
+
+	# bug #843437
+	cat >> LocalConfig.kmk <<-EOF || die
+		CFLAGS=${CFLAGS}
+		CXXFLAGS=${CXXFLAGS}
+	EOF
+
+	# not an autoconf script
+	edo ./configure "${myconf[@]}"
+
+	# Force usage of chosen Python implementation
+	# bug #856121, bug #785835
+	sed -i \
+		-e '/VBOX_WITH_PYTHON.*=/d' \
+		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
+		-e '/VBOX_LIB_PYTHON.*=/d' \
+		AutoConfig.kmk || die
+
+	cat >> AutoConfig.kmk <<-EOF || die
+		VBOX_WITH_PYTHON=$(usex python 1 0)
+		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+		VBOX_LIB_PYTHON=$(python_get_library_path)
+	EOF
+
+	if use python ; then
+		local mangled_python="${EPYTHON#python}"
+		mangled_python="${mangled_python/.}"
+
+		# Stub out the script which defines what the Makefile ends up
+		# building for. gen_python_deps.py gets called by the Makefile
+		# with some args and it spits out a bunch of paths for a hardcoded
+		# list of Pythons. We just override it with what we're actually using.
+		# This minimises the amount of patching we have to do for new Pythons.
+		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+		EOF
+
+		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+	fi
+}
+
+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}"
+
+	MAKE="kmk" emake \
+		VBOX_BUILD_PUBLISHER=_Gentoo \
+		TOOL_GXX3_CC="$(tc-getCC)" \
+		TOOL_GXX3_CXX="$(tc-getCXX)" \
+		TOOL_GXX3_LD="$(tc-getCXX)" \
+		VBOX_GCC_OPT="${CXXFLAGS}" \
+		TOOL_YASM_AS=yasm \
+		KBUILD_VERBOSE=2 \
+		VBOX_WITH_VBOXIMGMOUNT=1 \
+		all
+}
+
+src_install() {
+	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+	vbox_inst() {
+		local binary="${1}"
+		local perms="${2:-0750}"
+		local path="${3:-${vbox_inst_path}}"
+
+		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+		insinto ${path}
+		doins ${binary}
+		fowners root:vboxusers ${path}/${binary}
+		fperms ${perms} ${path}/${binary}
+	}
+
+	# Create configuration files
+	insinto /etc/vbox
+	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+	# Set the correct libdir
+	sed \
+		-e "s@MY_LIBDIR@$(get_libdir)@" \
+		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+	# Install the wrapper script
+	exeinto ${vbox_inst_path}
+	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+	fowners root:vboxusers ${vbox_inst_path}/VBox
+	fperms 0750 ${vbox_inst_path}/VBox
+
+	# Install binaries and libraries
+	insinto ${vbox_inst_path}
+	doins -r components
+
+	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do
+		vbox_inst ${each}
+	done
+
+	# These binaries need to be suid root.
+	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+		vbox_inst ${each} 4750
+	done
+
+	# Install EFI Firmware files (bug #320757)
+	for each in VBoxEFI{32,64}.fd ; do
+		vbox_inst ${each} 0644
+	done
+
+	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+	# VBoxXPCOMIPCD (bug #524202)
+	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+		pax-mark -m "${ED}"${vbox_inst_path}/${each}
+	done
+
+	# Symlink binaries to the shipped wrapper
+	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+	done
+	dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
+	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+
+	if use pam ; then
+		# VRDPAuth only works with this (bug #351949)
+		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+	fi
+
+	# set an env-variable for 3rd party tools
+	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	doenvd "${T}/90virtualbox"
+
+	if ! use headless ; then
+		vbox_inst rdesktop-vrdp
+		vbox_inst VBoxSDL 4750
+		pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+		for each in vboxsdl VBoxSDL ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+
+		if use qt5 ; then
+			vbox_inst VirtualBox
+			vbox_inst VirtualBoxVM 4750
+			for each in VirtualBox{,VM} ; do
+				pax-mark -m "${ED}"${vbox_inst_path}/${each}
+			done
+
+			if use opengl ; then
+				vbox_inst VBoxTestOGL
+				pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+			fi
+
+			for each in virtualbox{,vm} VirtualBox{,VM} ; do
+				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+			done
+
+			insinto /usr/share/${PN}
+			doins -r nls
+			doins -r UnattendedTemplates
+
+			domenu ${PN}.desktop
+		fi
+
+		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+		for size in 16 32 48 64 128 ; do
+			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+		done
+		newicon ${PN}-48px.png ${PN}.png
+		doicon -s scalable ${PN}.svg
+		popd &>/dev/null || die
+		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+		for size in 16 24 32 48 64 72 96 128 256 512 ; do
+			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+				icofile="${PN}-${ico}-${size}px.png"
+				if [[ -f "${icofile}" ]] ; then
+					newicon -s ${size} ${icofile} ${PN}-${ico}.png
+				fi
+			done
+		done
+		popd &>/dev/null || die
+	fi
+
+	if use lvm ; then
+		vbox_inst VBoxVolInfo 4750
+		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+	fi
+
+	if use sdk ; then
+		insinto ${vbox_inst_path}
+		doins -r sdk
+
+		if use java ; then
+			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+		fi
+	fi
+
+	if use udev ; then
+		local udevdir="$(get_udevdir)"
+		local udev_file="VBoxCreateUSBNode.sh"
+		local rules_file="10-virtualbox.rules"
+
+		insinto ${udevdir}
+		doins ${udev_file}
+		fowners root:vboxusers ${udevdir}/${udev_file}
+		fperms 0750 ${udevdir}/${udev_file}
+
+		insinto ${udevdir}/rules.d
+		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+			> "${T}"/${rules_file} || die
+		doins "${T}"/${rules_file}
+	fi
+
+	if use vboxwebsrv ; then
+		vbox_inst vboxwebsrv
+		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+	fi
+
+	# Remove dead symlinks (bug #715338)
+	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+	# Fix version string in extensions or else they don't get accepted
+	# by the virtualbox host process (see bug #438930)
+	find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
+		| xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
+		|| die
+
+	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+	if use vnc ; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/VNC
+	fi
+
+	if use dtrace ; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+	fi
+
+	if use doc ; then
+		dodoc UserManual.pdf
+	fi
+
+	if use python ; then
+		local mangled_python="${EPYTHON#python}"
+		mangled_python="${mangled_python/./_}"
+
+		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython${mangled_python}.so"
+		if [[ ! -x "${python_path_ext}" ]] ; then
+			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+			eerror "but none were installed. This may happen if support for a Python target"
+			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+		fi
+        fi
+
+	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use udev ; then
+		udevadm control --reload-rules
+		udevadm trigger --subsystem-match=usb
+	fi
+
+	tmpfiles_process virtualbox-vboxusb.conf
+
+	if ! use headless && use qt5 ; then
+		elog "To launch VirtualBox just type: \"virtualbox\"."
+	fi
+
+	elog "You must be in the vboxusers group to use VirtualBox."
+	elog ""
+	elog "The latest user manual is available for download at:"
+	elog "https://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf"
+	elog ""
+
+	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+	if ! use udev ; then
+		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+	fi
+}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2022-08-18 18:43 Sam James
  0 siblings, 0 replies; 32+ messages in thread
From: Sam James @ 2022-08-18 18:43 UTC (permalink / raw
  To: gentoo-commits

commit:     30a5e942654517bbb07962187a4a619b281ff3ca
Author:     Viorel Munteanu <ceamac.paragon <AT> gmail <DOT> com>
AuthorDate: Wed Aug 17 06:52:07 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Aug 18 18:42:14 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=30a5e942

app-emulation/virtualbox: Fix compilation with -fcf-protection

Closes: https://bugs.gentoo.org/865361
Signed-off-by: Viorel Munteanu <ceamac.paragon <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/26889
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/virtualbox-6.1.36-fcf-protection.patch         | 16 ++++++++++++++++
 app-emulation/virtualbox/virtualbox-6.1.36-r1.ebuild     |  3 +++
 2 files changed, 19 insertions(+)

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.36-fcf-protection.patch b/app-emulation/virtualbox/files/virtualbox-6.1.36-fcf-protection.patch
new file mode 100644
index 000000000000..14b11f734c71
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.1.36-fcf-protection.patch
@@ -0,0 +1,16 @@
+Bug https://bugs.gentoo.org/865361
+
+gcc does not support -fcf-protection for i386 (needs i686+),
+so disable it when building iPxeBaseBin.
+
+--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk
++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk
+@@ -176,6 +177,8 @@
+ 
+  iPxeBaseBin_TEMPLATE = iPxe
+ 
++ iPxeBaseBin_CFLAGS = -fcf-protection=none
++
+  iPxeBaseBin_INCS = \
+ 	src \
+ 	src/include \

diff --git a/app-emulation/virtualbox/virtualbox-6.1.36-r1.ebuild b/app-emulation/virtualbox/virtualbox-6.1.36-r1.ebuild
index c0b33deec69b..e964abdd6906 100644
--- a/app-emulation/virtualbox/virtualbox-6.1.36-r1.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.1.36-r1.ebuild
@@ -172,6 +172,9 @@ PATCHES=(
 	# Patch grabbed from Arch Linux / upstream for Python 3.10 support
 	"${FILESDIR}"/${PN}-6.1.36-python3.10.patch
 
+	# 865361
+	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
+
 	# Downloaded patchset
 	"${WORKDIR}"/virtualbox-patches-${MY_PV}/patches
 )


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2022-09-05 12:39 Joonas Niilola
  0 siblings, 0 replies; 32+ messages in thread
From: Joonas Niilola @ 2022-09-05 12:39 UTC (permalink / raw
  To: gentoo-commits

commit:     d66719f5cd1476433e895d82059c431688d40914
Author:     Viorel Munteanu <ceamac.paragon <AT> gmail <DOT> com>
AuthorDate: Thu Sep  1 08:08:17 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Sep  5 12:39:17 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d66719f5

app-emulation/virtualbox: drop versions

Closes: https://bugs.gentoo.org/839990
Closes: https://bugs.gentoo.org/859391
Signed-off-by: Viorel Munteanu <ceamac.paragon <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/27149
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   3 -
 .../files/virtualbox-6.1.34-no-pam.patch           |  22 -
 .../files/virtualbox-6.1.34-python3.10.patch       |  13 -
 .../files/virtualbox-6.1.34-r3-python3.10.patch    | 122 ----
 .../files/virtualbox-6.1.34-vboxr0.patch           |  20 -
 .../virtualbox/virtualbox-6.1.32-r3.ebuild         | 517 ----------------
 .../virtualbox/virtualbox-6.1.34-r1.ebuild         | 506 ----------------
 .../virtualbox/virtualbox-6.1.34-r3.ebuild         | 535 -----------------
 .../virtualbox/virtualbox-6.1.34-r7.ebuild         | 636 --------------------
 app-emulation/virtualbox/virtualbox-6.1.36.ebuild  | 647 ---------------------
 10 files changed, 3021 deletions(-)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index f0e2964cc09c..d98f18d2ee2d 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,6 +1,3 @@
-DIST VirtualBox-6.1.32.tar.bz2 165758238 BLAKE2B 24873d7cc8bd306ea3552fe75379fbe7be767c85406042344eb047ed31184c3357aea07dda5e15c275f5036ae63106ef1d2e6524b143bc645a6b5ba0016f1391 SHA512 8bf7af6b8b4d3ba90f0e91589cf26400648436eb9da6d31c1a760460bfe5eb7311ac3220b4c9a98ac50e559641d3d5f559134be65288821038255de1c2c7ce1e
-DIST VirtualBox-6.1.34.tar.bz2 165761216 BLAKE2B d3c8f7d3d6f408e4c4275c2b2815e92819c871359501ec4fa7212bf7cdc852613e2e4703d8650371097a5bc805efa04ea75bb03ab83d24a869a677555f6e22d5 SHA512 46d63a9fd9df76af654af59fab5cf555858bc2c4b5dc34e2378d85ae784e6380b6def4aab06909a9b5e114a7297269f90cfb2c3d8d6529b423d703afbad18c64
 DIST VirtualBox-6.1.36.tar.bz2 165685382 BLAKE2B 98dbb06450b9df650cb72493bcdea4b88fa9dd21f76d723fdc0bb2c1ab8266f67e972a7222dc9b5bd0d43754911710664bddace753995be025cf6bcc05a24ae5 SHA512 cc3b984a7da40c9bf14831808a2bc2bf7bf6821e53c25fa11cb4b4275feb1d4b0cb4a47d8a360b90c89e5a4038481efe8fe28ee22996dbefb6446761e88a8dec
 DIST VirtualBox-6.1.38.tar.bz2 165761175 BLAKE2B decda6e7a595f79e6ace6f8f6b8a7829223ac1422c3d280b6287a40ef942e773ad473f4fa4640a76f8fb825ebd8561c646f1b3d87922b1af55c138298b4c8f4f SHA512 7a4f2dc80e3251b1da6d29d3c6f6b802527decc70497b1a1d1008c0ab3109c2039d131c587d6ec4786aea619546757655337c2ec3456243336ca13c6f6748116
-DIST virtualbox-6.1.12-patches-01.tar.xz 2528 BLAKE2B a5d7cde0daea41bee2e40e46569c725769927a31865d99d13b8b13c4903e59b4097f85da15dc592b9c7e8baf8ff805397af827620f107ba09a468b4d1198ecab SHA512 f71d10a9fbce99c3f631ef30bcfa9d0e017e702ac509541b039e08ccbcd024beb93fde09c43d90af5d9d28f6842a7947f20e7950d3897da3e6d57859657e1123
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.34-no-pam.patch b/app-emulation/virtualbox/files/virtualbox-6.1.34-no-pam.patch
deleted file mode 100644
index 9266cece55bd..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-6.1.34-no-pam.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-https://bugs.gentoo.org/843437
-https://www.virtualbox.org/changeset/94406/vbox
-
---- a/src/VBox/Runtime/Makefile.kmk
-+++ b/src/VBox/Runtime/Makefile.kmk
-@@ -324,4 +324,7 @@
- ifdef IPRT_WITH_FUTEX_BASED_SEMS
-  RuntimeR3_DEFS.linux  += IPRT_WITH_FUTEX_BASED_SEMS
-+endif
-+ifdef IPRT_WITHOUT_PAM
-+ RuntimeR3_DEFS        += IPRT_WITHOUT_PAM
- endif
- RuntimeR3_INCS         = \
---- a/src/VBox/Runtime/r3/posix/process-creation-posix.cpp
-+++ b/src/VBox/Runtime/r3/posix/process-creation-posix.cpp
-@@ -86,4 +86,5 @@
- 
- #if !defined(IPRT_USE_PAM) \
-+ && !defined(IPRT_WITHOUT_PAM) \
-  && ( defined(RT_OS_DARWIN) || defined(RT_OS_FREEBSD) || defined(RT_OS_LINUX) || defined(RT_OS_NETBSD) || defined(RT_OS_OPENBSD) )
- # define IPRT_USE_PAM
-

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.34-python3.10.patch b/app-emulation/virtualbox/files/virtualbox-6.1.34-python3.10.patch
deleted file mode 100644
index eacc77a7f5bc..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-6.1.34-python3.10.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://bugs.gentoo.org/852152
-
---- VirtualBox-6.1.34/configure
-+++ VirtualBox-6.1.34/configure
-@@ -2027,7 +2027,7 @@
- }
- EOF
-   found=
--  SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.8m python3.9 python3.9m"
-+  SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.8m python3.9 python3.9m python3.10 python3.10m"
-   for p in $PYTHONDIR; do
-     for d in $SUPPYTHONLIBS; do
-       for b in lib/x86_64-linux-gnu lib/i386-linux-gnu lib64 lib/64 lib; do

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python3.10.patch b/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python3.10.patch
deleted file mode 100644
index e06e86910103..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python3.10.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-https://github.com/archlinux/svntogit-community/blob/b103146beee8b7c70d04685033a8536aed2e5aea/trunk/002-python310.patch
-https://github.com/archlinux/svntogit-community/blob/b103146beee8b7c70d04685033a8536aed2e5aea/trunk/003-pyunicode.patch
-
-https://www.virtualbox.org/changeset/90537/vbox
-https://www.virtualbox.org/changeset/86623/vbox
---- a/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
-+++ b/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
-@@ -84,7 +84,11 @@
- #  define MANGLE_MODULE_INIT(a_Name)    RT_CONCAT(a_Name, MODULE_NAME_SUFFIX)
- # endif
- # ifdef VBOX_PYXPCOM_VERSIONED
--#  if   PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
-+#  if   PY_VERSION_HEX >= 0x030a0000 && PY_VERSION_HEX < 0x030b0000
-+#   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython3_10")
-+#   define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_10)
-+
-+#  elif   PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
- #   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython3_9")
- #   define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_9)
- 
---- a/src/libs/xpcom18a4/python/Makefile.kmk
-+++ b/src/libs/xpcom18a4/python/Makefile.kmk
-@@ -4,7 +4,7 @@
- #
- 
- #
--# Copyright (C) 2009-2017 Oracle Corporation
-+# Copyright (C) 2009-2021 Oracle Corporation
- #
- # This file is part of VirtualBox Open Source Edition (OSE), as
- # available from http://www.virtualbox.org. This file is free software;
-@@ -20,7 +20,7 @@
- 
- #
- # List of supported Python versions, defining a number of
--# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|DEF]_[INC|LIB] variables
-+# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|DEF]_[INC|LIB] variables
- # which get picked up below.
- #
- ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
-@@ -646,6 +646,52 @@
-  endif
- endif
- 
-+ifdef VBOX_PYTHON310_INC
-+#
-+# Python 3.10 version
-+#
-+DLLS += VBoxPython3_10
-+VBoxPython3_10_EXTENDS    = VBoxPythonBase
-+VBoxPython3_10_EXTENDS_BY = appending
-+VBoxPython3_10_TEMPLATE   = XPCOM
-+VBoxPython3_10_INCS       = $(VBOX_PYTHON310_INC)
-+VBoxPython3_10_LIBS       = $(VBOX_PYTHON310_LIB)
-+
-+ ifdef VBOX_WITH_32_ON_64_MAIN_API
-+  ifdef VBOX_PYTHON310_LIB_X86
-+DLLS += VBoxPython3_10_x86
-+VBoxPython3_10_x86_EXTENDS    = VBoxPythonBase_x86
-+VBoxPython3_10_x86_EXTENDS_BY = appending
-+VBoxPython3_10_x86_TEMPLATE   = XPCOM
-+VBoxPython3_10_x86_INCS       = $(VBOX_PYTHON310_INC)
-+VBoxPython3_10_x86_LIBS       = $(VBOX_PYTHON310_LIB_X86)
-+  endif
-+ endif
-+endif
-+
-+ifdef VBOX_PYTHON310M_INC
-+#
-+# Python 3.10 version with pymalloc
-+#
-+DLLS += VBoxPython3_10m
-+VBoxPython3_10m_EXTENDS    = VBoxPythonBase_m
-+VBoxPython3_10m_EXTENDS_BY = appending
-+VBoxPython3_10m_TEMPLATE   = XPCOM
-+VBoxPython3_10m_INCS       = $(VBOX_PYTHON310M_INC)
-+VBoxPython3_10m_LIBS       = $(VBOX_PYTHON310M_LIB)
-+
-+ ifdef VBOX_WITH_32_ON_64_MAIN_API
-+  ifdef VBOX_PYTHON310M_LIB_X86
-+DLLS += VBoxPython3_10m_x86
-+VBoxPython3_10m_x86_EXTENDS    = VBoxPythonBase_x86_m
-+VBoxPython3_10m_x86_EXTENDS_BY = appending
-+VBoxPython3_10m_x86_TEMPLATE_  = XPCOM
-+VBoxPython3_10m_x86_INCS       = $(VBOX_PYTHON310M_INC)
-+VBoxPython3_10m_x86_LIBS       = $(VBOX_PYTHON310M_LIB_X86)
-+  endif
-+ endif
-+endif
-+
- ifdef VBOX_PYTHONDEF_INC
- #
- # Python without versioning
-@@ -730,4 +776,3 @@
- 
- 
- include $(FILE_KBUILD_SUB_FOOTER)
--
-
---- a/src/libs/xpcom18a4/python/src/PyXPCOM.h
-+++ b/src/libs/xpcom18a4/python/src/PyXPCOM.h
-@@ -137,12 +137,14 @@
- #  define PyInt_Check(o) PyLong_Check(o)
- #  define PyInt_AsLong(o) PyLong_AsLong(o)
- #  define PyNumber_Int(o) PyNumber_Long(o)
--#  ifndef PyUnicode_AsUTF8
--#   define PyUnicode_AsUTF8(o) _PyUnicode_AsString(o)
-+#  if !defined(Py_LIMITED_API) && PY_VERSION_HEX <= 0x03030000 /* 3.3 added PyUnicode_AsUTF8AndSize */
-+#   ifndef PyUnicode_AsUTF8
-+#    define PyUnicode_AsUTF8(o) _PyUnicode_AsString(o)
-+#   endif
-+#   ifndef PyUnicode_AsUTF8AndSize
-+#    define PyUnicode_AsUTF8AndSize(o,s) _PyUnicode_AsStringAndSize(o,s)
-+#   endif
- #  endif
--#  ifndef PyUnicode_AsUTF8AndSize
--#   define PyUnicode_AsUTF8AndSize(o,s) _PyUnicode_AsStringAndSize(o,s)
--#  endif
- typedef struct PyMethodChain
- {
-     PyMethodDef *methods;
-

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.34-vboxr0.patch b/app-emulation/virtualbox/files/virtualbox-6.1.34-vboxr0.patch
deleted file mode 100644
index 8d8105edee9a..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-6.1.34-vboxr0.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-https://www.virtualbox.org/ticket/20904
-
---- VirtualBox-6.1.34/Config.kmk
-+++ VirtualBox-6.1.34/Config.kmk
-@@ -4502,11 +4502,14 @@
- TEMPLATE_VBoxR0_TOOL                = $(VBOX_GCC_TOOL)
- TEMPLATE_VBoxR0_CFLAGS              = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) \
- 	$(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
--	$(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
-+	$(VBOX_GCC_fno-stack-protector) -fno-common -ffreestanding $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
- TEMPLATE_VBoxR0_CXXFLAGS            = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) \
- 	$(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
- 	$(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
- 	-fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
-+ if $(VBOX_GCC_VERSION_CC) >= 40500 # 4.1.2 complains, 4.5.2 is okay, didn't check which version inbetween made it okay with g++.
-+TEMPLATE_VBoxR0_CXXFLAGS           += -ffreestanding
-+ endif
- TEMPLATE_VBoxR0_CFLAGS.amd64        = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables -ffreestanding
- TEMPLATE_VBoxR0_CXXFLAGS.amd64      = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables
- TEMPLATE_VBoxR0_CXXFLAGS.freebsd    = -ffreestanding

diff --git a/app-emulation/virtualbox/virtualbox-6.1.32-r3.ebuild b/app-emulation/virtualbox/virtualbox-6.1.32-r3.ebuild
deleted file mode 100644
index 722a6987c670..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.1.32-r3.ebuild
+++ /dev/null
@@ -1,517 +0,0 @@
-# Copyright 2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{8..10} )
-inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}-${MY_PV}
-[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
-	https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0/$(ver_cut 1-2)"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="amd64"
-IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc"
-
-COMMON_DEPEND="
-	${PYTHON_DEPS}
-	!app-emulation/virtualbox-bin
-	acct-group/vboxusers
-	~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
-	dev-libs/libIDL
-	>=dev-libs/libxslt-1.1.19
-	net-misc/curl
-	dev-libs/libxml2
-	media-libs/libpng:0=
-	media-libs/libvpx:0=
-	sys-libs/zlib:=
-	!headless? (
-		sdl? ( media-libs/libsdl:0[X,video] )
-		x11-libs/libX11
-		x11-libs/libxcb:=
-		x11-libs/libXcursor
-		x11-libs/libXext
-		x11-libs/libXmu
-		x11-libs/libXt
-		opengl? (
-			media-libs/libglvnd[X]
-			virtual/glu
-		)
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtgui:5
-			dev-qt/qtprintsupport:5
-			dev-qt/qtwidgets:5
-			dev-qt/qtx11extras:5
-			opengl? ( dev-qt/qtopengl:5 )
-			x11-libs/libXinerama
-		)
-	)
-	dev-libs/openssl:0=
-	virtual/libcrypt:=
-	lvm? ( sys-fs/lvm2 )
-	opus? ( media-libs/opus )
-	udev? ( >=virtual/udev-171 )
-	vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-DEPEND="
-	${COMMON_DEPEND}
-	alsa? ( >=media-libs/alsa-lib-1.0.13 )
-	!headless? (
-		x11-libs/libXinerama
-		opengl? ( virtual/opengl )
-	)
-	pam? ( sys-libs/pam )
-	pax-kernel? ( sys-apps/elfix )
-	pulseaudio? ( media-sound/pulseaudio )
-	qt5? ( dev-qt/linguist-tools:5 )
-	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	>=dev-util/kbuild-0.1.9998.3127
-	>=dev-lang/yasm-0.6.2
-	sys-devel/bin86
-	sys-libs/libcap
-	sys-power/iasl
-	virtual/pkgconfig
-	doc? (
-		app-text/docbook-sgml-dtd:4.4
-		dev-texlive/texlive-basic
-		dev-texlive/texlive-latex
-		dev-texlive/texlive-latexrecommended
-		dev-texlive/texlive-latexextra
-		dev-texlive/texlive-fontsrecommended
-		dev-texlive/texlive-fontsextra
-	)
-	java? ( >=virtual/jdk-1.8 )
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	java? ( >=virtual/jre-1.6 )
-"
-
-QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so
-	usr/lib/virtualbox/VBoxSDL.so
-	usr/lib/virtualbox/VBoxSharedFolders.so
-	usr/lib/virtualbox/VBoxDD2.so
-	usr/lib/virtualbox/VBoxOGLrenderspu.so
-	usr/lib/virtualbox/VBoxPython.so
-	usr/lib/virtualbox/VBoxDD.so
-	usr/lib/virtualbox/VBoxDDU.so
-	usr/lib/virtualbox/VBoxREM64.so
-	usr/lib/virtualbox/VBoxSharedClipboard.so
-	usr/lib/virtualbox/VBoxHeadless.so
-	usr/lib/virtualbox/VBoxRT.so
-	usr/lib/virtualbox/VBoxREM.so
-	usr/lib/virtualbox/VBoxSettings.so
-	usr/lib/virtualbox/VBoxKeyboard.so
-	usr/lib/virtualbox/VBoxSharedCrOpenGL.so
-	usr/lib/virtualbox/VBoxVMM.so
-	usr/lib/virtualbox/VirtualBox.so
-	usr/lib/virtualbox/VBoxOGLhosterrorspu.so
-	usr/lib/virtualbox/components/VBoxC.so
-	usr/lib/virtualbox/components/VBoxSVCM.so
-	usr/lib/virtualbox/components/VBoxDDU.so
-	usr/lib/virtualbox/components/VBoxRT.so
-	usr/lib/virtualbox/components/VBoxREM.so
-	usr/lib/virtualbox/components/VBoxVMM.so
-	usr/lib/virtualbox/VBoxREM32.so
-	usr/lib/virtualbox/VBoxPython2_7.so
-	usr/lib/virtualbox/VBoxXPCOMC.so
-	usr/lib/virtualbox/VBoxOGLhostcrutil.so
-	usr/lib/virtualbox/VBoxNetDHCP.so
-	usr/lib/virtualbox/VBoxNetNAT.so"
-
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
-
-REQUIRED_USE="
-	java? ( sdk )
-	python? ( sdk )
-	vboxwebsrv? ( java )
-	${PYTHON_REQUIRED_USE}
-"
-
-pkg_pretend() {
-	if ! use headless && ! use qt5 ; then
-		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
-	elif use headless && use qt5 ; then
-		einfo "You selected USE=\"headless qt5\", defaulting to"
-		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
-	fi
-
-	if ! use opengl ; then
-		einfo "No USE=\"opengl\" selected, this build will lack"
-		einfo "the OpenGL feature."
-	fi
-	if ! use python ; then
-		einfo "You have disabled the \"python\" USE flag. This will only"
-		einfo "disable the python bindings being installed."
-	fi
-}
-
-pkg_setup() {
-	java-pkg-opt-2_pkg_setup
-	python-single-r1_pkg_setup
-
-	tc-ld-disable-gold #bug 488176
-	tc-export CC CXX LD AR RANLIB
-	export HOST_CC="$(tc-getBUILD_CC)"
-}
-
-src_prepare() {
-	# Remove shipped binaries (kBuild,yasm), see bug #232775
-	rm -r kBuild/bin tools || die
-
-	# Replace pointless GCC version check with something less stupid.
-	# This is needed for the qt5 version check.
-	sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
-		-i configure || die
-
-	# Disable things unused or split into separate ebuilds
-	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
-		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
-	if ! use pch ; then
-		# bug #753323
-		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
-			>> LocalConfig.kmk || die
-	fi
-
-	# Respect LDFLAGS
-	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
-	# Do not use hard-coded ld (related to bug #488176)
-	sed -e '/QUIET)ld /s@ld @$(LD) @' \
-		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
-	# Use PAM only when pam USE flag is enbaled (bug #376531)
-	if ! use pam ; then
-		einfo "Disabling PAM removes the possibility to use the VRDP features."
-		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
-		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
-			src/VBox/HostServices/Makefile.kmk || die
-	fi
-
-	# add correct java path
-	if use java ; then
-		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-			-i "${S}"/Config.kmk || die
-		java-pkg-opt-2_src_prepare
-	fi
-
-	# Only add nopie patch when we're on hardened
-	if gcc-specs-pie ; then
-		eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch"
-	fi
-
-	# Only add paxmark patch when we're on pax-kernel
-	if use pax-kernel ; then
-		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
-	fi
-
-	eapply "${FILESDIR}/${PN}-6.1.26-configure-include-qt5-path.patch" #805365
-
-	eapply "${WORKDIR}/patches"
-
-	default
-}
-
-doecho() {
-	echo "$@"
-	"$@" || die
-}
-
-src_configure() {
-	local myconf=(
-		--with-gcc="$(tc-getCC)"
-		--with-g++="$(tc-getCXX)"
-		--disable-dbus
-		--disable-kmods
-		$(usex alsa '' --disable-alsa)
-		$(usex debug --build-debug '')
-		$(usex doc '' --disable-docs)
-		$(usex java '' --disable-java)
-		$(usex lvm '' --disable-devmapper)
-		$(usex opus '' --disable-libopus)
-		$(usex pulseaudio '' --disable-pulse)
-		$(usex python '' --disable-python)
-		$(usex vboxwebsrv --enable-webservice '')
-		$(usex vnc --enable-vnc '')
-	)
-	if ! use headless ; then
-		myconf+=(
-			$(usex opengl '' --disable-opengl)
-			$(usex sdl '' --disable-sdl)
-			$(usex qt5 '' --disable-qt)
-		)
-	else
-		myconf+=(
-			--build-headless
-			--disable-opengl
-		)
-	fi
-	if use amd64 && ! has_multilib_profile ; then
-		myconf+=( --disable-vmmraw )
-	fi
-	# not an autoconf script
-	doecho ./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}"
-	MAKE="kmk" emake \
-		VBOX_BUILD_PUBLISHER=_Gentoo \
-		TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
-		TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
-		TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
-		VBOX_WITH_VBOXIMGMOUNT=1 \
-		all
-}
-
-src_install() {
-	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
-	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
-	vbox_inst() {
-		local binary="${1}"
-		local perms="${2:-0750}"
-		local path="${3:-${vbox_inst_path}}"
-
-		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
-		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
-		insinto ${path}
-		doins ${binary}
-		fowners root:vboxusers ${path}/${binary}
-		fperms ${perms} ${path}/${binary}
-	}
-
-	# Create configuration files
-	insinto /etc/vbox
-	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
-	# Set the correct libdir
-	sed \
-		-e "s@MY_LIBDIR@$(get_libdir)@" \
-		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
-	# Install the wrapper script
-	exeinto ${vbox_inst_path}
-	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
-	fowners root:vboxusers ${vbox_inst_path}/VBox
-	fperms 0750 ${vbox_inst_path}/VBox
-
-	# Install binaries and libraries
-	insinto ${vbox_inst_path}
-	doins -r components
-
-	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do
-		vbox_inst ${each}
-	done
-
-	# These binaries need to be suid root.
-	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
-		vbox_inst ${each} 4750
-	done
-
-	# Install EFI Firmware files (bug #320757)
-	for each in VBoxEFI{32,64}.fd ; do
-		vbox_inst ${each} 0644
-	done
-
-	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
-	# VBoxXPCOMIPCD (bug #524202)
-	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
-		pax-mark -m "${ED}"${vbox_inst_path}/${each}
-	done
-
-	# Symlink binaries to the shipped wrapper
-	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
-		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-	done
-	dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
-	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-
-	if use pam ; then
-		# VRDPAuth only works with this (bug #351949)
-		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
-	fi
-
-	# set an env-variable for 3rd party tools
-	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
-	doenvd "${T}/90virtualbox"
-
-	if ! use headless ; then
-		vbox_inst rdesktop-vrdp
-		if use sdl ; then
-			vbox_inst VBoxSDL 4750
-			pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
-			for each in vboxsdl VBoxSDL ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-		fi
-
-		if use qt5 ; then
-			vbox_inst VirtualBox
-			vbox_inst VirtualBoxVM 4750
-			for each in VirtualBox{,VM} ; do
-				pax-mark -m "${ED}"${vbox_inst_path}/${each}
-			done
-
-			if use opengl ; then
-				vbox_inst VBoxTestOGL
-				pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
-			fi
-
-			for each in virtualbox{,vm} VirtualBox{,VM} ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-
-			insinto /usr/share/${PN}
-			doins -r nls
-			doins -r UnattendedTemplates
-
-			domenu ${PN}.desktop
-		fi
-
-		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
-		for size in 16 32 48 64 128 ; do
-			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
-		done
-		newicon ${PN}-48px.png ${PN}.png
-		doicon -s scalable ${PN}.svg
-		popd &>/dev/null || die
-		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
-		for size in 16 24 32 48 64 72 96 128 256 512 ; do
-			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
-				icofile="${PN}-${ico}-${size}px.png"
-				if [[ -f "${icofile}" ]] ; then
-					newicon -s ${size} ${icofile} ${PN}-${ico}.png
-				fi
-			done
-		done
-		popd &>/dev/null || die
-	fi
-
-	if use lvm ; then
-		vbox_inst VBoxVolInfo 4750
-		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
-	fi
-
-	if use sdk ; then
-		insinto ${vbox_inst_path}
-		doins -r sdk
-
-		if use java ; then
-			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
-			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
-		fi
-	fi
-
-	if use udev ; then
-		local udevdir="$(get_udevdir)"
-		insinto ${udevdir}
-		doins VBoxCreateUSBNode.sh
-		fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh
-		fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
-		insinto ${udevdir}/rules.d
-		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \
-			> "${T}"/10-virtualbox.rules || die
-		doins "${T}"/10-virtualbox.rules
-	fi
-
-	if use vboxwebsrv ; then
-		vbox_inst vboxwebsrv
-		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
-		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
-		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
-	fi
-
-	# Remove dead symlinks (bug #715338)
-	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
-	# Fix version string in extensions or else they don't get accepted
-	# by the virtualbox host process (see bug #438930)
-	find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
-		| xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
-		|| die
-
-	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
-	if use vnc ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/VNC
-	fi
-
-	if use dtrace ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
-	fi
-
-	if use doc ; then
-		dodoc UserManual.pdf
-	fi
-
-	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-
-	if use udev ; then
-		udevadm control --reload-rules \
-			&& udevadm trigger --subsystem-match=usb
-	fi
-
-	tmpfiles_process virtualbox-vboxusb.conf
-
-	if ! use headless && use qt5 ; then
-		elog "To launch VirtualBox just type: \"virtualbox\"."
-	fi
-	elog "You must be in the vboxusers group to use VirtualBox."
-	elog ""
-	elog "The latest user manual is available for download at:"
-	elog "http://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf"
-	elog ""
-	elog "For advanced networking setups you should emerge:"
-	elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
-	elog ""
-	elog "Starting with version 4.0.0, ${PN} has USB-1 support."
-	elog "For USB-2 support, PXE-boot ability and VRDP support please emerge"
-	elog "  app-emulation/virtualbox-extpack-oracle"
-	elog "package."
-	elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and"
-	elog "the \"extension\" USE flag. For installation of the guest additions ISO"
-	elog "image, please emerge"
-	elog "  app-emulation/virtualbox-additions"
-	elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge"
-	elog "  app-emulation/virtualbox-extpack-oracle"
-	if ! use udev ; then
-		elog ""
-		elog "WARNING!"
-		elog "Without USE=udev, USB devices will likely not work in ${PN}."
-	elif [[ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ]] ; then
-		elog ""
-		elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
-		elog "or else USB in ${PN} won't work."
-	fi
-}

diff --git a/app-emulation/virtualbox/virtualbox-6.1.34-r1.ebuild b/app-emulation/virtualbox/virtualbox-6.1.34-r1.ebuild
deleted file mode 100644
index 3857ced6663f..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.1.34-r1.ebuild
+++ /dev/null
@@ -1,506 +0,0 @@
-# Copyright 2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..10} )
-inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}-${MY_PV}
-[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
-	https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0/$(ver_cut 1-2)"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
-
-COMMON_DEPEND="
-	${PYTHON_DEPS}
-	!app-emulation/virtualbox-bin
-	acct-group/vboxusers
-	~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
-	dev-libs/libIDL
-	>=dev-libs/libxslt-1.1.19
-	net-misc/curl
-	dev-libs/libxml2
-	media-libs/libpng:0=
-	media-libs/libvpx:0=
-	sys-libs/zlib:=
-	!headless? (
-		media-libs/libsdl:0[X,video]
-		x11-libs/libX11
-		x11-libs/libxcb:=
-		x11-libs/libXcursor
-		x11-libs/libXext
-		x11-libs/libXmu
-		x11-libs/libXt
-		opengl? (
-			media-libs/libglvnd[X]
-			virtual/glu
-		)
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtgui:5
-			dev-qt/qtprintsupport:5
-			dev-qt/qtwidgets:5
-			dev-qt/qtx11extras:5
-			opengl? ( dev-qt/qtopengl:5 )
-			x11-libs/libXinerama
-		)
-	)
-	dev-libs/openssl:0=
-	virtual/libcrypt:=
-	lvm? ( sys-fs/lvm2 )
-	opus? ( media-libs/opus )
-	udev? ( >=virtual/udev-171 )
-	vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-DEPEND="
-	${COMMON_DEPEND}
-	alsa? ( >=media-libs/alsa-lib-1.0.13 )
-	!headless? (
-		x11-libs/libXinerama
-		opengl? ( virtual/opengl )
-	)
-	pam? ( sys-libs/pam )
-	pax-kernel? ( sys-apps/elfix )
-	pulseaudio? ( media-sound/pulseaudio )
-	qt5? ( dev-qt/linguist-tools:5 )
-	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	>=dev-util/kbuild-0.1.9998.3127
-	>=dev-lang/yasm-0.6.2
-	sys-devel/bin86
-	sys-libs/libcap
-	sys-power/iasl
-	virtual/pkgconfig
-	doc? (
-		app-text/docbook-sgml-dtd:4.4
-		dev-texlive/texlive-basic
-		dev-texlive/texlive-latex
-		dev-texlive/texlive-latexrecommended
-		dev-texlive/texlive-latexextra
-		dev-texlive/texlive-fontsrecommended
-		dev-texlive/texlive-fontsextra
-	)
-	java? ( >=virtual/jdk-1.8 )
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	java? ( >=virtual/jre-1.6 )
-"
-
-QA_TEXTRELS="
-	usr/lib64/virtualbox/VMMR0.r0
-"
-
-QA_EXECSTACK="
-	usr/lib64/virtualbox/iPxeBaseBin
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-"
-
-QA_WX_LOAD="
-	usr/lib64/virtualbox/iPxeBaseBin
-"
-
-QA_PRESTRIPPED="
-	/usr/lib64/virtualbox/VMMR0.r0
-	/usr/lib64/virtualbox/VBoxDDR0.r0
-"
-
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
-
-REQUIRED_USE="
-	java? ( sdk )
-	python? ( sdk )
-	vboxwebsrv? ( java )
-	${PYTHON_REQUIRED_USE}
-"
-
-PATCHES=(
-	"${FILESDIR}/${P}-vboxr0.patch"
-	"${FILESDIR}/${PN}-6.1.34-python3.10.patch" #852152
-)
-
-pkg_pretend() {
-	if ! use headless && ! use qt5 ; then
-		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
-	elif use headless && use qt5 ; then
-		einfo "You selected USE=\"headless qt5\", defaulting to"
-		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
-	fi
-
-	if ! use opengl ; then
-		einfo "No USE=\"opengl\" selected, this build will lack"
-		einfo "the OpenGL feature."
-	fi
-	if ! use python ; then
-		einfo "You have disabled the \"python\" USE flag. This will only"
-		einfo "disable the python bindings being installed."
-	fi
-}
-
-pkg_setup() {
-	java-pkg-opt-2_pkg_setup
-	python-single-r1_pkg_setup
-
-	tc-ld-disable-gold #bug 488176
-	tc-export CC CXX LD AR RANLIB
-	export HOST_CC="$(tc-getBUILD_CC)"
-}
-
-src_prepare() {
-	# Remove shipped binaries (kBuild,yasm), see bug #232775
-	rm -r kBuild/bin tools || die
-
-	# Replace pointless GCC version check with something less stupid.
-	# This is needed for the qt5 version check.
-	sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
-		-i configure || die
-
-	# Disable things unused or split into separate ebuilds
-	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
-		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
-	if ! use pch ; then
-		# bug #753323
-		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
-			>> LocalConfig.kmk || die
-	fi
-
-	# Respect LDFLAGS
-	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
-	# Do not use hard-coded ld (related to bug #488176)
-	sed -e '/QUIET)ld /s@ld @$(LD) @' \
-		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
-	# Use PAM only when pam USE flag is enbaled (bug #376531)
-	if ! use pam ; then
-		einfo "Disabling PAM removes the possibility to use the VRDP features."
-		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
-		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
-			src/VBox/HostServices/Makefile.kmk || die
-	fi
-
-	# add correct java path
-	if use java ; then
-		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-			-i "${S}"/Config.kmk || die
-		java-pkg-opt-2_src_prepare
-	fi
-
-	# Only add nopie patch when we're on hardened
-	if gcc-specs-pie ; then
-		eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch"
-	fi
-
-	# Only add paxmark patch when we're on pax-kernel
-	if use pax-kernel ; then
-		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
-	fi
-
-	eapply "${FILESDIR}/${PN}-6.1.26-configure-include-qt5-path.patch" #805365
-
-	eapply "${WORKDIR}/patches"
-
-	default
-}
-
-doecho() {
-	echo "$@"
-	"$@" || die
-}
-
-src_configure() {
-	local myconf=(
-		--with-gcc="$(tc-getCC)"
-		--with-g++="$(tc-getCXX)"
-		--disable-dbus
-		--disable-kmods
-		$(usex alsa '' --disable-alsa)
-		$(usex debug --build-debug '')
-		$(usex doc '' --disable-docs)
-		$(usex java '' --disable-java)
-		$(usex lvm '' --disable-devmapper)
-		$(usex opus '' --disable-libopus)
-		$(usex pulseaudio '' --disable-pulse)
-		$(usex python '' --disable-python)
-		$(usex vboxwebsrv --enable-webservice '')
-		$(usex vnc --enable-vnc '')
-	)
-	if ! use headless ; then
-		myconf+=(
-			$(usex opengl '' --disable-opengl)
-			$(usex qt5 '' --disable-qt)
-		)
-	else
-		myconf+=(
-			--build-headless
-			--disable-opengl
-		)
-	fi
-	if use amd64 && ! has_multilib_profile ; then
-		myconf+=( --disable-vmmraw )
-	fi
-	# not an autoconf script
-	doecho ./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}"
-	MAKE="kmk" emake \
-		VBOX_BUILD_PUBLISHER=_Gentoo \
-		TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
-		TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
-		TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
-		VBOX_WITH_VBOXIMGMOUNT=1 \
-		all
-}
-
-src_install() {
-	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
-	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
-	vbox_inst() {
-		local binary="${1}"
-		local perms="${2:-0750}"
-		local path="${3:-${vbox_inst_path}}"
-
-		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
-		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
-		insinto ${path}
-		doins ${binary}
-		fowners root:vboxusers ${path}/${binary}
-		fperms ${perms} ${path}/${binary}
-	}
-
-	# Create configuration files
-	insinto /etc/vbox
-	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
-	# Set the correct libdir
-	sed \
-		-e "s@MY_LIBDIR@$(get_libdir)@" \
-		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
-	# Install the wrapper script
-	exeinto ${vbox_inst_path}
-	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
-	fowners root:vboxusers ${vbox_inst_path}/VBox
-	fperms 0750 ${vbox_inst_path}/VBox
-
-	# Install binaries and libraries
-	insinto ${vbox_inst_path}
-	doins -r components
-
-	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do
-		vbox_inst ${each}
-	done
-
-	# These binaries need to be suid root.
-	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
-		vbox_inst ${each} 4750
-	done
-
-	# Install EFI Firmware files (bug #320757)
-	for each in VBoxEFI{32,64}.fd ; do
-		vbox_inst ${each} 0644
-	done
-
-	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
-	# VBoxXPCOMIPCD (bug #524202)
-	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
-		pax-mark -m "${ED}"${vbox_inst_path}/${each}
-	done
-
-	# Symlink binaries to the shipped wrapper
-	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
-		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-	done
-	dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
-	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-
-	if use pam ; then
-		# VRDPAuth only works with this (bug #351949)
-		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
-	fi
-
-	# set an env-variable for 3rd party tools
-	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
-	doenvd "${T}/90virtualbox"
-
-	if ! use headless ; then
-		vbox_inst rdesktop-vrdp
-		vbox_inst VBoxSDL 4750
-		pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
-		for each in vboxsdl VBoxSDL ; do
-			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-		done
-
-		if use qt5 ; then
-			vbox_inst VirtualBox
-			vbox_inst VirtualBoxVM 4750
-			for each in VirtualBox{,VM} ; do
-				pax-mark -m "${ED}"${vbox_inst_path}/${each}
-			done
-
-			if use opengl ; then
-				vbox_inst VBoxTestOGL
-				pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
-			fi
-
-			for each in virtualbox{,vm} VirtualBox{,VM} ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-
-			insinto /usr/share/${PN}
-			doins -r nls
-			doins -r UnattendedTemplates
-
-			domenu ${PN}.desktop
-		fi
-
-		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
-		for size in 16 32 48 64 128 ; do
-			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
-		done
-		newicon ${PN}-48px.png ${PN}.png
-		doicon -s scalable ${PN}.svg
-		popd &>/dev/null || die
-		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
-		for size in 16 24 32 48 64 72 96 128 256 512 ; do
-			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
-				icofile="${PN}-${ico}-${size}px.png"
-				if [[ -f "${icofile}" ]] ; then
-					newicon -s ${size} ${icofile} ${PN}-${ico}.png
-				fi
-			done
-		done
-		popd &>/dev/null || die
-	fi
-
-	if use lvm ; then
-		vbox_inst VBoxVolInfo 4750
-		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
-	fi
-
-	if use sdk ; then
-		insinto ${vbox_inst_path}
-		doins -r sdk
-
-		if use java ; then
-			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
-			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
-		fi
-	fi
-
-	if use udev ; then
-		local udevdir="$(get_udevdir)"
-		local udev_file="VBoxCreateUSBNode.sh"
-		local rules_file="10-virtualbox.rules"
-
-		insinto ${udevdir}
-		doins ${udev_file}
-		fowners root:vboxusers ${udevdir}/${udev_file}
-		fperms 0750 ${udevdir}/${udev_file}
-
-		insinto ${udevdir}/rules.d
-		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
-			> "${T}"/${rules_file} || die
-		doins "${T}"/${rules_file}
-	fi
-
-	if use vboxwebsrv ; then
-		vbox_inst vboxwebsrv
-		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
-		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
-		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
-	fi
-
-	# Remove dead symlinks (bug #715338)
-	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
-	# Fix version string in extensions or else they don't get accepted
-	# by the virtualbox host process (see bug #438930)
-	find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
-		| xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
-		|| die
-
-	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
-	if use vnc ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/VNC
-	fi
-
-	if use dtrace ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
-	fi
-
-	if use doc ; then
-		dodoc UserManual.pdf
-	fi
-
-	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-
-	if use udev ; then
-		udevadm control --reload-rules \
-			&& udevadm trigger --subsystem-match=usb
-	fi
-
-	tmpfiles_process virtualbox-vboxusb.conf
-
-	if ! use headless && use qt5 ; then
-		elog "To launch VirtualBox just type: \"virtualbox\"."
-	fi
-	elog "You must be in the vboxusers group to use VirtualBox."
-	elog ""
-	elog "The latest user manual is available for download at:"
-	elog "http://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf"
-	elog ""
-	elog "For advanced networking setups you should emerge:"
-	elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
-	elog ""
-	elog "Starting with version 4.0.0, ${PN} has USB-1 support."
-	elog "For USB-2 support, PXE-boot ability and VRDP support please emerge"
-	elog "  app-emulation/virtualbox-extpack-oracle"
-	elog "package."
-	elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and"
-	elog "the \"extension\" USE flag. For installation of the guest additions ISO"
-	elog "image, please emerge"
-	elog "  app-emulation/virtualbox-additions"
-	elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge"
-	elog "  app-emulation/virtualbox-extpack-oracle"
-	if ! use udev ; then
-		elog ""
-		elog "WARNING!"
-		elog "Without USE=udev, USB devices will likely not work in ${PN}."
-	fi
-}

diff --git a/app-emulation/virtualbox/virtualbox-6.1.34-r3.ebuild b/app-emulation/virtualbox/virtualbox-6.1.34-r3.ebuild
deleted file mode 100644
index 1475e06f6fa0..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.1.34-r3.ebuild
+++ /dev/null
@@ -1,535 +0,0 @@
-# Copyright 2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# This absolutely doesn't work with Python 3.10 yet as of 6.1.34.
-# Two problems:
-# 1. The build system (not just in configure, but in src/libs/xpcom18a4/python/Makefile.kmk)
-# insists on trying to detect various Python paths without giving choice of which is used;
-#
-# 2. None of that machinery mentioned in #1. is rigged up for Python 3.10+, and
-# the homebrew Makefile/kbuild stuff is a pain to understand.
-#
-# bug #785835, bug #856121
-PYTHON_COMPAT=( python3_{8,9} )
-inherit desktop edo java-pkg-opt-2 linux-info multilib optfeature pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}-${MY_PV}
-[[ ${PV} == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
-	https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz"
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0/$(ver_cut 1-2)"
-if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
-	KEYWORDS="~amd64"
-fi
-IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
-
-COMMON_DEPEND="
-	${PYTHON_DEPS}
-	!app-emulation/virtualbox-bin
-	acct-group/vboxusers
-	~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
-	dev-libs/libIDL
-	>=dev-libs/libxslt-1.1.19
-	net-misc/curl
-	dev-libs/libxml2
-	media-libs/libpng:0=
-	media-libs/libvpx:0=
-	sys-libs/zlib:=
-	!headless? (
-		media-libs/libsdl:0[X,video]
-		x11-libs/libX11
-		x11-libs/libxcb:=
-		x11-libs/libXcursor
-		x11-libs/libXext
-		x11-libs/libXmu
-		x11-libs/libXt
-		opengl? (
-			media-libs/libglvnd[X]
-			virtual/glu
-		)
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtgui:5
-			dev-qt/qtprintsupport:5
-			dev-qt/qtwidgets:5
-			dev-qt/qtx11extras:5
-			opengl? ( dev-qt/qtopengl:5 )
-			x11-libs/libXinerama
-		)
-	)
-	dev-libs/openssl:0=
-	virtual/libcrypt:=
-	lvm? ( sys-fs/lvm2 )
-	opus? ( media-libs/opus )
-	udev? ( >=virtual/udev-171 )
-	vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
-# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
-# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
-# based on *DEPEND doesn't work for BDEPEND at least right now. See bug #832166.
-DEPEND="
-	${COMMON_DEPEND}
-	alsa? ( >=media-libs/alsa-lib-1.0.13 )
-	!headless? (
-		x11-libs/libXinerama
-		opengl? ( virtual/opengl )
-	)
-	java? ( virtual/jdk:1.8 )
-	pam? ( sys-libs/pam )
-	pax-kernel? ( sys-apps/elfix )
-	pulseaudio? ( media-sound/pulseaudio )
-	qt5? ( dev-qt/linguist-tools:5 )
-	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	>=dev-util/kbuild-0.1.9998.3127
-	>=dev-lang/yasm-0.6.2
-	sys-devel/bin86
-	sys-libs/libcap
-	sys-power/iasl
-	virtual/pkgconfig
-	doc? (
-		app-text/docbook-sgml-dtd:4.4
-		dev-texlive/texlive-basic
-		dev-texlive/texlive-latex
-		dev-texlive/texlive-latexrecommended
-		dev-texlive/texlive-latexextra
-		dev-texlive/texlive-fontsrecommended
-		dev-texlive/texlive-fontsextra
-	)
-	java? ( virtual/jdk:1.8 )
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	java? ( virtual/jre:1.8 )
-"
-
-QA_TEXTRELS="
-	usr/lib64/virtualbox/VMMR0.r0
-"
-
-QA_EXECSTACK="
-	usr/lib64/virtualbox/iPxeBaseBin
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-"
-
-QA_WX_LOAD="
-	usr/lib64/virtualbox/iPxeBaseBin
-"
-
-QA_PRESTRIPPED="
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-"
-
-REQUIRED_USE="
-	java? ( sdk )
-	python? ( sdk )
-	vboxwebsrv? ( java )
-	${PYTHON_REQUIRED_USE}
-"
-
-PATCHES=(
-	"${FILESDIR}"/${P}-vboxr0.patch
-	"${FILESDIR}"/${PN}-6.1.34-python3.10.patch # bug #852152
-	"${FILESDIR}"/${PN}-6.1.34-no-pam.patch # bug #843437
-	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
-	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
-	"${WORKDIR}"/patches
-)
-
-pkg_pretend() {
-	if ! use headless && ! use qt5 ; then
-		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
-	elif use headless && use qt5 ; then
-		einfo "You selected USE=\"headless qt5\", defaulting to"
-		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
-	fi
-
-	if ! use opengl ; then
-		einfo "No USE=\"opengl\" selected, this build will lack"
-		einfo "the OpenGL feature."
-	fi
-	if ! use python ; then
-		einfo "You have disabled the \"python\" USE flag. This will only"
-		einfo "disable the python bindings being installed."
-	fi
-}
-
-pkg_setup() {
-	java-pkg-opt-2_pkg_setup
-	python-single-r1_pkg_setup
-}
-
-src_prepare() {
-	default
-
-	# Only add nopie patch when we're on hardened
-	if gcc-specs-pie ; then
-		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
-	fi
-
-	# Only add paxmark patch when we're on pax-kernel
-	if use pax-kernel ; then
-		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
-	fi
-
-	# Remove shipped binaries (kBuild,yasm), see bug #232775
-	rm -r kBuild/bin tools || die
-
-	# Replace pointless GCC version check with something more sensible.
-	# This is needed for the qt5 version check.
-	sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
-		-i configure || die
-
-	# Disable things unused or split into separate ebuilds
-	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
-		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
-	if ! use pch ; then
-		# bug #753323
-		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
-			>> LocalConfig.kmk || die
-	fi
-
-	# Respect LDFLAGS
-	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
-	# Do not use hard-coded ld (related to bug #488176)
-	sed -e '/QUIET)ld /s@ld @$(LD) @' \
-		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
-	# Use PAM only when pam USE flag is enbaled (bug #376531)
-	if ! use pam ; then
-		einfo "Disabling PAM removes the possibility to use the VRDP features."
-		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
-		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
-			src/VBox/HostServices/Makefile.kmk || die
-	fi
-
-	# add correct java path
-	if use java ; then
-		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-			-i "${S}"/Config.kmk || die
-		java-pkg-opt-2_src_prepare
-	fi
-}
-
-src_configure() {
-	tc-ld-disable-gold # bug #488176
-	tc-export CC CXX LD AR RANLIB
-	export HOST_CC="$(tc-getBUILD_CC)"
-
-	local myconf=(
-		--with-gcc="$(tc-getCC)"
-		--with-g++="$(tc-getCXX)"
-
-		--disable-dbus
-		--disable-kmods
-
-		$(usex alsa '' --disable-alsa)
-		$(usex debug --build-debug '')
-		$(usex doc '' --disable-docs)
-		$(usex java '' --disable-java)
-		$(usex lvm '' --disable-devmapper)
-		$(usex opus '' --disable-libopus)
-		$(usex pulseaudio '' --disable-pulse)
-		$(usex python '' --disable-python)
-		$(usex vboxwebsrv --enable-webservice '')
-		$(usex vnc --enable-vnc '')
-	)
-
-	if ! use headless ; then
-		myconf+=(
-			$(usex opengl '' --disable-opengl)
-			$(usex qt5 '' --disable-qt)
-		)
-	else
-		myconf+=(
-			--build-headless
-			--disable-opengl
-		)
-	fi
-
-	if use amd64 && ! has_multilib_profile ; then
-		myconf+=( --disable-vmmraw )
-	fi
-
-	# bug #843437
-	cat >> LocalConfig.kmk <<-EOF || die
-		CFLAGS=${CFLAGS}
-		CXXFLAGS=${CXXFLAGS}
-	EOF
-
-	# not an autoconf script
-	edo ./configure "${myconf[@]}"
-
-	# Try to force usage of chosen Python implementation
-	# bug #856121, bug #785835
-	sed -i \
-		-e '/VBOX_WITH_PYTHON.*=/d' \
-		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
-		-e '/VBOX_LIB_PYTHON.*=/d' \
-		AutoConfig.kmk || die
-
-	cat >> AutoConfig.kmk <<-EOF || die
-		VBOX_WITH_PYTHON=$(usex python 1 0)
-		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
-		VBOX_LIB_PYTHON=$(python_get_library_path)
-	EOF
-}
-
-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}"
-
-	MAKE="kmk" emake \
-		VBOX_BUILD_PUBLISHER=_Gentoo \
-		TOOL_GXX3_CC="$(tc-getCC)" \
-		TOOL_GXX3_CXX="$(tc-getCXX)" \
-		TOOL_GXX3_LD="$(tc-getCXX)" \
-		VBOX_GCC_OPT="${CXXFLAGS}" \
-		TOOL_YASM_AS=yasm \
-		KBUILD_VERBOSE=2 \
-		VBOX_WITH_VBOXIMGMOUNT=1 \
-		all
-}
-
-src_install() {
-	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
-	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
-	vbox_inst() {
-		local binary="${1}"
-		local perms="${2:-0750}"
-		local path="${3:-${vbox_inst_path}}"
-
-		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
-		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
-		insinto ${path}
-		doins ${binary}
-		fowners root:vboxusers ${path}/${binary}
-		fperms ${perms} ${path}/${binary}
-	}
-
-	# Create configuration files
-	insinto /etc/vbox
-	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
-	# Set the correct libdir
-	sed \
-		-e "s@MY_LIBDIR@$(get_libdir)@" \
-		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
-	# Install the wrapper script
-	exeinto ${vbox_inst_path}
-	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
-	fowners root:vboxusers ${vbox_inst_path}/VBox
-	fperms 0750 ${vbox_inst_path}/VBox
-
-	# Install binaries and libraries
-	insinto ${vbox_inst_path}
-	doins -r components
-
-	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do
-		vbox_inst ${each}
-	done
-
-	# These binaries need to be suid root.
-	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
-		vbox_inst ${each} 4750
-	done
-
-	# Install EFI Firmware files (bug #320757)
-	for each in VBoxEFI{32,64}.fd ; do
-		vbox_inst ${each} 0644
-	done
-
-	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
-	# VBoxXPCOMIPCD (bug #524202)
-	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
-		pax-mark -m "${ED}"${vbox_inst_path}/${each}
-	done
-
-	# Symlink binaries to the shipped wrapper
-	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
-		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-	done
-	dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
-	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-
-	if use pam ; then
-		# VRDPAuth only works with this (bug #351949)
-		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
-	fi
-
-	# set an env-variable for 3rd party tools
-	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
-	doenvd "${T}/90virtualbox"
-
-	if ! use headless ; then
-		vbox_inst rdesktop-vrdp
-		vbox_inst VBoxSDL 4750
-		pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
-		for each in vboxsdl VBoxSDL ; do
-			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-		done
-
-		if use qt5 ; then
-			vbox_inst VirtualBox
-			vbox_inst VirtualBoxVM 4750
-			for each in VirtualBox{,VM} ; do
-				pax-mark -m "${ED}"${vbox_inst_path}/${each}
-			done
-
-			if use opengl ; then
-				vbox_inst VBoxTestOGL
-				pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
-			fi
-
-			for each in virtualbox{,vm} VirtualBox{,VM} ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-
-			insinto /usr/share/${PN}
-			doins -r nls
-			doins -r UnattendedTemplates
-
-			domenu ${PN}.desktop
-		fi
-
-		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
-		for size in 16 32 48 64 128 ; do
-			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
-		done
-		newicon ${PN}-48px.png ${PN}.png
-		doicon -s scalable ${PN}.svg
-		popd &>/dev/null || die
-		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
-		for size in 16 24 32 48 64 72 96 128 256 512 ; do
-			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
-				icofile="${PN}-${ico}-${size}px.png"
-				if [[ -f "${icofile}" ]] ; then
-					newicon -s ${size} ${icofile} ${PN}-${ico}.png
-				fi
-			done
-		done
-		popd &>/dev/null || die
-	fi
-
-	if use lvm ; then
-		vbox_inst VBoxVolInfo 4750
-		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
-	fi
-
-	if use sdk ; then
-		insinto ${vbox_inst_path}
-		doins -r sdk
-
-		if use java ; then
-			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
-			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
-		fi
-	fi
-
-	if use udev ; then
-		local udevdir="$(get_udevdir)"
-		local udev_file="VBoxCreateUSBNode.sh"
-		local rules_file="10-virtualbox.rules"
-
-		insinto ${udevdir}
-		doins ${udev_file}
-		fowners root:vboxusers ${udevdir}/${udev_file}
-		fperms 0750 ${udevdir}/${udev_file}
-
-		insinto ${udevdir}/rules.d
-		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
-			> "${T}"/${rules_file} || die
-		doins "${T}"/${rules_file}
-	fi
-
-	if use vboxwebsrv ; then
-		vbox_inst vboxwebsrv
-		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
-		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
-		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
-	fi
-
-	# Remove dead symlinks (bug #715338)
-	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
-	# Fix version string in extensions or else they don't get accepted
-	# by the virtualbox host process (see bug #438930)
-	find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
-		| xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
-		|| die
-
-	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
-	if use vnc ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/VNC
-	fi
-
-	if use dtrace ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
-	fi
-
-	if use doc ; then
-		dodoc UserManual.pdf
-	fi
-
-	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-
-	if use udev ; then
-		udevadm control --reload-rules
-		udevadm trigger --subsystem-match=usb
-	fi
-
-	tmpfiles_process virtualbox-vboxusb.conf
-
-	if ! use headless && use qt5 ; then
-		elog "To launch VirtualBox just type: \"virtualbox\"."
-	fi
-
-	elog "You must be in the vboxusers group to use VirtualBox."
-	elog ""
-	elog "The latest user manual is available for download at:"
-	elog "https://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf"
-	elog ""
-
-	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
-	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
-	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
-
-	if ! use udev ; then
-		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
-	fi
-}

diff --git a/app-emulation/virtualbox/virtualbox-6.1.34-r7.ebuild b/app-emulation/virtualbox/virtualbox-6.1.34-r7.ebuild
deleted file mode 100644
index b18a640616f9..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.1.34-r7.ebuild
+++ /dev/null
@@ -1,636 +0,0 @@
-# Copyright 2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# To add a new Python here:
-# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
-#    Do NOT skip this part. It'll end up silently not-building the Python extension
-#    or otherwise misbehaving if you do.
-#
-# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
-#
-#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
-#  Python versions as upstream tends to lag. Upstream may have patches on their
-#  trunk branch but not release branch.
-#
-#  See bug #785835, bug #856121.
-PYTHON_COMPAT=( python3_{8..10} )
-
-inherit desktop edo java-pkg-opt-2 linux-info multilib optfeature pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}-${MY_PV}
-[[ ${PV} == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
-	https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz"
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0/$(ver_cut 1-2)"
-if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
-	KEYWORDS="amd64"
-fi
-IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc"
-
-REQUIRED_USE="
-	java? ( sdk )
-	python? ( sdk )
-	vboxwebsrv? ( java )
-	${PYTHON_REQUIRED_USE}
-"
-
-COMMON_DEPEND="
-	${PYTHON_DEPS}
-	!app-emulation/virtualbox-bin
-	acct-group/vboxusers
-	~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
-	dev-libs/libIDL
-	>=dev-libs/libxslt-1.1.19
-	net-misc/curl
-	dev-libs/libxml2
-	media-libs/libpng:0=
-	media-libs/libvpx:0=
-	sys-libs/zlib:=
-	!headless? (
-		sdl? ( media-libs/libsdl:0[X,video] )
-		x11-libs/libX11
-		x11-libs/libxcb:=
-		x11-libs/libXcursor
-		x11-libs/libXext
-		x11-libs/libXmu
-		x11-libs/libXt
-		opengl? (
-			media-libs/libglvnd[X]
-			virtual/glu
-		)
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtgui:5
-			dev-qt/qtprintsupport:5
-			dev-qt/qtwidgets:5
-			dev-qt/qtx11extras:5
-			opengl? ( dev-qt/qtopengl:5 )
-			x11-libs/libXinerama
-		)
-	)
-	dev-libs/openssl:0=
-	virtual/libcrypt:=
-	lvm? ( sys-fs/lvm2 )
-	opus? ( media-libs/opus )
-	udev? ( >=virtual/udev-171 )
-	vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
-# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
-# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
-# based on *DEPEND doesn't work for BDEPEND at least right now.
-#
-# There's a comment in Config.kmk about it
-# ("With Java 11 wsimport was removed, usually part of a separate install now.")
-# but it needs more investigation.
-#
-# See bug #832166.
-DEPEND="
-	${COMMON_DEPEND}
-	alsa? ( >=media-libs/alsa-lib-1.0.13 )
-	!headless? (
-		x11-libs/libXinerama
-		opengl? ( virtual/opengl )
-	)
-	java? ( virtual/jdk:1.8 )
-	pam? ( sys-libs/pam )
-	pax-kernel? ( sys-apps/elfix )
-	pulseaudio? ( media-sound/pulseaudio )
-	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	>=dev-util/kbuild-0.1.9998.3127
-	>=dev-lang/yasm-0.6.2
-	sys-apps/which
-	sys-devel/bin86
-	sys-libs/libcap
-	sys-power/iasl
-	virtual/pkgconfig
-	doc? (
-		app-text/docbook-sgml-dtd:4.4
-		dev-texlive/texlive-basic
-		dev-texlive/texlive-latex
-		dev-texlive/texlive-latexrecommended
-		dev-texlive/texlive-latexextra
-		dev-texlive/texlive-fontsrecommended
-		dev-texlive/texlive-fontsextra
-	)
-	java? ( virtual/jdk:1.8 )
-	qt5? ( dev-qt/linguist-tools:5 )
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	java? ( virtual/jre:1.8 )
-"
-
-QA_FLAGS_IGNORED="
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/VMMR0.r0
-"
-
-QA_TEXTRELS="
-	usr/lib64/virtualbox/VMMR0.r0
-"
-
-QA_EXECSTACK="
-	usr/lib64/virtualbox/iPxeBaseBin
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-"
-
-QA_WX_LOAD="
-	usr/lib64/virtualbox/iPxeBaseBin
-"
-
-QA_PRESTRIPPED="
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-"
-
-PATCHES=(
-	"${FILESDIR}"/${P}-vboxr0.patch
-
-	# Upstream patch for USE=-pam
-	# bug #843437
-	"${FILESDIR}"/${PN}-6.1.34-no-pam.patch
-
-	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
-
-	# This patch is needed to avoid automagic detection based on a hardcoded
-	# list of Pythons in configure. It's necessary but not sufficient
-	# (see the rest of the ebuild's logic for the remainder) to handle
-	# proper Python selection.
-	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
-
-	# Patch grabbed from Arch Linux / upstream for Python 3.10 support
-	"${FILESDIR}"/${PN}-6.1.34-r3-python3.10.patch
-
-	# Downloaded patchset
-	"${WORKDIR}"/patches
-)
-
-pkg_pretend() {
-	if ! use headless && ! use qt5 ; then
-		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
-	elif use headless && use qt5 ; then
-		einfo "You selected USE=\"headless qt5\", defaulting to"
-		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
-	fi
-
-	if ! use opengl ; then
-		einfo "No USE=\"opengl\" selected, this build will lack"
-		einfo "the OpenGL feature."
-	fi
-	if ! use python ; then
-		einfo "You have disabled the \"python\" USE flag. This will only"
-		einfo "disable the python bindings being installed."
-	fi
-}
-
-pkg_setup() {
-	java-pkg-opt-2_pkg_setup
-	python-single-r1_pkg_setup
-}
-
-src_prepare() {
-	default
-
-	# Only add nopie patch when we're on hardened
-	if gcc-specs-pie ; then
-		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
-	fi
-
-	# Only add paxmark patch when we're on pax-kernel
-	if use pax-kernel ; then
-		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
-	fi
-
-	# Remove shipped binaries (kBuild, yasm), see bug #232775
-	rm -r kBuild/bin tools || die
-
-	# Replace pointless GCC version check with something more sensible.
-	# This is needed for the qt5 version check.
-	sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
-		-i configure || die
-
-	# Disable things unused or split into separate ebuilds
-	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
-		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
-	if ! use pch ; then
-		# bug #753323
-		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
-			>> LocalConfig.kmk || die
-	fi
-
-	# Respect LDFLAGS
-	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
-	# Do not use hard-coded ld (related to bug #488176)
-	sed -e '/QUIET)ld /s@ld @$(LD) @' \
-		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
-	# Use PAM only when pam USE flag is enbaled (bug #376531)
-	if ! use pam ; then
-		einfo "Disabling PAM removes the possibility to use the VRDP features."
-		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
-		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
-			src/VBox/HostServices/Makefile.kmk || die
-	fi
-
-	# add correct java path
-	if use java ; then
-		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-			-i "${S}"/Config.kmk || die
-		java-pkg-opt-2_src_prepare
-	fi
-}
-
-src_configure() {
-	tc-ld-disable-gold # bug #488176
-
-	tc-export AR CC CXX LD RANLIB
-	export HOST_CC="$(tc-getBUILD_CC)"
-
-	local myconf=(
-		--with-gcc="$(tc-getCC)"
-		--with-g++="$(tc-getCXX)"
-
-		--disable-dbus
-		--disable-kmods
-
-		$(usex alsa '' --disable-alsa)
-		$(usex debug --build-debug '')
-		$(usex doc '' --disable-docs)
-		$(usex java '' --disable-java)
-		$(usex lvm '' --disable-devmapper)
-		$(usex opus '' --disable-libopus)
-		$(usex pulseaudio '' --disable-pulse)
-		$(usex python '' --disable-python)
-		$(usex vboxwebsrv --enable-webservice '')
-		$(usex vnc --enable-vnc '')
-	)
-
-	if ! use headless ; then
-		myconf+=(
-			$(usex opengl '' --disable-opengl)
-			$(usex sdl '' --disable-sdl)
-			$(usex qt5 '' --disable-qt)
-		)
-	else
-		myconf+=(
-			--build-headless
-			--disable-opengl
-		)
-	fi
-
-	if use amd64 && ! has_multilib_profile ; then
-		myconf+=( --disable-vmmraw )
-	fi
-	# not an autoconf script
-	edo ./configure "${myconf[@]}"
-
-	# Force usage of chosen Python implementation
-	# bug #856121, bug #785835
-	sed -i \
-		-e '/VBOX_WITH_PYTHON.*=/d' \
-		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
-		-e '/VBOX_LIB_PYTHON.*=/d' \
-		AutoConfig.kmk || die
-
-	cat >> AutoConfig.kmk <<-EOF || die
-		VBOX_WITH_PYTHON=$(usev python 1)
-		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
-		VBOX_LIB_PYTHON=$(python_get_library_path)
-	EOF
-
-	if use python ; then
-		local mangled_python="${EPYTHON#python}"
-		mangled_python="${mangled_python/.}"
-
-		# Stub out the script which defines what the Makefile ends up
-		# building for. gen_python_deps.py gets called by the Makefile
-		# with some args and it spits out a bunch of paths for a hardcoded
-		# list of Pythons. We just override it with what we're actually using.
-		# This minimises the amount of patching we have to do for new Pythons.
-		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
-			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
-			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
-			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
-			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
-		EOF
-
-		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
-	fi
-}
-
-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_WITH_VBOXIMGMOUNT=1
-
-		KBUILD_VERBOSE=2
-
-		AS="$(tc-getCC)"
-		CC="$(tc-getCC)"
-		CXX="$(tc-getCXX)"
-
-		TOOL_GCC3_CC="$(tc-getCC)"
-		TOOL_GCC3_LD="$(tc-getCC)"
-		TOOL_GCC3_AS="$(tc-getCC)"
-		TOOL_GCC3_AR="$(tc-getAR)"
-		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
-
-		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_GCC3_CFLAGS="${CFLAGS}"
-		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
-		VBOX_GCC_OPT="${CXXFLAGS}"
-		VBOX_NM="$(tc-getNM)"
-
-		TOOL_YASM_AS=yasm
-	)
-
-	if use amd64 && has_multilib_profile ; then
-		myemakeargs+=(
-			CC32="$(tc-getCC) -m32"
-			CXX32="$(tc-getCXX) -m32"
-
-			TOOL_GCC32_CC="$(tc-getCC) -m32"
-			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
-			TOOL_GCC32_LD="$(tc-getCC) -m32"
-			TOOL_GCC32_AS="$(tc-getCC) -m32"
-			TOOL_GCC32_AR="$(tc-getAR)"
-			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
-
-			TOOL_GXX32_CC="$(tc-getCC) -m32"
-			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
-			TOOL_GXX32_LD="$(tc-getCXX) -m32"
-			TOOL_GXX32_AS="$(tc-getCXX) -m32"
-			TOOL_GXX32_AR="$(tc-getAR)"
-			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
-		)
-	fi
-
-	MAKE="kmk" emake "${myemakeargs[@]}" all
-}
-
-src_install() {
-	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
-	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
-	vbox_inst() {
-		local binary="${1}"
-		local perms="${2:-0750}"
-		local path="${3:-${vbox_inst_path}}"
-
-		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
-		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
-		insinto ${path}
-		doins ${binary}
-		fowners root:vboxusers ${path}/${binary}
-		fperms ${perms} ${path}/${binary}
-	}
-
-	# Create configuration files
-	insinto /etc/vbox
-	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
-	# Set the correct libdir
-	sed \
-		-e "s@MY_LIBDIR@$(get_libdir)@" \
-		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
-	# Install the wrapper script
-	exeinto ${vbox_inst_path}
-	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
-	fowners root:vboxusers ${vbox_inst_path}/VBox
-	fperms 0750 ${vbox_inst_path}/VBox
-
-	# Install binaries and libraries
-	insinto ${vbox_inst_path}
-	doins -r components
-
-	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do
-		vbox_inst ${each}
-	done
-
-	# These binaries need to be suid root.
-	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
-		vbox_inst ${each} 4750
-	done
-
-	# Install EFI Firmware files (bug #320757)
-	for each in VBoxEFI{32,64}.fd ; do
-		vbox_inst ${each} 0644
-	done
-
-	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
-	# VBoxXPCOMIPCD (bug #524202)
-	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
-		pax-mark -m "${ED}"${vbox_inst_path}/${each}
-	done
-
-	# Symlink binaries to the shipped wrapper
-	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
-		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-	done
-	dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
-	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-
-	if use pam ; then
-		# VRDPAuth only works with this (bug #351949)
-		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
-	fi
-
-	# set an env-variable for 3rd party tools
-	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
-	doenvd "${T}/90virtualbox"
-
-	if ! use headless ; then
-		vbox_inst rdesktop-vrdp
-		if use sdl ; then
-			vbox_inst VBoxSDL 4750
-			pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
-			for each in vboxsdl VBoxSDL ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-		fi
-
-		if use qt5 ; then
-			vbox_inst VirtualBox
-			vbox_inst VirtualBoxVM 4750
-			for each in VirtualBox{,VM} ; do
-				pax-mark -m "${ED}"${vbox_inst_path}/${each}
-			done
-
-			if use opengl ; then
-				vbox_inst VBoxTestOGL
-				pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
-			fi
-
-			for each in virtualbox{,vm} VirtualBox{,VM} ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-
-			insinto /usr/share/${PN}
-			doins -r nls
-			doins -r UnattendedTemplates
-
-			domenu ${PN}.desktop
-		fi
-
-		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
-		for size in 16 32 48 64 128 ; do
-			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
-		done
-		newicon ${PN}-48px.png ${PN}.png
-		doicon -s scalable ${PN}.svg
-		popd &>/dev/null || die
-		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
-		for size in 16 24 32 48 64 72 96 128 256 512 ; do
-			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
-				icofile="${PN}-${ico}-${size}px.png"
-				if [[ -f "${icofile}" ]] ; then
-					newicon -s ${size} ${icofile} ${PN}-${ico}.png
-				fi
-			done
-		done
-		popd &>/dev/null || die
-	fi
-
-	if use lvm ; then
-		vbox_inst VBoxVolInfo 4750
-		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
-	fi
-
-	if use sdk ; then
-		insinto ${vbox_inst_path}
-		doins -r sdk
-
-		if use java ; then
-			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
-			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
-		fi
-	fi
-
-	if use udev ; then
-		local udevdir="$(get_udevdir)"
-		local udev_file="VBoxCreateUSBNode.sh"
-		local rules_file="10-virtualbox.rules"
-
-		insinto ${udevdir}
-		doins ${udev_file}
-		fowners root:vboxusers ${udevdir}/${udev_file}
-		fperms 0750 ${udevdir}/${udev_file}
-
-		insinto ${udevdir}/rules.d
-		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
-			> "${T}"/${rules_file} || die
-		doins "${T}"/${rules_file}
-	fi
-
-	if use vboxwebsrv ; then
-		vbox_inst vboxwebsrv
-		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
-		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
-		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
-	fi
-
-	# Remove dead symlinks (bug #715338)
-	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
-	# Fix version string in extensions or else they don't get accepted
-	# by the virtualbox host process (see bug #438930)
-	find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
-		| xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
-		|| die
-
-	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
-	if use vnc ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/VNC
-	fi
-
-	if use dtrace ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
-	fi
-
-	if use doc ; then
-		dodoc UserManual.pdf
-	fi
-
-	if use python ; then
-		local mangled_python="${EPYTHON#python}"
-		mangled_python="${mangled_python/./_}"
-
-		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython${mangled_python}.so"
-		if [[ ! -x "${python_path_ext}" ]] ; then
-			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
-			eerror "but none were installed. This may happen if support for a Python target"
-			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
-			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
-		fi
-	fi
-
-	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-
-	if use udev ; then
-		udevadm control --reload-rules
-		udevadm trigger --subsystem-match=usb
-	fi
-
-	tmpfiles_process virtualbox-vboxusb.conf
-
-	if ! use headless && use qt5 ; then
-		elog "To launch VirtualBox just type: \"virtualbox\"."
-	fi
-
-	elog "You must be in the vboxusers group to use VirtualBox."
-	elog ""
-	elog "The latest user manual is available for download at:"
-	elog "https://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf"
-	elog ""
-
-	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
-	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
-	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
-
-	if ! use udev ; then
-		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
-	fi
-}

diff --git a/app-emulation/virtualbox/virtualbox-6.1.36.ebuild b/app-emulation/virtualbox/virtualbox-6.1.36.ebuild
deleted file mode 100644
index db6bcc8ca893..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.1.36.ebuild
+++ /dev/null
@@ -1,647 +0,0 @@
-# Copyright 2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# To add a new Python here:
-# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
-#    Do NOT skip this part. It'll end up silently not-building the Python extension
-#    or otherwise misbehaving if you do.
-#
-# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
-#
-#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
-#  Python versions as upstream tends to lag. Upstream may have patches on their
-#  trunk branch but not release branch.
-#
-#  See bug #785835, bug #856121.
-PYTHON_COMPAT=( python3_{8..10} )
-
-inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}-${MY_PV}
-[[ ${PV} == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
-	https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${MY_PV}.tar.bz2"
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0/$(ver_cut 1-2)"
-if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
-	KEYWORDS="~amd64"
-fi
-IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc"
-
-unset WATCOM #856769
-
-COMMON_DEPEND="
-	${PYTHON_DEPS}
-	acct-group/vboxusers
-	~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
-	dev-libs/libIDL
-	>=dev-libs/libxslt-1.1.19
-	net-misc/curl
-	dev-libs/libxml2
-	media-libs/libpng:0=
-	media-libs/libvpx:0=
-	sys-libs/zlib:=
-	!headless? (
-		sdl? ( media-libs/libsdl:0[X,video] )
-		x11-libs/libX11
-		x11-libs/libxcb:=
-		x11-libs/libXcursor
-		x11-libs/libXext
-		x11-libs/libXmu
-		x11-libs/libXt
-		opengl? (
-			media-libs/libglvnd[X]
-			virtual/glu
-		)
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtgui:5
-			dev-qt/qtprintsupport:5
-			dev-qt/qtwidgets:5
-			dev-qt/qtx11extras:5
-			opengl? ( dev-qt/qtopengl:5 )
-			x11-libs/libXinerama
-		)
-	)
-	dev-libs/openssl:0=
-	virtual/libcrypt:=
-	lvm? ( sys-fs/lvm2 )
-	opus? ( media-libs/opus )
-	udev? ( >=virtual/udev-171 )
-	vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
-# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
-# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
-# based on *DEPEND doesn't work for BDEPEND at least right now.
-#
-# There's a comment in Config.kmk about it
-# ("With Java 11 wsimport was removed, usually part of a separate install now.")
-# but it needs more investigation.
-#
-# See bug #832166.
-DEPEND="
-	${COMMON_DEPEND}
-	alsa? ( >=media-libs/alsa-lib-1.0.13 )
-	!headless? (
-		x11-libs/libXinerama
-		opengl? ( virtual/opengl )
-	)
-	java? ( virtual/jdk:1.8 )
-	pam? ( sys-libs/pam )
-	pax-kernel? ( sys-apps/elfix )
-	pulseaudio? ( media-sound/pulseaudio )
-	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	>=dev-util/kbuild-0.1.9998.3127
-	>=dev-lang/yasm-0.6.2
-	sys-apps/which
-	sys-devel/bin86
-	sys-libs/libcap
-	sys-power/iasl
-	virtual/pkgconfig
-	doc? (
-		app-text/docbook-sgml-dtd:4.4
-		dev-texlive/texlive-basic
-		dev-texlive/texlive-latex
-		dev-texlive/texlive-latexrecommended
-		dev-texlive/texlive-latexextra
-		dev-texlive/texlive-fontsrecommended
-		dev-texlive/texlive-fontsextra
-	)
-	java? ( virtual/jdk:1.8 )
-	qt5? ( dev-qt/linguist-tools:5 )
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	java? ( virtual/jre:1.8 )
-"
-
-QA_FLAGS_IGNORED="
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/VMMR0.r0
-"
-
-QA_TEXTRELS="
-	usr/lib64/virtualbox/VMMR0.r0
-"
-
-QA_EXECSTACK="
-	usr/lib64/virtualbox/iPxeBaseBin
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-"
-
-QA_WX_LOAD="
-	usr/lib64/virtualbox/iPxeBaseBin
-"
-
-QA_PRESTRIPPED="
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-"
-
-REQUIRED_USE="
-	java? ( sdk )
-	python? ( sdk )
-	vboxwebsrv? ( java )
-	${PYTHON_REQUIRED_USE}
-"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
-
-	# This patch is needed to avoid automagic detection based on a hardcoded
-	# list of Pythons in configure. It's necessary but not sufficient
-	# (see the rest of the ebuild's logic for the remainder) to handle
-	# proper Python selection.
-	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
-
-	# Patch grabbed from Arch Linux / upstream for Python 3.10 support
-	"${FILESDIR}"/${PN}-6.1.36-python3.10.patch
-
-	# Downloaded patchset
-	"${WORKDIR}"/virtualbox-patches-${MY_PV}/patches
-)
-
-pkg_pretend() {
-	if ! use headless && ! use qt5 ; then
-		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
-	elif use headless && use qt5 ; then
-		einfo "You selected USE=\"headless qt5\", defaulting to"
-		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
-	fi
-
-	if ! use opengl ; then
-		einfo "No USE=\"opengl\" selected, this build will lack"
-		einfo "the OpenGL feature."
-	fi
-	if ! use python ; then
-		einfo "You have disabled the \"python\" USE flag. This will only"
-		einfo "disable the python bindings being installed."
-	fi
-}
-
-pkg_setup() {
-	java-pkg-opt-2_pkg_setup
-	python-single-r1_pkg_setup
-}
-
-src_prepare() {
-	default
-
-	# Only add nopie patch when we're on hardened
-	if gcc-specs-pie ; then
-		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
-	fi
-
-	# Only add paxmark patch when we're on pax-kernel
-	if use pax-kernel ; then
-		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
-	fi
-
-	# Remove shipped binaries (kBuild, yasm), see bug #232775
-	rm -r kBuild/bin tools || die
-
-	# Replace pointless GCC version check with something more sensible.
-	# This is needed for the qt5 version check.
-	sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
-		-i configure || die
-
-	# Disable things unused or split into separate ebuilds
-	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
-		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
-	if ! use pch ; then
-		# bug #753323
-		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
-			>> LocalConfig.kmk || die
-	fi
-
-	# Respect LDFLAGS
-	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
-	# Do not use hard-coded ld (related to bug #488176)
-	sed -e '/QUIET)ld /s@ld @$(LD) @' \
-		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
-	# Use PAM only when pam USE flag is enbaled (bug #376531)
-	if ! use pam ; then
-		einfo "Disabling PAM removes the possibility to use the VRDP features."
-		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
-		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
-			src/VBox/HostServices/Makefile.kmk || die
-	fi
-
-	# add correct java path
-	if use java ; then
-		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-			-i "${S}"/Config.kmk || die
-		java-pkg-opt-2_src_prepare
-	fi
-}
-
-src_configure() {
-	tc-ld-disable-gold # bug #488176
-
-	#856811 turns out having march defined produces buggy executables
-	filter-flags -march=* -mtune=* -mcpu=*
-
-	tc-export AR CC CXX LD RANLIB
-	export HOST_CC="$(tc-getBUILD_CC)"
-
-	local myconf=(
-		--with-gcc="$(tc-getCC)"
-		--with-g++="$(tc-getCXX)"
-
-		--disable-dbus
-		--disable-kmods
-
-		$(usex alsa '' --disable-alsa)
-		$(usex debug --build-debug '')
-		$(usex doc '' --disable-docs)
-		$(usex java '' --disable-java)
-		$(usex lvm '' --disable-devmapper)
-		$(usex opus '' --disable-libopus)
-		$(usex pulseaudio '' --disable-pulse)
-		$(usex python '' --disable-python)
-		$(usex vboxwebsrv --enable-webservice '')
-		$(usex vnc --enable-vnc '')
-	)
-
-	if ! use headless ; then
-		myconf+=(
-			$(usex opengl '' --disable-opengl)
-			$(usex sdl '' --disable-sdl)
-			$(usex qt5 '' --disable-qt)
-		)
-	else
-		myconf+=(
-			--build-headless
-			--disable-opengl
-		)
-	fi
-
-	if use amd64 && ! has_multilib_profile ; then
-		myconf+=( --disable-vmmraw )
-	fi
-
-	# bug #843437
-	cat >> LocalConfig.kmk <<-EOF || die
-		CXXFLAGS=${CXXFLAGS}
-		CFLAGS=${CFLAGS}
-	EOF
-
-	# not an autoconf script
-	edo ./configure "${myconf[@]}"
-
-	# Force usage of chosen Python implementation
-	# bug #856121, bug #785835
-	sed -i \
-		-e '/VBOX_WITH_PYTHON.*=/d' \
-		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
-		-e '/VBOX_LIB_PYTHON.*=/d' \
-		AutoConfig.kmk || die
-
-	cat >> AutoConfig.kmk <<-EOF || die
-		VBOX_WITH_PYTHON=$(usev python 1)
-		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
-		VBOX_LIB_PYTHON=$(python_get_library_path)
-	EOF
-
-	if use python ; then
-		local mangled_python="${EPYTHON#python}"
-		mangled_python="${mangled_python/.}"
-
-		# Stub out the script which defines what the Makefile ends up
-		# building for. gen_python_deps.py gets called by the Makefile
-		# with some args and it spits out a bunch of paths for a hardcoded
-		# list of Pythons. We just override it with what we're actually using.
-		# This minimises the amount of patching we have to do for new Pythons.
-		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
-			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
-			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
-			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
-			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
-		EOF
-
-		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
-	fi
-}
-
-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_WITH_VBOXIMGMOUNT=1
-
-		KBUILD_VERBOSE=2
-
-		AS="$(tc-getCC)"
-		CC="$(tc-getCC)"
-		CXX="$(tc-getCXX)"
-
-		TOOL_GCC3_CC="$(tc-getCC)"
-		TOOL_GCC3_LD="$(tc-getCC)"
-		TOOL_GCC3_AS="$(tc-getCC)"
-		TOOL_GCC3_AR="$(tc-getAR)"
-		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
-
-		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_GCC3_CFLAGS="${CFLAGS}"
-		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
-		VBOX_GCC_OPT="${CXXFLAGS}"
-		VBOX_NM="$(tc-getNM)"
-
-		TOOL_YASM_AS=yasm
-	)
-
-	if use amd64 && has_multilib_profile ; then
-		myemakeargs+=(
-			CC32="$(tc-getCC) -m32"
-			CXX32="$(tc-getCXX) -m32"
-
-			TOOL_GCC32_CC="$(tc-getCC) -m32"
-			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
-			TOOL_GCC32_LD="$(tc-getCC) -m32"
-			TOOL_GCC32_AS="$(tc-getCC) -m32"
-			TOOL_GCC32_AR="$(tc-getAR)"
-			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
-
-			TOOL_GXX32_CC="$(tc-getCC) -m32"
-			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
-			TOOL_GXX32_LD="$(tc-getCXX) -m32"
-			TOOL_GXX32_AS="$(tc-getCXX) -m32"
-			TOOL_GXX32_AR="$(tc-getAR)"
-			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
-		)
-	fi
-
-	MAKE="kmk" emake "${myemakeargs[@]}" all
-}
-
-src_install() {
-	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
-	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
-	vbox_inst() {
-		local binary="${1}"
-		local perms="${2:-0750}"
-		local path="${3:-${vbox_inst_path}}"
-
-		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
-		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
-		insinto ${path}
-		doins ${binary}
-		fowners root:vboxusers ${path}/${binary}
-		fperms ${perms} ${path}/${binary}
-	}
-
-	# Create configuration files
-	insinto /etc/vbox
-	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
-	# Set the correct libdir
-	sed \
-		-e "s@MY_LIBDIR@$(get_libdir)@" \
-		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
-	# Install the wrapper script
-	exeinto ${vbox_inst_path}
-	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
-	fowners root:vboxusers ${vbox_inst_path}/VBox
-	fperms 0750 ${vbox_inst_path}/VBox
-
-	# Install binaries and libraries
-	insinto ${vbox_inst_path}
-	doins -r components
-
-	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do
-		vbox_inst ${each}
-	done
-
-	# These binaries need to be suid root.
-	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
-		vbox_inst ${each} 4750
-	done
-
-	# Install EFI Firmware files (bug #320757)
-	for each in VBoxEFI{32,64}.fd ; do
-		vbox_inst ${each} 0644
-	done
-
-	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
-	# VBoxXPCOMIPCD (bug #524202)
-	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
-		pax-mark -m "${ED}"${vbox_inst_path}/${each}
-	done
-
-	# Symlink binaries to the shipped wrapper
-	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
-		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-	done
-	dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
-	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-
-	if use pam ; then
-		# VRDPAuth only works with this (bug #351949)
-		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
-	fi
-
-	# set an env-variable for 3rd party tools
-	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
-	doenvd "${T}/90virtualbox"
-
-	if ! use headless ; then
-		vbox_inst rdesktop-vrdp
-		if use sdl ; then
-			vbox_inst VBoxSDL 4750
-			pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
-			for each in vboxsdl VBoxSDL ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-		fi
-
-		if use qt5 ; then
-			vbox_inst VirtualBox
-			vbox_inst VirtualBoxVM 4750
-			for each in VirtualBox{,VM} ; do
-				pax-mark -m "${ED}"${vbox_inst_path}/${each}
-			done
-
-			if use opengl ; then
-				vbox_inst VBoxTestOGL
-				pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
-			fi
-
-			for each in virtualbox{,vm} VirtualBox{,VM} ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-
-			insinto /usr/share/${PN}
-			doins -r nls
-			doins -r UnattendedTemplates
-
-			domenu ${PN}.desktop
-		fi
-
-		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
-		for size in 16 32 48 64 128 ; do
-			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
-		done
-		newicon ${PN}-48px.png ${PN}.png
-		doicon -s scalable ${PN}.svg
-		popd &>/dev/null || die
-		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
-		for size in 16 24 32 48 64 72 96 128 256 512 ; do
-			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
-				icofile="${PN}-${ico}-${size}px.png"
-				if [[ -f "${icofile}" ]] ; then
-					newicon -s ${size} ${icofile} ${PN}-${ico}.png
-				fi
-			done
-		done
-		popd &>/dev/null || die
-	fi
-
-	if use lvm ; then
-		vbox_inst VBoxVolInfo 4750
-		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
-	fi
-
-	if use sdk ; then
-		insinto ${vbox_inst_path}
-		doins -r sdk
-
-		if use java ; then
-			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
-			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
-		fi
-	fi
-
-	if use udev ; then
-		local udevdir="$(get_udevdir)"
-		local udev_file="VBoxCreateUSBNode.sh"
-		local rules_file="10-virtualbox.rules"
-
-		insinto ${udevdir}
-		doins ${udev_file}
-		fowners root:vboxusers ${udevdir}/${udev_file}
-		fperms 0750 ${udevdir}/${udev_file}
-
-		insinto ${udevdir}/rules.d
-		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
-			> "${T}"/${rules_file} || die
-		doins "${T}"/${rules_file}
-	fi
-
-	if use vboxwebsrv ; then
-		vbox_inst vboxwebsrv
-		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
-		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
-		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
-	fi
-
-	# Remove dead symlinks (bug #715338)
-	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
-	# Fix version string in extensions or else they don't get accepted
-	# by the virtualbox host process (see bug #438930)
-	find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
-		| xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
-		|| die
-
-	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
-	if use vnc ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/VNC
-	fi
-
-	if use dtrace ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
-	fi
-
-	if use doc ; then
-		dodoc UserManual.pdf
-	fi
-
-	if use python ; then
-		local mangled_python="${EPYTHON#python}"
-		mangled_python="${mangled_python/./_}"
-
-		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython${mangled_python}.so"
-		if [[ ! -x "${python_path_ext}" ]] ; then
-			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
-			eerror "but none were installed. This may happen if support for a Python target"
-			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
-			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
-		fi
-	fi
-
-	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-
-	if use udev ; then
-		udev_reload
-		udevadm trigger --subsystem-match=usb
-	fi
-
-	tmpfiles_process virtualbox-vboxusb.conf
-
-	if ! use headless && use qt5 ; then
-		elog "To launch VirtualBox just type: \"virtualbox\"."
-	fi
-
-	elog "You must be in the vboxusers group to use VirtualBox."
-	elog ""
-	elog "The latest user manual is available for download at:"
-	elog "https://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf"
-	elog ""
-
-	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
-	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
-	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
-
-	if ! use udev ; then
-		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
-	fi
-}
-
-pkg_postrm() {
-	xdg_pkg_postrm
-
-	use udev && udev_reload
-}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2022-11-02  6:41 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2022-11-02  6:41 UTC (permalink / raw
  To: gentoo-commits

commit:     9616b251f6c74d1b6d7688d5e4cca40df855da93
Author:     Viorel Munteanu <ceamac.paragon <AT> gmail <DOT> com>
AuthorDate: Tue Oct 11 18:37:58 2022 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Wed Nov  2 06:39:42 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9616b251

app-emulation/virtualbox: add 7.0.2

Signed-off-by: Viorel Munteanu <ceamac.paragon <AT> gmail.com>
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   1 +
 .../virtualbox-7.0.0-fix-compilation-clang.patch   |  44 ++
 .../files/virtualbox-7.0.0-fix-compilation.patch   |  56 ++
 .../files/virtualbox-7.0.0-python3_11.patch        |  90 +++
 app-emulation/virtualbox/virtualbox-7.0.2.ebuild   | 685 +++++++++++++++++++++
 5 files changed, 876 insertions(+)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index c3288f9542c0..7223bc1b6af8 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,4 +1,5 @@
 DIST VirtualBox-6.1.36.tar.bz2 165685382 BLAKE2B 98dbb06450b9df650cb72493bcdea4b88fa9dd21f76d723fdc0bb2c1ab8266f67e972a7222dc9b5bd0d43754911710664bddace753995be025cf6bcc05a24ae5 SHA512 cc3b984a7da40c9bf14831808a2bc2bf7bf6821e53c25fa11cb4b4275feb1d4b0cb4a47d8a360b90c89e5a4038481efe8fe28ee22996dbefb6446761e88a8dec
 DIST VirtualBox-6.1.38.tar.bz2 165761175 BLAKE2B decda6e7a595f79e6ace6f8f6b8a7829223ac1422c3d280b6287a40ef942e773ad473f4fa4640a76f8fb825ebd8561c646f1b3d87922b1af55c138298b4c8f4f SHA512 7a4f2dc80e3251b1da6d29d3c6f6b802527decc70497b1a1d1008c0ab3109c2039d131c587d6ec4786aea619546757655337c2ec3456243336ca13c6f6748116
 DIST VirtualBox-6.1.40.tar.bz2 165769795 BLAKE2B 5c216f23422be3fc4f7760881c666c57a516d12726ed8ef040bbdf918f1af53c69d204b22949e25f751cbe788b00c810c49c27b7c51c1837fd1c503a3eff202c SHA512 0dace071fe58500d0912fe4da4751de6840752375039554a56c8c753a0880a419c4a1ed7f1b0ebc51230f7099ca3f5d987dc7b91ad4d98dbd75bf63e3c27e096
+DIST VirtualBox-7.0.2.tar.bz2 199461536 BLAKE2B 94f7c2961c13530b6086bf4576f243b5b260f43ec445c8a2e411205989a9db229715502f2b76b8f3cb45a49ff565410701be90f1e850f069aae5579c0796b503 SHA512 c79d6365f83e1fde356a7f4a6ccd23bc7306d1b5b4be669634c575f08ba53338caca684758c9409ecef2b05ab6f9ad37dfa6075ad6afbc5d7909d46ee6794927
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.0-fix-compilation-clang.patch b/app-emulation/virtualbox/files/virtualbox-7.0.0-fix-compilation-clang.patch
new file mode 100644
index 000000000000..c3e34f875acd
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.0-fix-compilation-clang.patch
@@ -0,0 +1,44 @@
+clang does not have syslimits.h, it is gcc specific
+and it is useless anyway since <limits.h> is already included
+so just remove it
+
+Cannot use PFNRT here on clang because of the exception specification
+
+--- a/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceLibCWrappers.h
++++ b/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceLibCWrappers.h
+@@ -34,8 +34,6 @@
+ # include <limits.h>        /* Workaround for syslimit.h bug in gcc 4.8.3 on gentoo. */
+ # ifdef RT_OS_DARWIN
+ #  include <sys/syslimits.h> /* PATH_MAX */
+-# elif !defined(RT_OS_SOLARIS) && !defined(RT_OS_FREEBSD)
+-#  include <syslimits.h>    /* PATH_MAX */
+ # endif
+ # include <libgen.h>        /* basename */
+ # include <unistd.h>
+--- a/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h
++++ b/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h
+@@ -97,7 +97,11 @@
+ /** Load OpenGL library and initialize function pointers. */
+ int glLdrInit(PPDMDEVINS pDevIns);
+ /** Resolve an OpenGL function name. */
++#ifdef __clang__
++void* glLdrGetProcAddress(const char *pszSymbol);
++#else	// !__clang__
+ PFNRT glLdrGetProcAddress(const char *pszSymbol);
++#endif	// !__clang__
+ /** Get pointers to extension function. They are available on Windows only when OpenGL context is set. */
+ int glLdrGetExtFunctions(PPDMDEVINS pDevIns);
+ 
+--- a/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp
++++ b/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp
+@@ -35,6 +35,10 @@
+ #include <iprt/ldr.h>
+ #include <iprt/log.h>
+ 
++#ifdef __clang__
++# define PFNRT void*
++#endif
++
+ #ifdef RT_OS_WINDOWS
+ # define OGLGETPROCADDRESS MyWinGetProcAddress
+ DECLINLINE(PFNRT) MyWinGetProcAddress(const char *pszSymbol)

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.0-fix-compilation.patch b/app-emulation/virtualbox/files/virtualbox-7.0.0-fix-compilation.patch
new file mode 100644
index 000000000000..362e792c9cb9
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.0-fix-compilation.patch
@@ -0,0 +1,56 @@
+Fix compilation if VBOX_WITH_AUDIO_OSS is defined while VBOX_WITH_AUDIO_PULSE and VBOX_WITH_AUDIO_ALSA are not
+
+Fix compilation if VBOX_WITH_AUDIO_RECORDING is not defined
+
+--- a/src/VBox/Main/xml/Settings.cpp
++++ b/src/VBox/Main/xml/Settings.cpp
+@@ -8931,6 +8931,9 @@
+     RTCLock lock(s_mtx);
+     if (s_enmLinuxDriver == AudioDriverType_Null)
+     {
++# ifdef VBOX_WITH_AUDIO_OSS
++	s_enmLinuxDriver = AudioDriverType_OSS;
++# endif /* VBOX_WITH_AUDIO_OSS */
+ # ifdef VBOX_WITH_AUDIO_PULSE
+         /* Check for the pulse library & that the pulse audio daemon is running. */
+         if (RTProcIsRunningByName("pulseaudio") &&
+@@ -8943,10 +8946,7 @@
+              if (RTLdrIsLoadable("libasound.so.2"))
+                 s_enmLinuxDriver = AudioDriverType_ALSA;
+ # endif /* VBOX_WITH_AUDIO_ALSA */
+-# ifdef VBOX_WITH_AUDIO_OSS
+-             else
+-                s_enmLinuxDriver = AudioDriverType_OSS;
+-# endif /* VBOX_WITH_AUDIO_OSS */
++	;
+     }
+     return s_enmLinuxDriver;
+ 
+--- a/src/VBox/Main/src-client/RecordingInternals.cpp
++++ b/src/VBox/Main/src-client/RecordingInternals.cpp
+@@ -139,7 +139,9 @@
+     switch (pFrame->enmType)
+     {
+         case RECORDINGFRAME_TYPE_AUDIO:
++#ifdef VBOX_WITH_AUDIO_RECORDING
+             recordingAudioFrameDestroy(&pFrame->Audio);
++#endif // VBOX_WITH_AUDIO_RECORDING
+             break;
+ 
+         case RECORDINGFRAME_TYPE_VIDEO:
+--- a/src/VBox/Main/src-client/Recording.cpp
++++ b/src/VBox/Main/src-client/Recording.cpp
+@@ -836,11 +836,13 @@
+ 
+     if (m_enmState == RECORDINGSTS_STARTED)
+     {
++#ifdef VBOX_WITH_AUDIO_RECORDING
+         if (   recordingCodecIsInitialized(&m_CodecAudio)
+             && recordingCodecGetWritable(&m_CodecAudio, msTimestamp) > 0)
+         {
+             fNeedsUpdate = true;
+         }
++#endif	// VBOX_WITH_AUDIO_RECORDING
+ 
+         if (!fNeedsUpdate)
+         {

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.0-python3_11.patch b/app-emulation/virtualbox/files/virtualbox-7.0.0-python3_11.patch
new file mode 100644
index 000000000000..cbdc1e1e2ad1
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.0-python3_11.patch
@@ -0,0 +1,90 @@
+Add support for python 3.11
+
+Virtualbox 7.0.0 will only build a lib named VBoxPython3.so, regardless of the
+actual python version used when compiling.  Remove VBoxPython3m.so, we don't
+use it.
+
+--- a/src/libs/xpcom18a4/python/Makefile.kmk
++++ b/src/libs/xpcom18a4/python/Makefile.kmk
+@@ -30,7 +30,7 @@
+ 
+ #
+ # List of supported Python versions, defining a number of
+-# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|DEF]_[INC|LIB] variables
++# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|311|311M|DEF]_[INC|LIB] variables
+ # which get picked up below.
+ #
+ ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
+@@ -702,6 +702,52 @@
+  endif
+ endif
+ 
++ifdef VBOX_PYTHON311_INC
++#
++# Python 3.11 version
++#
++DLLS += VBoxPython3_11
++VBoxPython3_11_EXTENDS    = VBoxPythonBase
++VBoxPython3_11_EXTENDS_BY = appending
++VBoxPython3_11_TEMPLATE   = XPCOM
++VBoxPython3_11_INCS       = $(VBOX_PYTHON311_INC)
++VBoxPython3_11_LIBS       = $(VBOX_PYTHON311_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++  ifdef VBOX_PYTHON311_LIB_X86
++DLLS += VBoxPython3_11_x86
++VBoxPython3_11_x86_EXTENDS    = VBoxPythonBase_x86
++VBoxPython3_11_x86_EXTENDS_BY = appending
++VBoxPython3_11_x86_TEMPLATE   = XPCOM
++VBoxPython3_11_x86_INCS       = $(VBOX_PYTHON311_INC)
++VBoxPython3_11_x86_LIBS       = $(VBOX_PYTHON311_LIB_X86)
++  endif
++ endif
++endif
++
++ifdef VBOX_PYTHON311M_INC
++#
++# Python 3.11 version with pymalloc
++#
++DLLS += VBoxPython3_11m
++VBoxPython3_11m_EXTENDS    = VBoxPythonBase_m
++VBoxPython3_11m_EXTENDS_BY = appending
++VBoxPython3_11m_TEMPLATE   = XPCOM
++VBoxPython3_11m_INCS       = $(VBOX_PYTHON311M_INC)
++VBoxPython3_11m_LIBS       = $(VBOX_PYTHON311M_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++  ifdef VBOX_PYTHON311M_LIB_X86
++DLLS += VBoxPython3_11m_x86
++VBoxPython3_11m_x86_EXTENDS    = VBoxPythonBase_x86_m
++VBoxPython3_11m_x86_EXTENDS_BY = appending
++VBoxPython3_11m_x86_TEMPLATE_  = XPCOM
++VBoxPython3_11m_x86_INCS       = $(VBOX_PYTHON311M_INC)
++VBoxPython3_11m_x86_LIBS       = $(VBOX_PYTHON311M_LIB_X86)
++  endif
++ endif
++endif
++
+ ifdef VBOX_PYTHONDEF_INC
+ #
+ # Python without versioning
+@@ -744,18 +790,13 @@
+ # TODO: ASSUMING that we don't need a different headers for pymalloc
+ #       ('m' builds < 3.8) and CRT malloc.
+ #
+-VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 38 39 310   34 33 \
++VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 38 39 310 311   34 33 \
+ ,$(if-expr defined(VBOX_PYTHON$(ver)_INC),$(ver),)$(if-expr defined(VBOX_PYTHON$(ver)M_INC),$(ver)M,)))
+   ifneq ($(VBOX_PYTHON_LIMITED_API_VER),)
+ DLLS += VBoxPython3
+ VBoxPython3_EXTENDS      = VBoxPythonBase
+ VBoxPython3_DEFS         = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS)) Py_LIMITED_API=0x03030000
+ VBoxPython3_INCS         = $(VBoxPythonBase_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
+-
+-DLLS += VBoxPython3m
+-VBoxPython3m_EXTENDS     = VBoxPythonBase_m
+-VBoxPython3m_DEFS        = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_m_DEFS)) Py_LIMITED_API=0x03030000
+-VBoxPython3m_INCS        = $(VBoxPythonBase_m_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
+   endif
+  endif # VBOX_WITH_PYTHON_LIMITED_API
+ 

diff --git a/app-emulation/virtualbox/virtualbox-7.0.2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.2.ebuild
new file mode 100644
index 000000000000..4a23f2b624d2
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.2.ebuild
@@ -0,0 +1,685 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+#    Do NOT skip this part. It'll end up silently not-building the Python extension
+#    or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
+#  Python versions as upstream tends to lag. Upstream may have patches on their
+#  trunk branch but not release branch.
+#
+#  See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{8..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+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-6.1.36.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa dbus debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+	${PYTHON_DEPS}
+	acct-group/vboxusers
+	~app-emulation/virtualbox-modules-${PV}
+	dev-libs/libxml2
+	dev-libs/openssl:0=
+	media-libs/libpng:0=
+	media-libs/libvpx:0=
+	net-misc/curl
+	sys-libs/zlib
+	dbus? ( sys-apps/dbus )
+	!headless? (
+		x11-libs/libX11
+		x11-libs/libXt
+		opengl? (
+			media-libs/libglvnd[X]
+		)
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtdbus:5
+			dev-qt/qtgui:5
+			dev-qt/qthelp:5
+			dev-qt/qtprintsupport:5
+			dev-qt/qtwidgets:5
+			dev-qt/qtx11extras:5
+			dev-qt/qtxml:5
+			opengl? ( dev-qt/qtopengl:5 )
+		)
+		sdl? (
+			media-libs/libsdl:0[X,video]
+			x11-libs/libXcursor
+		)
+	)
+	lvm? ( sys-fs/lvm2 )
+	pam? ( sys-libs/pam )
+	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
+	vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+	${COMMON_DEPEND}
+	>=dev-libs/libxslt-1.1.19
+	virtual/libcrypt:=
+	alsa? ( >=media-libs/alsa-lib-1.0.13 )
+	opengl? ( virtual/glu )
+	!headless? (
+		x11-libs/libXcursor
+		x11-libs/libXext
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libxcb:=
+		x11-libs/libXrandr
+		opengl? ( virtual/opengl )
+	)
+	java? ( virtual/jdk:1.8 )
+	opus? ( media-libs/opus )
+	pax-kernel? ( sys-apps/elfix )
+	pulseaudio? ( media-sound/pulseaudio )
+	qt5? ( x11-libs/libXinerama )
+	udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	java? ( virtual/jre:1.8 )
+	qt5? ( x11-libs/libxcb:= )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	>=dev-lang/yasm-0.6.2
+	dev-libs/libIDL
+	dev-qt/linguist-tools:5
+	dev-util/glslang
+	>=dev-util/kbuild-0.1.9998.3127
+	sys-apps/which
+	sys-devel/bin86
+	sys-libs/libcap
+	sys-power/iasl
+	virtual/pkgconfig
+	doc? (
+		app-text/docbook-sgml-dtd:4.4
+		app-text/docbook-xsl-ns-stylesheets
+		dev-texlive/texlive-basic
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexrecommended
+		dev-texlive/texlive-latexextra
+		dev-texlive/texlive-fontsrecommended
+		dev-texlive/texlive-fontsextra
+	)
+	java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+	usr/lib64/virtualbox/iPxeBaseBin
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+	usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+	java? ( sdk )
+	python? ( sdk )
+	vboxwebsrv? ( java )
+	${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
+
+	# This patch is needed to avoid automagic detection based on a hardcoded
+	# list of Pythons in configure. It's necessary but not sufficient
+	# (see the rest of the ebuild's logic for the remainder) to handle
+	# proper Python selection.
+	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
+
+	# 865361
+	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
+
+	"${FILESDIR}"/${PN}-7.0.0-fix-compilation.patch
+	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
+	"${FILESDIR}"/${PN}-7.0.0-python3_11.patch
+
+	# Downloaded patchset
+	"${WORKDIR}"/virtualbox-patches-6.1.36/patches
+)
+
+pkg_pretend() {
+	if ! use headless && ! use qt5; then
+		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
+	elif use headless && use qt5; then
+		einfo "You selected USE=\"headless qt5\", defaulting to"
+		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
+	fi
+
+	if ! use opengl; then
+		einfo "No USE=\"opengl\" selected, this build will lack"
+		einfo "the OpenGL feature."
+	fi
+	if ! use python; then
+		einfo "You have disabled the \"python\" USE flag. This will only"
+		einfo "disable the python bindings being installed."
+	fi
+
+	# 749273
+	local d=${ROOT}
+	for i in usr "$(get_libdir)"; do
+		d="${d}/$i"
+		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+			die "${d} should be owned by root, VirtualBox will not start otherwise"
+		fi
+	done
+}
+
+pkg_setup() {
+	java-pkg-opt-2_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	# Only add nopie patch when we're on hardened
+	if gcc-specs-pie; then
+		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+	fi
+
+	# Only add paxmark patch when we're on pax-kernel
+	if use pax-kernel; then
+		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
+	fi
+
+	# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+	rm -r kBuild/bin || die
+	# Remove everything in tools except kBuildUnits
+	find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+	# Disable things unused or split into separate ebuilds
+	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+	if ! use pch; then
+		# bug #753323
+		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+			>> LocalConfig.kmk || die
+	fi
+
+	# Respect LDFLAGS
+	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+	# Do not use hard-coded ld (related to bug #488176)
+	sed -e '/QUIET)ld /s@ld @$(LD) @' \
+		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+	# Use PAM only when pam USE flag is enbaled (bug #376531)
+	if ! use pam; then
+		einfo "Disabling PAM removes the possibility to use the VRDP features."
+		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+			src/VBox/HostServices/Makefile.kmk || die
+	fi
+
+	# add correct java path
+	if use java; then
+		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+			-i "${S}"/Config.kmk || die
+		java-pkg-opt-2_src_prepare
+	fi
+
+	#856811 #864274
+	# cannot filter out only one flag, some combinations of these flags produce buggy executables
+	for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+		append-cflags $(test-flags-CC -mno-$i)
+		append-cxxflags $(test-flags-CXX -mno-$i)
+	done
+
+	# bug #843437
+	cat >> LocalConfig.kmk <<-EOF || die
+		CXXFLAGS=${CXXFLAGS}
+		CFLAGS=${CFLAGS}
+	EOF
+
+	if use sdl; then
+		echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+	fi
+
+	# clang assembler chokes on comments starting with /
+	if tc-is-clang; then
+		sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+	fi
+
+	# fix doc generation
+	echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+	# replace xhtml names with numeric equivalents
+	find doc/manual -name \*.xml -exec sed -i \
+		-e 's/&nbsp;/\&#160;/g' \
+		-e 's/&ndash;/\&#8211;/g' \
+		-e 's/&larr;/\&#8592;/g' \
+		-e 's/&rarr;/\&#8594;/g' \
+		-e 's/&harr;/\&#8596;/g' {} \+ || die
+}
+
+src_configure() {
+	tc-ld-disable-gold # bug #488176
+
+	tc-export AR CC CXX LD RANLIB
+	export HOST_CC="$(tc-getBUILD_CC)"
+
+	local myconf=(
+		--with-gcc="$(tc-getCC)"
+		--with-g++="$(tc-getCXX)"
+
+		--disable-kmods
+
+		$(usex alsa '' --disable-alsa)
+		$(usex dbus '' --disable-dbus)
+		$(usex debug --build-debug '')
+		$(usex doc '' --disable-docs)
+		$(usex java '' --disable-java)
+		$(usex lvm '' --disable-devmapper)
+		$(usex opus '' --disable-libopus)
+		$(usex pulseaudio '' --disable-pulse)
+		$(usex python '' --disable-python)
+		$(usex vboxwebsrv --enable-webservice '')
+		$(usex vnc --enable-vnc '')
+	)
+
+	if ! use headless; then
+		myconf+=(
+			$(usex opengl '' --disable-opengl)
+			$(usex qt5 '' --disable-qt)
+			$(usex sdl '' --disable-sdl)
+		)
+	else
+		myconf+=(
+			--build-headless
+			--disable-opengl
+		)
+	fi
+
+	if use amd64 && ! has_multilib_profile; then
+		myconf+=( --disable-vmmraw )
+	fi
+
+	# not an autoconf script
+	edo ./configure "${myconf[@]}"
+
+	# Force usage of chosen Python implementation
+	# bug #856121, bug #785835
+	sed -i \
+		-e '/VBOX_WITH_PYTHON.*=/d' \
+		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
+		-e '/VBOX_LIB_PYTHON.*=/d' \
+		AutoConfig.kmk || die
+
+	cat >> AutoConfig.kmk <<-EOF || die
+		VBOX_WITH_PYTHON=$(usev python 1)
+		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+		VBOX_LIB_PYTHON=$(python_get_library_path)
+	EOF
+
+	if use python; then
+		local mangled_python="${EPYTHON#python}"
+		mangled_python="${mangled_python/.}"
+
+		# Stub out the script which defines what the Makefile ends up
+		# building for. gen_python_deps.py gets called by the Makefile
+		# with some args and it spits out a bunch of paths for a hardcoded
+		# list of Pythons. We just override it with what we're actually using.
+		# This minimises the amount of patching we have to do for new Pythons.
+		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+		EOF
+
+		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+	fi
+}
+
+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_WITH_VBOXIMGMOUNT=1
+
+		KBUILD_VERBOSE=2
+
+		AS="$(tc-getCC)"
+		CC="$(tc-getCC)"
+		CXX="$(tc-getCXX)"
+
+		TOOL_GCC3_CC="$(tc-getCC)"
+		TOOL_GCC3_LD="$(tc-getCC)"
+		TOOL_GCC3_AS="$(tc-getCC)"
+		TOOL_GCC3_AR="$(tc-getAR)"
+		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+		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_GCC3_CFLAGS="${CFLAGS}"
+		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+		VBOX_GCC_OPT="${CXXFLAGS}"
+		VBOX_NM="$(tc-getNM)"
+
+		TOOL_YASM_AS=yasm
+	)
+
+	if use amd64 && has_multilib_profile; then
+		myemakeargs+=(
+			CC32="$(tc-getCC) -m32"
+			CXX32="$(tc-getCXX) -m32"
+
+			TOOL_GCC32_CC="$(tc-getCC) -m32"
+			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+			TOOL_GCC32_LD="$(tc-getCC) -m32"
+			TOOL_GCC32_AS="$(tc-getCC) -m32"
+			TOOL_GCC32_AR="$(tc-getAR)"
+			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+			TOOL_GXX32_CC="$(tc-getCC) -m32"
+			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+			TOOL_GXX32_LD="$(tc-getCXX) -m32"
+			TOOL_GXX32_AS="$(tc-getCXX) -m32"
+			TOOL_GXX32_AR="$(tc-getAR)"
+			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+		)
+	fi
+
+	MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+	vbox_inst() {
+		local binary="${1}"
+		local perms="${2:-0750}"
+		local path="${3:-${vbox_inst_path}}"
+
+		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+		insinto ${path}
+		doins ${binary}
+		fowners root:vboxusers ${path}/${binary}
+		fperms ${perms} ${path}/${binary}
+	}
+
+	# Create configuration files
+	insinto /etc/vbox
+	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+	# Set the correct libdir
+	sed \
+		-e "s@MY_LIBDIR@$(get_libdir)@" \
+		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+	# Install the wrapper script
+	exeinto ${vbox_inst_path}
+	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+	fowners root:vboxusers ${vbox_inst_path}/VBox
+	fperms 0750 ${vbox_inst_path}/VBox
+
+	# Install binaries and libraries
+	insinto ${vbox_inst_path}
+	doins -r components
+
+	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0; do
+		vbox_inst ${each}
+	done
+
+	# These binaries need to be suid root.
+	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+		vbox_inst ${each} 4750
+	done
+
+	# Install EFI Firmware files (bug #320757)
+	for each in VBoxEFI{32,64}.fd ; do
+		vbox_inst ${each} 0644
+	done
+
+	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+	# VBoxXPCOMIPCD (bug #524202)
+	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+		pax-mark -m "${ED}"${vbox_inst_path}/${each}
+	done
+
+	# Symlink binaries to the shipped wrapper
+	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+	done
+	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+
+	if use pam; then
+		# VRDPAuth only works with this (bug #351949)
+		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+	fi
+
+	# set an env-variable for 3rd party tools
+	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	doenvd "${T}/90virtualbox"
+
+	if ! use headless; then
+		if use sdl; then
+			vbox_inst VBoxSDL 4750
+			pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+			for each in vboxsdl VBoxSDL ; do
+				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+			done
+		fi
+
+		if use qt5; then
+			vbox_inst VirtualBox
+			vbox_inst VirtualBoxVM 4750
+			for each in VirtualBox{,VM} ; do
+				pax-mark -m "${ED}"${vbox_inst_path}/${each}
+			done
+
+			if use opengl; then
+				vbox_inst VBoxTestOGL
+				pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+			fi
+
+			for each in virtualbox{,vm} VirtualBox{,VM} ; do
+				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+			done
+
+			insinto /usr/share/${PN}
+			doins -r nls
+			doins -r UnattendedTemplates
+
+			domenu ${PN}.desktop
+		fi
+
+		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+		for size in 16 32 48 64 128 ; do
+			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+		done
+		newicon ${PN}-48px.png ${PN}.png
+		doicon -s scalable ${PN}.svg
+		popd &>/dev/null || die
+		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+		for size in 16 24 32 48 64 72 96 128 256 512 ; do
+			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+				icofile="${PN}-${ico}-${size}px.png"
+				if [[ -f "${icofile}" ]]; then
+					newicon -s ${size} ${icofile} ${PN}-${ico}.png
+				fi
+			done
+		done
+		popd &>/dev/null || die
+	fi
+
+	if use lvm; then
+		vbox_inst VBoxVolInfo 4750
+		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+	fi
+
+	if use sdk; then
+		insinto ${vbox_inst_path}
+		doins -r sdk
+
+		if use java; then
+			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+		fi
+	fi
+
+	if use udev; then
+		local udevdir="$(get_udevdir)"
+		local udev_file="VBoxCreateUSBNode.sh"
+		local rules_file="10-virtualbox.rules"
+
+		insinto ${udevdir}
+		doins ${udev_file}
+		fowners root:vboxusers ${udevdir}/${udev_file}
+		fperms 0750 ${udevdir}/${udev_file}
+
+		insinto ${udevdir}/rules.d
+		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+			> "${T}"/${rules_file} || die
+		doins "${T}"/${rules_file}
+	fi
+
+	if use vboxwebsrv; then
+		vbox_inst vboxwebsrv
+		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+	fi
+
+	# Remove dead symlinks (bug #715338)
+	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+	# Fix version string in extensions or else they don't get accepted
+	# by the virtualbox host process (see bug #438930)
+	find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+	if use vnc; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/VNC
+	fi
+
+	if use dtrace; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+	fi
+
+	if use doc; then
+		dodoc UserManual.pdf
+	fi
+
+	if use python; then
+		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+		if [[ ! -x "${python_path_ext}" ]]; then
+			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+			eerror "but none were installed. This may happen if support for a Python target"
+			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+		fi
+	fi
+
+	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use udev; then
+		udev_reload
+		udevadm trigger --subsystem-match=usb
+	fi
+
+	tmpfiles_process virtualbox-vboxusb.conf
+
+	if ! use headless && use qt5; then
+		elog "To launch VirtualBox just type: \"virtualbox\"."
+	fi
+
+	elog "You must be in the vboxusers group to use VirtualBox."
+	elog ""
+	elog "The latest user manual is available for download at:"
+	elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+	elog ""
+
+	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+	if ! use udev; then
+		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+	fi
+}
+
+pkg_postrm() {
+	xdg_pkg_postrm
+
+	use udev && udev_reload
+}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2022-11-20  8:20 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2022-11-20  8:20 UTC (permalink / raw
  To: gentoo-commits

commit:     b61b9f265ffdba5cb6bef51d49a86c2e077416c2
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Tue Nov  8 17:36:37 2022 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sun Nov 20 08:16:37 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b61b9f26

app-emulation/virtualbox: add 7.0.4

Add vbox-img, a tool that comes with virtualbox but was not being compiled

Closes: https://bugs.gentoo.org/443830
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   1 +
 .../files/virtualbox-7.0.4-fix-compilation.patch   |  26 +
 app-emulation/virtualbox/virtualbox-7.0.4.ebuild   | 689 +++++++++++++++++++++
 3 files changed, 716 insertions(+)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index a5e8f21a51a9..08d4525a0370 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,3 +1,4 @@
 DIST VirtualBox-6.1.40.tar.bz2 165769795 BLAKE2B 5c216f23422be3fc4f7760881c666c57a516d12726ed8ef040bbdf918f1af53c69d204b22949e25f751cbe788b00c810c49c27b7c51c1837fd1c503a3eff202c SHA512 0dace071fe58500d0912fe4da4751de6840752375039554a56c8c753a0880a419c4a1ed7f1b0ebc51230f7099ca3f5d987dc7b91ad4d98dbd75bf63e3c27e096
 DIST VirtualBox-7.0.2.tar.bz2 199461536 BLAKE2B 94f7c2961c13530b6086bf4576f243b5b260f43ec445c8a2e411205989a9db229715502f2b76b8f3cb45a49ff565410701be90f1e850f069aae5579c0796b503 SHA512 c79d6365f83e1fde356a7f4a6ccd23bc7306d1b5b4be669634c575f08ba53338caca684758c9409ecef2b05ab6f9ad37dfa6075ad6afbc5d7909d46ee6794927
+DIST VirtualBox-7.0.4.tar.bz2 199658172 BLAKE2B 51bde109805e8f3e25f179a05fac532de7a428010955c7cc2a7c9e8c072246d69c5f51f8a51e39b6a1b9f246bd945edc38e0f0cc0630c357a5e9641c38dcac21 SHA512 70f2031c4897249177131795281bf6bd5a75166067d1921db70fd1e21f5638285b5a0c3298a7070e272ac2f093a60c35eb3cab4e5f7d16a68d17b211f637b0bc
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.4-fix-compilation.patch b/app-emulation/virtualbox/files/virtualbox-7.0.4-fix-compilation.patch
new file mode 100644
index 000000000000..4452d22fdfd2
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.4-fix-compilation.patch
@@ -0,0 +1,26 @@
+Fix compilation if VBOX_WITH_AUDIO_OSS is defined while VBOX_WITH_AUDIO_PULSE and VBOX_WITH_AUDIO_ALSA are not
+
+--- a/src/VBox/Main/xml/Settings.cpp
++++ b/src/VBox/Main/xml/Settings.cpp
+@@ -8931,6 +8931,9 @@
+     RTCLock lock(s_mtx);
+     if (s_enmLinuxDriver == AudioDriverType_Null)
+     {
++# ifdef VBOX_WITH_AUDIO_OSS
++	s_enmLinuxDriver = AudioDriverType_OSS;
++# endif /* VBOX_WITH_AUDIO_OSS */
+ # ifdef VBOX_WITH_AUDIO_PULSE
+         /* Check for the pulse library & that the pulse audio daemon is running. */
+         if (RTProcIsRunningByName("pulseaudio") &&
+@@ -8943,10 +8946,7 @@
+              if (RTLdrIsLoadable("libasound.so.2"))
+                 s_enmLinuxDriver = AudioDriverType_ALSA;
+ # endif /* VBOX_WITH_AUDIO_ALSA */
+-# ifdef VBOX_WITH_AUDIO_OSS
+-             else
+-                s_enmLinuxDriver = AudioDriverType_OSS;
+-# endif /* VBOX_WITH_AUDIO_OSS */
++	;
+     }
+     return s_enmLinuxDriver;
+ 

diff --git a/app-emulation/virtualbox/virtualbox-7.0.4.ebuild b/app-emulation/virtualbox/virtualbox-7.0.4.ebuild
new file mode 100644
index 000000000000..52822b428dc3
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.4.ebuild
@@ -0,0 +1,689 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+#    Do NOT skip this part. It'll end up silently not-building the Python extension
+#    or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
+#  Python versions as upstream tends to lag. Upstream may have patches on their
+#  trunk branch but not release branch.
+#
+#  See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{8..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+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-6.1.36.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa dbus debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+	${PYTHON_DEPS}
+	acct-group/vboxusers
+	~app-emulation/virtualbox-modules-${PV}
+	dev-libs/libxml2
+	dev-libs/openssl:0=
+	media-libs/libpng:0=
+	media-libs/libvpx:0=
+	net-misc/curl
+	sys-libs/zlib
+	dbus? ( sys-apps/dbus )
+	!headless? (
+		x11-libs/libX11
+		x11-libs/libXt
+		opengl? (
+			media-libs/libglvnd[X]
+		)
+		qt5? (
+			dev-qt/qtcore:5
+			dev-qt/qtdbus:5
+			dev-qt/qtgui:5
+			dev-qt/qthelp:5
+			dev-qt/qtprintsupport:5
+			dev-qt/qtwidgets:5
+			dev-qt/qtx11extras:5
+			dev-qt/qtxml:5
+			opengl? ( dev-qt/qtopengl:5 )
+		)
+		sdl? (
+			media-libs/libsdl:0[X,video]
+			x11-libs/libXcursor
+		)
+	)
+	lvm? ( sys-fs/lvm2 )
+	pam? ( sys-libs/pam )
+	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
+	vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+	${COMMON_DEPEND}
+	>=dev-libs/libxslt-1.1.19
+	virtual/libcrypt:=
+	alsa? ( >=media-libs/alsa-lib-1.0.13 )
+	opengl? ( virtual/glu )
+	!headless? (
+		x11-libs/libXcursor
+		x11-libs/libXext
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libxcb:=
+		x11-libs/libXrandr
+		opengl? ( virtual/opengl )
+	)
+	java? ( virtual/jdk:1.8 )
+	opus? ( media-libs/opus )
+	pax-kernel? ( sys-apps/elfix )
+	pulseaudio? ( media-sound/pulseaudio )
+	qt5? ( x11-libs/libXinerama )
+	udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	java? ( virtual/jre:1.8 )
+	qt5? ( x11-libs/libxcb:= )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	>=dev-lang/yasm-0.6.2
+	dev-libs/libIDL
+	dev-qt/linguist-tools:5
+	dev-util/glslang
+	>=dev-util/kbuild-0.1.9998.3127
+	sys-apps/which
+	sys-devel/bin86
+	sys-libs/libcap
+	sys-power/iasl
+	virtual/pkgconfig
+	doc? (
+		app-text/docbook-sgml-dtd:4.4
+		app-text/docbook-xsl-ns-stylesheets
+		dev-texlive/texlive-basic
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexrecommended
+		dev-texlive/texlive-latexextra
+		dev-texlive/texlive-fontsrecommended
+		dev-texlive/texlive-fontsextra
+	)
+	java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+	usr/lib64/virtualbox/iPxeBaseBin
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+	usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+	java? ( sdk )
+	python? ( sdk )
+	vboxwebsrv? ( java )
+	${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
+
+	# This patch is needed to avoid automagic detection based on a hardcoded
+	# list of Pythons in configure. It's necessary but not sufficient
+	# (see the rest of the ebuild's logic for the remainder) to handle
+	# proper Python selection.
+	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
+
+	# 865361
+	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
+
+	"${FILESDIR}"/${PN}-7.0.4-fix-compilation.patch
+	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
+	"${FILESDIR}"/${PN}-7.0.0-python3_11.patch
+
+	# Downloaded patchset
+	"${WORKDIR}"/virtualbox-patches-6.1.36/patches
+)
+
+pkg_pretend() {
+	if ! use headless && ! use qt5; then
+		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
+	elif use headless && use qt5; then
+		einfo "You selected USE=\"headless qt5\", defaulting to"
+		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
+	fi
+
+	if ! use opengl; then
+		einfo "No USE=\"opengl\" selected, this build will lack"
+		einfo "the OpenGL feature."
+	fi
+	if ! use python; then
+		einfo "You have disabled the \"python\" USE flag. This will only"
+		einfo "disable the python bindings being installed."
+	fi
+
+	# 749273
+	local d=${ROOT}
+	for i in usr "$(get_libdir)"; do
+		d="${d}/$i"
+		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+			die "${d} should be owned by root, VirtualBox will not start otherwise"
+		fi
+	done
+}
+
+pkg_setup() {
+	java-pkg-opt-2_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	# Only add nopie patch when we're on hardened
+	if gcc-specs-pie; then
+		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+	fi
+
+	# Only add paxmark patch when we're on pax-kernel
+	if use pax-kernel; then
+		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
+	fi
+
+	# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+	rm -r kBuild/bin || die
+	# Remove everything in tools except kBuildUnits
+	find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+	# Disable things unused or split into separate ebuilds
+	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+	if ! use pch; then
+		# bug #753323
+		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+			>> LocalConfig.kmk || die
+	fi
+
+	# Respect LDFLAGS
+	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+	# Do not use hard-coded ld (related to bug #488176)
+	sed -e '/QUIET)ld /s@ld @$(LD) @' \
+		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+	# Use PAM only when pam USE flag is enbaled (bug #376531)
+	if ! use pam; then
+		einfo "Disabling PAM removes the possibility to use the VRDP features."
+		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+			src/VBox/HostServices/Makefile.kmk || die
+	fi
+
+	# add correct java path
+	if use java; then
+		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+			-i "${S}"/Config.kmk || die
+		java-pkg-opt-2_src_prepare
+	fi
+
+	#856811 #864274
+	# cannot filter out only one flag, some combinations of these flags produce buggy executables
+	for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+		append-cflags $(test-flags-CC -mno-$i)
+		append-cxxflags $(test-flags-CXX -mno-$i)
+	done
+
+	# bug #843437
+	cat >> LocalConfig.kmk <<-EOF || die
+		CXXFLAGS=${CXXFLAGS}
+		CFLAGS=${CFLAGS}
+	EOF
+
+	if use sdl; then
+		echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+	fi
+
+	#443830
+	echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+	# clang assembler chokes on comments starting with /
+	if tc-is-clang; then
+		sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+	fi
+
+	# fix doc generation
+	echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+	# replace xhtml names with numeric equivalents
+	find doc/manual -name \*.xml -exec sed -i \
+		-e 's/&nbsp;/\&#160;/g' \
+		-e 's/&ndash;/\&#8211;/g' \
+		-e 's/&larr;/\&#8592;/g' \
+		-e 's/&rarr;/\&#8594;/g' \
+		-e 's/&harr;/\&#8596;/g' {} \+ || die
+}
+
+src_configure() {
+	tc-ld-disable-gold # bug #488176
+
+	tc-export AR CC CXX LD RANLIB
+	export HOST_CC="$(tc-getBUILD_CC)"
+
+	local myconf=(
+		--with-gcc="$(tc-getCC)"
+		--with-g++="$(tc-getCXX)"
+
+		--disable-kmods
+
+		$(usex alsa '' --disable-alsa)
+		$(usex dbus '' --disable-dbus)
+		$(usex debug --build-debug '')
+		$(usex doc '' --disable-docs)
+		$(usex java '' --disable-java)
+		$(usex lvm '' --disable-devmapper)
+		$(usex opus '' --disable-libopus)
+		$(usex pulseaudio '' --disable-pulse)
+		$(usex python '' --disable-python)
+		$(usex vboxwebsrv --enable-webservice '')
+		$(usex vnc --enable-vnc '')
+	)
+
+	if ! use headless; then
+		myconf+=(
+			$(usex opengl '' --disable-opengl)
+			$(usex qt5 '' --disable-qt)
+			$(usex sdl '' --disable-sdl)
+		)
+	else
+		myconf+=(
+			--build-headless
+			--disable-opengl
+		)
+	fi
+
+	if use amd64 && ! has_multilib_profile; then
+		myconf+=( --disable-vmmraw )
+	fi
+
+	# not an autoconf script
+	edo ./configure "${myconf[@]}"
+
+	# Force usage of chosen Python implementation
+	# bug #856121, bug #785835
+	sed -i \
+		-e '/VBOX_WITH_PYTHON.*=/d' \
+		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
+		-e '/VBOX_LIB_PYTHON.*=/d' \
+		AutoConfig.kmk || die
+
+	cat >> AutoConfig.kmk <<-EOF || die
+		VBOX_WITH_PYTHON=$(usev python 1)
+		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+		VBOX_LIB_PYTHON=$(python_get_library_path)
+	EOF
+
+	if use python; then
+		local mangled_python="${EPYTHON#python}"
+		mangled_python="${mangled_python/.}"
+
+		# Stub out the script which defines what the Makefile ends up
+		# building for. gen_python_deps.py gets called by the Makefile
+		# with some args and it spits out a bunch of paths for a hardcoded
+		# list of Pythons. We just override it with what we're actually using.
+		# This minimises the amount of patching we have to do for new Pythons.
+		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+		EOF
+
+		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+	fi
+}
+
+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_WITH_VBOXIMGMOUNT=1
+
+		KBUILD_VERBOSE=2
+
+		AS="$(tc-getCC)"
+		CC="$(tc-getCC)"
+		CXX="$(tc-getCXX)"
+
+		TOOL_GCC3_CC="$(tc-getCC)"
+		TOOL_GCC3_LD="$(tc-getCC)"
+		TOOL_GCC3_AS="$(tc-getCC)"
+		TOOL_GCC3_AR="$(tc-getAR)"
+		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+		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_GCC3_CFLAGS="${CFLAGS}"
+		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+		VBOX_GCC_OPT="${CXXFLAGS}"
+		VBOX_NM="$(tc-getNM)"
+
+		TOOL_YASM_AS=yasm
+	)
+
+	if use amd64 && has_multilib_profile; then
+		myemakeargs+=(
+			CC32="$(tc-getCC) -m32"
+			CXX32="$(tc-getCXX) -m32"
+
+			TOOL_GCC32_CC="$(tc-getCC) -m32"
+			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+			TOOL_GCC32_LD="$(tc-getCC) -m32"
+			TOOL_GCC32_AS="$(tc-getCC) -m32"
+			TOOL_GCC32_AR="$(tc-getAR)"
+			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+			TOOL_GXX32_CC="$(tc-getCC) -m32"
+			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+			TOOL_GXX32_LD="$(tc-getCXX) -m32"
+			TOOL_GXX32_AS="$(tc-getCXX) -m32"
+			TOOL_GXX32_AR="$(tc-getAR)"
+			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+		)
+	fi
+
+	MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+	vbox_inst() {
+		local binary="${1}"
+		local perms="${2:-0750}"
+		local path="${3:-${vbox_inst_path}}"
+
+		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+		insinto ${path}
+		doins ${binary}
+		fowners root:vboxusers ${path}/${binary}
+		fperms ${perms} ${path}/${binary}
+	}
+
+	# Create configuration files
+	insinto /etc/vbox
+	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+	# Set the correct libdir
+	sed \
+		-e "s@MY_LIBDIR@$(get_libdir)@" \
+		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+	# Install the wrapper script
+	exeinto ${vbox_inst_path}
+	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+	fowners root:vboxusers ${vbox_inst_path}/VBox
+	fperms 0750 ${vbox_inst_path}/VBox
+
+	# Install binaries and libraries
+	insinto ${vbox_inst_path}
+	doins -r components
+
+	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} vboximg-mount vbox-img *so *r0; do
+		vbox_inst ${each}
+	done
+
+	# These binaries need to be suid root.
+	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+		vbox_inst ${each} 4750
+	done
+
+	# Install EFI Firmware files (bug #320757)
+	for each in VBoxEFI{32,64}.fd ; do
+		vbox_inst ${each} 0644
+	done
+
+	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+	# VBoxXPCOMIPCD (bug #524202)
+	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+		pax-mark -m "${ED}"${vbox_inst_path}/${each}
+	done
+
+	# Symlink binaries to the shipped wrapper
+	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+	done
+	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+	dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+	if use pam; then
+		# VRDPAuth only works with this (bug #351949)
+		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+	fi
+
+	# set an env-variable for 3rd party tools
+	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	doenvd "${T}/90virtualbox"
+
+	if ! use headless; then
+		if use sdl; then
+			vbox_inst VBoxSDL 4750
+			pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+			for each in vboxsdl VBoxSDL ; do
+				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+			done
+		fi
+
+		if use qt5; then
+			vbox_inst VirtualBox
+			vbox_inst VirtualBoxVM 4750
+			for each in VirtualBox{,VM} ; do
+				pax-mark -m "${ED}"${vbox_inst_path}/${each}
+			done
+
+			if use opengl; then
+				vbox_inst VBoxTestOGL
+				pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+			fi
+
+			for each in virtualbox{,vm} VirtualBox{,VM} ; do
+				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+			done
+
+			insinto /usr/share/${PN}
+			doins -r nls
+			doins -r UnattendedTemplates
+
+			domenu ${PN}.desktop
+		fi
+
+		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+		for size in 16 32 48 64 128 ; do
+			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+		done
+		newicon ${PN}-48px.png ${PN}.png
+		doicon -s scalable ${PN}.svg
+		popd &>/dev/null || die
+		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+		for size in 16 24 32 48 64 72 96 128 256 512 ; do
+			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+				icofile="${PN}-${ico}-${size}px.png"
+				if [[ -f "${icofile}" ]]; then
+					newicon -s ${size} ${icofile} ${PN}-${ico}.png
+				fi
+			done
+		done
+		popd &>/dev/null || die
+	fi
+
+	if use lvm; then
+		vbox_inst VBoxVolInfo 4750
+		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+	fi
+
+	if use sdk; then
+		insinto ${vbox_inst_path}
+		doins -r sdk
+
+		if use java; then
+			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+		fi
+	fi
+
+	if use udev; then
+		local udevdir="$(get_udevdir)"
+		local udev_file="VBoxCreateUSBNode.sh"
+		local rules_file="10-virtualbox.rules"
+
+		insinto ${udevdir}
+		doins ${udev_file}
+		fowners root:vboxusers ${udevdir}/${udev_file}
+		fperms 0750 ${udevdir}/${udev_file}
+
+		insinto ${udevdir}/rules.d
+		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+			> "${T}"/${rules_file} || die
+		doins "${T}"/${rules_file}
+	fi
+
+	if use vboxwebsrv; then
+		vbox_inst vboxwebsrv
+		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+	fi
+
+	# Remove dead symlinks (bug #715338)
+	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+	# Fix version string in extensions or else they don't get accepted
+	# by the virtualbox host process (see bug #438930)
+	find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+	if use vnc; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/VNC
+	fi
+
+	if use dtrace; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+	fi
+
+	if use doc; then
+		dodoc UserManual.pdf
+	fi
+
+	if use python; then
+		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+		if [[ ! -x "${python_path_ext}" ]]; then
+			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+			eerror "but none were installed. This may happen if support for a Python target"
+			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+		fi
+	fi
+
+	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use udev; then
+		udev_reload
+		udevadm trigger --subsystem-match=usb
+	fi
+
+	tmpfiles_process virtualbox-vboxusb.conf
+
+	if ! use headless && use qt5; then
+		elog "To launch VirtualBox just type: \"virtualbox\"."
+	fi
+
+	elog "You must be in the vboxusers group to use VirtualBox."
+	elog ""
+	elog "The latest user manual is available for download at:"
+	elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+	elog ""
+
+	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+	if ! use udev; then
+		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+	fi
+}
+
+pkg_postrm() {
+	xdg_pkg_postrm
+
+	use udev && udev_reload
+}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2023-02-03 14:35 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2023-02-03 14:35 UTC (permalink / raw
  To: gentoo-commits

commit:     f3b1410434e67de1ebc9a62718240b4879dbe050
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  3 12:56:48 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Fri Feb  3 14:34:03 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f3b14104

app-emulation/virtualbox: fix compilation with gcc-13

Closes: https://bugs.gentoo.org/892852
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 .../virtualbox/files/virtualbox-7.0.6-gcc-13.patch |  28 +
 .../virtualbox/virtualbox-7.0.6-r2.ebuild          | 728 +++++++++++++++++++++
 2 files changed, 756 insertions(+)

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.6-gcc-13.patch b/app-emulation/virtualbox/files/virtualbox-7.0.6-gcc-13.patch
new file mode 100644
index 000000000000..ed3a2d02fbc0
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.6-gcc-13.patch
@@ -0,0 +1,28 @@
+Add a few missing includes.
+
+Bug: https://bugs.gentoo.org/892852
+
+--- a/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
++++ b/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
+@@ -1,3 +1,4 @@
++#include <cstdint>
+ #include "util_matrix.h"
+ 
+ namespace dxvk {
+@@ -229,4 +230,4 @@
+     return os;
+   }
+ 
+-}
+\ No newline at end of file
++}
+--- a/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
++++ b/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
+@@ -1,6 +1,7 @@
+ #pragma once
+ 
+ #include <iostream>
++#include <cstdint>
+ 
+ #include "util_bit.h"
+ #include "util_math.h"

diff --git a/app-emulation/virtualbox/virtualbox-7.0.6-r2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.6-r2.ebuild
new file mode 100644
index 000000000000..03eb7240d866
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.6-r2.ebuild
@@ -0,0 +1,728 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+#    Do NOT skip this part. It'll end up silently not-building the Python extension
+#    or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
+#  Python versions as upstream tends to lag. Upstream may have patches on their
+#  trunk branch but not release branch.
+#
+#  See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+	python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+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-6.1.36.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+	${PYTHON_DEPS}
+	acct-group/vboxusers
+	~app-emulation/virtualbox-modules-${PV}
+	dev-libs/libtpms
+	dev-libs/libxml2
+	dev-libs/openssl:0=
+	media-libs/libpng:0=
+	media-libs/libvpx:0=
+	net-misc/curl
+	sys-libs/zlib
+	dbus? ( sys-apps/dbus )
+	gui? (
+		dev-qt/qtcore:5
+		dev-qt/qtdbus:5
+		dev-qt/qtgui:5
+		dev-qt/qthelp:5
+		dev-qt/qtprintsupport:5
+		dev-qt/qtwidgets:5
+		dev-qt/qtx11extras:5
+		dev-qt/qtxml:5
+		x11-libs/libX11
+		x11-libs/libXt
+		opengl? ( dev-qt/qtopengl:5 )
+	)
+	lvm? ( sys-fs/lvm2 )
+	opengl? (
+		media-libs/libglvnd[X]
+		media-libs/vulkan-loader
+		x11-libs/libX11
+		x11-libs/libXt
+	)
+	pam? ( sys-libs/pam )
+	sdl? (
+		media-libs/libsdl:0[X,video]
+		x11-libs/libX11
+		x11-libs/libXcursor
+		x11-libs/libXt
+	)
+	vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+	vde? ( net-misc/vde )
+	vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+	${COMMON_DEPEND}
+	>=dev-libs/libxslt-1.1.19
+	virtual/libcrypt:=
+	alsa? ( >=media-libs/alsa-lib-1.0.13 )
+	gui? (
+		x11-base/xorg-proto
+		x11-libs/libxcb:=
+		x11-libs/libXcursor
+		x11-libs/libXext
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libXrandr
+	)
+	java? ( virtual/jdk:1.8 )
+	opengl? (
+		x11-base/xorg-proto
+		x11-libs/libXcursor
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libXrandr
+		virtual/glu
+	)
+	sdl? ( x11-libs/libXinerama )
+	pulseaudio? ( media-sound/pulseaudio )
+	udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	gui? ( x11-libs/libxcb:= )
+	java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	app-arch/tar
+	>=dev-lang/yasm-0.6.2
+	dev-libs/libIDL
+	dev-util/glslang
+	>=dev-util/kbuild-0.1.9998.3127
+	sys-apps/which
+	sys-devel/bin86
+	sys-libs/libcap
+	sys-power/iasl
+	virtual/pkgconfig
+	doc? (
+		app-text/docbook-sgml-dtd:4.4
+		app-text/docbook-xsl-ns-stylesheets
+		dev-texlive/texlive-basic
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexrecommended
+		dev-texlive/texlive-latexextra
+		dev-texlive/texlive-fontsrecommended
+		dev-texlive/texlive-fontsextra
+		dev-qt/qthelp:5
+	)
+	gui? ( dev-qt/linguist-tools:5 )
+	nls? ( dev-qt/linguist-tools:5 )
+	java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+	usr/lib64/virtualbox/iPxeBaseBin
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+	usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+	java? ( sdk )
+	python? ( sdk )
+	vboxwebsrv? ( java )
+	${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
+
+	# This patch is needed to avoid automagic detection based on a hardcoded
+	# list of Pythons in configure. It's necessary but not sufficient
+	# (see the rest of the ebuild's logic for the remainder) to handle
+	# proper Python selection.
+	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
+
+	# 865361
+	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
+
+	"${FILESDIR}"/${PN}-7.0.4-fix-compilation.patch
+	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
+	"${FILESDIR}"/${PN}-7.0.0-python3_11.patch
+	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
+
+	# Downloaded patchset
+	"${WORKDIR}"/virtualbox-patches-6.1.36/patches
+)
+
+pkg_pretend() {
+	if ! use gui; then
+		einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+	fi
+
+	if ! use opengl; then
+		einfo "No USE=\"opengl\" selected, this build will lack"
+		einfo "the OpenGL feature."
+	fi
+	if ! use python; then
+		einfo "You have disabled the \"python\" USE flag. This will only"
+		einfo "disable the python bindings being installed."
+	fi
+	if ! use nls && use gui; then
+		einfo "USE=\"gui\" also selects USE=\"nls\".  This build"
+		einfo "will have NLS support."
+	fi
+
+	if use gui && ! use doc; then
+		einfo "You have disabled the \"doc\" USE flag.  Built-in help"
+		einfo "will not be available."
+	fi
+
+	# 749273
+	local d=${ROOT}
+	for i in usr "$(get_libdir)"; do
+		d="${d}/$i"
+		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+			die "${d} should be owned by root, VirtualBox will not start otherwise"
+		fi
+	done
+}
+
+pkg_setup() {
+	java-pkg-opt-2_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	# Only add nopie patch when we're on hardened
+	if gcc-specs-pie; then
+		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+	fi
+
+	# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+	rm -r kBuild/bin || die
+	# Remove everything in tools except kBuildUnits
+	find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+	# Disable things unused or split into separate ebuilds
+	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+	if ! use pch; then
+		# bug #753323
+		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+			>> LocalConfig.kmk || die
+	fi
+
+	# Respect LDFLAGS
+	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+	# Do not use hard-coded ld (related to bug #488176)
+	sed -e '/QUIET)ld /s@ld @$(LD) @' \
+		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+	# Use PAM only when pam USE flag is enbaled (bug #376531)
+	if ! use pam; then
+		einfo "Disabling PAM removes the possibility to use the VRDP features."
+		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+			src/VBox/HostServices/Makefile.kmk || die
+	fi
+
+	# add correct java path
+	if use java; then
+		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+			-i "${S}"/Config.kmk || die
+		java-pkg-opt-2_src_prepare
+	fi
+
+	#856811 #864274
+	# cannot filter out only one flag, some combinations of these flags produce buggy executables
+	for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+		append-cflags $(test-flags-CC -mno-$i)
+		append-cxxflags $(test-flags-CXX -mno-$i)
+	done
+
+	# bug #843437
+	cat >> LocalConfig.kmk <<-EOF || die
+		CXXFLAGS=${CXXFLAGS}
+		CFLAGS=${CFLAGS}
+	EOF
+
+	if use sdl; then
+		echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+	fi
+
+	#443830
+	echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+	# clang assembler chokes on comments starting with /
+	if tc-is-clang; then
+		sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+	fi
+
+	# fix doc generation
+	echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+	# replace xhtml names with numeric equivalents
+	find doc/manual -name \*.xml -exec sed -i \
+		-e 's/&nbsp;/\&#160;/g' \
+		-e 's/&ndash;/\&#8211;/g' \
+		-e 's/&larr;/\&#8592;/g' \
+		-e 's/&rarr;/\&#8594;/g' \
+		-e 's/&harr;/\&#8596;/g' {} \+ || die
+
+	# fix help path #891879
+	echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
+
+	# 489208
+	# Cannot patch the whole text, many translations.  Use sed instead to replace the command
+	find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
+		's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
+	sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
+		src/VBox/Frontends/VirtualBox/src/main.cpp \
+		src/VBox/VMM/VMMR3/VM.cpp || die
+
+	# 890561
+	echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+
+	if ! use nls && ! use gui; then
+		cat >> LocalConfig.kmk <<-EOF || die
+			VBOX_WITH_NLS :=
+			VBOX_WITH_MAIN_NLS :=
+			VBOX_WITH_PUEL_NLS :=
+			VBOX_WITH_VBOXMANAGE_NLS :=
+		EOF
+	fi
+}
+
+src_configure() {
+	tc-ld-disable-gold # bug #488176
+
+	tc-export AR CC CXX LD RANLIB
+	export HOST_CC="$(tc-getBUILD_CC)"
+
+	local myconf=(
+		--with-gcc="$(tc-getCC)"
+		--with-g++="$(tc-getCXX)"
+
+		--disable-kmods
+
+		$(usev !alsa --disable-alsa)
+		$(usev !dbus --disable-dbus)
+		$(usev debug --build-debug)
+		$(usev !doc --disable-docs)
+		$(usev !java --disable-java)
+		$(usev !lvm --disable-devmapper)
+		$(usev !pulseaudio --disable-pulse)
+		$(usev !python --disable-python)
+		$(usev vboxwebsrv --enable-webservice)
+		$(usev vde --enable-vde)
+		$(usev vnc --enable-vnc)
+	)
+
+	if use gui || use sdl || use opengl; then
+		myconf+=(
+			$(usev !opengl --disable-opengl)
+			$(usev !gui --disable-qt)
+			$(usev !sdl --disable-sdl)
+		)
+	else
+		myconf+=(
+			--build-headless
+		)
+	fi
+
+	if use amd64 && ! has_multilib_profile; then
+		myconf+=( --disable-vmmraw )
+	fi
+
+	# not an autoconf script
+	edo ./configure "${myconf[@]}"
+
+	# Force usage of chosen Python implementation
+	# bug #856121, bug #785835
+	sed -i \
+		-e '/VBOX_WITH_PYTHON.*=/d' \
+		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
+		-e '/VBOX_LIB_PYTHON.*=/d' \
+		AutoConfig.kmk || die
+
+	cat >> AutoConfig.kmk <<-EOF || die
+		VBOX_WITH_PYTHON=$(usev python 1)
+		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+		VBOX_LIB_PYTHON=$(python_get_library_path)
+	EOF
+
+	if use python; then
+		local mangled_python="${EPYTHON#python}"
+		mangled_python="${mangled_python/.}"
+
+		# Stub out the script which defines what the Makefile ends up
+		# building for. gen_python_deps.py gets called by the Makefile
+		# with some args and it spits out a bunch of paths for a hardcoded
+		# list of Pythons. We just override it with what we're actually using.
+		# This minimises the amount of patching we have to do for new Pythons.
+		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+		EOF
+
+		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+	fi
+}
+
+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_WITH_VBOXIMGMOUNT=1
+
+		KBUILD_VERBOSE=2
+
+		AS="$(tc-getCC)"
+		CC="$(tc-getCC)"
+		CXX="$(tc-getCXX)"
+
+		TOOL_GCC3_CC="$(tc-getCC)"
+		TOOL_GCC3_LD="$(tc-getCC)"
+		TOOL_GCC3_AS="$(tc-getCC)"
+		TOOL_GCC3_AR="$(tc-getAR)"
+		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+		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_GCC3_CFLAGS="${CFLAGS}"
+		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+		VBOX_GCC_OPT="${CXXFLAGS}"
+		VBOX_NM="$(tc-getNM)"
+
+		TOOL_YASM_AS=yasm
+	)
+
+	if use amd64 && has_multilib_profile; then
+		myemakeargs+=(
+			CC32="$(tc-getCC) -m32"
+			CXX32="$(tc-getCXX) -m32"
+
+			TOOL_GCC32_CC="$(tc-getCC) -m32"
+			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+			TOOL_GCC32_LD="$(tc-getCC) -m32"
+			TOOL_GCC32_AS="$(tc-getCC) -m32"
+			TOOL_GCC32_AR="$(tc-getAR)"
+			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+			TOOL_GXX32_CC="$(tc-getCC) -m32"
+			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+			TOOL_GXX32_LD="$(tc-getCXX) -m32"
+			TOOL_GXX32_AS="$(tc-getCXX) -m32"
+			TOOL_GXX32_AR="$(tc-getAR)"
+			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+		)
+	fi
+
+	MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+	vbox_inst() {
+		local binary="${1}"
+		local perms="${2:-0750}"
+		local path="${3:-${vbox_inst_path}}"
+
+		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+		insinto ${path}
+		doins ${binary}
+		fowners root:vboxusers ${path}/${binary}
+		fperms ${perms} ${path}/${binary}
+	}
+
+	# Create configuration files
+	insinto /etc/vbox
+	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+	# Set the correct libdir
+	sed \
+		-e "s@MY_LIBDIR@$(get_libdir)@" \
+		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+	# Install the wrapper script
+	exeinto ${vbox_inst_path}
+	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+	fowners root:vboxusers ${vbox_inst_path}/VBox
+	fperms 0750 ${vbox_inst_path}/VBox
+
+	# Install binaries and libraries
+	insinto ${vbox_inst_path}
+	doins -r components
+
+	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
+		vboximg-mount vbox-img *so *r0; do
+		vbox_inst ${each}
+	done
+
+	# These binaries need to be suid root.
+	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+		vbox_inst ${each} 4750
+	done
+
+	# Install EFI Firmware files (bug #320757)
+	for each in VBoxEFI{32,64}.fd ; do
+		vbox_inst ${each} 0644
+	done
+
+	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+	# VBoxXPCOMIPCD (bug #524202)
+	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+		pax-mark -m "${ED}"${vbox_inst_path}/${each}
+	done
+
+	# Symlink binaries to the shipped wrapper
+	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+		VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+	done
+	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+	dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+	if use pam; then
+		# VRDPAuth only works with this (bug #351949)
+		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+	fi
+
+	# set an env-variable for 3rd party tools
+	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	doenvd "${T}/90virtualbox"
+
+	if use sdl; then
+		vbox_inst VBoxSDL 4750
+		pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+		for each in vboxsdl VBoxSDL ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+	fi
+
+	if use gui; then
+		vbox_inst VirtualBox
+		vbox_inst VirtualBoxVM 4750
+		for each in VirtualBox{,VM} ; do
+			pax-mark -m "${ED}"${vbox_inst_path}/${each}
+		done
+
+		if use opengl; then
+			vbox_inst VBoxTestOGL
+			pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+		fi
+
+		for each in virtualbox{,vm} VirtualBox{,VM} ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+
+		insinto /usr/share/${PN}
+		doins -r nls
+		doins -r UnattendedTemplates
+
+		domenu ${PN}.desktop
+
+		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+		for size in 16 32 48 64 128 ; do
+			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+		done
+		newicon ${PN}-48px.png ${PN}.png
+		doicon -s scalable ${PN}.svg
+		popd &>/dev/null || die
+		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+		for size in 16 24 32 48 64 72 96 128 256 512 ; do
+			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+				icofile="${PN}-${ico}-${size}px.png"
+				if [[ -f "${icofile}" ]]; then
+					newicon -s ${size} ${icofile} ${PN}-${ico}.png
+				fi
+			done
+		done
+		popd &>/dev/null || die
+	fi
+
+	if use lvm; then
+		vbox_inst VBoxVolInfo 4750
+		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+	fi
+
+	if use sdk; then
+		insinto ${vbox_inst_path}
+		doins -r sdk
+
+		if use java; then
+			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+		fi
+	fi
+
+	if use udev; then
+		local udevdir="$(get_udevdir)"
+		local udev_file="VBoxCreateUSBNode.sh"
+		local rules_file="10-virtualbox.rules"
+
+		insinto ${udevdir}
+		doins ${udev_file}
+		fowners root:vboxusers ${udevdir}/${udev_file}
+		fperms 0750 ${udevdir}/${udev_file}
+
+		insinto ${udevdir}/rules.d
+		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+			> "${T}"/${rules_file} || die
+		doins "${T}"/${rules_file}
+	fi
+
+	if use vboxwebsrv; then
+		vbox_inst vboxwebsrv
+		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+	fi
+
+	# Remove dead symlinks (bug #715338)
+	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+	# Fix version string in extensions or else they don't get accepted
+	# by the virtualbox host process (see bug #438930)
+	find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+	if use vnc; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/VNC
+	fi
+
+	if use dtrace; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+	fi
+
+	if use doc; then
+		dodoc UserManual.pdf UserManual.q{ch,hc}
+		docompress -x /usr/share/doc/${PF}
+	fi
+
+	if use python; then
+		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+		if [[ ! -x "${python_path_ext}" ]]; then
+			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+			eerror "but none were installed. This may happen if support for a Python target"
+			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+		fi
+	fi
+
+	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use udev; then
+		udev_reload
+		udevadm trigger --subsystem-match=usb
+	fi
+
+	tmpfiles_process virtualbox-vboxusb.conf
+
+	if use gui; then
+		elog "To launch VirtualBox just type: \"virtualbox\"."
+	fi
+
+	elog "You must be in the vboxusers group to use VirtualBox."
+	elog ""
+	elog "The latest user manual is available for download at:"
+	elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+	elog ""
+
+	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+	if ! use udev; then
+		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+	fi
+}
+
+pkg_postrm() {
+	xdg_pkg_postrm
+
+	use udev && udev_reload
+}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2023-02-21 15:06 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2023-02-21 15:06 UTC (permalink / raw
  To: gentoo-commits

commit:     ac744a48b5dcacea6daf53e485eedc5daee743b9
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 21 14:22:57 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Tue Feb 21 15:04:23 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac744a48

app-emulation/virtualbox: drop 6.1.40

Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   1 -
 .../files/virtualbox-5.2.8-paxmark-bldprogs.patch  |  59 --
 .../files/virtualbox-6.1.36-python3.10.patch       |  16 -
 app-emulation/virtualbox/virtualbox-6.1.40.ebuild  | 664 ---------------------
 4 files changed, 740 deletions(-)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index 0edef5e7cc6a..bb4db0a837f3 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,4 +1,3 @@
-DIST VirtualBox-6.1.40.tar.bz2 165769795 BLAKE2B 5c216f23422be3fc4f7760881c666c57a516d12726ed8ef040bbdf918f1af53c69d204b22949e25f751cbe788b00c810c49c27b7c51c1837fd1c503a3eff202c SHA512 0dace071fe58500d0912fe4da4751de6840752375039554a56c8c753a0880a419c4a1ed7f1b0ebc51230f7099ca3f5d987dc7b91ad4d98dbd75bf63e3c27e096
 DIST VirtualBox-6.1.42.tar.bz2 165554573 BLAKE2B 8419793d9e4c4d0804baba926443a27259b012ab90d1bb27c8f9d90b018ddbef83d1cc47e9f5b88e6e247f22c186603584a5ddee4b0c04fe842eba56f3fd103a SHA512 a4861b44ee85d6d1d72ba1d19b5598873503feeb6d562cf7d8c770cc9b466741bdfa5abe74dc4e7952ff189d14c6caf60f584731492c38f688a360baba019ab2
 DIST VirtualBox-7.0.4.tar.bz2 199658172 BLAKE2B 51bde109805e8f3e25f179a05fac532de7a428010955c7cc2a7c9e8c072246d69c5f51f8a51e39b6a1b9f246bd945edc38e0f0cc0630c357a5e9641c38dcac21 SHA512 70f2031c4897249177131795281bf6bd5a75166067d1921db70fd1e21f5638285b5a0c3298a7070e272ac2f093a60c35eb3cab4e5f7d16a68d17b211f637b0bc
 DIST VirtualBox-7.0.6.tar.bz2 199512172 BLAKE2B cfe4d7abd57dfdb0294177759e80aa9fda797b9b5433f214771a57764cb23404450169e8c7c30cda13de85b8e02a37024584c7b1f0b5a44b10b100aa66b8d5c5 SHA512 f9db7a154e392f550f50abe774fc6263eb0b6f86dccc069f2c5012fedbe2debbf5b8ba62cca44ea0d5d5475652188176bfb888266f69197677b22854f02b64a0

diff --git a/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch b/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch
deleted file mode 100644
index 7eb1e1793a7f..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-2017-02-20  Quentin Minster <quentin@minster.io>
-
-	#https://bugs.gentoo.org/show_bug.cgi?id=591582
-	* Config.kmk: add paxmark befor VBOX_VBOXTPG get run.
-	* src/VBox/VMM/Makefile.kmk: add paxmark befor VBOX_VBOXCPP get run.
-	* src/VBox/Main/Makefile.kmk: add paxmark befor USBIdDatabaseGenerator_1_TARGET get run.
-
---- a/Config.kmk
-+++ b/Config.kmk	2016-09-21 02:22:28 
-@@ -3719,11 +3719,13 @@
- 		$(if-expr $(intersects $(KBUILD_TARGET_ARCH),$(KBUILD_ARCHES_64)),-64,-32) \
- 		-h --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
- define TOOL_VBoxTpG_DTRACE_HDR_CMDS
-+	$(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- 	$(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)"
- endef
- TOOL_VBoxTpG_DTRACE_OBJ_NOT_NEEDED :=
- TOOL_VBoxTpG_DTRACE_OBJ_FLAGS      := -G --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
- define TOOL_VBoxTpG_DTRACE_OBJ_CMDS
-+	$(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- 	$(QUIET)$(VBOX_VBOXTPG) \
- 		$(if-expr $(intersects $(bld_trg_arch),$(KBUILD_ARCHES_64)),-64,-32) \
- 		$(flags) \
-@@ -3738,6 +3740,7 @@
- TOOL_VBoxTpG-Disabled_DTRACE_DEPORD     = $(VBOX_VBOXTPG)
- TOOL_VBoxTpG-Disabled_DTRACE_HDR_FLAGS := -h
- define TOOL_VBoxTpG-Disabled_DTRACE_HDR_CMDS
-+	$(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- 	$(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)"
- endef
- TOOL_VBoxTpG-Disabled_DTRACE_OBJ_NOT_NEEDED := $(KBUILD_OSES)
-@@ -3752,6 +3755,7 @@
- TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS =
- define TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS
- 	$(TOOL_StandardDTrace_DTRACE_HDR_CMDS)
-+	$(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- 	$(QUIET)$(VBOX_VBOXTPG) --generate-wrapper-header --host-$(VBOX_HC_ARCH_BITS)-bit --ring-3-context \
- 		$(filter-out -C, $(filter-out -h,$(flags))) \
- 		-o "$(out).tmp" -s "$(source)"
---- a/src/VBox/VMM/Makefile.kmk	2018-04-10 15:26:24.622867735 +0300
-+++ b/src/VBox/VMM/Makefile.kmk	2018-04-10 15:24:35.901998796 +0300
-@@ -896,6 +896,7 @@
-   $$(VMMLibDTrace_0_OUTDIR)/$1: $2 $$(VBOX_VBOXCPP) | $$$$(dir $$$$@)
- 	$$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
- 	$$(QUIET)$$(call MSG_GENERATE,VMMLibDTrace,$$@,$2)
-+	$$(QUIET)paxmark.sh -m "$(VBOX_VBOXCPP)"
- 	$$(QUIET)$(VBOX_VBOXCPP) -d \
- 		-D VBOX_FOR_DTRACE_LIB \
- 		-D VBOX_FOR_DTRACE_LIB_$(toupper $(KBUILD_TARGET_ARCH)) \
---- a/src/VBox/Main/Makefile.kmk	2018-04-10 15:26:15.292793067 +0300
-+++ b/src/VBox/Main/Makefile.kmk	2018-04-10 15:25:14.042303341 +0300
-@@ -607,6 +607,7 @@
-  		$(PATH_SUB_CURRENT)/src-server/usb.ids $(PATH_SUB_CURRENT)/src-server/custom.ids | $$(dir $$@)
- 	$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
- 	$(call MSG_GENERATE,USBIdDatabase,$@,$(USBIdDatabaseGenerator_1_TARGET))
-+	$(QUIET)paxmark.sh -m "$(USBIdDatabaseGenerator_1_TARGET)"
- 	$(QUIET)$(USBIdDatabaseGenerator_1_TARGET) -o "$@" $(filter %.ids,$^)
- 
-  BLDPROGS += USBIdDatabaseGenerator

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.36-python3.10.patch b/app-emulation/virtualbox/files/virtualbox-6.1.36-python3.10.patch
deleted file mode 100644
index 90157ada7d96..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-6.1.36-python3.10.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-https://github.com/archlinux/svntogit-community/blob/b103146beee8b7c70d04685033a8536aed2e5aea/trunk/002-python310.patch
-https://github.com/archlinux/svntogit-community/blob/b103146beee8b7c70d04685033a8536aed2e5aea/trunk/003-pyunicode.patch
-
-https://www.virtualbox.org/changeset/90537/vbox
-https://www.virtualbox.org/changeset/86623/vbox
---- a/src/libs/xpcom18a4/python/src/PyXPCOM.h
-+++ b/src/libs/xpcom18a4/python/src/PyXPCOM.h
-@@ -137,7 +137,7 @@
- #  define PyInt_Check(o) PyLong_Check(o)
- #  define PyInt_AsLong(o) PyLong_AsLong(o)
- #  define PyNumber_Int(o) PyNumber_Long(o)
--#  if PY_VERSION_HEX <= 0x03030000 /* 3.3 added PyUnicode_AsUTF8AndSize */
-+#  if !defined(Py_LIMITED_API) && PY_VERSION_HEX <= 0x03030000 /* 3.3 added PyUnicode_AsUTF8AndSize */
- #   ifndef PyUnicode_AsUTF8
- #    define PyUnicode_AsUTF8(o) _PyUnicode_AsString(o)
- #   endif

diff --git a/app-emulation/virtualbox/virtualbox-6.1.40.ebuild b/app-emulation/virtualbox/virtualbox-6.1.40.ebuild
deleted file mode 100644
index aa6b747fb2a0..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.1.40.ebuild
+++ /dev/null
@@ -1,664 +0,0 @@
-# Copyright 2022-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# To add a new Python here:
-# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
-#    Do NOT skip this part. It'll end up silently not-building the Python extension
-#    or otherwise misbehaving if you do.
-#
-# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
-#
-#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
-#  Python versions as upstream tends to lag. Upstream may have patches on their
-#  trunk branch but not release branch.
-#
-#  See bug #785835, bug #856121.
-PYTHON_COMPAT=( python3_{9..10} )
-
-inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}-${MY_PV}
-[[ ${PV} == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
-	https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2"
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0/$(ver_cut 1-2)"
-if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
-	KEYWORDS="amd64"
-fi
-IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc"
-
-unset WATCOM #856769
-
-COMMON_DEPEND="
-	${PYTHON_DEPS}
-	acct-group/vboxusers
-	~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
-	dev-libs/libIDL
-	>=dev-libs/libxslt-1.1.19
-	net-misc/curl
-	dev-libs/libxml2
-	media-libs/libpng:0=
-	media-libs/libvpx:0=
-	sys-libs/zlib:=
-	!headless? (
-		sdl? ( media-libs/libsdl:0[X,video] )
-		x11-libs/libX11
-		x11-libs/libxcb:=
-		x11-libs/libXcursor
-		x11-libs/libXext
-		x11-libs/libXmu
-		x11-libs/libXt
-		opengl? (
-			media-libs/libglvnd[X]
-			virtual/glu
-		)
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtgui:5
-			dev-qt/qtprintsupport:5
-			dev-qt/qtwidgets:5
-			dev-qt/qtx11extras:5
-			opengl? ( dev-qt/qtopengl:5 )
-			x11-libs/libXinerama
-		)
-	)
-	dev-libs/openssl:0=
-	virtual/libcrypt:=
-	lvm? ( sys-fs/lvm2 )
-	opus? ( media-libs/opus )
-	udev? ( >=virtual/udev-171 )
-	vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
-# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
-# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
-# based on *DEPEND doesn't work for BDEPEND at least right now.
-#
-# There's a comment in Config.kmk about it
-# ("With Java 11 wsimport was removed, usually part of a separate install now.")
-# but it needs more investigation.
-#
-# See bug #832166.
-DEPEND="
-	${COMMON_DEPEND}
-	alsa? ( >=media-libs/alsa-lib-1.0.13 )
-	!headless? (
-		x11-libs/libXinerama
-		x11-libs/libXrandr
-		opengl? ( virtual/opengl )
-	)
-	java? ( virtual/jdk:1.8 )
-	pam? ( sys-libs/pam )
-	pax-kernel? ( sys-apps/elfix )
-	pulseaudio? ( media-sound/pulseaudio )
-	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	>=dev-util/kbuild-0.1.9998.3127
-	>=dev-lang/yasm-0.6.2
-	sys-apps/which
-	sys-devel/bin86
-	sys-libs/libcap
-	sys-power/iasl
-	virtual/pkgconfig
-	doc? (
-		app-text/docbook-sgml-dtd:4.4
-		dev-texlive/texlive-basic
-		dev-texlive/texlive-latex
-		dev-texlive/texlive-latexrecommended
-		dev-texlive/texlive-latexextra
-		dev-texlive/texlive-fontsrecommended
-		dev-texlive/texlive-fontsextra
-	)
-	java? ( virtual/jdk:1.8 )
-	qt5? ( dev-qt/linguist-tools:5 )
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	java? ( virtual/jre:1.8 )
-"
-
-QA_FLAGS_IGNORED="
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/VMMR0.r0
-"
-
-QA_TEXTRELS="
-	usr/lib64/virtualbox/VMMR0.r0
-"
-
-QA_EXECSTACK="
-	usr/lib64/virtualbox/iPxeBaseBin
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-"
-
-QA_WX_LOAD="
-	usr/lib64/virtualbox/iPxeBaseBin
-"
-
-QA_PRESTRIPPED="
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-"
-
-REQUIRED_USE="
-	java? ( sdk )
-	python? ( sdk )
-	vboxwebsrv? ( java )
-	${PYTHON_REQUIRED_USE}
-"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
-
-	# This patch is needed to avoid automagic detection based on a hardcoded
-	# list of Pythons in configure. It's necessary but not sufficient
-	# (see the rest of the ebuild's logic for the remainder) to handle
-	# proper Python selection.
-	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
-
-	# Patch grabbed from Arch Linux / upstream for Python 3.10 support
-	"${FILESDIR}"/${PN}-6.1.36-python3.10.patch
-
-	# 865361
-	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
-
-	# Downloaded patchset
-	"${WORKDIR}"/virtualbox-patches-6.1.36/patches
-)
-
-pkg_pretend() {
-	if ! use headless && ! use qt5 ; then
-		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
-	elif use headless && use qt5 ; then
-		einfo "You selected USE=\"headless qt5\", defaulting to"
-		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
-	fi
-
-	if ! use opengl ; then
-		einfo "No USE=\"opengl\" selected, this build will lack"
-		einfo "the OpenGL feature."
-	fi
-	if ! use python ; then
-		einfo "You have disabled the \"python\" USE flag. This will only"
-		einfo "disable the python bindings being installed."
-	fi
-
-	# 749273
-	local d=${ROOT}
-	for i in usr "$(get_libdir)"; do
-		d="${d}/$i"
-		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
-			die "${d} should be owned by root, VirtualBox will not start otherwise"
-		fi
-	done
-}
-
-pkg_setup() {
-	java-pkg-opt-2_pkg_setup
-	python-single-r1_pkg_setup
-}
-
-src_prepare() {
-	default
-
-	# Only add nopie patch when we're on hardened
-	if gcc-specs-pie ; then
-		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
-	fi
-
-	# Only add paxmark patch when we're on pax-kernel
-	if use pax-kernel ; then
-		eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
-	fi
-
-	# Remove shipped binaries (kBuild, yasm), see bug #232775
-	rm -r kBuild/bin tools || die
-
-	# Replace pointless GCC version check with something more sensible.
-	# This is needed for the qt5 version check.
-	sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
-		-i configure || die
-
-	# Disable things unused or split into separate ebuilds
-	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
-		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
-	if ! use pch ; then
-		# bug #753323
-		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
-			>> LocalConfig.kmk || die
-	fi
-
-	# Respect LDFLAGS
-	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
-	# Do not use hard-coded ld (related to bug #488176)
-	sed -e '/QUIET)ld /s@ld @$(LD) @' \
-		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
-	# Use PAM only when pam USE flag is enbaled (bug #376531)
-	if ! use pam ; then
-		einfo "Disabling PAM removes the possibility to use the VRDP features."
-		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
-		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
-			src/VBox/HostServices/Makefile.kmk || die
-	fi
-
-	# add correct java path
-	if use java ; then
-		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-			-i "${S}"/Config.kmk || die
-		java-pkg-opt-2_src_prepare
-	fi
-}
-
-src_configure() {
-	tc-ld-disable-gold # bug #488176
-
-	#856811 #864274
-	# cannot filter out only one flag, some combinations of these flags produce buggy executables
-	for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
-		append-cflags $(test-flags-CC -mno-$i)
-		append-cxxflags $(test-flags-CXX -mno-$i)
-	done
-
-	tc-export AR CC CXX LD RANLIB
-	export HOST_CC="$(tc-getBUILD_CC)"
-
-	local myconf=(
-		--with-gcc="$(tc-getCC)"
-		--with-g++="$(tc-getCXX)"
-
-		--disable-dbus
-		--disable-kmods
-
-		$(usex alsa '' --disable-alsa)
-		$(usex debug --build-debug '')
-		$(usex doc '' --disable-docs)
-		$(usex java '' --disable-java)
-		$(usex lvm '' --disable-devmapper)
-		$(usex opus '' --disable-libopus)
-		$(usex pulseaudio '' --disable-pulse)
-		$(usex python '' --disable-python)
-		$(usex vboxwebsrv --enable-webservice '')
-		$(usex vnc --enable-vnc '')
-	)
-
-	if ! use headless ; then
-		myconf+=(
-			$(usex opengl '' --disable-opengl)
-			$(usex qt5 '' --disable-qt)
-			$(usex sdl '' --disable-sdl)
-		)
-	else
-		myconf+=(
-			--build-headless
-			--disable-opengl
-		)
-	fi
-
-	if use amd64 && ! has_multilib_profile ; then
-		myconf+=( --disable-vmmraw )
-	fi
-
-	# bug #843437
-	cat >> LocalConfig.kmk <<-EOF || die
-		CXXFLAGS=${CXXFLAGS}
-		CFLAGS=${CFLAGS}
-	EOF
-
-	# not an autoconf script
-	edo ./configure "${myconf[@]}"
-
-	# Force usage of chosen Python implementation
-	# bug #856121, bug #785835
-	sed -i \
-		-e '/VBOX_WITH_PYTHON.*=/d' \
-		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
-		-e '/VBOX_LIB_PYTHON.*=/d' \
-		AutoConfig.kmk || die
-
-	cat >> AutoConfig.kmk <<-EOF || die
-		VBOX_WITH_PYTHON=$(usev python 1)
-		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
-		VBOX_LIB_PYTHON=$(python_get_library_path)
-	EOF
-
-	if use python ; then
-		local mangled_python="${EPYTHON#python}"
-		mangled_python="${mangled_python/.}"
-
-		# Stub out the script which defines what the Makefile ends up
-		# building for. gen_python_deps.py gets called by the Makefile
-		# with some args and it spits out a bunch of paths for a hardcoded
-		# list of Pythons. We just override it with what we're actually using.
-		# This minimises the amount of patching we have to do for new Pythons.
-		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
-			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
-			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
-			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
-			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
-		EOF
-
-		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
-	fi
-}
-
-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_WITH_VBOXIMGMOUNT=1
-
-		KBUILD_VERBOSE=2
-
-		AS="$(tc-getCC)"
-		CC="$(tc-getCC)"
-		CXX="$(tc-getCXX)"
-
-		TOOL_GCC3_CC="$(tc-getCC)"
-		TOOL_GCC3_LD="$(tc-getCC)"
-		TOOL_GCC3_AS="$(tc-getCC)"
-		TOOL_GCC3_AR="$(tc-getAR)"
-		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
-
-		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_GCC3_CFLAGS="${CFLAGS}"
-		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
-		VBOX_GCC_OPT="${CXXFLAGS}"
-		VBOX_NM="$(tc-getNM)"
-
-		TOOL_YASM_AS=yasm
-	)
-
-	if use amd64 && has_multilib_profile ; then
-		myemakeargs+=(
-			CC32="$(tc-getCC) -m32"
-			CXX32="$(tc-getCXX) -m32"
-
-			TOOL_GCC32_CC="$(tc-getCC) -m32"
-			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
-			TOOL_GCC32_LD="$(tc-getCC) -m32"
-			TOOL_GCC32_AS="$(tc-getCC) -m32"
-			TOOL_GCC32_AR="$(tc-getAR)"
-			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
-
-			TOOL_GXX32_CC="$(tc-getCC) -m32"
-			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
-			TOOL_GXX32_LD="$(tc-getCXX) -m32"
-			TOOL_GXX32_AS="$(tc-getCXX) -m32"
-			TOOL_GXX32_AR="$(tc-getAR)"
-			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
-		)
-	fi
-
-	MAKE="kmk" emake "${myemakeargs[@]}" all
-}
-
-src_install() {
-	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
-	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
-	vbox_inst() {
-		local binary="${1}"
-		local perms="${2:-0750}"
-		local path="${3:-${vbox_inst_path}}"
-
-		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
-		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
-		insinto ${path}
-		doins ${binary}
-		fowners root:vboxusers ${path}/${binary}
-		fperms ${perms} ${path}/${binary}
-	}
-
-	# Create configuration files
-	insinto /etc/vbox
-	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
-	# Set the correct libdir
-	sed \
-		-e "s@MY_LIBDIR@$(get_libdir)@" \
-		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
-	# Install the wrapper script
-	exeinto ${vbox_inst_path}
-	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
-	fowners root:vboxusers ${vbox_inst_path}/VBox
-	fperms 0750 ${vbox_inst_path}/VBox
-
-	# Install binaries and libraries
-	insinto ${vbox_inst_path}
-	doins -r components
-
-	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do
-		vbox_inst ${each}
-	done
-
-	# These binaries need to be suid root.
-	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
-		vbox_inst ${each} 4750
-	done
-
-	# Install EFI Firmware files (bug #320757)
-	for each in VBoxEFI{32,64}.fd ; do
-		vbox_inst ${each} 0644
-	done
-
-	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
-	# VBoxXPCOMIPCD (bug #524202)
-	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
-		pax-mark -m "${ED}"${vbox_inst_path}/${each}
-	done
-
-	# Symlink binaries to the shipped wrapper
-	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
-		dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-	done
-	dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
-	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-
-	if use pam ; then
-		# VRDPAuth only works with this (bug #351949)
-		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
-	fi
-
-	# set an env-variable for 3rd party tools
-	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
-	doenvd "${T}/90virtualbox"
-
-	if ! use headless ; then
-		vbox_inst rdesktop-vrdp
-		if use sdl ; then
-			vbox_inst VBoxSDL 4750
-			pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
-			for each in vboxsdl VBoxSDL ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-		fi
-
-		if use qt5 ; then
-			vbox_inst VirtualBox
-			vbox_inst VirtualBoxVM 4750
-			for each in VirtualBox{,VM} ; do
-				pax-mark -m "${ED}"${vbox_inst_path}/${each}
-			done
-
-			if use opengl ; then
-				vbox_inst VBoxTestOGL
-				pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
-			fi
-
-			for each in virtualbox{,vm} VirtualBox{,VM} ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-
-			insinto /usr/share/${PN}
-			doins -r nls
-			doins -r UnattendedTemplates
-
-			domenu ${PN}.desktop
-		fi
-
-		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
-		for size in 16 32 48 64 128 ; do
-			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
-		done
-		newicon ${PN}-48px.png ${PN}.png
-		doicon -s scalable ${PN}.svg
-		popd &>/dev/null || die
-		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
-		for size in 16 24 32 48 64 72 96 128 256 512 ; do
-			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
-				icofile="${PN}-${ico}-${size}px.png"
-				if [[ -f "${icofile}" ]] ; then
-					newicon -s ${size} ${icofile} ${PN}-${ico}.png
-				fi
-			done
-		done
-		popd &>/dev/null || die
-	fi
-
-	if use lvm ; then
-		vbox_inst VBoxVolInfo 4750
-		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
-	fi
-
-	if use sdk ; then
-		insinto ${vbox_inst_path}
-		doins -r sdk
-
-		if use java ; then
-			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
-			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
-		fi
-	fi
-
-	if use udev ; then
-		local udevdir="$(get_udevdir)"
-		local udev_file="VBoxCreateUSBNode.sh"
-		local rules_file="10-virtualbox.rules"
-
-		insinto ${udevdir}
-		doins ${udev_file}
-		fowners root:vboxusers ${udevdir}/${udev_file}
-		fperms 0750 ${udevdir}/${udev_file}
-
-		insinto ${udevdir}/rules.d
-		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
-			> "${T}"/${rules_file} || die
-		doins "${T}"/${rules_file}
-	fi
-
-	if use vboxwebsrv ; then
-		vbox_inst vboxwebsrv
-		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
-		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
-		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
-	fi
-
-	# Remove dead symlinks (bug #715338)
-	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
-	# Fix version string in extensions or else they don't get accepted
-	# by the virtualbox host process (see bug #438930)
-	find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
-		| xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
-		|| die
-
-	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
-	if use vnc ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/VNC
-	fi
-
-	if use dtrace ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
-	fi
-
-	if use doc ; then
-		dodoc UserManual.pdf
-	fi
-
-	if use python ; then
-		local mangled_python="${EPYTHON#python}"
-		mangled_python="${mangled_python/./_}"
-
-		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython${mangled_python}.so"
-		if [[ ! -x "${python_path_ext}" ]] ; then
-			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
-			eerror "but none were installed. This may happen if support for a Python target"
-			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
-			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
-		fi
-	fi
-
-	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-
-	if use udev ; then
-		udev_reload
-		udevadm trigger --subsystem-match=usb
-	fi
-
-	tmpfiles_process virtualbox-vboxusb.conf
-
-	if ! use headless && use qt5 ; then
-		elog "To launch VirtualBox just type: \"virtualbox\"."
-	fi
-
-	elog "You must be in the vboxusers group to use VirtualBox."
-	elog ""
-	elog "The latest user manual is available for download at:"
-	elog "https://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf"
-	elog ""
-
-	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
-	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
-	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
-
-	if ! use udev ; then
-		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
-	fi
-}
-
-pkg_postrm() {
-	xdg_pkg_postrm
-
-	use udev && udev_reload
-}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2023-04-21 16:38 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2023-04-21 16:38 UTC (permalink / raw
  To: gentoo-commits

commit:     02799f44453bb226b6d8763632ea89fb690750d4
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 18 18:39:42 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Fri Apr 21 16:35:22 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=02799f44

app-emulation/virtualbox: add 7.0.8

Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   3 +
 ...tualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch |  18 +
 .../files/virtualbox-7.0.8-mtune-keep-size.patch   |  13 +
 .../files/virtualbox-7.0.8-python3_11.patch        |  86 +++
 app-emulation/virtualbox/virtualbox-7.0.8.ebuild   | 733 +++++++++++++++++++++
 5 files changed, 853 insertions(+)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index 7216099ce109..41f477b81cac 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,5 +1,8 @@
 DIST VirtualBox-6.1.42.tar.bz2 165554573 BLAKE2B 8419793d9e4c4d0804baba926443a27259b012ab90d1bb27c8f9d90b018ddbef83d1cc47e9f5b88e6e247f22c186603584a5ddee4b0c04fe842eba56f3fd103a SHA512 a4861b44ee85d6d1d72ba1d19b5598873503feeb6d562cf7d8c770cc9b466741bdfa5abe74dc4e7952ff189d14c6caf60f584731492c38f688a360baba019ab2
 DIST VirtualBox-6.1.44.tar.bz2 165775421 BLAKE2B e87d7175bc616784c79d02b595d81119cedc7f4df1822b71ca10b85d44d5cd1dacd999e7867a0bef8579ea715ef732b990cef63f3325fff0c139abe394d88ad7 SHA512 49c3baa1a40dcafcc6b31d0abcfecfcb24305de44e5efd3f68ba4443574e21b8cc34d7288e0fbc56730bc3be2bee07089b7dfed14848a88dc38a1433b6dda8af
 DIST VirtualBox-7.0.6.tar.bz2 199512172 BLAKE2B cfe4d7abd57dfdb0294177759e80aa9fda797b9b5433f214771a57764cb23404450169e8c7c30cda13de85b8e02a37024584c7b1f0b5a44b10b100aa66b8d5c5 SHA512 f9db7a154e392f550f50abe774fc6263eb0b6f86dccc069f2c5012fedbe2debbf5b8ba62cca44ea0d5d5475652188176bfb888266f69197677b22854f02b64a0
+DIST VirtualBox-7.0.8.tar.bz2 199298777 BLAKE2B 6e36532516fb1ebee4cf7f356659a8cde6bd5074a509c824499ed34d8d0ffc9aff45211d4dcb35e3977fcd72a9b18796ed57f8760dd45e578d8225814c4c8710 SHA512 4c25f8275269d085cf347596a242b8921f140e0e40d8c44fd6b171742b8cbd0c9a45f4702dbc0c1272e10091be68c3668711c9e4d1a8b3ce57d25f871e0eb9fe
 DIST virtualbox-help-7.0.6.tar.xz 3939412 BLAKE2B ea1326bccb3c2edc33ab37e122a7bedf79475d335e632ee62f99e0dce4b80de7634cbfe121c8c7ccd6588ff3b81effe7b20efe123cc44bc7b1ff4f6a851302a6 SHA512 ffb59f0c99c91b165a0b83d29317e04eee9097b0d0ac92a0d3e71558e70ec8b2807491a4633562a5e820e5f5a8e1339883031fd03de93d09a188f19b8b4d3a93
+DIST virtualbox-help-7.0.8.tar.xz 3941816 BLAKE2B f1c82ccc8a0d4e99f2302a7024a551e7e4a70348b193cf0c3a3b2917a717451c74d652555cadb278f6e27c47dac88a8121acfe9425bc0f5b82b5101475f384b3 SHA512 7483c4321492effb5b4329d48b363d8d2b3aaa248c0259cd06569497090aa438c39e94d6a5da4f511202f424e596f66e7580e37ffa5da66661fd0fadcd99c5ef
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
+DIST virtualbox-patches-7.0.8.tar.bz2 2733 BLAKE2B 044dfe02a5bd5e757091318b394b0e5918677b5bbce9caef4a18d4d8df54821559f0df6ffbdd6f52d4934bc4018e9c9d908571c5d3d8804fd3b0f22a7a1aed84 SHA512 93a06aa3f9508d3a8743ca8494a958159b5bc3fd7a0a08ff23414d05c4f31084cf0f1c82a3866e222c83e6996ba004546f0bd33c6eb9a90eec8e548b8b3f2fbf

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch b/app-emulation/virtualbox/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch
new file mode 100644
index 000000000000..29ec3aee72c1
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch
@@ -0,0 +1,18 @@
+When compiling with clang we get:
+
+src/VBox/Devices/PC/ipxe/src/core/settings.c:310:8: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
+
+Apply this patch conditionally to disable rebuilding iPxeBiosBin.rom when using clang.
+
+--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk
++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk
+@@ -45,7 +45,8 @@
+ iPxeBiosBin_CLEAN    = \
+ 	$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c \
+ 
+-if1of ($(KBUILD_TARGET), darwin os2 solaris win)
++# Disable building on Linux if using clang
++if1of ($(KBUILD_TARGET), darwin os2 solaris win linux)
+  $$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c: $(PATH_SUB_CURRENT)/iPxeBiosBin.rom $(VBOX_BIN2C) | $$(dir $$@)
+ 	$(call MSG_TOOL,bin2c,iPxeBiosBin,$<,$@)
+ 	$(QUIET)$(VBOX_BIN2C) -min 32 -max 56 -mask 0x1ff -export NetBiosBinary $< $@

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.8-mtune-keep-size.patch b/app-emulation/virtualbox/files/virtualbox-7.0.8-mtune-keep-size.patch
new file mode 100644
index 000000000000..e37d9d6dcb94
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.8-mtune-keep-size.patch
@@ -0,0 +1,13 @@
+Force -mtune=i386.  Random -mtune can lead to iPxeBiosBin.rom getting too
+large (larger than 56k).  This can happen because we support custom CFLAGS.
+
+--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk
++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk
+@@ -125,6 +125,7 @@
+ 	-ffreestanding \
+ 	-ffunction-sections \
+ 	-march=i386 \
++	-mtune=i386 \
+ 	-fomit-frame-pointer \
+ 	-fstrength-reduce \
+ 	-falign-jumps=1 \

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.8-python3_11.patch b/app-emulation/virtualbox/files/virtualbox-7.0.8-python3_11.patch
new file mode 100644
index 000000000000..02fc9c1b12fe
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.8-python3_11.patch
@@ -0,0 +1,86 @@
+Add support for python 3.11
+
+Virtualbox 7.0.0 will only build a lib named VBoxPython3.so, regardless of the
+actual python version used when compiling.  Remove VBoxPython3m.so, we don't
+use it.
+
+--- a/src/libs/xpcom18a4/python/Makefile.kmk
++++ b/src/libs/xpcom18a4/python/Makefile.kmk
+@@ -30,7 +30,7 @@
+ 
+ #
+ # List of supported Python versions, defining a number of
+-# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|DEF]_[INC|LIB] variables
++# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|311|311M|DEF]_[INC|LIB] variables
+ # which get picked up below.
+ #
+ ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
+@@ -665,6 +665,48 @@
+    endif
+   endif
+ 
++  ifdef VBOX_PYTHON311_INC
++   #
++   # Python 3.11 version
++   #
++   DLLS += VBoxPython3_11
++   VBoxPython3_11_EXTENDS = VBoxPythonBase
++   VBoxPython3_11_EXTENDS_BY = appending
++   VBoxPython3_11_INCS    = $(VBOX_PYTHON311_INC)
++   VBoxPython3_11_LIBS    = $(VBOX_PYTHON311_LIB)
++
++   ifdef VBOX_WITH_32_ON_64_MAIN_API
++    ifdef VBOX_PYTHON311_LIB_X86
++     DLLS += VBoxPython3_11_x86
++     VBoxPython3_11_x86_EXTENDS = VBoxPythonBase_x86
++     VBoxPython3_11_x86_EXTENDS_BY = appending
++     VBoxPython3_11_x86_INCS  = $(VBOX_PYTHON311_INC)
++     VBoxPython3_11_x86_LIBS  = $(VBOX_PYTHON311_LIB_X86)
++    endif
++   endif
++  endif
++
++  ifdef VBOX_PYTHON311M_INC
++   #
++   # Python 3.11 version with pymalloc
++   #
++   DLLS += VBoxPython3_11m
++   VBoxPython3_11m_EXTENDS = VBoxPythonBase_m
++   VBoxPython3_11m_EXTENDS_BY = appending
++   VBoxPython3_11m_INCS    = $(VBOX_PYTHON311M_INC)
++   VBoxPython3_11m_LIBS    = $(VBOX_PYTHON311M_LIB)
++
++   ifdef VBOX_WITH_32_ON_64_MAIN_API
++    ifdef VBOX_PYTHON311M_LIB_X86
++     DLLS += VBoxPython3_11m_x86
++     VBoxPython3_11m_x86_EXTENDS = VBoxPythonBase_x86_m
++     VBoxPython3_11m_x86_EXTENDS_BY = appending
++     VBoxPython3_11m_x86_INCS  = $(VBOX_PYTHON311M_INC)
++     VBoxPython3_11m_x86_LIBS  = $(VBOX_PYTHON311M_LIB_X86)
++    endif
++   endif
++  endif
++
+   ifdef VBOX_PYTHONDEF_INC
+    #
+    # Python without versioning
+@@ -707,18 +749,13 @@
+   # TODO: ASSUMING that we don't need a different headers for pymalloc
+   #       ('m' builds < 3.8) and CRT malloc.
+   #
+-  VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 38 39 310   34 33 \
++  VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 38 39 310 311   34 33 \
+   	,$(if-expr defined(VBOX_PYTHON$(ver)_INC),$(ver),)$(if-expr defined(VBOX_PYTHON$(ver)M_INC),$(ver)M,)))
+   ifneq ($(VBOX_PYTHON_LIMITED_API_VER),)
+    DLLS += VBoxPython3
+    VBoxPython3_EXTENDS   = VBoxPythonBase
+    VBoxPython3_DEFS      = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS)) Py_LIMITED_API=0x03030000
+    VBoxPython3_INCS      = $(VBoxPythonBase_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
+-
+-   DLLS += VBoxPython3m
+-   VBoxPython3m_EXTENDS  = VBoxPythonBase_m
+-   VBoxPython3m_DEFS     = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_m_DEFS)) Py_LIMITED_API=0x03030000
+-   VBoxPython3m_INCS     = $(VBoxPythonBase_m_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
+   endif
+  endif # VBOX_WITH_PYTHON_LIMITED_API
+ 

diff --git a/app-emulation/virtualbox/virtualbox-7.0.8.ebuild b/app-emulation/virtualbox/virtualbox-7.0.8.ebuild
new file mode 100644
index 000000000000..dbf3c33aa1b0
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.8.ebuild
@@ -0,0 +1,733 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+#    Do NOT skip this part. It'll end up silently not-building the Python extension
+#    or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
+#  Python versions as upstream tends to lag. Upstream may have patches on their
+#  trunk branch but not release branch.
+#
+#  See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+	python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+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.8.tar.bz2
+	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
+"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+	${PYTHON_DEPS}
+	acct-group/vboxusers
+	~app-emulation/virtualbox-modules-${PV}
+	dev-libs/libtpms
+	dev-libs/libxml2
+	dev-libs/openssl:0=
+	media-libs/libpng:0=
+	media-libs/libvpx:0=
+	net-misc/curl
+	sys-libs/zlib
+	dbus? ( sys-apps/dbus )
+	gui? (
+		dev-qt/qtcore:5
+		dev-qt/qtdbus:5
+		dev-qt/qtgui:5
+		dev-qt/qthelp:5
+		dev-qt/qtprintsupport:5
+		dev-qt/qtwidgets:5
+		dev-qt/qtx11extras:5
+		dev-qt/qtxml:5
+		x11-libs/libX11
+		x11-libs/libXt
+		opengl? ( dev-qt/qtopengl:5 )
+	)
+	lvm? ( sys-fs/lvm2 )
+	opengl? (
+		media-libs/libglvnd[X]
+		media-libs/vulkan-loader
+		x11-libs/libX11
+		x11-libs/libXt
+	)
+	pam? ( sys-libs/pam )
+	sdl? (
+		media-libs/libsdl2[X,video]
+		x11-libs/libX11
+		x11-libs/libXcursor
+		x11-libs/libXt
+	)
+	vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+	vde? ( net-misc/vde )
+	vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+	${COMMON_DEPEND}
+	>=dev-libs/libxslt-1.1.19
+	virtual/libcrypt:=
+	alsa? ( >=media-libs/alsa-lib-1.0.13 )
+	gui? (
+		x11-base/xorg-proto
+		x11-libs/libxcb:=
+		x11-libs/libXcursor
+		x11-libs/libXext
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libXrandr
+	)
+	java? ( virtual/jdk:1.8 )
+	opengl? (
+		x11-base/xorg-proto
+		x11-libs/libXcursor
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libXrandr
+		virtual/glu
+	)
+	sdl? ( x11-libs/libXinerama )
+	pulseaudio? ( media-libs/libpulse )
+	udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	gui? ( x11-libs/libxcb:= )
+	java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	>=app-arch/tar-1.34-r2
+	>=dev-lang/yasm-0.6.2
+	dev-libs/libIDL
+	dev-util/glslang
+	>=dev-util/kbuild-0.1.9998.3592
+	sys-apps/which
+	sys-devel/bin86
+	sys-libs/libcap
+	sys-power/iasl
+	virtual/pkgconfig
+	doc? (
+		app-text/docbook-sgml-dtd:4.4
+		app-text/docbook-xsl-ns-stylesheets
+		dev-texlive/texlive-basic
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexrecommended
+		dev-texlive/texlive-latexextra
+		dev-texlive/texlive-fontsrecommended
+		dev-texlive/texlive-fontsextra
+		dev-qt/qthelp:5
+	)
+	gui? ( dev-qt/linguist-tools:5 )
+	nls? ( dev-qt/linguist-tools:5 )
+	java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+	usr/lib64/virtualbox/iPxeBaseBin
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+	usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+	java? ( sdk )
+	python? ( sdk )
+	vboxwebsrv? ( java )
+	${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
+
+	# This patch is needed to avoid automagic detection based on a hardcoded
+	# list of Pythons in configure. It's necessary but not sufficient
+	# (see the rest of the ebuild's logic for the remainder) to handle
+	# proper Python selection.
+	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
+
+	# 865361
+	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
+
+	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
+	"${FILESDIR}"/${PN}-7.0.8-python3_11.patch
+	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
+	"${FILESDIR}"/${PN}-7.0.8-mtune-keep-size.patch
+
+	# Downloaded patchset
+	"${WORKDIR}"/virtualbox-patches-7.0.8/patches
+)
+
+pkg_pretend() {
+	if ! use gui; then
+		einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+	fi
+
+	if ! use opengl; then
+		einfo "No USE=\"opengl\" selected, this build will lack"
+		einfo "the OpenGL feature."
+	fi
+	if ! use python; then
+		einfo "You have disabled the \"python\" USE flag. This will only"
+		einfo "disable the python bindings being installed."
+	fi
+	if ! use nls && use gui; then
+		einfo "USE=\"gui\" also selects USE=\"nls\".  This build"
+		einfo "will have NLS support."
+	fi
+
+	# 749273
+	local d=${ROOT}
+	for i in usr "$(get_libdir)"; do
+		d="${d}/$i"
+		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+			die "${d} should be owned by root, VirtualBox will not start otherwise"
+		fi
+	done
+}
+
+pkg_setup() {
+	java-pkg-opt-2_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	# Only add nopie patch when we're on hardened
+	if gcc-specs-pie; then
+		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+	fi
+
+	# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+	rm -r kBuild/bin || die
+	# Remove everything in tools except kBuildUnits
+	find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+	# Disable things unused or split into separate ebuilds
+	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+	if ! use pch; then
+		# bug #753323
+		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+			>> LocalConfig.kmk || die
+	fi
+
+	# Respect LDFLAGS
+	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+	# Do not use hard-coded ld (related to bug #488176)
+	sed -e '/QUIET)ld /s@ld @$(LD) @' \
+		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+	# Use PAM only when pam USE flag is enbaled (bug #376531)
+	if ! use pam; then
+		einfo "Disabling PAM removes the possibility to use the VRDP features."
+		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+			src/VBox/HostServices/Makefile.kmk || die
+	fi
+
+	# add correct java path
+	if use java; then
+		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+			-i "${S}"/Config.kmk || die
+		java-pkg-opt-2_src_prepare
+	fi
+
+	#856811 #864274
+	# cannot filter out only one flag, some combinations of these flags produce buggy executables
+	for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+		append-cflags $(test-flags-CC -mno-$i)
+		append-cxxflags $(test-flags-CXX -mno-$i)
+	done
+
+	# bug #843437
+	cat >> LocalConfig.kmk <<-EOF || die
+		CXXFLAGS=${CXXFLAGS}
+		CFLAGS=${CFLAGS}
+	EOF
+
+	if use sdl; then
+		sed -i 's/sdl-config/sdl2-config/' configure || die
+		echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+	fi
+
+	#443830
+	echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+	if tc-is-clang; then
+		# clang assembler chokes on comments starting with /
+		sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+		# clang does not support this extension
+		eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+	fi
+
+	# fix doc generation
+	echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+	# replace xhtml names with numeric equivalents
+	find doc/manual -name \*.xml -exec sed -i \
+		-e 's/&nbsp;/\&#160;/g' \
+		-e 's/&ndash;/\&#8211;/g' \
+		-e 's/&larr;/\&#8592;/g' \
+		-e 's/&rarr;/\&#8594;/g' \
+		-e 's/&harr;/\&#8596;/g' {} \+ || die
+
+	# fix help path #891879
+	echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
+
+	# 489208
+	# Cannot patch the whole text, many translations.  Use sed instead to replace the command
+	find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
+		's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
+	sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
+		src/VBox/Frontends/VirtualBox/src/main.cpp \
+		src/VBox/VMM/VMMR3/VM.cpp || die
+
+	# 890561
+	echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+
+	if ! use nls && ! use gui; then
+		cat >> LocalConfig.kmk <<-EOF || die
+			VBOX_WITH_NLS :=
+			VBOX_WITH_MAIN_NLS :=
+			VBOX_WITH_PUEL_NLS :=
+			VBOX_WITH_VBOXMANAGE_NLS :=
+		EOF
+	fi
+}
+
+src_configure() {
+	tc-ld-disable-gold # bug #488176
+
+	tc-export AR CC CXX LD RANLIB
+	export HOST_CC="$(tc-getBUILD_CC)"
+
+	local myconf=(
+		--with-gcc="$(tc-getCC)"
+		--with-g++="$(tc-getCXX)"
+
+		--disable-kmods
+
+		$(usev !alsa --disable-alsa)
+		$(usev !dbus --disable-dbus)
+		$(usev debug --build-debug)
+		$(usev !doc --disable-docs)
+		$(usev !java --disable-java)
+		$(usev !lvm --disable-devmapper)
+		$(usev !pulseaudio --disable-pulse)
+		$(usev !python --disable-python)
+		$(usev vboxwebsrv --enable-webservice)
+		$(usev vde --enable-vde)
+		$(usev vnc --enable-vnc)
+	)
+
+	if use gui || use sdl || use opengl; then
+		myconf+=(
+			$(usev !opengl --disable-opengl)
+			$(usev !gui --disable-qt)
+			$(usev !sdl --disable-sdl)
+		)
+	else
+		myconf+=(
+			--build-headless
+		)
+	fi
+
+	if use amd64 && ! has_multilib_profile; then
+		myconf+=( --disable-vmmraw )
+	fi
+
+	# not an autoconf script
+	edo ./configure "${myconf[@]}"
+
+	# Force usage of chosen Python implementation
+	# bug #856121, bug #785835
+	sed -i \
+		-e '/VBOX_WITH_PYTHON.*=/d' \
+		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
+		-e '/VBOX_LIB_PYTHON.*=/d' \
+		AutoConfig.kmk || die
+
+	cat >> AutoConfig.kmk <<-EOF || die
+		VBOX_WITH_PYTHON=$(usev python 1)
+		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+		VBOX_LIB_PYTHON=$(python_get_library_path)
+	EOF
+
+	if use python; then
+		local mangled_python="${EPYTHON#python}"
+		mangled_python="${mangled_python/.}"
+
+		# Stub out the script which defines what the Makefile ends up
+		# building for. gen_python_deps.py gets called by the Makefile
+		# with some args and it spits out a bunch of paths for a hardcoded
+		# list of Pythons. We just override it with what we're actually using.
+		# This minimises the amount of patching we have to do for new Pythons.
+		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+		EOF
+
+		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+	fi
+}
+
+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_WITH_VBOXIMGMOUNT=1
+
+		KBUILD_VERBOSE=2
+
+		AS="$(tc-getCC)"
+		CC="$(tc-getCC)"
+		CXX="$(tc-getCXX)"
+
+		TOOL_GCC3_CC="$(tc-getCC)"
+		TOOL_GCC3_LD="$(tc-getCC)"
+		TOOL_GCC3_AS="$(tc-getCC)"
+		TOOL_GCC3_AR="$(tc-getAR)"
+		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+		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_GCC3_CFLAGS="${CFLAGS}"
+		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+		VBOX_GCC_OPT="${CXXFLAGS}"
+		VBOX_NM="$(tc-getNM)"
+
+		TOOL_YASM_AS=yasm
+	)
+
+	if use amd64 && has_multilib_profile; then
+		myemakeargs+=(
+			CC32="$(tc-getCC) -m32"
+			CXX32="$(tc-getCXX) -m32"
+
+			TOOL_GCC32_CC="$(tc-getCC) -m32"
+			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+			TOOL_GCC32_LD="$(tc-getCC) -m32"
+			TOOL_GCC32_AS="$(tc-getCC) -m32"
+			TOOL_GCC32_AR="$(tc-getAR)"
+			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+			TOOL_GXX32_CC="$(tc-getCC) -m32"
+			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+			TOOL_GXX32_LD="$(tc-getCXX) -m32"
+			TOOL_GXX32_AS="$(tc-getCXX) -m32"
+			TOOL_GXX32_AR="$(tc-getAR)"
+			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+		)
+	fi
+
+	MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+	vbox_inst() {
+		local binary="${1}"
+		local perms="${2:-0750}"
+		local path="${3:-${vbox_inst_path}}"
+
+		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+		insinto ${path}
+		doins ${binary}
+		fowners root:vboxusers ${path}/${binary}
+		fperms ${perms} ${path}/${binary}
+	}
+
+	# Create configuration files
+	insinto /etc/vbox
+	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+	# Set the correct libdir
+	sed \
+		-e "s@MY_LIBDIR@$(get_libdir)@" \
+		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+	# Install the wrapper script
+	exeinto ${vbox_inst_path}
+	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+	fowners root:vboxusers ${vbox_inst_path}/VBox
+	fperms 0750 ${vbox_inst_path}/VBox
+
+	# Install binaries and libraries
+	insinto ${vbox_inst_path}
+	doins -r components
+
+	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
+		vboximg-mount vbox-img *so *r0; do
+		vbox_inst ${each}
+	done
+
+	# These binaries need to be suid root.
+	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+		vbox_inst ${each} 4750
+	done
+
+	# Install EFI Firmware files (bug #320757)
+	for each in VBoxEFI{32,64}.fd ; do
+		vbox_inst ${each} 0644
+	done
+
+	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+	# VBoxXPCOMIPCD (bug #524202)
+	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+		pax-mark -m "${ED}"${vbox_inst_path}/${each}
+	done
+
+	# Symlink binaries to the shipped wrapper
+	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+		VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+	done
+	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+	dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+	if use pam; then
+		# VRDPAuth only works with this (bug #351949)
+		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+	fi
+
+	# set an env-variable for 3rd party tools
+	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	doenvd "${T}/90virtualbox"
+
+	if use sdl; then
+		vbox_inst VBoxSDL 4750
+		pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+		for each in vboxsdl VBoxSDL ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+	fi
+
+	if use gui; then
+		vbox_inst VirtualBox
+		vbox_inst VirtualBoxVM 4750
+		for each in VirtualBox{,VM} ; do
+			pax-mark -m "${ED}"${vbox_inst_path}/${each}
+		done
+
+		if use opengl; then
+			vbox_inst VBoxTestOGL
+			pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+		fi
+
+		for each in virtualbox{,vm} VirtualBox{,VM} ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+
+		insinto /usr/share/${PN}
+		doins -r nls
+		doins -r UnattendedTemplates
+
+		domenu ${PN}.desktop
+
+		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+		for size in 16 32 48 64 128 ; do
+			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+		done
+		newicon ${PN}-48px.png ${PN}.png
+		doicon -s scalable ${PN}.svg
+		popd &>/dev/null || die
+		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+		for size in 16 24 32 48 64 72 96 128 256 512 ; do
+			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+				icofile="${PN}-${ico}-${size}px.png"
+				if [[ -f "${icofile}" ]]; then
+					newicon -s ${size} ${icofile} ${PN}-${ico}.png
+				fi
+			done
+		done
+		popd &>/dev/null || die
+	fi
+
+	if use lvm; then
+		vbox_inst VBoxVolInfo 4750
+		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+	fi
+
+	if use sdk; then
+		insinto ${vbox_inst_path}
+		doins -r sdk
+
+		if use java; then
+			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+		fi
+	fi
+
+	if use udev; then
+		local udevdir="$(get_udevdir)"
+		local udev_file="VBoxCreateUSBNode.sh"
+		local rules_file="10-virtualbox.rules"
+
+		insinto ${udevdir}
+		doins ${udev_file}
+		fowners root:vboxusers ${udevdir}/${udev_file}
+		fperms 0750 ${udevdir}/${udev_file}
+
+		insinto ${udevdir}/rules.d
+		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+			> "${T}"/${rules_file} || die
+		doins "${T}"/${rules_file}
+	fi
+
+	if use vboxwebsrv; then
+		vbox_inst vboxwebsrv
+		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+	fi
+
+	# Remove dead symlinks (bug #715338)
+	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+	# Fix version string in extensions or else they don't get accepted
+	# by the virtualbox host process (see bug #438930)
+	find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+	if use vnc; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/VNC
+	fi
+
+	if use dtrace; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+	fi
+
+	if use doc; then
+		dodoc UserManual.pdf UserManual.q{ch,hc}
+		docompress -x /usr/share/doc/${PF}
+	elif use gui; then
+		dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc}
+		docompress -x /usr/share/doc/${PF}
+	fi
+
+	if use python; then
+		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+		if [[ ! -x "${python_path_ext}" ]]; then
+			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+			eerror "but none were installed. This may happen if support for a Python target"
+			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+		fi
+	fi
+
+	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use udev; then
+		udev_reload
+		udevadm trigger --subsystem-match=usb
+	fi
+
+	tmpfiles_process virtualbox-vboxusb.conf
+
+	if use gui; then
+		elog "To launch VirtualBox just type: \"virtualbox\"."
+	fi
+
+	elog "You must be in the vboxusers group to use VirtualBox."
+	elog ""
+	elog "The latest user manual is available for download at:"
+	elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+	elog ""
+
+	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+	if ! use udev; then
+		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+	fi
+}
+
+pkg_postrm() {
+	xdg_pkg_postrm
+
+	use udev && udev_reload
+}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2023-05-15 14:35 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2023-05-15 14:35 UTC (permalink / raw
  To: gentoo-commits

commit:     bdb82397c63941c5a2e59804a62ee1d7f1533802
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Mon May 15 14:30:17 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Mon May 15 14:34:11 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bdb82397

app-emulation/virtualbox: fix building with dev-libs/libxml2-2.11

Closes: https://bugs.gentoo.org/906309
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 .../files/virtualbox-7.0.6-fix-libxml2.patch       | 169 +++++++++++++++++++++
 .../virtualbox/virtualbox-7.0.6-r2.ebuild          |   1 +
 app-emulation/virtualbox/virtualbox-7.0.8a.ebuild  |   1 +
 3 files changed, 171 insertions(+)

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.6-fix-libxml2.patch b/app-emulation/virtualbox/files/virtualbox-7.0.6-fix-libxml2.patch
new file mode 100644
index 000000000000..9da2891721d9
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.6-fix-libxml2.patch
@@ -0,0 +1,169 @@
+With dev-libs/libxml2-2.11, xi:include errors out if it can't find a file, so add an empty fallback.
+Used to work with dev-libs/libxml2-2.10.
+
+Upstream has removed user_ and overview_ altogether in the next release as part of a larger docs change,
+so this no longer applies.
+
+See also: https://bugs.gentoo.org/906309
+
+--- a/doc/manual/en_US/user_VBoxManage.xml
++++ b/doc/manual/en_US/user_VBoxManage.xml
+@@ -242,107 +242,107 @@
+       on your particular host.
+     </para>
+ 
+-    <xi:include href="overview_man_VBoxManage-common.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-common.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-list.xml"           xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-list.xml"           xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-showvminfo.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-showvminfo.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-registervm.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-registervm.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-unregistervm.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-unregistervm.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-createvm.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-createvm.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-modifyvm.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-modifyvm.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-clonevm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-clonevm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-movevm.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-movevm.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-encryptvm.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-encryptvm.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-cloud.xml"          xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-cloud.xml"          xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-cloudprofile.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-cloudprofile.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-import.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-import.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-export.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-export.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-signova.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-signova.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-startvm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-startvm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-controlvm.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-controlvm.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-unattended.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-unattended.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-discardstate.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-discardstate.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-adoptstate.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-adoptstate.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-snapshot.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-snapshot.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-closemedium.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-closemedium.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-storageattach.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-storageattach.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-storagectl.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-storagectl.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-bandwidthctl.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-bandwidthctl.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-showmediuminfo.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-showmediuminfo.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-createmedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-createmedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-modifymedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-modifymedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-clonemedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-clonemedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-mediumproperty.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-mediumproperty.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-encryptmedium.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-encryptmedium.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-checkmediumpwd.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-checkmediumpwd.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-convertfromraw.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-convertfromraw.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-mediumio.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-mediumio.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-setextradata.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-setextradata.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-getextradata.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-getextradata.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-setproperty.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-setproperty.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-usbfilter.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-usbfilter.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-sharedfolder.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-sharedfolder.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-guestproperty.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-guestproperty.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-guestcontrol.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-guestcontrol.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-debugvm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-debugvm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-metrics.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-metrics.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-natnetwork.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-natnetwork.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-hostonlyif.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-hostonlyif.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-hostonlynet.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-hostonlynet.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-dhcpserver.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-dhcpserver.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-usbdevsource.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-usbdevsource.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-extpack.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-extpack.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-updatecheck.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-updatecheck.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+-    <xi:include href="overview_man_VBoxManage-modifynvram.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++    <xi:include href="overview_man_VBoxManage-modifynvram.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+     <para>
+       Each time <command>VBoxManage</command> is invoked, only one

diff --git a/app-emulation/virtualbox/virtualbox-7.0.6-r2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.6-r2.ebuild
index 02b13adc7290..ebbe07aa2de2 100644
--- a/app-emulation/virtualbox/virtualbox-7.0.6-r2.ebuild
+++ b/app-emulation/virtualbox/virtualbox-7.0.6-r2.ebuild
@@ -205,6 +205,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
 	"${FILESDIR}"/${PN}-7.0.0-python3_11.patch
 	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
+	"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
 
 	# Downloaded patchset
 	"${WORKDIR}"/virtualbox-patches-6.1.36/patches

diff --git a/app-emulation/virtualbox/virtualbox-7.0.8a.ebuild b/app-emulation/virtualbox/virtualbox-7.0.8a.ebuild
index 404a9f53d2bb..c3be27bf7acd 100644
--- a/app-emulation/virtualbox/virtualbox-7.0.8a.ebuild
+++ b/app-emulation/virtualbox/virtualbox-7.0.8a.ebuild
@@ -206,6 +206,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-7.0.8-python3_11.patch
 	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
 	"${FILESDIR}"/${PN}-7.0.8-mtune-keep-size.patch
+	"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
 
 	# Downloaded patchset
 	"${WORKDIR}"/virtualbox-patches-7.0.8/patches


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2023-06-02 18:27 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2023-06-02 18:27 UTC (permalink / raw
  To: gentoo-commits

commit:     85b9381262655b68fe5f48e0e586d383f9e52c97
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  2 18:20:21 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Fri Jun  2 18:27:28 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=85b93812

app-emulation/virtualbox: fix building with dev-libs/libxml2-2.11

Replace some xhtml codes with their numeric equivalents and add empty
fallbacks for missing files.  Nothing changes in the resulting files.

Closes: https://bugs.gentoo.org/906309
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 .../files/virtualbox-6.1.44-fix-libxml2.patch      | 25 ++++++++++++++++++++++
 app-emulation/virtualbox/virtualbox-6.1.44.ebuild  | 11 ++++++++++
 2 files changed, 36 insertions(+)

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.44-fix-libxml2.patch b/app-emulation/virtualbox/files/virtualbox-6.1.44-fix-libxml2.patch
new file mode 100644
index 000000000000..c3e76e58c3f2
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.1.44-fix-libxml2.patch
@@ -0,0 +1,25 @@
+With dev-libs/libxml2-2.11, xi:include errors out if it can't find a file, so add an empty fallback.
+Used to work with dev-libs/libxml2-2.10.
+
+See also: https://bugs.gentoo.org/906309
+
+--- a/doc/manual/en_US/user_Frontends.xml
++++ b/doc/manual/en_US/user_Frontends.xml
+@@ -1205,6 +1205,6 @@
+ 
+   </sect1>
+ 
+-  <xi:include href="user_man_VBoxHeadless.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++  <xi:include href="user_man_VBoxHeadless.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+ </chapter>
+--- b/doc/manual/en_US/user_VBoxManage.xml
++++ a/doc/manual/en_US/user_VBoxManage.xml
+@@ -8975,6 +8975,6 @@
+ <!-- TODO: Figure out how we can handle other manpages. The xml is bolted to
+              sect1, so it's not possible to have them "in place" -->
+ 
+-  <xi:include href="user_man_vboximg-mount.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++  <xi:include href="user_man_vboximg-mount.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+ 
+ </chapter>

diff --git a/app-emulation/virtualbox/virtualbox-6.1.44.ebuild b/app-emulation/virtualbox/virtualbox-6.1.44.ebuild
index 84d1d998b3b0..b148184cbd9b 100644
--- a/app-emulation/virtualbox/virtualbox-6.1.44.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.1.44.ebuild
@@ -179,6 +179,9 @@ PATCHES=(
 	# 865361
 	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
 
+	# 906309
+	"${FILESDIR}"/${PN}-6.1.44-fix-libxml2.patch
+
 	# Downloaded patchset
 	"${WORKDIR}"/virtualbox-patches-6.1.36/patches
 )
@@ -278,6 +281,14 @@ src_configure() {
 		append-cxxflags $(test-flags-CXX -mno-$i)
 	done
 
+	# replace xhtml names with numeric equivalents
+	find doc/manual -name \*.xml -exec sed -i \
+		-e 's/&nbsp;/\&#160;/g' \
+		-e 's/&ndash;/\&#8211;/g' \
+		-e 's/&larr;/\&#8592;/g' \
+		-e 's/&rarr;/\&#8594;/g' \
+		-e 's/&harr;/\&#8596;/g' {} \+ || die
+
 	tc-export AR CC CXX LD RANLIB
 	export HOST_CC="$(tc-getBUILD_CC)"
 


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2023-07-20  9:40 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2023-07-20  9:40 UTC (permalink / raw
  To: gentoo-commits

commit:     cc1042f8f7b3e79d61a5080800b8dfcbb2c4c54a
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 19 07:35:21 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Thu Jul 20 09:36:35 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cc1042f8

app-emulation/virtualbox: add 7.0.10

Bug: https://bugs.gentoo.org/910579
Closes: https://bugs.gentoo.org/910509
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   2 +
 .../files/virtualbox-7.0.10-python.patch           |  18 +
 app-emulation/virtualbox/virtualbox-7.0.10.ebuild  | 735 +++++++++++++++++++++
 3 files changed, 755 insertions(+)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index b63584f7520a..214303201dbb 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,6 +1,8 @@
 DIST VirtualBox-6.1.44.tar.bz2 165775421 BLAKE2B e87d7175bc616784c79d02b595d81119cedc7f4df1822b71ca10b85d44d5cd1dacd999e7867a0bef8579ea715ef732b990cef63f3325fff0c139abe394d88ad7 SHA512 49c3baa1a40dcafcc6b31d0abcfecfcb24305de44e5efd3f68ba4443574e21b8cc34d7288e0fbc56730bc3be2bee07089b7dfed14848a88dc38a1433b6dda8af
 DIST VirtualBox-6.1.46.tar.bz2 166045588 BLAKE2B 041fad30d7cbe524cfd5c865b225c00df7715a6648ed0d8f7ee3ca4be0d0dabcb324c676ba2ea78288cde89ed8e5412fae75e31bb49f623de2acddb8f10d6ee1 SHA512 695ca4d41ff10d0581e4cffe4a0ec80e0fe380f4c7d5d51ee4d21aeb61646c26edd60301e541894e71c3323e2d7207e23299938c18ee45631afd1e0851946e77
+DIST VirtualBox-7.0.10.tar.bz2 175450841 BLAKE2B 49eaa14f716f021f1ecec1ad48a2aa8a3a758cbd9b03cf30d65ddcf5aba11842b0ea8bc2c4d477084a4cea318dc302a4ed426ec9f675a1fe675c5f18c48796c7 SHA512 2870d39385f66557281edf1368db68cd69d6a9bebc30d52511929462d0ac210cec49dd8531a280c6facff22ba6e4808477fbf3d09abf998d863a007fc7f2c3bd
 DIST VirtualBox-7.0.8a.tar.bz2 199387757 BLAKE2B 0ba397825277ecbb851bd4ea94c85448e2966fd96ef8edcaf3102f8515553736d6ceee84c0647fa37443c1875256353fdd029d6c505aa99834079acb957b24a0 SHA512 fcbf907f6f7f2396ebff5a31af6ec00b38f09799380bac4847cc9044455832de058659edaa9f621b0054fa402bfacef1b5444498c9faeb3671d02da1505c952d
+DIST virtualbox-help-7.0.10.tar.xz 3941196 BLAKE2B fa6667e0cf12e2e05b896a7d9d7e1f78d43bb4618f35b3c81f5ccf5f227d1181b0c8fb1f6dc02a8619550b193a73d4094c5d3f0d43514392f9ed563085068789 SHA512 fab2dff812a438f3e78dbace24741d91b317bbbc7362f082a18f3871e3c6fd8af7744cf1b3fd3b82cf5135e03d521de05a7a5bc98ec19aacfa1b4e5392e60f30
 DIST virtualbox-help-7.0.8.tar.xz 3941816 BLAKE2B f1c82ccc8a0d4e99f2302a7024a551e7e4a70348b193cf0c3a3b2917a717451c74d652555cadb278f6e27c47dac88a8121acfe9425bc0f5b82b5101475f384b3 SHA512 7483c4321492effb5b4329d48b363d8d2b3aaa248c0259cd06569497090aa438c39e94d6a5da4f511202f424e596f66e7580e37ffa5da66661fd0fadcd99c5ef
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
 DIST virtualbox-patches-7.0.10_pre20230615.tar.bz2 2253 BLAKE2B 27b422acc2ae85c4324d6f4471db80c9f680b1c4a00223c38b9e3fb31709b05163a1bd53408cffeabdef295e856aa8b01b86e0fecf5d80ace376ea1bd4fc9504 SHA512 c2177f46048f09b6be9ac2c35b43d74f67350b052411cc64adf6c0b3d284055eef79f960f1384a3aaeee7d25f8c19ea8f936ee2623a2251d1d28f85ed3469c22

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.10-python.patch b/app-emulation/virtualbox/files/virtualbox-7.0.10-python.patch
new file mode 100644
index 000000000000..f972580cb6c5
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.10-python.patch
@@ -0,0 +1,18 @@
+Virtualbox 7.x will only build a lib named VBoxPython3.so, regardless of the
+actual python version used when compiling.  Remove VBoxPython3m.so, we don't
+use it.
+
+--- a/src/libs/xpcom18a4/python/Makefile.kmk
++++ b/src/libs/xpcom18a4/python/Makefile.kmk
+@@ -693,11 +693,6 @@
+    VBoxPython3_EXTENDS   = VBoxPythonBase
+    VBoxPython3_DEFS      = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS)) Py_LIMITED_API=0x03030000
+    VBoxPython3_INCS      = $(VBoxPythonBase_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
+-
+-   DLLS += VBoxPython3m
+-   VBoxPython3m_EXTENDS  = VBoxPythonBase_m
+-   VBoxPython3m_DEFS     = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_m_DEFS)) Py_LIMITED_API=0x03030000
+-   VBoxPython3m_INCS     = $(VBoxPythonBase_m_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
+   endif
+  endif # VBOX_WITH_PYTHON_LIMITED_API
+ 

diff --git a/app-emulation/virtualbox/virtualbox-7.0.10.ebuild b/app-emulation/virtualbox/virtualbox-7.0.10.ebuild
new file mode 100644
index 000000000000..a20f38fac366
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.10.ebuild
@@ -0,0 +1,735 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+#    Do NOT skip this part. It'll end up silently not-building the Python extension
+#    or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
+#  Python versions as upstream tends to lag. Upstream may have patches on their
+#  trunk branch but not release branch.
+#
+#  See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+	python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+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.8.tar.bz2
+	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
+"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+	${PYTHON_DEPS}
+	acct-group/vboxusers
+	~app-emulation/virtualbox-modules-${PV}
+	dev-libs/libtpms
+	dev-libs/libxml2
+	dev-libs/openssl:0=
+	media-libs/libpng:0=
+	media-libs/libvpx:0=
+	net-misc/curl
+	sys-libs/zlib
+	dbus? ( sys-apps/dbus )
+	gui? (
+		dev-qt/qtcore:5
+		dev-qt/qtdbus:5
+		dev-qt/qtgui:5
+		dev-qt/qthelp:5
+		dev-qt/qtprintsupport:5
+		dev-qt/qtwidgets:5
+		dev-qt/qtx11extras:5
+		dev-qt/qtxml:5
+		x11-libs/libX11
+		x11-libs/libXt
+		opengl? ( dev-qt/qtopengl:5 )
+	)
+	lvm? ( sys-fs/lvm2 )
+	opengl? (
+		media-libs/libglvnd[X]
+		media-libs/vulkan-loader
+		x11-libs/libX11
+		x11-libs/libXt
+	)
+	pam? ( sys-libs/pam )
+	sdl? (
+		media-libs/libsdl2[X,video]
+		x11-libs/libX11
+		x11-libs/libXcursor
+		x11-libs/libXt
+	)
+	vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+	vde? ( net-misc/vde )
+	vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+	${COMMON_DEPEND}
+	>=dev-libs/libxslt-1.1.19
+	virtual/libcrypt:=
+	alsa? ( >=media-libs/alsa-lib-1.0.13 )
+	gui? (
+		x11-base/xorg-proto
+		x11-libs/libxcb:=
+		x11-libs/libXcursor
+		x11-libs/libXext
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libXrandr
+	)
+	java? ( virtual/jdk:1.8 )
+	opengl? (
+		x11-base/xorg-proto
+		x11-libs/libXcursor
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libXrandr
+		virtual/glu
+	)
+	sdl? ( x11-libs/libXinerama )
+	pulseaudio? ( media-libs/libpulse )
+	udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	gui? ( x11-libs/libxcb:= )
+	java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	>=app-arch/tar-1.34-r2
+	>=dev-lang/yasm-0.6.2
+	dev-libs/libIDL
+	dev-util/glslang
+	>=dev-util/kbuild-0.1.9998.3592
+	sys-apps/which
+	sys-devel/bin86
+	sys-libs/libcap
+	sys-power/iasl
+	virtual/pkgconfig
+	doc? (
+		app-text/docbook-sgml-dtd:4.4
+		app-text/docbook-xsl-ns-stylesheets
+		dev-texlive/texlive-basic
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexrecommended
+		dev-texlive/texlive-latexextra
+		dev-texlive/texlive-fontsrecommended
+		dev-texlive/texlive-fontsextra
+		dev-qt/qthelp:5
+	)
+	gui? ( dev-qt/linguist-tools:5 )
+	nls? ( dev-qt/linguist-tools:5 )
+	java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+	usr/lib64/virtualbox/iPxeBaseBin
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+	usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+	java? ( sdk )
+	python? ( sdk )
+	vboxwebsrv? ( java )
+	${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
+
+	# This patch is needed to avoid automagic detection based on a hardcoded
+	# list of Pythons in configure. It's necessary but not sufficient
+	# (see the rest of the ebuild's logic for the remainder) to handle
+	# proper Python selection.
+	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
+
+	# 865361
+	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
+
+	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
+	"${FILESDIR}"/${PN}-7.0.10-python.patch
+	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
+	"${FILESDIR}"/${PN}-7.0.8-mtune-keep-size.patch
+	"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
+
+	# Downloaded patchset
+	"${WORKDIR}"/virtualbox-patches-7.0.8/patches
+)
+
+pkg_pretend() {
+	if ! use gui; then
+		einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+	fi
+
+	if ! use opengl; then
+		einfo "No USE=\"opengl\" selected, this build will lack"
+		einfo "the OpenGL feature."
+	fi
+	if ! use python; then
+		einfo "You have disabled the \"python\" USE flag. This will only"
+		einfo "disable the python bindings being installed."
+	fi
+	if ! use nls && use gui; then
+		einfo "USE=\"gui\" also selects USE=\"nls\".  This build"
+		einfo "will have NLS support."
+	fi
+
+	# 749273
+	local d=${ROOT}
+	for i in usr "$(get_libdir)"; do
+		d="${d}/$i"
+		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+			die "${d} should be owned by root, VirtualBox will not start otherwise"
+		fi
+	done
+}
+
+pkg_setup() {
+	java-pkg-opt-2_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	# Only add nopie patch when we're on hardened
+	if gcc-specs-pie; then
+		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+	fi
+
+	# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+	rm -r kBuild/bin || die
+	# Remove everything in tools except kBuildUnits
+	find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+	# Disable things unused or split into separate ebuilds
+	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+	if ! use pch; then
+		# bug #753323
+		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+			>> LocalConfig.kmk || die
+	fi
+
+	# Respect LDFLAGS
+	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+	# Do not use hard-coded ld (related to bug #488176)
+	sed -e '/QUIET)ld /s@ld @$(LD) @' \
+		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+	# Use PAM only when pam USE flag is enbaled (bug #376531)
+	if ! use pam; then
+		einfo "Disabling PAM removes the possibility to use the VRDP features."
+		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+			src/VBox/HostServices/Makefile.kmk || die
+		echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+	fi
+
+	# add correct java path
+	if use java; then
+		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+			-i "${S}"/Config.kmk || die
+		java-pkg-opt-2_src_prepare
+	fi
+
+	#856811 #864274
+	# cannot filter out only one flag, some combinations of these flags produce buggy executables
+	for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+		append-cflags $(test-flags-CC -mno-$i)
+		append-cxxflags $(test-flags-CXX -mno-$i)
+	done
+
+	# bug #843437
+	cat >> LocalConfig.kmk <<-EOF || die
+		CXXFLAGS=${CXXFLAGS}
+		CFLAGS=${CFLAGS}
+	EOF
+
+	if use sdl; then
+		sed -i 's/sdl-config/sdl2-config/' configure || die
+		echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+	fi
+
+	#443830
+	echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+	if tc-is-clang; then
+		# clang assembler chokes on comments starting with /
+		sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+		# clang does not support this extension
+		eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+	fi
+
+	# fix doc generation
+	echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+	# replace xhtml names with numeric equivalents
+	find doc/manual -name \*.xml -exec sed -i \
+		-e 's/&nbsp;/\&#160;/g' \
+		-e 's/&ndash;/\&#8211;/g' \
+		-e 's/&larr;/\&#8592;/g' \
+		-e 's/&rarr;/\&#8594;/g' \
+		-e 's/&harr;/\&#8596;/g' {} \+ || die
+
+	# fix help path #891879
+	echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
+
+	# 489208
+	# Cannot patch the whole text, many translations.  Use sed instead to replace the command
+	find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
+		's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
+	sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
+		src/VBox/Frontends/VirtualBox/src/main.cpp \
+		src/VBox/VMM/VMMR3/VM.cpp || die
+
+	# 890561
+	echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+
+	if ! use nls && ! use gui; then
+		cat >> LocalConfig.kmk <<-EOF || die
+			VBOX_WITH_NLS :=
+			VBOX_WITH_MAIN_NLS :=
+			VBOX_WITH_PUEL_NLS :=
+			VBOX_WITH_VBOXMANAGE_NLS :=
+		EOF
+	fi
+}
+
+src_configure() {
+	tc-ld-disable-gold # bug #488176
+
+	tc-export AR CC CXX LD RANLIB
+	export HOST_CC="$(tc-getBUILD_CC)"
+
+	local myconf=(
+		--with-gcc="$(tc-getCC)"
+		--with-g++="$(tc-getCXX)"
+
+		--disable-kmods
+
+		$(usev !alsa --disable-alsa)
+		$(usev !dbus --disable-dbus)
+		$(usev debug --build-debug)
+		$(usev !doc --disable-docs)
+		$(usev !java --disable-java)
+		$(usev !lvm --disable-devmapper)
+		$(usev !pulseaudio --disable-pulse)
+		$(usev !python --disable-python)
+		$(usev vboxwebsrv --enable-webservice)
+		$(usev vde --enable-vde)
+		$(usev vnc --enable-vnc)
+	)
+
+	if use gui || use sdl || use opengl; then
+		myconf+=(
+			$(usev !opengl --disable-opengl)
+			$(usev !gui --disable-qt)
+			$(usev !sdl --disable-sdl)
+		)
+	else
+		myconf+=(
+			--build-headless
+		)
+	fi
+
+	if use amd64 && ! has_multilib_profile; then
+		myconf+=( --disable-vmmraw )
+	fi
+
+	# not an autoconf script
+	edo ./configure "${myconf[@]}"
+
+	# Force usage of chosen Python implementation
+	# bug #856121, bug #785835
+	sed -i \
+		-e '/VBOX_WITH_PYTHON.*=/d' \
+		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
+		-e '/VBOX_LIB_PYTHON.*=/d' \
+		AutoConfig.kmk || die
+
+	cat >> AutoConfig.kmk <<-EOF || die
+		VBOX_WITH_PYTHON=$(usev python 1)
+		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+		VBOX_LIB_PYTHON=$(python_get_library_path)
+	EOF
+
+	if use python; then
+		local mangled_python="${EPYTHON#python}"
+		mangled_python="${mangled_python/.}"
+
+		# Stub out the script which defines what the Makefile ends up
+		# building for. gen_python_deps.py gets called by the Makefile
+		# with some args and it spits out a bunch of paths for a hardcoded
+		# list of Pythons. We just override it with what we're actually using.
+		# This minimises the amount of patching we have to do for new Pythons.
+		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+		EOF
+
+		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+	fi
+}
+
+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_WITH_VBOXIMGMOUNT=1
+
+		KBUILD_VERBOSE=2
+
+		AS="$(tc-getCC)"
+		CC="$(tc-getCC)"
+		CXX="$(tc-getCXX)"
+
+		TOOL_GCC3_CC="$(tc-getCC)"
+		TOOL_GCC3_LD="$(tc-getCC)"
+		TOOL_GCC3_AS="$(tc-getCC)"
+		TOOL_GCC3_AR="$(tc-getAR)"
+		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+		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_GCC3_CFLAGS="${CFLAGS}"
+		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+		VBOX_GCC_OPT="${CXXFLAGS}"
+		VBOX_NM="$(tc-getNM)"
+
+		TOOL_YASM_AS=yasm
+	)
+
+	if use amd64 && has_multilib_profile; then
+		myemakeargs+=(
+			CC32="$(tc-getCC) -m32"
+			CXX32="$(tc-getCXX) -m32"
+
+			TOOL_GCC32_CC="$(tc-getCC) -m32"
+			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+			TOOL_GCC32_LD="$(tc-getCC) -m32"
+			TOOL_GCC32_AS="$(tc-getCC) -m32"
+			TOOL_GCC32_AR="$(tc-getAR)"
+			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+			TOOL_GXX32_CC="$(tc-getCC) -m32"
+			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+			TOOL_GXX32_LD="$(tc-getCXX) -m32"
+			TOOL_GXX32_AS="$(tc-getCXX) -m32"
+			TOOL_GXX32_AR="$(tc-getAR)"
+			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+		)
+	fi
+
+	MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+	vbox_inst() {
+		local binary="${1}"
+		local perms="${2:-0750}"
+		local path="${3:-${vbox_inst_path}}"
+
+		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+		insinto ${path}
+		doins ${binary}
+		fowners root:vboxusers ${path}/${binary}
+		fperms ${perms} ${path}/${binary}
+	}
+
+	# Create configuration files
+	insinto /etc/vbox
+	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+	# Set the correct libdir
+	sed \
+		-e "s@MY_LIBDIR@$(get_libdir)@" \
+		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+	# Install the wrapper script
+	exeinto ${vbox_inst_path}
+	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+	fowners root:vboxusers ${vbox_inst_path}/VBox
+	fperms 0750 ${vbox_inst_path}/VBox
+
+	# Install binaries and libraries
+	insinto ${vbox_inst_path}
+	doins -r components
+
+	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
+		vboximg-mount vbox-img *so *r0; do
+		vbox_inst ${each}
+	done
+
+	# These binaries need to be suid root.
+	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+		vbox_inst ${each} 4750
+	done
+
+	# Install EFI Firmware files (bug #320757)
+	for each in VBoxEFI{32,64}.fd ; do
+		vbox_inst ${each} 0644
+	done
+
+	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+	# VBoxXPCOMIPCD (bug #524202)
+	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+		pax-mark -m "${ED}"${vbox_inst_path}/${each}
+	done
+
+	# Symlink binaries to the shipped wrapper
+	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+		VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+	done
+	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+	dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+	if use pam; then
+		# VRDPAuth only works with this (bug #351949)
+		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+	fi
+
+	# set an env-variable for 3rd party tools
+	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	doenvd "${T}/90virtualbox"
+
+	if use sdl; then
+		vbox_inst VBoxSDL 4750
+		pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+		for each in vboxsdl VBoxSDL ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+	fi
+
+	if use gui; then
+		vbox_inst VirtualBox
+		vbox_inst VirtualBoxVM 4750
+		for each in VirtualBox{,VM} ; do
+			pax-mark -m "${ED}"${vbox_inst_path}/${each}
+		done
+
+		if use opengl; then
+			vbox_inst VBoxTestOGL
+			pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+		fi
+
+		for each in virtualbox{,vm} VirtualBox{,VM} ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+
+		insinto /usr/share/${PN}
+		doins -r nls
+		doins -r UnattendedTemplates
+
+		domenu ${PN}.desktop
+
+		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+		for size in 16 32 48 64 128 ; do
+			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+		done
+		newicon ${PN}-48px.png ${PN}.png
+		doicon -s scalable ${PN}.svg
+		popd &>/dev/null || die
+		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+		for size in 16 24 32 48 64 72 96 128 256 512 ; do
+			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+				icofile="${PN}-${ico}-${size}px.png"
+				if [[ -f "${icofile}" ]]; then
+					newicon -s ${size} ${icofile} ${PN}-${ico}.png
+				fi
+			done
+		done
+		popd &>/dev/null || die
+	fi
+
+	if use lvm; then
+		vbox_inst VBoxVolInfo 4750
+		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+	fi
+
+	if use sdk; then
+		insinto ${vbox_inst_path}
+		doins -r sdk
+
+		if use java; then
+			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+		fi
+	fi
+
+	if use udev; then
+		local udevdir="$(get_udevdir)"
+		local udev_file="VBoxCreateUSBNode.sh"
+		local rules_file="10-virtualbox.rules"
+
+		insinto ${udevdir}
+		doins ${udev_file}
+		fowners root:vboxusers ${udevdir}/${udev_file}
+		fperms 0750 ${udevdir}/${udev_file}
+
+		insinto ${udevdir}/rules.d
+		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+			> "${T}"/${rules_file} || die
+		doins "${T}"/${rules_file}
+	fi
+
+	if use vboxwebsrv; then
+		vbox_inst vboxwebsrv
+		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+	fi
+
+	# Remove dead symlinks (bug #715338)
+	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+	# Fix version string in extensions or else they don't get accepted
+	# by the virtualbox host process (see bug #438930)
+	find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+	if use vnc; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/VNC
+	fi
+
+	if use dtrace; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+	fi
+
+	if use doc; then
+		dodoc UserManual.pdf UserManual.q{ch,hc}
+		docompress -x /usr/share/doc/${PF}
+	elif use gui; then
+		dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc}
+		docompress -x /usr/share/doc/${PF}
+	fi
+
+	if use python; then
+		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+		if [[ ! -x "${python_path_ext}" ]]; then
+			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+			eerror "but none were installed. This may happen if support for a Python target"
+			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+		fi
+	fi
+
+	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use udev; then
+		udev_reload
+		udevadm trigger --subsystem-match=usb
+	fi
+
+	tmpfiles_process virtualbox-vboxusb.conf
+
+	if use gui; then
+		elog "To launch VirtualBox just type: \"virtualbox\"."
+	fi
+
+	elog "You must be in the vboxusers group to use VirtualBox."
+	elog ""
+	elog "The latest user manual is available for download at:"
+	elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+	elog ""
+
+	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+	if ! use udev; then
+		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+	fi
+}
+
+pkg_postrm() {
+	xdg_pkg_postrm
+
+	use udev && udev_reload
+}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2023-08-15 12:50 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2023-08-15 12:50 UTC (permalink / raw
  To: gentoo-commits

commit:     392e628e92a720d18224bcedb136b1d7cdd84874
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 15 12:42:51 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Tue Aug 15 12:45:37 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=392e628e

app-emulation/virtualbox: drop 7.0.8a

Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   1 -
 .../files/virtualbox-7.0.8-python3_11.patch        |  86 ---
 app-emulation/virtualbox/virtualbox-7.0.8a.ebuild  | 735 ---------------------
 3 files changed, 822 deletions(-)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index d47a63d1e43e..892ba7a1c7d0 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,6 +1,5 @@
 DIST VirtualBox-6.1.46.tar.bz2 166045588 BLAKE2B 041fad30d7cbe524cfd5c865b225c00df7715a6648ed0d8f7ee3ca4be0d0dabcb324c676ba2ea78288cde89ed8e5412fae75e31bb49f623de2acddb8f10d6ee1 SHA512 695ca4d41ff10d0581e4cffe4a0ec80e0fe380f4c7d5d51ee4d21aeb61646c26edd60301e541894e71c3323e2d7207e23299938c18ee45631afd1e0851946e77
 DIST VirtualBox-7.0.10.tar.bz2 175450841 BLAKE2B 49eaa14f716f021f1ecec1ad48a2aa8a3a758cbd9b03cf30d65ddcf5aba11842b0ea8bc2c4d477084a4cea318dc302a4ed426ec9f675a1fe675c5f18c48796c7 SHA512 2870d39385f66557281edf1368db68cd69d6a9bebc30d52511929462d0ac210cec49dd8531a280c6facff22ba6e4808477fbf3d09abf998d863a007fc7f2c3bd
-DIST VirtualBox-7.0.8a.tar.bz2 199387757 BLAKE2B 0ba397825277ecbb851bd4ea94c85448e2966fd96ef8edcaf3102f8515553736d6ceee84c0647fa37443c1875256353fdd029d6c505aa99834079acb957b24a0 SHA512 fcbf907f6f7f2396ebff5a31af6ec00b38f09799380bac4847cc9044455832de058659edaa9f621b0054fa402bfacef1b5444498c9faeb3671d02da1505c952d
 DIST virtualbox-help-7.0.10.tar.xz 3941196 BLAKE2B fa6667e0cf12e2e05b896a7d9d7e1f78d43bb4618f35b3c81f5ccf5f227d1181b0c8fb1f6dc02a8619550b193a73d4094c5d3f0d43514392f9ed563085068789 SHA512 fab2dff812a438f3e78dbace24741d91b317bbbc7362f082a18f3871e3c6fd8af7744cf1b3fd3b82cf5135e03d521de05a7a5bc98ec19aacfa1b4e5392e60f30
 DIST virtualbox-help-7.0.8.tar.xz 3941816 BLAKE2B f1c82ccc8a0d4e99f2302a7024a551e7e4a70348b193cf0c3a3b2917a717451c74d652555cadb278f6e27c47dac88a8121acfe9425bc0f5b82b5101475f384b3 SHA512 7483c4321492effb5b4329d48b363d8d2b3aaa248c0259cd06569497090aa438c39e94d6a5da4f511202f424e596f66e7580e37ffa5da66661fd0fadcd99c5ef
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.8-python3_11.patch b/app-emulation/virtualbox/files/virtualbox-7.0.8-python3_11.patch
deleted file mode 100644
index 02fc9c1b12fe..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-7.0.8-python3_11.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-Add support for python 3.11
-
-Virtualbox 7.0.0 will only build a lib named VBoxPython3.so, regardless of the
-actual python version used when compiling.  Remove VBoxPython3m.so, we don't
-use it.
-
---- a/src/libs/xpcom18a4/python/Makefile.kmk
-+++ b/src/libs/xpcom18a4/python/Makefile.kmk
-@@ -30,7 +30,7 @@
- 
- #
- # List of supported Python versions, defining a number of
--# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|DEF]_[INC|LIB] variables
-+# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|311|311M|DEF]_[INC|LIB] variables
- # which get picked up below.
- #
- ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
-@@ -665,6 +665,48 @@
-    endif
-   endif
- 
-+  ifdef VBOX_PYTHON311_INC
-+   #
-+   # Python 3.11 version
-+   #
-+   DLLS += VBoxPython3_11
-+   VBoxPython3_11_EXTENDS = VBoxPythonBase
-+   VBoxPython3_11_EXTENDS_BY = appending
-+   VBoxPython3_11_INCS    = $(VBOX_PYTHON311_INC)
-+   VBoxPython3_11_LIBS    = $(VBOX_PYTHON311_LIB)
-+
-+   ifdef VBOX_WITH_32_ON_64_MAIN_API
-+    ifdef VBOX_PYTHON311_LIB_X86
-+     DLLS += VBoxPython3_11_x86
-+     VBoxPython3_11_x86_EXTENDS = VBoxPythonBase_x86
-+     VBoxPython3_11_x86_EXTENDS_BY = appending
-+     VBoxPython3_11_x86_INCS  = $(VBOX_PYTHON311_INC)
-+     VBoxPython3_11_x86_LIBS  = $(VBOX_PYTHON311_LIB_X86)
-+    endif
-+   endif
-+  endif
-+
-+  ifdef VBOX_PYTHON311M_INC
-+   #
-+   # Python 3.11 version with pymalloc
-+   #
-+   DLLS += VBoxPython3_11m
-+   VBoxPython3_11m_EXTENDS = VBoxPythonBase_m
-+   VBoxPython3_11m_EXTENDS_BY = appending
-+   VBoxPython3_11m_INCS    = $(VBOX_PYTHON311M_INC)
-+   VBoxPython3_11m_LIBS    = $(VBOX_PYTHON311M_LIB)
-+
-+   ifdef VBOX_WITH_32_ON_64_MAIN_API
-+    ifdef VBOX_PYTHON311M_LIB_X86
-+     DLLS += VBoxPython3_11m_x86
-+     VBoxPython3_11m_x86_EXTENDS = VBoxPythonBase_x86_m
-+     VBoxPython3_11m_x86_EXTENDS_BY = appending
-+     VBoxPython3_11m_x86_INCS  = $(VBOX_PYTHON311M_INC)
-+     VBoxPython3_11m_x86_LIBS  = $(VBOX_PYTHON311M_LIB_X86)
-+    endif
-+   endif
-+  endif
-+
-   ifdef VBOX_PYTHONDEF_INC
-    #
-    # Python without versioning
-@@ -707,18 +749,13 @@
-   # TODO: ASSUMING that we don't need a different headers for pymalloc
-   #       ('m' builds < 3.8) and CRT malloc.
-   #
--  VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 38 39 310   34 33 \
-+  VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 38 39 310 311   34 33 \
-   	,$(if-expr defined(VBOX_PYTHON$(ver)_INC),$(ver),)$(if-expr defined(VBOX_PYTHON$(ver)M_INC),$(ver)M,)))
-   ifneq ($(VBOX_PYTHON_LIMITED_API_VER),)
-    DLLS += VBoxPython3
-    VBoxPython3_EXTENDS   = VBoxPythonBase
-    VBoxPython3_DEFS      = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS)) Py_LIMITED_API=0x03030000
-    VBoxPython3_INCS      = $(VBoxPythonBase_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
--
--   DLLS += VBoxPython3m
--   VBoxPython3m_EXTENDS  = VBoxPythonBase_m
--   VBoxPython3m_DEFS     = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_m_DEFS)) Py_LIMITED_API=0x03030000
--   VBoxPython3m_INCS     = $(VBoxPythonBase_m_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
-   endif
-  endif # VBOX_WITH_PYTHON_LIMITED_API
- 

diff --git a/app-emulation/virtualbox/virtualbox-7.0.8a.ebuild b/app-emulation/virtualbox/virtualbox-7.0.8a.ebuild
deleted file mode 100644
index c851121c5279..000000000000
--- a/app-emulation/virtualbox/virtualbox-7.0.8a.ebuild
+++ /dev/null
@@ -1,735 +0,0 @@
-# Copyright 2022-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# To add a new Python here:
-# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
-#    Do NOT skip this part. It'll end up silently not-building the Python extension
-#    or otherwise misbehaving if you do.
-#
-# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
-#
-#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
-#  Python versions as upstream tends to lag. Upstream may have patches on their
-#  trunk branch but not release branch.
-#
-#  See bug #785835, bug #856121.
-PYTHON_COMPAT=( python3_{9..11} )
-
-inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
-	python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-BASE_PV=${PV%a}
-MY_P=${MY_PN}-${PV}
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="
-	https://download.virtualbox.org/virtualbox/${BASE_PV}/${MY_P}.tar.bz2
-	https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.8.tar.bz2
-	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${BASE_PV}.tar.xz ) )
-"
-S="${WORKDIR}/${MY_PN}-${BASE_PV}"
-
-LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64"
-IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
-
-unset WATCOM #856769
-
-COMMON_DEPEND="
-	${PYTHON_DEPS}
-	acct-group/vboxusers
-	~app-emulation/virtualbox-modules-${BASE_PV}
-	dev-libs/libtpms
-	dev-libs/libxml2
-	dev-libs/openssl:0=
-	media-libs/libpng:0=
-	media-libs/libvpx:0=
-	net-misc/curl
-	sys-libs/zlib
-	dbus? ( sys-apps/dbus )
-	gui? (
-		dev-qt/qtcore:5
-		dev-qt/qtdbus:5
-		dev-qt/qtgui:5
-		dev-qt/qthelp:5
-		dev-qt/qtprintsupport:5
-		dev-qt/qtwidgets:5
-		dev-qt/qtx11extras:5
-		dev-qt/qtxml:5
-		x11-libs/libX11
-		x11-libs/libXt
-		opengl? ( dev-qt/qtopengl:5 )
-	)
-	lvm? ( sys-fs/lvm2 )
-	opengl? (
-		media-libs/libglvnd[X]
-		media-libs/vulkan-loader
-		x11-libs/libX11
-		x11-libs/libXt
-	)
-	pam? ( sys-libs/pam )
-	sdl? (
-		media-libs/libsdl2[X,video]
-		x11-libs/libX11
-		x11-libs/libXcursor
-		x11-libs/libXt
-	)
-	vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
-	vde? ( net-misc/vde )
-	vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
-# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
-# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
-# based on *DEPEND doesn't work for BDEPEND at least right now.
-#
-# There's a comment in Config.kmk about it
-# ("With Java 11 wsimport was removed, usually part of a separate install now.")
-# but it needs more investigation.
-#
-# See bug #878299 to track this issue.
-DEPEND="
-	${COMMON_DEPEND}
-	>=dev-libs/libxslt-1.1.19
-	virtual/libcrypt:=
-	alsa? ( >=media-libs/alsa-lib-1.0.13 )
-	gui? (
-		x11-base/xorg-proto
-		x11-libs/libxcb:=
-		x11-libs/libXcursor
-		x11-libs/libXext
-		x11-libs/libXinerama
-		x11-libs/libXmu
-		x11-libs/libXrandr
-	)
-	java? ( virtual/jdk:1.8 )
-	opengl? (
-		x11-base/xorg-proto
-		x11-libs/libXcursor
-		x11-libs/libXinerama
-		x11-libs/libXmu
-		x11-libs/libXrandr
-		virtual/glu
-	)
-	sdl? ( x11-libs/libXinerama )
-	pulseaudio? ( media-libs/libpulse )
-	udev? ( >=virtual/udev-171 )
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	gui? ( x11-libs/libxcb:= )
-	java? ( virtual/jre:1.8 )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/tar-1.34-r2
-	>=dev-lang/yasm-0.6.2
-	dev-libs/libIDL
-	dev-util/glslang
-	>=dev-util/kbuild-0.1.9998.3592
-	sys-apps/which
-	sys-devel/bin86
-	sys-libs/libcap
-	sys-power/iasl
-	virtual/pkgconfig
-	doc? (
-		app-text/docbook-sgml-dtd:4.4
-		app-text/docbook-xsl-ns-stylesheets
-		dev-texlive/texlive-basic
-		dev-texlive/texlive-latex
-		dev-texlive/texlive-latexrecommended
-		dev-texlive/texlive-latexextra
-		dev-texlive/texlive-fontsrecommended
-		dev-texlive/texlive-fontsextra
-		dev-qt/qthelp:5
-	)
-	gui? ( dev-qt/linguist-tools:5 )
-	nls? ( dev-qt/linguist-tools:5 )
-	java? ( virtual/jdk:1.8 )
-"
-
-QA_FLAGS_IGNORED="
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
-"
-
-QA_TEXTRELS="
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-"
-
-QA_EXECSTACK="
-	usr/lib64/virtualbox/iPxeBaseBin
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
-"
-
-QA_WX_LOAD="
-	usr/lib64/virtualbox/iPxeBaseBin
-"
-
-QA_PRESTRIPPED="
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-"
-
-REQUIRED_USE="
-	java? ( sdk )
-	python? ( sdk )
-	vboxwebsrv? ( java )
-	${PYTHON_REQUIRED_USE}
-"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
-
-	# This patch is needed to avoid automagic detection based on a hardcoded
-	# list of Pythons in configure. It's necessary but not sufficient
-	# (see the rest of the ebuild's logic for the remainder) to handle
-	# proper Python selection.
-	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
-
-	# 865361
-	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
-
-	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
-	"${FILESDIR}"/${PN}-7.0.8-python3_11.patch
-	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
-	"${FILESDIR}"/${PN}-7.0.8-mtune-keep-size.patch
-	"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
-
-	# Downloaded patchset
-	"${WORKDIR}"/virtualbox-patches-7.0.8/patches
-)
-
-pkg_pretend() {
-	if ! use gui; then
-		einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
-	fi
-
-	if ! use opengl; then
-		einfo "No USE=\"opengl\" selected, this build will lack"
-		einfo "the OpenGL feature."
-	fi
-	if ! use python; then
-		einfo "You have disabled the \"python\" USE flag. This will only"
-		einfo "disable the python bindings being installed."
-	fi
-	if ! use nls && use gui; then
-		einfo "USE=\"gui\" also selects USE=\"nls\".  This build"
-		einfo "will have NLS support."
-	fi
-
-	# 749273
-	local d=${ROOT}
-	for i in usr "$(get_libdir)"; do
-		d="${d}/$i"
-		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
-			die "${d} should be owned by root, VirtualBox will not start otherwise"
-		fi
-	done
-}
-
-pkg_setup() {
-	java-pkg-opt-2_pkg_setup
-	python-single-r1_pkg_setup
-}
-
-src_prepare() {
-	default
-
-	# Only add nopie patch when we're on hardened
-	if gcc-specs-pie; then
-		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
-	fi
-
-	# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
-	rm -r kBuild/bin || die
-	# Remove everything in tools except kBuildUnits
-	find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
-
-	# Disable things unused or split into separate ebuilds
-	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
-		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
-	if ! use pch; then
-		# bug #753323
-		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
-			>> LocalConfig.kmk || die
-	fi
-
-	# Respect LDFLAGS
-	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
-	# Do not use hard-coded ld (related to bug #488176)
-	sed -e '/QUIET)ld /s@ld @$(LD) @' \
-		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
-	# Use PAM only when pam USE flag is enbaled (bug #376531)
-	if ! use pam; then
-		einfo "Disabling PAM removes the possibility to use the VRDP features."
-		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
-		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
-			src/VBox/HostServices/Makefile.kmk || die
-	fi
-
-	# add correct java path
-	if use java; then
-		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-			-i "${S}"/Config.kmk || die
-		java-pkg-opt-2_src_prepare
-	fi
-
-	#856811 #864274
-	# cannot filter out only one flag, some combinations of these flags produce buggy executables
-	for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
-		append-cflags $(test-flags-CC -mno-$i)
-		append-cxxflags $(test-flags-CXX -mno-$i)
-	done
-
-	# bug #843437
-	cat >> LocalConfig.kmk <<-EOF || die
-		CXXFLAGS=${CXXFLAGS}
-		CFLAGS=${CFLAGS}
-	EOF
-
-	if use sdl; then
-		sed -i 's/sdl-config/sdl2-config/' configure || die
-		echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
-	fi
-
-	#443830
-	echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
-
-	if tc-is-clang; then
-		# clang assembler chokes on comments starting with /
-		sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
-
-		# clang does not support this extension
-		eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
-	fi
-
-	# fix doc generation
-	echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
-	# replace xhtml names with numeric equivalents
-	find doc/manual -name \*.xml -exec sed -i \
-		-e 's/&nbsp;/\&#160;/g' \
-		-e 's/&ndash;/\&#8211;/g' \
-		-e 's/&larr;/\&#8592;/g' \
-		-e 's/&rarr;/\&#8594;/g' \
-		-e 's/&harr;/\&#8596;/g' {} \+ || die
-
-	# fix help path #891879
-	echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
-
-	# 489208
-	# Cannot patch the whole text, many translations.  Use sed instead to replace the command
-	find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
-		's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
-	sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
-		src/VBox/Frontends/VirtualBox/src/main.cpp \
-		src/VBox/VMM/VMMR3/VM.cpp || die
-
-	# 890561
-	echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
-
-	if ! use nls && ! use gui; then
-		cat >> LocalConfig.kmk <<-EOF || die
-			VBOX_WITH_NLS :=
-			VBOX_WITH_MAIN_NLS :=
-			VBOX_WITH_PUEL_NLS :=
-			VBOX_WITH_VBOXMANAGE_NLS :=
-		EOF
-	fi
-}
-
-src_configure() {
-	tc-ld-disable-gold # bug #488176
-
-	tc-export AR CC CXX LD RANLIB
-	export HOST_CC="$(tc-getBUILD_CC)"
-
-	local myconf=(
-		--with-gcc="$(tc-getCC)"
-		--with-g++="$(tc-getCXX)"
-
-		--disable-kmods
-
-		$(usev !alsa --disable-alsa)
-		$(usev !dbus --disable-dbus)
-		$(usev debug --build-debug)
-		$(usev !doc --disable-docs)
-		$(usev !java --disable-java)
-		$(usev !lvm --disable-devmapper)
-		$(usev !pulseaudio --disable-pulse)
-		$(usev !python --disable-python)
-		$(usev vboxwebsrv --enable-webservice)
-		$(usev vde --enable-vde)
-		$(usev vnc --enable-vnc)
-	)
-
-	if use gui || use sdl || use opengl; then
-		myconf+=(
-			$(usev !opengl --disable-opengl)
-			$(usev !gui --disable-qt)
-			$(usev !sdl --disable-sdl)
-		)
-	else
-		myconf+=(
-			--build-headless
-		)
-	fi
-
-	if use amd64 && ! has_multilib_profile; then
-		myconf+=( --disable-vmmraw )
-	fi
-
-	# not an autoconf script
-	edo ./configure "${myconf[@]}"
-
-	# Force usage of chosen Python implementation
-	# bug #856121, bug #785835
-	sed -i \
-		-e '/VBOX_WITH_PYTHON.*=/d' \
-		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
-		-e '/VBOX_LIB_PYTHON.*=/d' \
-		AutoConfig.kmk || die
-
-	cat >> AutoConfig.kmk <<-EOF || die
-		VBOX_WITH_PYTHON=$(usev python 1)
-		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
-		VBOX_LIB_PYTHON=$(python_get_library_path)
-	EOF
-
-	if use python; then
-		local mangled_python="${EPYTHON#python}"
-		mangled_python="${mangled_python/.}"
-
-		# Stub out the script which defines what the Makefile ends up
-		# building for. gen_python_deps.py gets called by the Makefile
-		# with some args and it spits out a bunch of paths for a hardcoded
-		# list of Pythons. We just override it with what we're actually using.
-		# This minimises the amount of patching we have to do for new Pythons.
-		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
-			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
-			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
-			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
-			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
-		EOF
-
-		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
-	fi
-}
-
-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_WITH_VBOXIMGMOUNT=1
-
-		KBUILD_VERBOSE=2
-
-		AS="$(tc-getCC)"
-		CC="$(tc-getCC)"
-		CXX="$(tc-getCXX)"
-
-		TOOL_GCC3_CC="$(tc-getCC)"
-		TOOL_GCC3_LD="$(tc-getCC)"
-		TOOL_GCC3_AS="$(tc-getCC)"
-		TOOL_GCC3_AR="$(tc-getAR)"
-		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
-
-		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_GCC3_CFLAGS="${CFLAGS}"
-		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
-		VBOX_GCC_OPT="${CXXFLAGS}"
-		VBOX_NM="$(tc-getNM)"
-
-		TOOL_YASM_AS=yasm
-	)
-
-	if use amd64 && has_multilib_profile; then
-		myemakeargs+=(
-			CC32="$(tc-getCC) -m32"
-			CXX32="$(tc-getCXX) -m32"
-
-			TOOL_GCC32_CC="$(tc-getCC) -m32"
-			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
-			TOOL_GCC32_LD="$(tc-getCC) -m32"
-			TOOL_GCC32_AS="$(tc-getCC) -m32"
-			TOOL_GCC32_AR="$(tc-getAR)"
-			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
-
-			TOOL_GXX32_CC="$(tc-getCC) -m32"
-			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
-			TOOL_GXX32_LD="$(tc-getCXX) -m32"
-			TOOL_GXX32_AS="$(tc-getCXX) -m32"
-			TOOL_GXX32_AR="$(tc-getAR)"
-			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
-		)
-	fi
-
-	MAKE="kmk" emake "${myemakeargs[@]}" all
-}
-
-src_install() {
-	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
-	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
-	vbox_inst() {
-		local binary="${1}"
-		local perms="${2:-0750}"
-		local path="${3:-${vbox_inst_path}}"
-
-		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
-		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
-		insinto ${path}
-		doins ${binary}
-		fowners root:vboxusers ${path}/${binary}
-		fperms ${perms} ${path}/${binary}
-	}
-
-	# Create configuration files
-	insinto /etc/vbox
-	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
-	# Set the correct libdir
-	sed \
-		-e "s@MY_LIBDIR@$(get_libdir)@" \
-		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
-	# Install the wrapper script
-	exeinto ${vbox_inst_path}
-	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
-	fowners root:vboxusers ${vbox_inst_path}/VBox
-	fperms 0750 ${vbox_inst_path}/VBox
-
-	# Install binaries and libraries
-	insinto ${vbox_inst_path}
-	doins -r components
-
-	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
-		vboximg-mount vbox-img *so *r0; do
-		vbox_inst ${each}
-	done
-
-	# These binaries need to be suid root.
-	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
-		vbox_inst ${each} 4750
-	done
-
-	# Install EFI Firmware files (bug #320757)
-	for each in VBoxEFI{32,64}.fd ; do
-		vbox_inst ${each} 0644
-	done
-
-	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
-	# VBoxXPCOMIPCD (bug #524202)
-	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
-		pax-mark -m "${ED}"${vbox_inst_path}/${each}
-	done
-
-	# Symlink binaries to the shipped wrapper
-	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
-		VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
-			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-	done
-	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-	dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
-
-	if use pam; then
-		# VRDPAuth only works with this (bug #351949)
-		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
-	fi
-
-	# set an env-variable for 3rd party tools
-	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
-	doenvd "${T}/90virtualbox"
-
-	if use sdl; then
-		vbox_inst VBoxSDL 4750
-		pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
-		for each in vboxsdl VBoxSDL ; do
-			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-		done
-	fi
-
-	if use gui; then
-		vbox_inst VirtualBox
-		vbox_inst VirtualBoxVM 4750
-		for each in VirtualBox{,VM} ; do
-			pax-mark -m "${ED}"${vbox_inst_path}/${each}
-		done
-
-		if use opengl; then
-			vbox_inst VBoxTestOGL
-			pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
-		fi
-
-		for each in virtualbox{,vm} VirtualBox{,VM} ; do
-			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-		done
-
-		insinto /usr/share/${PN}
-		doins -r nls
-		doins -r UnattendedTemplates
-
-		domenu ${PN}.desktop
-
-		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
-		for size in 16 32 48 64 128 ; do
-			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
-		done
-		newicon ${PN}-48px.png ${PN}.png
-		doicon -s scalable ${PN}.svg
-		popd &>/dev/null || die
-		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
-		for size in 16 24 32 48 64 72 96 128 256 512 ; do
-			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
-				icofile="${PN}-${ico}-${size}px.png"
-				if [[ -f "${icofile}" ]]; then
-					newicon -s ${size} ${icofile} ${PN}-${ico}.png
-				fi
-			done
-		done
-		popd &>/dev/null || die
-	fi
-
-	if use lvm; then
-		vbox_inst VBoxVolInfo 4750
-		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
-	fi
-
-	if use sdk; then
-		insinto ${vbox_inst_path}
-		doins -r sdk
-
-		if use java; then
-			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
-			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
-		fi
-	fi
-
-	if use udev; then
-		local udevdir="$(get_udevdir)"
-		local udev_file="VBoxCreateUSBNode.sh"
-		local rules_file="10-virtualbox.rules"
-
-		insinto ${udevdir}
-		doins ${udev_file}
-		fowners root:vboxusers ${udevdir}/${udev_file}
-		fperms 0750 ${udevdir}/${udev_file}
-
-		insinto ${udevdir}/rules.d
-		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
-			> "${T}"/${rules_file} || die
-		doins "${T}"/${rules_file}
-	fi
-
-	if use vboxwebsrv; then
-		vbox_inst vboxwebsrv
-		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
-		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
-		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
-	fi
-
-	# Remove dead symlinks (bug #715338)
-	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
-	# Fix version string in extensions or else they don't get accepted
-	# by the virtualbox host process (see bug #438930)
-	find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
-
-	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
-	if use vnc; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/VNC
-	fi
-
-	if use dtrace; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
-	fi
-
-	if use doc; then
-		dodoc UserManual.pdf UserManual.q{ch,hc}
-		docompress -x /usr/share/doc/${PF}
-	elif use gui; then
-		dodoc "${WORKDIR}"/${PN}-help-${BASE_PV}/UserManual.q{ch,hc}
-		docompress -x /usr/share/doc/${PF}
-	fi
-
-	if use python; then
-		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
-		if [[ ! -x "${python_path_ext}" ]]; then
-			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
-			eerror "but none were installed. This may happen if support for a Python target"
-			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
-			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
-		fi
-	fi
-
-	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-
-	if use udev; then
-		udev_reload
-		udevadm trigger --subsystem-match=usb
-	fi
-
-	tmpfiles_process virtualbox-vboxusb.conf
-
-	if use gui; then
-		elog "To launch VirtualBox just type: \"virtualbox\"."
-	fi
-
-	elog "You must be in the vboxusers group to use VirtualBox."
-	elog ""
-	elog "The latest user manual is available for download at:"
-	elog "https://download.virtualbox.org/virtualbox/${BASE_PV}/UserManual.pdf"
-	elog ""
-
-	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
-	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
-	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
-
-	if ! use udev; then
-		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
-	fi
-}
-
-pkg_postrm() {
-	xdg_pkg_postrm
-
-	use udev && udev_reload
-}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2023-08-15 12:50 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2023-08-15 12:50 UTC (permalink / raw
  To: gentoo-commits

commit:     891cf7ad7792d62983c1887e868dcd017936df80
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 15 12:42:21 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Tue Aug 15 12:45:37 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=891cf7ad

app-emulation/virtualbox: drop 6.1.44

Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   1 -
 .../files/virtualbox-6.1.42-python3_11.patch       |  81 ---
 app-emulation/virtualbox/virtualbox-6.1.44.ebuild  | 676 ---------------------
 3 files changed, 758 deletions(-)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index 214303201dbb..d47a63d1e43e 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,4 +1,3 @@
-DIST VirtualBox-6.1.44.tar.bz2 165775421 BLAKE2B e87d7175bc616784c79d02b595d81119cedc7f4df1822b71ca10b85d44d5cd1dacd999e7867a0bef8579ea715ef732b990cef63f3325fff0c139abe394d88ad7 SHA512 49c3baa1a40dcafcc6b31d0abcfecfcb24305de44e5efd3f68ba4443574e21b8cc34d7288e0fbc56730bc3be2bee07089b7dfed14848a88dc38a1433b6dda8af
 DIST VirtualBox-6.1.46.tar.bz2 166045588 BLAKE2B 041fad30d7cbe524cfd5c865b225c00df7715a6648ed0d8f7ee3ca4be0d0dabcb324c676ba2ea78288cde89ed8e5412fae75e31bb49f623de2acddb8f10d6ee1 SHA512 695ca4d41ff10d0581e4cffe4a0ec80e0fe380f4c7d5d51ee4d21aeb61646c26edd60301e541894e71c3323e2d7207e23299938c18ee45631afd1e0851946e77
 DIST VirtualBox-7.0.10.tar.bz2 175450841 BLAKE2B 49eaa14f716f021f1ecec1ad48a2aa8a3a758cbd9b03cf30d65ddcf5aba11842b0ea8bc2c4d477084a4cea318dc302a4ed426ec9f675a1fe675c5f18c48796c7 SHA512 2870d39385f66557281edf1368db68cd69d6a9bebc30d52511929462d0ac210cec49dd8531a280c6facff22ba6e4808477fbf3d09abf998d863a007fc7f2c3bd
 DIST VirtualBox-7.0.8a.tar.bz2 199387757 BLAKE2B 0ba397825277ecbb851bd4ea94c85448e2966fd96ef8edcaf3102f8515553736d6ceee84c0647fa37443c1875256353fdd029d6c505aa99834079acb957b24a0 SHA512 fcbf907f6f7f2396ebff5a31af6ec00b38f09799380bac4847cc9044455832de058659edaa9f621b0054fa402bfacef1b5444498c9faeb3671d02da1505c952d

diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.42-python3_11.patch b/app-emulation/virtualbox/files/virtualbox-6.1.42-python3_11.patch
deleted file mode 100644
index 1c3af9d8afef..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-6.1.42-python3_11.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Add Python 3.11 support to virtualbox 6.1
-
---- a/src/libs/xpcom18a4/python/Makefile.kmk
-+++ b/src/libs/xpcom18a4/python/Makefile.kmk
-@@ -26,7 +26,7 @@
- 
- #
- # List of supported Python versions, defining a number of
--# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|DEF]_[INC|LIB] variables
-+# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|311|311M|DEF]_[INC|LIB] variables
- # which get picked up below.
- #
- ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
-@@ -624,6 +624,52 @@
-   endif
-  endif
- endif
-+
-+ifdef VBOX_PYTHON311_INC
-+#
-+# Python 3.11 version
-+#
-+DLLS += VBoxPython3_11
-+VBoxPython3_11_EXTENDS    = VBoxPythonBase
-+VBoxPython3_11_EXTENDS_BY = appending
-+VBoxPython3_11_TEMPLATE   = XPCOM
-+VBoxPython3_11_INCS       = $(VBOX_PYTHON311_INC)
-+VBoxPython3_11_LIBS       = $(VBOX_PYTHON311_LIB)
-+
-+ ifdef VBOX_WITH_32_ON_64_MAIN_API
-+  ifdef VBOX_PYTHON311_LIB_X86
-+DLLS += VBoxPython3_11_x86
-+VBoxPython3_11_x86_EXTENDS    = VBoxPythonBase_x86
-+VBoxPython3_11_x86_EXTENDS_BY = appending
-+VBoxPython3_11_x86_TEMPLATE   = XPCOM
-+VBoxPython3_11_x86_INCS       = $(VBOX_PYTHON311_INC)
-+VBoxPython3_11_x86_LIBS       = $(VBOX_PYTHON311_LIB_X86)
-+  endif
-+ endif
-+endif
-+
-+ifdef VBOX_PYTHON311M_INC
-+#
-+# Python 3.11 version with pymalloc
-+#
-+DLLS += VBoxPython3_11m
-+VBoxPython3_11m_EXTENDS    = VBoxPythonBase_m
-+VBoxPython3_11m_EXTENDS_BY = appending
-+VBoxPython3_11m_TEMPLATE   = XPCOM
-+VBoxPython3_11m_INCS       = $(VBOX_PYTHON311M_INC)
-+VBoxPython3_11m_LIBS       = $(VBOX_PYTHON311M_LIB)
-+
-+ ifdef VBOX_WITH_32_ON_64_MAIN_API
-+  ifdef VBOX_PYTHON311M_LIB_X86
-+DLLS += VBoxPython3_11m_x86
-+VBoxPython3_11m_x86_EXTENDS    = VBoxPythonBase_x86_m
-+VBoxPython3_11m_x86_EXTENDS_BY = appending
-+VBoxPython3_11m_x86_TEMPLATE_  = XPCOM
-+VBoxPython3_11m_x86_INCS       = $(VBOX_PYTHON311M_INC)
-+VBoxPython3_11m_x86_LIBS       = $(VBOX_PYTHON311M_LIB_X86)
-+  endif
-+ endif
-+endif
- 
- ifdef VBOX_PYTHONDEF_INC
- #
---- a/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
-+++ b/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
-@@ -84,7 +84,11 @@
- #  define MANGLE_MODULE_INIT(a_Name)    RT_CONCAT(a_Name, MODULE_NAME_SUFFIX)
- # endif
- # ifdef VBOX_PYXPCOM_VERSIONED
--#  if   PY_VERSION_HEX >= 0x030a0000 && PY_VERSION_HEX < 0x030b0000
-+#  if   PY_VERSION_HEX >= 0x030b0000 && PY_VERSION_HEX < 0x030c0000
-+#   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython3_11")
-+#   define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_11)
-+
-+#  elif   PY_VERSION_HEX >= 0x030a0000 && PY_VERSION_HEX < 0x030b0000
- #   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython3_10")
- #   define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_10)
- 

diff --git a/app-emulation/virtualbox/virtualbox-6.1.44.ebuild b/app-emulation/virtualbox/virtualbox-6.1.44.ebuild
deleted file mode 100644
index b148184cbd9b..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.1.44.ebuild
+++ /dev/null
@@ -1,676 +0,0 @@
-# Copyright 2022-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# To add a new Python here:
-# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
-#    Do NOT skip this part. It'll end up silently not-building the Python extension
-#    or otherwise misbehaving if you do.
-#
-# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
-#
-#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
-#  Python versions as upstream tends to lag. Upstream may have patches on their
-#  trunk branch but not release branch.
-#
-#  See bug #785835, bug #856121.
-PYTHON_COMPAT=( python3_{9..11} )
-
-inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
-	python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_P=${MY_PN}-${PV}
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-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-6.1.36.tar.bz2"
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64"
-IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc"
-
-unset WATCOM #856769
-
-COMMON_DEPEND="
-	${PYTHON_DEPS}
-	acct-group/vboxusers
-	~app-emulation/virtualbox-modules-${PV}
-	>=dev-libs/libxslt-1.1.19
-	net-misc/curl
-	dev-libs/libxml2
-	media-libs/libpng:0=
-	media-libs/libvpx:0=
-	sys-libs/zlib:=
-	!headless? (
-		sdl? ( media-libs/libsdl:0[X,video] )
-		x11-base/xorg-proto
-		x11-libs/libX11
-		x11-libs/libxcb:=
-		x11-libs/libXcursor
-		x11-libs/libXext
-		x11-libs/libXmu
-		x11-libs/libXt
-		opengl? (
-			media-libs/libglvnd[X]
-			virtual/glu
-		)
-		qt5? (
-			dev-qt/qtcore:5
-			dev-qt/qtgui:5
-			dev-qt/qtprintsupport:5
-			dev-qt/qtwidgets:5
-			dev-qt/qtx11extras:5
-			opengl? ( dev-qt/qtopengl:5 )
-			x11-libs/libXinerama
-		)
-	)
-	dev-libs/openssl:0=
-	virtual/libcrypt:=
-	lvm? ( sys-fs/lvm2 )
-	opus? ( media-libs/opus )
-	udev? ( >=virtual/udev-171 )
-	vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-	vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
-# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
-# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
-# based on *DEPEND doesn't work for BDEPEND at least right now.
-#
-# There's a comment in Config.kmk about it
-# ("With Java 11 wsimport was removed, usually part of a separate install now.")
-# but it needs more investigation.
-#
-# See bug #878299 to track this issue.
-DEPEND="
-	${COMMON_DEPEND}
-	alsa? ( >=media-libs/alsa-lib-1.0.13 )
-	!headless? (
-		x11-libs/libXinerama
-		x11-libs/libXrandr
-		opengl? ( virtual/opengl )
-	)
-	java? ( virtual/jdk:1.8 )
-	pam? ( sys-libs/pam )
-	pax-kernel? ( sys-apps/elfix )
-	pulseaudio? ( media-libs/libpulse )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	>=app-arch/tar-1.34-r2
-	>=dev-util/kbuild-0.1.9998.3127
-	<=dev-util/kbuild-0.1.9998.3500
-	>=dev-lang/yasm-0.6.2
-	dev-libs/libIDL
-	sys-apps/which
-	sys-devel/bin86
-	sys-libs/libcap
-	sys-power/iasl
-	virtual/pkgconfig
-	doc? (
-		app-text/docbook-sgml-dtd:4.4
-		dev-texlive/texlive-basic
-		dev-texlive/texlive-latex
-		dev-texlive/texlive-latexrecommended
-		dev-texlive/texlive-latexextra
-		dev-texlive/texlive-fontsrecommended
-		dev-texlive/texlive-fontsextra
-	)
-	java? ( virtual/jdk:1.8 )
-	qt5? ( dev-qt/linguist-tools:5 )
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	java? ( virtual/jre:1.8 )
-"
-
-QA_FLAGS_IGNORED="
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
-"
-
-QA_TEXTRELS="
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-"
-
-QA_EXECSTACK="
-	usr/lib64/virtualbox/iPxeBaseBin
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
-"
-
-QA_WX_LOAD="
-	usr/lib64/virtualbox/iPxeBaseBin
-"
-
-QA_PRESTRIPPED="
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-"
-
-REQUIRED_USE="
-	java? ( sdk )
-	python? ( sdk )
-	vboxwebsrv? ( java )
-	${PYTHON_REQUIRED_USE}
-"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
-
-	# This patch is needed to avoid automagic detection based on a hardcoded
-	# list of Pythons in configure. It's necessary but not sufficient
-	# (see the rest of the ebuild's logic for the remainder) to handle
-	# proper Python selection.
-	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
-	"${FILESDIR}"/${PN}-6.1.42-python3_11.patch
-
-	# 865361
-	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
-
-	# 906309
-	"${FILESDIR}"/${PN}-6.1.44-fix-libxml2.patch
-
-	# Downloaded patchset
-	"${WORKDIR}"/virtualbox-patches-6.1.36/patches
-)
-
-pkg_pretend() {
-	if ! use headless && ! use qt5 ; then
-		einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
-	elif use headless && use qt5 ; then
-		einfo "You selected USE=\"headless qt5\", defaulting to"
-		einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
-	fi
-
-	if ! use opengl ; then
-		einfo "No USE=\"opengl\" selected, this build will lack"
-		einfo "the OpenGL feature."
-	fi
-	if ! use python ; then
-		einfo "You have disabled the \"python\" USE flag. This will only"
-		einfo "disable the python bindings being installed."
-	fi
-
-	# 749273
-	local d=${ROOT}
-	for i in usr "$(get_libdir)"; do
-		d="${d}/$i"
-		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
-			die "${d} should be owned by root, VirtualBox will not start otherwise"
-		fi
-	done
-}
-
-pkg_setup() {
-	java-pkg-opt-2_pkg_setup
-	python-single-r1_pkg_setup
-}
-
-src_prepare() {
-	default
-
-	# Only add nopie patch when we're on hardened
-	if gcc-specs-pie ; then
-		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
-	fi
-
-	# Remove shipped binaries (kBuild, yasm), see bug #232775
-	rm -r kBuild/bin tools || die
-
-	# Replace pointless GCC version check with something more sensible.
-	# This is needed for the qt5 version check.
-	sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
-		-i configure || die
-
-	# Disable things unused or split into separate ebuilds
-	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
-		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
-	if ! use pch ; then
-		# bug #753323
-		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
-			>> LocalConfig.kmk || die
-	fi
-
-	# Respect LDFLAGS
-	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
-	# Do not use hard-coded ld (related to bug #488176)
-	sed -e '/QUIET)ld /s@ld @$(LD) @' \
-		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
-	# Use PAM only when pam USE flag is enbaled (bug #376531)
-	if ! use pam ; then
-		einfo "Disabling PAM removes the possibility to use the VRDP features."
-		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
-		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
-			src/VBox/HostServices/Makefile.kmk || die
-	fi
-
-	# add correct java path
-	if use java ; then
-		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-			-i "${S}"/Config.kmk || die
-		java-pkg-opt-2_src_prepare
-	fi
-
-	# 890561
-	echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
-}
-
-src_configure() {
-	tc-ld-disable-gold # bug #488176
-
-	#856811 #864274
-	# cannot filter out only one flag, some combinations of these flags produce buggy executables
-	for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
-		append-cflags $(test-flags-CC -mno-$i)
-		append-cxxflags $(test-flags-CXX -mno-$i)
-	done
-
-	# replace xhtml names with numeric equivalents
-	find doc/manual -name \*.xml -exec sed -i \
-		-e 's/&nbsp;/\&#160;/g' \
-		-e 's/&ndash;/\&#8211;/g' \
-		-e 's/&larr;/\&#8592;/g' \
-		-e 's/&rarr;/\&#8594;/g' \
-		-e 's/&harr;/\&#8596;/g' {} \+ || die
-
-	tc-export AR CC CXX LD RANLIB
-	export HOST_CC="$(tc-getBUILD_CC)"
-
-	local myconf=(
-		--with-gcc="$(tc-getCC)"
-		--with-g++="$(tc-getCXX)"
-
-		--disable-dbus
-		--disable-kmods
-
-		$(usev !alsa --disable-alsa)
-		$(usev debug --build-debug)
-		$(usev !doc --disable-docs)
-		$(usev !java --disable-java)
-		$(usev !lvm --disable-devmapper)
-		$(usev !opus --disable-libopus)
-		$(usev !pulseaudio --disable-pulse)
-		$(usev !python --disable-python)
-		$(usev vboxwebsrv --enable-webservice)
-		$(usev vnc --enable-vnc)
-	)
-
-	if ! use headless ; then
-		myconf+=(
-			$(usev !opengl --disable-opengl)
-			$(usev !qt5 --disable-qt)
-			$(usev !sdl --disable-sdl)
-		)
-	else
-		myconf+=(
-			--build-headless
-			--disable-opengl
-		)
-	fi
-
-	if use amd64 && ! has_multilib_profile ; then
-		myconf+=( --disable-vmmraw )
-	fi
-
-	# bug #843437
-	cat >> LocalConfig.kmk <<-EOF || die
-		CXXFLAGS=${CXXFLAGS}
-		CFLAGS=${CFLAGS}
-	EOF
-
-	# not an autoconf script
-	edo ./configure "${myconf[@]}"
-
-	# Force usage of chosen Python implementation
-	# bug #856121, bug #785835
-	sed -i \
-		-e '/VBOX_WITH_PYTHON.*=/d' \
-		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
-		-e '/VBOX_LIB_PYTHON.*=/d' \
-		AutoConfig.kmk || die
-
-	cat >> AutoConfig.kmk <<-EOF || die
-		VBOX_WITH_PYTHON=$(usev python 1)
-		VBOX_PATH_PYTHON_INC=$(python_get_includedir)
-		VBOX_LIB_PYTHON=$(python_get_library_path)
-	EOF
-
-	if use python ; then
-		local mangled_python="${EPYTHON#python}"
-		mangled_python="${mangled_python/.}"
-
-		# Stub out the script which defines what the Makefile ends up
-		# building for. gen_python_deps.py gets called by the Makefile
-		# with some args and it spits out a bunch of paths for a hardcoded
-		# list of Pythons. We just override it with what we're actually using.
-		# This minimises the amount of patching we have to do for new Pythons.
-		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
-			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
-			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
-			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
-			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
-		EOF
-
-		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
-	fi
-}
-
-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_WITH_VBOXIMGMOUNT=1
-
-		KBUILD_VERBOSE=2
-
-		AS="$(tc-getCC)"
-		CC="$(tc-getCC)"
-		CXX="$(tc-getCXX)"
-
-		TOOL_GCC3_CC="$(tc-getCC)"
-		TOOL_GCC3_LD="$(tc-getCC)"
-		TOOL_GCC3_AS="$(tc-getCC)"
-		TOOL_GCC3_AR="$(tc-getAR)"
-		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
-
-		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_GCC3_CFLAGS="${CFLAGS}"
-		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
-		VBOX_GCC_OPT="${CXXFLAGS}"
-		VBOX_NM="$(tc-getNM)"
-
-		TOOL_YASM_AS=yasm
-	)
-
-	if use amd64 && has_multilib_profile ; then
-		myemakeargs+=(
-			CC32="$(tc-getCC) -m32"
-			CXX32="$(tc-getCXX) -m32"
-
-			TOOL_GCC32_CC="$(tc-getCC) -m32"
-			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
-			TOOL_GCC32_LD="$(tc-getCC) -m32"
-			TOOL_GCC32_AS="$(tc-getCC) -m32"
-			TOOL_GCC32_AR="$(tc-getAR)"
-			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
-
-			TOOL_GXX32_CC="$(tc-getCC) -m32"
-			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
-			TOOL_GXX32_LD="$(tc-getCXX) -m32"
-			TOOL_GXX32_AS="$(tc-getCXX) -m32"
-			TOOL_GXX32_AR="$(tc-getAR)"
-			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
-		)
-	fi
-
-	MAKE="kmk" emake "${myemakeargs[@]}" all
-}
-
-src_install() {
-	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
-	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
-	vbox_inst() {
-		local binary="${1}"
-		local perms="${2:-0750}"
-		local path="${3:-${vbox_inst_path}}"
-
-		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
-		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
-		insinto ${path}
-		doins ${binary}
-		fowners root:vboxusers ${path}/${binary}
-		fperms ${perms} ${path}/${binary}
-	}
-
-	# Create configuration files
-	insinto /etc/vbox
-	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
-	# Set the correct libdir
-	sed \
-		-e "s@MY_LIBDIR@$(get_libdir)@" \
-		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
-	# Install the wrapper script
-	exeinto ${vbox_inst_path}
-	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
-	fowners root:vboxusers ${vbox_inst_path}/VBox
-	fperms 0750 ${vbox_inst_path}/VBox
-
-	# Install binaries and libraries
-	insinto ${vbox_inst_path}
-	doins -r components
-
-	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} \
-		vboximg-mount *so *r0 iPxeBaseBin ; do
-		vbox_inst ${each}
-	done
-
-	# These binaries need to be suid root.
-	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
-		vbox_inst ${each} 4750
-	done
-
-	# Install EFI Firmware files (bug #320757)
-	for each in VBoxEFI{32,64}.fd ; do
-		vbox_inst ${each} 0644
-	done
-
-	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
-	# VBoxXPCOMIPCD (bug #524202)
-	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
-		pax-mark -m "${ED}"${vbox_inst_path}/${each}
-	done
-
-	# Symlink binaries to the shipped wrapper
-	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
-		VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
-			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-	done
-	dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
-	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-
-	if use pam ; then
-		# VRDPAuth only works with this (bug #351949)
-		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
-	fi
-
-	# set an env-variable for 3rd party tools
-	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
-	doenvd "${T}/90virtualbox"
-
-	if ! use headless ; then
-		vbox_inst rdesktop-vrdp
-		if use sdl ; then
-			vbox_inst VBoxSDL 4750
-			pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
-			for each in vboxsdl VBoxSDL ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-		fi
-
-		if use qt5 ; then
-			vbox_inst VirtualBox
-			vbox_inst VirtualBoxVM 4750
-			for each in VirtualBox{,VM} ; do
-				pax-mark -m "${ED}"${vbox_inst_path}/${each}
-			done
-
-			if use opengl ; then
-				vbox_inst VBoxTestOGL
-				pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
-			fi
-
-			for each in virtualbox{,vm} VirtualBox{,VM} ; do
-				dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-			done
-
-			insinto /usr/share/${PN}
-			doins -r nls
-			doins -r UnattendedTemplates
-
-			domenu ${PN}.desktop
-		fi
-
-		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
-		for size in 16 32 48 64 128 ; do
-			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
-		done
-		newicon ${PN}-48px.png ${PN}.png
-		doicon -s scalable ${PN}.svg
-		popd &>/dev/null || die
-		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
-		for size in 16 24 32 48 64 72 96 128 256 512 ; do
-			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
-				icofile="${PN}-${ico}-${size}px.png"
-				if [[ -f "${icofile}" ]] ; then
-					newicon -s ${size} ${icofile} ${PN}-${ico}.png
-				fi
-			done
-		done
-		popd &>/dev/null || die
-	fi
-
-	if use lvm ; then
-		vbox_inst VBoxVolInfo 4750
-		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
-	fi
-
-	if use sdk ; then
-		insinto ${vbox_inst_path}
-		doins -r sdk
-
-		if use java ; then
-			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
-			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
-		fi
-	fi
-
-	if use udev ; then
-		local udevdir="$(get_udevdir)"
-		local udev_file="VBoxCreateUSBNode.sh"
-		local rules_file="10-virtualbox.rules"
-
-		insinto ${udevdir}
-		doins ${udev_file}
-		fowners root:vboxusers ${udevdir}/${udev_file}
-		fperms 0750 ${udevdir}/${udev_file}
-
-		insinto ${udevdir}/rules.d
-		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
-			> "${T}"/${rules_file} || die
-		doins "${T}"/${rules_file}
-	fi
-
-	if use vboxwebsrv ; then
-		vbox_inst vboxwebsrv
-		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
-		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
-		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
-	fi
-
-	# Remove dead symlinks (bug #715338)
-	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
-	# Fix version string in extensions or else they don't get accepted
-	# by the virtualbox host process (see bug #438930)
-	find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
-
-	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
-	if use vnc ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/VNC
-	fi
-
-	if use dtrace ; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
-	fi
-
-	if use doc ; then
-		dodoc UserManual.pdf
-	fi
-
-	if use python ; then
-		local mangled_python="${EPYTHON#python}"
-		mangled_python="${mangled_python/./_}"
-
-		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython${mangled_python}.so"
-		if [[ ! -x "${python_path_ext}" ]] ; then
-			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
-			eerror "but none were installed. This may happen if support for a Python target"
-			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
-			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
-		fi
-	fi
-
-	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-
-	if use udev ; then
-		udev_reload
-		udevadm trigger --subsystem-match=usb
-	fi
-
-	tmpfiles_process virtualbox-vboxusb.conf
-
-	if ! use headless && use qt5 ; then
-		elog "To launch VirtualBox just type: \"virtualbox\"."
-	fi
-
-	elog "You must be in the vboxusers group to use VirtualBox."
-	elog ""
-	elog "The latest user manual is available for download at:"
-	elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
-	elog ""
-
-	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
-	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
-	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
-
-	if ! use udev ; then
-		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
-	fi
-}
-
-pkg_postrm() {
-	xdg_pkg_postrm
-
-	use udev && udev_reload
-}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2023-08-28 10:08 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2023-08-28 10:08 UTC (permalink / raw
  To: gentoo-commits

commit:     91c36206566e9aebaa0d374752188acca1e49190
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 28 10:00:19 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Mon Aug 28 10:07:06 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=91c36206

app-emulation/virtualbox: fix building with binutils hardened

Closes: https://bugs.gentoo.org/913109
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 .../virtualbox-7.0.10-fix-binutils-hardened.patch  | 35 ++++++++++++++++++++++
 .../virtualbox/virtualbox-7.0.10-r1.ebuild         |  2 ++
 2 files changed, 37 insertions(+)

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.10-fix-binutils-hardened.patch b/app-emulation/virtualbox/files/virtualbox-7.0.10-fix-binutils-hardened.patch
new file mode 100644
index 000000000000..1a5f85f89ff8
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.10-fix-binutils-hardened.patch
@@ -0,0 +1,35 @@
+Fix building with sys-devel/binutils-2.41-r1[hardened]: read-only segment has dynamic relocations.
+https://bugs.gentoo.org/913109
+
+--- a/src/VBox/Runtime/Makefile.kmk
++++ b/src/VBox/Runtime/Makefile.kmk
+@@ -3238,6 +3238,7 @@
+  endif
+ endif
+ RuntimeR0_INCS          = include
++RuntimeR0_LDFLAGS.linux = -z notext
+ RuntimeR0_SOURCES      := \
+ 	$(if $(VBOX_ONLY_VALIDATIONKIT),,../VMM/VBoxVMM.d) \
+ 	common/checksum/crc32c.cpp \
+--- a/src/VBox/VMM/Makefile.kmk
++++ b/src/VBox/VMM/Makefile.kmk
+@@ -603,6 +603,8 @@
+   VMMR0_DEFS.darwin.amd64    += VBOX_WITH_NATIVE_NEM VBOX_WITH_NEM_R0
+  endif
+ 
++ VMMR0_LDFLAGS.linux += -z notext
++
+  $(call VBOX_SET_VER_INFO_R0,VMMR0,VirtualBox VMM - ring-0 context parts) # Version info / description.
+ 
+  if "$(USERNAME)" == "bird" && "$(KBUILD_TARGET)" == "win"
+--- a/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
++++ b/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
+@@ -258,7 +258,7 @@
+  VBoxDTraceR0_TEMPLATE = VBoxR0ExtPackDTrace
+  VBoxDTraceR0_DEFS = IN_VBOXDTRACE_R0 IN_RT_R0
+  ifeq ($(VBOX_LDR_FMT),elf)
+-  VBoxDTraceR0_LDFLAGS = -e ModuleInit
++  VBoxDTraceR0_LDFLAGS = -e ModuleInit -z notext
+  endif
+  VBoxDTraceR0_INCS = \
+  	include \

diff --git a/app-emulation/virtualbox/virtualbox-7.0.10-r1.ebuild b/app-emulation/virtualbox/virtualbox-7.0.10-r1.ebuild
index d663f08829a9..e6d12f343761 100644
--- a/app-emulation/virtualbox/virtualbox-7.0.10-r1.ebuild
+++ b/app-emulation/virtualbox/virtualbox-7.0.10-r1.ebuild
@@ -206,6 +206,8 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
 	"${FILESDIR}"/${PN}-7.0.8-mtune-keep-size.patch
 	"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
+	# 913109
+	"${FILESDIR}"/${PN}-7.0.10-fix-binutils-hardened.patch
 
 	# Downloaded patchset
 	"${WORKDIR}"/virtualbox-patches-7.0.8/patches


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2024-01-28 10:44 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2024-01-28 10:44 UTC (permalink / raw
  To: gentoo-commits

commit:     449534eed20b415faf59d70b13724a60c8f5e847
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 28 10:36:30 2024 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sun Jan 28 10:44:44 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=449534ee

app-emulation/virtualbox: fix building with dev-libs/libxml2-2.12

Closes: https://bugs.gentoo.org/922445
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 .../files/virtualbox-7.0.14-libxml2-2.12.patch     | 43 ++++++++++++++++++++++
 ....1.48-r1.ebuild => virtualbox-6.1.48-r2.ebuild} |  5 ++-
 ....1.50-r1.ebuild => virtualbox-6.1.50-r2.ebuild} |  5 ++-
 ....0.12-r1.ebuild => virtualbox-7.0.12-r2.ebuild} |  5 ++-
 ....0.14-r1.ebuild => virtualbox-7.0.14-r2.ebuild} |  5 ++-
 5 files changed, 55 insertions(+), 8 deletions(-)

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.14-libxml2-2.12.patch b/app-emulation/virtualbox/files/virtualbox-7.0.14-libxml2-2.12.patch
new file mode 100644
index 000000000000..a523bad41a30
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.14-libxml2-2.12.patch
@@ -0,0 +1,43 @@
+Bug: https://bugs.gentoo.org/922445
+
+The change in libxml2 is not backwards compatibe.
+A patch like the one in arch does not work with 2.11, so just cast the argument to maintain compatibility with both.
+
+The upstream change is in include/libxml/xmlerror.h:
+
+ typedef xmlError *xmlErrorPtr;
+
+-typedef void (*xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error);
++typedef void (*xmlStructuredErrorFunc) (void *userData, const xmlError *error);
+
+See also: https://gitlab.archlinux.org/archlinux/packaging/packages/virtualbox/-/blob/main/019-libxml-2-12.patch?ref_type=heads
+
+--- a/src/VBox/Runtime/r3/xml.cpp
++++ b/src/VBox/Runtime/r3/xml.cpp
+@@ -1870,7 +1870,7 @@
+         throw std::bad_alloc();
+     /* per-thread so it must be here */
+     xmlSetGenericErrorFunc(NULL, xmlParserBaseGenericError);
+-    xmlSetStructuredErrorFunc(NULL, xmlParserBaseStructuredError);
++    xmlSetStructuredErrorFunc(NULL, (xmlStructuredErrorFunc)xmlParserBaseStructuredError);
+ }
+ 
+ XmlParserBase::~XmlParserBase()
+@@ -1931,7 +1931,7 @@
+                                                   pcszFilename,
+                                                   NULL,       // encoding = auto
+                                                   options)))
+-        throw XmlError(xmlCtxtGetLastError(m_ctxt));
++        throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt));
+ 
+     doc.refreshInternals();
+ }
+@@ -2191,7 +2191,7 @@
+                                               pcszFilename,
+                                               NULL,       // encoding = auto
+                                               options)))
+-        throw XmlError(xmlCtxtGetLastError(m_ctxt));
++        throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt));
+ 
+     doc.refreshInternals();
+ }

diff --git a/app-emulation/virtualbox/virtualbox-6.1.48-r1.ebuild b/app-emulation/virtualbox/virtualbox-6.1.48-r2.ebuild
similarity index 99%
rename from app-emulation/virtualbox/virtualbox-6.1.48-r1.ebuild
rename to app-emulation/virtualbox/virtualbox-6.1.48-r2.ebuild
index 87034f0a749c..73aee19fe61f 100644
--- a/app-emulation/virtualbox/virtualbox-6.1.48-r1.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.1.48-r2.ebuild
@@ -36,14 +36,13 @@ IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudi
 
 unset WATCOM #856769
 
-# <libxml2-2.12.0: bug #922445
 COMMON_DEPEND="
 	${PYTHON_DEPS}
 	acct-group/vboxusers
 	~app-emulation/virtualbox-modules-${PV}
 	>=dev-libs/libxslt-1.1.19
 	net-misc/curl
-	<dev-libs/libxml2-2.12.0
+	dev-libs/libxml2
 	media-libs/libpng:0=
 	media-libs/libvpx:0=
 	sys-libs/zlib:=
@@ -181,6 +180,8 @@ PATCHES=(
 
 	# 906309
 	"${FILESDIR}"/${PN}-6.1.44-fix-libxml2.patch
+	# 922445
+	"${FILESDIR}"/${PN}-7.0.14-libxml2-2.12.patch
 
 	# Downloaded patchset
 	"${WORKDIR}"/virtualbox-patches-6.1.36/patches

diff --git a/app-emulation/virtualbox/virtualbox-6.1.50-r1.ebuild b/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild
similarity index 99%
rename from app-emulation/virtualbox/virtualbox-6.1.50-r1.ebuild
rename to app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild
index 313402ffc61d..61d748604580 100644
--- a/app-emulation/virtualbox/virtualbox-6.1.50-r1.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild
@@ -36,14 +36,13 @@ IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudi
 
 unset WATCOM #856769
 
-# <libxml2-2.12.0: bug #922445
 COMMON_DEPEND="
 	${PYTHON_DEPS}
 	acct-group/vboxusers
 	~app-emulation/virtualbox-modules-${PV}
 	>=dev-libs/libxslt-1.1.19
 	net-misc/curl
-	<dev-libs/libxml2-2.12.0
+	dev-libs/libxml2
 	media-libs/libpng:0=
 	media-libs/libvpx:0=
 	sys-libs/zlib:=
@@ -181,6 +180,8 @@ PATCHES=(
 
 	# 906309
 	"${FILESDIR}"/${PN}-6.1.44-fix-libxml2.patch
+	# 922445
+	"${FILESDIR}"/${PN}-7.0.14-libxml2-2.12.patch
 
 	# Downloaded patchset
 	"${WORKDIR}"/virtualbox-patches-6.1.36/patches

diff --git a/app-emulation/virtualbox/virtualbox-7.0.12-r1.ebuild b/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild
similarity index 99%
rename from app-emulation/virtualbox/virtualbox-7.0.12-r1.ebuild
rename to app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild
index f407a63b7d9a..2a2956c15e0b 100644
--- a/app-emulation/virtualbox/virtualbox-7.0.12-r1.ebuild
+++ b/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild
@@ -39,13 +39,12 @@ IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl py
 
 unset WATCOM #856769
 
-# <libxml2-2.12.0: bug #922445
 COMMON_DEPEND="
 	${PYTHON_DEPS}
 	acct-group/vboxusers
 	~app-emulation/virtualbox-modules-${PV}
 	dev-libs/libtpms
-	<dev-libs/libxml2-2.12.0
+	dev-libs/libxml2
 	dev-libs/openssl:0=
 	media-libs/libpng:0=
 	media-libs/libvpx:0=
@@ -209,6 +208,8 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
 	# 913109
 	"${FILESDIR}"/${PN}-7.0.10-fix-binutils-hardened.patch
+	# 922445
+	"${FILESDIR}"/${PN}-7.0.14-libxml2-2.12.patch
 
 	# Downloaded patchset
 	"${WORKDIR}"/virtualbox-patches-7.0.8/patches

diff --git a/app-emulation/virtualbox/virtualbox-7.0.14-r1.ebuild b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
similarity index 99%
rename from app-emulation/virtualbox/virtualbox-7.0.14-r1.ebuild
rename to app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
index 1709f2f3716f..202adf9284a7 100644
--- a/app-emulation/virtualbox/virtualbox-7.0.14-r1.ebuild
+++ b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
@@ -39,13 +39,12 @@ IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl py
 
 unset WATCOM #856769
 
-# <libxml2-2.12.0: bug #922445
 COMMON_DEPEND="
 	${PYTHON_DEPS}
 	acct-group/vboxusers
 	~app-emulation/virtualbox-modules-${PV}
 	dev-libs/libtpms
-	<dev-libs/libxml2-2.12.0
+	dev-libs/libxml2
 	dev-libs/openssl:0=
 	media-libs/libpng:0=
 	media-libs/libvpx:0=
@@ -209,6 +208,8 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
 	# 913109
 	"${FILESDIR}"/${PN}-7.0.10-fix-binutils-hardened.patch
+	# 922445
+	"${FILESDIR}"/${PN}-7.0.14-libxml2-2.12.patch
 
 	# Downloaded patchset
 	"${WORKDIR}"/virtualbox-patches-7.0.8/patches


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2024-02-10 16:31 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2024-02-10 16:31 UTC (permalink / raw
  To: gentoo-commits

commit:     13890aa00884b2eacce4fb6150a0e4b2c618f820
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 10 09:35:52 2024 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sat Feb 10 16:30:47 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=13890aa0

app-emulation/virtualbox: move patches to patchset

Move most patches from ${FILESDIR} to the patchset to share them with
app-emulation/virtualbox-kvm.  No changes to the patches.

Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   2 +-
 .../files/virtualbox-7.0.10-python.patch           |  18 ---
 .../files/virtualbox-7.0.6-fix-libxml2.patch       | 169 ---------------------
 .../virtualbox/virtualbox-7.0.12-r2.ebuild         |  25 +--
 .../virtualbox/virtualbox-7.0.14-r2.ebuild         |  25 +--
 5 files changed, 5 insertions(+), 234 deletions(-)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index c8dbfc28ec2d..1137ea34d61e 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -7,4 +7,4 @@ DIST virtualbox-help-7.0.12.tar.xz 3945920 BLAKE2B 7f2201f3baf6d27d95dc9f878426e
 DIST virtualbox-help-7.0.14.tar.xz 3944832 BLAKE2B 95079e4da8c960c41cee799142779a6c2587e0e8af7956ca551cb5a4c0f36f313189dfe08afba83a0c32886866a7f9903b5e370008d6b3ce6283fb2288866b06 SHA512 e2f1acdd7577a93047e220300b1996d2855ddef20053c01294f8295fde0840645c41b75632d71dd2fc276219084fe4105fd057623f39375542358796425a2d03
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
 DIST virtualbox-patches-7.0.10_pre20230615.tar.bz2 2253 BLAKE2B 27b422acc2ae85c4324d6f4471db80c9f680b1c4a00223c38b9e3fb31709b05163a1bd53408cffeabdef295e856aa8b01b86e0fecf5d80ace376ea1bd4fc9504 SHA512 c2177f46048f09b6be9ac2c35b43d74f67350b052411cc64adf6c0b3d284055eef79f960f1384a3aaeee7d25f8c19ea8f936ee2623a2251d1d28f85ed3469c22
-DIST virtualbox-patches-7.0.8.tar.bz2 2733 BLAKE2B 044dfe02a5bd5e757091318b394b0e5918677b5bbce9caef4a18d4d8df54821559f0df6ffbdd6f52d4934bc4018e9c9d908571c5d3d8804fd3b0f22a7a1aed84 SHA512 93a06aa3f9508d3a8743ca8494a958159b5bc3fd7a0a08ff23414d05c4f31084cf0f1c82a3866e222c83e6996ba004546f0bd33c6eb9a90eec8e548b8b3f2fbf
+DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.10-python.patch b/app-emulation/virtualbox/files/virtualbox-7.0.10-python.patch
deleted file mode 100644
index f972580cb6c5..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-7.0.10-python.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Virtualbox 7.x will only build a lib named VBoxPython3.so, regardless of the
-actual python version used when compiling.  Remove VBoxPython3m.so, we don't
-use it.
-
---- a/src/libs/xpcom18a4/python/Makefile.kmk
-+++ b/src/libs/xpcom18a4/python/Makefile.kmk
-@@ -693,11 +693,6 @@
-    VBoxPython3_EXTENDS   = VBoxPythonBase
-    VBoxPython3_DEFS      = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS)) Py_LIMITED_API=0x03030000
-    VBoxPython3_INCS      = $(VBoxPythonBase_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
--
--   DLLS += VBoxPython3m
--   VBoxPython3m_EXTENDS  = VBoxPythonBase_m
--   VBoxPython3m_DEFS     = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_m_DEFS)) Py_LIMITED_API=0x03030000
--   VBoxPython3m_INCS     = $(VBoxPythonBase_m_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
-   endif
-  endif # VBOX_WITH_PYTHON_LIMITED_API
- 

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.6-fix-libxml2.patch b/app-emulation/virtualbox/files/virtualbox-7.0.6-fix-libxml2.patch
deleted file mode 100644
index 9da2891721d9..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-7.0.6-fix-libxml2.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-With dev-libs/libxml2-2.11, xi:include errors out if it can't find a file, so add an empty fallback.
-Used to work with dev-libs/libxml2-2.10.
-
-Upstream has removed user_ and overview_ altogether in the next release as part of a larger docs change,
-so this no longer applies.
-
-See also: https://bugs.gentoo.org/906309
-
---- a/doc/manual/en_US/user_VBoxManage.xml
-+++ b/doc/manual/en_US/user_VBoxManage.xml
-@@ -242,107 +242,107 @@
-       on your particular host.
-     </para>
- 
--    <xi:include href="overview_man_VBoxManage-common.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-common.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-list.xml"           xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-list.xml"           xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-showvminfo.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-showvminfo.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-registervm.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-registervm.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-unregistervm.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-unregistervm.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-createvm.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-createvm.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-modifyvm.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-modifyvm.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-clonevm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-clonevm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-movevm.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-movevm.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-encryptvm.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-encryptvm.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-cloud.xml"          xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-cloud.xml"          xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-cloudprofile.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-cloudprofile.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-import.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-import.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-export.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-export.xml"         xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-signova.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-signova.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-startvm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-startvm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-controlvm.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-controlvm.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-unattended.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-unattended.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-discardstate.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-discardstate.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-adoptstate.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-adoptstate.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-snapshot.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-snapshot.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-closemedium.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-closemedium.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-storageattach.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-storageattach.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-storagectl.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-storagectl.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-bandwidthctl.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-bandwidthctl.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-showmediuminfo.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-showmediuminfo.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-createmedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-createmedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-modifymedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-modifymedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-clonemedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-clonemedium.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-mediumproperty.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-mediumproperty.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-encryptmedium.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-encryptmedium.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-checkmediumpwd.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-checkmediumpwd.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-convertfromraw.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-convertfromraw.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-mediumio.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-mediumio.xml"       xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-setextradata.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-setextradata.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-getextradata.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-getextradata.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-setproperty.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-setproperty.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-usbfilter.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-usbfilter.xml"      xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-sharedfolder.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-sharedfolder.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-guestproperty.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-guestproperty.xml"  xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-guestcontrol.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-guestcontrol.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-debugvm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-debugvm.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-metrics.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-metrics.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-natnetwork.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-natnetwork.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-hostonlyif.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-hostonlyif.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-hostonlynet.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-hostonlynet.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-dhcpserver.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-dhcpserver.xml"     xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-usbdevsource.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-usbdevsource.xml"   xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-extpack.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-extpack.xml"        xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-updatecheck.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-updatecheck.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
--    <xi:include href="overview_man_VBoxManage-modifynvram.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
-+    <xi:include href="overview_man_VBoxManage-modifynvram.xml"    xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
- 
-     <para>
-       Each time <command>VBoxManage</command> is invoked, only one

diff --git a/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild
index 2a2956c15e0b..a45c4f947cb0 100644
--- a/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild
+++ b/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild
@@ -27,7 +27,7 @@ DESCRIPTION="Family of powerful x86 virtualization products for enterprise and h
 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.8.tar.bz2
+	https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2
 	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
 "
 S="${WORKDIR}/${MY_PN}-${PV}"
@@ -190,29 +190,8 @@ REQUIRED_USE="
 "
 
 PATCHES=(
-	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
-
-	# This patch is needed to avoid automagic detection based on a hardcoded
-	# list of Pythons in configure. It's necessary but not sufficient
-	# (see the rest of the ebuild's logic for the remainder) to handle
-	# proper Python selection.
-	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
-
-	# 865361
-	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
-
-	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
-	"${FILESDIR}"/${PN}-7.0.10-python.patch
-	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
-	"${FILESDIR}"/${PN}-7.0.8-mtune-keep-size.patch
-	"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
-	# 913109
-	"${FILESDIR}"/${PN}-7.0.10-fix-binutils-hardened.patch
-	# 922445
-	"${FILESDIR}"/${PN}-7.0.14-libxml2-2.12.patch
-
 	# Downloaded patchset
-	"${WORKDIR}"/virtualbox-patches-7.0.8/patches
+	"${WORKDIR}"/virtualbox-patches-7.0.14/patches
 )
 
 pkg_pretend() {

diff --git a/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
index 202adf9284a7..6451ab1c7097 100644
--- a/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
+++ b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
@@ -27,7 +27,7 @@ DESCRIPTION="Family of powerful x86 virtualization products for enterprise and h
 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.8.tar.bz2
+	https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2
 	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
 "
 S="${WORKDIR}/${MY_PN}-${PV}"
@@ -190,29 +190,8 @@ REQUIRED_USE="
 "
 
 PATCHES=(
-	"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
-
-	# This patch is needed to avoid automagic detection based on a hardcoded
-	# list of Pythons in configure. It's necessary but not sufficient
-	# (see the rest of the ebuild's logic for the remainder) to handle
-	# proper Python selection.
-	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
-
-	# 865361
-	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
-
-	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
-	"${FILESDIR}"/${PN}-7.0.10-python.patch
-	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
-	"${FILESDIR}"/${PN}-7.0.8-mtune-keep-size.patch
-	"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
-	# 913109
-	"${FILESDIR}"/${PN}-7.0.10-fix-binutils-hardened.patch
-	# 922445
-	"${FILESDIR}"/${PN}-7.0.14-libxml2-2.12.patch
-
 	# Downloaded patchset
-	"${WORKDIR}"/virtualbox-patches-7.0.8/patches
+	"${WORKDIR}"/virtualbox-patches-7.0.14/patches
 )
 
 pkg_pretend() {


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2024-02-10 16:31 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2024-02-10 16:31 UTC (permalink / raw
  To: gentoo-commits

commit:     a3da55ebfaa341d2e4f248221a00c4357d4f7db4
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 10 10:21:30 2024 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sat Feb 10 16:30:47 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a3da55eb

app-emulation/virtualbox: move more patches to patchset

Move the patches for live version to the patchset too.
Don't move the patches for 6.1 branch, because it is EOL.

Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |  2 +-
 .../virtualbox-7.0.0-fix-compilation-clang.patch   | 44 ----------------------
 .../virtualbox-7.0.10-fix-binutils-hardened.patch  | 35 -----------------
 ...tualbox-7.0.11-configure-include-qt6-path.patch | 13 -------
 .../virtualbox/files/virtualbox-7.0.6-gcc-13.patch | 28 --------------
 .../files/virtualbox-7.0.8-mtune-keep-size.patch   | 13 -------
 .../virtualbox/files/virtualbox-7.0.9-python.patch | 22 -----------
 app-emulation/virtualbox/virtualbox-9999.ebuild    | 22 +----------
 8 files changed, 3 insertions(+), 176 deletions(-)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index 1137ea34d61e..58ec0cc3b542 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -6,5 +6,5 @@ DIST virtualbox-help-7.0.10.tar.xz 3941196 BLAKE2B fa6667e0cf12e2e05b896a7d9d7e1
 DIST virtualbox-help-7.0.12.tar.xz 3945920 BLAKE2B 7f2201f3baf6d27d95dc9f878426e34a27c9f9e113d55348f57703b1bd4878df8c6f02492412b779896c48224fb2df224c953b425dde9c99d2b4dbfda1d80d4f SHA512 ddf429a984fe433c4bcbdf87930b3cc16075d4f4725d2e571e9bf05d820d26eb6f88dd6f2bd3992927b261377c84ac4e35a929113b3294e3b2887760fe7a0b52
 DIST virtualbox-help-7.0.14.tar.xz 3944832 BLAKE2B 95079e4da8c960c41cee799142779a6c2587e0e8af7956ca551cb5a4c0f36f313189dfe08afba83a0c32886866a7f9903b5e370008d6b3ce6283fb2288866b06 SHA512 e2f1acdd7577a93047e220300b1996d2855ddef20053c01294f8295fde0840645c41b75632d71dd2fc276219084fe4105fd057623f39375542358796425a2d03
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
-DIST virtualbox-patches-7.0.10_pre20230615.tar.bz2 2253 BLAKE2B 27b422acc2ae85c4324d6f4471db80c9f680b1c4a00223c38b9e3fb31709b05163a1bd53408cffeabdef295e856aa8b01b86e0fecf5d80ace376ea1bd4fc9504 SHA512 c2177f46048f09b6be9ac2c35b43d74f67350b052411cc64adf6c0b3d284055eef79f960f1384a3aaeee7d25f8c19ea8f936ee2623a2251d1d28f85ed3469c22
 DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36
+DIST virtualbox-patches-7.1.0_pre20240210.tar.bz2 5479 BLAKE2B 98bfc9391e756df139e0dd88ca2dd5c9f6cd9c0ce5b5e770dbe28d2e6acbfd04a26b06414c2640894bd3bbd2f10a80f6053d0c6f18d27752a05cadf773e50f19 SHA512 51b0fe68f23a73d20ec3a93b1fc8c073e0bc2bfe4e2e267de6ee6f103abc44c35bb50a96f3842a1e46049418336a3327ab291972a17b8a29b596ba9be4bdb962

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.0-fix-compilation-clang.patch b/app-emulation/virtualbox/files/virtualbox-7.0.0-fix-compilation-clang.patch
deleted file mode 100644
index c3e34f875acd..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-7.0.0-fix-compilation-clang.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-clang does not have syslimits.h, it is gcc specific
-and it is useless anyway since <limits.h> is already included
-so just remove it
-
-Cannot use PFNRT here on clang because of the exception specification
-
---- a/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceLibCWrappers.h
-+++ b/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceLibCWrappers.h
-@@ -34,8 +34,6 @@
- # include <limits.h>        /* Workaround for syslimit.h bug in gcc 4.8.3 on gentoo. */
- # ifdef RT_OS_DARWIN
- #  include <sys/syslimits.h> /* PATH_MAX */
--# elif !defined(RT_OS_SOLARIS) && !defined(RT_OS_FREEBSD)
--#  include <syslimits.h>    /* PATH_MAX */
- # endif
- # include <libgen.h>        /* basename */
- # include <unistd.h>
---- a/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h
-+++ b/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h
-@@ -97,7 +97,11 @@
- /** Load OpenGL library and initialize function pointers. */
- int glLdrInit(PPDMDEVINS pDevIns);
- /** Resolve an OpenGL function name. */
-+#ifdef __clang__
-+void* glLdrGetProcAddress(const char *pszSymbol);
-+#else	// !__clang__
- PFNRT glLdrGetProcAddress(const char *pszSymbol);
-+#endif	// !__clang__
- /** Get pointers to extension function. They are available on Windows only when OpenGL context is set. */
- int glLdrGetExtFunctions(PPDMDEVINS pDevIns);
- 
---- a/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp
-+++ b/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp
-@@ -35,6 +35,10 @@
- #include <iprt/ldr.h>
- #include <iprt/log.h>
- 
-+#ifdef __clang__
-+# define PFNRT void*
-+#endif
-+
- #ifdef RT_OS_WINDOWS
- # define OGLGETPROCADDRESS MyWinGetProcAddress
- DECLINLINE(PFNRT) MyWinGetProcAddress(const char *pszSymbol)

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.10-fix-binutils-hardened.patch b/app-emulation/virtualbox/files/virtualbox-7.0.10-fix-binutils-hardened.patch
deleted file mode 100644
index 1a5f85f89ff8..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-7.0.10-fix-binutils-hardened.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Fix building with sys-devel/binutils-2.41-r1[hardened]: read-only segment has dynamic relocations.
-https://bugs.gentoo.org/913109
-
---- a/src/VBox/Runtime/Makefile.kmk
-+++ b/src/VBox/Runtime/Makefile.kmk
-@@ -3238,6 +3238,7 @@
-  endif
- endif
- RuntimeR0_INCS          = include
-+RuntimeR0_LDFLAGS.linux = -z notext
- RuntimeR0_SOURCES      := \
- 	$(if $(VBOX_ONLY_VALIDATIONKIT),,../VMM/VBoxVMM.d) \
- 	common/checksum/crc32c.cpp \
---- a/src/VBox/VMM/Makefile.kmk
-+++ b/src/VBox/VMM/Makefile.kmk
-@@ -603,6 +603,8 @@
-   VMMR0_DEFS.darwin.amd64    += VBOX_WITH_NATIVE_NEM VBOX_WITH_NEM_R0
-  endif
- 
-+ VMMR0_LDFLAGS.linux += -z notext
-+
-  $(call VBOX_SET_VER_INFO_R0,VMMR0,VirtualBox VMM - ring-0 context parts) # Version info / description.
- 
-  if "$(USERNAME)" == "bird" && "$(KBUILD_TARGET)" == "win"
---- a/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
-+++ b/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
-@@ -258,7 +258,7 @@
-  VBoxDTraceR0_TEMPLATE = VBoxR0ExtPackDTrace
-  VBoxDTraceR0_DEFS = IN_VBOXDTRACE_R0 IN_RT_R0
-  ifeq ($(VBOX_LDR_FMT),elf)
--  VBoxDTraceR0_LDFLAGS = -e ModuleInit
-+  VBoxDTraceR0_LDFLAGS = -e ModuleInit -z notext
-  endif
-  VBoxDTraceR0_INCS = \
-  	include \

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.11-configure-include-qt6-path.patch b/app-emulation/virtualbox/files/virtualbox-7.0.11-configure-include-qt6-path.patch
deleted file mode 100644
index a9345ae78141..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-7.0.11-configure-include-qt6-path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/configure b/configure
-index 5d653d97..f6953d88 100755
---- a/configure
-+++ b/configure
-@@ -1695,6 +1695,8 @@ EOF
-         else
-           # Strip .../QtCore as we add components ourself:
-           INCQT6=`echo "$INCQT6"|$KBUILD_SED 's|\([^ ]*\)/QtCore|\1|g; s| $||g'`
-+          # Strip .../QtGui as we add components ourself:
-+          INCQT6=`echo "$INCQT6"|$KBUILD_SED 's|\([^ ]*\)/QtGui|\1|g; s| $||g'`
-           # store only the first path, remove all other paths
-           # most likely pkg-config gave us -I/usr/include/qt6 -I/usr/include/qt6/QtCore
-           INCQT6=`echo "$INCQT6"|$KBUILD_SED 's|\([^ ]*\) .*|\1|'`

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.6-gcc-13.patch b/app-emulation/virtualbox/files/virtualbox-7.0.6-gcc-13.patch
deleted file mode 100644
index ed3a2d02fbc0..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-7.0.6-gcc-13.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Add a few missing includes.
-
-Bug: https://bugs.gentoo.org/892852
-
---- a/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
-+++ b/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
-@@ -1,3 +1,4 @@
-+#include <cstdint>
- #include "util_matrix.h"
- 
- namespace dxvk {
-@@ -229,4 +230,4 @@
-     return os;
-   }
- 
--}
-\ No newline at end of file
-+}
---- a/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
-+++ b/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
-@@ -1,6 +1,7 @@
- #pragma once
- 
- #include <iostream>
-+#include <cstdint>
- 
- #include "util_bit.h"
- #include "util_math.h"

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.8-mtune-keep-size.patch b/app-emulation/virtualbox/files/virtualbox-7.0.8-mtune-keep-size.patch
deleted file mode 100644
index e37d9d6dcb94..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-7.0.8-mtune-keep-size.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Force -mtune=i386.  Random -mtune can lead to iPxeBiosBin.rom getting too
-large (larger than 56k).  This can happen because we support custom CFLAGS.
-
---- a/src/VBox/Devices/PC/ipxe/Makefile.kmk
-+++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk
-@@ -125,6 +125,7 @@
- 	-ffreestanding \
- 	-ffunction-sections \
- 	-march=i386 \
-+	-mtune=i386 \
- 	-fomit-frame-pointer \
- 	-fstrength-reduce \
- 	-falign-jumps=1 \

diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.9-python.patch b/app-emulation/virtualbox/files/virtualbox-7.0.9-python.patch
deleted file mode 100644
index 73d529628cbb..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-7.0.9-python.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Virtualbox 7.x will only build a lib named VBoxPython3.so, regardless of the
-actual python version used when compiling.  Remove VBoxPython3m.so, we don't
-use it.
-
-Upstream added support for pyton up to 3.12.
-
---- a/src/libs/xpcom18a4/python/Makefile.kmk
-+++ b/src/libs/xpcom18a4/python/Makefile.kmk
-@@ -704,13 +704,6 @@
-    VBoxPython3_DEFS      = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_DEFS)) Py_LIMITED_API=0x03030000
-    VBoxPython3_INCS      = $(VBoxPythonBase_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
-    VBoxPython3_LDFLAGS.darwin = -undefined dynamic_lookup
--
--   ifneq ($(KBUILD_TARGET),darwin)
--    DLLS += VBoxPython3m
--    VBoxPython3m_EXTENDS  = VBoxPythonBase_m
--    VBoxPython3m_DEFS     = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_m_DEFS)) Py_LIMITED_API=0x03030000
--    VBoxPython3m_INCS     = $(VBoxPythonBase_m_INCS) $(VBOX_PYTHON$(VBOX_PYTHON_LIMITED_API_VER)_INC)
--   endif
-   endif
-  endif # VBOX_WITH_PYTHON_LIMITED_API
- 

diff --git a/app-emulation/virtualbox/virtualbox-9999.ebuild b/app-emulation/virtualbox/virtualbox-9999.ebuild
index af970a6c906c..25a390ed1bc9 100644
--- a/app-emulation/virtualbox/virtualbox-9999.ebuild
+++ b/app-emulation/virtualbox/virtualbox-9999.ebuild
@@ -37,7 +37,7 @@ DESCRIPTION="Family of powerful x86 virtualization products for enterprise and h
 HOMEPAGE="https://www.virtualbox.org/"
 ESVN_REPO_URI="https://www.virtualbox.org/svn/vbox/trunk"
 SRC_URI="
-	https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.10_pre20230615.tar.bz2
+	https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.0_pre20240210.tar.bz2
 	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${BASE_PV}.tar.xz ) )
 "
 S="${WORKDIR}/trunk"
@@ -198,26 +198,8 @@ REQUIRED_USE="
 "
 
 PATCHES=(
-	"${FILESDIR}"/${PN}-7.0.11-configure-include-qt6-path.patch # bug #805365
-
-	# This patch is needed to avoid automagic detection based on a hardcoded
-	# list of Pythons in configure. It's necessary but not sufficient
-	# (see the rest of the ebuild's logic for the remainder) to handle
-	# proper Python selection.
-	"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
-
-	# 865361
-	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
-
-	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
-	"${FILESDIR}"/${PN}-7.0.9-python.patch
-	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
-	"${FILESDIR}"/${PN}-7.0.8-mtune-keep-size.patch
-	# 913109
-	"${FILESDIR}"/${PN}-7.0.10-fix-binutils-hardened.patch
-
 	# Downloaded patchset
-	"${WORKDIR}"/virtualbox-patches-7.0.10_pre20230615/patches
+	"${WORKDIR}"/virtualbox-patches-7.1.0_pre20240210/patches
 )
 
 DOCS=()	# Don't install the default README file during einstalldocs


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2024-09-15 13:02 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2024-09-15 13:02 UTC (permalink / raw
  To: gentoo-commits

commit:     2498b1e8704286041627b759f818bf120b3b09be
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 15 11:26:40 2024 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sun Sep 15 13:01:51 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2498b1e8

app-emulation/virtualbox: add 7.1.0

This is the new 7.1 branch.
I will not stabilize this version, let's wait for 7.1.1.

Closes: https://bugs.gentoo.org/925347
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   4 +-
 ...tualbox-7.1.0-disable-rebuild-iPxeBiosBin.patch |  18 +
 app-emulation/virtualbox/virtualbox-7.1.0.ebuild   | 744 +++++++++++++++++++++
 3 files changed, 765 insertions(+), 1 deletion(-)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index 22bb0c1104a5..dc8bd9848169 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,10 +1,12 @@
 DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f
 DIST VirtualBox-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
 DIST VirtualBox-7.0.20.tar.bz2 173300021 BLAKE2B 23a1553578c8b89c3bea65fd9a451ef5abf419ce8a05524f2afc15b8d9a378a22ffb01c0c792d258320aeddb330b74f8f769180863041e333512d0eed2f4449c SHA512 7682e24d60c1896c661f2689af6820ae67b6bd8d9faaf18c58e8159bc7694ef80722f8e9611d6272da5b46eb2f3a44fc637b277e6801b7a8bf53aad045a81fe9
+DIST VirtualBox-7.1.0.tar.bz2 205966296 BLAKE2B 135805119d1710adbb17164d80a67f9b40fcc72d966af3b6d687b7f742a7bb487e76afc1ec45e31fe880a99a291ecdac3ee3dacdd342dbbe2dcec0eab32c8121 SHA512 d0fc27195b859fb537d57229d60a8895ced24b04c0f703c5862982de01d4787d20a3acb9cee4af29d18c56cd8c7ad846fd0eacc14af0c419e738953ca488463b
 DIST VirtualBox-7.1.0_BETA2.tar.bz2 208790183 BLAKE2B 30d1fb0a37463ab4bf8673414cc56c51f618755fe4ec23720379df2519af7af3664c51c0b49955ee03ffdba0a55e67ec75df6af6d2ff79cd611b50c16048df3e SHA512 730c9728e9bdf46e6846c423c13e8e438716eff518f30b102ef29eb71b6c88aa70fc786f1e8b63f9641ef0f90dd6c9768c4fbf002db9fc15ceb22865b4182b1e
-DIST virtualbox-help-7.0.16.tar.xz 3948696 BLAKE2B 5c5937313ea0e5cb4764b8a61fd1587e88a4afc965ef00862c5a265a15253929d35e0635231b6be5656f26f600bc4b70a2fa2ebc0f33b35d35c184b57e5acef8 SHA512 b9baca57118a82e3489c8445f0988671f16f75de60cc2d929d5e3b0c4c9e3ceacd796a72a81bba88d69eb4b4559835a13775c18d7782ae7dbe8ad202e247db0c
 DIST virtualbox-help-7.0.18.tar.xz 3948116 BLAKE2B 5715a7e609297387b5fccce0951c62e5969fd68adeecb869712e69f5e90daef97384bd3ff3c39de40903a1fabe7ac6d2f8ecdbb40de16abe955d40e49b962eec SHA512 ec0f915b7221bc40d02f5f1675eb0defb5506b2f2bd96c063a96a9346e1c82428ccdda8b3adac43238c451ae185ac31af4a186da17ffe091469e14e696388b3a
 DIST virtualbox-help-7.0.20.tar.xz 3949292 BLAKE2B c56f736606fdedfb59bd1f4446a457587dcbe018d1be3162d94eca780cacfa45b49ba5a9c6b25970d28e5a428904bdfd34d2f229c1e24b567fd1b1959cbdc9ea SHA512 e73e448b8aa875d0f6ae1fb398082fa7183e198191a9b509b63592b5df3a19069b805dcdc11d98da3971a14fd6670d8b0a777e5a6d6b63358f7a4f263ca8d31e
+DIST virtualbox-help-7.1.0.tar.xz 1631644 BLAKE2B 408748619d1e981b9d5b5e615baca75ff297e9b7e745751767361b7b9c74345a3db1980734439f3868c412fe28a6b687b417adc3cc148d2e2b8a9fa60e48463b SHA512 513b8474d4fbf7cdb83624dc8d344122c524d92f9f84b32784161c8e1cac8ddc2c265447621d7cd3cf105d555a044e6abf42155f413ba89d507eba7ce3b2da89
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
 DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992
+DIST virtualbox-patches-7.1.0.tar.bz2 5952 BLAKE2B cb024f36249d7d312c9d0f9231c22a9609d45de1d4c82ca36672fea703765d437d7a414d810adb5eb5f2db92018b669c3b5d0c32372c5ced90f5e13f82344ffa SHA512 c6ef54b7d60f01f5f2b89c6fd7f8b7b509bc62bca0502114cedcbaaf9643445ea413bba481dcf43fb96b5b4d94d64395965682c1ee160d889213615c9272184c
 DIST virtualbox-patches-7.1.0_beta1.tar.bz2 5287 BLAKE2B 5286b5ad2a8c54150f58e2675383ed611b385b9758e1ed6bf81c7551f01724f5132591b3f173b9605c226a200cf70bf3b170ab6c174554b34ed57ada7e35a12b SHA512 d1599d990dd3341393c4be5f5d947b15de9345b6f1d7201fb44c2506d299479564ca7bf5a0c45ade14998e7a48c300e4514da626a248c0447fd31f3cb31e6715

diff --git a/app-emulation/virtualbox/files/virtualbox-7.1.0-disable-rebuild-iPxeBiosBin.patch b/app-emulation/virtualbox/files/virtualbox-7.1.0-disable-rebuild-iPxeBiosBin.patch
new file mode 100644
index 000000000000..85e3f8cbaff8
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.1.0-disable-rebuild-iPxeBiosBin.patch
@@ -0,0 +1,18 @@
+When compiling with clang we get:
+
+src/VBox/Devices/PC/ipxe/src/core/settings.c:310:8: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
+
+Apply this patch conditionally to disable rebuilding iPxeBiosBin.rom when using clang.
+
+--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk
++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk
+@@ -45,7 +45,8 @@
+ iPxeBiosBin_CLEAN    = \
+ 	$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c \
+ 
+-if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.amd64 darwin.arm64 linux.arm64 os2.x86 solaris.amd64 win.amd64 win.arm64)
++# Disable building on Linux if using clang
++if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.amd64 darwin.arm64 linux.arm64 linux.amd64 os2.x86 solaris.amd64 win.amd64 win.arm64)
+  $$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c: $(PATH_SUB_CURRENT)/iPxeBiosBin.rom $(VBOX_BIN2C) | $$(dir $$@)
+ 	$(call MSG_TOOL,bin2c,iPxeBiosBin,$<,$@)
+ 	$(QUIET)$(VBOX_BIN2C) -min 32 -max 56 -mask 0x1ff -export NetBiosBinary $< $@

diff --git a/app-emulation/virtualbox/virtualbox-7.1.0.ebuild b/app-emulation/virtualbox/virtualbox-7.1.0.ebuild
new file mode 100644
index 000000000000..32185b29faef
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.1.0.ebuild
@@ -0,0 +1,744 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+#    Do NOT skip this part. It'll end up silently not-building the Python extension
+#    or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
+#  Python versions as upstream tends to lag. Upstream may have patches on their
+#  trunk branch but not release branch.
+#
+#  See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+	python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+HELP_PV=${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+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.1.0.tar.bz2
+	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${HELP_PV}.tar.xz ) )
+"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde +vmmraw vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+	acct-group/vboxusers
+	app-arch/xz-utils
+	~app-emulation/virtualbox-modules-${PV}
+	dev-libs/libtpms
+	dev-libs/libxml2
+	dev-libs/openssl:0=
+	media-libs/libpng:0=
+	media-libs/libvpx:0=
+	net-misc/curl
+	sys-libs/zlib
+	dbus? ( sys-apps/dbus )
+	gui? (
+		dev-qt/qtbase:6[widgets]
+		dev-qt/qtscxml:6
+		dev-qt/qttools:6[assistant]
+		x11-libs/libX11
+		x11-libs/libXt
+	)
+	lvm? ( sys-fs/lvm2 )
+	opengl? (
+		media-libs/libglvnd[X]
+		media-libs/vulkan-loader
+		x11-libs/libX11
+		x11-libs/libXt
+	)
+	pam? ( sys-libs/pam )
+	python? ( ${PYTHON_DEPS} )
+	sdl? (
+		media-libs/libsdl2[X,video]
+		x11-libs/libX11
+		x11-libs/libXt
+	)
+	vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+	vde? ( net-misc/vde )
+	vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+	${COMMON_DEPEND}
+	>=dev-libs/libxslt-1.1.19
+	virtual/libcrypt:=
+	x11-libs/libXt
+	alsa? ( >=media-libs/alsa-lib-1.0.13 )
+	gui? (
+		x11-base/xorg-proto
+		x11-libs/libxcb:=
+		x11-libs/libXcursor
+		x11-libs/libXext
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libXrandr
+	)
+	java? ( virtual/jdk:1.8 )
+	opengl? (
+		x11-base/xorg-proto
+		x11-libs/libXcursor
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libXrandr
+		virtual/glu
+	)
+	sdl? (
+		x11-libs/libXcursor
+		x11-libs/libXinerama
+	)
+	pulseaudio? ( media-libs/libpulse )
+	udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	gui? ( x11-libs/libxcb:= )
+	java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+	>=app-arch/tar-1.34-r2
+	>=dev-lang/yasm-0.6.2
+	dev-libs/libIDL
+	dev-util/glslang
+	>=dev-build/kbuild-0.1.9998.3592
+	sys-apps/which
+	sys-devel/bin86
+	sys-libs/libcap
+	sys-power/iasl
+	virtual/pkgconfig
+	doc? (
+		app-doc/dita-ot-bin
+		app-text/docbook-sgml-dtd:4.4
+		app-text/docbook-xsl-ns-stylesheets
+		dev-texlive/texlive-basic
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexrecommended
+		dev-texlive/texlive-latexextra
+		dev-texlive/texlive-fontsrecommended
+		dev-texlive/texlive-fontsextra
+		dev-qt/qttools:6[assistant]
+		sys-libs/nss_wrapper
+	)
+	gui? ( dev-qt/qttools:6[linguist] )
+	nls? ( dev-qt/qttools:6[linguist] )
+	java? ( virtual/jdk:1.8 )
+	python? ( ${PYTHON_DEPS} )
+"
+
+QA_FLAGS_IGNORED="
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+	usr/lib64/virtualbox/iPxeBaseBin
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+	usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+	java? ( sdk )
+	python? ( sdk ${PYTHON_REQUIRED_USE} )
+	vboxwebsrv? ( java )
+"
+
+PATCHES=(
+	# Downloaded patchset
+	"${WORKDIR}"/virtualbox-patches-7.1.0/patches
+)
+
+pkg_pretend() {
+	if ! use gui; then
+		einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+	fi
+
+	if ! use opengl; then
+		einfo "No USE=\"opengl\" selected, this build will lack"
+		einfo "the OpenGL feature."
+	fi
+	if ! use nls && use gui; then
+		einfo "USE=\"gui\" also selects USE=\"nls\".  This build"
+		einfo "will have NLS support."
+	fi
+
+	# 749273
+	local d=${ROOT}
+	for i in usr "$(get_libdir)"; do
+		d="${d}/$i"
+		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+			die "${d} should be owned by root, VirtualBox will not start otherwise"
+		fi
+	done
+}
+
+pkg_setup() {
+	java-pkg-opt-2_pkg_setup
+	use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	# Only add nopie patch when we're on hardened
+	if gcc-specs-pie; then
+		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+	fi
+
+	# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+	rm -r kBuild/bin || die
+	# Remove everything in tools except kBuildUnits
+	find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+	# Disable things unused or split into separate ebuilds
+	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+	if ! use pch; then
+		# bug #753323
+		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+			>> LocalConfig.kmk || die
+	fi
+
+	# bug #916002, #488176, #925347
+	tc-ld-is-mold || tc-ld-force-bfd
+
+	# Respect LDFLAGS
+	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+	# Do not use hard-coded ld (related to bug #488176)
+	sed -e '/QUIET)ld /s@ld @$(LD) @' \
+		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+	# Use PAM only when pam USE flag is enbaled (bug #376531)
+	if ! use pam; then
+		einfo "Disabling PAM removes the possibility to use the VRDP features."
+		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+			src/VBox/HostServices/Makefile.kmk || die
+		echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+	fi
+
+	# add correct java path
+	if use java; then
+		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+			-i "${S}"/Config.kmk || die
+		java-pkg-opt-2_src_prepare
+	fi
+
+	# bug #908814
+	filter-lto
+
+	# bug #843437
+	cat >> LocalConfig.kmk <<-EOF || die
+		CXXFLAGS=${CXXFLAGS}
+		CFLAGS=${CFLAGS}
+	EOF
+
+	if use sdl; then
+		sed -i 's/sdl-config/sdl2-config/' configure || die
+		echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+	fi
+
+	#443830
+	echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+	if tc-is-clang; then
+		# clang does not support this extension
+		eapply "${FILESDIR}"/${PN}-7.1.0-disable-rebuild-iPxeBiosBin.patch
+	fi
+
+	# fix doc generation
+	echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+	# replace xhtml names with numeric equivalents
+	find doc/manual -name \*.xml -exec sed -i \
+		-e 's/&nbsp;/\&#160;/g' \
+		-e 's/&ndash;/\&#8211;/g' \
+		-e 's/&larr;/\&#8592;/g' \
+		-e 's/&rarr;/\&#8594;/g' \
+		-e 's/&harr;/\&#8596;/g' {} \+ || die
+
+	# fix help path #891879
+	echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
+
+	# 489208
+	# Cannot patch the whole text, many translations.  Use sed instead to replace the command
+	find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
+		's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
+	sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
+		src/VBox/Frontends/VirtualBox/src/main.cpp \
+		src/VBox/VMM/VMMR3/VM.cpp || die
+
+	# 890561
+	echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+
+	if ! use nls && ! use gui; then
+		cat >> LocalConfig.kmk <<-EOF || die
+			VBOX_WITH_NLS :=
+			VBOX_WITH_MAIN_NLS :=
+			VBOX_WITH_PUEL_NLS :=
+			VBOX_WITH_VBOXMANAGE_NLS :=
+		EOF
+	fi
+}
+
+src_configure() {
+	tc-export AR CC CXX LD RANLIB
+	export HOST_CC="$(tc-getBUILD_CC)"
+
+	local myconf=(
+		--with-gcc="$(tc-getCC)"
+		--with-g++="$(tc-getCXX)"
+
+		--disable-kmods
+
+		$(usev !alsa --disable-alsa)
+		$(usev !dbus --disable-dbus)
+		$(usev debug --build-debug)
+		$(usev !doc --disable-docs)
+		$(usev !java --disable-java)
+		$(usev !lvm --disable-devmapper)
+		$(usev !pulseaudio --disable-pulse)
+		$(usev !python --disable-python)
+		$(usev vboxwebsrv --enable-webservice)
+		$(usev vde --enable-vde)
+		$(usev !vmmraw --disable-vmmraw)
+		$(usev vnc --enable-vnc)
+	)
+
+	if use gui || use sdl || use opengl; then
+		myconf+=(
+			$(usev !opengl --disable-opengl)
+			$(usev !gui --disable-qt)
+			$(usev !sdl --disable-sdl)
+		)
+	else
+		myconf+=(
+			--build-headless
+		)
+	fi
+
+	if use amd64 && ! has_multilib_profile; then
+		myconf+=( --disable-vmmraw )
+	fi
+
+	# not an autoconf script
+	edo ./configure "${myconf[@]}"
+
+	# Force usage of chosen Python implementation
+	# bug #856121, bug #785835
+	sed -i \
+		-e '/VBOX_WITH_PYTHON.*=/d' \
+		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
+		-e '/VBOX_LIB_PYTHON.*=/d' \
+		AutoConfig.kmk || die
+
+	if use python; then
+		cat >> AutoConfig.kmk <<-EOF || die
+			VBOX_WITH_PYTHON=$(usev python 1)
+			VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+			VBOX_LIB_PYTHON=$(python_get_library_path)
+		EOF
+
+		local mangled_python="${EPYTHON#python}"
+		mangled_python="${mangled_python/.}"
+
+		# Stub out the script which defines what the Makefile ends up
+		# building for. gen_python_deps.py gets called by the Makefile
+		# with some args and it spits out a bunch of paths for a hardcoded
+		# list of Pythons. We just override it with what we're actually using.
+		# This minimises the amount of patching we have to do for new Pythons.
+		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+		EOF
+
+		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+	else
+		cat >> AutoConfig.kmk <<-EOF || die
+			VBOX_WITH_PYTHON:=
+		EOF
+	fi
+}
+
+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_WITH_VBOXIMGMOUNT=1
+
+		KBUILD_VERBOSE=2
+
+		AS="$(tc-getCC)"
+		CC="$(tc-getCC)"
+		CXX="$(tc-getCXX)"
+
+		TOOL_GCC3_CC="$(tc-getCC)"
+		TOOL_GCC3_LD="$(tc-getCC)"
+		TOOL_GCC3_AS="$(tc-getCC)"
+		TOOL_GCC3_AR="$(tc-getAR)"
+		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+		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_GCC3_CFLAGS="${CFLAGS}"
+		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+		VBOX_GCC_OPT="${CXXFLAGS}"
+		VBOX_NM="$(tc-getNM)"
+
+		TOOL_YASM_AS=yasm
+	)
+
+	if use amd64 && has_multilib_profile; then
+		myemakeargs+=(
+			CC32="$(tc-getCC) -m32"
+			CXX32="$(tc-getCXX) -m32"
+
+			TOOL_GCC32_CC="$(tc-getCC) -m32"
+			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+			TOOL_GCC32_LD="$(tc-getCC) -m32"
+			TOOL_GCC32_AS="$(tc-getCC) -m32"
+			TOOL_GCC32_AR="$(tc-getAR)"
+			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+			TOOL_GXX32_CC="$(tc-getCC) -m32"
+			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+			TOOL_GXX32_LD="$(tc-getCXX) -m32"
+			TOOL_GXX32_AS="$(tc-getCXX) -m32"
+			TOOL_GXX32_AR="$(tc-getAR)"
+			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+		)
+	fi
+
+	if use doc; then
+		# dita needs to write to ~/.fop and ~/.java
+		# but it ignores ${HOME} and tries to write to the real home of user portage
+		# resulting in a sandbox violation
+		# -Duser.home= does not work
+		# force using the temporary homedir with nss_wrapper
+		echo "${LOGNAME}::$(id -u):$(id -g):${USER}:${HOME}:/bin/bash" >> ~/passwd
+		echo "${LOGNAME}::$(id -g):" >> ~/group
+
+		local -x LD_PRELOAD=libnss_wrapper.so
+		local -x NSS_WRAPPER_PASSWD="${HOME}"/passwd
+		local -x NSS_WRAPPER_GROUP="${HOME}"/group
+	fi
+
+	MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+	vbox_inst() {
+		local binary="${1}"
+		local perms="${2:-0750}"
+		local path="${3:-${vbox_inst_path}}"
+
+		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+		insinto ${path}
+		doins ${binary}
+		fowners root:vboxusers ${path}/${binary}
+		fperms ${perms} ${path}/${binary}
+	}
+
+	# Create configuration files
+	insinto /etc/vbox
+	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+	# Set the correct libdir
+	sed \
+		-e "s@MY_LIBDIR@$(get_libdir)@" \
+		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+	# Install the wrapper script
+	exeinto ${vbox_inst_path}
+	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+	fowners root:vboxusers ${vbox_inst_path}/VBox
+	fperms 0750 ${vbox_inst_path}/VBox
+
+	# Install binaries and libraries
+	insinto ${vbox_inst_path}
+	doins -r components
+
+	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload} \
+		vboximg-mount vbox-img *so *r0; do
+		vbox_inst ${each}
+	done
+
+	# These binaries need to be suid root.
+	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+		vbox_inst ${each} 4750
+	done
+
+	# Install EFI Firmware files (bug #320757)
+	for each in VBoxEFI{32,64}.fd ; do
+		vbox_inst ${each} 0644
+	done
+
+	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+	# VBoxXPCOMIPCD (bug #524202)
+	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+		pax-mark -m "${ED}"${vbox_inst_path}/${each}
+	done
+
+	# Symlink binaries to the shipped wrapper
+	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+		VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+	done
+	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+	dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+	if use pam; then
+		# VRDPAuth only works with this (bug #351949)
+		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+	fi
+
+	# set an env-variable for 3rd party tools
+	echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	# environment variables used during SDK binding installation
+	echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
+	echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
+	doenvd "${T}/90virtualbox"
+
+	if use sdl; then
+		vbox_inst VBoxSDL 4750
+		pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+		for each in vboxsdl VBoxSDL ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+	fi
+
+	if use gui; then
+		vbox_inst VirtualBox
+		vbox_inst VirtualBoxVM 4750
+		for each in VirtualBox{,VM} ; do
+			pax-mark -m "${ED}"${vbox_inst_path}/${each}
+		done
+
+		for each in virtualbox{,vm} VirtualBox{,VM} ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+
+		insinto /usr/share/${PN}
+		doins -r nls
+		doins -r UnattendedTemplates
+
+		domenu ${PN}.desktop
+
+		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+		for size in 16 32 48 64 128 ; do
+			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+		done
+		newicon ${PN}-48px.png ${PN}.png
+		doicon -s scalable ${PN}.svg
+		popd &>/dev/null || die
+		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+		for size in 16 24 32 48 64 72 96 128 256 512 ; do
+			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+				icofile="${PN}-${ico}-${size}px.png"
+				if [[ -f "${icofile}" ]]; then
+					newicon -s ${size} ${icofile} ${PN}-${ico}.png
+				fi
+			done
+		done
+		popd &>/dev/null || die
+	fi
+
+	if use lvm; then
+		vbox_inst VBoxVolInfo 4750
+		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+	fi
+
+	if use sdk; then
+		insinto ${vbox_inst_path}
+		doins -r sdk
+
+		if use java; then
+			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+		fi
+	fi
+
+	if use udev; then
+		local udevdir="$(get_udevdir)"
+		local udev_file="VBoxCreateUSBNode.sh"
+		local rules_file="10-virtualbox.rules"
+
+		insinto ${udevdir}
+		doins ${udev_file}
+		fowners root:vboxusers ${udevdir}/${udev_file}
+		fperms 0750 ${udevdir}/${udev_file}
+
+		insinto ${udevdir}/rules.d
+		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+			> "${T}"/${rules_file} || die
+		doins "${T}"/${rules_file}
+	fi
+
+	if use vboxwebsrv; then
+		vbox_inst vboxwebsrv
+		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+	fi
+
+	# Remove dead symlinks (bug #715338)
+	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+	# Fix version string in extensions or else they don't get accepted
+	# by the virtualbox host process (see bug #438930)
+	find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+	if use vnc; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/VNC
+	fi
+
+	if use dtrace; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+	fi
+
+	if use doc; then
+		dodoc UserManual.pdf UserManual.q{ch,hc}
+		docompress -x /usr/share/doc/${PF}
+	elif use gui; then
+		dodoc "${WORKDIR}"/${PN}-help-${HELP_PV}/UserManual.q{ch,hc}
+		docompress -x /usr/share/doc/${PF}
+	fi
+
+	if use python; then
+		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+		if [[ ! -x "${python_path_ext}" ]]; then
+			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+			eerror "but none were installed. This may happen if support for a Python target"
+			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+		fi
+
+		# 378871
+		local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer/python/vboxapi/src"
+		pushd "${installer_dir}" &> /dev/null || die
+		sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
+			-e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
+			-i vboxapi/__init__.py || die
+		# insert shebang, the files come without one
+		find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
+		python_domodule vboxapi
+		popd &> /dev/null || die
+
+		# upstream added a /bin/sh stub here
+		# use /usr/bin/python3, python_doscript will take care of it
+		sed -e '1 i #! /usr/bin/python3' -i vboxshell.py
+		python_doscript vboxshell.py
+
+		# do not install the installer
+		rm -r "${installer_dir%vboxapi*}" || die
+	fi
+
+	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use udev; then
+		udev_reload
+		udevadm trigger --subsystem-match=usb
+	fi
+
+	tmpfiles_process virtualbox-vboxusb.conf
+
+	if use gui; then
+		elog "To launch VirtualBox just type: \"virtualbox\"."
+	fi
+
+	elog "You must be in the vboxusers group to use VirtualBox."
+	elog ""
+	elog "The latest user manual is available for download at:"
+	elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+	elog ""
+
+	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+	if ! use udev; then
+		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+	fi
+}
+
+pkg_postrm() {
+	xdg_pkg_postrm
+
+	use udev && udev_reload
+}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2024-09-15 13:02 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2024-09-15 13:02 UTC (permalink / raw
  To: gentoo-commits

commit:     c2a8232bc2413a5fa14e94d76f857a886efc0def
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 15 12:45:05 2024 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sun Sep 15 13:01:54 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c2a8232b

app-emulation/virtualbox: drop 7.1.0_beta2

Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                  |   2 -
 .../virtualbox-7.1.0_beta1-link-with-mold.patch    |  13 -
 .../virtualbox/virtualbox-7.1.0_beta2.ebuild       | 739 ---------------------
 3 files changed, 754 deletions(-)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index dc8bd9848169..bbf061a40605 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -2,11 +2,9 @@ DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8
 DIST VirtualBox-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
 DIST VirtualBox-7.0.20.tar.bz2 173300021 BLAKE2B 23a1553578c8b89c3bea65fd9a451ef5abf419ce8a05524f2afc15b8d9a378a22ffb01c0c792d258320aeddb330b74f8f769180863041e333512d0eed2f4449c SHA512 7682e24d60c1896c661f2689af6820ae67b6bd8d9faaf18c58e8159bc7694ef80722f8e9611d6272da5b46eb2f3a44fc637b277e6801b7a8bf53aad045a81fe9
 DIST VirtualBox-7.1.0.tar.bz2 205966296 BLAKE2B 135805119d1710adbb17164d80a67f9b40fcc72d966af3b6d687b7f742a7bb487e76afc1ec45e31fe880a99a291ecdac3ee3dacdd342dbbe2dcec0eab32c8121 SHA512 d0fc27195b859fb537d57229d60a8895ced24b04c0f703c5862982de01d4787d20a3acb9cee4af29d18c56cd8c7ad846fd0eacc14af0c419e738953ca488463b
-DIST VirtualBox-7.1.0_BETA2.tar.bz2 208790183 BLAKE2B 30d1fb0a37463ab4bf8673414cc56c51f618755fe4ec23720379df2519af7af3664c51c0b49955ee03ffdba0a55e67ec75df6af6d2ff79cd611b50c16048df3e SHA512 730c9728e9bdf46e6846c423c13e8e438716eff518f30b102ef29eb71b6c88aa70fc786f1e8b63f9641ef0f90dd6c9768c4fbf002db9fc15ceb22865b4182b1e
 DIST virtualbox-help-7.0.18.tar.xz 3948116 BLAKE2B 5715a7e609297387b5fccce0951c62e5969fd68adeecb869712e69f5e90daef97384bd3ff3c39de40903a1fabe7ac6d2f8ecdbb40de16abe955d40e49b962eec SHA512 ec0f915b7221bc40d02f5f1675eb0defb5506b2f2bd96c063a96a9346e1c82428ccdda8b3adac43238c451ae185ac31af4a186da17ffe091469e14e696388b3a
 DIST virtualbox-help-7.0.20.tar.xz 3949292 BLAKE2B c56f736606fdedfb59bd1f4446a457587dcbe018d1be3162d94eca780cacfa45b49ba5a9c6b25970d28e5a428904bdfd34d2f229c1e24b567fd1b1959cbdc9ea SHA512 e73e448b8aa875d0f6ae1fb398082fa7183e198191a9b509b63592b5df3a19069b805dcdc11d98da3971a14fd6670d8b0a777e5a6d6b63358f7a4f263ca8d31e
 DIST virtualbox-help-7.1.0.tar.xz 1631644 BLAKE2B 408748619d1e981b9d5b5e615baca75ff297e9b7e745751767361b7b9c74345a3db1980734439f3868c412fe28a6b687b417adc3cc148d2e2b8a9fa60e48463b SHA512 513b8474d4fbf7cdb83624dc8d344122c524d92f9f84b32784161c8e1cac8ddc2c265447621d7cd3cf105d555a044e6abf42155f413ba89d507eba7ce3b2da89
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
 DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992
 DIST virtualbox-patches-7.1.0.tar.bz2 5952 BLAKE2B cb024f36249d7d312c9d0f9231c22a9609d45de1d4c82ca36672fea703765d437d7a414d810adb5eb5f2db92018b669c3b5d0c32372c5ced90f5e13f82344ffa SHA512 c6ef54b7d60f01f5f2b89c6fd7f8b7b509bc62bca0502114cedcbaaf9643445ea413bba481dcf43fb96b5b4d94d64395965682c1ee160d889213615c9272184c
-DIST virtualbox-patches-7.1.0_beta1.tar.bz2 5287 BLAKE2B 5286b5ad2a8c54150f58e2675383ed611b385b9758e1ed6bf81c7551f01724f5132591b3f173b9605c226a200cf70bf3b170ab6c174554b34ed57ada7e35a12b SHA512 d1599d990dd3341393c4be5f5d947b15de9345b6f1d7201fb44c2506d299479564ca7bf5a0c45ade14998e7a48c300e4514da626a248c0447fd31f3cb31e6715

diff --git a/app-emulation/virtualbox/files/virtualbox-7.1.0_beta1-link-with-mold.patch b/app-emulation/virtualbox/files/virtualbox-7.1.0_beta1-link-with-mold.patch
deleted file mode 100644
index 71e3edb26b3c..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-7.1.0_beta1-link-with-mold.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://bugs.gentoo.org/925347
-
---- a/src/VBox/Frontends/VirtualBox/Makefile.kmk
-+++ b/src/VBox/Frontends/VirtualBox/Makefile.kmk
-@@ -1669,7 +1669,7 @@
- # The Qt modules we're using.
- # (The include directory and lib/framework for each module will be added by the Qt unit.)
- #
--UICommon_QT_MODULES = Core Gui Widgets Help StateMachine
-+UICommon_QT_MODULES = Core Gui Widgets Help PrintSupport StateMachine
- ifdef VBOX_WITH_SCREENSAVER_CONTROL
-  UICommon_QT_MODULES.linux    += DBus
-  UICommon_QT_MODULES.linux    += Xml

diff --git a/app-emulation/virtualbox/virtualbox-7.1.0_beta2.ebuild b/app-emulation/virtualbox/virtualbox-7.1.0_beta2.ebuild
deleted file mode 100644
index 19e72e29a5e4..000000000000
--- a/app-emulation/virtualbox/virtualbox-7.1.0_beta2.ebuild
+++ /dev/null
@@ -1,739 +0,0 @@
-# Copyright 2022-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# USE=doc does not work for now.
-#
-#
-# To add a new Python here:
-# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
-#    Do NOT skip this part. It'll end up silently not-building the Python extension
-#    or otherwise misbehaving if you do.
-#
-# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
-#
-#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
-#  Python versions as upstream tends to lag. Upstream may have patches on their
-#  trunk branch but not release branch.
-#
-#  See bug #785835, bug #856121.
-PYTHON_COMPAT=( python3_{10..11} )
-
-inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
-	python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_PV=${PV^^}
-MY_P=${MY_PN}-${MY_PV}
-HELP_PV=7.0.20
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-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_beta1.tar.bz2
-	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${HELP_PV}.tar.xz ) )
-"
-S="${WORKDIR}/${MY_PN}-${MY_PV}"
-
-LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
-SLOT="0/$(ver_cut 1-2)"
-# Beta version
-#KEYWORDS="~amd64"
-IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde +vmmraw vnc"
-
-unset WATCOM #856769
-
-COMMON_DEPEND="
-	acct-group/vboxusers
-	app-arch/xz-utils
-	~app-emulation/virtualbox-modules-${PV}
-	dev-libs/libtpms
-	dev-libs/libxml2
-	dev-libs/openssl:0=
-	media-libs/libpng:0=
-	media-libs/libvpx:0=
-	net-misc/curl
-	sys-libs/zlib
-	dbus? ( sys-apps/dbus )
-	gui? (
-		dev-qt/qtbase:6[widgets]
-		dev-qt/qtscxml:6
-		dev-qt/qttools:6[assistant]
-		x11-libs/libX11
-		x11-libs/libXt
-	)
-	lvm? ( sys-fs/lvm2 )
-	opengl? (
-		media-libs/libglvnd[X]
-		media-libs/vulkan-loader
-		x11-libs/libX11
-		x11-libs/libXt
-	)
-	pam? ( sys-libs/pam )
-	python? ( ${PYTHON_DEPS} )
-	sdl? (
-		media-libs/libsdl2[X,video]
-		x11-libs/libX11
-		x11-libs/libXt
-	)
-	vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
-	vde? ( net-misc/vde )
-	vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
-# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
-# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
-# based on *DEPEND doesn't work for BDEPEND at least right now.
-#
-# There's a comment in Config.kmk about it
-# ("With Java 11 wsimport was removed, usually part of a separate install now.")
-# but it needs more investigation.
-#
-# See bug #878299 to track this issue.
-DEPEND="
-	${COMMON_DEPEND}
-	>=dev-libs/libxslt-1.1.19
-	virtual/libcrypt:=
-	x11-libs/libXt
-	alsa? ( >=media-libs/alsa-lib-1.0.13 )
-	gui? (
-		x11-base/xorg-proto
-		x11-libs/libxcb:=
-		x11-libs/libXcursor
-		x11-libs/libXext
-		x11-libs/libXinerama
-		x11-libs/libXmu
-		x11-libs/libXrandr
-	)
-	java? ( virtual/jdk:1.8 )
-	opengl? (
-		x11-base/xorg-proto
-		x11-libs/libXcursor
-		x11-libs/libXinerama
-		x11-libs/libXmu
-		x11-libs/libXrandr
-		virtual/glu
-	)
-	sdl? (
-		x11-libs/libXcursor
-		x11-libs/libXinerama
-	)
-	pulseaudio? ( media-libs/libpulse )
-	udev? ( >=virtual/udev-171 )
-"
-RDEPEND="
-	${COMMON_DEPEND}
-	gui? ( x11-libs/libxcb:= )
-	java? ( virtual/jre:1.8 )
-"
-BDEPEND="
-	>=app-arch/tar-1.34-r2
-	>=dev-lang/yasm-0.6.2
-	dev-libs/libIDL
-	dev-util/glslang
-	>=dev-build/kbuild-0.1.9998.3592
-	sys-apps/which
-	sys-devel/bin86
-	sys-libs/libcap
-	sys-power/iasl
-	virtual/pkgconfig
-	doc? (
-		app-text/docbook-sgml-dtd:4.4
-		app-text/docbook-xsl-ns-stylesheets
-		dev-texlive/texlive-basic
-		dev-texlive/texlive-latex
-		dev-texlive/texlive-latexrecommended
-		dev-texlive/texlive-latexextra
-		dev-texlive/texlive-fontsrecommended
-		dev-texlive/texlive-fontsextra
-		dev-qt/qthelp:5
-	)
-	gui? ( dev-qt/qttools:6[linguist] )
-	nls? ( dev-qt/qttools:6[linguist] )
-	java? ( virtual/jdk:1.8 )
-	python? ( ${PYTHON_DEPS} )
-"
-
-QA_FLAGS_IGNORED="
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
-"
-
-QA_TEXTRELS="
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-"
-
-QA_EXECSTACK="
-	usr/lib64/virtualbox/iPxeBaseBin
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
-"
-
-QA_WX_LOAD="
-	usr/lib64/virtualbox/iPxeBaseBin
-"
-
-QA_PRESTRIPPED="
-	usr/lib64/virtualbox/VMMR0.r0
-	usr/lib64/virtualbox/VBoxDDR0.r0
-	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
-"
-
-REQUIRED_USE="
-	java? ( sdk )
-	python? ( sdk ${PYTHON_REQUIRED_USE} )
-	vboxwebsrv? ( java )
-"
-
-PATCHES=(
-	# Downloaded patchset
-	"${WORKDIR}"/virtualbox-patches-7.1.0_beta1/patches
-	"${FILESDIR}"/${PN}-7.1.0_beta1-link-with-mold.patch
-)
-
-DOCS=()	# Don't install the default README file during einstalldocs
-
-pkg_pretend() {
-	if ! use gui; then
-		einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
-	fi
-
-	if ! use opengl; then
-		einfo "No USE=\"opengl\" selected, this build will lack"
-		einfo "the OpenGL feature."
-	fi
-	if ! use nls && use gui; then
-		einfo "USE=\"gui\" also selects USE=\"nls\".  This build"
-		einfo "will have NLS support."
-	fi
-
-	# 749273
-	local d=${ROOT}
-	for i in usr "$(get_libdir)"; do
-		d="${d}/$i"
-		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
-			die "${d} should be owned by root, VirtualBox will not start otherwise"
-		fi
-	done
-}
-
-pkg_setup() {
-	java-pkg-opt-2_pkg_setup
-	use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
-	default
-
-	# Only add nopie patch when we're on hardened
-	if gcc-specs-pie; then
-		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
-	fi
-
-	# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
-	rm -r kBuild/bin || die
-	# Remove everything in tools except kBuildUnits
-	find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
-
-	# Disable things unused or split into separate ebuilds
-	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
-		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
-	if ! use pch; then
-		# bug #753323
-		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
-			>> LocalConfig.kmk || die
-	fi
-
-	# bug #916002, #488176, #925347
-	tc-ld-is-mold || tc-ld-force-bfd
-
-	# Respect LDFLAGS
-	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
-	# Do not use hard-coded ld (related to bug #488176)
-	sed -e '/QUIET)ld /s@ld @$(LD) @' \
-		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
-	# Use PAM only when pam USE flag is enbaled (bug #376531)
-	if ! use pam; then
-		einfo "Disabling PAM removes the possibility to use the VRDP features."
-		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
-		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
-			src/VBox/HostServices/Makefile.kmk || die
-		echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
-	fi
-
-	# add correct java path
-	if use java; then
-		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-			-i "${S}"/Config.kmk || die
-		java-pkg-opt-2_src_prepare
-	fi
-
-	# bug #908814
-	filter-lto
-
-	# bug #843437
-	cat >> LocalConfig.kmk <<-EOF || die
-		CXXFLAGS=${CXXFLAGS}
-		CFLAGS=${CFLAGS}
-	EOF
-
-	if use sdl; then
-		sed -i 's/sdl-config/sdl2-config/' configure || die
-		echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
-	fi
-
-	#443830
-	echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
-
-	if tc-is-clang; then
-		# clang assembler chokes on comments starting with /
-		sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
-
-		# clang does not support this extension
-		eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
-	fi
-
-	# fix doc generation
-	echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
-	# replace xhtml names with numeric equivalents
-	find doc/manual -name \*.xml -exec sed -i \
-		-e 's/&nbsp;/\&#160;/g' \
-		-e 's/&ndash;/\&#8211;/g' \
-		-e 's/&larr;/\&#8592;/g' \
-		-e 's/&rarr;/\&#8594;/g' \
-		-e 's/&harr;/\&#8596;/g' {} \+ || die
-
-	# fix help path #891879
-	echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
-
-	# 489208
-	# Cannot patch the whole text, many translations.  Use sed instead to replace the command
-	find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
-		's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
-	sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
-		src/VBox/Frontends/VirtualBox/src/main.cpp \
-		src/VBox/VMM/VMMR3/VM.cpp || die
-
-	# 890561
-	echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
-
-	if ! use nls && ! use gui; then
-		cat >> LocalConfig.kmk <<-EOF || die
-			VBOX_WITH_NLS :=
-			VBOX_WITH_MAIN_NLS :=
-			VBOX_WITH_PUEL_NLS :=
-			VBOX_WITH_VBOXMANAGE_NLS :=
-		EOF
-	fi
-}
-
-src_configure() {
-	tc-export AR CC CXX LD RANLIB
-	export HOST_CC="$(tc-getBUILD_CC)"
-
-	local myconf=(
-		--with-gcc="$(tc-getCC)"
-		--with-g++="$(tc-getCXX)"
-
-		--disable-kmods
-
-		$(usev !alsa --disable-alsa)
-		$(usev !dbus --disable-dbus)
-		$(usev debug --build-debug)
-		$(usev !doc --disable-docs)
-		$(usev !java --disable-java)
-		$(usev !lvm --disable-devmapper)
-		$(usev !pulseaudio --disable-pulse)
-		$(usev !python --disable-python)
-		$(usev vboxwebsrv --enable-webservice)
-		$(usev vde --enable-vde)
-		$(usev !vmmraw --disable-vmmraw)
-		$(usev vnc --enable-vnc)
-	)
-
-	if use gui || use sdl || use opengl; then
-		myconf+=(
-			$(usev !opengl --disable-opengl)
-			$(usev !gui --disable-qt)
-			$(usev !sdl --disable-sdl)
-		)
-	else
-		myconf+=(
-			--build-headless
-		)
-	fi
-
-	if use amd64 && ! has_multilib_profile; then
-		myconf+=( --disable-vmmraw )
-	fi
-
-	# not an autoconf script
-	edo ./configure "${myconf[@]}"
-
-	# Force usage of chosen Python implementation
-	# bug #856121, bug #785835
-	sed -i \
-		-e '/VBOX_WITH_PYTHON.*=/d' \
-		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
-		-e '/VBOX_LIB_PYTHON.*=/d' \
-		AutoConfig.kmk || die
-
-	if use python; then
-		cat >> AutoConfig.kmk <<-EOF || die
-			VBOX_WITH_PYTHON=$(usev python 1)
-			VBOX_PATH_PYTHON_INC=$(python_get_includedir)
-			VBOX_LIB_PYTHON=$(python_get_library_path)
-		EOF
-
-		local mangled_python="${EPYTHON#python}"
-		mangled_python="${mangled_python/.}"
-
-		# Stub out the script which defines what the Makefile ends up
-		# building for. gen_python_deps.py gets called by the Makefile
-		# with some args and it spits out a bunch of paths for a hardcoded
-		# list of Pythons. We just override it with what we're actually using.
-		# This minimises the amount of patching we have to do for new Pythons.
-		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
-			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
-			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
-			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
-			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
-		EOF
-
-		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
-	else
-		cat >> AutoConfig.kmk <<-EOF || die
-			VBOX_WITH_PYTHON:=
-		EOF
-	fi
-}
-
-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_WITH_VBOXIMGMOUNT=1
-
-		KBUILD_VERBOSE=2
-
-		AS="$(tc-getCC)"
-		CC="$(tc-getCC)"
-		CXX="$(tc-getCXX)"
-
-		TOOL_GCC3_CC="$(tc-getCC)"
-		TOOL_GCC3_LD="$(tc-getCC)"
-		TOOL_GCC3_AS="$(tc-getCC)"
-		TOOL_GCC3_AR="$(tc-getAR)"
-		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
-
-		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_GCC3_CFLAGS="${CFLAGS}"
-		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
-		VBOX_GCC_OPT="${CXXFLAGS}"
-		VBOX_NM="$(tc-getNM)"
-
-		TOOL_YASM_AS=yasm
-	)
-
-	if use amd64 && has_multilib_profile; then
-		myemakeargs+=(
-			CC32="$(tc-getCC) -m32"
-			CXX32="$(tc-getCXX) -m32"
-
-			TOOL_GCC32_CC="$(tc-getCC) -m32"
-			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
-			TOOL_GCC32_LD="$(tc-getCC) -m32"
-			TOOL_GCC32_AS="$(tc-getCC) -m32"
-			TOOL_GCC32_AR="$(tc-getAR)"
-			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
-
-			TOOL_GXX32_CC="$(tc-getCC) -m32"
-			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
-			TOOL_GXX32_LD="$(tc-getCXX) -m32"
-			TOOL_GXX32_AS="$(tc-getCXX) -m32"
-			TOOL_GXX32_AR="$(tc-getAR)"
-			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
-		)
-	fi
-
-	MAKE="kmk" emake "${myemakeargs[@]}" all
-}
-
-src_install() {
-	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
-	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
-	vbox_inst() {
-		local binary="${1}"
-		local perms="${2:-0750}"
-		local path="${3:-${vbox_inst_path}}"
-
-		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
-		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
-		insinto ${path}
-		doins ${binary}
-		fowners root:vboxusers ${path}/${binary}
-		fperms ${perms} ${path}/${binary}
-	}
-
-	# Create configuration files
-	insinto /etc/vbox
-	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
-	# Set the correct libdir
-	sed \
-		-e "s@MY_LIBDIR@$(get_libdir)@" \
-		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
-	# Install the wrapper script
-	exeinto ${vbox_inst_path}
-	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
-	fowners root:vboxusers ${vbox_inst_path}/VBox
-	fperms 0750 ${vbox_inst_path}/VBox
-
-	# Install binaries and libraries
-	insinto ${vbox_inst_path}
-	doins -r components
-
-	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload} \
-		vboximg-mount vbox-img *so *r0; do
-		vbox_inst ${each}
-	done
-
-	# These binaries need to be suid root.
-	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
-		vbox_inst ${each} 4750
-	done
-
-	# Install EFI Firmware files (bug #320757)
-	for each in VBoxEFI{32,64}.fd ; do
-		vbox_inst ${each} 0644
-	done
-
-	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
-	# VBoxXPCOMIPCD (bug #524202)
-	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
-		pax-mark -m "${ED}"${vbox_inst_path}/${each}
-	done
-
-	# Symlink binaries to the shipped wrapper
-	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
-		VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
-			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-	done
-	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-	dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
-
-	if use pam; then
-		# VRDPAuth only works with this (bug #351949)
-		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
-	fi
-
-	# set an env-variable for 3rd party tools
-	echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
-	# environment variables used during SDK binding installation
-	echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
-	echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
-	doenvd "${T}/90virtualbox"
-
-	if use sdl; then
-		vbox_inst VBoxSDL 4750
-		pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
-		for each in vboxsdl VBoxSDL ; do
-			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-		done
-	fi
-
-	if use gui; then
-		vbox_inst VirtualBox
-		vbox_inst VirtualBoxVM 4750
-		for each in VirtualBox{,VM} ; do
-			pax-mark -m "${ED}"${vbox_inst_path}/${each}
-		done
-
-		for each in virtualbox{,vm} VirtualBox{,VM} ; do
-			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
-		done
-
-		insinto /usr/share/${PN}
-		doins -r nls
-		doins -r UnattendedTemplates
-
-		domenu ${PN}.desktop
-
-		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
-		for size in 16 32 48 64 128 ; do
-			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
-		done
-		newicon ${PN}-48px.png ${PN}.png
-		doicon -s scalable ${PN}.svg
-		popd &>/dev/null || die
-		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
-		for size in 16 24 32 48 64 72 96 128 256 512 ; do
-			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
-				icofile="${PN}-${ico}-${size}px.png"
-				if [[ -f "${icofile}" ]]; then
-					newicon -s ${size} ${icofile} ${PN}-${ico}.png
-				fi
-			done
-		done
-		popd &>/dev/null || die
-	fi
-
-	if use lvm; then
-		vbox_inst VBoxVolInfo 4750
-		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
-	fi
-
-	if use sdk; then
-		insinto ${vbox_inst_path}
-		doins -r sdk
-
-		if use java; then
-			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
-			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
-		fi
-	fi
-
-	if use udev; then
-		local udevdir="$(get_udevdir)"
-		local udev_file="VBoxCreateUSBNode.sh"
-		local rules_file="10-virtualbox.rules"
-
-		insinto ${udevdir}
-		doins ${udev_file}
-		fowners root:vboxusers ${udevdir}/${udev_file}
-		fperms 0750 ${udevdir}/${udev_file}
-
-		insinto ${udevdir}/rules.d
-		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
-			> "${T}"/${rules_file} || die
-		doins "${T}"/${rules_file}
-	fi
-
-	if use vboxwebsrv; then
-		vbox_inst vboxwebsrv
-		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
-		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
-		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
-	fi
-
-	# Remove dead symlinks (bug #715338)
-	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
-	# Fix version string in extensions or else they don't get accepted
-	# by the virtualbox host process (see bug #438930)
-	find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
-
-	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
-	if use vnc; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/VNC
-	fi
-
-	if use dtrace; then
-		insinto ${extensions_dir}
-		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
-	fi
-
-	if use doc; then
-		dodoc UserManual.pdf UserManual.q{ch,hc}
-		docompress -x /usr/share/doc/${PF}
-	elif use gui; then
-		dodoc "${WORKDIR}"/${PN}-help-${HELP_PV}/UserManual.q{ch,hc}
-		docompress -x /usr/share/doc/${PF}
-	fi
-
-	if use python; then
-		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
-		if [[ ! -x "${python_path_ext}" ]]; then
-			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
-			eerror "but none were installed. This may happen if support for a Python target"
-			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
-			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
-		fi
-
-		# 378871
-		local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer/python/vboxapi/src"
-		pushd "${installer_dir}" &> /dev/null || die
-		sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
-			-e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
-			-i vboxapi/__init__.py || die
-		# insert shebang, the files come without one
-		find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
-		python_domodule vboxapi
-		popd &> /dev/null || die
-
-		# upstream added a /bin/sh stub here
-		# use /usr/bin/python3, python_doscript will take care of it
-		sed -e '1 i #! /usr/bin/python3' -i vboxshell.py
-		python_doscript vboxshell.py
-
-		# do not install the installer
-		rm -r "${installer_dir%vboxapi*}" || die
-	fi
-
-	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_postinst() {
-	xdg_pkg_postinst
-
-	if use udev; then
-		udev_reload
-		udevadm trigger --subsystem-match=usb
-	fi
-
-	tmpfiles_process virtualbox-vboxusb.conf
-
-	if use gui; then
-		elog "To launch VirtualBox just type: \"virtualbox\"."
-	fi
-
-	elog "You must be in the vboxusers group to use VirtualBox."
-	elog ""
-	elog "The latest user manual is available for download at:"
-	elog "https://download.virtualbox.org/virtualbox/${MY_PV}/UserManual.pdf"
-	elog ""
-
-	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
-	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
-	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
-
-	if ! use udev; then
-		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
-	fi
-}
-
-pkg_postrm() {
-	xdg_pkg_postrm
-
-	use udev && udev_reload
-}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/
@ 2024-10-18 17:16 Viorel Munteanu
  0 siblings, 0 replies; 32+ messages in thread
From: Viorel Munteanu @ 2024-10-18 17:16 UTC (permalink / raw
  To: gentoo-commits

commit:     754efcbdcd799f8a8f71805b543c638e2759ad6b
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 18 15:59:31 2024 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Fri Oct 18 17:13:10 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=754efcbd

app-emulation/virtualbox: add 7.0.22

Bug: https://bugs.gentoo.org/929313
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 app-emulation/virtualbox/Manifest                 |   2 +
 app-emulation/virtualbox/files/test_python.py     |  16 +
 app-emulation/virtualbox/virtualbox-7.0.22.ebuild | 767 ++++++++++++++++++++++
 3 files changed, 785 insertions(+)

diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index 1f9501a2940c..7446bb210218 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,7 +1,9 @@
 DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f
 DIST VirtualBox-7.0.20.tar.bz2 173300021 BLAKE2B 23a1553578c8b89c3bea65fd9a451ef5abf419ce8a05524f2afc15b8d9a378a22ffb01c0c792d258320aeddb330b74f8f769180863041e333512d0eed2f4449c SHA512 7682e24d60c1896c661f2689af6820ae67b6bd8d9faaf18c58e8159bc7694ef80722f8e9611d6272da5b46eb2f3a44fc637b277e6801b7a8bf53aad045a81fe9
+DIST VirtualBox-7.0.22.tar.bz2 174643573 BLAKE2B 93ba1dd44a7147e61d72489a127e497f510c12eef576f8a30af45011e383050a908124c0f9794a92f28400cbb2f230308884893bafacd4f8a391b2354958f02d SHA512 eb231cc487becfbad8c979fb9d6a1ede3a28a1bb11e77b1482181be4bd294fd209c77a7d599562f99f1ac2be587203b9d97230ccce4f85ed96c63e66b0fce392
 DIST VirtualBox-7.1.2.tar.bz2 206105145 BLAKE2B 4b30f1d14625ddaed88b1a9cdac41289fef332d52e210d982ce075d652849b1cb72fee6d6e691f74378d4b8e7dd914355bcf0cd074d36249f39b099d1bba7c79 SHA512 d890f9b2e8799bcb1ed9cdaa86ef42daa261f7e9022a2e7e9df8c21f395c56e91e2d03292f22c9633ff6a0f0c5933ba3ac30af30befe87b84ffd89c07d51568f
 DIST virtualbox-help-7.0.20.tar.xz 3949292 BLAKE2B c56f736606fdedfb59bd1f4446a457587dcbe018d1be3162d94eca780cacfa45b49ba5a9c6b25970d28e5a428904bdfd34d2f229c1e24b567fd1b1959cbdc9ea SHA512 e73e448b8aa875d0f6ae1fb398082fa7183e198191a9b509b63592b5df3a19069b805dcdc11d98da3971a14fd6670d8b0a777e5a6d6b63358f7a4f263ca8d31e
+DIST virtualbox-help-7.0.22.tar.xz 3950712 BLAKE2B 381743c2d6e5da940865818c725bc299ae7b178f25f822cb25a8bc2ed69fa32e3999a8f795132ffe7f01d1ae6c19f5e91d89a09dfa5cc6919cfeae4b6c420951 SHA512 4ae974a9a166c483d767ea1417afac04a8a5f3eb51bb78e4254c5e5577aaa5a64e39fe151ae73f7bc560ed63ca09a02c49c0314bbac3bea6a1331b2b852a1a0f
 DIST virtualbox-help-7.1.0.tar.xz 1631644 BLAKE2B 408748619d1e981b9d5b5e615baca75ff297e9b7e745751767361b7b9c74345a3db1980734439f3868c412fe28a6b687b417adc3cc148d2e2b8a9fa60e48463b SHA512 513b8474d4fbf7cdb83624dc8d344122c524d92f9f84b32784161c8e1cac8ddc2c265447621d7cd3cf105d555a044e6abf42155f413ba89d507eba7ce3b2da89
 DIST virtualbox-help-7.1.2.tar.xz 1587216 BLAKE2B 561a7ec607b61a9adf2fc5c86ad49828da4e1d3bcf8cae2771f1e498426652fc990c603128471412fd0d9f21ead004dd65006d6a8f70e4fa972c9055ffc8084a SHA512 6cd1bf849658f1abb8eb5a3d2da53d862ee0143aaff44e755f79bfb2d31977447e6546faa277dd860a0b6e1c3b72ae47479fbbec42419629e1cb2006df14194f
 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57

diff --git a/app-emulation/virtualbox/files/test_python.py b/app-emulation/virtualbox/files/test_python.py
new file mode 100644
index 000000000000..da03af795501
--- /dev/null
+++ b/app-emulation/virtualbox/files/test_python.py
@@ -0,0 +1,16 @@
+#!/usr/bin/python3
+
+# Smoke test for python:
+# Test if the python bindings have been built and if python is crashing when creating a manager
+
+def test_module_was_built():
+    import os
+    assert os.path.isfile(os.getenv('VBOX_PROGRAM_PATH') + '/VBoxPython3.so')
+
+def test_VirtualBoxManager():
+    from vboxapi import VirtualBoxManager
+    try:
+        manager = VirtualBoxManager()
+    except:
+        # if it reaches here, it did not crash
+        pass

diff --git a/app-emulation/virtualbox/virtualbox-7.0.22.ebuild b/app-emulation/virtualbox/virtualbox-7.0.22.ebuild
new file mode 100644
index 000000000000..748fe8755185
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.22.ebuild
@@ -0,0 +1,767 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+#    Do NOT skip this part. It'll end up silently not-building the Python extension
+#    or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+#  May need to look at other distros (e.g. Arch Linux) to find patches for newer
+#  Python versions as upstream tends to lag. Upstream may have patches on their
+#  trunk branch but not release branch.
+#
+#  See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+	python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+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
+	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
+"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl test +udev vboxwebsrv vde +vmmraw vnc"
+RESTRICT="!test? ( test )"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+	acct-group/vboxusers
+	~app-emulation/virtualbox-modules-${PV}
+	dev-libs/libtpms
+	dev-libs/libxml2
+	dev-libs/openssl:0=
+	media-libs/libpng:0=
+	media-libs/libvpx:0=
+	net-misc/curl
+	sys-libs/zlib
+	dbus? ( sys-apps/dbus )
+	gui? (
+		dev-qt/qtcore:5
+		dev-qt/qtdbus:5
+		dev-qt/qtgui:5
+		dev-qt/qthelp:5
+		dev-qt/qtprintsupport:5
+		dev-qt/qtwidgets:5
+		dev-qt/qtx11extras:5
+		dev-qt/qtxml:5
+		x11-libs/libX11
+		x11-libs/libXt
+		opengl? ( dev-qt/qtopengl:5 )
+	)
+	lvm? ( sys-fs/lvm2 )
+	opengl? (
+		media-libs/libglvnd[X]
+		media-libs/vulkan-loader
+		x11-libs/libX11
+		x11-libs/libXt
+	)
+	pam? ( sys-libs/pam )
+	python? ( ${PYTHON_DEPS} )
+	sdl? (
+		media-libs/libsdl2[X,video]
+		x11-libs/libX11
+		x11-libs/libXcursor
+		x11-libs/libXt
+	)
+	vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+	vde? ( net-misc/vde )
+	vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+	${COMMON_DEPEND}
+	>=dev-libs/libxslt-1.1.19
+	virtual/libcrypt:=
+	alsa? ( >=media-libs/alsa-lib-1.0.13 )
+	gui? (
+		x11-base/xorg-proto
+		x11-libs/libxcb:=
+		x11-libs/libXcursor
+		x11-libs/libXext
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libXrandr
+	)
+	java? ( virtual/jdk:1.8 )
+	opengl? (
+		x11-base/xorg-proto
+		x11-libs/libXcursor
+		x11-libs/libXinerama
+		x11-libs/libXmu
+		x11-libs/libXrandr
+		virtual/glu
+	)
+	sdl? ( x11-libs/libXinerama )
+	pulseaudio? ( media-libs/libpulse )
+	udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	gui? ( x11-libs/libxcb:= )
+	java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+	>=app-arch/tar-1.34-r2
+	>=dev-lang/yasm-0.6.2
+	dev-libs/libIDL
+	dev-util/glslang
+	>=dev-build/kbuild-0.1.9998.3592
+	sys-apps/which
+	sys-devel/bin86
+	sys-libs/libcap
+	sys-power/iasl
+	virtual/pkgconfig
+	doc? (
+		app-text/docbook-sgml-dtd:4.4
+		app-text/docbook-xsl-ns-stylesheets
+		dev-texlive/texlive-basic
+		dev-texlive/texlive-latex
+		dev-texlive/texlive-latexrecommended
+		dev-texlive/texlive-latexextra
+		dev-texlive/texlive-fontsrecommended
+		dev-texlive/texlive-fontsextra
+		dev-qt/qthelp:5
+	)
+	gui? ( dev-qt/linguist-tools:5 )
+	nls? ( dev-qt/linguist-tools:5 )
+	java? ( virtual/jdk:1.8 )
+	python? (
+		${PYTHON_DEPS}
+		test? (
+			$(python_gen_cond_dep '
+				dev-python/pytest[${PYTHON_USEDEP}]
+			')
+		)
+	)
+"
+
+QA_FLAGS_IGNORED="
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+	usr/lib64/virtualbox/iPxeBaseBin
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+	usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+	usr/lib64/virtualbox/VMMR0.r0
+	usr/lib64/virtualbox/VBoxDDR0.r0
+	usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+	java? ( sdk )
+	python? ( sdk ${PYTHON_REQUIRED_USE} )
+	vboxwebsrv? ( java )
+"
+
+PATCHES=(
+	# Downloaded patchset
+	"${WORKDIR}"/virtualbox-patches-7.0.16/patches
+)
+
+pkg_pretend() {
+	if ! use gui; then
+		einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+	fi
+
+	if ! use opengl; then
+		einfo "No USE=\"opengl\" selected, this build will lack"
+		einfo "the OpenGL feature."
+	fi
+	if ! use nls && use gui; then
+		einfo "USE=\"gui\" also selects USE=\"nls\".  This build"
+		einfo "will have NLS support."
+	fi
+
+	# 749273
+	local d=${ROOT}
+	for i in usr "$(get_libdir)"; do
+		d="${d}/$i"
+		if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+			die "${d} should be owned by root, VirtualBox will not start otherwise"
+		fi
+	done
+}
+
+pkg_setup() {
+	java-pkg-opt-2_pkg_setup
+	use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	if use python; then
+		mkdir test
+		cp "${FILESDIR}"/test_python.py test/
+		python_fix_shebang test/test_python.py
+	fi
+
+	# Only add nopie patch when we're on hardened
+	if gcc-specs-pie; then
+		eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+	fi
+
+	# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+	rm -r kBuild/bin || die
+	# Remove everything in tools except kBuildUnits
+	find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+	# Disable things unused or split into separate ebuilds
+	sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+		"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+	if ! use pch; then
+		# bug #753323
+		printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+			>> LocalConfig.kmk || die
+	fi
+
+	# bug #916002, #488176, #925347
+	tc-ld-is-mold || tc-ld-force-bfd
+
+	# Respect LDFLAGS
+	sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+		-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+	# Do not use hard-coded ld (related to bug #488176)
+	sed -e '/QUIET)ld /s@ld @$(LD) @' \
+		-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+	# Use PAM only when pam USE flag is enbaled (bug #376531)
+	if ! use pam; then
+		einfo "Disabling PAM removes the possibility to use the VRDP features."
+		sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+		sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+			src/VBox/HostServices/Makefile.kmk || die
+		echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+	fi
+
+	# add correct java path
+	if use java; then
+		sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+			-i "${S}"/Config.kmk || die
+		java-pkg-opt-2_src_prepare
+	fi
+
+	#856811 #864274
+	# cannot filter out only one flag, some combinations of these flags produce buggy executables
+	for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+		append-cflags $(test-flags-CC -mno-$i)
+		append-cxxflags $(test-flags-CXX -mno-$i)
+	done
+
+	# bug #940482
+	filter-flags -fno-plt
+
+	# bug #908814
+	filter-lto
+
+	# bug #843437
+	cat >> LocalConfig.kmk <<-EOF || die
+		CXXFLAGS=${CXXFLAGS}
+		CFLAGS=${CFLAGS}
+	EOF
+
+	if use sdl; then
+		sed -i 's/sdl-config/sdl2-config/' configure || die
+		echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+	fi
+
+	#443830
+	echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+	if tc-is-clang; then
+		# clang assembler chokes on comments starting with /
+		sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+		# clang does not support this extension
+		eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+	fi
+
+	# fix doc generation
+	echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+	# replace xhtml names with numeric equivalents
+	find doc/manual -name \*.xml -exec sed -i \
+		-e 's/&nbsp;/\&#160;/g' \
+		-e 's/&ndash;/\&#8211;/g' \
+		-e 's/&larr;/\&#8592;/g' \
+		-e 's/&rarr;/\&#8594;/g' \
+		-e 's/&harr;/\&#8596;/g' {} \+ || die
+
+	# fix help path #891879
+	echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
+
+	# 489208
+	# Cannot patch the whole text, many translations.  Use sed instead to replace the command
+	find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
+		's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
+	sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
+		src/VBox/Frontends/VirtualBox/src/main.cpp \
+		src/VBox/VMM/VMMR3/VM.cpp || die
+
+	# 890561
+	echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+
+	if ! use nls && ! use gui; then
+		cat >> LocalConfig.kmk <<-EOF || die
+			VBOX_WITH_NLS :=
+			VBOX_WITH_MAIN_NLS :=
+			VBOX_WITH_PUEL_NLS :=
+			VBOX_WITH_VBOXMANAGE_NLS :=
+		EOF
+	fi
+}
+
+src_configure() {
+	tc-export AR CC CXX LD RANLIB
+	export HOST_CC="$(tc-getBUILD_CC)"
+
+	local myconf=(
+		--with-gcc="$(tc-getCC)"
+		--with-g++="$(tc-getCXX)"
+
+		--disable-kmods
+
+		$(usev !alsa --disable-alsa)
+		$(usev !dbus --disable-dbus)
+		$(usev debug --build-debug)
+		$(usev !doc --disable-docs)
+		$(usev !java --disable-java)
+		$(usev !lvm --disable-devmapper)
+		$(usev !pulseaudio --disable-pulse)
+		$(usev !python --disable-python)
+		$(usev vboxwebsrv --enable-webservice)
+		$(usev vde --enable-vde)
+		$(usev !vmmraw --disable-vmmraw)
+		$(usev vnc --enable-vnc)
+	)
+
+	if use gui || use sdl || use opengl; then
+		myconf+=(
+			$(usev !opengl --disable-opengl)
+			$(usev !gui --disable-qt)
+			$(usev !sdl --disable-sdl)
+		)
+	else
+		myconf+=(
+			--build-headless
+		)
+	fi
+
+	if use amd64 && ! has_multilib_profile; then
+		myconf+=( --disable-vmmraw )
+	fi
+
+	# not an autoconf script
+	edo ./configure "${myconf[@]}"
+
+	# Force usage of chosen Python implementation
+	# bug #856121, bug #785835
+	sed -i \
+		-e '/VBOX_WITH_PYTHON.*=/d' \
+		-e '/VBOX_PATH_PYTHON_INC.*=/d' \
+		-e '/VBOX_LIB_PYTHON.*=/d' \
+		AutoConfig.kmk || die
+
+	if use python; then
+		cat >> AutoConfig.kmk <<-EOF || die
+			VBOX_WITH_PYTHON=$(usev python 1)
+			VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+			VBOX_LIB_PYTHON=$(python_get_library_path)
+		EOF
+
+		local mangled_python="${EPYTHON#python}"
+		mangled_python="${mangled_python/.}"
+
+		# Stub out the script which defines what the Makefile ends up
+		# building for. gen_python_deps.py gets called by the Makefile
+		# with some args and it spits out a bunch of paths for a hardcoded
+		# list of Pythons. We just override it with what we're actually using.
+		# This minimises the amount of patching we have to do for new Pythons.
+		cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+			print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+			print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+			print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+			print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+		EOF
+
+		chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+	else
+		cat >> AutoConfig.kmk <<-EOF || die
+			VBOX_WITH_PYTHON:=
+		EOF
+	fi
+}
+
+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_WITH_VBOXIMGMOUNT=1
+
+		KBUILD_VERBOSE=2
+
+		AS="$(tc-getCC)"
+		CC="$(tc-getCC)"
+		CXX="$(tc-getCXX)"
+
+		TOOL_GCC3_CC="$(tc-getCC)"
+		TOOL_GCC3_LD="$(tc-getCC)"
+		TOOL_GCC3_AS="$(tc-getCC)"
+		TOOL_GCC3_AR="$(tc-getAR)"
+		TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+		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_GCC3_CFLAGS="${CFLAGS}"
+		TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+		VBOX_GCC_OPT="${CXXFLAGS}"
+		VBOX_NM="$(tc-getNM)"
+
+		TOOL_YASM_AS=yasm
+	)
+
+	if use amd64 && has_multilib_profile; then
+		myemakeargs+=(
+			CC32="$(tc-getCC) -m32"
+			CXX32="$(tc-getCXX) -m32"
+
+			TOOL_GCC32_CC="$(tc-getCC) -m32"
+			TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+			TOOL_GCC32_LD="$(tc-getCC) -m32"
+			TOOL_GCC32_AS="$(tc-getCC) -m32"
+			TOOL_GCC32_AR="$(tc-getAR)"
+			TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+			TOOL_GXX32_CC="$(tc-getCC) -m32"
+			TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+			TOOL_GXX32_LD="$(tc-getCXX) -m32"
+			TOOL_GXX32_AS="$(tc-getCXX) -m32"
+			TOOL_GXX32_AR="$(tc-getAR)"
+			TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+		)
+	fi
+
+	MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_test() {
+	if use python; then
+		local -x VBOX_PROGRAM_PATH="${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin
+		local -x VBOX_SDK_PATH="${VBOX_PROGRAM_PATH}"/sdk
+		local -x PYTHONPATH="${VBOX_SDK_PATH}"/installer
+		LD_LIBRARY_PATH="${VBOX_PROGRAM_PATH}" epytest test/
+	fi
+}
+
+src_install() {
+	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+	vbox_inst() {
+		local binary="${1}"
+		local perms="${2:-0750}"
+		local path="${3:-${vbox_inst_path}}"
+
+		[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+		[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+		insinto ${path}
+		doins ${binary}
+		fowners root:vboxusers ${path}/${binary}
+		fperms ${perms} ${path}/${binary}
+	}
+
+	# Create configuration files
+	insinto /etc/vbox
+	newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+	# Set the correct libdir
+	sed \
+		-e "s@MY_LIBDIR@$(get_libdir)@" \
+		-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+	# Install the wrapper script
+	exeinto ${vbox_inst_path}
+	newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+	fowners root:vboxusers ${vbox_inst_path}/VBox
+	fperms 0750 ${vbox_inst_path}/VBox
+
+	# Install binaries and libraries
+	insinto ${vbox_inst_path}
+	doins -r components
+
+	for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
+		vboximg-mount vbox-img *so *r0; do
+		vbox_inst ${each}
+	done
+
+	# These binaries need to be suid root.
+	for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+		vbox_inst ${each} 4750
+	done
+
+	# Install EFI Firmware files (bug #320757)
+	for each in VBoxEFI{32,64}.fd ; do
+		vbox_inst ${each} 0644
+	done
+
+	# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+	# VBoxXPCOMIPCD (bug #524202)
+	for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+		pax-mark -m "${ED}"${vbox_inst_path}/${each}
+	done
+
+	# Symlink binaries to the shipped wrapper
+	for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+		VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+	done
+	dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+	dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+	if use pam; then
+		# VRDPAuth only works with this (bug #351949)
+		dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+	fi
+
+	# set an env-variable for 3rd party tools
+	echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	# environment variables used during SDK binding installation
+	echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
+	echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
+	doenvd "${T}/90virtualbox"
+
+	if use sdl; then
+		vbox_inst VBoxSDL 4750
+		pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+		for each in vboxsdl VBoxSDL ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+	fi
+
+	if use gui; then
+		vbox_inst VirtualBox
+		vbox_inst VirtualBoxVM 4750
+		for each in VirtualBox{,VM} ; do
+			pax-mark -m "${ED}"${vbox_inst_path}/${each}
+		done
+
+		if use opengl; then
+			vbox_inst VBoxTestOGL
+			pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+		fi
+
+		for each in virtualbox{,vm} VirtualBox{,VM} ; do
+			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+		done
+
+		insinto /usr/share/${PN}
+		doins -r nls
+		doins -r UnattendedTemplates
+
+		domenu ${PN}.desktop
+
+		pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+		for size in 16 32 48 64 128 ; do
+			newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+		done
+		newicon ${PN}-48px.png ${PN}.png
+		doicon -s scalable ${PN}.svg
+		popd &>/dev/null || die
+		pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+		for size in 16 24 32 48 64 72 96 128 256 512 ; do
+			for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+				icofile="${PN}-${ico}-${size}px.png"
+				if [[ -f "${icofile}" ]]; then
+					newicon -s ${size} ${icofile} ${PN}-${ico}.png
+				fi
+			done
+		done
+		popd &>/dev/null || die
+	fi
+
+	if use lvm; then
+		vbox_inst VBoxVolInfo 4750
+		dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+	fi
+
+	if use sdk; then
+		insinto ${vbox_inst_path}
+		doins -r sdk
+
+		if use java; then
+			java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+			java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+		fi
+	fi
+
+	if use udev; then
+		local udevdir="$(get_udevdir)"
+		local udev_file="VBoxCreateUSBNode.sh"
+		local rules_file="10-virtualbox.rules"
+
+		insinto ${udevdir}
+		doins ${udev_file}
+		fowners root:vboxusers ${udevdir}/${udev_file}
+		fperms 0750 ${udevdir}/${udev_file}
+
+		insinto ${udevdir}/rules.d
+		sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+			> "${T}"/${rules_file} || die
+		doins "${T}"/${rules_file}
+	fi
+
+	if use vboxwebsrv; then
+		vbox_inst vboxwebsrv
+		dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+		newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+		newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+	fi
+
+	# Remove dead symlinks (bug #715338)
+	find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+	# Fix version string in extensions or else they don't get accepted
+	# by the virtualbox host process (see bug #438930)
+	find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+	local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+	if use vnc; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/VNC
+	fi
+
+	if use dtrace; then
+		insinto ${extensions_dir}
+		doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+	fi
+
+	if use doc; then
+		dodoc UserManual.pdf UserManual.q{ch,hc}
+		docompress -x /usr/share/doc/${PF}
+	elif use gui; then
+		dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc}
+		docompress -x /usr/share/doc/${PF}
+	fi
+
+	if use python; then
+		local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+		if [[ ! -x "${python_path_ext}" ]]; then
+			eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+			eerror "but none were installed. This may happen if support for a Python target"
+			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+		fi
+
+		# 378871
+		local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer"
+		pushd "${installer_dir}" &> /dev/null || die
+		sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
+			-e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
+			-i vboxapi/__init__.py || die
+		# insert shebang, the files come without one
+		find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
+		python_domodule vboxapi
+		popd &> /dev/null || die
+		sed -e "1 i\#! ${PYTHON}" -i vboxshell.py || die
+		python_doscript vboxshell.py
+
+		# do not install the installer
+		rm -r "${installer_dir}" || die
+	fi
+
+	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if use udev; then
+		udev_reload
+		udevadm trigger --subsystem-match=usb
+	fi
+
+	tmpfiles_process virtualbox-vboxusb.conf
+
+	if use gui; then
+		elog "To launch VirtualBox just type: \"virtualbox\"."
+	fi
+
+	elog "You must be in the vboxusers group to use VirtualBox."
+	elog ""
+	elog "The latest user manual is available for download at:"
+	elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+	elog ""
+
+	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+	optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+	optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+	if ! use udev; then
+		ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+	fi
+}
+
+pkg_postrm() {
+	xdg_pkg_postrm
+
+	use udev && udev_reload
+}


^ permalink raw reply related	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2024-10-18 17:16 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-11 17:31 [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/, app-emulation/virtualbox/files/ Lars Wendler
  -- strict thread matches above, loose matches on Subject: below --
2017-02-21 22:05 Magnus Granberg
2017-05-11 12:07 Lars Wendler
2017-07-26 19:21 Richard Farina
2018-02-16 14:56 Lars Wendler
2018-02-19 14:16 Lars Wendler
2018-11-17 11:55 Lars Wendler
2018-12-07 21:42 Lars Wendler
2019-01-16 12:02 Lars Wendler
2020-06-02 21:52 Andreas Sturmlechner
2020-06-03  0:10 Andreas Sturmlechner
2021-04-22 16:55 Lars Wendler
2022-07-06  6:05 Sam James
2022-08-18 18:43 Sam James
2022-09-05 12:39 Joonas Niilola
2022-11-02  6:41 Viorel Munteanu
2022-11-20  8:20 Viorel Munteanu
2023-02-03 14:35 Viorel Munteanu
2023-02-21 15:06 Viorel Munteanu
2023-04-21 16:38 Viorel Munteanu
2023-05-15 14:35 Viorel Munteanu
2023-06-02 18:27 Viorel Munteanu
2023-07-20  9:40 Viorel Munteanu
2023-08-15 12:50 Viorel Munteanu
2023-08-15 12:50 Viorel Munteanu
2023-08-28 10:08 Viorel Munteanu
2024-01-28 10:44 Viorel Munteanu
2024-02-10 16:31 Viorel Munteanu
2024-02-10 16:31 Viorel Munteanu
2024-09-15 13:02 Viorel Munteanu
2024-09-15 13:02 Viorel Munteanu
2024-10-18 17:16 Viorel Munteanu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox