# $Id: PKGBUILD 90797 2013-05-14 00:31:45Z seblu $ # Maintainer: Ionut Biru # Maintainer: Sébastien Luttringer # Maintainer (Parabola): André Silva # Contributor (Parabola): Nicolas Reynolds # Contributor (Parabola): Márcio Silva # Contributor (Parabola): Jorge López # Contributor (Parabola): Esteban Carnevale pkgbase=virtualbox-libre pkgname=('virtualbox-libre' 'virtualbox-libre-host-dkms' 'virtualbox-libre-guest-dkms' 'virtualbox-libre-sdk' 'virtualbox-libre-guest-utils') pkgver=4.2.12 pkgrel=3 arch=('i686' 'x86_64') url='http://virtualbox.org' license=('GPL' 'custom') makedepends=('alsa-lib' 'bin86' 'cdrkit' 'curl' 'dev86' 'device-mapper' 'glu' 'gsoap' 'iasl' 'jdk7-openjdk' 'libidl2' 'libpulse' 'libstdc++5' 'libxcomposite' 'libxcursor' 'libxinerama' 'libxml2' 'libxmu' 'libxrandr' 'libxslt' 'libxtst' 'linux-libre-headers' 'mesa' 'python2' 'qt4' 'sdl' 'sdl_ttf' 'vde2' 'xalan-c' 'xf86driproto' 'xorg-server-devel') [[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc') source=("http://download.virtualbox.org/virtualbox/$pkgver/VirtualBox-$pkgver.tar.bz2" '10-vboxdrv.rules' '60-vboxguest.rules' 'LocalConfig.kmk' 'vboxservice.service' 'vboxweb.service' '001-vboxdrv-reference.patch' '002-change_default_driver_dir.patch' '003-gcc-48.patch' '004-system-xorg.patch' 'os_blag_64.png' 'os_blag.png' 'os_dragora_64.png' 'os_dragora.png' 'os_dynebolic.png' 'os_gnewsense_64.png' 'os_gnewsense.png' 'os_gnu_64.png' 'os_gnu.png' 'os_musix_64.png' 'os_musix.png' 'os_parabola_64.png' 'os_parabola.png' 'os_trisquel_64.png' 'os_trisquel.png' 'os_ututo_64.png' 'os_ututo.png' 'os_venenux.png' 'libre.patch' 'free-distros.patch') md5sums=('654e45054ae6589452508d37403dc800' '5f85710e0b8606de967716ded7b2d351' 'ed1341881437455d9735875ddf455fbe' '58d6e5bb4b4c1c6f3f0b3daa6aaeed03' '07c5f6d86c4b7839d719c8ee0c53653b' 'bc9efed88e0469cd7fc460d5a5cd7b4b' 'f4e4c7895ede9c524109589bf16ae660' '97e193f050574dd272a38e5ee5ebe62b' '7cf8611ae5850b86323b690e430eeed7' '4da461f8c90caa123b47c62479f426b4' '8538dba8686d7449cb481c9bae9d722a' '545c925b46f2ac95e5f8ae407fad101a' 'f6416f509c2e5460e4dc624e0a57f3c1' 'bbfb59dd517c020a23701b480187a355' 'efacfdb61918286ea9bc89866b8fd239' '7c3eb09995e8bafeef414374e44ad4ce' 'a49ed3ab6bd0fb084de0ab3dd97ae93e' '6b432b3305ed446125eef052c38355a6' 'a70022a468bd3e9daf01818d2d74ac3c' '380eb2ab6cad3da198094585853c129c' 'a60bb9a98abcc3c34156f9051d00df9a' '3a908ef6952bcf987e63ef2fe4e98d24' '02e87c39c353634cecacf98f1707fa15' '0cf41a41e7a415d404d5584e047fd450' '449cde3b58390284b59c5d663de3edc9' 'c7951fe6888d939f3a7d0dafe477e82b' '4da8eeb2ece7e475fc7a0d1003da26c6' '5e4187af59726d71c5be48d0cd816c34' '17fca4ba3a751c8a1db19b92b1820462' '50387fba578646a9d29de3f917a199d2') prepare() { cd "VirtualBox-$pkgver" # Apply patches for _p in "$srcdir"/*.patch; do [[ -e $_p ]] || continue msg2 "Apply patch ${_p##*/}" patch -Np1 -i "$_p" done ## Removing Nonfree directories and Nonfree files rm -rv "./include/VBox/ExtPack" rm -rv "./src/VBox/ExtPacks" rm -rv "./src/VBox/Main/src-helper-apps" rm -rv "./src/VBox/Main/include/ExtPackManagerImpl.h" rm -rv "./src/VBox/Main/include/ExtPackUtil.h" rm -rv "./src/VBox/Main/src-all/ExtPackManagerImpl.cpp" rm -rv "./src/VBox/Main/src-all/ExtPackUtil.cpp" ## Removing Oracle VM VirtualBox Extension Pack icons rm -v "./src/VBox/Resources/darwin/virtualbox-vbox-extpack.icns" rm -v "./src/VBox/Resources/other/virtualbox-vbox-extpack-"{16px,20px,24px,32px,40px,48px,64px,72px,80px,96px,128px,256px,512px}.png rm -v "./src/VBox/Resources/win/OSE/virtualbox-vbox-extpack.ico" rm -v "./src/VBox/Frontends/VirtualBox/images/extension_pack_"{16px,32px,disabled{_16px,_32px},install{_16px,_32px},install_disabled{_16px,_32px},uninstall{_16px,_32px},uninstall_disabled{_16px,_32px}}.png ## Adding free distros icons for i in {dynebolic,venenux,{gnu,parabola,gnewsense,blag,dragora,ututo,musix,trisquel}{,_64}}; do cp -v "$srcdir/os_${i}.png" "./src/VBox/Frontends/VirtualBox/images" done } build() { cd "VirtualBox-$pkgver" cp "$srcdir/LocalConfig.kmk" . # fake makeself binary to compile without nofatal ln -s /bin/echo makeself export PATH="$CWD:$PATH" ./configure --disable-docs \ --enable-webservice \ --enable-vde \ --disable-kmods source ./env.sh kmk all # fix python2 sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' "out/linux.$BUILD_PLATFORM_ARCH/release/bin/vboxshell.py" # build rdesktop-vrdp (broken from LocalConfig.kmk) pushd src/VBox/RDP/client cp "$srcdir/LocalConfig.kmk" . # fix keymap path FS#32548 sed -i 's:/opt/VirtualBox:/usr/share/virtualbox:' Makefile.kmk kmk all popd } package_virtualbox-libre() { pkgdesc='Powerful x86 virtualization for enterprise as well as home use, with free distros presets (nonfree Extension Pack and Guest Additions ISO image support removed)' depends=('curl' 'libpng' 'libxcursor' 'libxinerama' 'libxml2' 'libxmu' 'sdl' 'shared-mime-info' 'virtualbox-libre-host-modules') optdepends=('qt4: VirtualBox GUI support' 'vde2: Virtual Distributed Ethernet support' 'virtualbox-libre-sdk: Developer kit' 'virtualbox-libre-host-dkms: Host kernel source modules for non-stock kernels' 'net-tools: Host-only or bridged networking support') backup=('etc/vbox/vbox.cfg') replaces=('virtualbox' 'virtualbox-ose') conflicts=('virtualbox' 'virtualbox-ose') provides=("virtualbox=$pkgver") install=virtualbox-libre.install source "VirtualBox-$pkgver/env.sh" cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin" install -dm755 "$pkgdir"/usr/{bin,lib/virtualbox/components,share/virtualbox/nls,share/virtualbox/rdesktop-vrdp-keymaps} #Binaries and Wrapper with Launchers install -m 0755 VBox.sh "$pkgdir/usr/bin/VBox" for i in VBoxHeadless VBoxManage VBoxSDL VirtualBox vboxwebsrv VBoxBalloonCtrl; do ln -sf VBox "$pkgdir/usr/bin/$i" ln -sf VBox "$pkgdir/usr/bin/${i,,}" done install -m 0755 VBoxTunctl "$pkgdir/usr/bin" install -m 0755 rdesktop-vrdp "$pkgdir/usr/bin" #components install -m 0755 components/* -t "$pkgdir/usr/lib/virtualbox/components" #lib install -m 0755 *.so "$pkgdir/usr/lib/virtualbox" install -m 0644 *.gc *.r0 VBoxEFI*.fd "$pkgdir/usr/lib/virtualbox" #setuid root binaries install -m 4755 VBoxSDL VirtualBox VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl -t "$pkgdir/usr/lib/virtualbox" #other binaries install -m 0755 VBoxManage VBoxSVC VBoxXPCOMIPCD VBoxTestOGL VBoxBalloonCtrl vboxwebsrv webtest -t "$pkgdir/usr/lib/virtualbox" #language install -m 0755 nls/*.qm -t "$pkgdir/usr/share/virtualbox/nls" #rdesktop keymaps install -m 0644 rdesktop-vrdp-keymaps/* "$pkgdir/usr/share/virtualbox/rdesktop-vrdp-keymaps" #useless scripts install -m 0755 VBoxCreateUSBNode.sh VBoxSysInfo.sh -t "$pkgdir/usr/share/virtualbox" #icons install -D -m 0644 VBox.png "$pkgdir/usr/share/pixmaps/VBox.png" pushd icons for i in *; do install -d "$pkgdir/usr/share/icons/hicolor/$i/mimetypes" cp $i/* "$pkgdir/usr/share/icons/hicolor/$i/mimetypes" done popd #desktop install -D -m 0644 virtualbox.desktop "$pkgdir/usr/share/applications/virtualbox.desktop" install -D -m 0644 virtualbox.xml "$pkgdir/usr/share/mime/packages/virtualbox.xml" #install configuration mkdir -p "$pkgdir/etc/vbox" echo 'INSTALL_DIR=/usr/lib/virtualbox' > "$pkgdir/etc/vbox/vbox.cfg" #udev and licence install -D -m 0644 "$srcdir/VirtualBox-${pkgver}/COPYING" \ "$pkgdir/usr/share/licenses/virtualbox/LICENSE" install -D -m 0644 "$srcdir/10-vboxdrv.rules" \ "$pkgdir/usr/lib/udev/rules.d/10-vboxdrv.rules" # install systemd service install -D -m644 "$srcdir/vboxweb.service" \ "$pkgdir/usr/lib/systemd/system/vboxweb.service" } package_virtualbox-libre-sdk() { pkgdesc='VirtualBox Software Developer Kit (SDK)' depends=('python2') replaces=('virtualbox-sdk') conflicts=('virtualbox-sdk') provides=("virtualbox-sdk=$pkgver") install -dm755 "$pkgdir/usr/lib/virtualbox" source "VirtualBox-$pkgver/env.sh" cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin" install -D -m 0755 vboxshell.py "$pkgdir/usr/lib/virtualbox/vboxshell.py" #python sdk pushd sdk/installer VBOX_INSTALL_PATH="/usr/lib/virtualbox" python2 vboxapisetup.py install --root "$pkgdir" popd rm -rf sdk/installer mv sdk "$pkgdir/usr/lib/virtualbox" } package_virtualbox-libre-host-dkms() { pkgdesc='VirtualBox Host kernel modules sources' depends=('dkms' 'gcc' 'make') provides=("virtualbox-host-dkms=$pkgver" 'virtualbox-libre-host-modules') replaces=('virtualbox-host-dkms' 'virtualbox-source' 'virtualbox-libre-source' 'virtualbox-host-source' 'virtualbox-libre-host-source') conflicts=('virtualbox-host-dkms' 'virtualbox-source' 'virtualbox-libre-source' 'virtualbox-host-source' 'virtualbox-libre-host-source') optdepends=('linux-libre-headers' 'linux-libre-lts-headers') install=virtualbox-libre-host-dkms.install install -dm755 "$pkgdir/usr/src" source "VirtualBox-$pkgver/env.sh" cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin" cp -r src "$pkgdir/usr/src/vboxhost-$pkgver" } package_virtualbox-libre-guest-dkms() { pkgdesc='VirtualBox Guest kernel modules sources' depends=('dkms' 'gcc' 'make') provides=("virtualbox-guest-dkms=$pkgver" 'virtualbox-libre-guest-modules') replaces=('virtualbox-guest-dkms' 'virtualbox-archlinux-source' 'virtualbox-parabola-source' 'virtualbox-guest-source' 'virtualbox-libre-guest-source') conflicts=('virtualbox-guest-dkms' 'virtualbox-archlinux-source' 'virtualbox-parabola-source' 'virtualbox-guest-source' 'virtualbox-libre-guest-source') optdepends=('linux-libre-headers' 'linux-libre-lts-headers') install=virtualbox-libre-guest-dkms.install install -dm755 "$pkgdir/usr/src" source "VirtualBox-$pkgver/env.sh" cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions" cp -r src "$pkgdir/usr/src/vboxguest-$pkgver" } package_virtualbox-libre-guest-utils(){ pkgdesc='VirtualBox Guest userspace utilities' depends=('virtualbox-libre-guest-modules' 'gcc-libs' 'libxmu' 'xorg-xrandr' 'libxfixes') optdepends=('virtualbox-libre-guest-dkms: Guest kernel source modules for non-stock kernels') provides=("virtualbox-guest-utils=$pkgver") replaces=('virtualbox-guest-utils' 'virtualbox-archlinux-additions' 'virtualbox-parabola-additions' 'virtualbox-guest-additions' 'virtualbox-libre-guest-additions') conflicts=('virtualbox-guest-utils' 'virtualbox-archlinux-additions' 'virtualbox-parabola-additions' 'virtualbox-guest-additions' 'virtualbox-libre-guest-additions') install=virtualbox-libre-guest-utils.install source "VirtualBox-$pkgver/env.sh" pushd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions" install -d "$pkgdir"/{usr/bin,sbin} install -m755 VBoxClient VBoxControl VBoxService mount.vboxsf "$pkgdir/usr/bin" install -m755 -D "$srcdir"/VirtualBox-$pkgver/src/VBox/Additions/x11/Installer/98vboxadd-xclient \ "$pkgdir"/usr/bin/VBoxClient-all install -m755 -D "$srcdir"/VirtualBox-$pkgver/src/VBox/Additions/x11/Installer/vboxclient.desktop \ "$pkgdir"/etc/xdg/autostart/vboxclient.desktop install -D vboxvideo_drv.so \ "$pkgdir/usr/lib/xorg/modules/drivers/vboxvideo.so" install -d "$pkgdir/usr/lib/xorg/modules/dri" install -m755 VBoxOGL*.so "$pkgdir/usr/lib" ln -s /usr/lib/VBoxOGL.so "$pkgdir/usr/lib/xorg/modules/dri/vboxvideo_dri.so" install -m755 -D pam_vbox.so "$pkgdir/usr/lib/security/pam_vbox.so" popd # install udev rules install -D -m 0644 60-vboxguest.rules \ "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules" # install systemd service file install -D -m644 vboxservice.service \ "$pkgdir/usr/lib/systemd/system/vboxservice.service" } # vim:set ts=4 sw=4 et: