summaryrefslogtreecommitdiff
path: root/app-emulation
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/Manifest.gzbin15493 -> 15497 bytes
-rw-r--r--app-emulation/dxvk/Manifest2
-rw-r--r--app-emulation/dxvk/dxvk-2.5.2.ebuild181
-rw-r--r--app-emulation/free42/Manifest2
-rw-r--r--app-emulation/free42/free42-3.1.11.ebuild (renamed from app-emulation/plus42/plus42-1.1.12.ebuild)18
-rw-r--r--app-emulation/plus42/Manifest6
-rw-r--r--app-emulation/plus42/plus42-1.1.16.ebuild (renamed from app-emulation/plus42/plus42-1.1.11.ebuild)0
-rw-r--r--app-emulation/virtualbox-kvm/Manifest5
-rw-r--r--app-emulation/virtualbox-kvm/virtualbox-kvm-7.1.4_pre20241220.ebuild788
9 files changed, 987 insertions, 15 deletions
diff --git a/app-emulation/Manifest.gz b/app-emulation/Manifest.gz
index 7d8a267354ae..3cc6c0937211 100644
--- a/app-emulation/Manifest.gz
+++ b/app-emulation/Manifest.gz
Binary files differ
diff --git a/app-emulation/dxvk/Manifest b/app-emulation/dxvk/Manifest
index 7d6c55a7b261..8766a631a509 100644
--- a/app-emulation/dxvk/Manifest
+++ b/app-emulation/dxvk/Manifest
@@ -6,6 +6,7 @@ DIST dxvk-1.10.3.tar.gz 1204407 BLAKE2B 3507ffe4abf9c45f2a138b05e7cf706322a6bf3d
DIST dxvk-2.3.1.tar.gz 1005669 BLAKE2B d78448fcde9d600f7206dfa606fca4069e7563bb8b181fbc172691d6c45586904ae529550926a03612ed3cc1f2a2dff00990638125c1d7ce6179d3cd3ba8df04 SHA512 085567ac263872eb93d776ce7cf982690603e240a977dbb51ad69344af387fd745536ca62819afd4a809732a6f2d22b36c3df9538decf37dec527973d41e392f
DIST dxvk-2.4.1.tar.gz 1060662 BLAKE2B 43294af5829fe306acdb72c07b94c28d34eb798a2eaf6d2e42c2b80900e9b6f4f323569dfd51d565c836237fddce26b843f69e4ff57fc2a5838382993a9dd6ed SHA512 629e45bbdaddf83cd8a394877289781e8f54330b4c865b2d453ba3068a6054511a3697ca115497b64df0ce9ee36748a7fdb01fdc5f49a7dc44c4a3d3e47bf6de
DIST dxvk-2.5.1.tar.gz 1130762 BLAKE2B 2941f3702d0f478d140d8f39a97e29f24e8ce6a3f22160fe26a8cfb70a132fc39b43960f34ea3be8786e7ccdbbf4ff2ddc961d2cc93956e63422579cb934b2fb SHA512 44b200e2d468f9280444b888c8326becca123e1c8a50fbfa544165d24fb2a51478e00a8ab93d0777cab47be85ca67f63bb3627ea75757a4e0ab85209f93b1053
+DIST dxvk-2.5.2.tar.gz 1135676 BLAKE2B 4f0f030867365e75ec4fdc56fcbbaba26393ed4beb2fb34c351457fe4a23c2e1d9c50f96370112ac4eb98af86e833788f9b075ca399915e37b87a27591d9847a SHA512 b7ee35911c777e27a56aa3b43c26acec14a03531a39f9c465460011d0f2f0c3ee43d09095fbaa8890beae37dcb48520fe232def79279d6a11d0295224b60ce5f
DIST libdisplay-info-275e6459c7ab1ddd4b125f28d0440716e4888078.tar.bz2 81172 BLAKE2B 7a1e9e2feeb95e06e9d3f49ad9d14a8a152cca525085e819cda0b69c238fb79dddd6d547cd0f0a4b51dfc1ec74ac4c006345b9fc48563807bc8ab3bab58ea5ff SHA512 794e94e8c16d65901a7b705d1ba3361817b4e9e19e520b1004bcab232d0347f5713594d67f3c2b79d4f86b3012e710c648975547d27a63de043fcbe9e6b7e66d
DIST setup_dxvk.sh 4631 BLAKE2B 25270e1f6dfd446b1d124eac3bd19da8bc770527d02d987949fc3ae0bead07866dafa25f77a90b9a408413a724354a29a4a156ff5c9dc75e26b66e079824ec86 SHA512 257fd84e29a7037f04a1a2a506502c71d527af58f8c84d8c3dfb64597ebdc41c3dca362eaf20ab4bc1982b76428c1f843815d56a6e1369d072e0009e270cb121
DIST spirv-headers-8b246ff75c6615ba4532fe4fde20f1be090c3764.tar.gz 472513 BLAKE2B f1ad7e11c306c62509655eb41d74efc5fb88688780d006c6944844e964b339baa000f70e115c4df2947e882c9ac33186e301b31138c38fe5f997f7af7260f521 SHA512 fe1d9d70b217b194c92dd397bca386ce8452bc5ec3967d64a257b3a531386fe6a6ecb5e9ed8ab5bc5a2707c5378f02f05809d6d197dcfb3f87cd33304c3b1959
@@ -14,5 +15,6 @@ EBUILD dxvk-1.10.3-r1.ebuild 4988 BLAKE2B c1a07a25db7117285e6d0ba5bddcc5b9690b91
EBUILD dxvk-2.3.1-r1.ebuild 6667 BLAKE2B ac8620ba4b92cfa33c88db128f98304df7060dcdbaddcff8a570ebe9b2a5e9e6a5ab559088b2d2c30254160bfdc91f414a942421bddf387330f72721eedced08 SHA512 ce8129e47bd4a1a8431e052fc60e831ef6fd692d970d430fc4b111d71b4130915967679d8a96d4ba9c4647826dc34c924b585e3b07db67abb78c6b5e1b458de5
EBUILD dxvk-2.4.1.ebuild 6104 BLAKE2B 74a6bd12561ec92336b95aa9b8aa1c7167fa5ce984f5d8104e0e3d76140a337891a70215d907929bd7d06c8ef7c5e35a24572aff615ab1479357f0e712d8e999 SHA512 042a6473b19dd1d1a735a8092f944944f0c94e40124e6c96f118de08f2bd83a3a1c6e02767f2cb8a475ca40a540b0d264414e956ecc77a939cf89775ec727d65
EBUILD dxvk-2.5.1.ebuild 6065 BLAKE2B e93f18c43646759f9220da686e014f71fc2f65d22e0edb80456f1ac53334b78599289edc700a97402564285719d75ded9aa3bbd8b0c9c4b908f65afed0b89a37 SHA512 a067fc8c3b09cc67d6aa6c265488e78732b48deb601c3d2a6a26610f391f0c41c9a5bdbddccf8cf7d7688ce933e5e17f4d0bd5f2f47e10f2ba3f99406f8ad44a
+EBUILD dxvk-2.5.2.ebuild 6067 BLAKE2B 825fee4c6315f0341c220c14fed9d241e45d8dca5177ece87ba1369c3893fb20ab28da587603c72e20cb52ff1c1b0072162b0f24170e6632054f9cd9bddb2064 SHA512 2b1185990a72d895d7f7600078a70b8905d856ba34a851ca687764deb2b583c86da96b3035ba6e0c185a0f832135d79afcd5f3c779284795e427165c9128b62a
EBUILD dxvk-9999.ebuild 5947 BLAKE2B 3a86082b1890360375d0dba2b037da7b9e6c05440c2f2057283ebe109e22ded34d0c55263c96b1ae28f319a2e5a0a5063111ea38aaca9c74ae6ea7a488dfc770 SHA512 439f121ae0dac4b3f7f0de3bb6ad8ca39dd5fb71d82b7f2544562db4832edb5eccd2a61fb3cb66301f6fd81f40868af3b6a8d8115f5d9ea545ffd2a93b815aa7
MISC metadata.xml 885 BLAKE2B c21b9383a626cfea8b758d171ebbe7180d7a0dc09da611ad5f05b3e877f4051e33544e29c9c5e58fa20143bf724d8d27da9279bcf49e3465a7aa6cb7eeca4eb1 SHA512 3ad1138cbe63473b6da56d73214913e9a3e68d270e1df01fa4202e76a6efe35c6971595660724e30b16db31fba404441bc36b075e2197944a699c436ed60ebb8
diff --git a/app-emulation/dxvk/dxvk-2.5.2.ebuild b/app-emulation/dxvk/dxvk-2.5.2.ebuild
new file mode 100644
index 000000000000..56cafa91a05c
--- /dev/null
+++ b/app-emulation/dxvk/dxvk-2.5.2.ebuild
@@ -0,0 +1,181 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib python-any-r1
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git"
+ EGIT_SUBMODULES=(
+ # picky about headers and is cross-compiled making -I/usr/include troublesome
+ include/{spirv,vulkan}
+ subprojects/libdisplay-info
+ )
+else
+ HASH_SPIRV=8b246ff75c6615ba4532fe4fde20f1be090c3764
+ HASH_VULKAN=46dc0f6e514f5730784bb2cac2a7c731636839e8
+ HASH_DISPLAYINFO=275e6459c7ab1ddd4b125f28d0440716e4888078
+ SRC_URI="
+ https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> spirv-headers-${HASH_SPIRV}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> vulkan-headers-${HASH_VULKAN}.tar.gz
+ https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/libdisplay-info-${HASH_DISPLAYINFO}.tar.bz2
+ "
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine"
+HOMEPAGE="https://github.com/doitsujin/dxvk/"
+
+# setup_dxvk.sh is no longer provided, fetch old until a better solution
+SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh"
+
+LICENSE="ZLIB Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw +d3d8 +d3d9 +d3d10 +d3d11 +dxgi +strip"
+REQUIRED_USE="
+ || ( d3d8 d3d9 d3d10 d3d11 dxgi )
+ d3d8? ( d3d9 )
+ d3d10? ( d3d11 )
+ d3d11? ( dxgi )
+"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch
+ "${FILESDIR}"/${PN}-2.4-d3d8-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is set but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die
+ mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die
+ fi
+ cp -- "${DISTDIR}"/setup_dxvk.sh . || die
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2}
+ --force-fallback-for=libdisplay-info # system's is ELF (unusable)
+ $(meson_use {,enable_}d3d8)
+ $(meson_use {,enable_}d3d9)
+ $(meson_use {,enable_}d3d10)
+ $(meson_use {,enable_}d3d11)
+ $(meson_use {,enable_}dxgi)
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_dxvk.sh
+ dodoc README.md dxvk.conf
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was"
+ elog "removed upstream, handling may change in the future."
+ fi
+
+ if use d3d8 && [[ ${REPLACING_VERSIONS##* } ]] &&
+ ver_test ${REPLACING_VERSIONS##* } -lt 2.4
+ then
+ elog
+ elog ">=${PN}-2.4 now provides d3d8.dll, to make use of it will need to"
+ elog "update old wine prefixes which is typically done by re-running:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ fi
+}
diff --git a/app-emulation/free42/Manifest b/app-emulation/free42/Manifest
index 1dd9d1c7edf1..22ff2a88215e 100644
--- a/app-emulation/free42/Manifest
+++ b/app-emulation/free42/Manifest
@@ -1,9 +1,11 @@
AUX free42-3.0.14-fix-makefile.patch 731 BLAKE2B 0534c19c6ecf9836ab10f71beeffe6e9068b8af340c5d73befef8ef24e2a0a2436fedceaffd822f3a89fd1d9b250201069fa0f0c3d079adadc5248af95c2fe4c SHA512 8610cf7230f2e6aaa1997d48c06e96bcfc4ff3eb233b1f5643c487a2c30870113e7617ccb13558735998a973f0e21f6fa9389bea4f17b6cfc8387d73c1e048c8
AUX free42-3.0.16-fix-build-intel-lib.patch 2435 BLAKE2B d95d31e0322454b0578f52a1e1ad50213786c14cba8e91bb440fd44397184021da3ce6813eb82114820d9649c8e33969ff5dcfb454c72d7f89b4785564139533 SHA512 7376289f5ed760e48c3c00ee9d1135532cb0aca9ee1eb8116a284925f00d59434544c10de612acaa14f8fd2af409091a19aaf03b01ae80fa185ae3beb70c85cf
DIST free42-nologo-3.1.10.tgz 7464717 BLAKE2B 32000819bb4321c7ff85f4a3609ebb7e9237180335f9c8c09616c15da7451ad0aefd4aff1de2a0fbeab27526c6a7c3802f5588e03ec0e5cb4caf7222f53b01c9 SHA512 1e2ed003dc29df9c8849d3f85c26b2ca761f8a47c3754355c8f96d5b09628c126fde7e0802acaaca632cd3e1072d1f653f1e1d850f550e40da58f16b5b799461
+DIST free42-nologo-3.1.11.tgz 7470178 BLAKE2B 7365b91bdfeff7b795b5a59563d0e116d2f4128dea2c90ee7e2c6c4fb363c8eae89ff850e50532e4999c2263ce3274f89af7c6e4c7cb66da1bbb9174b501f901 SHA512 1dc3c5ae4f9ffa056c1e052c65a542972f98eaabd4443ddc226fce9392da62f720ac3036aa7bd51f8825a84b4e6d9eb78aedd72ada7f6b97829556cc0b09c7b8
DIST free42-nologo-3.1.8.tgz 7464179 BLAKE2B 122175508b2da42f101fae37d7c1627ef802d6e21af9cfb4114b657591f0ba1011a109ec3d75823911d3342fdd02e84a58553e616cd0b4c6288b5d39d9648250 SHA512 ef350d963a11c1a195024f57532a22771a3d0d9b7058bf38557e81c943e7cbd8b500472275b7094be3f7f01c3edf557cf3a3ee2d493cb756d108211b7391a4bc
DIST free42-nologo-3.1.9.tgz 7464567 BLAKE2B d3a8e87a71b1e6de0da2f9d0efe20e3131c8589151b1f67873d29aa45131b513a2e7fb127fd93fec35c318ed9ed9959f356df3b8c39ea31ed89022d9d66de3eb SHA512 350a0f15f08afbca04cf59e453ac0e48c78fb068b67746ac4174a595140085a167409a51eb9f627a71b931177495456ab31ae3ec00a9dda29bb21db7244381fd
EBUILD free42-3.1.10.ebuild 978 BLAKE2B c3a4c3bc87adec0b446a2dc59f540253fe0458cef590566f6cd8c5ff0950a33835b18ef22fecc21505f5c30ab247d97f3fa8df82524d0f0847e0d8304c8976ca SHA512 a43b154709566e9bc8ae472c9beb2d946f1327929f1b5777670eb4ba883b1e7d39583dcdeb72d5f8d0a7b9faf83cacded5d6c265230b836057e658c8d7cf0e14
+EBUILD free42-3.1.11.ebuild 978 BLAKE2B c3a4c3bc87adec0b446a2dc59f540253fe0458cef590566f6cd8c5ff0950a33835b18ef22fecc21505f5c30ab247d97f3fa8df82524d0f0847e0d8304c8976ca SHA512 a43b154709566e9bc8ae472c9beb2d946f1327929f1b5777670eb4ba883b1e7d39583dcdeb72d5f8d0a7b9faf83cacded5d6c265230b836057e658c8d7cf0e14
EBUILD free42-3.1.8.ebuild 976 BLAKE2B fdac700a7965299f84511ace42e5b49665431f42dd6c02eb4f58e235b60ede1bb719fe5a553242aced72a22572a117cee839522cb98bc10193cf8ff88cfc2dad SHA512 5b994121ff250b72b0b01ac05f00d07d6cb3d8f302b22b5f0d0bb1db6ad7d6a2624f1e7b68fbb980597993992123188a095af46588d54142c86554b09a99ea53
EBUILD free42-3.1.9.ebuild 976 BLAKE2B fdac700a7965299f84511ace42e5b49665431f42dd6c02eb4f58e235b60ede1bb719fe5a553242aced72a22572a117cee839522cb98bc10193cf8ff88cfc2dad SHA512 5b994121ff250b72b0b01ac05f00d07d6cb3d8f302b22b5f0d0bb1db6ad7d6a2624f1e7b68fbb980597993992123188a095af46588d54142c86554b09a99ea53
MISC metadata.xml 346 BLAKE2B e7d31b887aade448cfdd31d3221c1d01f13ae1ad9097c4b18fa39b927401d7aa1c0b0b4bad4c36251b74f976ae79899e1b64b6086656cfbbee2036e1cf85946d SHA512 a848ab39ebadfe8b2c866cec845b16c1a0d92070a8e4365bc576a3d4287078594d0eb41f704f5a2f9b35618e24d91de99f6760ced7d39d9a4f706ca6f5c5480b
diff --git a/app-emulation/plus42/plus42-1.1.12.ebuild b/app-emulation/free42/free42-3.1.11.ebuild
index 3916a804001b..063f0e457429 100644
--- a/app-emulation/plus42/plus42-1.1.12.ebuild
+++ b/app-emulation/free42/free42-3.1.11.ebuild
@@ -5,11 +5,11 @@ EAPI=8
inherit toolchain-funcs
-MY_PV="${PN}-upstream-${PV}"
+MY_PV="${PN}-nologo-${PV}"
-DESCRIPTION="An Enhanced HP-42S Calculator Simulator"
-HOMEPAGE="https://thomasokken.com/plus42/"
-SRC_URI="https://thomasokken.com/plus42/upstream/${MY_PV}.tgz"
+DESCRIPTION="An HP-42S Calculator Simulator"
+HOMEPAGE="https://thomasokken.com/free42/"
+SRC_URI="https://thomasokken.com/free42/upstream/${MY_PV}.tgz"
S=${WORKDIR}/${MY_PV}
LICENSE="GPL-2"
@@ -27,14 +27,10 @@ RDEPEND="${DEPEND}"
DOCS=( CREDITS HISTORY README )
PATCHES=(
- "${FILESDIR}/${PN}-1.0.9-fix-makefile.patch"
- "${FILESDIR}/${PN}-1.0.12-fix-build-intel-lib.patch"
+ "${FILESDIR}/${PN}-3.0.14-fix-makefile.patch"
+ "${FILESDIR}/${PN}-3.0.16-fix-build-intel-lib.patch"
)
-src_prepare() {
- default
-}
-
src_compile() {
local myconf
use alsa && myconf="AUDIO_ALSA=yes"
@@ -45,5 +41,5 @@ src_compile() {
src_install() {
default
- dobin gtk/plus42bin gtk/plus42dec
+ dobin gtk/free42bin gtk/free42dec
}
diff --git a/app-emulation/plus42/Manifest b/app-emulation/plus42/Manifest
index 56548ee43449..81dd0963098e 100644
--- a/app-emulation/plus42/Manifest
+++ b/app-emulation/plus42/Manifest
@@ -1,11 +1,9 @@
AUX plus42-1.0.12-fix-build-intel-lib.patch 2435 BLAKE2B d95d31e0322454b0578f52a1e1ad50213786c14cba8e91bb440fd44397184021da3ce6813eb82114820d9649c8e33969ff5dcfb454c72d7f89b4785564139533 SHA512 7376289f5ed760e48c3c00ee9d1135532cb0aca9ee1eb8116a284925f00d59434544c10de612acaa14f8fd2af409091a19aaf03b01ae80fa185ae3beb70c85cf
AUX plus42-1.0.9-fix-makefile.patch 713 BLAKE2B fb8ca302a324122cee89d7f3ddab2a0521c8dee1e910ae50efe7ee74ed3781ac7e3c017cc7afbd601cf41527afd61d979396400a5e6dc8e1714ff853ba25a4eb SHA512 532c8b2d88324e3b38ab568beb1ed9b7fce6e91c894c6438657a800ccd32759c82ce9bcbea3828a04985eef18c278004e0a068b88695da5f0e75bd996c6d2fd3
-DIST plus42-upstream-1.1.11.tgz 7613219 BLAKE2B edd390be71318fbe351e997e3cedb2bf145fea89ed39ac91726c712d1906a28860f515de5bb657d0447d496d7469c6c01b185f6396c9227e120cbb8ea078bca3 SHA512 082042319ee9f58fc6c3fe86e9b15d03e17ae6e3d30441df2e953d71fe670f8004ff25da8986fb6f89fd4f6823a473fbfa620560e6051aa2a3bfebd9fbbd67a2
-DIST plus42-upstream-1.1.12.tgz 7613262 BLAKE2B 983388034eca0bfceb4d2ca129a7fad5192e642e6bb05365bb883b7cb9a7bc571181b28214c2d4a9efd97a87d2836f95e4755e33f7a98bcc8bba0b5a97e4f226 SHA512 b0502d3132e49fc29d3e5b6b9d9fe4d6de52ebf5a44937a3847932993563e7ba12cca72dfa6d505acaa5eb95ffd5692df4b10b35075e846a17a9a621f31df225
DIST plus42-upstream-1.1.13.tgz 7613465 BLAKE2B 88940160f2d5aa9c06b9b19b12a4bc747ef7c9e354075ca144997cffda42f7a07f3da602385b9e574402fa957463dce4bf3ba1237c11fa34d99bb3ed36249a67 SHA512 ff1f80be13337debf98e1a3e157e4bd5f017acde27e716254496606af8b4ffd967f8a03dc4e263e6fdf4ec62acf46fd5981297c0b29748b7dc0320969b14fa5b
DIST plus42-upstream-1.1.14.tgz 7613616 BLAKE2B 9d0ff8205188460e8f1a5bd539425954a82202ffb8f62beb76b81838d7f3ff325f5f20fffeadf5ceef750dc662b9f1673b94dc9f61297da55c7d0a36e7a8a574 SHA512 e2edcfeac9c464e9c22dc114392be81a5f70d2327d6787585a1b6038e665236119a031e9e6bf380c08e0147c77149df518335b3fdca238ed9684a4254b5f5af7
-EBUILD plus42-1.1.11.ebuild 1016 BLAKE2B 32fa68d9374bd10884b0ed9a3d2d3a71cfda2f383656abd8a61923ba3e2bdd4faa99efe4d8bc7d1950392dbd9dcd73542c17e52fe4ad17f74d0ad770003adc5f SHA512 40b740dc3e4eef760b14d6a88248c814250349a86a5ff8b521959f1ee918fa7f576b1caaf2e67c588d07f4a24f91b03e54344ab3c9146aca865cc4d10c2e3acb
-EBUILD plus42-1.1.12.ebuild 1016 BLAKE2B 32fa68d9374bd10884b0ed9a3d2d3a71cfda2f383656abd8a61923ba3e2bdd4faa99efe4d8bc7d1950392dbd9dcd73542c17e52fe4ad17f74d0ad770003adc5f SHA512 40b740dc3e4eef760b14d6a88248c814250349a86a5ff8b521959f1ee918fa7f576b1caaf2e67c588d07f4a24f91b03e54344ab3c9146aca865cc4d10c2e3acb
+DIST plus42-upstream-1.1.16.tgz 7620137 BLAKE2B e403386ee121292fb4561352f7ba8db3e9ecf39506df643a7de21a3b54b29eb3f866e0d236eb70c1fc112c98a91cdd3f3bac5bafd3329c94ed420950bcf5b9ef SHA512 cac03b6431d9137d4ec1904fe5945b45d0c29219dbf820f0159a98fbfc81f2b7c638307b09424ad79b4322c250056d6c7b87c915ea2ee034bbf8f7276ad82a62
EBUILD plus42-1.1.13.ebuild 1016 BLAKE2B 32fa68d9374bd10884b0ed9a3d2d3a71cfda2f383656abd8a61923ba3e2bdd4faa99efe4d8bc7d1950392dbd9dcd73542c17e52fe4ad17f74d0ad770003adc5f SHA512 40b740dc3e4eef760b14d6a88248c814250349a86a5ff8b521959f1ee918fa7f576b1caaf2e67c588d07f4a24f91b03e54344ab3c9146aca865cc4d10c2e3acb
EBUILD plus42-1.1.14.ebuild 1016 BLAKE2B 32fa68d9374bd10884b0ed9a3d2d3a71cfda2f383656abd8a61923ba3e2bdd4faa99efe4d8bc7d1950392dbd9dcd73542c17e52fe4ad17f74d0ad770003adc5f SHA512 40b740dc3e4eef760b14d6a88248c814250349a86a5ff8b521959f1ee918fa7f576b1caaf2e67c588d07f4a24f91b03e54344ab3c9146aca865cc4d10c2e3acb
+EBUILD plus42-1.1.16.ebuild 1016 BLAKE2B 32fa68d9374bd10884b0ed9a3d2d3a71cfda2f383656abd8a61923ba3e2bdd4faa99efe4d8bc7d1950392dbd9dcd73542c17e52fe4ad17f74d0ad770003adc5f SHA512 40b740dc3e4eef760b14d6a88248c814250349a86a5ff8b521959f1ee918fa7f576b1caaf2e67c588d07f4a24f91b03e54344ab3c9146aca865cc4d10c2e3acb
MISC metadata.xml 353 BLAKE2B 62d2057ed40527ddee3b747c7d702009bba223521e3264af5905506515fc67a6baf27938ae03d664eeb713aaeac898b7a1eee0682b69f3659b4dbc6e7eddaef8 SHA512 9633917e4a226c142672cd8bb91d3ca5ec40a2b4600bc8ba60ea959dc871f54881dc331ca5ed0030a4afcbad426c7528667b61289e4ed77e19aa3e9d1c816ce2
diff --git a/app-emulation/plus42/plus42-1.1.11.ebuild b/app-emulation/plus42/plus42-1.1.16.ebuild
index 3916a804001b..3916a804001b 100644
--- a/app-emulation/plus42/plus42-1.1.11.ebuild
+++ b/app-emulation/plus42/plus42-1.1.16.ebuild
diff --git a/app-emulation/virtualbox-kvm/Manifest b/app-emulation/virtualbox-kvm/Manifest
index fee23e89d437..6d044ef8b7f3 100644
--- a/app-emulation/virtualbox-kvm/Manifest
+++ b/app-emulation/virtualbox-kvm/Manifest
@@ -9,10 +9,15 @@ AUX virtualbox-ose-6-wrapper 3578 BLAKE2B c150e578212435268de3c5fb0eea701bc843ec
AUX virtualbox-vboxusb_tmpfilesd 35 BLAKE2B 56937e236a0e4d1a2aa085271e8ae0af9553fdf7c3b804af4d3fda3aa8dbc32d63762fee90bc949390cb9cd67f2f0111894c8af084731dab6920ae1675c69a64 SHA512 72e4602f5f214f8833486f5c787c263a10390e8bdf65b5615d67c35ec44048f02add12fe43b19f9c57a9d2f12d768c52e54fcfb9052c0611d06cc988a698c171
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.4.tar.bz2 206218796 BLAKE2B 62a4f44b4eac2e1cb2c0bace5dfabf86c41b738d81aede3de75d88159a8d76158748eaae38ee3eedbc0f79b639a875f1ef6805a8ca7c95021f475935f54d7ef9 SHA512 97654339d509447e2604db01e29f9e810f59498a378e645f412cffb67022c4e547f205e8ebdac6ae33aaa8f7bc0f289bdca2e5a04b1fa31b4a05c191d7600a9c
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.4.tar.xz 1586108 BLAKE2B e8219ed67b1db9a5e4d0271e25980fbcbfb8c72316dc4bd3337080c81082bb8ecad9c9317b5b9be77db1eeac42c567512a64fe86ae9bb6371dea8632e7afc9ab SHA512 185249fe2bdf2138a034c53e23eedb88cf487e1fb26a8bd623f0d75ea0d2ff4dff3484564a5b317703fb3f302ec7037cb0a49c7c3845e229fe2ac9e2c8c96af6
DIST virtualbox-kvm-20240828.tar.gz 130388 BLAKE2B 68589fce348efe37a46d4e6cb28ced18969c5cffbd3dcaf85a4f0a085782521a26b4fe4901bda914a17dc97514df7c2a0548d616830abdb9b279afc1508f6c28 SHA512 3625a069729158e48d0f356d34657b925e235f24af0cd42d01625936b6baf1f16ab11448fb7c82190722e24b81b240b08786154ad26050ed6dff2c69c89e0cd4
+DIST virtualbox-kvm-20241220.tar.gz 86479 BLAKE2B d0b152bcc1ab2c5255d5e39b297b7375ad527c510d2d518d007aabfa1bcfb94a3decc847e80d01b7b2e8d0b014988d1764ea952fbf2921f337ca2480abd91eca SHA512 54c645368d0769c8da6d630132976b049722baa43846bcd019778f36e272df6714a7634273105cdb965a02904b326bede153c7387d581b713bcef9bfc665a3f7
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
EBUILD virtualbox-kvm-7.0.20_pre20240828.ebuild 21476 BLAKE2B 34cb426bb6e20ca8e5e250f41a6dab0dda36384cd4a496f5d817859d19c5c3b7549e95c95da744edd6735a853327a13d58345b0f771a3012cfcd5fbfae34c526 SHA512 1635586f79ca8e32d701ccbe5ceca02dad8536fbcb0b88561954812f124596436c34ac215c959570b8b1002b832a33e913784d59f1e67e1f07acb01116cfc12c
EBUILD virtualbox-kvm-7.0.22_pre20240828.ebuild 21476 BLAKE2B 34cb426bb6e20ca8e5e250f41a6dab0dda36384cd4a496f5d817859d19c5c3b7549e95c95da744edd6735a853327a13d58345b0f771a3012cfcd5fbfae34c526 SHA512 1635586f79ca8e32d701ccbe5ceca02dad8536fbcb0b88561954812f124596436c34ac215c959570b8b1002b832a33e913784d59f1e67e1f07acb01116cfc12c
+EBUILD virtualbox-kvm-7.1.4_pre20241220.ebuild 22482 BLAKE2B d06900f75c316962d322b04f19e8381c13b47d82ce818314e2f1928719f4ea1bd2cfc99233be57ce581f50699cbb344e046bf7f1728e7aa1fc5c225ea7022f8a SHA512 548a601c15571db186568d0ad4f9a1d9c02b9dfa7651bee937920962d844c879c522820949d6ee02688ecb3e5737e9c667cfd163768f74242e3f5e2b2dacb85b
MISC metadata.xml 974 BLAKE2B c83434d291bfedba474feb955752d2e81141d053f021f11cc1dfb72c893bb2765b234157f337a0b6c0fc7a1f6b15dc9fb74a9862be3ee1675b09928cd08b5e89 SHA512 e02aeb6fc0dd013bd0717428208dd450f6557e23b25211b7ad791ee5ac226028580c56b63f95d361b146bb2c718b28baba0b0b2ba6ad9e8c60b43663e307cf94
diff --git a/app-emulation/virtualbox-kvm/virtualbox-kvm-7.1.4_pre20241220.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.1.4_pre20241220.ebuild
new file mode 100644
index 000000000000..b0c6978ad12d
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.1.4_pre20241220.ebuild
@@ -0,0 +1,788 @@
+# 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
+
+PATCHES_PV="7.1.0"
+ORIGIN_PN="VirtualBox"
+ORIGIN_PV=${PV%_pre*}
+
+MY_PN=virtualbox
+MY_PV=${PV#*_pre}
+MY_P=${ORIGIN_PN}-${ORIGIN_PV}
+
+PATCHES_DIR="${WORKDIR}"/${PN}-dev-${MY_PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/ https://github.com/cyberus-technology/virtualbox-kvm"
+SRC_URI="
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${PATCHES_PV}.tar.bz2
+ https://github.com/cyberus-technology/virtualbox-kvm/archive/dev-${MY_PV}.tar.gz -> ${PN}-${MY_PV}.tar.gz
+ https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/${MY_P}.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${MY_PN}/${MY_PN}-help-${ORIGIN_PV}.tar.xz ) )
+"
+S="${WORKDIR}/${ORIGIN_PN}-${ORIGIN_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 +hardened 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-arch/xz-utils
+ 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="
+ !app-emulation/virtualbox
+ ${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}
+ 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-${PATCHES_PV}/patches
+ "${PATCHES_DIR}"/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}"/${MY_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 #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 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
+ --with-kvm
+
+ $(usev !alsa --disable-alsa)
+ $(usev !dbus --disable-dbus)
+ $(usev debug --build-debug)
+ $(usev !doc --disable-docs)
+ $(usev !hardened --disable-hardening)
+ $(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_test() {
+ if use python; then
+ local -x VBOX_APP_HOME="${S}"/out/linux.${ARCH}/$(usex debug debug release)
+ local -x VBOX_INSTALL_PATH="${VBOX_APP_HOME}"
+ local -x VBOX_PROGRAM_PATH="${VBOX_APP_HOME}"/bin
+ local -x VBOX_SDK_PATH="${VBOX_PROGRAM_PATH}"/sdk
+ local -x PYTHONPATH="${VBOX_SDK_PATH}"/installer/python/vboxapi/src
+ einfo "VBOX_APP_HOME ${VBOX_APP_HOME}"
+ einfo "VBOX_PROGRAM_PATH ${VBOX_PROGRAM_PATH}"
+ einfo "VBOX_SDK_PATH ${VBOX_SDK_PATH}"
+ einfo "PYTHONPATH ${PYTHONPATH}"
+ 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)/${MY_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}/${MY_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}/${MY_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 with USE=hardened.
+ local mode=$(usex hardened 4750 0750)
+ for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+ vbox_inst ${each} ${mode}
+ 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 ${mode}
+ 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 ${mode}
+ 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
+
+ newmenu ${MY_PN}.desktop ${PN}.desktop
+
+ pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+ for size in 16 32 48 64 128 ; do
+ newicon -s ${size} ${MY_PN}-${size}px.png ${PN}.png
+ done
+ newicon ${MY_PN}-48px.png ${PN}.png
+ newicon -s scalable ${MY_PN}.svg ${PN}.png
+ 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="${MY_PN}-${ico}-${size}px.png"
+ if [[ -f "${icofile}" ]]; then
+ newicon -s ${size} ${icofile} ${MY_PN}-${ico}.png
+ fi
+ done
+ done
+ popd &>/dev/null || die
+ fi
+
+ if use lvm; then
+ vbox_inst VBoxVolInfo ${mode}
+ 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)/${MY_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}/UserManual.q{ch,hc}
+ elif use gui; then
+ dodoc "${WORKDIR}"/${MY_PN}-help-${ORIGIN_PV}/UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc}
+ fi
+ dodoc ${PATCHES_DIR}/README.*
+
+ 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}"/${MY_PN}-vboxusb_tmpfilesd virtualbox-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/${ORIGIN_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 ${MY_PN}."
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+
+ use udev && udev_reload
+}