Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=f5d26f9a5a4c8e5a59129dcec7fd9e7fccb589c8
commit f5d26f9a5a4c8e5a59129dcec7fd9e7fccb589c8 Author: DeX77 <[email protected]> Date: Wed May 10 17:56:18 2017 +0200 virtualbox-5.1.22-2-x86_64 + add vbox guest additions subpkg * build host kernel module in main virtualbox package: don't do source duplication diff --git a/source/xapps-extra/virtualbox/60-vboxguest.rules b/source/xapps-extra/virtualbox/60-vboxguest.rules new file mode 100644 index 0000000..6285f72 --- /dev/null +++ b/source/xapps-extra/virtualbox/60-vboxguest.rules @@ -0,0 +1,2 @@ +ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600" +ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666" diff --git a/source/xapps-extra/virtualbox/FrugalBuild b/source/xapps-extra/virtualbox/FrugalBuild index a6ba78c..8d42383 100644 --- a/source/xapps-extra/virtualbox/FrugalBuild +++ b/source/xapps-extra/virtualbox/FrugalBuild @@ -13,21 +13,26 @@ pkgname=virtualbox realname=VirtualBox pkgver=5.1.22 pkgextra= -pkgrel=1 +pkgrel=2 pkgdesc="Oracle VirtualBox is a family of powerful x86 virtualization products for enterprise as well as home use." url="http://www.virtualbox.org" depends=('xerces-c>=2.8.0' 'xalan-c>=1.10.0-2' 'iasl' 'dev86' 'libxslt' 'libxcursor' 'libidl' 'sdl' \ 'alsa-lib' 'curl' 'libxmu' 'libuuid' 'libcap' 'qt5-base>=5.7.1-2' 'qt5-x11extras>=5.7.1-2' \ 'libvpx>=1.6.0' 'lvm2' 'libgl' 'libxext' 'libx11' 'libpulse' 'libglu' 'libxrandr' 'libxcomposite' \ - 'libxinerama') + 'libxinerama' 'libvncserver') makedepends=('cdrtools' 'x11-protos' 'qt5-tools' 'mesa-libgl-headers') rodepends=("virtualbox-modules=$pkgver") groups=('xapps-extra') archs=('x86_64') up2date="lynx -dump http://download.virtualbox.org/virtualbox/LATEST.TXT | head -n 1" source=(http://download.virtualbox.org/virtualbox/${pkgver}/${realname}-${pkgver}${pkgextra}.tar.bz2 \ - 10-vboxdrv.rules - LocalConfig.kmk) + 10-vboxdrv.rules \ + LocalConfig.kmk \ + 60-vboxguest.rules \ + vboxservice.service \ + virtualbox-guest-utils.conf ) + +Finclude kernel-module ## WARNING: ## It seems something gets misscompiled *again* with gcc6 .. @@ -41,9 +46,16 @@ options=('scriptlet' 'genscriptlet' 'nostrip') ## we strip manually in build() _F_cd_path="${realname}-${pkgver}" sha1sums=('57e6f73f62af7d5ddb670972ba0417b6fcb43950' \ 'aa931ae19edd8585150738f0efd8fedf5175a6d3' \ - '5e66ffd4607dafd9b55dc2b6e7591ef6892d4d49') + '5e66ffd4607dafd9b55dc2b6e7591ef6892d4d49' \ + '08199d8e7906cb793277b798805d38ce386460d8' \ + '142f64efb9532f5ff4faa4df6b93f591be2ce564' \ + '80ba54b1e13f0e8f53a84ca3f25df617fb53ae4c') -## FIXME/TODO: GUEST STUUF!!! +subpkgs=("$pkgname-modules" "$pkgname-guest-additions") +subdescs=('Kernel modules for VirtualBox' 'VirtualBox guest Additions') +subarchs=('x86_64' 'x86_64') +subgroups=('apps-extra' 'xapps-extra') +subdepends=('' 'libxcomposite libxdamage libxrandr libxmu pam') build() { @@ -66,11 +78,6 @@ build() { echo "VBOX_GCC_OPT=$CXXFLAGS" >> LocalConfig.kmk ## DO NOT REMOVE - ## we'll add an separate package for this OR we split here - ## however we don't use these by now so we don't want to build these - - echo "VBOX_WITHOUT_ADDITIONS := 1" >> LocalConfig.kmk - if Fuse $USE_VBOX_DEBUG; then VBoxBuildType="debug" VBox_Opts="-d" @@ -85,6 +92,8 @@ build() { Fexec ./configure \ --disable-docs \ --disable-kmods \ + --enable-vde \ + --enable-vnc \ --enable-pulse ${VBox_Opts} || Fdie Fexec source ./env.sh || Fdie @@ -169,6 +178,76 @@ build() { strip -s $s done fi + + # host kernel modules + Fexec cd $Fsrcdir/${_F_cd_path}/out/linux.amd64/release/bin/src || Fdie + Fmkdir ${_F_kernelmod_dir}/kernel/misc + + Fexec make KERN_DIR=${_F_kernelmod_dir}/build MODULE_DIR_TST=${Fdestdir}/${_F_kernelmod_dir} \ + MODULE_DIR=${Fdestdir}/${_F_kernelmod_dir}/kernel/misc || Fdie + Fexec make KERN_DIR=${_F_kernelmod_dir}/build MODULE_DIR_TST=${Fdestdir}/${_F_kernelmod_dir} \ + MODULE_DIR=${Fdestdir}/${_F_kernelmod_dir}/kernel/misc INSTALL_MOD_PATH=${Fdestdir} install || Fdie + + #cleanup first + rm -rf fw_tmp || Fdie + mkdir fw_tmp || Fdie + + cd fw_tmp || Fdie + + Fbuild_kernelmod_scriptlet + + Fkernelver_compress_modules + + Fsplit virtualbox-modules ${_F_kernelmod_dir}/kernel/misc + + # guest additions + Fexec cd $Fsrcdir/${_F_cd_path}/out/linux.amd64/release/bin/additions || Fdie + Fexerel usr/bin/VBoxClient + Fexerel usr/bin/VBoxControl + Fexerel usr/bin/VBoxService + Fexerel usr/bin/mount.vboxsf + Fexe ${_F_cd_path}/src/VBox/Additions/x11/Installer/98vboxadd-xclient usr/bin/VBoxClient-all + + Fsplit virtualbox-guest-additions usr/bin/{VBoxClient,VBoxControl,VBoxService,mount.vboxsf,VBoxClient-all} + + Fexe ${_F_cd_path}/src/VBox/Additions/x11/Installer/vboxclient.desktop etc/xdg/autostart/vboxclient.desktop + Fsplit virtualbox-guest-additions etc/xdg + + Finstallrel 755 usr/lib/VBoxOGL\*.so + Fln /usr/lib/VBoxOGL.so usr/lib/xorg/modules/dri/vboxvideo_dri.so + Fsplit virtualbox-guest-additions usr/lib/VBoxOGL*.so + Fsplit virtualbox-guest-additions usr/lib/xorg/ + + Finstallrel 755 lib/security/pam_vbox.so + + # TODO remove after systemd is gone + Finstall 644 lib/udev/rules.d/60-vboxguest.rules + Finstall 644 lib/systemd/system/vboxservice.service + Finstall 644 usr/lib/sysusers.d/virtualbox-guest-utils.conf + Fsplit virtualbox-guest-additions usr/lib/sysusers.d/ + + # guest kernel modules + Fexec cd $Fsrcdir/${_F_cd_path}/out/linux.amd64/release/bin/additions/src || Fdie + Fmkdir ${_F_kernelmod_dir}/kernel/misc + + Fexec make KERN_DIR=${_F_kernelmod_dir}/build MODULE_DIR_TST=${Fdestdir}/${_F_kernelmod_dir} \ + MODULE_DIR=${Fdestdir}/${_F_kernelmod_dir}/kernel/misc || Fdie + Fexec make KERN_DIR=${_F_kernelmod_dir}/build MODULE_DIR_TST=${Fdestdir}/${_F_kernelmod_dir} \ + MODULE_DIR=${Fdestdir}/${_F_kernelmod_dir}/kernel/misc INSTALL_MOD_PATH=${Fdestdir} install || Fdie + + #cleanup first + rm -rf fw_tmp || Fdie + mkdir fw_tmp || Fdie + + cd fw_tmp || Fdie + + Fbuild_kernelmod_scriptlet + + Fkernelver_compress_modules + Fsplit virtualbox-guest-additions lib/modules/ + Fsplit virtualbox-guest-additions lib/security/ + Fsplit virtualbox-guest-additions lib/systemd/ + Fsplit virtualbox-guest-additions lib/udev/rules.d/60-vboxguest.rules } # optimization OK diff --git a/source/xapps-extra/virtualbox/vboxservice.service b/source/xapps-extra/virtualbox/vboxservice.service new file mode 100644 index 0000000..7e0c87f --- /dev/null +++ b/source/xapps-extra/virtualbox/vboxservice.service @@ -0,0 +1,12 @@ +[Unit] +Description=VirtualBox Guest Service +ConditionVirtualization=oracle + +[Service] +ExecStartPre=-/usr/bin/modprobe vboxguest +ExecStartPre=-/usr/bin/modprobe vboxvideo +ExecStartPre=-/usr/bin/modprobe vboxsf +ExecStart=/usr/bin/VBoxService -f + +[Install] +WantedBy=multi-user.target diff --git a/source/xapps-extra/virtualbox/virtualbox-guest-utils.conf b/source/xapps-extra/virtualbox/virtualbox-guest-utils.conf new file mode 100644 index 0000000..12453ad --- /dev/null +++ b/source/xapps-extra/virtualbox/virtualbox-guest-utils.conf @@ -0,0 +1 @@ +g vboxsf 109 - _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
