virtualbox packages: Bump to versions 5.2.42, 6.0.22 and 6.1.10

Bug: https://bugs.gentoo.org/707082
Closes: https://bugs.gentoo.org/726340
Closes: https://bugs.gentoo.org/727292
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
This commit is contained in:
Lars Wendler
2020-06-13 23:06:11 +02:00
parent 8982970356
commit ab5b46fcf3
25 changed files with 3474 additions and 2 deletions

View File

@@ -1,3 +1,6 @@
DIST VBoxGuestAdditions_5.2.40.iso 49770496 BLAKE2B 4d9ca6cde78da325575f56f0b12d7beccfd09a564b98c808495ac8425f47bd0ce1b86a5cfb79c30256b36b109032013a0677ff07c45808324ca3b85efe5b7f51 SHA512 a2ea5539de454bb062dffa0b61ac4962c8932539ab0cdaae98f7703528c201bc856b0597b92c20e83fab5b97981be3811061386022ca3687d8c102983e05ec7b
DIST VBoxGuestAdditions_5.2.42.iso 49833984 BLAKE2B cd9d32db3d6bf54375c95fb7729e19f07348c8111aa3cda73e0512f8b036e0b0a550352d0acebf2e6ee7e5379a5d9711f56607a73bbf31fcaa8296a49d8a49e8 SHA512 eea1d5c6f3dfb42a4b8f916279eb2c426925e20de517d7011c3f41c115d9fbf098fb6988fcc9f192e68f15094f44fd811128e5f42dffe33934c67b1b42e025bb
DIST VBoxGuestAdditions_6.0.20.iso 77297664 BLAKE2B 72c3e6b3c757d866bbf94cb2593b81d05362dcb1485db8412c8c3a95a7619754eeeaa75f8d813bd26bb3c27a718e3f687fb5904dd2574d29eb96988f48fcc67b SHA512 16c69ddee28650ac35ee25bead96568cdfe269042ed6a4138b5870322ff9dab405ea844d75886a0b52c44f0c47a34814a30d48734a6683df6b6ad042b1bea68d
DIST VBoxGuestAdditions_6.0.22.iso 77352960 BLAKE2B e71447a3e6efbc4b921276d212ae3b9314184240219e5d8dc7cfd8684c9f944cfa65895fcebe72a45a332ed60ea6c9e47cafde142119a86f46bf1781679b1409 SHA512 04e16b11e64087fee2ae440fe523db4a546b5706ba517af15349e2acb5706af717105af29b6655ab84ddffc7370a7fce7cc0945069c6c9e59f4dcfc61baef0dd
DIST VBoxGuestAdditions_6.1.10.iso 60448768 BLAKE2B 99841d7a516ea18d6138c9ff39801c8bcf85eb2dd5bf163d441933362275c96b21ca5f5147979dafa1be26c98f7e2ec2af2666089da0d09004baab4d80f33e95 SHA512 fe16ccc8d9e7bdb56fb464864795b7ca9d59ae6aadbd8ef80bc1b2e36267158bfc04fd5a8e4a0999112a6b1d8818b1cf1eaf2cbd0a1d8341c6fd5808c245df3b
DIST VBoxGuestAdditions_6.1.6.iso 59760640 BLAKE2B dac4f92c851d37ad995ff631f1b7ecda702c3dce5b299232fc7ec956009fb13e09fc0e5d6980d09c4a9f1b58ab5fcff93c791ecc0fb184cefa701f072e68b87c SHA512 b87cc85d46ffcbf6ae8b21ef5932144b956f59925a1c5a87bbcc81dd9dbd845b1f3f282b92cea3dcc15d3e338e676dd58f81762e27019c1fb6736c541b1fdd9a

View File

@@ -0,0 +1,33 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
MY_PN=VBoxGuestAdditions
MY_PV="${PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
MY_P=${MY_PN}_${MY_PV}
DESCRIPTION="CD image containing guest additions for VirtualBox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso"
LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
RESTRICT="mirror"
RDEPEND="!app-emulation/virtualbox-bin
!=app-emulation/virtualbox-9999"
S="${WORKDIR}"
src_unpack() {
return 0
}
src_install() {
insinto /usr/share/${PN/-additions}
newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
}

View File

@@ -0,0 +1,34 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
MY_PN=VBoxGuestAdditions
MY_PV="${PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
MY_P=${MY_PN}_${MY_PV}
DESCRIPTION="CD image containing guest additions for VirtualBox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso"
LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL"
SLOT="0"
[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64 ~x86"
IUSE=""
RESTRICT="mirror"
RDEPEND="!app-emulation/virtualbox-bin
!=app-emulation/virtualbox-9999"
S="${WORKDIR}"
src_unpack() {
return 0
}
src_install() {
insinto /usr/share/${PN/-additions}
newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
}

View File

@@ -0,0 +1,34 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
MY_PN=VBoxGuestAdditions
MY_PV="${PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
MY_P=${MY_PN}_${MY_PV}
DESCRIPTION="CD image containing guest additions for VirtualBox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso"
LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL"
SLOT="0"
[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64"
IUSE=""
RESTRICT="mirror"
RDEPEND="!app-emulation/virtualbox-bin
!=app-emulation/virtualbox-9999"
S="${WORKDIR}"
src_unpack() {
return 0
}
src_install() {
insinto /usr/share/${PN/-additions}
newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
}

View File

@@ -1,10 +1,20 @@
DIST Oracle_VM_VirtualBox_Extension_Pack-5.2.40-137108.tar.gz 26737982 BLAKE2B 4a050067c0111929fe73695ec4f057e6b33cb224c034ca564beb65cc4fb73491b2c03e0b88ddb77ede5fbd392b0e0c9eae3226f937998b2c06484ff083b4a714 SHA512 5e3e528707b7f3eab19db5358258a69518996a98364e57df9853a549d7310b8db58b40041470f263b212fe6e2bb163e745a3b9b7567c681834d99442289407f4
DIST Oracle_VM_VirtualBox_Extension_Pack-5.2.42-137960.tar.gz 26740542 BLAKE2B 0246148d436c163eab0363b6b5ed05ec43f2ce9a1124ef504cdf9f30e0bdd479567225f013d2fa2ef39bae0af18e60ef4996d37f65552cca74d8fc76d2976f40 SHA512 0f3a963abf99599094d6bff9617d401338209ce6dba08285a006e17a68b927cd19ea5e17151afc5466c9e00df1fe75ca01fdc5d11a45be5a9d7d4e7649916fc6
DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.20-137117.tar.gz 23238318 BLAKE2B 160e92cb889c765ae28eccb535478af81377d6ce2cadde53e572c41e52f230ca266975b8fe37db0743450bb9e90b23d2fe6d1974496bbb93280381de1379cdd6 SHA512 26f81b5ca3aa5c8423ea42cd1d650657351114f46373d9ca7fa08895865229008d1dff225b9caae6a603758da1c15d2b025da6add86fded377a2700bdbf9b65c
DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.22-137980.tar.gz 23238402 BLAKE2B ea7105747fe776475ae66bf99354017c7a3e33343bb044722ccf5245daefa33581e2092fd04e03e9916b1150a7b46eb691ef4faaf28ecedb82a8e5c66b02a22f SHA512 c45cad50fbb521307fed127499955c261416fbc6958e87770238ef45865caefdd61837db17d61e57ef030a712f53ec1f452b89849fa5f7881f3cd62d481185eb
DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.10-138449.tar.gz 10999054 BLAKE2B cf802b561882541399baff74c2d75b33aa70bf8f909b616bbddcde0d98b41927f65ec5ac25e5d89598ae931c1c3c9fe7cc9cba17cb52b87b8d7f46ef935a376b SHA512 9cea8f8547eb4e90df1ec43ee4d2bf4be17f6ec8dd62013589f23019a30e0dd15e37945dca67790628d3f49d6103cf1dc9c53344589d2ce785fef8acf7c81cb9
DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.6-137129.tar.gz 10999815 BLAKE2B f7c0e3ec1ba3c2eb991f76a574c1605eebc0a2a40751f6c822f37cbff743b642c9c09ce8dcebc725bdf51f2099dc044aed6486909ab7dd9d62335a1dd483bfb1 SHA512 938564a68e7b18a83022329217c2304470a3682ccd5a837be3caa1b802d3c7bed450428c1d3176fac571eb8a53dca2405ca53853163ad613ef056bc3b3beef68
DIST VirtualBox-5.2.40-137108-Linux_amd64.run 83865043 BLAKE2B d44f3ee6b05446fbe36b5672ec00d2ffcf5b8592ebfdfc6d091dd1bf92d821644976bad55ca390ad834d274dbe738341457888fb78030de9ddadd680362c4b11 SHA512 1f068f776ef65ed930eed0ecc6304a374ea36339c21dfc7b41a61b6e82d61f5c8de13f4b93f19500f9eccbe9e3d0f1a816c46b7b7b4d5ed195ce1ddc45c57e7f
DIST VirtualBox-5.2.40-137108-Linux_x86.run 82994639 BLAKE2B 4f90a72d5d8952ae05bff9c50262e377c0ffbc134741eddc0aa6dccd9a575de746bcdcf0e0fc2db8f5ee36e730bcf814e0fd1291a739dd33260be7219f11c44a SHA512 580f8a6c7a1fe04132789b60ce4cb4db39f980590731e18b9c2cd7727d59efdd5250fbe80704a4542f8876d8fdc89cc048b669259e8170a28350157901bc14c4
DIST VirtualBox-5.2.42-137960-Linux_amd64.run 83926483 BLAKE2B b57d50604a8d867cc8b508d3448dcd835415f669759e1e8a947e30e2cf0392a87e16560c0f4d970c6afbe593b874ff463f5407c14e6e15a3429d67fb9ba7c956 SHA512 29a870f35d783dd4e079d2d44f33154f9a990ab1639a0b0427a7721c4a98625490d978db51655de6961bc0d89aabbff0804cd1744014952b4207c411945c3f6e
DIST VirtualBox-5.2.42-137960-Linux_x86.run 83056078 BLAKE2B ad58f0693eb0d936833ad09b213707ed0bc66e2705d2f9f407e21b0681cd0d7f1fe062323f61e84e1f0bd0c88b9c0860fdfa2ea6085ac6c6e57ed2f7b5631bfb SHA512 16e2d4383a4ae0f86180222e14912fed25675290bcd8815a3c310cd8fad28081799b6d743d88197ebe78076612462bca0774c54fc8837cca03606ae87067f3d6
DIST VirtualBox-6.0.20-137117-Linux_amd64.run 127231448 BLAKE2B 2fa6307add56b318708cdb88615aa15e39577f43c0d65e74037d6f184a3937144ae8f5abcf217809776dd19e4f3141e5bb78adadebc0be63d47bc69786cfa0c7 SHA512 9ac9b893c7cad4dc58833f6132ec0da6564a11112d8bef881bf1dab584abf046e167513c2e4c4ed3c5ce2e4b845c9cf99721fda657b2993b5692eb4ca15d2f5b
DIST VirtualBox-6.0.22-137980-Linux_amd64.run 127405529 BLAKE2B 0f27d84c2e30ed6956921db3aa611ea2a959d11a20051a5c633560f2ab42d2b100ce3c886439226f6634461de6ccfcd564f194257c88b581d75422007ccb771c SHA512 a7d454112580639866c40506d3718d841600338dc33937382e16a52e7baf624fef7efcc98481eaa8633d32d11e74a37d23e5282bb22415e94790decc51a58dd2
DIST VirtualBox-6.1.10-138449-Linux_amd64.run 111513049 BLAKE2B e97393873dc270fb7acf130aa8632ee12fc8c14b9f678cbe20bf9dc1c095aaccfbd0ed1c64dd4dfd9243b10728d9feb84d3dc283365e5dd736d300ce8d72a411 SHA512 a1df1805b056d6abe26782d2f7b98668a929282c4a3f25062da3cb806c709a0a93b3d3c6f6a9a8c5140882ff2f5b11a6226c8917776dcf7ad256b82144f2bed9
DIST VirtualBox-6.1.6-137129-Linux_amd64.run 110530008 BLAKE2B 9f2f2e65ace7bc5919dcaba23b0a979a1b246af65722fd955dfb6110bda0fc119f9388e8d404bbdbf00bd8a96c25c505dc7a3589fc98680cdb115f1c1327936d SHA512 a4ea1a37bcbc70a9be3bf201dac06e31bb5d8e4dd9d9f04fb8f2fc6387c6ae165c0812d357062e1593a2d5a6d7902ba068984bc8658750df49d991025b96dc05
DIST VirtualBoxSDK-5.2.40-137108.zip 10201020 BLAKE2B db4a2fd69fdc3ab4201c086c15f14144dd1f75e87d13c4493aaeaf2b69e06a599623416e17a3715c9836b7b7bf36aaba34c06e27ddd70900ca6c5fdd43e311e1 SHA512 15bf89ca622396a5b2f66fb42762959548e8d0b2e0bd3b63223bcccff449f5c094af0315deecae167e105276915fb6b2e61a1f71465be4e85b52a58e313a2830
DIST VirtualBoxSDK-5.2.42-137960.zip 10203875 BLAKE2B 8979e023679daa17eda97037b8e5f40250c7dd34f2caad2b4ac0f7680c90418da050ce866a3099f20969932b559527accdabe20eb0b5593cbe8acacebd873d1d SHA512 70ff706c50937dcad9dbc3554b5dd88f2d8b674221fbe08e2124055c0a07f1c1ca00342cb5dcdb64e38583e3bb68bf9ecc7eaf5e88e381f205ffb3a4eaa64487
DIST VirtualBoxSDK-6.0.20-137117.zip 10803680 BLAKE2B aaec9c6b9f0d758528f8490920bc98c594e8aa2bd241f941e9093553d5353b4999f4041519198740344da92af3d7fb7992dcb6945a55d5471d9952a76daea4f5 SHA512 b2574f7d93c3d92a09a2cd18f68db3ac78d5c51d454cc322800b0d8555c4fdb541b5c797e11795dda51f5998f98dc9ed4839b836f4c64f8f95211b6ae71c198d
DIST VirtualBoxSDK-6.0.22-137980.zip 10804146 BLAKE2B f1a4ce9ef767343146d5f01bd75dbc9409e1ee4a8e3a73cb0546679421c2c013f24405c5353ded3bc34af477892d39205ca0e43a36b79bd1b884d59ef3ae7969 SHA512 5693c4b773c0ed3d3a502b8347129d3ec464da021cf904b7ae252db787cce93d7633cc4d8679da168d90239a03ae66de959e237765eeb56d9f4b17c74def7c50
DIST VirtualBoxSDK-6.1.10-138449.zip 11178059 BLAKE2B 6eddb1ea9110d8d96506dc1be048aabdb77993b3bed0407f0cb9976c99f21d66065d9e622dbc78a812a4ad30e285073798e57187f27126c6c70dc9b20db1b724 SHA512 21d453d5932ad93c4d6509a2b97c61edcbc64f89ccfeed2af8392031c41168724842a346f4b61e86d520567e8c04a5a09d43ed7a112d6abee35784ad6a2bdef9
DIST VirtualBoxSDK-6.1.6-137129.zip 11176791 BLAKE2B 9ad2592604e9b007c8d302d8efb67a3b5e069549bca7e6330a417d1c719e2de533e0f429909f95cfb77a5633eb806955c4ae4113ad6707af33854b7605215531 SHA512 d46549657fd8f2eb95196c310a9d81163fb231ce663ac7e24e1e8ac15b5830b25188c547db91fdca5b9524c2ba340f0b638e34863f8e26b4d118bf832b7f99bf

View File

@@ -0,0 +1,287 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python2_7 )
inherit xdg-utils gnome2 pax-utils python-r1 udev unpacker eapi7-ver
MAIN_PV="$(ver_cut 1-3)"
if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
MY_PV="${MAIN_PV}_$(ver_cut 5)"
MY_PV="${MY_PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
else
MY_PV="${MAIN_PV}"
fi
VBOX_BUILD_ID="$(ver_cut 4)"
VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}"
MY_P="VirtualBox-${VBOX_PV}-Linux"
# needed as sometimes the extpack gets another build ID
EXTP_PV="${VBOX_PV}"
EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack"
EXTP_P="${EXTP_PN}-${EXTP_PV}"
# needed as sometimes the SDK gets another build ID
SDK_PV="${VBOX_PV}"
SDK_P="VirtualBoxSDK-${SDK_PV}"
DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="amd64? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_amd64.run )
x86? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_x86.run )
https://download.virtualbox.org/virtualbox/${MY_PV}/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz"
LICENSE="GPL-2 PUEL"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp"
RESTRICT="bindist mirror"
if [[ "${PV}" != *beta* ]] ; then
SRC_URI+="
sdk? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${SDK_P}.zip )"
IUSE+=" sdk"
fi
DEPEND="app-arch/unzip
${PYTHON_DEPS}"
RDEPEND="!!app-emulation/virtualbox
!app-emulation/virtualbox-additions
~app-emulation/virtualbox-modules-${MAIN_PV}
!headless? (
dev-libs/glib
media-libs/fontconfig
media-libs/freetype
media-libs/libpng
media-libs/libsdl[X]
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXft
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
chm? ( dev-libs/expat )
)
dev-libs/libxml2
sys-fs/lvm2
x11-libs/libXau
x11-libs/libX11
x11-libs/libXt
x11-libs/libXmu
x11-libs/libSM
x11-libs/libICE
x11-libs/libXdmcp
${PYTHON_DEPS}"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
S="${WORKDIR}"
QA_PREBUILT="opt/VirtualBox/*"
PYTHON_UPDATER_IGNORE="1"
src_unpack() {
unpack_makeself ${MY_P}_${ARCH}.run
unpack ./VirtualBox.tar.bz2
mkdir "${S}"/${EXTP_PN} || die
pushd "${S}"/${EXTP_PN} &>/dev/null || die
unpack ${EXTP_P}.tar.gz
popd &>/dev/null || die
if [[ "${PV}" != *beta* ]] && use sdk ; then
unpack VirtualBoxSDK-${SDK_PV}.zip
fi
}
src_configure() {
:;
}
src_compile() {
:;
}
src_install() {
# create virtualbox configurations files
insinto /etc/vbox
newins "${FILESDIR}/${PN}-config" vbox.cfg
if ! use headless ; then
newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop
# set up symlinks (bug #572012)
dosym ../../../../opt/VirtualBox/virtualbox.xml /usr/share/mime/packages/virtualbox.xml
local size ico icofile
for size in 16 24 32 48 64 72 96 128 256 ; do
pushd "${S}"/icons/${size}x${size} &>/dev/null || die
if [[ -f "virtualbox.png" ]] ; then
doicon -s ${size} virtualbox.png
fi
for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
icofile="virtualbox-${ico}.png"
if [[ -f "${icofile}" ]] ; then
doicon -s ${size} ${icofile}
fi
done
popd &>/dev/null || die
done
doicon -s scalable "${S}"/icons/scalable/virtualbox.svg
insinto /usr/share/pixmaps
newins "${S}"/icons/48x48/virtualbox.png ${PN}.png
fi
pushd "${S}"/${EXTP_PN} &>/dev/null || die
insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN}
doins -r linux.${ARCH}
doins ExtPack* PXE-Intel.rom
popd &>/dev/null || die
rm -rf "${S}"/${EXTP_PN}
insinto /opt/VirtualBox
dodir /opt/bin
doins UserManual.pdf
if [[ "${PV}" != *beta* ]] && use sdk ; then
doins -r sdk
fi
if use additions; then
doins -r additions
fi
if use vboxwebsrv; then
doins vboxwebsrv
fowners root:vboxusers /opt/VirtualBox/vboxwebsrv
fperms 0750 /opt/VirtualBox/vboxwebsrv
dosym ../../opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
fi
if use rdesktop-vrdp; then
doins rdesktop-vrdp
doins -r rdesktop-vrdp-keymaps
fperms 0750 /opt/VirtualBox/rdesktop-vrdp
dosym ../../opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp
fi
if ! use headless && use chm; then
doins kchmviewer VirtualBox.chm
fowners root:vboxusers /opt/VirtualBox/kchmviewer
fperms 0750 /opt/VirtualBox/kchmviewer
fi
# This ebuild / package supports only py2.7. When py3 comes is unknown.
# The compile phase makes VBoxPython2_7.so.
# py3 support would presumably require a binary pre-compiled by py3.
use python && doins VBoxPython.so VBoxPython2_7.so
rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \
vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \
VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \
webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \
90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \
VBoxPython?_*.so
if use headless ; then
rm -rf VBoxSDL VirtualBox VBoxKeyboard.so
fi
doins -r *
# create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid)
dosym ../VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so
dosym ../VBoxREM.so /opt/VirtualBox/components/VBoxREM.so
dosym ../VBoxRT.so /opt/VirtualBox/components/VBoxRT.so
dosym ../VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so
dosym ../VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so
local each
for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,NetAdpCtl,NetDHCP,NetNAT,TestOGL,ExtPackHelperApp}; do
fowners root:vboxusers /opt/VirtualBox/${each}
fperms 0750 /opt/VirtualBox/${each}
pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
done
# VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case..
fperms 4750 /opt/VirtualBox/VBoxNetAdpCtl
fperms 4750 /opt/VirtualBox/VBoxNetDHCP
fperms 4750 /opt/VirtualBox/VBoxNetNAT
if ! use headless ; then
# Hardened build: Mark selected binaries set-user-ID-on-execution
for each in VBox{SDL,Headless} VirtualBox; do
fowners root:vboxusers /opt/VirtualBox/${each}
fperms 4510 /opt/VirtualBox/${each}
pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
done
dosym ../VirtualBox/VBox.sh /opt/bin/VirtualBox
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxSDL
else
# Hardened build: Mark selected binaries set-user-ID-on-execution
fowners root:vboxusers /opt/VirtualBox/VBoxHeadless
fperms 4510 /opt/VirtualBox/VBoxHeadless
pax-mark -m "${ED%/}"/opt/VirtualBox/VBoxHeadless
fi
exeinto /opt/VirtualBox
newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh"
fowners root:vboxusers /opt/VirtualBox/VBox.sh
fperms 0750 /opt/VirtualBox/VBox.sh
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxManage
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxVRDP
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxHeadless
dosym ../VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl
# set an env-variable for 3rd party tools
echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox"
doenvd "${T}/90virtualbox"
local udevdir="$(get_udevdir)"
insinto ${udevdir}/rules.d
doins "${FILESDIR}"/10-virtualbox.rules
sed "s@%UDEVDIR%@${udevdir}@" \
-i "${ED%/}"${udevdir}/rules.d/10-virtualbox.rules || die
# move udev scripts into ${udevdir} (bug #372491)
mv "${ED%/}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${ED%/}"${udevdir} || die
fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
}
pkg_postinst() {
xdg_desktop_database_update
gnome2_icon_cache_update
udevadm control --reload-rules && udevadm trigger --subsystem-match=usb
elog ""
if ! use headless ; then
elog "To launch VirtualBox just type: \"VirtualBox\""
elog ""
fi
elog "You must be in the vboxusers group to use VirtualBox."
elog ""
elog "For advanced networking setups you should emerge:"
elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
elog ""
elog "Please visit http://www.virtualbox.org/wiki/Editions for"
elog "an overview about the different features of ${PN}"
elog "and virtualbox-ose"
if [ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ] ; then
elog ""
elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
elog "or else USB in ${PN} won't work."
fi
}
pkg_postrm() {
xdg_desktop_database_update
}

View File

