# Template file for 'virtualbox-ose' pkgname=virtualbox-ose version=6.0.4 revision=2 wrksrc="VirtualBox-${version%*a}" short_desc="General-purpose full virtualizer for x86 hardware" maintainer="Juan RP " license="GPL-2.0-only, CDDL-1.0" homepage="https://www.virtualbox.org" changelog="https://www.virtualbox.org/wiki/Changelog" distfiles="http://download.virtualbox.org/virtualbox/${version%*a}/VirtualBox-$version.tar.bz2" checksum=f80b0c68182c946fb74ada8034960c38159ad91085b153da1277e4f191af6e1f nopie=yes lib32disabled=yes only_for_archs="x86_64" hostmakedepends="acpica-utils dev86 perl pkg-config qt5-tools yasm" makedepends="device-mapper-devel docbook-xsl gsoap-devel libcap-devel libcurl-devel libIDL-devel libvpx-devel libXcomposite-devel libXcursor-devel libXinerama-devel libxslt-devel opus-devel pam-devel python-devel qt5-x11extras-devel SDL-devel xorg-server-devel" if [ "$XBPS_MACHINE" = "x86_64" ]; then makedepends+=" gcc-multilib" fi depends="virtualbox-ose-dkms-${version}_${revision} hicolor-icon-theme desktop-file-utils dbus" system_groups="vboxusers" pre_configure() { # Use our path for dri drivers. sed -e 's,/usr/lib64/dri:/usr/lib/dri:/usr/lib/x86_64-linux-gnu/dri,/usr/lib/xorg/modules/drivers,g' \ -i src/VBox/Additions/common/crOpenGL/fakedri_drv.c cp ${FILESDIR}/LocalConfig.kmk . ln -s /bin/echo makeself echo 'VBOX_USE_SYSTEM_GL_HEADERS=true' >> LocalConfig.kmk sed -i 's/^check_gcc$/#check_gcc/' configure } do_configure() { ./configure --disable-docs --disable-java --enable-vde \ --disable-python --disable-kmods --nofatal --enable-webservice } do_build() { export USERNAME="$(whoami)" sed -i -e "/webtest_LIBS/,/^webtest_/s/.*LIB_.*/\0 z/" \ -e "/vboxwebsrv_LIBS/,/^vboxwebsrv_/s/.*LIB_.*/\0 z/" src/VBox/Main/webservice/Makefile.kmk source ./env.sh kmk ${makejobs} KBUILD_VERBOSE=2 all } do_install() { local f _osedir _guestdir source ./env.sh # # virtualbox-ose. # cd ${wrksrc}/out/linux.$BUILD_PLATFORM_ARCH/release/bin mkdir -p ${DESTDIR}/usr/{bin,lib/virtualbox/components,share/virtualbox/nls} install -m0755 VBox.sh ${DESTDIR}/usr/bin/VBox for f in VirtualBox VBoxManage VBoxSDL VBoxHeadless \ VBoxBalloonCtrl vboxwebsrv; do ln -sf VBox ${DESTDIR}/usr/bin/${f} done # components install -m0755 components/* -t ${DESTDIR}/usr/lib/virtualbox/components # libs install -m0755 *.so ${DESTDIR}/usr/lib/virtualbox install -m0644 *.rc *.r0 *.fd ${DESTDIR}/usr/lib/virtualbox # setuid install -m4755 VBoxSDL VirtualBoxVM VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl \ VBoxNetNAT -t ${DESTDIR}/usr/lib/virtualbox install -m0755 VirtualBox VBoxManage VBoxSVC VBoxExtPackHelperApp \ VBoxXPCOMIPCD VBoxTestOGL VBoxBalloonCtrl vboxwebsrv webtest \ -t ${DESTDIR}/usr/lib/virtualbox # locales install -m0755 nls/*.qm -t ${DESTDIR}/usr/share/virtualbox/nls # scripts install -m0755 VBoxCreateUSBNode.sh VBoxSysInfo.sh \ -t ${DESTDIR}/usr/share/virtualbox # icons and desktop install -D -m0644 VBox.png ${DESTDIR}/usr/share/pixmaps/VBox.png install -D -m0644 virtualbox.desktop \ ${DESTDIR}/usr/share/applications/virtualbox.desktop sed -i -e "s|Icon=VBox|Icon=VBox.png|" \ ${DESTDIR}/usr/share/applications/virtualbox.desktop install -Dm644 virtualbox.xml \ ${DESTDIR}/usr/share/mime/packages/virtualbox.xml install -d ${DESTDIR}/usr/share/icons/hicolor for i in icons/*; do ldir=$(basename ${i}) install -d ${DESTDIR}/usr/share/icons/hicolor/${ldir}/mimetypes cp -a ${i}/* ${DESTDIR}/usr/share/icons/hicolor/${ldir}/mimetypes done # configuration file mkdir -p ${DESTDIR}/etc/vbox echo 'INSTALL_DIR=/usr/lib/virtualbox' > ${DESTDIR}/etc/vbox/vbox.cfg cd ${wrksrc}/out/linux.$BUILD_PLATFORM_ARCH/release/bin install -d ${DESTDIR}/usr/share/licenses/${pkgname} install -m0644 ${wrksrc}/COPYING* \ ${DESTDIR}/usr/share/licenses/${pkgname} # Install modules-load.d file. vinstall ${FILESDIR}/virtualbox.conf 644 usr/lib/modules-load.d vsv vboxwebsrv } virtualbox-ose-dkms_package() { short_desc+=" - kernel module sources for dkms" dkms_modules="virtualbox-ose ${version}" depends="dkms" noarch=yes pkg_install() { source ${wrksrc}/env.sh cd ${wrksrc}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src local _osedir=${PKGDESTDIR}/usr/src/${sourcepkg}-${version} install -d ${_osedir} cp -a . ${_osedir} rm -f ${_osedir}/do_dkms install -m644 ${FILESDIR}/${sourcepkg}-dkms.dkms ${_osedir}/dkms.conf vinstall ${FILESDIR}/${sourcepkg}-dkms.udev 644 \ usr/lib/udev/rules.d 60-virtualbox-ose-dkms.rules } } virtualbox-ose-guest_package() { lib32disabled=yes depends="virtualbox-ose-guest-dkms-${version}_${revision}" conflicts="xserver-abi-video>24_1" short_desc+=" - guest utilities" pkg_install() { source ${wrksrc}/env.sh cd ${wrksrc}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions vmkdir usr/bin install -m755 VBoxClient VBoxControl VBoxService ${PKGDESTDIR}/usr/bin install -m755 mount.vboxsf ${PKGDESTDIR}/usr/bin install -Dm755 ${wrksrc}/src/VBox/Additions/x11/Installer/98vboxadd-xclient \ ${PKGDESTDIR}/usr/bin/VBoxClient-all install -Dm755 ${wrksrc}/src/VBox/Additions/x11/Installer/vboxclient.desktop \ ${PKGDESTDIR}/etc/xdg/autostart/vboxclient.desktop cd ${wrksrc}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions install -d ${PKGDESTDIR}/usr/lib/xorg/modules/drivers install -m755 VBoxOGL*.so ${PKGDESTDIR}/usr/lib ln -sf /usr/lib/VBoxOGL.so \ ${PKGDESTDIR}/usr/lib/xorg/modules/drivers/vboxvideo_dri.so cd ${wrksrc}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions install -Dm755 pam_vbox.so ${PKGDESTDIR}/usr/lib/security/pam_vbox.so vinstall ${FILESDIR}/virtualbox-guest.conf 644 usr/lib/modules-load.d vsv vboxservice } } virtualbox-ose-guest-dkms_package() { short_desc+=" - guest addition module source for dkms" dkms_modules="virtualbox-ose-guest ${version}" depends="dkms" noarch=yes pkg_install() { source ${wrksrc}/env.sh cd ${wrksrc}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src local _guestdir=${PKGDESTDIR}/usr/src/${sourcepkg}-guest-${version} install -d ${_guestdir} cp -a . ${_guestdir} rm -f ${_guestdir}/do_dkms install -m644 ${FILESDIR}/${sourcepkg}-guest-dkms.dkms \ ${_guestdir}/dkms.conf vinstall ${FILESDIR}/${sourcepkg}-guest-dkms.udev 644 \ usr/lib/udev/rules.d 60-virtualbox-ose-guest-dkms.rules } }