Accepting request 515097 from Virtualization
- Update vboxconfig.sh to fix problems noted in bsc#1042726 Disable pae build for 32-bit kernels. Added missing commands to keep mkinitrd from being called twice during installation of host kernel modules. bsc#105248. OBS-URL: https://build.opensuse.org/request/show/515097 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/virtualbox?expand=0&rev=139
This commit is contained in:
commit
fba1081c3d
72
internal-headers.patch
Normal file
72
internal-headers.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
Index: VirtualBox-5.1.26/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
|
||||||
|
===================================================================
|
||||||
|
--- VirtualBox-5.1.26.orig/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
|
||||||
|
+++ VirtualBox-5.1.26/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
|
||||||
|
@@ -23,6 +23,9 @@ vboxvideo_70_DEFS := \
|
||||||
|
ifeq ($(KBUILD_TARGET),solaris) # don't use .solaris or anything here.
|
||||||
|
vboxvideo_70_DEFS += __EXTENSIONS__ ## @todo Why this?
|
||||||
|
endif
|
||||||
|
+if1of ($(KBUILD_TARGET), linux)
|
||||||
|
+ vboxvideo_70_DEFS += _POSIX_SOURCE ## X requires POSIX extensions
|
||||||
|
+endif
|
||||||
|
vboxvideo_13_DEFS := $(vboxvideo_70_DEFS) VBOXVIDEO_13
|
||||||
|
vboxvideo_15_DEFS := \
|
||||||
|
$(vboxvideo_13_DEFS) NO_ANSIC PCIACCESS XSERVER_LIBPCIACCESS _XORG_SERVER_H_ _DIX_CONFIG_H_
|
||||||
|
Index: VirtualBox-5.1.26/src/VBox/Additions/x11/vboxvideo/edid.c
|
||||||
|
===================================================================
|
||||||
|
--- VirtualBox-5.1.26.orig/src/VBox/Additions/x11/vboxvideo/edid.c
|
||||||
|
+++ VirtualBox-5.1.26/src/VBox/Additions/x11/vboxvideo/edid.c
|
||||||
|
@@ -44,10 +44,6 @@
|
||||||
|
* Dave Airlie <airlied@redhat.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
-#if XORG_VERSION_CURRENT >= 11900000
|
||||||
|
-#include <bits/sigset.h>
|
||||||
|
-typedef __sigset_t sigset_t;
|
||||||
|
-#endif
|
||||||
|
#include <misc.h>
|
||||||
|
#include <xf86DDC.h>
|
||||||
|
#include <xf86Crtc.h>
|
||||||
|
Index: VirtualBox-5.1.26/src/VBox/Additions/x11/vboxvideo/pointer.c
|
||||||
|
===================================================================
|
||||||
|
--- VirtualBox-5.1.26.orig/src/VBox/Additions/x11/vboxvideo/pointer.c
|
||||||
|
+++ VirtualBox-5.1.26/src/VBox/Additions/x11/vboxvideo/pointer.c
|
||||||
|
@@ -15,10 +15,6 @@
|
||||||
|
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
|
||||||
|
*/
|
||||||
|
|
||||||
|
-#if XORG_VERSION_CURRENT >= 11900000
|
||||||
|
-#include <bits/sigset.h>
|
||||||
|
-typedef __sigset_t sigset_t;
|
||||||
|
-#endif
|
||||||
|
#include <VBox/VBoxGuestLib.h>
|
||||||
|
|
||||||
|
#ifndef PCIACCESS
|
||||||
|
Index: VirtualBox-5.1.26/src/VBox/Additions/x11/vboxvideo/vboxvideo.h
|
||||||
|
===================================================================
|
||||||
|
--- VirtualBox-5.1.26.orig/src/VBox/Additions/x11/vboxvideo/vboxvideo.h
|
||||||
|
+++ VirtualBox-5.1.26/src/VBox/Additions/x11/vboxvideo/vboxvideo.h
|
||||||
|
@@ -52,10 +52,6 @@
|
||||||
|
#ifndef _VBOXVIDEO_H_
|
||||||
|
#define _VBOXVIDEO_H_
|
||||||
|
|
||||||
|
-#if XORG_VERSION_CURRENT >= 11900000
|
||||||
|
-#include <bits/sigset.h>
|
||||||
|
-typedef __sigset_t sigset_t;
|
||||||
|
-#endif
|
||||||
|
#include <VBox/VBoxVideoGuest.h>
|
||||||
|
#include <VBox/VBoxVideo.h>
|
||||||
|
#include "version-generated.h"
|
||||||
|
Index: VirtualBox-5.1.26/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
|
||||||
|
===================================================================
|
||||||
|
--- VirtualBox-5.1.26.orig/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
|
||||||
|
+++ VirtualBox-5.1.26/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
|
||||||
|
@@ -103,7 +103,7 @@ if defined(VBOX_WITH_EXTPACK_VBOXDTRACE)
|
||||||
|
VBoxDTraceCmd_TEMPLATE = VBoxR3ExtPackDTrace
|
||||||
|
VBoxDTraceCmd_DEFS = RTMEM_WRAP_TO_EF_APIS VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME=\"$(VBOX_EXTPACK_VBOXDTRACE_MANGLED_NAME)\"
|
||||||
|
#VBoxDTraceCmd_DEFS += YYDEBUG
|
||||||
|
- VBoxDTraceCmd_DEFS.linux = _XOPEN_SOURCE=700
|
||||||
|
+ VBoxDTraceCmd_DEFS.linux = _XOPEN_SOURCE=700 _DEFAULT_SOURCE
|
||||||
|
VBoxDTraceCmd_DEFS.win = YY_USE_PROTOS=1 YYENABLE_NLS=0 YYLTYPE_IS_TRIVIAL=0
|
||||||
|
VBoxDTraceCmd_SDKS = VBOX_ZLIB
|
||||||
|
ifn1of ($(KBUILD_TARGET), win)
|
@ -12,22 +12,30 @@ INCLUDE="/lib/modules/`uname -r`/build/include"
|
|||||||
# Test if vboxpci module loaded. If it is, skip everything else
|
# Test if vboxpci module loaded. If it is, skip everything else
|
||||||
loaded=$(lsmod | grep vboxpci)
|
loaded=$(lsmod | grep vboxpci)
|
||||||
if [ -n "$loaded" ] ; then
|
if [ -n "$loaded" ] ; then
|
||||||
echo "Kernel modules available - exiting..."
|
echo "Kernel modules are loaded, unload them via"
|
||||||
exit 0
|
echo "systemctl stop vboxdrv.service if you wish to rebuild them."
|
||||||
|
echo "Quitting .."
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
#
|
#
|
||||||
# Force installation of VB host sources. Zypper will install all the prerequisies
|
# Check if virtualbox-host-source is installed, quit if not
|
||||||
echo "Installing all required packages..."
|
if ! rpm -qf "$SOURCE/Makefile" &>/dev/null ; then
|
||||||
killproc PackageKit
|
echo "Sources for building host modules are not present,"
|
||||||
zypper install -y virtualbox-host-source > /dev/null 2>&1
|
echo "Use 'sudo zypper install virtualbox-host-source' to install them. Quitting .."
|
||||||
if [ "$?" -ne 0 ] ; then
|
exit 1
|
||||||
echo "Installation of required packages failed."
|
fi
|
||||||
echo "Use 'sudo zypper install virtualbox-host-source' to see the reason."
|
#
|
||||||
|
# Check if virtualbox-host-source version matches virtualbox version
|
||||||
|
if [ "$(rpm -q virtualbox virtualbox-host-source --queryformat='%{version}-%{release}\n' 2>/dev/null | sort -u | wc -l)" -ne "1" ] ; then
|
||||||
|
echo "virtualbox-host-source package version doesn't match"
|
||||||
|
echo "the version of virtualbox package."
|
||||||
|
echo "Reinstall virtualbox-host-source package. Quitting .."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# Prerequisites are available, start build
|
# Prerequisites are available, start build
|
||||||
pushd $SOURCE > /dev/null 2>&1
|
pushd $SOURCE > /dev/null 2>&1
|
||||||
echo "Building kernel modules..."
|
echo "Building kernel modules..."
|
||||||
|
make clean &>/dev/null
|
||||||
make > $LOGFILE 2>&1
|
make > $LOGFILE 2>&1
|
||||||
if [ "$?" -ne 0 ] ; then
|
if [ "$?" -ne 0 ] ; then
|
||||||
echo ""
|
echo ""
|
||||||
|
19
vboxes.service
Normal file
19
vboxes.service
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Autostart configured Virtual Box VMs
|
||||||
|
# configuration: /etc/sysconfig/vbox
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
SourcePath=/usr/lib/virtualbox/vboxes.sh
|
||||||
|
Description=Autostart Headless Virtual Box VMs
|
||||||
|
Before=multi-user.target graphical.target
|
||||||
|
After=network-online.target vboxdrv.service
|
||||||
|
Wants=network-online.target vboxdrv.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
RemainAfterExit=yes
|
||||||
|
ExecStart=/usr/lib/virtualbox/vboxes.sh start
|
||||||
|
ExecStop=/usr/lib/virtualbox/vboxes.sh stop
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
227
vboxes.sh
Normal file
227
vboxes.sh
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# description: Starts and stops vbox autostart VMs.
|
||||||
|
# Based on
|
||||||
|
# http://www.amiryan.org/2009/11/04/virtualbox-init-d-service-autostart-scriptu
|
||||||
|
#
|
||||||
|
# By Richard Bos <rbos at opensuse dot org> - May 2010
|
||||||
|
#
|
||||||
|
# Converted to standalone script for systemd environments
|
||||||
|
#
|
||||||
|
# By Hans-Peter jansen <hpj at urpla dot net> - July 2017
|
||||||
|
#
|
||||||
|
|
||||||
|
PRG=$(basename $0)
|
||||||
|
SERVICE="Virtualbox machines"
|
||||||
|
|
||||||
|
VBOXMGR_BIN=/usr/lib/virtualbox/VBoxManage
|
||||||
|
if [[ ! -x $VBOXMGR_BIN ]]; then
|
||||||
|
echo "$VBOXMGR_BIN does not exist"
|
||||||
|
if [ "$1" = "stop" ]; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
exit 6
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# read config file
|
||||||
|
[ -r /etc/sysconfig/vbox ] && . /etc/sysconfig/vbox
|
||||||
|
|
||||||
|
start() {
|
||||||
|
|
||||||
|
N=1
|
||||||
|
for VBOX in $VBOX_AUTOSTART; do
|
||||||
|
|
||||||
|
if grep -q \; <<< "$VBOX"; then
|
||||||
|
VBOX_NAME[$N]=$(cut -d\; -f1 <<< "$VBOX")
|
||||||
|
VBOX_USER[$N]=$(cut -d\; -f2 <<< "$VBOX")
|
||||||
|
else
|
||||||
|
VBOX_NAME[$N]="$VBOX"
|
||||||
|
VBOX_USER[$N]=""
|
||||||
|
fi
|
||||||
|
N=$(($N+1))
|
||||||
|
done
|
||||||
|
|
||||||
|
VBOXES=${#VBOX_NAME[*]}
|
||||||
|
|
||||||
|
if [ $VBOXES -eq 0 ]; then
|
||||||
|
# The virtual machines have to be configured in /etc/sysconfig/vbox
|
||||||
|
echo "Starting $SERVICE: no virtual machines configured"
|
||||||
|
else
|
||||||
|
|
||||||
|
N=1
|
||||||
|
echo "Starting $SERVICE: "
|
||||||
|
while [[ $N -le $VBOXES ]]; do
|
||||||
|
if [[ $N -lt $VBOXES ]]; then
|
||||||
|
echo -n "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}), "
|
||||||
|
else
|
||||||
|
echo "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})"
|
||||||
|
fi
|
||||||
|
N=$(($N+1))
|
||||||
|
done
|
||||||
|
|
||||||
|
N=1
|
||||||
|
while [[ $N -le $VBOXES ]]; do
|
||||||
|
|
||||||
|
if [[ -n "${VBOX_USER[$N]}" ]]; then
|
||||||
|
|
||||||
|
if getent passwd ${VBOX_USER[$N]} &>/dev/null; then
|
||||||
|
|
||||||
|
# The tag "Name:" occurs in multiple sections. Require at least 7 blanks
|
||||||
|
# with an additional flexible amount of spaces. At the moment of writing
|
||||||
|
# 13 spaces are needed.
|
||||||
|
VBOX_RUNNING=$(su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN list --long runningvms" |
|
||||||
|
sed -n 's/^Name:[[:blank:]]\{7\} *//p' | grep -w "${VBOX_NAME[$N]}")
|
||||||
|
|
||||||
|
if [[ -z "$VBOX_RUNNING" ]]; then
|
||||||
|
|
||||||
|
VBOX_PRESENT=$(su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN list --long vms" |
|
||||||
|
sed -n 's/^Name:[[:blank:]]\{7\} *//p' | grep -w "${VBOX_NAME[$N]}")
|
||||||
|
|
||||||
|
if [[ -n "$VBOX_PRESENT" ]]; then
|
||||||
|
|
||||||
|
# start VM with VBoxManage in headless mode
|
||||||
|
# unlike VBoxHeadless, VBoxManage waits until VM is running
|
||||||
|
su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN -q startvm "${VBOX_NAME[$N]}" -type headless" &> /tmp/$PRG.$$
|
||||||
|
RETVAL=$?
|
||||||
|
|
||||||
|
if [[ $RETVAL != 0 ]]; then
|
||||||
|
echo "Starting virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) failed: "
|
||||||
|
cat /tmp/$PRG.$$
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm /tmp/$PRG.$$
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) does not exist"
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) is already running"
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Virtual machine: ${VBOX_NAME[$N]}, VBOX_USER: ${VBOX_USER[$N]} does not exist"
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Virtual machine: ${VBOX_NAME[$N]}: VBOX_USER not configured"
|
||||||
|
fi
|
||||||
|
|
||||||
|
N=$(($N+1))
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
|
||||||
|
for VBOX in $VBOX_AUTOSTART; do
|
||||||
|
|
||||||
|
if grep -q \; <<< "$VBOX"; then
|
||||||
|
VBOX_USER=$(cut -d\; -f2 <<< "$VBOX")
|
||||||
|
|
||||||
|
# Only add the user to the list, if not present yet
|
||||||
|
if ! grep -qw "$VBOX_USER" <<< "$VBOX_USERS"; then
|
||||||
|
VBOX_USERS="$VBOX_USERS $VBOX_USER"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
N=1
|
||||||
|
for VBOX_USER in $VBOX_USERS; do
|
||||||
|
|
||||||
|
VBOX_RUNNING=$(su $VBOX_USER -c "$VBOXMGR_BIN list --long runningvms" |
|
||||||
|
sed -n 's/^Name:[[:blank:]]\{7\} *//p')
|
||||||
|
|
||||||
|
for VBOX in $VBOX_RUNNING; do
|
||||||
|
VBOX_NAME[$N]="$VBOX"
|
||||||
|
VBOX_USER[$N]="$VBOX_USER"
|
||||||
|
N=$(($N+1))
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
VBOXES=${#VBOX_NAME[*]}
|
||||||
|
|
||||||
|
if [[ $VBOXES -eq 0 ]]; then
|
||||||
|
echo "Shutting down $SERVICE: no virtual machines running."
|
||||||
|
else
|
||||||
|
|
||||||
|
echo "Shutting down $SERVICE: "
|
||||||
|
N=1
|
||||||
|
while [[ $N -le $VBOXES ]]; do
|
||||||
|
echo -n "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}): "
|
||||||
|
su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN -q controlvm ${VBOX_NAME[$N]} savestate"
|
||||||
|
N=$(($N+1))
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
|
||||||
|
for VBOX in $VBOX_AUTOSTART; do
|
||||||
|
|
||||||
|
if grep -q \; <<< "$VBOX"; then
|
||||||
|
VBOX_USER=$(cut -d\; -f2 <<< "$VBOX")
|
||||||
|
|
||||||
|
# Only add the user to the list, if not present yet
|
||||||
|
if ! grep -qw "$VBOX_USER" <<< "$VBOX_USERS"; then
|
||||||
|
VBOX_USERS="$VBOX_USERS $VBOX_USER"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
N=1
|
||||||
|
for VBOX_USER in $VBOX_USERS; do
|
||||||
|
# The tag "Name:" occurs in multiple sections. Require at least 7 blanks
|
||||||
|
# with an additional flexible amount of spaces. At the moment of writing
|
||||||
|
# 13 spaces are needed.
|
||||||
|
VBOX_RUNNING=$(su $VBOX_USER -c "$VBOXMGR_BIN list --long runningvms" |
|
||||||
|
sed -n 's/^Name:[[:blank:]]\{7\} *//p')
|
||||||
|
|
||||||
|
for VBOX in $VBOX_RUNNING; do
|
||||||
|
VBOX_NAME[$N]="$VBOX"
|
||||||
|
VBOX_USER[$N]="$VBOX_USER"
|
||||||
|
N=$(($N+1))
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
VBOXES=${#VBOX_NAME[*]}
|
||||||
|
|
||||||
|
if [[ $VBOXES -eq 0 ]]; then
|
||||||
|
echo "$SERVICE: no virtual machines running."
|
||||||
|
else
|
||||||
|
N=1
|
||||||
|
while [[ $N -le $VBOXES ]]; do
|
||||||
|
# The long sed line changes the output from:
|
||||||
|
# running (since 2010-04-25T14:51:57.373000000)
|
||||||
|
# to:
|
||||||
|
# running (since 2010-04-25 14:51:57)
|
||||||
|
#
|
||||||
|
STATE=$(su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN showvminfo "${VBOX_NAME[$N]}"" |
|
||||||
|
sed -n 's/State: *//p' |
|
||||||
|
sed 's/\([0-9][0-9]\)\.[0-9]\{9\}/\1/;s/\([0-9][0-9]\)T\([0-9][0-9]\)/\1 \2/')
|
||||||
|
printf "%-56s %s\n" "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}):" "$STATE"
|
||||||
|
N=$(($N+1))
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
restart|force-reload)
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $PRG {start|stop|restart|force-reload|status}" >&2
|
||||||
|
exit 3
|
||||||
|
;;
|
||||||
|
esac
|
@ -1,307 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# chkconfig: - 91 35
|
|
||||||
# description: Starts and stops vbox autostart VMs.
|
|
||||||
# Based on
|
|
||||||
# http://www.amiryan.org/2009/11/04/virtualbox-init-d-service-autostart-scriptu
|
|
||||||
#
|
|
||||||
# By Richard Bos <rbos at opensuse dot org> - May 2010
|
|
||||||
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: vboxes
|
|
||||||
# Required-Start: $network vboxdrv
|
|
||||||
# Required-Stop: $network $named
|
|
||||||
# Default-Start: 3 5
|
|
||||||
# Default-Stop: 0 1 2 3 4 5 6
|
|
||||||
# Short-Description: Autostart Virtual Box VMs
|
|
||||||
# Description: Autostart Virtual Box VMs that are mentioned in /etc/sysconfig/vbox file
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Shell functions sourced from /etc/rc.status:
|
|
||||||
# rc_check check and set local and overall rc status
|
|
||||||
# rc_status check and set local and overall rc status
|
|
||||||
# rc_status -v be verbose in local rc status and clear it afterwards
|
|
||||||
# rc_status -v -r ditto and clear both the local and overall rc status
|
|
||||||
# rc_status -s display "skipped" and exit with status 3
|
|
||||||
# rc_status -u display "unused" and exit with status 3
|
|
||||||
# rc_failed set local and overall rc status to failed
|
|
||||||
# rc_failed <num> set local and overall rc status to <num>
|
|
||||||
# rc_reset clear both the local and overall rc status
|
|
||||||
# rc_exit exit appropriate to overall rc status
|
|
||||||
# rc_active checks whether a service is activated by symlinks
|
|
||||||
. /etc/rc.status
|
|
||||||
|
|
||||||
# Reset status of this service
|
|
||||||
rc_reset
|
|
||||||
|
|
||||||
# Return values acc. to LSB for all commands but status:
|
|
||||||
# 0 - success
|
|
||||||
# 1 - generic or unspecified error
|
|
||||||
# 2 - invalid or excess argument(s)
|
|
||||||
# 3 - unimplemented feature (e.g. "reload")
|
|
||||||
# 4 - user had insufficient privileges
|
|
||||||
# 5 - program is not installed
|
|
||||||
# 6 - program is not configured
|
|
||||||
# 7 - program is not running
|
|
||||||
# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
|
|
||||||
#
|
|
||||||
# Note that starting an already running service, stopping
|
|
||||||
# or restarting a not-running service as well as the restart
|
|
||||||
# with force-reload (in case signaling is not supported) are
|
|
||||||
# considered a success.
|
|
||||||
|
|
||||||
VBOXMGR_BIN=/usr/lib/virtualbox/VBoxManage
|
|
||||||
if [[ ! -x $VBOXMGR_BIN ]]; then
|
|
||||||
echo "$VBOXMGR_BIN does not exist"
|
|
||||||
if [ "$1" = "stop" ]; then
|
|
||||||
exit 0;
|
|
||||||
else
|
|
||||||
exit 6
|
|
||||||
fi;
|
|
||||||
fi
|
|
||||||
|
|
||||||
VBOXHeadLess_BIN=/usr/lib/virtualbox/VBoxHeadless
|
|
||||||
if [[ ! -x $VBOXHeadLess_BIN ]]; then
|
|
||||||
echo "$VBOXHeadLess_BIN does not exist"
|
|
||||||
if [ "$1" = "start" ]; then
|
|
||||||
exit 6;
|
|
||||||
else
|
|
||||||
exit 0
|
|
||||||
fi;
|
|
||||||
fi
|
|
||||||
|
|
||||||
PRG=$(basename $0)
|
|
||||||
SERVICE="Virtualbox machines"
|
|
||||||
|
|
||||||
[ -r /etc/sysconfig/vbox ] && . /etc/sysconfig/vbox
|
|
||||||
|
|
||||||
start() {
|
|
||||||
|
|
||||||
N=1
|
|
||||||
for VBOX in $VBOX_AUTOSTART; do
|
|
||||||
|
|
||||||
if grep -q \; <<< "$VBOX"; then
|
|
||||||
VBOX_NAME[$N]=$(cut -d\; -f1 <<< "$VBOX")
|
|
||||||
VBOX_USER[$N]=$(cut -d\; -f2 <<< "$VBOX")
|
|
||||||
else
|
|
||||||
VBOX_NAME[$N]="$VBOX"
|
|
||||||
VBOX_USER[$N]=""
|
|
||||||
fi
|
|
||||||
N=$(($N+1))
|
|
||||||
done
|
|
||||||
|
|
||||||
VBOXES=${#VBOX_NAME[*]}
|
|
||||||
|
|
||||||
if [ $VBOXES -eq 0 ]; then
|
|
||||||
# The virtual machines have to be configured in /etc/sysconfig/vbox
|
|
||||||
echo -n "Starting $SERVICE: no virtual machines configured"
|
|
||||||
rc_status -u
|
|
||||||
else
|
|
||||||
|
|
||||||
N=1
|
|
||||||
echo -n "Starting $SERVICE: "
|
|
||||||
while [[ $N -le $VBOXES ]]; do
|
|
||||||
if [[ $N -lt $VBOXES ]]; then
|
|
||||||
echo -n "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}), "
|
|
||||||
else
|
|
||||||
echo "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})"
|
|
||||||
fi
|
|
||||||
N=$(($N+1))
|
|
||||||
done
|
|
||||||
|
|
||||||
N=1
|
|
||||||
while [[ $N -le $VBOXES ]]; do
|
|
||||||
|
|
||||||
if [[ -n "${VBOX_USER[$N]}" ]]; then
|
|
||||||
|
|
||||||
if grep --quiet --word-regexp ${VBOX_USER[$N]} /etc/passwd; then
|
|
||||||
|
|
||||||
# The tag "Name:" occurs in multiple sections. Require at least 7 blanks
|
|
||||||
# with an additional flexible amount of spaces. At the moment of writing
|
|
||||||
# 13 spaces are needed.
|
|
||||||
VBOX_RUNNING=$(su ${VBOX_USER[$N]} -c "VBoxManage list --long runningvms" |
|
|
||||||
sed -n 's/^Name:[[:blank:]]\{7\} *//p' | grep -w "${VBOX_NAME[$N]}")
|
|
||||||
|
|
||||||
if [[ -z "$VBOX_RUNNING" ]]; then
|
|
||||||
|
|
||||||
VBOX_PRESENT=$(su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN list --long vms" |
|
|
||||||
sed -n 's/^Name:[[:blank:]]\{7\} *//p' | grep -w "${VBOX_NAME[$N]}")
|
|
||||||
|
|
||||||
if [[ -n "$VBOX_PRESENT" ]]; then
|
|
||||||
|
|
||||||
# VBoxManage startvm does not result in a VM with working networking
|
|
||||||
# su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN -q startvm "${VBOX_NAME[$N]}" -type headless" > /tmp/$PRG.$$ 2>&1
|
|
||||||
# Start virtualbox in Headless mode
|
|
||||||
su ${VBOX_USER[$N]} -c "$VBOXHeadLess_BIN --startvm "${VBOX_NAME[$N]}"" > /tmp/$PRG.$$ 2>&1 &
|
|
||||||
RETVAL=$?
|
|
||||||
|
|
||||||
if [[ $RETVAL == 0 ]]; then
|
|
||||||
echo -n " Starting virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})"
|
|
||||||
rc_status -v -r
|
|
||||||
else
|
|
||||||
echo -n " Starting virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) failed with the following output: "
|
|
||||||
rc_failed; rc_status -v -r
|
|
||||||
# Give the VBOXHeadLess_BIN some time to write the output file
|
|
||||||
sleep 2
|
|
||||||
cat /tmp/$PRG.$$
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm /tmp/$PRG.$$
|
|
||||||
|
|
||||||
else
|
|
||||||
echo -n " Virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) does not exist"
|
|
||||||
rc_status -s -r
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
echo -n " Virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) is already running"
|
|
||||||
rc_status -v -r
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
echo -n " Virtual machine: ${VBOX_NAME[$N]}, VBOX_USER: ${VBOX_USER[$N]} does not exist"
|
|
||||||
rc_status -s -r
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
echo -n " Virtual machine: ${VBOX_NAME[$N]}: VBOX_USER not configured"
|
|
||||||
rc_status -s -r
|
|
||||||
fi
|
|
||||||
|
|
||||||
N=$(($N+1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
stop() {
|
|
||||||
|
|
||||||
for VBOX in $VBOX_AUTOSTART; do
|
|
||||||
|
|
||||||
if grep -q \; <<< "$VBOX"; then
|
|
||||||
VBOX_USER=$(cut -d\; -f2 <<< "$VBOX")
|
|
||||||
|
|
||||||
# Only add the user to the list, if not present yet
|
|
||||||
if ! grep -qw "$VBOX_USER" <<< "$VBOX_USERS"; then
|
|
||||||
VBOX_USERS="$VBOX_USERS $VBOX_USER"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
N=1
|
|
||||||
for VBOX_USER in $VBOX_USERS; do
|
|
||||||
VBOX_RUNNING=$(su $VBOX_USER -c "$VBOXMGR_BIN list --long runningvms" |
|
|
||||||
sed -n 's/^Name:[[:blank:]]\{7\} *//p')
|
|
||||||
for VBOX in $VBOX_RUNNING; do
|
|
||||||
VBOX_NAME[$N]="$VBOX"
|
|
||||||
VBOX_USER[$N]="$VBOX_USER"
|
|
||||||
N=$(($N+1))
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
VBOXES=${#VBOX_NAME[*]}
|
|
||||||
|
|
||||||
if [[ $VBOXES -eq 0 ]]; then
|
|
||||||
echo -n "Shutting down $SERVICE: no virtual machines running."
|
|
||||||
rc_status -s -r
|
|
||||||
else
|
|
||||||
|
|
||||||
echo -n "Shutting down $SERVICE: "
|
|
||||||
N=1
|
|
||||||
while [[ $N -le $VBOXES ]]; do
|
|
||||||
if [[ $N -lt $VBOXES ]]; then
|
|
||||||
echo -n "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}), "
|
|
||||||
else
|
|
||||||
echo "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})"
|
|
||||||
fi
|
|
||||||
N=$(($N+1))
|
|
||||||
done
|
|
||||||
|
|
||||||
N=1
|
|
||||||
while [[ $N -le $VBOXES ]]; do
|
|
||||||
|
|
||||||
echo -n " ${VBOX_NAME[$N]}: "
|
|
||||||
su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN -q controlvm "${VBOX_NAME[$N]}" savestate"
|
|
||||||
RETVAL=$?
|
|
||||||
|
|
||||||
echo -n " Shutting down virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})"
|
|
||||||
if [[ $RETVAL == $? ]]; then
|
|
||||||
rc_status -v -r
|
|
||||||
else
|
|
||||||
rc_failed; rc_status -v -r
|
|
||||||
fi
|
|
||||||
N=$(($N+1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
status() {
|
|
||||||
|
|
||||||
for VBOX in $VBOX_AUTOSTART; do
|
|
||||||
|
|
||||||
if grep -q \; <<< "$VBOX"; then
|
|
||||||
VBOX_USER=$(cut -d\; -f2 <<< "$VBOX")
|
|
||||||
|
|
||||||
# Only add the user to the list, if not present yet
|
|
||||||
if ! grep -qw "$VBOX_USER" <<< "$VBOX_USERS"; then
|
|
||||||
VBOX_USERS="$VBOX_USERS $VBOX_USER"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
N=1
|
|
||||||
for VBOX_USER in $VBOX_USERS; do
|
|
||||||
# The tag "Name:" occurs in multiple sections. Require at least 7 blanks
|
|
||||||
# with an additional flexible amount of spaces. At the moment of writing
|
|
||||||
# 13 spaces are needed.
|
|
||||||
VBOX_RUNNING=$(su $VBOX_USER -c "$VBOXMGR_BIN list --long runningvms" |
|
|
||||||
sed -n 's/^Name:[[:blank:]]\{7\} *//p')
|
|
||||||
for VBOX in $VBOX_RUNNING; do
|
|
||||||
VBOX_NAME[$N]="$VBOX"
|
|
||||||
VBOX_USER[$N]="$VBOX_USER"
|
|
||||||
N=$(($N+1))
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
VBOXES=${#VBOX_NAME[*]}
|
|
||||||
|
|
||||||
if [[ $VBOXES -eq 0 ]]; then
|
|
||||||
echo -n "$SERVICE: no virtual machines running."
|
|
||||||
rc_status -s -r
|
|
||||||
else
|
|
||||||
N=1
|
|
||||||
while [[ $N -le $VBOXES ]]; do
|
|
||||||
# The long sed line changes the output from:
|
|
||||||
# running (since 2010-04-25T14:51:57.373000000)
|
|
||||||
# to:
|
|
||||||
# running (since 2010-04-25 14:51:57)
|
|
||||||
#
|
|
||||||
STATE=$(su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN showvminfo "${VBOX_NAME[$N]}"" |
|
|
||||||
sed -n 's/State: *//p' |
|
|
||||||
sed 's/\([0-9][0-9]\)\.[0-9]\{9\}/\1/;s/\([0-9][0-9]\)T\([0-9][0-9]\)/\1 \2/')
|
|
||||||
printf " %-56s %s" "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}):" "$STATE"
|
|
||||||
rc_status -v
|
|
||||||
N=$(($N+1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
start
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
stop
|
|
||||||
;;
|
|
||||||
restart|force-reload)
|
|
||||||
stop
|
|
||||||
start
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $PRG {start|stop|restart|force-reload|status}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
@ -1,3 +1,24 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 7 20:29:05 UTC 2017 - Larry.Finger@lwfinger.net
|
||||||
|
|
||||||
|
- Update vboxconfig.sh to fix problems noted in bsc#1042726
|
||||||
|
Disable pae build for 32-bit kernels.
|
||||||
|
Added missing commands to keep mkinitrd from being called twice during installation of host kernel modules. bsc#105248.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 7 10:24:42 UTC 2017 - schwab@suse.de
|
||||||
|
|
||||||
|
- internal-headers.patch: fix invalid use of internal headers, enable
|
||||||
|
POSIX extensions
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 3 17:37:58 UTC 2017 - hpj@urpla.net
|
||||||
|
|
||||||
|
- reorganize vbox autostart, coping with systemd:
|
||||||
|
- add /usr/lib/virtualbox/vboxes.sh (based on /etc/init.d/vboxes)
|
||||||
|
- add /usr/lib/systemd/system/vboxes.service
|
||||||
|
- remove /etc/init.d/vboxes
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sat Jul 29 20:55:24 UTC 2017 - Larry.Finger@lwfinger.net
|
Sat Jul 29 20:55:24 UTC 2017 - Larry.Finger@lwfinger.net
|
||||||
|
|
||||||
|
@ -44,8 +44,6 @@ Source8: %{name}-guest-preamble
|
|||||||
Source9: %{name}-wrapper.sh
|
Source9: %{name}-wrapper.sh
|
||||||
Source10: %{name}-LocalConfig.kmk
|
Source10: %{name}-LocalConfig.kmk
|
||||||
Source11: %{name}-60-vboxdrv.rules
|
Source11: %{name}-60-vboxdrv.rules
|
||||||
# init script to start virtual boxes during boot, to be configured via /etc/sysconfig/vbox bnc#582398
|
|
||||||
Source12: %{name}-vboxes
|
|
||||||
Source13: %{name}-sysconfig.vbox
|
Source13: %{name}-sysconfig.vbox
|
||||||
Source14: vboxdrv.service
|
Source14: vboxdrv.service
|
||||||
Source15: vboxadd-service.service
|
Source15: vboxadd-service.service
|
||||||
@ -53,6 +51,9 @@ Source16: vboxconfig.sh
|
|||||||
Source17: vboxguestconfig.sh
|
Source17: vboxguestconfig.sh
|
||||||
Source18: fix_usb_rules.sh
|
Source18: fix_usb_rules.sh
|
||||||
Source19: vboxdrv.sh
|
Source19: vboxdrv.sh
|
||||||
|
# init script to start virtual boxes during boot, to be configured via /etc/sysconfig/vbox bnc#582398
|
||||||
|
Source20: vboxes.sh
|
||||||
|
Source21: vboxes.service
|
||||||
Source98: %{name}-rpmlintrc
|
Source98: %{name}-rpmlintrc
|
||||||
Source99: %{name}-patch-source.sh
|
Source99: %{name}-patch-source.sh
|
||||||
#rework init scripts to fit suse needs
|
#rework init scripts to fit suse needs
|
||||||
@ -104,6 +105,8 @@ Patch115: vbox_fix_for_gcc7.patch
|
|||||||
Patch116: Fix_for_server_1.19.patch
|
Patch116: Fix_for_server_1.19.patch
|
||||||
# Fix for missing cleanup in KMS support
|
# Fix for missing cleanup in KMS support
|
||||||
Patch117: fix_KMS_support.patch
|
Patch117: fix_KMS_support.patch
|
||||||
|
# Fix invalid use of internal headers
|
||||||
|
Patch118: internal-headers.patch
|
||||||
#
|
#
|
||||||
BuildRequires: LibVNCServer-devel
|
BuildRequires: LibVNCServer-devel
|
||||||
BuildRequires: SDL-devel
|
BuildRequires: SDL-devel
|
||||||
@ -237,7 +240,7 @@ websrv GUI part for %{name}.
|
|||||||
%package host-KMP
|
%package host-KMP
|
||||||
Summary: Host kernel module for VirtualBox
|
Summary: Host kernel module for VirtualBox
|
||||||
Group: System/Emulators/PC
|
Group: System/Emulators/PC
|
||||||
%kernel_module_package -t %{_builddir}/virtualbox-kmp-template -p %{SOURCE7} -n %{name}-host -f %{SOURCE5} -x kdump um xen xenpae pv
|
%kernel_module_package -t %{_builddir}/virtualbox-kmp-template -p %{SOURCE7} -n %{name}-host -f %{SOURCE5} -x kdump um xen pae xenpae pv
|
||||||
|
|
||||||
%description host-KMP
|
%description host-KMP
|
||||||
This package contains the kernel-module for VirtualBox.
|
This package contains the kernel-module for VirtualBox.
|
||||||
@ -246,7 +249,7 @@ This package contains the kernel-module for VirtualBox.
|
|||||||
%package guest-KMP
|
%package guest-KMP
|
||||||
Summary: Guest kernel modules for VirtualBox
|
Summary: Guest kernel modules for VirtualBox
|
||||||
Group: System/Emulators/PC
|
Group: System/Emulators/PC
|
||||||
%kernel_module_package -t %{_builddir}/virtualbox-kmp-template -p %{SOURCE8} -n %{name}-guest -f %{SOURCE6} -x kdump um xen xenpae pv
|
%kernel_module_package -t %{_builddir}/virtualbox-kmp-template -p %{SOURCE8} -n %{name}-guest -f %{SOURCE6} -x kdump um xen pae xenpae pv
|
||||||
|
|
||||||
%description guest-KMP
|
%description guest-KMP
|
||||||
This package contains the kernel-module for VirtualBox.
|
This package contains the kernel-module for VirtualBox.
|
||||||
@ -385,6 +388,7 @@ as an "extpack" for VirtualBox. The implementation is licensed under GPL.
|
|||||||
%patch115 -p1
|
%patch115 -p1
|
||||||
%patch116 -p1
|
%patch116 -p1
|
||||||
%patch117 -p1
|
%patch117 -p1
|
||||||
|
%patch118 -p1
|
||||||
|
|
||||||
#copy user manual
|
#copy user manual
|
||||||
cp %{SOURCE1} UserManual.pdf
|
cp %{SOURCE1} UserManual.pdf
|
||||||
@ -528,10 +532,13 @@ echo "entering virtualbox-kmp-guest and virtualbox-kmp-host install section"
|
|||||||
####################################################################################
|
####################################################################################
|
||||||
export INSTALL_MOD_PATH=%{buildroot}
|
export INSTALL_MOD_PATH=%{buildroot}
|
||||||
export INSTALL_MOD_DIR=misc
|
export INSTALL_MOD_DIR=misc
|
||||||
#to install modules we use here similar steps like in build phase, go trought the all modules :
|
#Keep the install process from calling mkinitrd. The VB kernel modules are not in initrd. bsc#1052428
|
||||||
|
export INITRD_IN_POSTTRANS=1
|
||||||
|
export KMP_NEEDS_MKINITRD=0
|
||||||
|
#to install modules we use here similar steps like in build phase, go through all the modules :
|
||||||
for module_name in vbox{drv,netflt,pci,netadp,guest,sf,video}
|
for module_name in vbox{drv,netflt,pci,netadp,guest,sf,video}
|
||||||
do
|
do
|
||||||
#and trought the all flavors
|
#and through the all flavors
|
||||||
for flavor in %{flavors_to_build}; do
|
for flavor in %{flavors_to_build}; do
|
||||||
#to install modules use Makefile from %{_prefix}/src/linux-obj/%_target_cpu/$flavor and builds from $PWD/modules_build_dir/$flavor/$module_name
|
#to install modules use Makefile from %{_prefix}/src/linux-obj/%_target_cpu/$flavor and builds from $PWD/modules_build_dir/$flavor/$module_name
|
||||||
make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules_install M=$PWD/modules_build_dir/$flavor/$module_name
|
make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules_install M=$PWD/modules_build_dir/$flavor/$module_name
|
||||||
@ -631,19 +638,23 @@ install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox
|
|||||||
# modify and install the vboxdrv init script
|
# modify and install the vboxdrv init script
|
||||||
#sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" \
|
#sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" \
|
||||||
# src/VBox/Installer/linux/vboxdrv.sh
|
# src/VBox/Installer/linux/vboxdrv.sh
|
||||||
install -m 0755 %{SOURCE19} %{buildroot}%{_vbox_instdir}/vboxdrv.sh
|
|
||||||
ln -s %{_vbox_instdir}/vboxdrv.sh %{buildroot}%{_sbindir}/rcvboxdrv
|
|
||||||
# Service files to load kernel modules on boot
|
# Service files to load kernel modules on boot
|
||||||
install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.service
|
install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.service
|
||||||
install -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/vboxadd-service.service
|
install -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/vboxadd-service.service
|
||||||
install -m 0755 %{SOURCE16} %{buildroot}/sbin/vboxconfig
|
install -m 0755 %{SOURCE16} %{buildroot}/sbin/vboxconfig
|
||||||
install -m 0755 %{SOURCE17} %{buildroot}/sbin/vboxguestconfig
|
install -m 0755 %{SOURCE17} %{buildroot}/sbin/vboxguestconfig
|
||||||
install -m 0755 %{SOURCE18} %{buildroot}/sbin/vbox-fix-usb-rules.sh
|
install -m 0755 %{SOURCE18} %{buildroot}/sbin/vbox-fix-usb-rules.sh
|
||||||
|
install -m 0755 %{SOURCE19} %{buildroot}%{_vbox_instdir}/vboxdrv.sh
|
||||||
|
install -m 0755 %{SOURCE20} %{buildroot}%{_vbox_instdir}/vboxes.sh
|
||||||
|
install -m 0644 %{SOURCE21} %{buildroot}%{_unitdir}/vboxes.service
|
||||||
|
ln -s %{_vbox_instdir}/vboxes.sh %{buildroot}%{_sbindir}/rcvboxes
|
||||||
|
ln -s %{_vbox_instdir}/vboxdrv.sh %{buildroot}%{_sbindir}/rcvboxdrv
|
||||||
|
|
||||||
# Init script to start virtual boxes during boot
|
# Init script to start virtual boxes during boot
|
||||||
install -m 755 %{SOURCE12} %{buildroot}%{_sysconfdir}/init.d/vboxes
|
|
||||||
ln -s %{_sysconfdir}/init.d/vboxes %{buildroot}%{_sbindir}/rcvboxes
|
|
||||||
ln -sf %{_unitdir}/vboxdrv.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxdrv.service
|
ln -sf %{_unitdir}/vboxdrv.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxdrv.service
|
||||||
ln -sf %{_unitdir}/vboxadd-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxadd-service.service
|
ln -sf %{_unitdir}/vboxadd-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxadd-service.service
|
||||||
|
ln -sf %{_unitdir}/vboxes.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxes.service
|
||||||
# sysconfig file intended for vboxes script
|
# sysconfig file intended for vboxes script
|
||||||
install -d -m 755 %{buildroot}%{_var}/adm/fillup-templates
|
install -d -m 755 %{buildroot}%{_var}/adm/fillup-templates
|
||||||
install -m 640 %{SOURCE13} %{buildroot}%{_var}/adm/fillup-templates/sysconfig.vbox
|
install -m 640 %{SOURCE13} %{buildroot}%{_var}/adm/fillup-templates/sysconfig.vbox
|
||||||
@ -867,11 +878,13 @@ export DISABLE_RESTART_ON_UPDATE=yes
|
|||||||
%dir %{_unitdir}
|
%dir %{_unitdir}
|
||||||
%dir %{_unitdir}/multi-user.target.wants
|
%dir %{_unitdir}/multi-user.target.wants
|
||||||
/usr/lib/virtualbox/vboxdrv.sh
|
/usr/lib/virtualbox/vboxdrv.sh
|
||||||
|
/usr/lib/virtualbox/vboxes.sh
|
||||||
%{_unitdir}/vboxdrv.service
|
%{_unitdir}/vboxdrv.service
|
||||||
|
%{_unitdir}/vboxes.service
|
||||||
%{_unitdir}/multi-user.target.wants/vboxdrv.service
|
%{_unitdir}/multi-user.target.wants/vboxdrv.service
|
||||||
|
%{_unitdir}/multi-user.target.wants/vboxes.service
|
||||||
%dir %{_sysconfdir}/vbox
|
%dir %{_sysconfdir}/vbox
|
||||||
%config %{_sysconfdir}/vbox/vbox.cfg
|
%config %{_sysconfdir}/vbox/vbox.cfg
|
||||||
%{_sysconfdir}/init.d/vboxes
|
|
||||||
%{_var}/adm/fillup-templates/sysconfig.vbox
|
%{_var}/adm/fillup-templates/sysconfig.vbox
|
||||||
%{_sbindir}/rcvboxes
|
%{_sbindir}/rcvboxes
|
||||||
%{_sbindir}/rcvboxdrv
|
%{_sbindir}/rcvboxdrv
|
||||||
|
Loading…
Reference in New Issue
Block a user