@@ -0,0 +1,292 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python2_7 )
inherit xdg-utils gnome2 pax-utils python-r1 udev unpacker eapi7-ver
MAIN_PV="$(ver_cut 1-3)"
if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
MY_PV="${MAIN_PV}_$(ver_cut 5-6)"
MY_PV="${MY_PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
else
MY_PV="${MAIN_PV}"
KEYWORDS="~amd64" #~x86
fi
VBOX_BUILD_ID="$(ver_cut 4)"
VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}"
MY_P="VirtualBox-${VBOX_PV}-Linux"
# needed as sometimes the extpack gets another build ID
EXTP_PV="${VBOX_PV}"
EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack"
EXTP_P="${EXTP_PN}-${EXTP_PV}"
# needed as sometimes the SDK gets another build ID
SDK_PV="${VBOX_PV}"
SDK_P="VirtualBoxSDK-${SDK_PV}"
DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="amd64? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_amd64.run )
https://download.virtualbox.org/virtualbox/${MY_PV}/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz"
#x86? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_x86.run )
LICENSE="GPL-2 PUEL"
SLOT="0"
IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp"
RESTRICT="bindist mirror"
if [[ "${PV}" != *beta* ]] ; then
SRC_URI+="
sdk? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${SDK_P}.zip )"
IUSE+=" sdk"
fi
DEPEND="app-arch/unzip
${PYTHON_DEPS}"
RDEPEND="!!app-emulation/virtualbox
!app-emulation/virtualbox-additions
acct-group/vboxusers
~app-emulation/virtualbox-modules-${MAIN_PV}
!headless? (
dev-libs/glib
media-libs/fontconfig
media-libs/freetype
media-libs/libpng
media-libs/libsdl[X]
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXft
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
chm? ( dev-libs/expat )
)
dev-libs/libxml2
sys-fs/lvm2
x11-libs/libXau
x11-libs/libX11
x11-libs/libXt
x11-libs/libXmu
x11-libs/libSM
x11-libs/libICE
x11-libs/libXdmcp
${PYTHON_DEPS}"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
S="${WORKDIR}"
QA_PREBUILT="opt/VirtualBox/*"
PYTHON_UPDATER_IGNORE="1"
src_unpack() {
unpack_makeself ${MY_P}_${ARCH}.run
unpack ./VirtualBox.tar.bz2
mkdir "${S}"/${EXTP_PN} || die
pushd "${S}"/${EXTP_PN} &>/dev/null || die
unpack ${EXTP_P}.tar.gz
popd &>/dev/null || die
if [[ "${PV}" != *beta* ]] && use sdk ; then
unpack VirtualBoxSDK-${SDK_PV}.zip
fi
}
src_configure() {
:;
}
src_compile() {
:;
}
src_install() {
# create virtualbox configurations files
insinto /etc/vbox
newins "${FILESDIR}/${PN}-config" vbox.cfg
if ! use headless ; then
newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop
# set up symlinks (bug #572012)
dosym ../../../../opt/VirtualBox/virtualbox.xml /usr/share/mime/packages/virtualbox.xml
local size ico icofile
for size in 16 24 32 48 64 72 96 128 256 ; do
pushd "${S}"/icons/${size}x${size} &>/dev/null || die
if [[ -f "virtualbox.png" ]] ; then
doicon -s ${size} virtualbox.png
fi
for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
icofile="virtualbox-${ico}.png"
if [[ -f "${icofile}" ]] ; then
doicon -s ${size} ${icofile}
fi
done
popd &>/dev/null || die
done
doicon -s scalable "${S}"/icons/scalable/virtualbox.svg
insinto /usr/share/pixmaps
newins "${S}"/icons/48x48/virtualbox.png ${PN}.png
fi
pushd "${S}"/${EXTP_PN} &>/dev/null || die
insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN}
doins -r linux.${ARCH}
doins ExtPack* PXE-Intel.rom
popd &>/dev/null || die
rm -rf "${S}"/${EXTP_PN}
insinto /opt/VirtualBox
dodir /opt/bin
doins UserManual.pdf
if [[ "${PV}" != *beta* ]] && use sdk ; then
doins -r sdk
fi
if use additions; then
doins -r additions
fi
if use vboxwebsrv; then
doins vboxwebsrv
fowners root:vboxusers /opt/VirtualBox/vboxwebsrv
fperms 0750 /opt/VirtualBox/vboxwebsrv
dosym ../../opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
fi
if use rdesktop-vrdp; then
doins rdesktop-vrdp
doins -r rdesktop-vrdp-keymaps
fperms 0750 /opt/VirtualBox/rdesktop-vrdp
dosym ../../opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp
fi
if ! use headless && use chm; then
doins kchmviewer VirtualBox.chm
fowners root:vboxusers /opt/VirtualBox/kchmviewer
fperms 0750 /opt/VirtualBox/kchmviewer
fi
# This ebuild / package supports only py2.7. When py3 comes is unknown.
# The compile phase makes VBoxPython2_7.so.
# py3 support would presumably require a binary pre-compiled by py3.
use python && doins VBoxPython.so
rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \
vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \
VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \
webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \
90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \
VBoxPython?_*.so
if use headless ; then
rm -rf VBoxSDL VirtualBox{,VM} VBoxKeyboard.so
fi
doins -r *
# create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid)
dosym ../VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so
dosym ../VBoxREM.so /opt/VirtualBox/components/VBoxREM.so
dosym ../VBoxRT.so /opt/VirtualBox/components/VBoxRT.so
dosym ../VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so
dosym ../VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so
local each
for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,TestOGL,ExtPackHelperApp} $(usex headless '' VirtualBox) ; do
fowners root:vboxusers /opt/VirtualBox/${each}
fperms 0750 /opt/VirtualBox/${each}
pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
done
# VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case..
for each in VBoxNet{AdpCtl,DHCP,NAT} $(usex headless '' VirtualBoxVM) ; do
fowners root:vboxusers /opt/VirtualBox/${each}
fperms 4750 /opt/VirtualBox/${each}
pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
done
if ! use headless ; then
# Hardened build: Mark selected binaries set-user-ID-on-execution
for each in VBox{SDL,Headless} ; do
fowners root:vboxusers /opt/VirtualBox/${each}
fperms 4510 /opt/VirtualBox/${each}
pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
done
dosym ../VirtualBox/VBox.sh /opt/bin/VirtualBox
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxSDL
else
# Hardened build: Mark selected binaries set-user-ID-on-execution
fowners root:vboxusers /opt/VirtualBox/VBoxHeadless
fperms 4510 /opt/VirtualBox/VBoxHeadless
pax-mark -m "${ED%/}"/opt/VirtualBox/VBoxHeadless
fi
exeinto /opt/VirtualBox
newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh"
fowners root:vboxusers /opt/VirtualBox/VBox.sh
fperms 0750 /opt/VirtualBox/VBox.sh
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxManage
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxVRDP
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxHeadless
dosym ../VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl
# set an env-variable for 3rd party tools
echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox"
doenvd "${T}/90virtualbox"
local udevdir="$(get_udevdir)"
insinto ${udevdir}/rules.d
doins "${FILESDIR}"/10-virtualbox.rules
sed "s@%UDEVDIR%@${udevdir}@" \
-i "${ED%/}"${udevdir}/rules.d/10-virtualbox.rules || die
# move udev scripts into ${udevdir} (bug #372491)
mv "${ED%/}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${ED%/}"${udevdir} || die
fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
}
pkg_postinst() {
xdg_icon_cache_update
xdg_desktop_database_update
xdg_mimeinfo_database_update
udevadm control --reload-rules && udevadm trigger --subsystem-match=usb
elog ""
if ! use headless ; then
elog "To launch VirtualBox just type: \"VirtualBox\""
elog ""
fi
elog "You must be in the vboxusers group to use VirtualBox."
elog ""
elog "For advanced networking setups you should emerge:"
elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
elog ""
elog "Please visit http://www.virtualbox.org/wiki/Editions for"
elog "an overview about the different features of ${PN}"
elog "and virtualbox-ose"
if [ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ] ; then
elog ""
elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
elog "or else USB in ${PN} won't work."
fi
}
pkg_postrm() {
xdg_icon_cache_update
xdg_desktop_database_update
xdg_mimeinfo_database_update
}

View File

@@ -0,0 +1,292 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python2_7 )
inherit xdg-utils gnome2 pax-utils python-r1 udev unpacker eapi7-ver
MAIN_PV="$(ver_cut 1-3)"
if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
MY_PV="${MAIN_PV}_$(ver_cut 5-6)"
MY_PV="${MY_PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
else
MY_PV="${MAIN_PV}"
KEYWORDS="~amd64" #~x86
fi
VBOX_BUILD_ID="$(ver_cut 4)"
VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}"
MY_P="VirtualBox-${VBOX_PV}-Linux"
# needed as sometimes the extpack gets another build ID
EXTP_PV="${VBOX_PV}"
EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack"
EXTP_P="${EXTP_PN}-${EXTP_PV}"
# needed as sometimes the SDK gets another build ID
SDK_PV="${VBOX_PV}"
SDK_P="VirtualBoxSDK-${SDK_PV}"
DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="amd64? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_amd64.run )
https://download.virtualbox.org/virtualbox/${MY_PV}/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz"
#x86? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_x86.run )
LICENSE="GPL-2 PUEL"
SLOT="0"
IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp"
RESTRICT="bindist mirror"
if [[ "${PV}" != *beta* ]] ; then
SRC_URI+="
sdk? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${SDK_P}.zip )"
IUSE+=" sdk"
fi
DEPEND="app-arch/unzip
${PYTHON_DEPS}"
RDEPEND="!!app-emulation/virtualbox
!app-emulation/virtualbox-additions
acct-group/vboxusers
~app-emulation/virtualbox-modules-${MY_PV,,}
!headless? (
dev-libs/glib
media-libs/fontconfig
media-libs/freetype
media-libs/libpng
media-libs/libsdl[X]
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXft
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
chm? ( dev-libs/expat )
)
dev-libs/libxml2
sys-fs/lvm2
x11-libs/libXau
x11-libs/libX11
x11-libs/libXt
x11-libs/libXmu
x11-libs/libSM
x11-libs/libICE
x11-libs/libXdmcp
${PYTHON_DEPS}"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
S="${WORKDIR}"
QA_PREBUILT="opt/VirtualBox/*"
PYTHON_UPDATER_IGNORE="1"
src_unpack() {
unpack_makeself ${MY_P}_${ARCH}.run
unpack ./VirtualBox.tar.bz2
mkdir "${S}"/${EXTP_PN} || die
pushd "${S}"/${EXTP_PN} &>/dev/null || die
unpack ${EXTP_P}.tar.gz
popd &>/dev/null || die
if [[ "${PV}" != *beta* ]] && use sdk ; then
unpack VirtualBoxSDK-${SDK_PV}.zip
fi
}
src_configure() {
:;
}
src_compile() {
:;
}
src_install() {
# create virtualbox configurations files
insinto /etc/vbox
newins "${FILESDIR}/${PN}-config" vbox.cfg
if ! use headless ; then
newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop
# set up symlinks (bug #572012)
dosym ../../../../opt/VirtualBox/virtualbox.xml /usr/share/mime/packages/virtualbox.xml
local size ico icofile
for size in 16 24 32 48 64 72 96 128 256 ; do
pushd "${S}"/icons/${size}x${size} &>/dev/null || die
if [[ -f "virtualbox.png" ]] ; then
doicon -s ${size} virtualbox.png
fi
for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
icofile="virtualbox-${ico}.png"
if [[ -f "${icofile}" ]] ; then
doicon -s ${size} ${icofile}
fi
done
popd &>/dev/null || die
done
doicon -s scalable "${S}"/icons/scalable/virtualbox.svg
insinto /usr/share/pixmaps
newins "${S}"/icons/48x48/virtualbox.png ${PN}.png
fi
pushd "${S}"/${EXTP_PN} &>/dev/null || die
insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN}
doins -r linux.${ARCH}
doins ExtPack* PXE-Intel.rom
popd &>/dev/null || die
rm -rf "${S}"/${EXTP_PN}
insinto /opt/VirtualBox
dodir /opt/bin
doins UserManual.pdf
if [[ "${PV}" != *beta* ]] && use sdk ; then
doins -r sdk
fi
if use additions; then
doins -r additions
fi
if use vboxwebsrv; then
doins vboxwebsrv
fowners root:vboxusers /opt/VirtualBox/vboxwebsrv
fperms 0750 /opt/VirtualBox/vboxwebsrv
dosym ../../opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
fi
if use rdesktop-vrdp; then
doins rdesktop-vrdp
doins -r rdesktop-vrdp-keymaps
fperms 0750 /opt/VirtualBox/rdesktop-vrdp
dosym ../../opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp
fi
if ! use headless && use chm; then
doins kchmviewer VirtualBox.chm
fowners root:vboxusers /opt/VirtualBox/kchmviewer
fperms 0750 /opt/VirtualBox/kchmviewer
fi
# This ebuild / package supports only py2.7. When py3 comes is unknown.
# The compile phase makes VBoxPython2_7.so.
# py3 support would presumably require a binary pre-compiled by py3.
use python && doins VBoxPython.so
rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \
vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \
VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \
webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \
90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \
VBoxPython?_*.so
if use headless ; then
rm -rf VBoxSDL VirtualBox{,VM} VBoxKeyboard.so
fi
doins -r *
# create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid)
dosym ../VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so
dosym ../VBoxREM.so /opt/VirtualBox/components/VBoxREM.so
dosym ../VBoxRT.so /opt/VirtualBox/components/VBoxRT.so
dosym ../VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so
dosym ../VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so
local each
for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,TestOGL,ExtPackHelperApp} $(usex headless '' VirtualBox) ; do
fowners root:vboxusers /opt/VirtualBox/${each}
fperms 0750 /opt/VirtualBox/${each}
pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
done
# VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case..
for each in VBoxNet{AdpCtl,DHCP,NAT} $(usex headless '' VirtualBoxVM) ; do
fowners root:vboxusers /opt/VirtualBox/${each}
fperms 4750 /opt/VirtualBox/${each}
pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
done
if ! use headless ; then
# Hardened build: Mark selected binaries set-user-ID-on-execution
for each in VBox{SDL,Headless} ; do
fowners root:vboxusers /opt/VirtualBox/${each}
fperms 4510 /opt/VirtualBox/${each}
pax-mark -m "${ED%/}"/opt/VirtualBox/${each}
done
dosym ../VirtualBox/VBox.sh /opt/bin/VirtualBox
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxSDL
else
# Hardened build: Mark selected binaries set-user-ID-on-execution
fowners root:vboxusers /opt/VirtualBox/VBoxHeadless
fperms 4510 /opt/VirtualBox/VBoxHeadless
pax-mark -m "${ED%/}"/opt/VirtualBox/VBoxHeadless
fi
exeinto /opt/VirtualBox
newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh"
fowners root:vboxusers /opt/VirtualBox/VBox.sh
fperms 0750 /opt/VirtualBox/VBox.sh
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxManage
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxVRDP
dosym ../VirtualBox/VBox.sh /opt/bin/VBoxHeadless
dosym ../VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl
# set an env-variable for 3rd party tools
echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox"
doenvd "${T}/90virtualbox"
local udevdir="$(get_udevdir)"
insinto ${udevdir}/rules.d
doins "${FILESDIR}"/10-virtualbox.rules
sed "s@%UDEVDIR%@${udevdir}@" \
-i "${ED%/}"${udevdir}/rules.d/10-virtualbox.rules || die
# move udev scripts into ${udevdir} (bug #372491)
mv "${ED%/}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${ED%/}"${udevdir} || die
fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
}
pkg_postinst() {
xdg_icon_cache_update
xdg_desktop_database_update
xdg_mimeinfo_database_update
udevadm control --reload-rules && udevadm trigger --subsystem-match=usb
elog ""
if ! use headless ; then
elog "To launch VirtualBox just type: \"VirtualBox\""
elog ""
fi
elog "You must be in the vboxusers group to use VirtualBox."
elog ""
elog "For advanced networking setups you should emerge:"
elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
elog ""
elog "Please visit http://www.virtualbox.org/wiki/Editions for"
elog "an overview about the different features of ${PN}"
elog "and virtualbox-ose"
if [ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ] ; then
elog ""
elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
elog "or else USB in ${PN} won't work."
fi
}
pkg_postrm() {
xdg_icon_cache_update
xdg_desktop_database_update
xdg_mimeinfo_database_update
}

