diff --git a/virtualbox-fix-ui-background-color.patch b/virtualbox-fix-ui-background-color.patch new file mode 100644 index 0000000..27240a1 --- /dev/null +++ b/virtualbox-fix-ui-background-color.patch @@ -0,0 +1,301 @@ +Index: b/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp +@@ -114,10 +114,6 @@ void UITools::preparePalette() + { + /* Setup palette: */ + setAutoFillBackground(true); +- QPalette pal = palette(); +- QColor bodyColor = pal.color(QPalette::Active, QPalette::Midlight).darker(110); +- pal.setColor(QPalette::Window, bodyColor); +- setPalette(pal); + } + + void UITools::prepareLayout() +Index: b/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp +@@ -1299,7 +1299,7 @@ void UIVirtualBoxManager::prepareMenuBar + /* Make sure menu-bar fills own solid background: */ + menuBar()->setAutoFillBackground(true); + QPalette pal = menuBar()->palette(); +- const QColor color = pal.color(QPalette::Active, QPalette::Mid).lighter(160); ++ const QColor color = pal.color(QPalette::Active, QPalette::Window); + pal.setColor(QPalette::Active, QPalette::Button, color); + menuBar()->setPalette(pal); + } +Index: b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp +@@ -121,10 +121,6 @@ void UIChooser::preparePalette() + { + /* Setup palette: */ + setAutoFillBackground(true); +- QPalette pal = palette(); +- QColor bodyColor = pal.color(QPalette::Active, QPalette::Midlight).darker(110); +- pal.setColor(QPalette::Window, bodyColor); +- setPalette(pal); + } + + void UIChooser::prepareLayout() +Index: b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp +@@ -1025,7 +1025,7 @@ void UIChooserItemMachine::paintBackgrou + else + { + /* Prepare color: */ +- QColor backgroundColor = pal.color(QPalette::Active, QPalette::Mid); ++ QColor backgroundColor = pal.color(QPalette::Active, QPalette::Button); + /* Draw gradient: */ + QLinearGradient bgGrad(rectangle.topLeft(), rectangle.bottomLeft()); + bgGrad.setColorAt(0, backgroundColor.lighter(m_iDefaultLightnessMax)); +@@ -1054,7 +1054,7 @@ void UIChooserItemMachine::paintBackgrou + /* Default background: */ + else + { +- QColor backgroundColor = pal.color(QPalette::Active, QPalette::Mid); ++ QColor backgroundColor = pal.color(QPalette::Active, QPalette::Button); + color1 = backgroundColor.lighter(m_iDefaultLightnessMax); + color2 = backgroundColor.lighter(m_iDefaultLightnessMax - 70); + } +@@ -1075,7 +1075,7 @@ void UIChooserItemMachine::paintBackgrou + /* Default background: */ + else + { +- QColor backgroundColor = pal.color(QPalette::Active, QPalette::Mid); ++ QColor backgroundColor = pal.color(QPalette::Active, QPalette::Button); + color1 = backgroundColor.lighter(m_iDefaultLightnessMin); + color2 = backgroundColor.lighter(m_iDefaultLightnessMin - 40); + } +@@ -1110,7 +1110,7 @@ void UIChooserItemMachine::paintFrame(QP + strokeColor = pal.color(QPalette::Active, QPalette::Highlight).lighter(m_iHoverLightnessMin - 50); + /* Default frame: */ + else +- strokeColor = pal.color(QPalette::Active, QPalette::Mid).lighter(m_iDefaultLightnessMin); ++ strokeColor = pal.color(QPalette::Active, QPalette::Button).lighter(m_iDefaultLightnessMin); + + /* Create/assign pen: */ + QPen pen(strokeColor); +Index: b/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.cpp +@@ -710,7 +710,7 @@ void UIToolsItem::paintBackground(QPaint + /* Prepare color: */ + const QColor backgroundColor = isEnabled() + ? pal.color(QPalette::Active, QPalette::Highlight) +- : pal.color(QPalette::Disabled, QPalette::Midlight); ++ : pal.color(QPalette::Disabled, QPalette::Highlight); + /* Draw gradient: */ + QLinearGradient bgGrad(rectangle.topLeft(), rectangle.bottomLeft()); + bgGrad.setColorAt(0, backgroundColor.lighter(m_iHighlightLightnessMax)); +@@ -749,7 +749,7 @@ void UIToolsItem::paintBackground(QPaint + /* Prepare color: */ + const QColor backgroundColor = isEnabled() + ? pal.color(QPalette::Active, QPalette::Highlight) +- : pal.color(QPalette::Disabled, QPalette::Midlight); ++ : pal.color(QPalette::Disabled, QPalette::Highlight); + /* Draw gradient: */ + QLinearGradient bgGrad(rectangle.topLeft(), rectangle.bottomLeft()); + bgGrad.setColorAt(0, backgroundColor.lighter(m_iHoverLightnessMax)); +@@ -787,8 +787,8 @@ void UIToolsItem::paintBackground(QPaint + { + /* Prepare color: */ + const QColor backgroundColor = isEnabled() +- ? pal.color(QPalette::Active, QPalette::Mid) +- : pal.color(QPalette::Disabled, QPalette::Midlight); ++ ? pal.color(QPalette::Active, QPalette::Window) ++ : pal.color(QPalette::Disabled, QPalette::Window); + /* Draw gradient: */ + QLinearGradient bgGrad(rectangle.topLeft(), rectangle.bottomLeft()); + bgGrad.setColorAt(0, backgroundColor.lighter(m_iDefaultLightnessMax)); +@@ -821,7 +821,7 @@ void UIToolsItem::paintFrame(QPainter *p + strokeColor = pal.color(QPalette::Active, QPalette::Highlight).lighter(m_iHoverLightnessMin - 50); + /* Default frame: */ + else +- strokeColor = pal.color(QPalette::Active, QPalette::Mid).lighter(m_iDefaultLightnessMin); ++ strokeColor = pal.color(QPalette::Active, QPalette::Button).lighter(m_iDefaultLightnessMin); + + /* Create/assign pen: */ + QPen pen(strokeColor); +Index: b/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp +@@ -355,14 +355,6 @@ void UIVirtualBoxManagerWidget::prepare( + { + /* Configure palette: */ + setAutoFillBackground(true); +- QPalette pal = palette(); +-#ifdef VBOX_WS_MAC +- const QColor color = pal.color(QPalette::Active, QPalette::Mid).lighter(145); +-#else +- const QColor color = pal.color(QPalette::Active, QPalette::Mid).lighter(160); +-#endif +- pal.setColor(QPalette::Window, color); +- setPalette(pal); + + /* Prepare: */ + prepareWidgets(); +@@ -490,7 +482,7 @@ void UIVirtualBoxManagerWidget::prepareW + } + + /* Adjust splitter colors according to main widgets it splits: */ +- m_pSplitter->configureColor(palette().color(QPalette::Active, QPalette::Midlight).darker(110)); ++ m_pSplitter->configureColor(palette().color(QPalette::Active, QPalette::Button).darker(110)); + /* Set the initial distribution. The right site is bigger. */ + m_pSplitter->setStretchFactor(0, 2); + m_pSplitter->setStretchFactor(1, 3); +Index: b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp +@@ -642,7 +642,7 @@ void UIChooserItem::paintFlatButton(QPai + + /* Prepare colors: */ + const QPalette pal = QApplication::palette(); +- const QColor color = pal.color(QPalette::Active, QPalette::Mid); ++ const QColor color = pal.color(QPalette::Active, QPalette::Button); + + /* Prepare pen: */ + QPen pen; +Index: b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp +@@ -178,10 +178,6 @@ void UIChooserView::prepare() + void UIChooserView::preparePalette() + { + /* Setup palette: */ +- QPalette pal = qApp->palette(); +- const QColor bodyColor = pal.color(QPalette::Active, QPalette::Midlight).darker(110); +- pal.setColor(QPalette::Base, bodyColor); +- setPalette(pal); + } + + void UIChooserView::resizeEvent(QResizeEvent *pEvent) +Index: b/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.cpp +@@ -182,10 +182,6 @@ void UIToolsView::prepare() + void UIToolsView::preparePalette() + { + /* Setup palette: */ +- QPalette pal = qApp->palette(); +- const QColor bodyColor = pal.color(QPalette::Active, QPalette::Midlight).darker(110); +- pal.setColor(QPalette::Base, bodyColor); +- setPalette(pal); + } + + void UIToolsView::resizeEvent(QResizeEvent *pEvent) +Index: b/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp +@@ -667,7 +667,7 @@ void UIDetailsElement::paintBackground(Q + const QPalette pal = palette(); + + /* Paint default background: */ +- const QColor defaultColor = pal.color(QPalette::Active, QPalette::Mid); ++ const QColor defaultColor = pal.color(QPalette::Active, QPalette::Window); + const QColor dcTone1 = defaultColor.lighter(m_iDefaultToneFinal); + const QColor dcTone2 = defaultColor.lighter(m_iDefaultToneStart); + QLinearGradient gradientDefault(fullRect.topLeft(), fullRect.bottomLeft()); +@@ -708,7 +708,7 @@ void UIDetailsElement::paintFrame(QPaint + : optionRect; + + /* Paint frame: */ +- const QColor strokeColor = palette().color(QPalette::Active, QPalette::Mid).lighter(m_iDefaultToneStart); ++ const QColor strokeColor = palette().color(QPalette::Active, QPalette::Window).lighter(m_iDefaultToneStart); + QPen pen(strokeColor); + pen.setWidth(0); + pPainter->setPen(pen); +Index: b/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp +@@ -110,7 +110,7 @@ void UIToolBar::paintEvent(QPaintEvent * + const QRect rectangle = pEvent->rect(); + + /* Prepare gradient: */ +- const QColor backgroundColor = palette().color(QPalette::Active, QPalette::Mid); ++ const QColor backgroundColor = palette().color(QPalette::Active, QPalette::Window); + QLinearGradient gradient(rectangle.topLeft(), rectangle.bottomLeft()); + gradient.setColorAt(0, backgroundColor.lighter(130)); + gradient.setColorAt(1, backgroundColor.lighter(125)); +Index: b/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp +@@ -700,7 +700,7 @@ void UIDetailsSet::paintBackground(QPain + const QRect optionRect = pOptions->rect; + + /* Paint default background: */ +- const QColor defaultColor = palette().color(QPalette::Active, QPalette::Midlight).darker(110); ++ const QColor defaultColor = palette().color(QPalette::Active, QPalette::Window).darker(110); + pPainter->fillRect(optionRect, defaultColor); + + /* Restore painter: */ +Index: b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp +@@ -655,7 +655,7 @@ void UIChooserItemGlobal::paintBackgroun + pPainter->fillRect(rectangle, bgGrad); + #else + /* Prepare color: */ +- QColor backgroundColor = pal.color(QPalette::Active, QPalette::Mid).lighter(160); ++ QColor backgroundColor = pal.color(QPalette::Active, QPalette::Window).lighter(160); + /* Draw gradient: */ + pPainter->fillRect(rectangle, backgroundColor); + #endif +@@ -686,7 +686,7 @@ void UIChooserItemGlobal::paintFrame(QPa + strokeColor = pal.color(QPalette::Active, QPalette::Highlight).lighter(m_iHoverLightnessMin - 50); + /* Default frame: */ + else +- strokeColor = pal.color(QPalette::Active, QPalette::Mid).lighter(m_iDefaultLightnessMin); ++ strokeColor = pal.color(QPalette::Active, QPalette::Window).lighter(m_iDefaultLightnessMin); + + /* Create/assign pen: */ + QPen pen(strokeColor); +Index: b/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp +@@ -288,7 +288,7 @@ void UIDetailsGroup::paintBackground(QPa + #ifdef VBOX_WS_MAC + const QColor defaultColor = palette().color(QPalette::Active, QPalette::Mid).lighter(145); + #else +- const QColor defaultColor = palette().color(QPalette::Active, QPalette::Mid).lighter(160); ++ const QColor defaultColor = palette().color(QPalette::Active, QPalette::Window).lighter(160); + #endif + pPainter->fillRect(optionRect, defaultColor); + +Index: b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp +=================================================================== +--- a/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp +@@ -1630,7 +1630,7 @@ void UIChooserItemGroup::paintBackground + const QPalette pal = palette(); + const QColor headerColor = pal.color(QPalette::Active, + model()->currentItems().contains(this) ? +- QPalette::Highlight : QPalette::Midlight); ++ QPalette::Highlight : QPalette::Button); + + /* Root-item: */ + if (isRoot()) +@@ -1714,7 +1714,7 @@ void UIChooserItemGroup::paintFrame(QPai + const QPalette pal = palette(); + const QColor strokeColor = pal.color(QPalette::Active, + model()->currentItems().contains(this) ? +- QPalette::Highlight : QPalette::Midlight).darker(headerDarkness() + 10); ++ QPalette::Highlight : QPalette::Button).darker(headerDarkness() + 10); + + /* Create/assign pen: */ + QPen pen(strokeColor); diff --git a/virtualbox-rpmlintrc b/virtualbox-rpmlintrc index b32bd29..0336de8 100644 --- a/virtualbox-rpmlintrc +++ b/virtualbox-rpmlintrc @@ -1,3 +1,4 @@ addFilter("incoherent-init-script-name vboxdrv") addFilter("incoherent-init-script-name vboxadd") addFilter("xorg-x11-driver-virtualbox-ose.* shlib-policy-missing-suffix") +setBadness("permissions-unauthorized-file", 333) diff --git a/virtualbox-wrapper.sh b/virtualbox-wrapper.sh index 4bd3b0a..2e4ce1f 100644 --- a/virtualbox-wrapper.sh +++ b/virtualbox-wrapper.sh @@ -6,7 +6,7 @@ export QT_NO_KDE_INTEGRATION=1 # Handle the issue regarding USB passthru # The following conditions apply: # 1. If ~/.vbox/enable exists, the user accepts the security risk. -# 2. If ~/.vbox/disable exists, the user does not accept the risk. That file will contain the inode of /etc/udev/rules.d/60-vboxdrv.rules. +# 2. If ~/.vbox/disable exists, the user does not accept the risk. That file will contain the inode of /usr/lib/udev/rules.d/60-vboxdrv.rules. # When that changes, the VBoxUSB_DevRules will again be displayed as that means that VB has been reloaded. # devrules() @@ -26,8 +26,8 @@ devrules() # # Ensure that ~/.vbox exists mkdir -p ~/.vbox/ -# Get the inode for /etc/udev/rules.d/60-vboxdrv.rules -INODE=$(stat /etc/udev/rules.d/60-vboxdrv.rules | grep Inode | cut -d' ' -f3) +# Get the inode for /usr/lib/udev/rules.d/60-vboxdrv.rules +INODE=$(stat /usr/lib/udev/rules.d/60-vboxdrv.rules | grep Inode | cut -d' ' -f3) if [ ! -f ~/.vbox/enable ] && [ ! -f ~/.vbox/disable ] ; then # Neither file exists - find what the user wants devrules @@ -38,7 +38,7 @@ if [ -f ~/.vbox/disable ] ; then else LINE=" " fi -# If user originally declined, make certain that /etc/udev/rules.d/60-vboxdrv.rules has not been changed +# If user originally declined, make certain that /usr/lib/udev/rules.d/60-vboxdrv.rules has not been changed if [ -f ~/.vbox/disable ] && [ "$LINE" != "$INODE" ] && [ "$LINE" != "" ] ; then # disable is selected and the Inode has changed - ask again devrules diff --git a/virtualbox.changes b/virtualbox.changes index 16bb924..cb2464b 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Sun Mar 31 21:02:36 UTC 2019 - Hans-Peter Jansen + +- adjust patch virtualbox-fix-ui-background-color.patch to really + fix the background color messing... + +------------------------------------------------------------------- +Sat Mar 30 18:36:47 UTC 2019 - Hans-Peter Jansen + +- add patch to stop UI messing with Highlight Color for background +- apply fixes_for_qt5.13.patch for Qt versions >= 5.13.0 only + ------------------------------------------------------------------- Thu Mar 28 00:20:43 UTC 2019 - Larry Finger @@ -13,6 +25,23 @@ Wed Feb 20 16:31:23 UTC 2019 - Larry Finger - Remove requires on libvncserver for virtualbox-vnc. +------------------------------------------------------------------- +Tue Feb 12 12:05:48 UTC 2019 - Hans-Peter Jansen + +- Add setBadness('permissions-unauthorized-file',333) to rpmlintrc +- Remove suid attributes from all files +- add libgsoap version dependency >= 2.8.50 (recv_maxlength) + +------------------------------------------------------------------- +Mon Feb 11 12:46:26 UTC 2019 - Hans-Peter Jansen + +- Fix virtualbox wrapper script virtualbox-wrapper.sh to check + 60-vboxdrv.rules in /usr/lib/udev/rules.d, not /etc/udev/rules.d + Logic is still flawed, until it doesn't take both locations into + account +- Add custom /etc/permission.d/virtualbox{,.paranoid} definitions +- Add compatibility symlink to keep old desktop links functional + ------------------------------------------------------------------- Thu Jan 31 19:31:20 UTC 2019 - Larry Finger diff --git a/virtualbox.permissions b/virtualbox.permissions new file mode 100644 index 0000000..896db7f --- /dev/null +++ b/virtualbox.permissions @@ -0,0 +1,9 @@ +# virtualbox +/usr/lib/virtualbox/VBoxNetNAT root:vboxusers 4750 +/usr/lib/virtualbox/VBoxNetDHCP root:vboxusers 4750 +/usr/lib/virtualbox/VBoxNetAdpCtl root:vboxusers 4750 +/usr/lib/virtualbox/VBoxHeadless root:vboxusers 4750 +# Virtualbox-qt +/usr/lib/virtualbox/VirtualBoxVM root:vboxusers 4750 +/usr/lib/virtualbox/VBoxSDL root:vboxusers 4750 + diff --git a/virtualbox.permissions.paranoid b/virtualbox.permissions.paranoid new file mode 100644 index 0000000..b286d6c --- /dev/null +++ b/virtualbox.permissions.paranoid @@ -0,0 +1,9 @@ +# virtualbox +/usr/lib/virtualbox/VBoxNetNAT root:vboxusers 0750 +/usr/lib/virtualbox/VBoxNetDHCP root:vboxusers 0750 +/usr/lib/virtualbox/VBoxNetAdpCtl root:vboxusers 0750 +/usr/lib/virtualbox/VBoxHeadless root:vboxusers 0750 +# Virtualbox-qt +/usr/lib/virtualbox/VirtualBoxVM root:vboxusers 0750 +/usr/lib/virtualbox/VBoxSDL root:vboxusers 0750 + diff --git a/virtualbox.spec b/virtualbox.spec index 44a10c0..b772d88 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -16,6 +16,8 @@ # +%define qt5ver %(rpm -q --queryformat %%{version} libQt5Core5|perl -ne '/(\\d+)\\.(\\d+)\\.(\\d+)?/&&printf "%%d%%02d%%02d\\n",$1,$2,$3') + #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir /var/adm/fillup-templates @@ -62,6 +64,8 @@ Source8: %{name}-guest-preamble Source9: %{name}-wrapper.sh Source10: %{name}-LocalConfig.kmk Source11: %{name}-60-vboxdrv.rules +Source12: %{name}.permissions +Source13: %{name}.permissions.paranoid Source14: vboxdrv.service Source15: vboxadd-service.service Source16: vboxconfig.sh @@ -138,6 +142,7 @@ Patch130: fixes_for_5.1.patch # Fixes for Qt5.13 Patch131: fixes_for_qt5.13.patch #endif +Patch999: virtualbox-fix-ui-background-color.patch # BuildRequires: LibVNCServer-devel BuildRequires: SDL-devel @@ -160,7 +165,7 @@ BuildRequires: fdupes BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glibc-devel-static -BuildRequires: gsoap-devel +BuildRequires: gsoap-devel >= 2.8.50 BuildRequires: java-devel >= 1.6.0 BuildRequires: kbuild >= 0.1.9998svn3101 #BuildRequires: kernel-syms @@ -440,7 +445,11 @@ as an "extpack" for VirtualBox. The implementation is licensed under GPL. %patch128 -p1 %patch129 -p1 %patch130 -p1 + +%if %{qt5ver} >= 51300 %patch131 -p1 +%endif +%patch999 -p1 #copy user manual cp %{SOURCE1} UserManual.pdf @@ -569,6 +578,8 @@ install -d -m 755 %{buildroot}%{_libdir}/dri install -d -m 755 %{buildroot}%{_libdir}/xorg/modules/drivers install -d -m 755 %{buildroot}%{_libdir}/xorg/modules/input install -d -m 755 %{buildroot}%{_sysconfdir}/default +install -d -m 755 %{buildroot}%{_sysconfdir}/init.d +install -d -m 755 %{buildroot}%{_sysconfdir}/permissions.d install -d %{buildroot}%{_unitdir} install -d %{buildroot}%{_unitdir}/multi-user.target.wants install -d -m 755 %{buildroot}%{_sysconfdir}/vbox @@ -655,6 +666,8 @@ install -m 755 VBoxNetDHCP %{buildroot}%{_vbox_instdir} install -m 755 VBoxNetAdpCtl %{buildroot}%{_vbox_instdir} install -m 755 VirtualBox %{buildroot}%{_vbox_instdir}/VirtualBox6 install -m 755 VirtualBoxVM %{buildroot}%{_vbox_instdir} +# compatibility symlink in order to keep old desktop links functional +ln -s %{_vbox_instdir}/VirtualBoxVM %{buildroot}%{_vbox_instdir}/VirtualBox install -m 755 VBoxEFI*.fd %{buildroot}%{_vbox_instdir} install -m 755 VBoxSysInfo.sh %{buildroot}%{_vbox_instdir} install -m 644 *.so %{buildroot}%{_vbox_instdir} @@ -682,6 +695,10 @@ install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/default/virtualbox #install wrapper script install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox +# permissions +install -m 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/permissions.d/virtualbox +install -m 644 %{SOURCE13} %{buildroot}%{_sysconfdir}/permissions.d/virtualbox.paranoid + # Service files to load kernel modules on boot install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.service ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxdrv @@ -934,10 +951,13 @@ export DISABLE_RESTART_ON_UPDATE=yes %{_sbindir}/rcvboxdrv /sbin/vboxconfig %{_vbox_instdir}/VBoxCreateUSBNode.sh -%verify(not mode) %attr(4755,root,vboxusers) %{_vbox_instdir}/VBoxNetNAT -%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxNetDHCP -%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxNetAdpCtl -%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxHeadless +%verify(not mode) %attr(0750,root,vboxusers) %{_vbox_instdir}/VBoxNetNAT +%verify(not mode) %attr(0750,root,vboxusers) %{_vbox_instdir}/VBoxNetDHCP +%verify(not mode) %attr(0750,root,vboxusers) %{_vbox_instdir}/VBoxNetAdpCtl +%verify(not mode) %attr(0750,root,vboxusers) %{_vbox_instdir}/VBoxHeadless +# not %config tagged for security reasons +%{_sysconfdir}/permissions.d/virtualbox +%{_sysconfdir}/permissions.d/virtualbox.paranoid %dir %{_sysconfdir}/vbox %attr(1775,root,vboxusers) %{_sysconfdir}/vbox %config %attr(644,root,vboxusers) %{_sysconfdir}/vbox/vbox.cfg @@ -948,8 +968,9 @@ export DISABLE_RESTART_ON_UPDATE=yes %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxPermissionMessage %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxUSB_DevRules %attr(0755,root,vboxusers) %{_vbox_instdir}/VirtualBox6 -%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VirtualBoxVM -%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxSDL +%verify(not mode) %attr(0750,root,vboxusers) %{_vbox_instdir}/VirtualBoxVM +%verify(not mode) %attr(0750,root,vboxusers) %{_vbox_instdir}/VBoxSDL +%{_vbox_instdir}/VirtualBox #wrapper script is in bindir %attr(0755,root,root) %{_bindir}/VirtualBox #rules fixing script is in /sbin