diff options
Diffstat (limited to 'app-emulation')
16 files changed, 1147 insertions, 7 deletions
diff --git a/app-emulation/Manifest.gz b/app-emulation/Manifest.gz Binary files differindex cfee28a0bd7f..68342f9e3ff6 100644 --- a/app-emulation/Manifest.gz +++ b/app-emulation/Manifest.gz diff --git a/app-emulation/virtualbox-additions/Manifest b/app-emulation/virtualbox-additions/Manifest index 335c95e11812..416ae144f4a0 100644 --- a/app-emulation/virtualbox-additions/Manifest +++ b/app-emulation/virtualbox-additions/Manifest @@ -1,5 +1,7 @@ DIST VBoxGuestAdditions_6.1.40.iso 63883264 BLAKE2B b9a22604b7dc135e9944bb46e7fb59e6202e692dd75de89763c6fe432328f65bacf4d893221a5e6f90ed3236fd36af2f6608932402e0ae967eb1ed24f6b1153a SHA512 149311a826c20f9bc8212e7580d3b552b4cd82f7e9dbaf4e44f363807f8132f0a81eb39082fc8876fcd5fb527d7d7c8ae1b3b6d8372b9bb39273d88fbd84a185 DIST VBoxGuestAdditions_7.0.2.iso 52957184 BLAKE2B 8740a9c57268b96995d9412a7799f1c5d7901619f909eb8bef244e3fbadf5a6d94f35f40fa437eb8eda563a77110723bfad4eac518a93fc00e7ee246fd820ac8 SHA512 8084e97b37c6a4471bea8df4ba8464b4c709b4c9b69141c92adec70c12bc32fab583fa20ab04135bcab67f4902b88dbc9539c88909ab65e3eef6bce4c93c692a +DIST VBoxGuestAdditions_7.0.4.iso 52969472 BLAKE2B ac8d724fbbb928bf0ddb10994ec2d4cce31ce0a95f4765f663ade0ab459685e384e86224057705ae9820dede0b69a40018ab481ac6bb1eec3f4bbccbcb395a20 SHA512 cbbc2141a7d98992fa07756fdaadab49c8686d181037db675ceb9b8c3257edb05be1d3183198255259c93b5e01b5eb72a118a64a04051197edfe179fd2ebeac4 EBUILD virtualbox-additions-6.1.40.ebuild 616 BLAKE2B a27ef3f2df7299725bd7cc949692f730c14926e3e6c8c2891039c381232e884722f8badcfc01148d23712a1d471cf2c112172e3e036458f04c6edee74ce495fa SHA512 3d4f31e4347d449e0e3713b977086d1f9d9bc1bb547c847a061656689eb07a8d15e89b2586b78146ef23d870cbda1d56158159a878320b1f88199c9ca75ef9e6 EBUILD virtualbox-additions-7.0.2.ebuild 770 BLAKE2B cb9fd4121202d0aeaf6d64cedc56676cf3a442d56930d52fed2bd6949c68f0298930c37f27ab2dfe0ea96f627f8f41731963aa2a431fcf05e8adb624e51c7fb2 SHA512 fefb48d9b7bfd990fea3235a3c51fe13af59d87f99fdc8869d324a4c305ddcd0bb18726b6da8448e1c765bbc34e6618bbd2bd65111710c54b4a2bc947781ac81 +EBUILD virtualbox-additions-7.0.4.ebuild 770 BLAKE2B cb9fd4121202d0aeaf6d64cedc56676cf3a442d56930d52fed2bd6949c68f0298930c37f27ab2dfe0ea96f627f8f41731963aa2a431fcf05e8adb624e51c7fb2 SHA512 fefb48d9b7bfd990fea3235a3c51fe13af59d87f99fdc8869d324a4c305ddcd0bb18726b6da8448e1c765bbc34e6618bbd2bd65111710c54b4a2bc947781ac81 MISC metadata.xml 255 BLAKE2B 9386ef3bdb55211441f303528b31f8ccd9ad9039744400e859574a424fa1f366a989fe78f5c10038f3dd9b06a6a389e4a7e643b3eac0dc93a79ac4cc3b4c5423 SHA512 6c158e12464285afd44b70d0653b65f65da1c523fc2b1b07eb6d2dec56f58234bb31cb9dc36238cd6dfc20031b4d58c04e7c1678cc9f917194403ad8a209513f diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-7.0.4.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.4.ebuild new file mode 100644 index 000000000000..a8e3c6f5b6e1 --- /dev/null +++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.4.ebuild @@ -0,0 +1,30 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN=VBoxGuestAdditions +MY_P=${MY_PN}_${PV} + +DESCRIPTION="CD image containing guest additions for VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso" + +# Reminder 7.0.2: +# This package contains only the ISO, so the license is taken from COPYING +# But if we check the source files, some still use MIT or GPL-2+ +# File a bug if the situation does not improve after a few more releases +LICENSE="GPL-3 CDDL" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +S="${WORKDIR}" + +src_unpack() { + return 0 +} + +src_install() { + insinto /usr/share/${PN/-additions} + newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso +} diff --git a/app-emulation/virtualbox-extpack-oracle/Manifest b/app-emulation/virtualbox-extpack-oracle/Manifest index ca80e98f5873..3f8e9cca2468 100644 --- a/app-emulation/virtualbox-extpack-oracle/Manifest +++ b/app-emulation/virtualbox-extpack-oracle/Manifest @@ -1,5 +1,7 @@ DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.40.tar.gz 11233264 BLAKE2B c169747b6c0214bd850c5e639d5245e2084701c1ee764e8798a779545d95b8eb8ec0cf4622d5156c0a17126a6a522d041ec126984062b72e71a2283ae9652bd7 SHA512 6d8ff0f7f0c4eaaf9c6fcf965133fddc1d4057cffb98a10ade6cf0065e9f656bc49656bb3ac817694cbf9ca2fb4226f3e9ac9b1383ab07cdcbe05ffe18809ce1 DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.2.tar.gz 18515967 BLAKE2B c1b0a52b8dd80089130e0c7ed255d622144ef6271cfe71e120aa4be69fb9c04b83a33c78305eb6b6f44cb648d18170490c506e8ce765acb649de598abcae88ad SHA512 3d465b250051bef68b332b4908cbf1f0b07f32fddfec76a4e85de41e018beaf6bf7b29214dafbd05e6fcf3e3c694b621a05bfa98f12f56c1b3d224d9fff22f74 -EBUILD virtualbox-extpack-oracle-6.1.40.ebuild 1064 BLAKE2B 63d4c01cf703966e7c9a98be5df8dd0b81b51ce7781e8014bb8e37585cb4e02401e113cc925d43b494562c13beecf080a107ea10b6a45a5186ce7b91cd93c11d SHA512 61063ee060f2a0352a66de441128c5f21b52f41149067f0f3f544e627e7c2b018e1dcc608b6c228e21323eecbc4ace9eada07bdd8b192d9f785289ebf9c593d7 -EBUILD virtualbox-extpack-oracle-7.0.2.ebuild 736 BLAKE2B 340d20412992006621935f8ad9ab43eae521ab9d70b59b98aa7907a7f83fefc1120966593231670102b1cb6b1524fe39348587ba8728450cfd55e365cb8f780f SHA512 7f41305b7a40d93a7732cae86153124005c04154410f68a13badee28ca22b67a8f39baa565cdc66a9bc05ab4416c42d8a912303b853898c19b12f27fff357735 +DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.4.tar.gz 18515711 BLAKE2B 07e8ef3d638e7985830b78147849ebada0a4f2140458ea76e236dac53efb867135b860d5c2d29545f4127de934d2b059be60849466cbf6763fcc558afaf4786a SHA512 405042ae9aeff48ce86ec6f7dba294a8be1d26e0a4b1c5a85daacc231d64243a30f301ba6a4108546a8a4b702d01b109bc0936abded572f71bdd147c178615a2 +EBUILD virtualbox-extpack-oracle-6.1.40.ebuild 1067 BLAKE2B 5506b06258807476a1713cedcc547d79a09387c752d7eb117db7a2745ce3748e035de82b4708bd0d36f80a9262beec76907ddec87493dd4aeab43e0145ca3c74 SHA512 82ce2b700e39495e56698bfec0d3d4725c0f1e4bc59fca8ae0a2cfc6df02956d341016bf8a34c35ea83f4572f144fceca65508e7e1d8c6b2f8185683832489e2 +EBUILD virtualbox-extpack-oracle-7.0.2.ebuild 739 BLAKE2B e7648bea90ad5359d9325eacd098b5a368cc78207323b227282b51719d1c4f9012852dc51f24813f47b35a9c1ee80b0d41b4c817e1f90d4b99a9b7361cf09674 SHA512 5ebddbff184a9ac528cc3eacd940dfd9278a4afc0f6254911c87567d062623f44452398511eb39f0f3d2c8125c78a05d05d747853f53dabae958eca3ea55d586 +EBUILD virtualbox-extpack-oracle-7.0.4.ebuild 739 BLAKE2B e7648bea90ad5359d9325eacd098b5a368cc78207323b227282b51719d1c4f9012852dc51f24813f47b35a9c1ee80b0d41b4c817e1f90d4b99a9b7361cf09674 SHA512 5ebddbff184a9ac528cc3eacd940dfd9278a4afc0f6254911c87567d062623f44452398511eb39f0f3d2c8125c78a05d05d747853f53dabae958eca3ea55d586 MISC metadata.xml 255 BLAKE2B 9386ef3bdb55211441f303528b31f8ccd9ad9039744400e859574a424fa1f366a989fe78f5c10038f3dd9b06a6a389e4a7e643b3eac0dc93a79ac4cc3b4c5423 SHA512 6c158e12464285afd44b70d0653b65f65da1c523fc2b1b07eb6d2dec56f58234bb31cb9dc36238cd6dfc20031b4d58c04e7c1678cc9f917194403ad8a209513f diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.40.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.40.ebuild index 3dbb1658be56..831ab0b169c9 100644 --- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.40.ebuild +++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.40.ebuild @@ -21,7 +21,7 @@ DESCRIPTION="PUEL extensions for VirtualBox" HOMEPAGE="https://www.virtualbox.org/" SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" -LICENSE="PUEL" +LICENSE="PUEL-11" SLOT="0/$(ver_cut 1-2)" [[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ KEYWORDS="amd64" diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.2.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.2.ebuild index 199d4e6d70fa..ad26b79890fa 100644 --- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.2.ebuild +++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.2.ebuild @@ -11,7 +11,7 @@ DESCRIPTION="PUEL extensions for VirtualBox" HOMEPAGE="https://www.virtualbox.org/" SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" -LICENSE="PUEL" +LICENSE="PUEL-11" SLOT="0/$(ver_cut 1-2)" KEYWORDS="~amd64" RESTRICT="bindist mirror strip" diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.4.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.4.ebuild new file mode 100644 index 000000000000..ad26b79890fa --- /dev/null +++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.4.ebuild @@ -0,0 +1,29 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PV="$(ver_cut 1-3)" +MY_PN="Oracle_VM_VirtualBox_Extension_Pack" +MY_P="${MY_PN}-${MY_PV}" + +DESCRIPTION="PUEL extensions for VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" + +LICENSE="PUEL-11" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +RESTRICT="bindist mirror strip" + +RDEPEND="=app-emulation/virtualbox-${MY_PV}*" + +S="${WORKDIR}" + +QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*" + +src_install() { + insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN} + doins -r linux.${ARCH} + doins ExtPack* PXE-Intel.rom +} diff --git a/app-emulation/virtualbox-guest-additions/Manifest b/app-emulation/virtualbox-guest-additions/Manifest index 42cd976a5fde..7b34fcf0016d 100644 --- a/app-emulation/virtualbox-guest-additions/Manifest +++ b/app-emulation/virtualbox-guest-additions/Manifest @@ -7,7 +7,9 @@ AUX virtualbox-guest-additions.service 411 BLAKE2B f5f1c24a94764ca72a04879c27cd9 AUX xorg.conf.vbox 274 BLAKE2B 3a3035fcbdbd5810c54505f5a5e6deefa1540e5e01a038babb62a40bd5b2de2dc5b228cabe55612d92a522e6ae92aa7ff4ff2ab26772c3b54ce95ebac4e7fc5a SHA512 ac2b14970dc6667ceec2dbdae52bc92cbad4aff020898ede156454e8a8a703354f15c7e19cfbd2bdd15e251493fd05cacfe814cabee0f9b4cf155e44860ed4c9 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 EBUILD virtualbox-guest-additions-6.1.40.ebuild 7752 BLAKE2B a16fdb2fb381209101aa022521ebf81d91064d87a8b184b6988bd18f1f3f5bc05bd5fdb8865776bfe210be127c74c913e34eff42aaf30192725fdbdf70201b49 SHA512 c813bb0e76300e0ab983dbde2887e2233fca2baeb3f76e97478f12f164ab6f146e5016429820a43a44d7b7d23b16f1f60ff5e1f9dfdfa17426d0fd579a059f42 EBUILD virtualbox-guest-additions-7.0.2.ebuild 7833 BLAKE2B 8d8889005126d749038f3f4c7a1425e02945ca71c9071854bceb61b201c1aa9ad2588ba81c0a931a62e2ef912af6761484198ab67cedc913d1d851d11cb2a8f9 SHA512 718b05e3377f0503e3ab3001a4b3b74e2d64b90d2e10f153f2edf5aabce13f0029f34e4b67f740ec4224f3a37a67445f2cc3a72e9096732a0f5d4c94a83c9da6 +EBUILD virtualbox-guest-additions-7.0.4.ebuild 7839 BLAKE2B 3db54c024e784a3ae5229d19977fd5447943d7e962cf4325ce2cd85a0d7d0c81aa4405b462a13552b8ea73c96a84b3ab67b9ea1c8601a53a6fafb7f48496a507 SHA512 fed7e0411a9556f37fe95c37e9d4c65e444b5f65b2003f1a6dfece76790f6679008f80eed91c4b877de3f8adc7f6dd01adfaaef41bc92f05adbca805cd154f45 MISC metadata.xml 255 BLAKE2B 9386ef3bdb55211441f303528b31f8ccd9ad9039744400e859574a424fa1f366a989fe78f5c10038f3dd9b06a6a389e4a7e643b3eac0dc93a79ac4cc3b4c5423 SHA512 6c158e12464285afd44b70d0653b65f65da1c523fc2b1b07eb6d2dec56f58234bb31cb9dc36238cd6dfc20031b4d58c04e7c1678cc9f917194403ad8a209513f diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.4.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.4.ebuild new file mode 100644 index 000000000000..6e0fd6fb0fdc --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.4.ebuild @@ -0,0 +1,287 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo linux-mod systemd toolchain-funcs udev + +MY_PN="VirtualBox" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2" + +# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~x86" +IUSE="+dbus gui" + +# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist +# TODO: find out what this is, remove comment if obsolete + +RDEPEND=" + acct-group/vboxguest + acct-group/vboxsf + acct-user/vboxguest + sys-libs/pam + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + x11-apps/xrandr + x11-apps/xrefresh + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + ) +" +# some libs here are indirect dependencies, and also needed at compile time. +# keeping them in DEPEND to avoid warnings from qa-vdb. +DEPEND=" + ${RDEPEND} + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + x11-base/xorg-proto +" +BDEPEND=" + >=dev-lang/yasm-0.6.2 + >=dev-util/kbuild-0.1.9998.3127 + sys-devel/bin86 + sys-power/iasl +" +PDEPEND=" + gui? ( x11-drivers/xf86-video-vboxvideo ) +" + +BUILD_TARGETS="all" +BUILD_TARGET_ARCH="${ARCH}" + +S="${WORKDIR}/${MY_PN}-${PV}" +VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src" +MODULESD_VBOXSF_ALIASES=("fs-vboxsf vboxsf") # 485996 + +pkg_setup() { + export DISTCC_DISABLE=1 #674256 + MODULE_NAMES="vboxguest(misc:${VBOX_MOD_SRC_DIR}/vboxguest:${VBOX_MOD_SRC_DIR}/vboxguest) + vboxsf(misc:${VBOX_MOD_SRC_DIR}/vboxsf:${VBOX_MOD_SRC_DIR}/vboxsf)" + use gui && MODULE_NAMES+=" vboxvideo(misc:${VBOX_MOD_SRC_DIR}/vboxvideo::${VBOX_MOD_SRC_DIR}/vboxvideo)" + + linux-mod_pkg_setup +} + +src_prepare() { + # Remove shipped binaries (kBuild,yasm), see bug #232775 + rm -r kBuild/bin tools || die + + # Provide kernel sources + pushd src/VBox/Additions &>/dev/null || die + ebegin "Extracting guest kernel module sources" + kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null + eend $? || die + popd &>/dev/null || die + + # PaX fixes (see bug #298988) + pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die + eapply "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch + popd &>/dev/null || die + + # Disable things unused or splitted into separate ebuilds + cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die + if ! use gui; then + echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die + fi + + # Remove pointless GCC version check + sed -e '/^check_gcc$/d' -i configure || die + + # Respect LDFLAGS (bug #759100) + sed -i -e '/TEMPLATE_VBOXR3EXE_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die + + eapply "${WORKDIR}/virtualbox-patches-6.1.36/patches" + eapply_user +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + + # Build the user-space tools, warnings are harmless + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --nofatal + --disable-xpcom + --disable-sdl-ttf + --disable-pulse + --disable-alsa + $(usex dbus '' --disable-dbus) + --target-arch=${ARCH} + --with-linux="${KV_OUT_DIR}" + --build-headless + ) + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers" + linux-mod_src_compile +} + +src_install() { + linux-mod_src_install + + cd "${S}"/out/linux.${ARCH}/release/bin/additions || die + + insinto /sbin + newins mount.vboxsf mount.vboxsf + fperms 4755 /sbin/mount.vboxsf + + if use dbus; then + newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN} + else + newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN} + fi + + insinto /usr/sbin/ + newins VBoxService vboxguest-service + fperms 0755 /usr/sbin/vboxguest-service + + insinto /usr/bin + doins VBoxControl + fperms 0755 /usr/bin/VBoxControl + + # VBoxClient user service and xrandr wrapper + if use gui ; then + doins VBoxClient + fperms 0755 /usr/bin/VBoxClient + doins VBoxDRMClient + fperms 4755 /usr/bin/VBoxDRMClient + + pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die + newins 98vboxadd-xclient VBoxClient-all + fperms 0755 /usr/bin/VBoxClient-all + popd &>/dev/null || die + fi + + # udev rule for vboxdrv + local udev_rules_dir="/lib/udev/rules.d" + dodir ${udev_rules_dir} + echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + + # VBoxClient autostart file + insinto /etc/xdg/autostart + doins "${FILESDIR}"/vboxclient.desktop + + # sample xorg.conf + dodoc "${FILESDIR}"/xorg.conf.vbox + docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox + + systemd_dounit "${FILESDIR}/${PN}.service" +} + +pkg_postinst() { + linux-mod_pkg_postinst + udev_reload + if ! use gui ; then + elog "use flag gui is off, enable it to install the" + elog "X Window System video driver." + fi + elog "" + elog "Please add users to the \"vboxguest\" group so they can" + elog "benefit from seamless mode, auto-resize and clipboard." + elog "" + elog "The vboxsf group has been added to make automount services work." + elog "These services are part of the shared folders support." + elog "" + elog "Please add:" + elog "/etc/init.d/${PN}" + elog "to the default runlevel in order to start" + elog "needed services." + elog "To use the VirtualBox X driver, use the following" + elog "file as your /etc/X11/xorg.conf:" + elog " /usr/share/doc/${PF}/xorg.conf.vbox" + elog "" + elog "An autostart .desktop file has been installed to start" + elog "VBoxClient in desktop sessions." + elog "" + elog "You can mount shared folders with:" + elog " mount -t vboxsf <shared_folder_name> <mount_point>" + elog "" + elog "Warning:" + elog "this ebuild is only needed if you are running gentoo" + elog "inside a VirtualBox Virtual Machine, you don't need" + elog "it to run VirtualBox itself." + elog "" +} + +pkg_postrm() { + linux-mod_pkg_postrm + udev_reload +} diff --git a/app-emulation/virtualbox-modules/Manifest b/app-emulation/virtualbox-modules/Manifest index 22105aa0fac4..309019cc7830 100644 --- a/app-emulation/virtualbox-modules/Manifest +++ b/app-emulation/virtualbox-modules/Manifest @@ -2,6 +2,8 @@ AUX create_vbox_modules_tarball.sh 896 BLAKE2B 4153a8fa67cd8fe7187f3c4232691b1de AUX virtualbox.conf-r1 30 BLAKE2B 6308dedc75e2677cbdc844b53f51359e6b5745d3510636b04d08512122aeb6db81a1a18af156a8b9acccad395d390b24f9c27ed47413382cb6101266762de230 SHA512 5c6d31f527ca2db8d7fbeea759ac328eff42803d7940fd81ef12af22eb09f8913a0e561c35db1963e2a8b398ee288692817b5c8f3d439f2a6fd381769ec2ac8a DIST vbox-kernel-module-src-6.1.40.tar.xz 680112 BLAKE2B 95bcb598bc3823c8bf4bfeb734a5d812a4830d072b186c999ed8632552550d0d21318bc50419fd18301cd6e8e58d091a4f6363c9ee86725d6bf8e74050b552d2 SHA512 8eec3c960077205d53b3d2a8367ce562edb02a6d90fe0a4bd06e1dfa256760e128b9895fc8005ceeb50a72eda6509533a28c6ee264d10a2cd30601ed5ced2eeb DIST vbox-kernel-module-src-7.0.2.tar.xz 719208 BLAKE2B 9e356c10b431f765dc7c13673c296b8acf6247304fe40f0a6accde30e1c1f2ab04f46ac18ac6350cb1c554f9d0aaf3cb831a5f737cbd7d50ae8efe48e312c8b4 SHA512 0c97b30ee14abeb62b9fbfe552da64f12f763cf3d35d5fda1dee595142f564f6220e61c15f73dcfd50853f4e4776bc73ba1808e5f78d7c2f5f2bf3522292d33e +DIST vbox-kernel-module-src-7.0.4.tar.xz 719552 BLAKE2B 5db9ef68acb0da28096dbb89b746261dfac830b626fbed669c02eab6399e681b2c5667d0fe547c8cc8c7e1cbf66d4c6696d9badf0faa617ef2cd0d7372ec9cbe SHA512 521994ffcc27766ee5bbf19595c41a292ce266247249e8ed701fca802d0a1bb82883959eb10bc06bc78abfd6b5230605e6620717526ca528f0b2e1d8d62a8dc4 EBUILD virtualbox-modules-6.1.40.ebuild 1876 BLAKE2B c6f4531dfa093528ca5adc4048b0d1f062df2be4fc01ae3a450b284b1b35352c95b00287d375c29cd51b2bd9b77b1b2bac84d74ccceedf65ac8e50f95366ea30 SHA512 a5850b902d83366c033d8b005615060910b07d8587d22b2ae93c211ae99e44ae5a73fa77aec0dfc8d7947e9b49d0873d93fa084f9b50a52206c0873c2a0f97d7 EBUILD virtualbox-modules-7.0.2.ebuild 1884 BLAKE2B cb4693f97d2778d34264626db0dd0ebc9aaf0c244469f25363d664f8ec737147e41b86d13b0b10315983ca61ab644df7a9cdf2646233c570b0be25cbc652a03d SHA512 f01f71ff7da026e9c7b954c48bd7c31d5f6ef94522fc2a53602f4fe595b1382d0a53f216f26d18dc1265931380f9ed767c2c3b2d0922bd076b77e18857572d8c +EBUILD virtualbox-modules-7.0.4.ebuild 1858 BLAKE2B 4a721e1d7d47360b15781a25c9d5a9262063720aea8faa7c49fe1075498a2524327ddf22429dc5052dd48f359bd27a415c50ab6509b4545eb954ce5885533330 SHA512 64667b80ea96a8d65c7a96f7fb4441ec33867117a1db5dca677ecdaf528d72863c3bb3d82d82a92d8d72fd2cabbc64b3c4bdb5c4a762ce3bbc7baa74bee8cd3f MISC metadata.xml 350 BLAKE2B 73c2e4a95e21ad17dd75df0650f98175056041c5f7446f5aaaf94fbf3c061bdb6fefdbc228ea9b5cbe1b4b0ef32b8a83e28324469189f4f16636e351c33f1bd8 SHA512 450af2c60e6d68a4d861f50ce23150e03ba94fb3a05c6506385c6ce69fd04d51106468538fc32b691b15d6b20933f70586719c4d572a900052581d8216d44f92 diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.4.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.4.ebuild new file mode 100644 index 000000000000..5894b581bca7 --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.4.ebuild @@ -0,0 +1,58 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# XXX: the tarball here is just the kernel modules split out of the binary +# package that comes from VirtualBox-*.run +# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb + +EAPI=8 + +inherit linux-mod toolchain-funcs + +MY_P="vbox-kernel-module-src-${PV}" +DESCRIPTION="Kernel Modules for Virtualbox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz" + +LICENSE="GPL-3" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +S="${WORKDIR}" + +BUILD_TARGETS="all" +MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S})" +MODULESD_VBOXDRV_ENABLED="yes" +MODULESD_VBOXNETADP_ENABLED="no" +MODULESD_VBOXNETFLT_ENABLED="no" + +pkg_setup() { + linux-mod_pkg_setup + BUILD_PARAMS="CC=\"$(tc-getBUILD_CC)\" KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1" + if linux_chkconfig_present CC_IS_CLANG; then + ewarn "Warning: building ${PN} with a clang-built kernel is experimental." + + BUILD_PARAMS+=' CC=${CHOST}-clang' + if linux_chkconfig_present LD_IS_LLD; then + BUILD_PARAMS+=' LD=ld.lld' + if linux_chkconfig_present LTO_CLANG_THIN; then + # kernel enables cache by default leading to sandbox violations + BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir=' + fi + fi + fi +} + +src_install() { + linux-mod_src_install + insinto /usr/lib/modules-load.d/ + newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf +} + +pkg_postinst() { + # Remove vboxpci.ko from current running kernel + # This module is obsolete, removed in december 2019, so it may be missing. No || die + # TODO: consider removing this line in the near future + find /lib/modules/${KV_FULL}/misc -type f -name "vboxpci.ko" -delete + linux-mod_pkg_postinst +} diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest index 4496af5f9fdd..d58407152be6 100644 --- a/app-emulation/virtualbox/Manifest +++ b/app-emulation/virtualbox/Manifest @@ -12,11 +12,14 @@ AUX virtualbox-6.1.36-python3.10.patch 855 BLAKE2B b6df3e3bf9d9c8d6cfc21a1a21373 AUX virtualbox-7.0.0-fix-compilation-clang.patch 1638 BLAKE2B 2c1c021a5b95ffdbd46982249c3a60e97d79db17994491c3c1774d7fc889d5b5a0da974d05859e21772b6f265bf1009ad3f13d19a5d264c7f8b4b2bacd6a9bdb SHA512 9c83dfb1550463fc9ddce68dd0648b12721ad1f9fa92fac2e7234ac8149fc5a1a5698a759d1352fc8003d737ce987fbc476ed9a9b350490cf52e42e1a08444dd AUX virtualbox-7.0.0-fix-compilation.patch 1845 BLAKE2B 6dd22251c53e064593113c61b6982caacba766e9e313c31797c20c84352d036fb9346e99d64172e9cab99da49d44a2ddb5592f197ca47d303ab13a068e571091 SHA512 60604e41787b226b14474a832eff5ac37ecc47bd353c51e95f1e2c9ba1948ea9b1a33b0148e9a01953ecbf151e82849b2997da253d74d7dd23593d9843af56ea AUX virtualbox-7.0.0-python3_11.patch 3258 BLAKE2B 366b799159039caf3d7c41b06780aa80e131fe01b6b0985375a1bcf8de3cf98b611f5c19fdc1762d0de8e052fbe3cf117085c50b4f3e468e9eaf5a5545cf0f92 SHA512 ccc3ba08ec0ebebda9c17fd2a2bb53f2555da9e1c2dee5cf942b300d8c6e745ad46f3d12a5811a9e5c4c582ca796152b9a4fd92e66ab10b421bac0796106f4f9 +AUX virtualbox-7.0.4-fix-compilation.patch 919 BLAKE2B 656a41064773f0d96a3a31287e82537cf93e24d0794c3d4a24ba3378607028b8dc9a9b77a20ee001e2dbff5603043f8e306195610742461d4b1030ecdd3e9918 SHA512 7eb266aee12a489c5e89e1d2f682a421865aa459eb9ac5a9be9c59afa4e0cc8f9f2eb46650d73ef11cdc8c27a021ea37ef9c1150bddf818130d16c29d334651a AUX virtualbox-ose-6-wrapper 3578 BLAKE2B c150e578212435268de3c5fb0eea701bc843ec2241dc3839d3d1e33604fc01f6bdff6ed0425ba6917072f652b8c29d0df9a550a92900ca13306fcd36521afbee SHA512 315d981f3e92f2e0134946f6bbb8ad4ea4228afb8f73aaed7feead59b3f55cef01cec4285a7fdaf30ce0931d8b69bda4698baebd63d11f2cd9dfe9d0591a0f40 AUX virtualbox-vboxusb_tmpfilesd 35 BLAKE2B 56937e236a0e4d1a2aa085271e8ae0af9553fdf7c3b804af4d3fda3aa8dbc32d63762fee90bc949390cb9cd67f2f0111894c8af084731dab6920ae1675c69a64 SHA512 72e4602f5f214f8833486f5c787c263a10390e8bdf65b5615d67c35ec44048f02add12fe43b19f9c57a9d2f12d768c52e54fcfb9052c0611d06cc988a698c171 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 -EBUILD virtualbox-6.1.40.ebuild 18317 BLAKE2B bda3b31a13adbc1e1a66ef275e2be6b05b2447e63e5bc2a3140a3e320608d1a7d4cff9ae39a45fcf3a3cc81f0e7ca61140ba27aaf528d0f1473acee43c29c650 SHA512 fd40c238b5f7f0c8035295245df29959c198cefc1035c73daf92ca2dba10b3aece746fab3a58a72d91bd59feb8155f42f00b4ebaeb60f1a6df18195508648185 -EBUILD virtualbox-7.0.2.ebuild 19260 BLAKE2B 492cb8f9f590ad155d8e89ad0a232032f1c2b37f9a8e77fcdf5f46138ae0d2ffaa6b72be7b687d14c1402ecb01792fb3f255ae8dbb3eeb81f40f6840e783977d SHA512 d3bbfaee12a3bb5b50eb48f8106bfbb25d7173c3b0dac8affa25f96ecb9fc2f23b5e19ccf530d93cc3b16fedd6ccb27381c52c948c853611417d777b0078a431 +EBUILD virtualbox-6.1.40.ebuild 18338 BLAKE2B aa2b2cb1bece62809d6684197adfb736562f8f9d7b650f01e5f0862316be2a870536b5501e1d8c25f546fbf755004a181d89a90199d8de49e0d216c4a86f752a SHA512 4c0f08304b8e96ae48bf8b2073dc5e86ad3aa0f0d835e3b8744a3161c6b6b43b4d6f67d23dee7134220d579804f15ab03af7c12ecab9002644abd48619eb68bb +EBUILD virtualbox-7.0.2.ebuild 19455 BLAKE2B 387d070776423dc7c63c38f919e12c78aabd2c1605bb7be6b471d605f32057797182612841f70442c366299de3bf5616b9bc6880e693d168c8c927fa9079f094 SHA512 367f413c924054f9a06ff2b0be5e235354aaedd194c2be657499a83e3a1762dcd09dd79914fb23ec08be883c52cbf9247016a44eb0913bdebdf5e589feabc0eb +EBUILD virtualbox-7.0.4.ebuild 19484 BLAKE2B b491b23a5cc5f130a86e7fca8a039c2e8d8f98003e0c523c3b510ae5c822e9eef2f4a372a9ee84038a3d1643d11050010c215e38ff7a03af4ef452105728ebe8 SHA512 57c3942b797c0f71ba003294ed46e99fd9bf3cc474fb8ed077202264dd982a1c8ccf91922a75c694d929e37483f453b159dc6a640d248f19c5d1f0708b6adf63 MISC metadata.xml 771 BLAKE2B 0a8fc6454533217d8edba15349eb95d9db1fa076e92c4ca951251d16d1c266e1ee1b1ca8ab41de963ffa010cdd7b73e86ab4e134f7e1b4dbfbb4925000caccf9 SHA512 7630419b477f31b5a2fa93d0909407470ebafda39180217b0f3d43943d5a0cc23b5db39310a9bd76261f23f1025c10d927e771d27fcf50c5789bb04b2c61c0b1 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-6.1.40.ebuild b/app-emulation/virtualbox/virtualbox-6.1.40.ebuild index 7067d184bf7e..cdb56ccbd418 100644 --- a/app-emulation/virtualbox/virtualbox-6.1.40.ebuild +++ b/app-emulation/virtualbox/virtualbox-6.1.40.ebuild @@ -95,6 +95,7 @@ DEPEND=" alsa? ( >=media-libs/alsa-lib-1.0.13 ) !headless? ( x11-libs/libXinerama + x11-libs/libXrandr opengl? ( virtual/opengl ) ) java? ( virtual/jdk:1.8 ) diff --git a/app-emulation/virtualbox/virtualbox-7.0.2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.2.ebuild index 4a23f2b624d2..bc613d5df1fa 100644 --- a/app-emulation/virtualbox/virtualbox-7.0.2.ebuild +++ b/app-emulation/virtualbox/virtualbox-7.0.2.ebuild @@ -131,6 +131,7 @@ BDEPEND=" dev-texlive/texlive-latexextra dev-texlive/texlive-fontsrecommended dev-texlive/texlive-fontsextra + dev-qt/qthelp:5 ) java? ( virtual/jdk:1.8 ) " @@ -200,6 +201,11 @@ pkg_pretend() { einfo "USE=\"headless\", this build will not include any X11/Qt frontend." fi + if use headless && use sdl; then + einfo "You selected USE=\"headless sdl\", defaulting to" + einfo "USE=\"headless\", this build will not include SDL." + fi + if ! use opengl; then einfo "No USE=\"opengl\" selected, this build will lack" einfo "the OpenGL feature." @@ -288,7 +294,7 @@ src_prepare() { CFLAGS=${CFLAGS} EOF - if use sdl; then + if ! use headless && use sdl; then echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die fi 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..5794887625c9 --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-7.0.4.ebuild @@ -0,0 +1,692 @@ +# 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 +gui java lvm pam pch pulseaudio +opengl python +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 ) + 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] + 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(-)] ) + 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-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + opengl? ( virtual/opengl ) + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + 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} + >=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 + dev-qt/qthelp: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 + + # 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 + + # 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/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || 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/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" src/VBox/Frontends/VirtualBox/src/main.cpp src/VBox/VMM/VMMR3/VM.cpp +} + +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 pulseaudio '' --disable-pulse) + $(usex python '' --disable-python) + $(usex vboxwebsrv --enable-webservice '') + $(usex vnc --enable-vnc '') + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usex opengl '' --disable-opengl) + $(usex gui '' --disable-qt) + $(usex 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 + docompress -x /usr/share/doc/${PF}/qt + docinto qt + dodoc UserManual.q{ch,hc} + 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 +} |