View File

@@ -1,3 +1,6 @@
DIST Oracle_VM_VirtualBox_Extension_Pack-5.2.40-137108.tar.gz 26737982 BLAKE2B 4a050067c0111929fe73695ec4f057e6b33cb224c034ca564beb65cc4fb73491b2c03e0b88ddb77ede5fbd392b0e0c9eae3226f937998b2c06484ff083b4a714 SHA512 5e3e528707b7f3eab19db5358258a69518996a98364e57df9853a549d7310b8db58b40041470f263b212fe6e2bb163e745a3b9b7567c681834d99442289407f4
DIST Oracle_VM_VirtualBox_Extension_Pack-5.2.42-137960.tar.gz 26740542 BLAKE2B 0246148d436c163eab0363b6b5ed05ec43f2ce9a1124ef504cdf9f30e0bdd479567225f013d2fa2ef39bae0af18e60ef4996d37f65552cca74d8fc76d2976f40 SHA512 0f3a963abf99599094d6bff9617d401338209ce6dba08285a006e17a68b927cd19ea5e17151afc5466c9e00df1fe75ca01fdc5d11a45be5a9d7d4e7649916fc6
DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.20-137117.tar.gz 23238318 BLAKE2B 160e92cb889c765ae28eccb535478af81377d6ce2cadde53e572c41e52f230ca266975b8fe37db0743450bb9e90b23d2fe6d1974496bbb93280381de1379cdd6 SHA512 26f81b5ca3aa5c8423ea42cd1d650657351114f46373d9ca7fa08895865229008d1dff225b9caae6a603758da1c15d2b025da6add86fded377a2700bdbf9b65c
DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.22-137980.tar.gz 23238402 BLAKE2B ea7105747fe776475ae66bf99354017c7a3e33343bb044722ccf5245daefa33581e2092fd04e03e9916b1150a7b46eb691ef4faaf28ecedb82a8e5c66b02a22f SHA512 c45cad50fbb521307fed127499955c261416fbc6958e87770238ef45865caefdd61837db17d61e57ef030a712f53ec1f452b89849fa5f7881f3cd62d481185eb
DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.10-138449.tar.gz 10999054 BLAKE2B cf802b561882541399baff74c2d75b33aa70bf8f909b616bbddcde0d98b41927f65ec5ac25e5d89598ae931c1c3c9fe7cc9cba17cb52b87b8d7f46ef935a376b SHA512 9cea8f8547eb4e90df1ec43ee4d2bf4be17f6ec8dd62013589f23019a30e0dd15e37945dca67790628d3f49d6103cf1dc9c53344589d2ce785fef8acf7c81cb9
DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.6-137129.tar.gz 10999815 BLAKE2B f7c0e3ec1ba3c2eb991f76a574c1605eebc0a2a40751f6c822f37cbff743b642c9c09ce8dcebc725bdf51f2099dc044aed6486909ab7dd9d62335a1dd483bfb1 SHA512 938564a68e7b18a83022329217c2304470a3682ccd5a837be3caa1b802d3c7bed450428c1d3176fac571eb8a53dca2405ca53853163ad613ef056bc3b3beef68

View File

@@ -0,0 +1,42 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit multilib
MAIN_PV="$(ver_cut 1-3)"
if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
MY_PV="${MAIN_PV}_$(ver_cut 5)"
DEP_PV="${MY_PV}"
MY_PV="${MY_PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
else
MY_PV="${MAIN_PV}"
DEP_PV="${MAIN_PV}"
fi
VBOX_BUILD_ID="$(ver_cut 4)"
MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}"
DESCRIPTION="PUEL extensions for VirtualBox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
LICENSE="PUEL"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
RESTRICT="bindist mirror strip"
RDEPEND="~app-emulation/virtualbox-${DEP_PV}"
S="${WORKDIR}"
QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*"
src_install() {
insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
doins -r linux.${ARCH}
doins ExtPack* PXE-Intel.rom
}

View File

