diff --git a/files/012-vboxsf-automount.patch b/files/012-vboxsf-automount.patch new file mode 100644 --- /dev/null +++ b/files/012-vboxsf-automount.patch @@ -0,0 +1,20 @@ +This ghetto patch attempts to fix shared folder automounting for guests running +Linux 4.16, and also suggests an alternative to mount.vboxsf. + +diff -uprb VirtualBox-5.2.8.orig/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp VirtualBox-5.2.8/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp +--- VirtualBox-5.2.8.orig/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp 2018-02-26 17:57:30.000000000 +0200 ++++ VirtualBox-5.2.8/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp 2018-04-07 21:00:05.785735622 +0300 +@@ -346,6 +346,13 @@ static int vbsvcAutoMountSharedFolder(co + "vboxsf", + fFlags, + &mntinf); ++ if (r == -1 && errno == EINVAL) ++ { ++ /* Mainline vboxsf accepts regular mount opts. */ ++ char mount_opts[1024]; ++ snprintf(mount_opts, 1024, "gid=%d,dmode=0770,fmode=0770", mntinf.gid); ++ r = mount(pszShareName, pszMountPoint, "vboxsf", fFlags, mount_opts); ++ } + if (r == 0) + { + VGSvcVerbose(0, "vbsvcAutoMountWorker: Shared folder '%s' was mounted to '%s'\n", pszShareName, pszMountPoint); diff --git a/files/additions_fix_4.17.patch b/files/additions_fix_4.17.patch deleted file mode 100644 --- a/files/additions_fix_4.17.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff -u -r VBox/src/VBox/Additions/linux/drm/vbox_ttm.c VBox-new/src/VBox/Additions/linux/drm/vbox_ttm.c ---- a/src/VBox/Additions/linux/drm/vbox_ttm.c -+++ b/src/VBox/Additions/linux/drm/vbox_ttm.c -@@ -209,8 +209,13 @@ - }; - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0) - static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev, - unsigned long size, - u32 page_flags, - struct page *dummy_read_page) -+#else -+static struct ttm_tt *vbox_ttm_tt_create(struct ttm_buffer_object *bo, -+ u32 page_flags) -+#endif - { - struct ttm_tt *tt; -@@ -221,5 +226,9 @@ - - tt->func = &vbox_tt_backend_func; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0) - if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { -+#else -+ if (ttm_tt_init(tt, bo, page_flags)) { -+#endif - kfree(tt); - return NULL; -@@ -402,5 +411,9 @@ - ret = ttm_bo_init(&vbox->ttm.bdev, &vboxbo->bo, size, - ttm_bo_type_device, &vboxbo->placement, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0) - align >> PAGE_SHIFT, false, NULL, acc_size, -+#else -+ align >> PAGE_SHIFT, false, acc_size, -+#endif - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) || defined(RHEL_73) - NULL, - diff --git a/files/series b/files/series --- a/files/series +++ b/files/series @@ -1,4 +1,4 @@ 010-qt-5.11.patch -additions_fix_4.17.patch gcc8.patch 0001-fixes-for-32-bit-build-with-kernel-4.18.patch +012-vboxsf-automount.patch diff --git a/package.yml b/package.yml --- a/package.yml +++ b/package.yml @@ -1,8 +1,9 @@ name : virtualbox version : 5.2.18 -release : 69 +release : 70 source : - https://download.virtualbox.org/virtualbox/5.2.18/VirtualBox-5.2.18.tar.bz2 : ed0a7efd56c7f39fae79c7ec3321473da412ef0d7914457b66f42679d513efcf + - git|https://github.com/jwrdegoede/vboxsf.git : 9451f61e6787e95aa51e42b6381db6b059bc49da license : GPL-2.0-only component : - virt @@ -89,10 +90,11 @@ - /usr/lib/python2.7 - /usr/lib64/virtualbox/sdk - current : /lib/modules/*.current/extra - - guest : /lib/modules/*.lts/misc + - guest : + - /lib/modules/*.lts/misc + - /sbin - guest-current : /lib/modules/*.current/misc - guest-common : - - /sbin - /usr/sbin - /usr/bin/VBoxClient - /usr/bin/VBoxControl @@ -205,7 +207,6 @@ cp -r sdk/bindings/{VirtualBox.xidl,auth,xpcom} $installdir/%libdir%/virtualbox/sdk/bindings # systemd stuffs - #install -D -m 00644 $pkgfiles/virtualbox.modules $installdir/%libdir%/modules-load.d/virtualbox.conf install -D -m 00644 $pkgfiles/virtualbox.sysusers $installdir/%libdir%/sysusers.d/virtualbox.conf install -D -m 00644 $pkgfiles/60-vboxdrv.rules $installdir/%libdir%/udev/rules.d/60-vboxdrv.rules install -D -m 00755 $pkgfiles/vboxdrv.sh $installdir/%libdir%/virtualbox/vboxdrv.sh @@ -225,12 +226,19 @@ install -D -m 00755 pam_vbox.so -t $installdir/lib/security install -D -m 00755 VBoxOGL*.so -t $installdir/%libdir%/vboxguestadditions - for kern in "%kernel_version_lts%" "%kernel_version_current%"; do - pushd ${kern} - install -d -m 00755 $installdir/lib/modules/${kern}/misc - install -m 00644 *.ko $installdir/lib/modules/${kern}/misc - popd - done + # lts kernel modules + pushd %kernel_version_lts% + install -d -m 00755 $installdir/lib/modules/%kernel_version_lts%/misc + install -m 00644 *.ko $installdir/lib/modules/%kernel_version_lts%/misc + popd + + # build vbosf module from git for current kernel until it is mainlined + cp -a $sources/vboxsf.git . + pushd vboxsf.git + sed "s|\`uname -r\`|%kernel_version_current%|" -i Makefile + %make + install -D -m 00644 vboxsf.ko $installdir/lib/modules/%kernel_version_current%/misc/vboxsf.ko + popd install -D -m 00644 $pkgfiles/vboxguest.modules $installdir/%libdir%/modules-load.d/vboxguest.conf install -D -m 00644 $pkgfiles/vboxguest.sysusers $installdir/%libdir%/sysusers.d/vboxguest.conf diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml --- a/pspec_x86_64.xml +++ b/pspec_x86_64.xml @@ -2,8 +2,8 @@ virtualbox - Bryan T. Meyers - bmeyers@datadrake.com + Pierre-Yves + pyu@riseup.net GPL-2.0-only virt @@ -19,7 +19,7 @@ virt - virtualbox-common + virtualbox-common /lib/modules/4.9.124-106.lts/extra/vboxdrv.ko @@ -332,13 +332,13 @@ virt - virtualbox-common + virtualbox-common - /lib/modules/4.18.5-88.current/extra/vboxdrv.ko - /lib/modules/4.18.5-88.current/extra/vboxnetadp.ko - /lib/modules/4.18.5-88.current/extra/vboxnetflt.ko - /lib/modules/4.18.5-88.current/extra/vboxpci.ko + /lib/modules/4.18.5-89.current/extra/vboxdrv.ko + /lib/modules/4.18.5-89.current/extra/vboxnetadp.ko + /lib/modules/4.18.5-89.current/extra/vboxnetflt.ko + /lib/modules/4.18.5-89.current/extra/vboxpci.ko @@ -348,8 +348,8 @@ programming.devel - virtualbox - virtualbox-common + virtualbox + virtualbox-common /usr/lib/python2.7/site-packages/vboxapi-1.0-py2.7.egg-info @@ -799,12 +799,13 @@ virt - virtualbox-guest-common + virtualbox-guest-common /lib/modules/4.9.124-106.lts/misc/vboxguest.ko /lib/modules/4.9.124-106.lts/misc/vboxsf.ko /lib/modules/4.9.124-106.lts/misc/vboxvideo.ko + /sbin/mount.vboxsf @@ -815,7 +816,6 @@ virt /lib/security/pam_vbox.so - /sbin/mount.vboxsf /usr/bin/VBoxClient /usr/bin/VBoxClient-all /usr/bin/VBoxControl @@ -842,21 +842,19 @@ virt - virtualbox-guest-common + virtualbox-guest-common - /lib/modules/4.18.5-88.current/misc/vboxguest.ko - /lib/modules/4.18.5-88.current/misc/vboxsf.ko - /lib/modules/4.18.5-88.current/misc/vboxvideo.ko + /lib/modules/4.18.5-89.current/misc/vboxsf.ko - + 2018-08-25 5.2.18 Packaging update - Bryan T. Meyers - bmeyers@datadrake.com + Pierre-Yves + pyu@riseup.net \ No newline at end of file