From 736633fa866abdd7c155cabb02adf278c5237640 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 22 Jan 2023 12:52:10 +0000 Subject: gentoo auto-resync : 22:01:2023 - 12:52:10 --- app-emulation/Manifest.gz | Bin 14806 -> 14818 bytes app-emulation/qemu/Manifest | 2 +- app-emulation/qemu/qemu-9999.ebuild | 6 +- app-emulation/virtualbox-additions/Manifest | 4 + .../virtualbox-additions-6.1.42.ebuild | 25 + .../virtualbox-additions-7.0.6.ebuild | 25 + app-emulation/virtualbox-extpack-oracle/Manifest | 4 + .../virtualbox-extpack-oracle-6.1.42.ebuild | 28 + .../virtualbox-extpack-oracle-7.0.6.ebuild | 28 + app-emulation/virtualbox-guest-additions/Manifest | 4 + .../virtualbox-guest-additions-6.1.42.ebuild | 282 ++++++++ .../virtualbox-guest-additions-7.0.6.ebuild | 289 +++++++++ app-emulation/virtualbox-modules/Manifest | 4 + .../virtualbox-modules-6.1.42.ebuild | 57 ++ .../virtualbox-modules-7.0.6.ebuild | 57 ++ app-emulation/virtualbox/Manifest | 5 + .../files/virtualbox-6.1.42-python3_11.patch | 81 +++ app-emulation/virtualbox/virtualbox-6.1.42.ebuild | 664 +++++++++++++++++++ app-emulation/virtualbox/virtualbox-7.0.6.ebuild | 721 +++++++++++++++++++++ app-emulation/wine-staging/Manifest | 2 +- .../wine-staging/wine-staging-9999.ebuild | 4 +- 21 files changed, 2285 insertions(+), 7 deletions(-) create mode 100644 app-emulation/virtualbox-additions/virtualbox-additions-6.1.42.ebuild create mode 100644 app-emulation/virtualbox-additions/virtualbox-additions-7.0.6.ebuild create mode 100644 app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.42.ebuild create mode 100644 app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.6.ebuild create mode 100644 app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.42.ebuild create mode 100644 app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.6.ebuild create mode 100644 app-emulation/virtualbox-modules/virtualbox-modules-6.1.42.ebuild create mode 100644 app-emulation/virtualbox-modules/virtualbox-modules-7.0.6.ebuild create mode 100644 app-emulation/virtualbox/files/virtualbox-6.1.42-python3_11.patch create mode 100644 app-emulation/virtualbox/virtualbox-6.1.42.ebuild create mode 100644 app-emulation/virtualbox/virtualbox-7.0.6.ebuild (limited to 'app-emulation') diff --git a/app-emulation/Manifest.gz b/app-emulation/Manifest.gz index 51d5a3eaf1b9..6342d1363f97 100644 Binary files a/app-emulation/Manifest.gz and b/app-emulation/Manifest.gz differ diff --git a/app-emulation/qemu/Manifest b/app-emulation/qemu/Manifest index 2aff94fb6236..1a17245f20a9 100644 --- a/app-emulation/qemu/Manifest +++ b/app-emulation/qemu/Manifest @@ -19,5 +19,5 @@ EBUILD qemu-7.1.0-r2.ebuild 27363 BLAKE2B f4dbdcd125941b7dcabe9234f4e7e2bbd7b9a7 EBUILD qemu-7.1.0.ebuild 28395 BLAKE2B eadf553ea0007dd16d5e47c853f2ebb9821b444776b4027bfff5cfb5d788657edd58fe90d09b5f83e951504e256d2e274157c2935aae20ce16a3671926ad6e3c SHA512 d79fd86995afb946e322420bb3b9364e66ff6627c5c2ff9496a58016c9177eebfd590406d9cf4fecd07065f1d6414153d09e04b71d53e0ac7a9710a6de6b778a EBUILD qemu-7.2.0-r1.ebuild 27433 BLAKE2B 50664af473ae8749f83954fc31af021b9ee0f94531674732591e632758b031052dab73ebbe8267e29341738ec9e7bf083132f0f176bb6b74bd9eabdba44c35dc SHA512 b12769c6a0a8d7587cedc3b39de3ba0a11eba60931b11baa8cd8495e75c3c32dc4da15ecb195421a41992790fafabd2fd8d486a34da0487a54d0551605a3dd16 EBUILD qemu-7.2.0.ebuild 27191 BLAKE2B a7a2f1a5a778ef0b75d11533aeaa0e92bf9a5f4183f1a800a24b53f05df12f96d151bd2d7e94cc92973a113621fe5349364f271e98fbcae2046fc8f1ee2f3b75 SHA512 bbc80c914b65c7d062c70c59fdad2585dc148d5e8d0a65e0f1240395c2e8c5451d13b44b506398c9ee808732e3472dc0875c9b20d3a7f0c86d5ee12d04188235 -EBUILD qemu-9999.ebuild 27324 BLAKE2B 0340d644d02489f262914bd103e13d0c3ee9e8687eaadae7c264e313fecf433af0f0f404f1673676a7b3766474a3f42b8d19926f57887a9a71ae5eac642974f3 SHA512 68ba6c5cd82edd97202fe1e8ca3774900919771740f5585b1cd0dd865db0bbd906ac9e22166505687759f9b3c1746b023f754b10b0a17fb4133d78ab9fef61ac +EBUILD qemu-9999.ebuild 27332 BLAKE2B c998ba477249c292d7f3f953330386c45ac47d300807bd036ca617a85160730dd5830e432b480c4b89ebabf7d67eecd5f3530b3de51e6849305fa25ff382353c SHA512 5f33f433a1b87788ab81d27617f80fc9a87d81035e37fabcd85b7850e16683301b07b7dba0beb002097e5d79ce899d6bc31087eb04fa40473af29e5fb9b80906 MISC metadata.xml 4363 BLAKE2B d3091daee173604ab2bf2b0d047201a2741d3125d769590e3ae8c31c2ae781db4cc937ae10e4ae49ebbae1a633505c4de04727101f6a6e29be3fedf6e6b41e6a SHA512 efccf9cff5475dcf849d71c7769997f7209dc25d8593efa9e1e72458dcc711b69b86afbbd13d6b04ed5763b32d3837a6b04bf45454dcbebbea44182df90ad44e diff --git a/app-emulation/qemu/qemu-9999.ebuild b/app-emulation/qemu/qemu-9999.ebuild index a9019ee98463..ce7fda66806b 100644 --- a/app-emulation/qemu/qemu-9999.ebuild +++ b/app-emulation/qemu/qemu-9999.ebuild @@ -205,7 +205,7 @@ SOFTMMU_TOOLS_DEPEND=" media-libs/mesa[egl(+),gbm(+)] ) pam? ( sys-libs/pam ) - png? ( media-libs/libpng:0=[static-libs(+)] ) + png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] ) pulseaudio? ( media-sound/pulseaudio ) rbd? ( sys-cluster/ceph ) sasl? ( dev-libs/cyrus-sasl[static-libs(+)] ) @@ -219,8 +219,8 @@ SOFTMMU_TOOLS_DEPEND=" smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) snappy? ( app-arch/snappy:= ) spice? ( - >=app-emulation/spice-protocol-0.12.3 - >=app-emulation/spice-0.12.0[static-libs(+)] + >=app-emulation/spice-protocol-0.14.0 + >=app-emulation/spice-0.14.0[static-libs(+)] ) ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) udev? ( virtual/libudev:= ) diff --git a/app-emulation/virtualbox-additions/Manifest b/app-emulation/virtualbox-additions/Manifest index aa5bcac3716d..c03a4532c6d9 100644 --- a/app-emulation/virtualbox-additions/Manifest +++ b/app-emulation/virtualbox-additions/Manifest @@ -1,5 +1,9 @@ DIST VBoxGuestAdditions_6.1.40.iso 63883264 BLAKE2B b9a22604b7dc135e9944bb46e7fb59e6202e692dd75de89763c6fe432328f65bacf4d893221a5e6f90ed3236fd36af2f6608932402e0ae967eb1ed24f6b1153a SHA512 149311a826c20f9bc8212e7580d3b552b4cd82f7e9dbaf4e44f363807f8132f0a81eb39082fc8876fcd5fb527d7d7c8ae1b3b6d8372b9bb39273d88fbd84a185 +DIST VBoxGuestAdditions_6.1.42.iso 63946752 BLAKE2B 56cb4bcb256e9def35fa0c2ff2b9cc18ec52d8d8d5def2b2619861a0bee18970314b7c26a8413ba8317183612d0f4762d7b20524d4422ccdcf11e82455aed238 SHA512 b2bbe3e3defc1131eec1769b508fd604835ba0e28e4b77ddbaa838ee6d3b0b8a0b89841226750cc8b7dc8b5fa918b613b6c9083449cb1da9b6fe1f410d501315 DIST VBoxGuestAdditions_7.0.4.iso 52969472 BLAKE2B ac8d724fbbb928bf0ddb10994ec2d4cce31ce0a95f4765f663ade0ab459685e384e86224057705ae9820dede0b69a40018ab481ac6bb1eec3f4bbccbcb395a20 SHA512 cbbc2141a7d98992fa07756fdaadab49c8686d181037db675ceb9b8c3257edb05be1d3183198255259c93b5e01b5eb72a118a64a04051197edfe179fd2ebeac4 +DIST VBoxGuestAdditions_7.0.6.iso 53049344 BLAKE2B df18a10dd6af3b4fd6a7d8e0d14b70d3a93274eb60b41e419c69ffe68bac3e5780782c32ace3a402c7755310f614ab42560d969f016f89d2ef5e32e06a6a260c SHA512 ba948b05209cad10d0772009af7529339faa44c31f75e0e10811887bd280f5fb7ed545dec315380ea99532bcbfc72833740c3c8b55502e8ec883d809c2bce47f EBUILD virtualbox-additions-6.1.40.ebuild 616 BLAKE2B a27ef3f2df7299725bd7cc949692f730c14926e3e6c8c2891039c381232e884722f8badcfc01148d23712a1d471cf2c112172e3e036458f04c6edee74ce495fa SHA512 3d4f31e4347d449e0e3713b977086d1f9d9bc1bb547c847a061656689eb07a8d15e89b2586b78146ef23d870cbda1d56158159a878320b1f88199c9ca75ef9e6 +EBUILD virtualbox-additions-6.1.42.ebuild 568 BLAKE2B 82842151addd12a10f80e32a830bebb7c10da2f60314a75f0354c7770454356d767e41b82f013faf394c9a45764536b5d7a6fdd579b8948407b68f5ed989be4b SHA512 95693f347aa1d098c505c023495f1a9bab0e851918acc050e77daf0e7a5974b5f1df5206a6c3611ee4f5a9f12822e03aecc4b5e82c69b2ebdfd832e5dd66d177 EBUILD virtualbox-additions-7.0.4.ebuild 774 BLAKE2B 69545aaf76b1b97dfd2a30c7a4028b02af03798c0c748cc0bc53958d167c6c6cc119c23f36b22dbb98aca6bb45a51d91eadcedaf4959bd4ccc0022c6adef5135 SHA512 86ccab5c240320d66d1fd69fc6566f1eafdfc0a48398372d277918006af6ee9c6d14af986ae74dfbcc2c6cbc6cb683f1ef2765f11bd3d8d0b2f2169172748812 +EBUILD virtualbox-additions-7.0.6.ebuild 556 BLAKE2B 3369e6ed0e925e9826072a8cbfd67a39406f8276c6d4f88a1fe0cdd5a2221a99e60e703224ebc15be632096f8cc44bc208224371dcf321ebf07a0086ef2194fe SHA512 b9705f2ae8963aa0576b477d6405be5ced09b23d63f3e29f05e5eb56f1cf2b281d74a66a1e4ece0973102d85e47b8ebc71b4b8d5771f6ce33c22a4a8568b489a MISC metadata.xml 255 BLAKE2B 9386ef3bdb55211441f303528b31f8ccd9ad9039744400e859574a424fa1f366a989fe78f5c10038f3dd9b06a6a389e4a7e643b3eac0dc93a79ac4cc3b4c5423 SHA512 6c158e12464285afd44b70d0653b65f65da1c523fc2b1b07eb6d2dec56f58234bb31cb9dc36238cd6dfc20031b4d58c04e7c1678cc9f917194403ad8a209513f diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.42.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.42.ebuild new file mode 100644 index 000000000000..9729d64d300e --- /dev/null +++ b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.42.ebuild @@ -0,0 +1,25 @@ +# Copyright 2022-2023 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" +S="${WORKDIR}" + +LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +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-additions/virtualbox-additions-7.0.6.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.6.ebuild new file mode 100644 index 000000000000..65d20c161bc1 --- /dev/null +++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.6.ebuild @@ -0,0 +1,25 @@ +# Copyright 2022-2023 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" +S="${WORKDIR}" + +LICENSE="GPL-3 || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +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 c2d3ff3f0814..2a8d2f43e694 100644 --- a/app-emulation/virtualbox-extpack-oracle/Manifest +++ b/app-emulation/virtualbox-extpack-oracle/Manifest @@ -1,5 +1,9 @@ DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.40.tar.gz 11233264 BLAKE2B c169747b6c0214bd850c5e639d5245e2084701c1ee764e8798a779545d95b8eb8ec0cf4622d5156c0a17126a6a522d041ec126984062b72e71a2283ae9652bd7 SHA512 6d8ff0f7f0c4eaaf9c6fcf965133fddc1d4057cffb98a10ade6cf0065e9f656bc49656bb3ac817694cbf9ca2fb4226f3e9ac9b1383ab07cdcbe05ffe18809ce1 +DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.42.tar.gz 11233419 BLAKE2B c380b83ae5e5cad91f83ad99805bd8627b3e1101840cc8bfcc352fdb44369ff73f7f9ae2503e3fb4aeeac2ce4182e69273a4758eb6c71dd60c89cfcadcc22cd1 SHA512 9b5643a37319113d7f9e93c49d88d7aef319060a7be4bdfb0f09044916f03a203ddeb6799b7d99c2c0f83faa7f610c72058649ef763af18f662781f8e0c10f83 DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.4.tar.gz 18515711 BLAKE2B 07e8ef3d638e7985830b78147849ebada0a4f2140458ea76e236dac53efb867135b860d5c2d29545f4127de934d2b059be60849466cbf6763fcc558afaf4786a SHA512 405042ae9aeff48ce86ec6f7dba294a8be1d26e0a4b1c5a85daacc231d64243a30f301ba6a4108546a8a4b702d01b109bc0936abded572f71bdd147c178615a2 +DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.6.tar.gz 18544293 BLAKE2B 9bed5e3edb713e0908adc1bc2f95a102abe79119318aa7670646b4d98f2de8c77bf8f8c07d1e41aa428cbee5e60eecdc6aaf07d9516e8eeb2441139d8bb33e4e SHA512 f8498e8a8dc9a9c2b3f25c75f1f644c0464ba3b078ba0b6590149d56dbd480ed798cf2942cd88a62b75da55d7b69bbc1b71daba06b97f8a7a25650058fdb13cf EBUILD virtualbox-extpack-oracle-6.1.40.ebuild 1067 BLAKE2B 5506b06258807476a1713cedcc547d79a09387c752d7eb117db7a2745ce3748e035de82b4708bd0d36f80a9262beec76907ddec87493dd4aeab43e0145ca3c74 SHA512 82ce2b700e39495e56698bfec0d3d4725c0f1e4bc59fca8ae0a2cfc6df02956d341016bf8a34c35ea83f4572f144fceca65508e7e1d8c6b2f8185683832489e2 +EBUILD virtualbox-extpack-oracle-6.1.42.ebuild 743 BLAKE2B e69ef2bac32a14cb5deae43c7a3888bbb984567c8ba7172c81cbd6ddd641f6064128f2a0bebd827e5f9cbd46d264a6d9d39413e6a03459cbe9654e3c8daa2823 SHA512 763bff27532b48cb1509d50e74f108dd1fc02719d065fa2f08b919c328be39e249c4ecf15673215ae251073a691d00752b6a9baf1c290d81138bbd4e1e47e26c EBUILD virtualbox-extpack-oracle-7.0.4.ebuild 743 BLAKE2B 83de941643ea5fe124995ca83aff5e0df3033b1a520121387030dfd9b6828df9ff36c5cb3cb65d3db4f335e893c5a0bf5c06aec8682865305503723767e364ee SHA512 e6867d06e4c974a117ec764c068421aec9e2b7b388b15a97522e05a7d6cd5279ed634beced0247fad3c8c361ca75ac8cf796594aef7e5530eb064110a9eba049 +EBUILD virtualbox-extpack-oracle-7.0.6.ebuild 743 BLAKE2B e69ef2bac32a14cb5deae43c7a3888bbb984567c8ba7172c81cbd6ddd641f6064128f2a0bebd827e5f9cbd46d264a6d9d39413e6a03459cbe9654e3c8daa2823 SHA512 763bff27532b48cb1509d50e74f108dd1fc02719d065fa2f08b919c328be39e249c4ecf15673215ae251073a691d00752b6a9baf1c290d81138bbd4e1e47e26c MISC metadata.xml 255 BLAKE2B 9386ef3bdb55211441f303528b31f8ccd9ad9039744400e859574a424fa1f366a989fe78f5c10038f3dd9b06a6a389e4a7e643b3eac0dc93a79ac4cc3b4c5423 SHA512 6c158e12464285afd44b70d0653b65f65da1c523fc2b1b07eb6d2dec56f58234bb31cb9dc36238cd6dfc20031b4d58c04e7c1678cc9f917194403ad8a209513f diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.42.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.42.ebuild new file mode 100644 index 000000000000..18a227280590 --- /dev/null +++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.42.ebuild @@ -0,0 +1,28 @@ +# Copyright 2022-2023 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" +S="${WORKDIR}" + +LICENSE="PUEL-11" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +RESTRICT="bindist mirror strip" + +RDEPEND="=app-emulation/virtualbox-${MY_PV}*" + +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-extpack-oracle/virtualbox-extpack-oracle-7.0.6.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.6.ebuild new file mode 100644 index 000000000000..18a227280590 --- /dev/null +++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.6.ebuild @@ -0,0 +1,28 @@ +# Copyright 2022-2023 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" +S="${WORKDIR}" + +LICENSE="PUEL-11" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +RESTRICT="bindist mirror strip" + +RDEPEND="=app-emulation/virtualbox-${MY_PV}*" + +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 23814ad54d9c..1b32bac378b1 100644 --- a/app-emulation/virtualbox-guest-additions/Manifest +++ b/app-emulation/virtualbox-guest-additions/Manifest @@ -6,8 +6,12 @@ AUX virtualbox-guest-additions-8.initd-r1 547 BLAKE2B 1b26fc26e95baa74d551f8a9cf AUX virtualbox-guest-additions.service 411 BLAKE2B f5f1c24a94764ca72a04879c27cd9fdc1e0c8a1440ac87674dad44a1493a9347e6e2b351ae2b71e050ba06ae9848168220d62981a9e0c984ea68bf48ea06b485 SHA512 b6226146f3591a778551e94ae2661e2ae3c6b761d20600d741eaaa03f43f0a2b841d2a44d9eec3a3768edb23b021cee94c7849d998ee4104ad60dad2df88df83 AUX xorg.conf.vbox 274 BLAKE2B 3a3035fcbdbd5810c54505f5a5e6deefa1540e5e01a038babb62a40bd5b2de2dc5b228cabe55612d92a522e6ae92aa7ff4ff2ab26772c3b54ce95ebac4e7fc5a SHA512 ac2b14970dc6667ceec2dbdae52bc92cbad4aff020898ede156454e8a8a703354f15c7e19cfbd2bdd15e251493fd05cacfe814cabee0f9b4cf155e44860ed4c9 DIST VirtualBox-6.1.40.tar.bz2 165769795 BLAKE2B 5c216f23422be3fc4f7760881c666c57a516d12726ed8ef040bbdf918f1af53c69d204b22949e25f751cbe788b00c810c49c27b7c51c1837fd1c503a3eff202c SHA512 0dace071fe58500d0912fe4da4751de6840752375039554a56c8c753a0880a419c4a1ed7f1b0ebc51230f7099ca3f5d987dc7b91ad4d98dbd75bf63e3c27e096 +DIST VirtualBox-6.1.42.tar.bz2 165554573 BLAKE2B 8419793d9e4c4d0804baba926443a27259b012ab90d1bb27c8f9d90b018ddbef83d1cc47e9f5b88e6e247f22c186603584a5ddee4b0c04fe842eba56f3fd103a SHA512 a4861b44ee85d6d1d72ba1d19b5598873503feeb6d562cf7d8c770cc9b466741bdfa5abe74dc4e7952ff189d14c6caf60f584731492c38f688a360baba019ab2 DIST VirtualBox-7.0.4.tar.bz2 199658172 BLAKE2B 51bde109805e8f3e25f179a05fac532de7a428010955c7cc2a7c9e8c072246d69c5f51f8a51e39b6a1b9f246bd945edc38e0f0cc0630c357a5e9641c38dcac21 SHA512 70f2031c4897249177131795281bf6bd5a75166067d1921db70fd1e21f5638285b5a0c3298a7070e272ac2f093a60c35eb3cab4e5f7d16a68d17b211f637b0bc +DIST VirtualBox-7.0.6.tar.bz2 199512172 BLAKE2B cfe4d7abd57dfdb0294177759e80aa9fda797b9b5433f214771a57764cb23404450169e8c7c30cda13de85b8e02a37024584c7b1f0b5a44b10b100aa66b8d5c5 SHA512 f9db7a154e392f550f50abe774fc6263eb0b6f86dccc069f2c5012fedbe2debbf5b8ba62cca44ea0d5d5475652188176bfb888266f69197677b22854f02b64a0 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-6.1.42.ebuild 7511 BLAKE2B 004d9e042f55513bb45bd12a983255f6437fac338ab7687662f1538c65e08dbc6c27df5a395fc992fee7613e1bcfbf9a2d8ff77af8680299382e5144c367bd86 SHA512 0d054b331e382c8165e4ae14bb4ea23424fbd120e19e0b6147baeacae1cb298c1433ab710d33451b8f5811286375bab34205f7c7753bea4b9e73916cebd6f79c EBUILD virtualbox-guest-additions-7.0.4.ebuild 7842 BLAKE2B 66cd32709fb09682bf84aea1a4c731170b95b6c160d818febf603724a4b54807168138587105be9c177362bd67f484ed6f36c2ef240b9981070b4a512e7c93fd SHA512 86f01da33cea82c0e00dcf317c18526424e7f5d12daadd6b7a103b3afd674f8d14a2133e1cbb7aeb0e5de66e389e9b703ebee01578c4b0625c2211fba55e3ebd +EBUILD virtualbox-guest-additions-7.0.6.ebuild 7870 BLAKE2B a4d033e535d47c889c199de65276c0ce9248f26bd888ddd230dc22a0581ed3eb911829239b1120651854b34f7289aa13a7ac5c2987a59f98bcdee69006dd6072 SHA512 4626e3c0823ae676a77828d4fb0277a1c986fa96d13728f8cfef6dde97780fd37b71e78f03ef449121236e8933b5155cdb6fa8e548a06b2836fca85db369f22e MISC metadata.xml 255 BLAKE2B 9386ef3bdb55211441f303528b31f8ccd9ad9039744400e859574a424fa1f366a989fe78f5c10038f3dd9b06a6a389e4a7e643b3eac0dc93a79ac4cc3b4c5423 SHA512 6c158e12464285afd44b70d0653b65f65da1c523fc2b1b07eb6d2dec56f58234bb31cb9dc36238cd6dfc20031b4d58c04e7c1678cc9f917194403ad8a209513f diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.42.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.42.ebuild new file mode 100644 index 000000000000..b8643a4c4c9a --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.42.ebuild @@ -0,0 +1,282 @@ +# Copyright 2022-2023 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" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~x86" +IUSE="X +dbus" + +# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist +RDEPEND=" + acct-group/vboxguest + acct-group/vboxsf + acct-user/vboxguest + sys-libs/pam + sys-libs/zlib + dbus? ( sys-apps/dbus ) + X? ( + x11-apps/xrandr + x11-apps/xrefresh + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + ) +" +DEPEND=" + ${RDEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + ) +" +BDEPEND=" + >=dev-util/kbuild-0.1.9998.3127 + >=dev-lang/yasm-0.6.2 + sys-devel/bin86 + sys-power/iasl +" +PDEPEND=" + X? ( x11-drivers/xf86-video-vboxvideo ) +" + +BUILD_TARGETS="all" +BUILD_TARGET_ARCH="${ARCH}" + +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 X && 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 + use X || echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk + + # 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 + + 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 + $(usev !dbus --disable-dbus) + --target-arch=${ARCH} + --with-linux="${KV_OUT_DIR}" + --build-headless + ) + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + 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 X ; 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 X ; then + elog "use flag X 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 " + 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-guest-additions/virtualbox-guest-additions-7.0.6.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.6.ebuild new file mode 100644 index 000000000000..a2f33d38602d --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.6.ebuild @@ -0,0 +1,289 @@ +# Copyright 2022-2023 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" +S="${WORKDIR}/${MY_PN}-${PV}" + +# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild +LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~x86" +IUSE="+dbus gui" + +# 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} + gui? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + x11-base/xorg-proto + ) +" +BDEPEND=" + >=dev-lang/yasm-0.6.2 + >=dev-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}" + +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 + $(usev !dbus --disable-dbus) + --target-arch=${ARCH} + --with-linux="${KV_OUT_DIR}" + --build-headless + ) + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + 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 " + 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 683ae50beb9f..1b5d2fc38acc 100644 --- a/app-emulation/virtualbox-modules/Manifest +++ b/app-emulation/virtualbox-modules/Manifest @@ -1,7 +1,11 @@ AUX create_vbox_modules_tarball.sh 896 BLAKE2B 4153a8fa67cd8fe7187f3c4232691b1ded8e51315f41292f9fcc0adb294e9b235b0c2f1e91f6f728076ab85f687ea1ba2877dc44b511eaceb24e7d6e71a8bbd4 SHA512 c3154a13550817c581fa142e24081edfbdbc145315d34cc4569d12ad87a518fa0bf1443c053b50fdfdea6915bda1325ad973455ee85079294b83a49fd53f4771 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-6.1.42.tar.xz 679052 BLAKE2B d89324cee9cfc71e2762f5d2b7dfff33297b0d2eab5714ad9ddcfb762b1263ca17acbe5fdffe53170936fe0a0faffbc69989b62cdcc0b979f394fcff35f5b69c SHA512 3bb363c8f163b5958edc11c971122c35977275c0995eab832262277720c7486150939d50a0640170fa7a5cd32c1dc2918c5e3430ec90a836400d0a774b48d886 DIST vbox-kernel-module-src-7.0.4.tar.xz 719552 BLAKE2B 5db9ef68acb0da28096dbb89b746261dfac830b626fbed669c02eab6399e681b2c5667d0fe547c8cc8c7e1cbf66d4c6696d9badf0faa617ef2cd0d7372ec9cbe SHA512 521994ffcc27766ee5bbf19595c41a292ce266247249e8ed701fca802d0a1bb82883959eb10bc06bc78abfd6b5230605e6620717526ca528f0b2e1d8d62a8dc4 +DIST vbox-kernel-module-src-7.0.6.tar.xz 718156 BLAKE2B 9f855482c77b14e233ed247f7d94df7c23a00e0f9fca27926921f8c18fa6ab2205075f1b9be61429cfbee325d5f22805c850c0c79fd4fa9ccf7668dcb714f345 SHA512 fca794fd36203b296ce14d7d06022360bb9d94a6e06d8d9c77cc0221f63a898b6482b423e7deb6bd7b0355ee98fc3c7bbe11c9a1fa5dcf1d634eebc4fe537dc3 EBUILD virtualbox-modules-6.1.40.ebuild 1876 BLAKE2B c6f4531dfa093528ca5adc4048b0d1f062df2be4fc01ae3a450b284b1b35352c95b00287d375c29cd51b2bd9b77b1b2bac84d74ccceedf65ac8e50f95366ea30 SHA512 a5850b902d83366c033d8b005615060910b07d8587d22b2ae93c211ae99e44ae5a73fa77aec0dfc8d7947e9b49d0873d93fa084f9b50a52206c0873c2a0f97d7 +EBUILD virtualbox-modules-6.1.42.ebuild 1862 BLAKE2B 6ded6b3b3466fd638e8f236c36cc9904d6c0c48128a5a4ef97abbe7c5f10f528dc7c45d21e69d8a05e72ac5bef9a64ba3411a1bf6dcc296f4c84cf4aef631b5f SHA512 73067d42ff208997a1253a60c1893c3af457b7b0d330f50e401520afec9360edfd6691e3843f5274f2b0c129e42af2676534765051d08bfcf772aa5376e631ad EBUILD virtualbox-modules-7.0.4.ebuild 1862 BLAKE2B aec870a2a24138e8076ab15d512882d004b66c9dabb1fb282f23192d31a9b80efb28199662c87dedd12d37456c9a94355c4464b7dc4cdaaa7b535398cee76ae9 SHA512 14c6c7cde9fb8d1513f84956567656cffcd1373fa3d9f584771aec7ed5c38ec233b0d6d871328340ac61f22c65ff834cb1d2cf17f522863b42c2a7e1b5962d4f +EBUILD virtualbox-modules-7.0.6.ebuild 1862 BLAKE2B d1accc9cc22e0ab9c94a88d4ae61ec784afce057a7c858fbcfecebabf66c96284306adfc7a5d39afd97234350f9fe1efc32ebded45bc74268daf967cbe0b50ea SHA512 4bbdf03b455b1ceacccd9904410d409cb7a76851575e776593c00cb57e125bdee3cc55e4e06404dd8b7512c47dd9d072dc239617c1e22ab025c8cd3f0f9e5ae0 MISC metadata.xml 350 BLAKE2B 73c2e4a95e21ad17dd75df0650f98175056041c5f7446f5aaaf94fbf3c061bdb6fefdbc228ea9b5cbe1b4b0ef32b8a83e28324469189f4f16636e351c33f1bd8 SHA512 450af2c60e6d68a4d861f50ce23150e03ba94fb3a05c6506385c6ce69fd04d51106468538fc32b691b15d6b20933f70586719c4d572a900052581d8216d44f92 diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.42.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.42.ebuild new file mode 100644 index 000000000000..8ac6908c5bf2 --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.42.ebuild @@ -0,0 +1,57 @@ +# Copyright 2022-2023 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" +S="${WORKDIR}" + +LICENSE="GPL-2" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +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-modules/virtualbox-modules-7.0.6.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.6.ebuild new file mode 100644 index 000000000000..4f5bf39316a5 --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.6.ebuild @@ -0,0 +1,57 @@ +# Copyright 2022-2023 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" +S="${WORKDIR}" + +LICENSE="GPL-3" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +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 83b6a08b2ecd..82bc661649db 100644 --- a/app-emulation/virtualbox/Manifest +++ b/app-emulation/virtualbox/Manifest @@ -9,14 +9,19 @@ AUX virtualbox-6.1.26-configure-include-qt5-path.patch 717 BLAKE2B d6d9f1b0d3060 AUX virtualbox-6.1.34-r3-python.patch 343 BLAKE2B 6eb68ba31ab57a1f2065a7d48ef75175f5c3ba45ff9514c1f1ece8f6f54c1d8fe907ca3a10e411bc6b4474cddb39224d54b4bf4cd7b57522b2ca499ce85061c8 SHA512 a22f46e82f163676a5c07b8010160444cc621f9d12ec1226a304ebdf0800f8f24174dec2fb5e8999ba51f574cd2d290af1c7b94b54ca8c2cd6abdad9025e7fea AUX virtualbox-6.1.36-fcf-protection.patch 374 BLAKE2B 6c7410ce1fa78aa7476c9b9a6f519c80957b3c7d55569f2ac02d3642d29574b9f8ed4b1c043cf14a899ff3cc67d7f7442bdd1ce27079b987783c36f38b39b49a SHA512 eb1f5d4ef64ea3306ae0489b3c7019a98e6f00c8a62ec8414c78bc8c14ab654ddae57c579557511e4144bf367ad3a2ea58dc5d9ba1a2c796f30fbbec0be7f414 AUX virtualbox-6.1.36-python3.10.patch 855 BLAKE2B b6df3e3bf9d9c8d6cfc21a1a21373de02b98dc7178542bf7fe43499eaf77c98b95bcf51795e5c878e5433aec6557552407fd063d63a957450a3682cf0f423b77 SHA512 8e16ab0655909fd0301a4ff3fe70cd69787ad9d92d253888f6a05b8dc2172727e176ac3899b2efc4f50038b4f07b82df2252bceb05e2dc7b5a420302d0826e12 +AUX virtualbox-6.1.42-python3_11.patch 2737 BLAKE2B a0dcd9afcdf2e07a55e3fba54e0eedc7e7072a126aa4791e676209f2c060745df9c32eba0378b9fc275591801947636411186aa2a3c8b5b1927fc93375815cd8 SHA512 7dd4101b7c10a3c1f4f4294c65a80cb392bb31a7cb8113bde59ee112d3d5c5e768daf1645d5b9c5b13ce49c08ed23b7a47064127c9e168743aeb66c614ef249f AUX virtualbox-7.0.0-fix-compilation-clang.patch 1638 BLAKE2B 2c1c021a5b95ffdbd46982249c3a60e97d79db17994491c3c1774d7fc889d5b5a0da974d05859e21772b6f265bf1009ad3f13d19a5d264c7f8b4b2bacd6a9bdb SHA512 9c83dfb1550463fc9ddce68dd0648b12721ad1f9fa92fac2e7234ac8149fc5a1a5698a759d1352fc8003d737ce987fbc476ed9a9b350490cf52e42e1a08444dd 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-6.1.42.tar.bz2 165554573 BLAKE2B 8419793d9e4c4d0804baba926443a27259b012ab90d1bb27c8f9d90b018ddbef83d1cc47e9f5b88e6e247f22c186603584a5ddee4b0c04fe842eba56f3fd103a SHA512 a4861b44ee85d6d1d72ba1d19b5598873503feeb6d562cf7d8c770cc9b466741bdfa5abe74dc4e7952ff189d14c6caf60f584731492c38f688a360baba019ab2 DIST VirtualBox-7.0.4.tar.bz2 199658172 BLAKE2B 51bde109805e8f3e25f179a05fac532de7a428010955c7cc2a7c9e8c072246d69c5f51f8a51e39b6a1b9f246bd945edc38e0f0cc0630c357a5e9641c38dcac21 SHA512 70f2031c4897249177131795281bf6bd5a75166067d1921db70fd1e21f5638285b5a0c3298a7070e272ac2f093a60c35eb3cab4e5f7d16a68d17b211f637b0bc +DIST VirtualBox-7.0.6.tar.bz2 199512172 BLAKE2B cfe4d7abd57dfdb0294177759e80aa9fda797b9b5433f214771a57764cb23404450169e8c7c30cda13de85b8e02a37024584c7b1f0b5a44b10b100aa66b8d5c5 SHA512 f9db7a154e392f550f50abe774fc6263eb0b6f86dccc069f2c5012fedbe2debbf5b8ba62cca44ea0d5d5475652188176bfb888266f69197677b22854f02b64a0 DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57 EBUILD virtualbox-6.1.40.ebuild 18343 BLAKE2B 02cda507a7265373635fab733457683571de408cb419f676300c50c4474ef0e048b4a57b01e894518eed858d84f39467e7a63c588bbbefd83d79a93cfe1115e5 SHA512 135bd0aa1fad4c666c283b4e60c97374aabeb0d4315f91798cb8ab2185eb708ffb83d1e2b84b2e48390d61109a13528ba896780eea38e654f66efeab69268a20 +EBUILD virtualbox-6.1.42.ebuild 18585 BLAKE2B 7a1733ac669a766b937062af4e8dee621641d88f212e17d47cae10a2361ad9d20dd7a5cdaa00bc6f1f7819ba70a500f86f1fe2ce2b31571b0691325d33d3c9b7 SHA512 6673ae8818f6abbcb53807e6d18e5a6344855616fc7d35f4064caa87980c1d73895d5daa0f237c0a8aab61b2b6f1fda87589cf8e3e453ed80bf3cecce1217197 EBUILD virtualbox-7.0.4-r1.ebuild 19650 BLAKE2B 454f2cf8299e6a8613fc70153e5bdcc542776d852e3da4a2cbaa50e29159ddc97a0c145015efec5cbf0db988a21b0e911d2cd755fafb6d7ccaaa39f09b18e07b SHA512 2057e377f27bf928926e7cb0a2df9b03591aab1a20e8c7903853528c61d4b1d0fc2ec29de6efa39381fc2d626fc6001244680a07632df65b2032dea1a96a5d01 +EBUILD virtualbox-7.0.6.ebuild 20043 BLAKE2B 77b2d3335e4f42d3db4d4c25ecbe9499f816bb1c3bd387f284867553b66c76aec865f6f5c1fe8f47ae8c75a05d4721178a69f419b7b96458ebc048379a87eef2 SHA512 6a2f674bad334fc7c8f2813a58acff96ceb10fc65048cb9125cefb8a96c06093d59b5fb20c287ac31165195b9091196bc3075495f5f233de9df75565f5da8325 MISC metadata.xml 852 BLAKE2B 28c7b361100939ca374829ca6a28b9ff8d4fd5ad22d2750f005514ed25e43b9a3c9c00984ae4f94a89109d49b47826676576d25c001fbcdb4ea6d6d8a5e8b9ee SHA512 a67b3217cabe9dfa15d26617ab30218cd3b63a9eca9902213efc420b9efe0174de71b59091b663f8783a88ece857912aaaee8868a3aed3b309e6cd5993c5a7d4 diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.42-python3_11.patch b/app-emulation/virtualbox/files/virtualbox-6.1.42-python3_11.patch new file mode 100644 index 000000000000..1c3af9d8afef --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-6.1.42-python3_11.patch @@ -0,0 +1,81 @@ +Add Python 3.11 support to virtualbox 6.1 + +--- a/src/libs/xpcom18a4/python/Makefile.kmk ++++ b/src/libs/xpcom18a4/python/Makefile.kmk +@@ -26,7 +26,7 @@ + + # + # List of supported Python versions, defining a number of +-# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|DEF]_[INC|LIB] variables ++# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|311|311M|DEF]_[INC|LIB] variables + # which get picked up below. + # + ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script. +@@ -624,6 +624,52 @@ + endif + endif + endif ++ ++ifdef VBOX_PYTHON311_INC ++# ++# Python 3.11 version ++# ++DLLS += VBoxPython3_11 ++VBoxPython3_11_EXTENDS = VBoxPythonBase ++VBoxPython3_11_EXTENDS_BY = appending ++VBoxPython3_11_TEMPLATE = XPCOM ++VBoxPython3_11_INCS = $(VBOX_PYTHON311_INC) ++VBoxPython3_11_LIBS = $(VBOX_PYTHON311_LIB) ++ ++ ifdef VBOX_WITH_32_ON_64_MAIN_API ++ ifdef VBOX_PYTHON311_LIB_X86 ++DLLS += VBoxPython3_11_x86 ++VBoxPython3_11_x86_EXTENDS = VBoxPythonBase_x86 ++VBoxPython3_11_x86_EXTENDS_BY = appending ++VBoxPython3_11_x86_TEMPLATE = XPCOM ++VBoxPython3_11_x86_INCS = $(VBOX_PYTHON311_INC) ++VBoxPython3_11_x86_LIBS = $(VBOX_PYTHON311_LIB_X86) ++ endif ++ endif ++endif ++ ++ifdef VBOX_PYTHON311M_INC ++# ++# Python 3.11 version with pymalloc ++# ++DLLS += VBoxPython3_11m ++VBoxPython3_11m_EXTENDS = VBoxPythonBase_m ++VBoxPython3_11m_EXTENDS_BY = appending ++VBoxPython3_11m_TEMPLATE = XPCOM ++VBoxPython3_11m_INCS = $(VBOX_PYTHON311M_INC) ++VBoxPython3_11m_LIBS = $(VBOX_PYTHON311M_LIB) ++ ++ ifdef VBOX_WITH_32_ON_64_MAIN_API ++ ifdef VBOX_PYTHON311M_LIB_X86 ++DLLS += VBoxPython3_11m_x86 ++VBoxPython3_11m_x86_EXTENDS = VBoxPythonBase_x86_m ++VBoxPython3_11m_x86_EXTENDS_BY = appending ++VBoxPython3_11m_x86_TEMPLATE_ = XPCOM ++VBoxPython3_11m_x86_INCS = $(VBOX_PYTHON311M_INC) ++VBoxPython3_11m_x86_LIBS = $(VBOX_PYTHON311M_LIB_X86) ++ endif ++ endif ++endif + + ifdef VBOX_PYTHONDEF_INC + # +--- a/src/libs/xpcom18a4/python/src/module/_xpcom.cpp ++++ b/src/libs/xpcom18a4/python/src/module/_xpcom.cpp +@@ -84,7 +84,11 @@ + # define MANGLE_MODULE_INIT(a_Name) RT_CONCAT(a_Name, MODULE_NAME_SUFFIX) + # endif + # ifdef VBOX_PYXPCOM_VERSIONED +-# if PY_VERSION_HEX >= 0x030a0000 && PY_VERSION_HEX < 0x030b0000 ++# if PY_VERSION_HEX >= 0x030b0000 && PY_VERSION_HEX < 0x030c0000 ++# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_11") ++# define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_11) ++ ++# elif PY_VERSION_HEX >= 0x030a0000 && PY_VERSION_HEX < 0x030b0000 + # define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_10") + # define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_10) + diff --git a/app-emulation/virtualbox/virtualbox-6.1.42.ebuild b/app-emulation/virtualbox/virtualbox-6.1.42.ebuild new file mode 100644 index 000000000000..0b6b25b3dcc0 --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-6.1.42.ebuild @@ -0,0 +1,664 @@ +# Copyright 2022-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{9..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2 dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + ~app-emulation/virtualbox-modules-${PV} + >=dev-libs/libxslt-1.1.19 + net-misc/curl + dev-libs/libxml2 + media-libs/libpng:0= + media-libs/libvpx:0= + sys-libs/zlib:= + !headless? ( + sdl? ( media-libs/libsdl:0[X,video] ) + x11-base/xorg-proto + x11-libs/libX11 + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + opengl? ( + media-libs/libglvnd[X] + virtual/glu + ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + opengl? ( dev-qt/qtopengl:5 ) + x11-libs/libXinerama + ) + ) + dev-libs/openssl:0= + virtual/libcrypt:= + lvm? ( sys-fs/lvm2 ) + opus? ( media-libs/opus ) + udev? ( >=virtual/udev-171 ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + !headless? ( + x11-libs/libXinerama + x11-libs/libXrandr + opengl? ( virtual/opengl ) + ) + java? ( virtual/jdk:1.8 ) + pam? ( sys-libs/pam ) + pax-kernel? ( sys-apps/elfix ) + pulseaudio? ( media-sound/pulseaudio ) +" +BDEPEND=" + ${PYTHON_DEPS} + app-arch/tar + >=dev-util/kbuild-0.1.9998.3127 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + ) + java? ( virtual/jdk:1.8 ) + qt5? ( dev-qt/linguist-tools:5 ) +" +RDEPEND=" + ${COMMON_DEPEND} + java? ( virtual/jre:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + "${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365 + + # This patch is needed to avoid automagic detection based on a hardcoded + # list of Pythons in configure. It's necessary but not sufficient + # (see the rest of the ebuild's logic for the remainder) to handle + # proper Python selection. + "${FILESDIR}"/${PN}-6.1.34-r3-python.patch + "${FILESDIR}"/${PN}-6.1.42-python3_11.patch + + # 865361 + "${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch + + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-6.1.36/patches +) + +pkg_pretend() { + if ! use headless && ! use qt5 ; then + einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend." + elif use headless && use qt5 ; then + einfo "You selected USE=\"headless qt5\", defaulting to" + einfo "USE=\"headless\", this build will not include any X11/Qt frontend." + fi + + if ! use opengl ; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python ; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie ; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm), see bug #232775 + rm -r kBuild/bin tools || die + + # Replace pointless GCC version check with something more sensible. + # This is needed for the qt5 version check. + sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \ + -i configure || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch ; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam ; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + fi + + # add correct java path + if use java ; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die +} + +src_configure() { + tc-ld-disable-gold # bug #488176 + + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-dbus + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !opus --disable-libopus) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vnc --enable-vnc) + ) + + if ! use headless ; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !qt5 --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + --disable-opengl + ) + fi + + if use amd64 && ! has_multilib_profile ; then + myconf+=( --disable-vmmraw ) + fi + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python ; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile ; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} \ + vboximg-mount *so *r0 iPxeBaseBin ; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + + if use pam ; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if ! use headless ; then + vbox_inst rdesktop-vrdp + if use sdl ; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use qt5 ; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl ; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + fi + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]] ; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm ; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk ; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java ; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev ; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv ; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc ; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace ; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc ; then + dodoc UserManual.pdf + fi + + if use python ; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/./_}" + + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython${mangled_python}.so" + if [[ ! -x "${python_path_ext}" ]] ; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev ; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if ! use headless && use qt5 ; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev ; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox/virtualbox-7.0.6.ebuild b/app-emulation/virtualbox/virtualbox-7.0.6.ebuild new file mode 100644 index 000000000000..e3ca516962d2 --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-7.0.6.ebuild @@ -0,0 +1,721 @@ +# Copyright 2022-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{9..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qthelp:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + x11-libs/libX11 + x11-libs/libXt + opengl? ( dev-qt/qtopengl:5 ) + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + sdl? ( + media-libs/libsdl:0[X,video] + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( x11-libs/libXinerama ) + pulseaudio? ( media-sound/pulseaudio ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + ${PYTHON_DEPS} + app-arch/tar + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-util/kbuild-0.1.9998.3127 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qthelp:5 + ) + gui? ( dev-qt/linguist-tools:5 ) + nls? ( dev-qt/linguist-tools:5 ) + java? ( virtual/jdk:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + "${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365 + + # This patch is needed to avoid automagic detection based on a hardcoded + # list of Pythons in configure. It's necessary but not sufficient + # (see the rest of the ebuild's logic for the remainder) to handle + # proper Python selection. + "${FILESDIR}"/${PN}-6.1.34-r3-python.patch + + # 865361 + "${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch + + "${FILESDIR}"/${PN}-7.0.4-fix-compilation.patch + "${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch + "${FILESDIR}"/${PN}-7.0.0-python3_11.patch + + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-6.1.36/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 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 || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-ld-disable-gold # bug #488176 + + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf + 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 +} diff --git a/app-emulation/wine-staging/Manifest b/app-emulation/wine-staging/Manifest index 38dd1ec63ab0..22cfe1ed37a1 100644 --- a/app-emulation/wine-staging/Manifest +++ b/app-emulation/wine-staging/Manifest @@ -7,5 +7,5 @@ DIST wine-staging-7.19.tar.gz 9523048 BLAKE2B e53fd47af493cbdc4542f908a39557324d DIST wine-staging-7.22.tar.gz 9528424 BLAKE2B e41f24f924117259715505f4f9998ef23a657bca5b0e285feb7f9fd732e6b566a495f48ec59af09b1d4d51db522b051028f6cbba748256e939929fbf978f0e44 SHA512 5fdac19ec290c67767fac71abe07d9350ec431919c67a0f2d2df18ced20f1d3dddb921b3d5586d03add187c6281e1a691cc220e8d2d5ad4eeb94015721479d65 EBUILD wine-staging-7.19.ebuild 11179 BLAKE2B 58982c661d242e8e165d7b1d7083284eedd8cdee1a3aee6ee4a728b2e585772ccd8c93c06b490389dd566a54046cfdf7a092bdd2af3b31c68d60eb1926fe8364 SHA512 5047a1cfdb3480cc9654ea8d879bfbb2779d956dec6776f74f746577b62fa6a3ae6996895bd5acb9948fb74cac3be8eaddda0458abc131a96a83cfbea6452f53 EBUILD wine-staging-7.22.ebuild 11281 BLAKE2B f8be09ce1670d897fcc72d92e816140be8507d92c70a2fe58fbd224e522a74749ef158173f54f09025488a0d5b1a572112410e9774eafc5f684cb8c1b567c9c5 SHA512 58acbe4ddf7045a991f156fb8d70c89fc83e8cb3733884154f263078671e02f6cdf961cdc953709e8da818ab92f8830a5a065acfd17b4f21316b004be0ca112c -EBUILD wine-staging-9999.ebuild 11281 BLAKE2B f8be09ce1670d897fcc72d92e816140be8507d92c70a2fe58fbd224e522a74749ef158173f54f09025488a0d5b1a572112410e9774eafc5f684cb8c1b567c9c5 SHA512 58acbe4ddf7045a991f156fb8d70c89fc83e8cb3733884154f263078671e02f6cdf961cdc953709e8da818ab92f8830a5a065acfd17b4f21316b004be0ca112c +EBUILD wine-staging-9999.ebuild 11313 BLAKE2B 8e6e5eeee1e58aa9da6f0424bf588d89d90434369dbb17511dfd44498a159de206b984b8af884e26cbfc5dfbf331090887c505d0e0f7e2bed1dfb8dfa78a951b SHA512 1b5c5e9bf2c799c80652629d4108d9b11d018515e7fc4b336ca3281e15e0061a1c2316106d239872d5f77c2fe640e4e5b5be1f54f42f66f917c356b934ee7ce1 MISC metadata.xml 2301 BLAKE2B 9b65253f5a19d8aafc6c9ccd361a0b8cdd14a600ddd51bf163603c7400b2c39bf147f7fe671e3aba68ff8f8f2874eec0b64dd73afe4dabad3667cd23ca99aee0 SHA512 885f7c8e2239733193d16b32bb29a21285ff732092ae0c095056ee311bdf9b7135200a29ede5958d668acf9777640f139ffc5ffe43b1455356ce4bc897621401 diff --git a/app-emulation/wine-staging/wine-staging-9999.ebuild b/app-emulation/wine-staging/wine-staging-9999.ebuild index 6e64e8c69828..b23645292240 100644 --- a/app-emulation/wine-staging/wine-staging-9999.ebuild +++ b/app-emulation/wine-staging/wine-staging-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 2022 Gentoo Authors +# Copyright 2022-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -153,7 +153,7 @@ src_unpack() { EGIT_CHECKOUT_DIR=${WORKDIR}/${P} git-r3_src_unpack - EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die + EGIT_COMMIT=$("${BASH}" "${EGIT_CHECKOUT_DIR}"/patches/patchinstall.sh --upstream-commit) || die EGIT_REPO_URI=${WINE_EGIT_REPO_URI} EGIT_CHECKOUT_DIR=${S} einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})" -- cgit v1.2.3