@@ -0,0 +1,43 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit multilib
MAIN_PV="$(ver_cut 1-3)"
if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
MY_PV="${MAIN_PV}_$(ver_cut 5-6)"
DEP_PV="${MY_PV}"
MY_PV="${MY_PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
else
MY_PV="${MAIN_PV}"
DEP_PV="${MAIN_PV}"
fi
VBOX_BUILD_ID="$(ver_cut 4)"
MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}"
DESCRIPTION="PUEL extensions for VirtualBox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
LICENSE="PUEL"
SLOT="0"
[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64 ~x86"
IUSE=""
RESTRICT="bindist mirror strip"
RDEPEND="~app-emulation/virtualbox-${DEP_PV}"
S="${WORKDIR}"
QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*"
src_install() {
insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
doins -r linux.${ARCH}
doins ExtPack* PXE-Intel.rom
}

View File

@@ -0,0 +1,43 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit multilib
MAIN_PV="$(ver_cut 1-3)"
if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
MY_PV="${MAIN_PV}_$(ver_cut 5-6)"
DEP_PV="${MY_PV}"
MY_PV="${MY_PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
else
MY_PV="${MAIN_PV}"
DEP_PV="${MAIN_PV}"
fi
VBOX_BUILD_ID="$(ver_cut 4)"
MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}"
DESCRIPTION="PUEL extensions for VirtualBox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
LICENSE="PUEL"
SLOT="0"
[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64"
IUSE=""
RESTRICT="bindist mirror strip"
RDEPEND="~app-emulation/virtualbox-${DEP_PV}"
S="${WORKDIR}"
QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*"
src_install() {
insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
doins -r linux.${ARCH}
doins ExtPack* PXE-Intel.rom
}

View File

@@ -1,6 +1,11 @@
DIST VirtualBox-5.2.40.tar.bz2 118285273 BLAKE2B 5d1fa572522c0a4d0124b49d68ec6f2bf240431bbe9ebd3dcf34252cc4710ec158c295c3cdb9628f045ce672a840b251b644cd92131cd4ff5ec9eab958609bc6 SHA512 3632c7184593350e484b055f85040f2a1883db4c228b04dc41e36d60de6e3123284cc9eb89ee0eba68bcd317dfdf1a5bb8594738108ea642528cafba965f3a18
DIST VirtualBox-5.2.42.tar.bz2 124013981 BLAKE2B e22c80861727b14175db6eb476e78ad620e35cdfd480e83331306bbc251e1cf6d21a3dba15b0db1c516c530f0a58dca7d9c70748c8b194a2cf5fe7dfc9c0b80c SHA512 d396d34c0cbc652ad66b7c0e5b8bf206f29e751612543173f01f498f16e113ace0da64e674cd398c1fc0309f46ff99823c8b1000ffc8a7a453bcf8646af2900a
DIST VirtualBox-6.0.20.tar.bz2 154286741 BLAKE2B e5000919dd21ebca52a508e88a54d404c0cbceb9c101d47d146b45af2509f1e922403e0ea05753dac7293870f64f8c3e478fa0c0a77611f35a3f3ce52b1fa4c1 SHA512 0ecfcc68514ca89f9bee818c43e19e999561798cba72afa27f44a46bf53c7e45e05371d973fc76b7af003e85528b19b3156531fd9bf9a0d5f30dc53665e2f48f
DIST VirtualBox-6.0.22.tar.bz2 159831666 BLAKE2B 7c8878aec9ce1d5caf44677fa64119f0c0e99a111780a68c93702ff6681c48760d9622e91260b92096ca881fdf715bcb382e6eb2112b82567232b0014f1d975d SHA512 83aa7469e99abbe2d9da99102fb4e15bc5347bae06fe954f82d07eaaeccded1d92cf56b01c238c6cbc2b611fcb30e5dd6af91444278c166529c5b8972acdb657
DIST VirtualBox-6.1.10.tar.bz2 164989732 BLAKE2B 0f6d681462245dec10f651c1fac9e7ff5ee1e361d86cb764d84df46a4a51a0e413f8b1ab233e34af53fa3fda14ca17542e4d5c148e857548e03ff80ad2af22ee SHA512 729840d669281ed3ba2936923a50410e52bcec3fcfd5b6b740d5991aa1c25c2a8f5a5a05b4e3e39ef1a271ab3431d4c4f4b3a1262703d1e281d7111f0d4e8a3b
DIST VirtualBox-6.1.6.tar.bz2 159389496 BLAKE2B 00a5dd823e3136417b075aac2f526f954b5bcaad828cb6abcbd5b3ad7412c4afe8d499e0fb2a8897f4cdab7e7084e848fde69a0d8e355c14767eafde21ebac46 SHA512 4a94417fe69c40755b55526cee67068ca8d32e71e5b6ebe0cccf46062dfb4ee76b33ac92f8b8f4748d438eda1714129360fdbaa39c16df3877b20109a7c6439a
DIST virtualbox-5.2.36-patches-01.tar.xz 3440 BLAKE2B 66749efba87d82ed4a11ff09444c68f86f82a360e9dbb44fa6072d6c28120f3c23cff8c15bacbd38bce8b69b3d8f35c4d3d493684df962ea6e353eec413dcc38 SHA512 3cf2526d209a54e94cd94840793769fd96fa988e21555d76eda2207a7f87e04b446a28ac6c8a2954e7c00a35107c144cadaec276d171214acdcc2900eb41306c
DIST virtualbox-6.0.20-patches-01.tar.xz 3464 BLAKE2B dbfd15322edf178e752139c6f82be966422ff0d3c5d914fe8d4b6980f5805d27552dc813e97ea17665004d5f6cc3486461732edaaeabdd59cd1799b2ee85af06 SHA512 04f0c9d0565c77bca334cbcfd8ac439dff1a1d8246dbea3f5e06035eff6f6dd72b54f2227d6197e2851e418ad74bb4feeef07e442f3441bc75d80a72d0d0e00d
DIST virtualbox-6.0.22-patches-01.tar.xz 3464 BLAKE2B 03ec3460f1f072c4f673e14a66b1f36de95f55c0c893482434049e077e0eff6d3724a8f1f6046d5ddff66675a9a39ecd2e40a6f43904bd575ba86505ed5e0ade SHA512 44875f8eda2e433bfe3b85551d3157c5b5d1740689e05c54772c78f9feba80ed08df88f99f9dd0d0f26d0912b00919e7ed5c38583a8ddc8e8e7e962d89cd2374
DIST virtualbox-6.1.0_rc1-patches-01.tar.xz 2152 BLAKE2B 5ca1aa008d0a4bd2d8ff4e8b02e506f2bdd68d41b1ae6a733362925b12a82e4f26b4040817800342c69be8e1eec73477d1731e05eb677d09948ed59881be190c SHA512 31f5b77cc86e7fe83e08df956639f50b9936aeab32d98d8f8800c4fa762245a7e6784189409006f82f8ed4bbdadbad7249e2663063448f3f0b0e157acfba6c42
DIST virtualbox-6.1.10-patches-01.tar.xz 2640 BLAKE2B 4aeeb596bcaf6b57a707c08211408d760092187710ce468f3e60bb7e66f22b04db4f4c58d06cea4cf7d4b69c9cfd2ebee5c2c5b8b93766097cf8c7cf9ebd8ae5 SHA512 24393d6e7cb62b65d79dc407f25fba42994d37a761c6c111ab952800715b1ee966ba4f7403a4e79fbf67035c72ef5aa3d1f203bdd69c6078894564018aa284c0

View File

@@ -0,0 +1,232 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit linux-mod systemd user toolchain-funcs
MY_PV="${PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
MY_P="VirtualBox-${MY_PV}"
DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2
https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-5.2.36-patches-01.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="X"
RDEPEND="
X? ( x11-apps/xrandr
x11-apps/xrefresh
x11-libs/libXmu
x11-libs/libX11
x11-libs/libXt
x11-libs/libXext
x11-libs/libXau
x11-libs/libXdmcp
x11-libs/libSM
x11-libs/libICE )
sys-apps/dbus
"
DEPEND="
${RDEPEND}
>=dev-util/kbuild-0.1.9998.3127
>=dev-lang/yasm-0.6.2
sys-devel/bin86
sys-libs/pam
sys-power/iasl
x11-base/xorg-proto
"
PDEPEND="
X? ( x11-drivers/xf86-video-vboxvideo )
"
BUILD_TARGETS="all"
BUILD_TARGET_ARCH="${ARCH}"
S="${WORKDIR}/${MY_P}"
pkg_setup() {
export DISTCC_DISABLE=1 #674256
MODULE_NAMES="vboxguest(misc:${WORKDIR}/vboxguest:${WORKDIR}/vboxguest)
vboxsf(misc:${WORKDIR}/vboxsf:${WORKDIR}/vboxsf)"
use X && MODULE_NAMES+=" vboxvideo(misc:${WORKDIR}/vboxvideo::${WORKDIR}/vboxvideo)"
linux-mod_pkg_setup
BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers"
}
src_unpack() {
unpack ${A}
# Create and unpack a tarball with the sources of the Linux guest
# kernel modules, to include all the needed files
"${S}"/src/VBox/Additions/linux/export_modules.sh "${WORKDIR}/vbox-kmod.tar.gz"
unpack ./vbox-kmod.tar.gz
# Remove shipped binaries (kBuild,yasm), see bug #232775
cd "${S}"
rm -rf kBuild/bin tools
}
src_prepare() {
# PaX fixes (see bug #298988)
pushd "${WORKDIR}" &>/dev/null || die
eapply "${FILESDIR}"/vboxguest-4.1.0-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
# stupid new header references...
local vboxheader mdir
for vboxheader in {product,revision,version}-generated.h ; do
for mdir in vbox{guest,sf} ; do
ln -sf "${S}"/out/linux.${ARCH}/release/${vboxheader} \
"${WORKDIR}/${mdir}/${vboxheader}"
done
done
# Remove pointless GCC version check
sed -e '/^check_gcc$/d' -i configure || die
rm "${WORKDIR}/patches/008_virtualbox-4.3.14-missing_define.patch" || die
eapply "${WORKDIR}/patches"
eapply_user
}
src_configure() {
# build the user-space tools, warnings are harmless
local cmd=(
./configure
--nofatal
--disable-xpcom
--disable-sdl-ttf
--disable-pulse
--disable-alsa
--with-gcc="$(tc-getCC)"
--with-g++="$(tc-getCXX)"
--target-arch=${ARCH}
--with-linux="${KV_OUT_DIR}"
--build-headless
)
echo "${cmd[@]}"
"${cmd[@]}" || die "configure failed"
source ./env.sh
export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}"
}
src_compile() {
MAKE="kmk" emake\
VBOX_BUILD_PUBLISHER=_Gentoo \
TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
TOOL_YASM_AS=yasm \
VBOX_ONLY_ADDITIONS=1 \
KBUILD_VERBOSE=2
# 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)
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
newinitd "${FILESDIR}"/${PN}-8.initd ${PN}
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
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_preinst() {
enewgroup vboxguest
enewuser vboxguest -1 /bin/sh /dev/null vboxguest
# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
enewgroup vboxsf
}
pkg_postinst() {
linux-mod_pkg_postinst
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 "Also make sure you use the Mesa library for OpenGL:"
elog " eselect opengl set xorg-x11"
elog ""
elog "An autostart .desktop file has been installed to start"
elog "VBoxClient in desktop sessions."
elog ""
elog "You can mount shared folders with:"
elog " mount -t vboxsf <shared_folder_name> <mount_point>"
elog ""
elog "Warning:"
elog "this ebuild is only needed if you are running gentoo"
elog "inside a VirtualBox Virtual Machine, you don't need"
elog "it to run VirtualBox itself."
elog ""
}

View File

@@ -0,0 +1,219 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit linux-mod systemd toolchain-funcs
MY_PV="${PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
MY_P="VirtualBox-${MY_PV}"
DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2
https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-6.0.22-patches-01.tar.xz"
LICENSE="GPL-2"
SLOT="0"
[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64 ~x86"
IUSE="X"
# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
RDEPEND="
acct-group/vboxguest
acct-group/vboxsf
acct-user/vboxguest
X? ( x11-apps/xrandr
x11-apps/xrefresh
x11-libs/libXmu
x11-libs/libX11
x11-libs/libXt
x11-libs/libXext
x11-libs/libXau
x11-libs/libXdmcp
x11-libs/libSM
x11-libs/libICE )
sys-apps/dbus
"
DEPEND="
${RDEPEND}
>=dev-util/kbuild-0.1.9998.3127
>=dev-lang/yasm-0.6.2
sys-devel/bin86
sys-libs/pam
sys-power/iasl
x11-base/xorg-proto
"
PDEPEND="
X? ( x11-drivers/xf86-video-vboxvideo )
"
BUILD_TARGETS="all"
BUILD_TARGET_ARCH="${ARCH}"
S="${WORKDIR}/${MY_P}"
VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src"
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
BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers"
}
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 || die
eend
popd &>/dev/null || die
# PaX fixes (see bug #298988)
pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die
eapply "${FILESDIR}"/vboxguest-6.0.6-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
rm "${WORKDIR}/patches/010_virtualbox-5.2.12-qt511.patch" || die
eapply "${WORKDIR}/patches"
eapply_user
}
src_configure() {
# build the user-space tools, warnings are harmless
local cmd=(
./configure
--nofatal
--disable-xpcom
--disable-sdl-ttf
--disable-pulse
--disable-alsa
--with-gcc="$(tc-getCC)"
--with-g++="$(tc-getCXX)"
--target-arch=${ARCH}
--with-linux="${KV_OUT_DIR}"
--build-headless
)
echo "${cmd[@]}"
"${cmd[@]}" || die "configure failed"
source ./env.sh
export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}"
}
src_compile() {
MAKE="kmk" emake \
VBOX_BUILD_PUBLISHER=_Gentoo \
TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
TOOL_YASM_AS=yasm \
VBOX_ONLY_ADDITIONS=1 \
KBUILD_VERBOSE=2
# 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)
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
newinitd "${FILESDIR}"/${PN}-8.initd ${PN}
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
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
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 "Also make sure you use the Mesa library for OpenGL:"
elog " eselect opengl set xorg-x11"
elog ""
elog "An autostart .desktop file has been installed to start"
elog "VBoxClient in desktop sessions."
elog ""
elog "You can mount shared folders with:"
elog " mount -t vboxsf <shared_folder_name> <mount_point>"
elog ""
elog "Warning:"
elog "this ebuild is only needed if you are running gentoo"
elog "inside a VirtualBox Virtual Machine, you don't need"
elog "it to run VirtualBox itself."
elog ""
}

View File

@@ -0,0 +1,218 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit linux-mod systemd toolchain-funcs
MY_PV="${PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
MY_P="VirtualBox-${MY_PV}"
DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2
https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-6.1.10-patches-01.tar.xz"
LICENSE="GPL-2"
SLOT="0"
[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64 ~x86"
IUSE="X"
# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
RDEPEND="
acct-group/vboxguest
acct-group/vboxsf
acct-user/vboxguest
X? ( x11-apps/xrandr
x11-apps/xrefresh
x11-libs/libXmu
x11-libs/libX11
x11-libs/libXt
x11-libs/libXext
x11-libs/libXau
x11-libs/libXdmcp
x11-libs/libSM
x11-libs/libICE )
sys-apps/dbus
"
DEPEND="
${RDEPEND}
>=dev-util/kbuild-0.1.9998.3127
>=dev-lang/yasm-0.6.2
sys-devel/bin86
sys-libs/pam
sys-power/iasl
x11-base/xorg-proto
"
PDEPEND="
X? ( x11-drivers/xf86-video-vboxvideo )
"
BUILD_TARGETS="all"
BUILD_TARGET_ARCH="${ARCH}"
S="${WORKDIR}/${MY_P}"
VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src"
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
BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers"
}
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 || die
eend
popd &>/dev/null || die
# PaX fixes (see bug #298988)
pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die
eapply "${FILESDIR}"/vboxguest-6.0.6-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
eapply "${WORKDIR}/patches"
eapply_user
}
src_configure() {
# build the user-space tools, warnings are harmless
local cmd=(
./configure
--nofatal
--disable-xpcom
--disable-sdl-ttf
--disable-pulse
--disable-alsa
--with-gcc="$(tc-getCC)"
--with-g++="$(tc-getCXX)"
--target-arch=${ARCH}
--with-linux="${KV_OUT_DIR}"
--build-headless
)
echo "${cmd[@]}"
"${cmd[@]}" || die "configure failed"
source ./env.sh
export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}"
}
src_compile() {
MAKE="kmk" emake \
VBOX_BUILD_PUBLISHER=_Gentoo \
TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
TOOL_YASM_AS=yasm \
VBOX_ONLY_ADDITIONS=1 \
KBUILD_VERBOSE=2
# 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)
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
newinitd "${FILESDIR}"/${PN}-8.initd ${PN}
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
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
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 "Also make sure you use the Mesa library for OpenGL:"
elog " eselect opengl set xorg-x11"
elog ""
elog "An autostart .desktop file has been installed to start"
elog "VBoxClient in desktop sessions."
elog ""
elog "You can mount shared folders with:"
elog " mount -t vboxsf <shared_folder_name> <mount_point>"
elog ""
elog "Warning:"
elog "this ebuild is only needed if you are running gentoo"
elog "inside a VirtualBox Virtual Machine, you don't need"
elog "it to run VirtualBox itself."
elog ""
}

