aports/testing/virtualbox/APKBUILD
Díaz Urbaneja Víctor Diego Alejandro (Sodomon) d48dd8be9d testing/virtualbox: new aport
General-purpose full virtualizer for x86 hardware.
https://www.virtualbox.org
2024-06-21 07:04:08 +00:00

285 lines
8.9 KiB
Text

# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
pkgname=virtualbox
pkgver=6.1.50
pkgrel=0
pkgdesc="General-purpose full virtualizer for x86 hardware"
url="https://www.virtualbox.org"
arch="x86_64" # TODO
license="GPL-2.0-only AND CDDL-1.0"
install="$pkgname.pre-install"
depends="
alsa-lib
device-mapper-libs
glu
mesa
libcap
libcurl
libvpx
libxslt
libtpms
libxrandr
libxcursor
libxext
linux-pam
libxcb
lvm2
opus
qt5-qtbase
qt5-qtx11extras
qt5-qttools
sdl12-compat
$pkgname-modules-vboxdrv
$pkgname-modules-vboxnetadp
$pkgname-modules-vboxnetflt
"
makedepends="
alsa-lib-dev
bison
curl-dev
flex
glib-dev
glu-dev
iasl
kbuild
mesa-dev
libvncserver-dev
libcap-dev
libvpx-dev
libxcomposite-dev
libxinerama-dev
libxslt-dev
libxcursor-dev
libxrandr-dev
lvm2-dev
libxmu-dev
linux-pam-dev
opus-dev
pulseaudio-dev
qt5-qtbase-dev
qt5-qtx11extras-dev
qt5-qttools-dev
sdl12-compat-dev
xorg-server-dev
yasm
"
# !check: fails with validationkit-build-linux and the postcheck()
# textrels: for the .r0 and .fd files
options="!check textrels"
subpackages="$pkgname-modules-vboxdrv::noarch
$pkgname-modules-vboxnetadp::noarch
$pkgname-modules-vboxnetflt::noarch
"
source="$pkgname-$pkgver.tar.bz2::https://download.virtualbox.org/virtualbox/$pkgver/VirtualBox-$pkgver.tar.bz2
https://download.gnome.org/sources/libIDL/0.8/libIDL-0.8.14.tar.bz2
003-enable-internal-getproto-functions-for-musl.patch
013-Makefile.patch
019-libxml-2-12.patch
fix-libidl-and-binutils.patch
glibc-symvers.patch
musl-fix.patch
musl-no-glibc.patch
musl-off_t.patch
musl-dlmopen.patch
LocalConfig.kmk
virtualbox.conf
60-vboxdrv.rules
"
builddir="$srcdir/VirtualBox-$pkgver"
_srcmod="$builddir/out/linux.amd64/release/bin/src"
prepare() {
default_prepare
rm -rf $builddir/kBuild/bin $builddir/tools
cp "$srcdir"/LocalConfig.kmk LocalConfig.kmk
# require libIDL for fix broken compiling with vbox-xpcom
cd "$srcdir/libIDL-0.8.14"
update_config_sub
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=$builddir/libidl
make install
rm -r "$srcdir/libIDL-0.8.14"
}
build() {
unset LD_LIBRARY_PATH
./configure --nofatal \
--disable-docs \
--disable-kmods \
--disable-python \
--disable-hardening \
--disable-java \
--enable-vde \
--with-makeself=/bin/echo
source ./env.sh
LD_LIBRARY_PATH=libidl/lib/ kmk all
}
package() {
cd out/linux.amd64/release/bin
for dir in bin lib/virtualbox/components \
share/virtualbox; do
mkdir -p "$pkgdir"/usr/"$dir"
done
install -m0755 VBox.sh "$pkgdir"/usr/bin/VBox
for f in VirtualBox VBoxManage VBoxSDL VBoxHeadless \
VBoxBalloonCtrl; do
ln -sf VBox "$pkgdir/usr/bin/$f"
done
# components
install -m0755 components/* -t "$pkgdir"/usr/lib/virtualbox/components
strip "$pkgdir"/usr/lib/virtualbox/components/*.so
# libs
install -m0755 *.so "$pkgdir"/usr/lib/virtualbox
install -m0644 *.r0 *.fd "$pkgdir"/usr/lib/virtualbox
# bin
install -m0755 VBoxSDL VirtualBoxVM VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl \
VBoxNetNAT -t "$pkgdir"/usr/lib/virtualbox
install -m0755 VirtualBox VBoxManage VBoxSVC VBoxExtPackHelperApp \
VBoxXPCOMIPCD VBoxTestOGL VBoxBalloonCtrl \
-t "$pkgdir"/usr/lib/virtualbox
for f in VirtualBox VirtualBoxVM VBoxManage VBoxSDL VBoxHeadless \
VBoxBalloonCtrl VBoxNetAdpCtl VBoxNetDHCP VBoxNetNAT VBoxSVC \
VBoxExtPackHelperApp VBoxXPCOMIPCD; do
strip "$pkgdir"/usr/lib/virtualbox/$f
strip "$pkgdir"/usr/lib/virtualbox/*.so
done
# locales
install -d -m0755 "$pkgdir/usr/lib/virtualbox/nls"
install -m0755 nls/*.qm -t "$pkgdir/usr/lib/virtualbox/nls"
# scripts
install -m0755 VBoxCreateUSBNode.sh VBoxSysInfo.sh \
-t "$pkgdir"/usr/share/virtualbox
# icons and desktop
install -D -m0644 VBox.png "$pkgdir"/usr/share/pixmaps/VBox.png
install -D -m0644 virtualbox.desktop "$pkgdir"/usr/share/applications/virtualbox.desktop
sed -i -e "s|Icon=VBox|Icon=VBox.png|" \
"$pkgdir"/usr/share/applications/virtualbox.desktop
install -Dm644 virtualbox.xml "$pkgdir"/usr/share/mime/packages/virtualbox.xml
install -d "$pkgdir"/usr/share/icons/hicolor
for i in icons/*; do
ldir=$(basename "$i")
install -d "$pkgdir/usr/share/icons/hicolor/$ldir/mimetypes"
cp -a "$i"/* "$pkgdir/usr/share/icons/hicolor/$ldir/mimetypes"
done
# configuration file
mkdir -p "$pkgdir"/etc/vbox
echo 'INSTALL_DIR=/usr/lib/virtualbox' > "$pkgdir"/etc/vbox/vbox.cfg
# licenses
install -D -m0644 "$builddir"/COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -D -m0644 "$builddir"/COPYING.CDDL "$pkgdir/usr/share/licenses/$pkgname/LICENSE.CDDL"
# Install rules.d file.
install -Dm0644 "$srcdir"/60-vboxdrv.rules "$pkgdir"/usr/lib/udev/rules.d/60-vboxdrv.rules
# Install modules-load.d file.
install -Dm0644 "$srcdir"/virtualbox.conf "$pkgdir"/usr/lib/modules-load.d/virtualbox.conf
}
vboxdrv() {
pkgdesc="vboxdrv Kernel module source"
depends="akms"
mkdir -p "$subpkgdir"/usr/src/
cd $_srcmod
sed -i 's|obj ?= $(CURDIR)||g' "$_srcmod"/vboxdrv/Makefile
sed -i 's|include $(obj)/Makefile-header.gmk|include /usr/src/vboxdrv/Makefile-header.gmk|g' \
"$_srcmod"/vboxdrv/Makefile
sed -i 's|include $(obj)/Makefile-footer.gmk|include /usr/src/vboxdrv/Makefile-footer.gmk|g' \
"$_srcmod"/vboxdrv/Makefile
cat >vboxdrv/AKMBUILD <<-EOF
modname=vboxdrv
modver=$pkgver-r$pkgrel
built_modules='vboxdrv.ko'
EOF
# fix compiling vboxnetadp and vboxnetflt
echo -e 'build() {
make $MAKEFLAGS -C "$kernel_srcdir" M="$builddir" src="$srcdir" modules
cp $builddir/Module.symvers $srcdir\n}' >> vboxdrv/AKMBUILD
mv vboxdrv/ "$subpkgdir"/usr/src/
chmod 777 $subpkgdir/usr/src/vboxdrv/
}
vboxnetadp() {
pkgdesc="vboxnetadp Kernel module source"
depends="$pkgname-modules-vboxdrv"
mkdir -p "$subpkgdir"/usr/src/
cd $_srcmod
sed -i 's|obj ?= $(CURDIR)||g' "$_srcmod"/vboxnetadp/Makefile
sed -i 's|include $(obj)/Makefile-header.gmk|include /usr/src/vboxnetadp/Makefile-header.gmk|g' \
"$_srcmod"/vboxnetadp/Makefile
sed -i 's|include $(obj)/Makefile-footer.gmk|include /usr/src/vboxnetadp/Makefile-footer.gmk|g' \
"$_srcmod"/vboxnetadp/Makefile
cat >vboxnetadp/AKMBUILD <<-EOF
modname=vboxnetadp
modver=$pkgver-r$pkgrel
built_modules='vboxnetadp.ko'
EOF
mv vboxnetadp/ "$subpkgdir"/usr/src/
}
vboxnetflt() {
pkgdesc="vboxnetflt Kernel module source"
depends="$pkgname-modules-vboxdrv"
mkdir -p "$subpkgdir"/usr/src/
cd $_srcmod
sed -i 's|obj ?= $(CURDIR)||g' "$_srcmod"/vboxnetflt/Makefile
sed -i 's|include $(obj)/Makefile-header.gmk|include /usr/src/vboxnetflt/Makefile-header.gmk|g' \
"$_srcmod"/vboxnetflt/Makefile
sed -i 's|include $(obj)/Makefile-footer.gmk|include /usr/src/vboxnetflt/Makefile-footer.gmk|g' \
"$_srcmod"/vboxnetflt/Makefile
cat >vboxnetflt/AKMBUILD <<-EOF
modname=vboxnetflt
modver=$pkgver-r$pkgrel
built_modules='vboxnetflt.ko'
EOF
mv vboxnetflt/ "$subpkgdir"/usr/src/
}
sha512sums="
ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f virtualbox-6.1.50.tar.bz2
906dde087908acd64b209fe466a89ae52a6ea23601cb30092063a6e062b1b6640fc2d5f422efcdd52b2b36ce20e6c244da6205fde0bdcec787fe64058be7adac libIDL-0.8.14.tar.bz2
8b2088958c5fa824bb3f0f9f119b1fe2a0e119a2954cecfc2427aace8bdf9c1930b512c153fc1dedb03466aa1793f2fc27ba32b3d8da061e34a28c83dc309e28 003-enable-internal-getproto-functions-for-musl.patch
6c8d4df7b8304646a27a456f4d3373b43dbb1d3a352056e70257965ab6db5317ec78360c25ddb193cb99d515f9acbfd5e57821728f96cd8539f71ae70ff13ff6 013-Makefile.patch
6cbdea2fbe991a0b8fdee77664ff1e2a3f8846510d4723ea992de6a05ef04dc35c167dd2f104bc65301a5712a06010436d58bcb50eef51a5ea6280e6510219b4 019-libxml-2-12.patch
29e0e25ba85419c22a304db9b12f73bbd980670ec6cad51854097ad87f01a654db60a8c83c95ac5b1d8e2a657b3bc9ae7152bc85788c458a583821b54e11fe2b fix-libidl-and-binutils.patch
5e6ecb718b7239b9ca9c943d6427adf23b664156c91d8bce58747cfff8c975d221f2e3c1cd69790fd4c1d8b2425c2546bd77c187f666dc2f321ffeb8a06c7273 glibc-symvers.patch
166f059fd203ed51cb425c54bfdc466313934017864f3510fd39011845566b3e305d151a309d60eed122c51b4370896fa193d56c3f3553c2195cf5862ca0ce41 musl-fix.patch
1f8c8c1f5a0aedf84c1f3cd41c84d007d30e6502b0b8daaa60de3bee75c2bc0e1a259f6019f20eac40738ae39980e339d52467af6c99354d6909f94bfc701532 musl-no-glibc.patch
5ce315e0fdab8a3213d08150f4584c589c59f7c654c6525b6708dc2967b2382b3c231a2d4f8846dd218c1f576d8d8409302c16df07914583431d8817dc5172c4 musl-off_t.patch
19f6caaaee0004987cc4c4dd4a137a6364733ec1326f961b5755cd4c2968e9417e5e5ed62d05a6674c671caf9bfddd00a9ed97c2046b1f75fd1abdcb0cd9d475 musl-dlmopen.patch
b06318f77da986c59c96a37f1bf6c681f6eb70d8045b6678960315827f9419c00208d2165990792e12e9aad93abe280e417632a8eb40fdbb353f9d9950c0ed5c LocalConfig.kmk
7cafb7eb3166641a3dbec551a77f7e00d6da59bceaebba401e7c9b34259fab00aa8b1bdd33e9b7ac4c3531811bdea6ce056a1de2e0694f2e90f1984924fb656d virtualbox.conf
8f368adb7f7a90699c99d4df392d0539a4b3f23d83f6906a3aed7b3fd2ff011189934e415e2b4947e951893a6484812915ccaf7b8d4cf801fc66049371c1223f 60-vboxdrv.rules
"