fix udev rule for usb support; require user in vboxusers [release 5.0.2-2mamba;Wed Aug 26 2015]

This commit is contained in:
Silvan Calarco 2024-01-05 17:54:48 +01:00
parent aa21faa0b0
commit 5bc1f50c70

View File

@ -17,8 +17,8 @@
%endif %endif
Name: VirtualBox Name: VirtualBox
Version: 4.3.28 Version: 5.0.2
Release: 1mamba Release: 2mamba
Summary: A general-purpose full virtualizer for x86 hardware Summary: A general-purpose full virtualizer for x86 hardware
Group: Graphical Desktop/Applications/Utilities Group: Graphical Desktop/Applications/Utilities
Vendor: openmamba Vendor: openmamba
@ -156,7 +156,7 @@ Kernel DRM driver for VirtualBox guest machines.
#%patch1 -p1 #%patch1 -p1
#%patch2 -p1 #%patch2 -p1
#%patch4 -p1 #%patch4 -p1
%patch3 -p1 #%patch3 -p1
%patch5 -p1 %patch5 -p1
%build %build
@ -181,7 +181,13 @@ export CXXFLAGS="%optflags"
kmk %{?_smp_mflags} VBOX_GCC_WERR= \ kmk %{?_smp_mflags} VBOX_GCC_WERR= \
VBOX_VERSION_STRING='$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)'_openmamba \ VBOX_VERSION_STRING='$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)'_openmamba \
VBOX_JAVA_HOME=%{_jvmdir}/jdk \ VBOX_JAVA_HOME=%{_jvmdir}/jdk \
EB_LD=ld.bfd EB_LD=ld.bfd || true
# workaround
kmk VBOX_GCC_WERR= \
VBOX_VERSION_STRING='$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)'_openmamba \
VBOX_JAVA_HOME=%{_jvmdir}/jdk \
EB_LD=ld.bfd || true
## files that needs editing before they can be included in the generic installer. ## files that needs editing before they can be included in the generic installer.
#sed "s|\%NOLSB\%|yes|g; \ #sed "s|\%NOLSB\%|yes|g; \
@ -198,51 +204,49 @@ kmk %{?_smp_mflags} VBOX_GCC_WERR= \
%install %install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" [ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
install -d %{buildroot}/opt/%{name} install -d %{buildroot}%{_libdir}/%{name}
cp -a out/*/release/bin/* %{buildroot}/opt/%{name} cp -a out/*/release/bin/* %{buildroot}%{_libdir}/%{name}/
cp -a out/*/release/obj/VirtualBox/VirtualBox %{buildroot}%{_libdir}/%{name}/
install -d %{buildroot}%{_libdir}/xorg/modules/drivers install -d %{buildroot}%{_libdir}/xorg/modules/drivers
mv %{buildroot}/opt/%{name}/additions/vboxvideo_drv_%{xorgdrvver}.so %{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so mv %{buildroot}%{_libdir}/%{name}/additions/vboxvideo_drv_%{xorgdrvver}.so %{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
rm -f %{buildroot}/opt/%{name}/additions/vboxvideo_drv* rm -f %{buildroot}%{_libdir}/%{name}/additions/vboxvideo_drv*
install -d %{buildroot}%{_libdir}/dri install -d %{buildroot}%{_libdir}/dri
mv %{buildroot}/opt/%{name}/additions/VBoxOGL.so %{buildroot}%{_libdir}/dri/vboxvideo_dri.so mv %{buildroot}%{_libdir}/%{name}/additions/VBoxOGL.so %{buildroot}%{_libdir}/dri/vboxvideo_dri.so
#install -d %{buildroot}%{_libdir}/xorg/modules/input #install -d %{buildroot}%{_libdir}/xorg/modules/input
#mv %{buildroot}/opt/%{name}/additions/vboxmouse_drv_%{xorgdrvver}.so* %{buildroot}%{_libdir}/xorg/modules/input/vboxmouse_drv.so #mv %{buildroot}%{_libdir}/%{name}/additions/vboxmouse_drv_%{xorgdrvver}.so* %{buildroot}%{_libdir}/xorg/modules/input/vboxmouse_drv.so
rm -f %{buildroot}/opt/%{name}/additions/vboxmouse_drv* rm -f %{buildroot}%{_libdir}/%{name}/additions/vboxmouse_drv*
# install desktop menu icon # install desktop menu icon
install -d %{buildroot}%{_datadir}/pixmaps/ install -d %{buildroot}%{_datadir}/pixmaps/
cp %{buildroot}/opt/%{name}/VBox.png %{buildroot}%{_datadir}/pixmaps/VBox.png cp %{buildroot}%{_libdir}/%{name}/VBox.png %{buildroot}%{_datadir}/pixmaps/VBox.png
# install service
install -D -m 755 %{S:2} %{buildroot}%{_initrddir}/%{name}
## install modprobe file ## install modprobe file
#install -D -m 644 %{S:5} %{buildroot}%{_sysconfdir}/modprobe.d/vboxdrv.conf #install -D -m 644 %{S:5} %{buildroot}%{_sysconfdir}/modprobe.d/vboxdrv.conf
# fixup strange shared library permissions # fixup strange shared library permissions
for library in $(find %{buildroot}/opt/%{name} -name \*.so); do for library in $(find %{buildroot}%{_libdir}/%{name} -name \*.so); do
chmod 755 $library chmod 755 $library
done done
# install wrappers # install wrappers
install -d %{buildroot}%{_sysconfdir}/vbox install -d %{buildroot}%{_sysconfdir}/vbox
cat > %{buildroot}%{_sysconfdir}/vbox/vbox.cfg << EOF cat > %{buildroot}%{_sysconfdir}/vbox/vbox.cfg << EOF
# VirtualBox installation directory # VirtualBox installation directory
INSTALL_DIR="/opt/%{name}" INSTALL_DIR="%{_libdir}/%{name}"
EOF EOF
install -m 755 %{S:1} %{buildroot}/opt/%{name}/vbox-run.sh
install -m 755 %{S:1} %{buildroot}%{_libdir}/%{name}/vbox-run.sh
install -d %{buildroot}%{_bindir} %{buildroot}%{_sbindir} install -d %{buildroot}%{_bindir} %{buildroot}%{_sbindir}
ln -s /opt/%{name}/vbox-run.sh %{buildroot}%{_bindir}/VirtualBox ln -s %{_libdir}/%{name}/vbox-run.sh %{buildroot}%{_bindir}/VirtualBox
ln -s /opt/%{name}/vbox-run.sh %{buildroot}%{_bindir}/VBoxManage ln -s %{_libdir}/%{name}/vbox-run.sh %{buildroot}%{_bindir}/VBoxManage
ln -s /opt/%{name}/vbox-run.sh %{buildroot}%{_bindir}/VBoxSDL ln -s %{_libdir}/%{name}/vbox-run.sh %{buildroot}%{_bindir}/VBoxSDL
ln -s /opt/%{name}/vbox-run.sh %{buildroot}%{_bindir}/vditool ln -s %{_libdir}/%{name}/vbox-run.sh %{buildroot}%{_bindir}/vditool
# vboxwebsrv # vboxwebsrv
ln -s /opt/%{name}/vboxwebsrv %{buildroot}%{_bindir}/vboxwebsrv ln -s %{_libdir}/%{name}/vboxwebsrv %{buildroot}%{_bindir}/vboxwebsrv
install -D -m0755 src/VBox/Installer/linux/vboxweb-service.sh %{buildroot}%{_initrddir}/vboxweb-service install -D -m0755 src/VBox/Installer/linux/vboxweb-service.sh %{buildroot}%{_initrddir}/vboxweb-service
#install -D -m0755 src/VBox/Installer/linux/vboxballoonctrl-service.sh.in %{buildroot}%{_initrddir}/vboxballoon-service #install -D -m0755 src/VBox/Installer/linux/vboxballoonctrl-service.sh.in %{buildroot}%{_initrddir}/vboxballoon-service
@ -251,14 +255,14 @@ install -D -m0755 src/VBox/Installer/linux/vboxweb-service.sh %{buildroot}%{_ini
install -d %{buildroot}/lib/udev/rules.d/ install -d %{buildroot}/lib/udev/rules.d/
cat > %{buildroot}/lib/udev/rules.d/59-vboxdrv.rules << EOF cat > %{buildroot}/lib/udev/rules.d/59-vboxdrv.rules << EOF
KERNEL=="vboxdrv", MODE="0666" KERNEL=="vboxdrv", MODE="0666"
SUBSYSTEM=="usb_device", ACTION=="add", RUN="VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" SUBSYSTEM=="usb_device", ACTION=="add", RUN="VBoxCreateUSBNode.sh \$major \$minor \$attr{bDeviceClass}"
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="VBoxCreateUSBNode.sh \$major \$minor \$attr{bDeviceClass}"
SUBSYSTEM=="usb_device", ACTION=="remove", RUN="VBoxCreateUSBNode.sh --remove $major $minor" SUBSYSTEM=="usb_device", ACTION=="remove", RUN="VBoxCreateUSBNode.sh --remove \$major \$minor"
SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="VBoxCreateUSBNode.sh --remove $major $minor" SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="VBoxCreateUSBNode.sh --remove \$major \$minor"
EOF EOF
install -d -m0755 %{buildroot}/lib/udev/ install -d -m0755 %{buildroot}/lib/udev/
mv %{buildroot}/opt/VirtualBox/VBoxCreateUSBNode.sh \ mv %{buildroot}%{_libdir}/VirtualBox/VBoxCreateUSBNode.sh \
%{buildroot}/lib/udev/VBoxCreateUSBNode.sh %{buildroot}/lib/udev/VBoxCreateUSBNode.sh
# install icons # install icons
@ -271,21 +275,21 @@ done
install -D -m 644 %{S:3} %{buildroot}%{_datadir}/applications/%{name}.desktop install -D -m 644 %{S:3} %{buildroot}%{_datadir}/applications/%{name}.desktop
# install VirtualBox Guest Additions # install VirtualBox Guest Additions
install -m 644 %{S:4} %{buildroot}/opt/%{name}/additions/VBoxGuestAdditions.iso install -m 644 %{S:4} %{buildroot}%{_libdir}/%{name}/additions/VBoxGuestAdditions.iso
# remove unpackaged files # remove unpackaged files
rm -rf %{buildroot}/opt/%{name}/{src,sdk,testcase} rm -rf %{buildroot}%{_libdir}/%{name}/{src,sdk,testcase}
rm -rf %{buildroot}/opt/%{name}/additions/src rm -rf %{buildroot}%{_libdir}/%{name}/additions/src
rm -f %{buildroot}/opt/%{name}/tst* rm -f %{buildroot}%{_libdir}/%{name}/tst*
#rm -f %{buildroot}/opt/%{name}/*.ko #rm -f %{buildroot}%{_libdir}/%{name}/*.ko
rm -rf %{buildroot}/opt/%{name}/VBoxPython2_4.so rm -rf %{buildroot}%{_libdir}/%{name}/VBoxPython2_4.so
# install additions # install additions
mv %{buildroot}/opt/%{name}/additions/VBoxOGL*.so %{buildroot}%{_libdir}/ mv %{buildroot}%{_libdir}/%{name}/additions/VBoxOGL*.so %{buildroot}%{_libdir}/
mv %{buildroot}/opt/%{name}/additions/vboxadd-service %{buildroot}%{_initrddir}/vboxadd mv %{buildroot}%{_libdir}/%{name}/additions/vboxadd-service %{buildroot}%{_initrddir}/vboxadd
install -d -m 0755 %{buildroot}%{_sbindir} install -d -m 0755 %{buildroot}%{_sbindir}
mv %{buildroot}/opt/%{name}/additions/{VBoxService,VBoxClient,VBoxControl} %{buildroot}%{_sbindir}/ mv %{buildroot}%{_libdir}/%{name}/additions/{VBoxService,VBoxClient,VBoxControl} %{buildroot}%{_sbindir}/
# install suspend configuration file to fix suspend/hibernate since 4.1.0 # install suspend configuration file to fix suspend/hibernate since 4.1.0
install -d -m0755 %{buildroot}%{_sysconfdir}/pm/config.d/ install -d -m0755 %{buildroot}%{_sysconfdir}/pm/config.d/
@ -366,9 +370,18 @@ REMAKE_INITRD=no
AUTOINSTALL=yes AUTOINSTALL=yes
_EOF _EOF
# load modules at boot
install -d %{buildroot}%{_prefix}/lib/modules-load.d/virtualbox.conf << _EOF
vboxdrv
vboxnetflt
vboxnetadp
vboxpci
_EOF
# build and install vdfuse # build and install vdfuse
cd vdfuse cd vdfuse
export INSTALL_DIR=%{buildroot}/opt/%{name} sed -i "s|-l:||" vdbuild_new
export INSTALL_DIR=%{buildroot}%{_libdir}/%{name}
sh ./vdbuild_new ../include/ vdfuse.c sh ./vdbuild_new ../include/ vdfuse.c
install -m0755 vdfuse %{buildroot}%{_bindir}/vdfuse install -m0755 vdfuse %{buildroot}%{_bindir}/vdfuse
cd .. cd ..
@ -383,11 +396,8 @@ fi
: :
%post %post
# new install if [ $1 -ge 1 ]; then
if [ $1 -eq 1 ]; then systemctl -q daemon-reload
systemctl daemon-reload
systemctl enable %{name}
systemctl start %{name}
fi fi
/sbin/ldconfig /sbin/ldconfig
: :
@ -402,8 +412,6 @@ dkms remove -q -m %{name} -v 4.2.18 --all || true
if [ $1 -eq 0 ]; then if [ $1 -eq 0 ]; then
%{_sbindir}/groupdel vboxusers 2>/dev/null %{_sbindir}/groupdel vboxusers 2>/dev/null
dkms remove -q -m %{name} -v %{version} --all dkms remove -q -m %{name} -v %{version} --all
systemctl stop %{name}
systemctl disable %{name}
fi fi
: :
@ -479,9 +487,7 @@ fi
%config %{_sysconfdir}/vbox/vbox.cfg %config %{_sysconfdir}/vbox/vbox.cfg
%config(noreplace) %{_sysconfdir}/default/virtualbox %config(noreplace) %{_sysconfdir}/default/virtualbox
%{_sysconfdir}/pm/config.d/vboxdrv %{_sysconfdir}/pm/config.d/vboxdrv
#%{_sysconfdir}/modprobe.d/vboxdrv.conf %{_prefix}/lib/modules-load.d/virtualbox.conf
%{_initrddir}/%{name}
#%{_initrddir}/vboxballoon-service
%{_bindir}/VBoxManage %{_bindir}/VBoxManage
%{_bindir}/VBoxSDL %{_bindir}/VBoxSDL
%{_bindir}/VirtualBox %{_bindir}/VirtualBox
@ -489,59 +495,65 @@ fi
%{_bindir}/vditool %{_bindir}/vditool
/lib/udev/rules.d/59-vboxdrv.rules /lib/udev/rules.d/59-vboxdrv.rules
/lib/udev/VBoxCreateUSBNode.sh /lib/udev/VBoxCreateUSBNode.sh
%dir /opt/%{name} %dir %{_libdir}/%{name}
/opt/%{name}/DBGCPlugInDiggers.so %{_libdir}/%{name}/DbgPlugInDiggers.so
#/opt/%{name}/EfiThunk %{_libdir}/%{name}/vboxautostart-service.sh
/opt/%{name}/SUPInstall %{_libdir}/%{name}/vboxballoonctrl-service.sh
/opt/%{name}/SUPUninstall %{_libdir}/%{name}/vboxweb-service.sh
/opt/%{name}/VBox* %{_libdir}/%{name}/SUPInstall
/opt/%{name}/VMMGC.gc %{_libdir}/%{name}/SUPUninstall
/opt/%{name}/VMMR0.r0 %{_libdir}/%{name}/VirtualBox
/opt/%{name}/VMMGC.debug %{_libdir}/%{name}/VBox*
/opt/%{name}/VMMR0.debug %{_libdir}/%{name}/VMMRC.rc
/opt/%{name}/iPxeBaseBin %{_libdir}/%{name}/VMMRC.debug
/opt/%{name}/VirtualBox %{_libdir}/%{name}/VMMR0.r0
%dir /opt/%{name}/components %{_libdir}/%{name}/VMMR0.debug
/opt/%{name}/components/VBox*.so %{_libdir}/%{name}/iPxeBaseBin
/opt/%{name}/components/VBoxXPCOMBase.xpt %dir %{_libdir}/%{name}/components
/opt/%{name}/components/VirtualBox_XPCOM.xpt %{_libdir}/%{name}/components/VBox*.so
%dir /opt/VirtualBox/ExtensionPacks %{_libdir}/%{name}/components/VBoxXPCOMBase.xpt
%dir /opt/VirtualBox/ExtensionPacks/VNC %{_libdir}/%{name}/components/VirtualBox_XPCOM.xpt
/opt/VirtualBox/ExtensionPacks/VNC/* %dir %{_libdir}/VirtualBox/ExtensionPacks
%dir /opt/VirtualBox/dtrace %dir %{_libdir}/VirtualBox/ExtensionPacks/VNC
%dir /opt/VirtualBox/dtrace/lib %{_libdir}/VirtualBox/ExtensionPacks/VNC/*
/opt/VirtualBox/dtrace/lib/* %dir %{_libdir}/%{name}/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
%dir /opt/VirtualBox/dtrace/testcase %{_libdir}/%{name}/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/*
/opt/VirtualBox/dtrace/testcase/* %dir %{_libdir}/%{name}/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.*/
%dir /opt/%{name}/helpers %{_libdir}/%{name}/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.*/*
/opt/%{name}/helpers/generate_service_file %dir %{_libdir}/VirtualBox/dtrace
%dir /opt/%{name}/icons %dir %{_libdir}/VirtualBox/dtrace/lib
/opt/%{name}/icons/* %{_libdir}/VirtualBox/dtrace/lib/*
%dir %{_libdir}/VirtualBox/dtrace/testcase
%{_libdir}/VirtualBox/dtrace/testcase/*
%dir %{_libdir}/%{name}/helpers
%{_libdir}/%{name}/helpers/generate_service_file
%dir %{_libdir}/%{name}/icons
%{_libdir}/%{name}/icons/*
%if "%{stage1}" != "1" %if "%{stage1}" != "1"
/opt/%{name}/libvboxjxpcom.so %{_libdir}/%{name}/libvboxjxpcom.so
%endif %endif
/opt/%{name}/load.sh %{_libdir}/%{name}/load.sh
/opt/%{name}/loadall.sh %{_libdir}/%{name}/loadall.sh
%dir /opt/%{name}/nls %dir %{_libdir}/%{name}/nls
/opt/%{name}/nls/VirtualBox_*.qm %{_libdir}/%{name}/nls/VirtualBox_*.qm
/opt/%{name}/nls/qt_*.qm %{_libdir}/%{name}/nls/qt_*.qm
%dir /opt/%{name}/scripts %dir %{_libdir}/%{name}/scripts
/opt/%{name}/scripts/* %{_libdir}/%{name}/scripts/*
/opt/%{name}/tools/* %{_libdir}/%{name}/tools/*
#/opt/%{name}/scm #%{_libdir}/%{name}/scm
#/opt/%{name}/nls3/qt_*.qm #%{_libdir}/%{name}/nls3/qt_*.qm
#/opt/%{name}/nls3/VirtualBox_*.qm #%{_libdir}/%{name}/nls3/VirtualBox_*.qm
/opt/%{name}/SUPLoggerCtl %{_libdir}/%{name}/SUPLoggerCtl
/opt/%{name}/UserManual.pdf #%{_libdir}/%{name}/UserManual.pdf
#/opt/%{name}/webtest #%{_libdir}/%{name}/webtest
#%lang(fr) /opt/%{name}/UserManual_fr_FR.pdf #%lang(fr) %{_libdir}/%{name}/UserManual_fr_FR.pdf
/opt/%{name}/vbox-img %{_libdir}/%{name}/vbox-img
/opt/%{name}/vbox-run.sh %{_libdir}/%{name}/vbox-run.sh
/opt/%{name}/vboxkeyboard.tar.bz2 %{_libdir}/%{name}/vboxkeyboard.tar.bz2
/opt/%{name}/vboxshell.py %{_libdir}/%{name}/vboxshell.py
/opt/%{name}/virtualbox.desktop %{_libdir}/%{name}/virtualbox.desktop
/opt/%{name}/virtualbox.xml %{_libdir}/%{name}/virtualbox.xml
/opt/%{name}/xpidl %{_libdir}/%{name}/xpidl
%{_datadir}/icons/hicolor/*/apps/%{name}.png %{_datadir}/icons/hicolor/*/apps/%{name}.png
%{_datadir}/applications/%{name}.desktop %{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/VBox.png %{_datadir}/pixmaps/VBox.png
@ -555,7 +567,7 @@ fi
%defattr(-,root,root) %defattr(-,root,root)
%{_initrddir}/vboxweb-service %{_initrddir}/vboxweb-service
%{_bindir}/vboxwebsrv %{_bindir}/vboxwebsrv
#/opt/%{name}/vboxwebsrv #%{_libdir}/%{name}/vboxwebsrv
%files -n xorg-drv-video-vboxvideo %files -n xorg-drv-video-vboxvideo
%defattr(-,root,root) %defattr(-,root,root)
@ -569,15 +581,15 @@ fi
%{_sbindir}/VBoxClient %{_sbindir}/VBoxClient
%{_sbindir}/VBoxControl %{_sbindir}/VBoxControl
%{_sbindir}/VBoxService %{_sbindir}/VBoxService
/opt/%{name}/additions/autorun.sh %{_libdir}/%{name}/additions/autorun.sh
/opt/%{name}/additions/mount.vboxsf %{_libdir}/%{name}/additions/mount.vboxsf
/opt/%{name}/additions/pam_vbox.so %{_libdir}/%{name}/additions/pam_vbox.so
/opt/%{name}/additions/runasroot.sh %{_libdir}/%{name}/additions/runasroot.sh
/opt/%{name}/additions/vboxadd* %{_libdir}/%{name}/additions/vboxadd*
%files additions-VBoxGuest %files additions-VBoxGuest
%defattr(-,root,root) %defattr(-,root,root)
/opt/%{name}/additions/VBoxGuestAdditions.iso %{_libdir}/%{name}/additions/VBoxGuestAdditions.iso
%files vboxguest %files vboxguest
%defattr(-,root,root) %defattr(-,root,root)
@ -587,6 +599,14 @@ fi
%{_prefix}/src/vboxvideo-%{version}/* %{_prefix}/src/vboxvideo-%{version}/*
%changelog %changelog
* Wed Aug 26 2015 Silvan Calarco <silvan.calarco@mambasoft.it> 5.0.2-2mamba
- fix udev rule for usb support; require user in vboxusers
* Wed Aug 26 2015 Automatic Build System <autodist@mambasoft.it> 5.0.2-1mamba
- automatic version update by autodist
- move from /opt/VirtualBox to %_libdir/VirtualBox
- remove initrd service, use modules-load.d to load modules at boot
* Wed May 20 2015 Automatic Build System <autodist@mambasoft.it> 4.3.28-1mamba * Wed May 20 2015 Automatic Build System <autodist@mambasoft.it> 4.3.28-1mamba
- automatic version update by autodist - automatic version update by autodist