View File

@@ -1,3 +1,6 @@
DIST vbox-kernel-module-src-5.2.40.tar.xz 644200 BLAKE2B 0083423831bcec17f4960747c3ae939a8b4a5d2f89d6f09ad88308b078035bc6f068314d2c74182c9bb7ea0007e9c6a5b3eaa8f48ce58330294a78f66ed3faa5 SHA512 b62359104fdd0a1fd2b506cec2e4b71fa9582f1a89088d3a45791835981e1cd2e0895861b688cfbd7306454aa66c18bcd1444b26181f084b7af69f43d3e9b499
DIST vbox-kernel-module-src-5.2.42.tar.xz 644208 BLAKE2B c96e5f6dcfb695ab04327d484e532f291a7f25b1eeaaed8394edf911fa70190317af4732b9c4e5cc7d2402bbaf0cc3dba3cf474968ab67bbbc18cfc23baa88c5 SHA512 67d5881bcc1dd23a41e27c0ba51d5f9b7c768590906baec33d341758aef2f525c4f0df95a9b477c2b5a0f5f41476bfe96120bca45eec748974b17e667dd6785e
DIST vbox-kernel-module-src-6.0.20.tar.xz 670656 BLAKE2B ccd4130272545e57fa64f56adcc3b16d96dac2e6e44f8057a447fddb9c51e3be7729298b835b7e335a7d0e58e0603d96ee084547375a331209cf6fa3751868cd SHA512 fa7fd8dbff39bf65852522481c4725be7aeedb3052f7a628f15defd78dd8353ae3466a294f25bc51b555db9da774ad8ca756fa8d01f45af250ab57f7e2ce7193
DIST vbox-kernel-module-src-6.0.22.tar.xz 670780 BLAKE2B dc4055e3db4a59ff174989a0dc63e844bb70aa13a0ee7d9fc49db22cf1106df956aca11b039df5e67bfcfe848f8c287842e8ec30d8025ac1474ee26d10745354 SHA512 f1b2e4b3acc5effbc0b513e27623959e87d65001b0dd5c42ee09aa2db5261d534cc193329db09d01e7a7105a1f6f80e53a68f9312205d2b4e18e38834d82a1db
DIST vbox-kernel-module-src-6.1.10.tar.xz 666960 BLAKE2B e1f393a0f7735f4cb692d9feb22c3b6ec371fef04793b1a2f7cc2cadab450539c464f1a97f026c323ae162b853b738b3d6bb3bfde0c3bb854be4da2d251af5e8 SHA512 7ae56ac2d982649448e4dfe93beff22630c35ad40f764cffaaecf3b00c1a598043b7675e1f8eebf17059aa73da6273f0982dbc8377d9878be0712895d1332560
DIST vbox-kernel-module-src-6.1.6.tar.xz 667048 BLAKE2B 00cdddc108d54cb829e771eac1c95f254e97465960b50f6f95595cf4f25485146d9d807de903152f3472a9e57246379f15ea82f6464fc00053e4b6b6e9dbeebe SHA512 5fb91051d6f41c25f4ac642249f2dac289c06134d3815578c094db089dc36903a573913933c34d32e8bbf5d704f7225eabb849fd559430247a89a713f059012e

View File

@@ -0,0 +1,59 @@
# Copyright 1999-2020 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-bin
EAPI=7
inherit linux-mod toolchain-funcs user
MY_P="vbox-kernel-module-src-${PV}"
DESCRIPTION="Kernel Modules for Virtualbox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="pax_kernel"
RDEPEND="!=app-emulation/virtualbox-9999"
S="${WORKDIR}"
BUILD_TARGETS="all"
MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
MODULESD_VBOXDRV_ENABLED="yes"
MODULESD_VBOXNETADP_ENABLED="no"
MODULESD_VBOXNETFLT_ENABLED="no"
# The following is a security measure that comes directly from usptream.
# Do NOT remove this!!!
MODULESD_VBOXPCI_ADDITIONS=(
"blacklist vboxpci"
"install vboxpci /bin/true"
)
pkg_setup() {
enewgroup vboxusers
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"
}
src_prepare() {
if use pax_kernel && kernel_is -ge 3 0 0 ; then
eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch
fi
default
}
src_install() {
linux-mod_src_install
insinto /usr/lib/modules-load.d/
newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
}
pkg_postinst() {
linux-mod_pkg_postinst
}

View File

@@ -0,0 +1,55 @@
# Copyright 1999-2020 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-bin
EAPI=7
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/~polynomial-c/virtualbox/${MY_P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64 ~x86"
IUSE="pax_kernel"
RDEPEND="!=app-emulation/virtualbox-9999"
S="${WORKDIR}"
BUILD_TARGETS="all"
MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
MODULESD_VBOXDRV_ENABLED="yes"
MODULESD_VBOXNETADP_ENABLED="no"
MODULESD_VBOXNETFLT_ENABLED="no"
# The following is a security measure that comes directly from usptream.
# Do NOT remove this!!!
MODULESD_VBOXPCI_ADDITIONS=(
"blacklist vboxpci"
"install vboxpci /bin/true"
)
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"
}
src_prepare() {
if use pax_kernel && kernel_is -ge 3 0 0 ; then
eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch
fi
default
}
src_install() {
linux-mod_src_install
insinto /usr/lib/modules-load.d/
newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
}

View File

@@ -0,0 +1,55 @@
# Copyright 1999-2020 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-bin
EAPI=7
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/~polynomial-c/virtualbox/${MY_P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64"
IUSE="pax_kernel"
RDEPEND="!=app-emulation/virtualbox-9999"
S="${WORKDIR}"
BUILD_TARGETS="all"
MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S})"
MODULESD_VBOXDRV_ENABLED="yes"
MODULESD_VBOXNETADP_ENABLED="no"
MODULESD_VBOXNETFLT_ENABLED="no"
pkg_setup() {
linux-mod_pkg_setup
BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1"
}
src_prepare() {
if use pax_kernel && kernel_is -ge 3 0 0 ; then
eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch
fi
default
}
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
find /lib/modules/${KV_FULL}/misc -type f -name "vboxpci.ko" -delete
linux-mod_pkg_postinst
}

View File

@@ -1,6 +1,11 @@
DIST VirtualBox-5.2.40.tar.bz2 118285273 BLAKE2B 5d1fa572522c0a4d0124b49d68ec6f2bf240431bbe9ebd3dcf34252cc4710ec158c295c3cdb9628f045ce672a840b251b644cd92131cd4ff5ec9eab958609bc6 SHA512 3632c7184593350e484b055f85040f2a1883db4c228b04dc41e36d60de6e3123284cc9eb89ee0eba68bcd317dfdf1a5bb8594738108ea642528cafba965f3a18
DIST VirtualBox-5.2.42.tar.bz2 124013981 BLAKE2B e22c80861727b14175db6eb476e78ad620e35cdfd480e83331306bbc251e1cf6d21a3dba15b0db1c516c530f0a58dca7d9c70748c8b194a2cf5fe7dfc9c0b80c SHA512 d396d34c0cbc652ad66b7c0e5b8bf206f29e751612543173f01f498f16e113ace0da64e674cd398c1fc0309f46ff99823c8b1000ffc8a7a453bcf8646af2900a
DIST VirtualBox-6.0.20.tar.bz2 154286741 BLAKE2B e5000919dd21ebca52a508e88a54d404c0cbceb9c101d47d146b45af2509f1e922403e0ea05753dac7293870f64f8c3e478fa0c0a77611f35a3f3ce52b1fa4c1 SHA512 0ecfcc68514ca89f9bee818c43e19e999561798cba72afa27f44a46bf53c7e45e05371d973fc76b7af003e85528b19b3156531fd9bf9a0d5f30dc53665e2f48f
DIST VirtualBox-6.0.22.tar.bz2 159831666 BLAKE2B 7c8878aec9ce1d5caf44677fa64119f0c0e99a111780a68c93702ff6681c48760d9622e91260b92096ca881fdf715bcb382e6eb2112b82567232b0014f1d975d SHA512 83aa7469e99abbe2d9da99102fb4e15bc5347bae06fe954f82d07eaaeccded1d92cf56b01c238c6cbc2b611fcb30e5dd6af91444278c166529c5b8972acdb657
DIST VirtualBox-6.1.10.tar.bz2 164989732 BLAKE2B 0f6d681462245dec10f651c1fac9e7ff5ee1e361d86cb764d84df46a4a51a0e413f8b1ab233e34af53fa3fda14ca17542e4d5c148e857548e03ff80ad2af22ee SHA512 729840d669281ed3ba2936923a50410e52bcec3fcfd5b6b740d5991aa1c25c2a8f5a5a05b4e3e39ef1a271ab3431d4c4f4b3a1262703d1e281d7111f0d4e8a3b
DIST VirtualBox-6.1.6.tar.bz2 159389496 BLAKE2B 00a5dd823e3136417b075aac2f526f954b5bcaad828cb6abcbd5b3ad7412c4afe8d499e0fb2a8897f4cdab7e7084e848fde69a0d8e355c14767eafde21ebac46 SHA512 4a94417fe69c40755b55526cee67068ca8d32e71e5b6ebe0cccf46062dfb4ee76b33ac92f8b8f4748d438eda1714129360fdbaa39c16df3877b20109a7c6439a
DIST virtualbox-5.2.36-patches-01.tar.xz 3440 BLAKE2B 66749efba87d82ed4a11ff09444c68f86f82a360e9dbb44fa6072d6c28120f3c23cff8c15bacbd38bce8b69b3d8f35c4d3d493684df962ea6e353eec413dcc38 SHA512 3cf2526d209a54e94cd94840793769fd96fa988e21555d76eda2207a7f87e04b446a28ac6c8a2954e7c00a35107c144cadaec276d171214acdcc2900eb41306c
DIST virtualbox-6.0.20-patches-01.tar.xz 3464 BLAKE2B dbfd15322edf178e752139c6f82be966422ff0d3c5d914fe8d4b6980f5805d27552dc813e97ea17665004d5f6cc3486461732edaaeabdd59cd1799b2ee85af06 SHA512 04f0c9d0565c77bca334cbcfd8ac439dff1a1d8246dbea3f5e06035eff6f6dd72b54f2227d6197e2851e418ad74bb4feeef07e442f3441bc75d80a72d0d0e00d
DIST virtualbox-6.1.14-patches-01.tar.xz 2344 BLAKE2B cb89af8ffe0ecaa54929349abfb1541ca8630063d8282e773e4c66c3eec3ed108328b1ee81247d997981e5d49792b4019e1358b270c3622508b62e647c544ae4 SHA512 b08c2f66a050270a5c8b4d7264b1cf0afaf7809c3888c48a9b55ac75f0906bdb6bc28eef136ce032c777a810f2ce0a3cf6bb3df0259e5a6737f9ecc3ea708bba
DIST virtualbox-6.0.22-patches-01.tar.xz 3464 BLAKE2B 03ec3460f1f072c4f673e14a66b1f36de95f55c0c893482434049e077e0eff6d3724a8f1f6046d5ddff66675a9a39ecd2e40a6f43904bd575ba86505ed5e0ade SHA512 44875f8eda2e433bfe3b85551d3157c5b5d1740689e05c54772c78f9feba80ed08df88f99f9dd0d0f26d0912b00919e7ed5c38583a8ddc8e8e7e962d89cd2374
DIST virtualbox-6.1.10-patches-01.tar.xz 2640 BLAKE2B 4aeeb596bcaf6b57a707c08211408d760092187710ce468f3e60bb7e66f22b04db4f4c58d06cea4cf7d4b69c9cfd2ebee5c2c5b8b93766097cf8c7cf9ebd8ae5 SHA512 24393d6e7cb62b65d79dc407f25fba42994d37a761c6c111ab952800715b1ee966ba4f7403a4e79fbf67035c72ef5aa3d1f203bdd69c6078894564018aa284c0
DIST virtualbox-6.1.4-patches-01.tar.xz 2344 BLAKE2B cb89af8ffe0ecaa54929349abfb1541ca8630063d8282e773e4c66c3eec3ed108328b1ee81247d997981e5d49792b4019e1358b270c3622508b62e647c544ae4 SHA512 b08c2f66a050270a5c8b4d7264b1cf0afaf7809c3888c48a9b55ac75f0906bdb6bc28eef136ce032c777a810f2ce0a3cf6bb3df0259e5a6737f9ecc3ea708bba

View File

@@ -0,0 +1,493 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_{6,7,8} )
inherit flag-o-matic gnome2-utils java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg-utils
MY_PV="${PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
MY_P=VirtualBox-${MY_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/${MY_PV}/${MY_P}.tar.bz2
https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-5.2.36-patches-01.tar.xz"
LICENSE="GPL-2 dtrace? ( CDDL )"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="alsa debug doc dtrace headless java libressl lvm pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
RDEPEND="!app-emulation/virtualbox-bin
~app-emulation/virtualbox-modules-${PV}
dev-libs/libIDL
>=dev-libs/libxslt-1.1.19
net-misc/curl
dev-libs/libxml2
media-libs/libpng:0=
media-libs/libvpx:0=
media-libs/opus
sys-libs/zlib:=
!headless? (
media-libs/libsdl:0[X,video]
x11-libs/libX11
x11-libs/libxcb:=
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXmu
x11-libs/libXt
opengl? ( virtual/opengl media-libs/freeglut )
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
)
)
libressl? ( dev-libs/libressl:= )
!libressl? ( dev-libs/openssl:0= )
lvm? ( sys-fs/lvm2 )
udev? ( >=virtual/udev-171 )
vnc? ( >=net-libs/libvncserver-0.9.9 )
${PYTHON_DEPS}"
DEPEND="${RDEPEND}
>=dev-util/kbuild-0.1.9998.3127
>=dev-lang/yasm-0.6.2
sys-devel/bin86
sys-libs/libcap
sys-power/iasl
virtual/pkgconfig
alsa? ( >=media-libs/alsa-lib-1.0.13 )
doc? (
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
)
!headless? ( x11-libs/libXinerama )
java? ( >=virtual/jdk-1.6 )
pam? ( sys-libs/pam )
pax_kernel? ( sys-apps/elfix )
pulseaudio? ( media-sound/pulseaudio )
qt5? ( dev-qt/linguist-tools:5 )
vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
${PYTHON_DEPS}"
RDEPEND="${RDEPEND}
java? ( >=virtual/jre-1.6 )"
QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so
usr/lib/virtualbox/VBoxSDL.so
usr/lib/virtualbox/VBoxSharedFolders.so
usr/lib/virtualbox/VBoxDD2.so
usr/lib/virtualbox/VBoxOGLrenderspu.so
usr/lib/virtualbox/VBoxPython.so
usr/lib/virtualbox/VBoxDD.so
usr/lib/virtualbox/VBoxDDU.so
usr/lib/virtualbox/VBoxREM64.so
usr/lib/virtualbox/VBoxSharedClipboard.so
usr/lib/virtualbox/VBoxHeadless.so
usr/lib/virtualbox/VBoxRT.so
usr/lib/virtualbox/VBoxREM.so
usr/lib/virtualbox/VBoxSettings.so
usr/lib/virtualbox/VBoxKeyboard.so
usr/lib/virtualbox/VBoxSharedCrOpenGL.so
usr/lib/virtualbox/VBoxVMM.so
usr/lib/virtualbox/VirtualBox.so
usr/lib/virtualbox/VBoxOGLhosterrorspu.so
usr/lib/virtualbox/components/VBoxC.so
usr/lib/virtualbox/components/VBoxSVCM.so
usr/lib/virtualbox/components/VBoxDDU.so
usr/lib/virtualbox/components/VBoxRT.so
usr/lib/virtualbox/components/VBoxREM.so
usr/lib/virtualbox/components/VBoxVMM.so
usr/lib/virtualbox/VBoxREM32.so
usr/lib/virtualbox/VBoxPython2_7.so
usr/lib/virtualbox/VBoxXPCOMC.so
usr/lib/virtualbox/VBoxOGLhostcrutil.so
usr/lib/virtualbox/VBoxNetDHCP.so
usr/lib/virtualbox/VBoxNetNAT.so"
S="${WORKDIR}/${MY_P}"
REQUIRED_USE="
java? ( sdk )
python? ( sdk )
vboxwebsrv? ( java )
${PYTHON_REQUIRED_USE}
"
pkg_pretend() {
if ! use headless && ! use qt5 ; then
einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
elif use headless && use qt5 ; then
einfo "You selected USE=\"headless qt5\", defaulting to"
einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
fi
if ! use opengl ; then
einfo "No USE=\"opengl\" selected, this build will lack"
einfo "the OpenGL feature."
fi
if ! use python ; then
einfo "You have disabled the \"python\" USE flag. This will only"
einfo "disable the python bindings being installed."
fi
}
pkg_setup() {
java-pkg-opt-2_pkg_setup
python-single-r1_pkg_setup
tc-ld-disable-gold #bug 488176
tc-export CC CXX LD AR RANLIB
export HOST_CC="$(tc-getBUILD_CC)"
}
src_prepare() {
# Remove shipped binaries (kBuild,yasm), see bug #232775
rm -r kBuild/bin tools || die
# Replace pointless GCC version check with something less stupid.
# This is needed for the qt5 version check.
sed -e 's@^check_gcc$@cc_maj="$(gcc -dumpversion | cut -d. -f1)" ; cc_min="$(gcc -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
# Respect LDFLAGS
sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
# Do not use hard-coded ld (related to bug #488176)
sed -e '/QUIET)ld /s@ld @$(LD) @' \
-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
# Use PAM only when pam USE flag is enbaled (bug #376531)
if ! use pam ; then
elog "Disabling PAM removes the possibility to use the VRDP features."
sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
src/VBox/HostServices/Makefile.kmk || die
fi
# add correct java path
if use java ; then
sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-i "${S}"/Config.kmk || die
java-pkg-opt-2_src_prepare
fi
# Only add nopie patch when we're on hardened
if gcc-specs-pie ; then
eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch"
fi
# Only add paxmark patch when we're on pax_kernel
if use pax_kernel ; then
eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
fi
rm "${WORKDIR}/patches/008_virtualbox-4.3.14-missing_define.patch" || die
eapply "${WORKDIR}/patches"
eapply_user
}
doecho() {
echo "$@"
"$@" || die
}
src_configure() {
local myconf=(
--with-gcc="$(tc-getCC)"
--with-g++="$(tc-getCXX)"
--disable-dbus
--disable-kmods
$(usex alsa '' --disable-alsa)
$(usex debug --build-debug '')
$(usex doc '' --disable-docs)
$(usex java '' --disable-java)
$(usex lvm '' --disable-devmapper)
$(usex pulseaudio '' --disable-pulse)
$(usex python '' --disable-python)
$(usex vboxwebsrv --enable-webservice '')
$(usex vnc --enable-vnc '')
)
if ! use headless ; then
myconf+=(
$(usex opengl '' --disable-opengl)
$(usex qt5 '' --disable-qt)
)
else
myconf+=(
--build-headless
--disable-opengl
)
fi
if use amd64 && ! has_multilib_profile ; then
myconf+=( --disable-vmmraw )
fi
# not an autoconf script
doecho ./configure ${myconf[@]}
}
src_compile() {
source ./env.sh || die
# Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
MAKE="kmk" emake \
VBOX_BUILD_PUBLISHER=_Gentoo \
TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
all
}
src_install() {
local binpath="release"
use debug && binpath="debug"
cd "${S}"/out/linux.${ARCH}/${binpath}/bin || die
local vbox_inst_path="/usr/$(get_libdir)/${PN}" each fwfile size ico icofile
vbox_inst() {
local binary="${1}"
local perms="${2:-0750}"
local path="${3:-${vbox_inst_path}}"
[[ -n "${binary}" ]] || die "vbox_inst: No binray given!"
[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
insinto ${path}
doins ${binary}
fowners root:vboxusers ${path}/${binary}
fperms ${perms} ${path}/${binary}
}
# Create configuration files
insinto /etc/vbox
newins "${FILESDIR}/${PN}-4-config" vbox.cfg
# Set the 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-5-wrapper" "VBox"
fowners root:vboxusers ${vbox_inst_path}/VBox
fperms 0750 ${vbox_inst_path}/VBox
# Install binaries and libraries
insinto ${vbox_inst_path}
doins -r components
# *.rc files for x86_64 are only available on multilib systems
local rcfiles="*.rc"
if use amd64 && ! has_multilib_profile ; then
rcfiles=""
fi
for each in VBox{ExtPackHelperApp,Manage,SVC,Tunctl,XPCOMIPCD} *so *r0 ${rcfiles} ; do
vbox_inst ${each}
done
# These binaries need to be suid root.
for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
vbox_inst ${each} 4750
done
# Install EFI Firmware files (bug #320757)
pushd "${S}"/src/VBox/Devices/EFI/FirmwareBin &>/dev/null || die
for fwfile in VBoxEFI{32,64}.fd ; do
vbox_inst ${fwfile} 0644
done
popd &>/dev/null || die
# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
# VBoxXPCOMIPCD (bug #524202)
for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
pax-mark -m "${ED%/}"${vbox_inst_path}/${each}
done
# Symlink binaries to the shipped wrapper
for each in vbox{headless,manage} VBox{Headless,Manage,VRDP} ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
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 VBoxSDL 4750
pax-mark -m "${ED%/}"${vbox_inst_path}/VBoxSDL
for each in vboxsdl VBoxSDL ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
if use qt5 ; then
vbox_inst VirtualBox 4750
pax-mark -m "${ED%/}"${vbox_inst_path}/VirtualBox
if use opengl ; then
vbox_inst VBoxTestOGL
pax-mark -m "${ED%/}"${vbox_inst_path}/VBoxTestOGL
fi
for each in virtualbox VirtualBox ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
insinto /usr/share/${PN}
doins -r nls
doins -r UnattendedTemplates
newmenu "${FILESDIR}"/${PN}-ose.desktop-2 ${PN}.desktop
fi
pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
for size in 16 32 48 64 128 ; do
newicon -s ${size} ${PN}-${size}px.png ${PN}.png
done
newicon ${PN}-48px.png ${PN}.png
doicon -s scalable ${PN}.svg
popd &>/dev/null || die
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
# New way of handling USB device nodes for VBox (bug #356215)
local udevdir="$(get_udevdir)"
insinto ${udevdir}
doins VBoxCreateUSBNode.sh
fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh
fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
insinto ${udevdir}/rules.d
sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \
> "${T}"/10-virtualbox.rules || die
doins "${T}"/10-virtualbox.rules
fi
if use vboxwebsrv ; then
vbox_inst vboxwebsrv
dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
fi
# Fix version string in extensions or else they don't get accepted
# by the virtualbox host process (see bug #438930)
find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
| xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
|| die
if use vnc ; then
insinto ${vbox_inst_path}/ExtensionPacks
doins -r ExtensionPacks/VNC
fi
if use dtrace ; then
insinto ${vbox_inst_path}/ExtensionPacks
doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
fi
if use doc ; then
dodoc UserManual.pdf
fi
newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
}
pkg_postinst() {
gnome2_icon_cache_update
xdg_desktop_database_update
if use udev ; then
udevadm control --reload-rules \
&& udevadm trigger --subsystem-match=usb
fi
tmpfiles_process /usr/lib/tmpfiles.d/virtualbox-vboxusb.conf
if ! use headless && use qt5 ; then
elog "To launch VirtualBox just type: \"virtualbox\"."
fi
elog "You must be in the vboxusers group to use VirtualBox."
elog ""
elog "The latest user manual is available for download at:"
elog "http://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
elog ""
elog "For advanced networking setups you should emerge:"
elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
elog ""
elog "Starting with version 4.0.0, ${PN} has USB-1 support."
elog "For USB-2 support, PXE-boot ability and VRDP support please emerge"
elog " app-emulation/virtualbox-extpack-oracle"
elog "package."
elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and"
elog "the \"extension\" USE flag. For installation of the guest additions ISO"
elog "image, please emerge"
elog " app-emulation/virtualbox-additions"
elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge"
elog " app-emulation/virtualbox-extpack-oracle"
if ! use udev ; then
elog ""
elog "WARNING!"
elog "Without USE=udev, USB devices will likely not work in ${PN}."
elif [ -e "${ROOT%/}/etc/udev/rules.d/10-virtualbox.rules" ] ; then
elog ""
elog "Please remove \"${ROOT%/}/etc/udev/rules.d/10-virtualbox.rules\""
elog "or else USB in ${PN} won't work."
fi
}
pkg_postrm() {
gnome2_icon_cache_update
xdg_desktop_database_update
}

View File

@@ -0,0 +1,507 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8} )
inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
MY_PV="${PV/beta/BETA}"
MY_PV="${MY_PV/rc/RC}"
MY_P=VirtualBox-${MY_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/${MY_PV}/${MY_P}.tar.bz2
https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.0.22-patches-01.tar.xz"
LICENSE="GPL-2 dtrace? ( CDDL )"
SLOT="0"
[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64 ~x86"
IUSE="alsa debug doc dtrace headless java libressl lvm +opus pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
CDEPEND="
${PYTHON_DEPS}
!app-emulation/virtualbox-bin
acct-group/vboxusers
~app-emulation/virtualbox-modules-${PV}
dev-libs/libIDL
>=dev-libs/libxslt-1.1.19
net-misc/curl
dev-libs/libxml2
media-libs/libpng:0=
media-libs/libvpx:0=
sys-libs/zlib:=
!headless? (
media-libs/libsdl:0[X,video]
x11-libs/libX11
x11-libs/libxcb:=
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXmu
x11-libs/libXt
opengl? ( virtual/opengl media-libs/freeglut )
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
)
)
libressl? ( dev-libs/libressl:= )
!libressl? ( dev-libs/openssl:0= )
lvm? ( sys-fs/lvm2 )
opus? ( media-libs/opus )
udev? ( >=virtual/udev-171 )
vnc? ( >=net-libs/libvncserver-0.9.9 )
"
DEPEND="
${CDEPEND}
alsa? ( >=media-libs/alsa-lib-1.0.13 )
!headless? ( x11-libs/libXinerama )
pam? ( sys-libs/pam )
pax_kernel? ( sys-apps/elfix )
pulseaudio? ( media-sound/pulseaudio )
qt5? ( dev-qt/linguist-tools:5 )
vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
"
BDEPEND="
${PYTHON_DEPS}
>=dev-util/kbuild-0.1.9998.3127
>=dev-lang/yasm-0.6.2
sys-devel/bin86
sys-libs/libcap
sys-power/iasl
virtual/pkgconfig
doc? (
app-text/docbook-sgml-dtd:4.4
dev-texlive/texlive-basic
dev-texlive/texlive-latex
dev-texlive/texlive-latexrecommended
dev-texlive/texlive-latexextra
dev-texlive/texlive-fontsrecommended
dev-texlive/texlive-fontsextra
)
java? ( >=virtual/jdk-1.6 )
"
RDEPEND="
${CDEPEND}
java? ( >=virtual/jre-1.6 )
"
QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so
usr/lib/virtualbox/VBoxSDL.so
usr/lib/virtualbox/VBoxSharedFolders.so
usr/lib/virtualbox/VBoxDD2.so
usr/lib/virtualbox/VBoxOGLrenderspu.so
usr/lib/virtualbox/VBoxPython.so
usr/lib/virtualbox/VBoxDD.so
usr/lib/virtualbox/VBoxDDU.so
usr/lib/virtualbox/VBoxREM64.so
usr/lib/virtualbox/VBoxSharedClipboard.so
usr/lib/virtualbox/VBoxHeadless.so
usr/lib/virtualbox/VBoxRT.so
usr/lib/virtualbox/VBoxREM.so
usr/lib/virtualbox/VBoxSettings.so
usr/lib/virtualbox/VBoxKeyboard.so
usr/lib/virtualbox/VBoxSharedCrOpenGL.so
usr/lib/virtualbox/VBoxVMM.so
usr/lib/virtualbox/VirtualBox.so
usr/lib/virtualbox/VBoxOGLhosterrorspu.so
usr/lib/virtualbox/components/VBoxC.so
usr/lib/virtualbox/components/VBoxSVCM.so
usr/lib/virtualbox/components/VBoxDDU.so
usr/lib/virtualbox/components/VBoxRT.so
usr/lib/virtualbox/components/VBoxREM.so
usr/lib/virtualbox/components/VBoxVMM.so
usr/lib/virtualbox/VBoxREM32.so
usr/lib/virtualbox/VBoxPython2_7.so
usr/lib/virtualbox/VBoxXPCOMC.so
usr/lib/virtualbox/VBoxOGLhostcrutil.so
usr/lib/virtualbox/VBoxNetDHCP.so
usr/lib/virtualbox/VBoxNetNAT.so"
S="${WORKDIR}/${MY_P}"
REQUIRED_USE="
java? ( sdk )
python? ( sdk )
vboxwebsrv? ( java )
${PYTHON_REQUIRED_USE}
"
pkg_pretend() {
if ! use headless && ! use qt5 ; then
einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
elif use headless && use qt5 ; then
einfo "You selected USE=\"headless qt5\", defaulting to"
einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
fi
if ! use opengl ; then
einfo "No USE=\"opengl\" selected, this build will lack"
einfo "the OpenGL feature."
fi
if ! use python ; then
einfo "You have disabled the \"python\" USE flag. This will only"
einfo "disable the python bindings being installed."
fi
}
pkg_setup() {
java-pkg-opt-2_pkg_setup
python-single-r1_pkg_setup
tc-ld-disable-gold #bug 488176
tc-export CC CXX LD AR RANLIB
export HOST_CC="$(tc-getBUILD_CC)"
}
src_prepare() {
# Remove shipped binaries (kBuild,yasm), see bug #232775
rm -r kBuild/bin tools || die
# Replace pointless GCC version check with something less stupid.
# This is needed for the qt5 version check.
sed -e 's@^check_gcc$@cc_maj="$(gcc -dumpversion | cut -d. -f1)" ; cc_min="$(gcc -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
# Respect LDFLAGS
sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
# Do not use hard-coded ld (related to bug #488176)
sed -e '/QUIET)ld /s@ld @$(LD) @' \
-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
# Use PAM only when pam USE flag is enbaled (bug #376531)
if ! use pam ; then
elog "Disabling PAM removes the possibility to use the VRDP features."
sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
src/VBox/HostServices/Makefile.kmk || die
fi
# add correct java path
if use java ; then
sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-i "${S}"/Config.kmk || die
java-pkg-opt-2_src_prepare
fi
# Only add nopie patch when we're on hardened
if gcc-specs-pie ; then
eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch"
fi
# Only add paxmark patch when we're on pax_kernel
if use pax_kernel ; then
eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
fi
eapply "${WORKDIR}/patches"
eapply_user
}
doecho() {
echo "$@"
"$@" || die
}
src_configure() {
local myconf=(
--with-gcc="$(tc-getCC)"
--with-g++="$(tc-getCXX)"
--disable-dbus
--disable-kmods
$(usex alsa '' --disable-alsa)
$(usex debug --build-debug '')
$(usex doc '' --disable-docs)
$(usex java '' --disable-java)
$(usex lvm '' --disable-devmapper)
$(usex opus '' --disable-libopus)
$(usex pulseaudio '' --disable-pulse)
$(usex python '' --disable-python)
$(usex vboxwebsrv --enable-webservice '')
$(usex vnc --enable-vnc '')
)
if ! use headless ; then
myconf+=(
$(usex opengl '' --disable-opengl)
$(usex qt5 '' --disable-qt)
)
else
myconf+=(
--build-headless
--disable-opengl
)
fi
if use amd64 && ! has_multilib_profile ; then
myconf+=( --disable-vmmraw )
fi
# not an autoconf script
doecho ./configure ${myconf[@]}
}
src_compile() {
source ./env.sh || die
# Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
MAKE="kmk" emake \
VBOX_BUILD_PUBLISHER=_Gentoo \
TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
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
# *.rc files for x86_64 are only available on multilib systems
local rcfiles="*.rc"
if use amd64 && ! has_multilib_profile ; then
rcfiles=""
fi
for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} *so *r0 ${rcfiles} 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
if use pam ; then
# VRDPAuth only works with this (bug #351949)
dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
fi
# set an env-variable for 3rd party tools
echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
doenvd "${T}/90virtualbox"
if ! use headless ; then
vbox_inst rdesktop-vrdp
vbox_inst VBoxSDL 4750
pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
for each in vboxsdl VBoxSDL ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
if use qt5 ; then
vbox_inst VirtualBox
vbox_inst VirtualBoxVM 4750
for each in VirtualBox{,VM} ; do
pax-mark -m "${ED}"${vbox_inst_path}/${each}
done
if use opengl ; then
vbox_inst VBoxTestOGL
pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
fi
for each in virtualbox{,vm} VirtualBox{,VM} ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
insinto /usr/share/${PN}
doins -r nls
doins -r UnattendedTemplates
domenu ${PN}.desktop
fi
pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
for size in 16 32 48 64 128 ; do
newicon -s ${size} ${PN}-${size}px.png ${PN}.png
done
newicon ${PN}-48px.png ${PN}.png
doicon -s scalable ${PN}.svg
popd &>/dev/null || die
pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
for size in 16 24 32 48 64 72 96 128 256 512 ; do
for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
icofile="${PN}-${ico}-${size}px.png"
if [[ -f "${icofile}" ]] ; then
newicon -s ${size} ${icofile} ${PN}-${ico}.png
fi
done
done
popd &>/dev/null || die
fi
if use lvm ; then
vbox_inst VBoxVolInfo 4750
dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
fi
if use sdk ; then
insinto ${vbox_inst_path}
doins -r sdk
if use java ; then
java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
fi
fi
if use udev ; then
# New way of handling USB device nodes for VBox (bug #356215)
local udevdir="$(get_udevdir)"
insinto ${udevdir}
doins VBoxCreateUSBNode.sh
fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh
fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
insinto ${udevdir}/rules.d
sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \
> "${T}"/10-virtualbox.rules || die
doins "${T}"/10-virtualbox.rules
fi
if use vboxwebsrv ; then
vbox_inst vboxwebsrv
dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
fi
# Fix version string in extensions or else they don't get accepted
# by the virtualbox host process (see bug #438930)
find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
| xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
|| die
local extensions_dir="${vbox_inst_path}/ExtensionPacks"
if use vnc ; then
insinto ${extensions_dir}
doins -r ExtensionPacks/VNC
fi
if use dtrace ; then
insinto ${extensions_dir}
doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
fi
if use doc ; then
dodoc UserManual.pdf
fi
newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
}
pkg_preinst() {
xdg_pkg_preinst
}
pkg_postinst() {
xdg_pkg_postinst
if use udev ; then
udevadm control --reload-rules \
&& udevadm trigger --subsystem-match=usb
fi
tmpfiles_process /usr/lib/tmpfiles.d/virtualbox-vboxusb.conf
if ! use headless && use qt5 ; then
elog "To launch VirtualBox just type: \"virtualbox\"."
fi
elog "You must be in the vboxusers group to use VirtualBox."
elog ""
elog "The latest user manual is available for download at:"
elog "http://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
elog ""
elog "For advanced networking setups you should emerge:"
elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
elog ""
elog "Starting with version 4.0.0, ${PN} has USB-1 support."
elog "For USB-2 support, PXE-boot ability and VRDP support please emerge"
elog " app-emulation/virtualbox-extpack-oracle"
elog "package."
elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and"
elog "the \"extension\" USE flag. For installation of the guest additions ISO"
elog "image, please emerge"
elog " app-emulation/virtualbox-additions"
elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge"
elog " app-emulation/virtualbox-extpack-oracle"
if ! use udev ; then
elog ""
elog "WARNING!"
elog "Without USE=udev, USB devices will likely not work in ${PN}."
elif [[ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ]] ; then
elog ""
elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
elog "or else USB in ${PN} won't work."
fi
}
pkg_postrm() {
xdg_pkg_postrm
}

View File

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

View File

@@ -13,7 +13,7 @@ MY_P=VirtualBox-${MY_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/${MY_PV}/${MY_P}.tar.bz2
https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.14-patches-01.tar.xz"
https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.4-patches-01.tar.xz"
LICENSE="GPL-2 dtrace? ( CDDL )"
SLOT="0"