Sign Up
Log In
Sign Up
Username:
*
Email:
*
Password:
*
Password confirmation:
*
or
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Virtualization
virtualbox
build.specials.obscpio
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File build.specials.obscpio of Package virtualbox
07070100000000000081a400000000000000000000000168f8ed6300000005000000000000000000000000000000000000000b00000000.gitignore.osc 07070100000001000081ed00000000000000000000000168f8ed630000014f000000000000000000000000000000000000001100000000fix_usb_rules.sh#!/bin/bash # script to disable USB passthru in /etc/udev/rules.d/60-vboxdrv.rules # if already disabled, clear the comment character sed -i 's/#SUBSYSTEM==\"usb/SUBSYSTEM==\"usb/' /usr/lib/udev/rules.d/60-vboxdrv.rules # now comment the usb lines sed -i 's/SUBSYSTEM==\"usb/#SUBSYSTEM==\"usb/' /usr/lib/udev/rules.d/60-vboxdrv.rules 07070100000002000081ed00000000000000000000000168f8ed6300000994000000000000000000000000000000000000001200000000update-extpack.sh#!/bin/bash # Script to update extpack # The idea for this method and the original code came from Larry Len Rainey. # # This implementation by Larry Finger # Define some symbols and determine the current version of VB VBOXMANAGE=/usr/bin/VBoxManage AWK=/usr/bin/awk GREP=/usr/bin/grep WGET=/usr/bin/wget VBOX_VERSION=`$VBOXMANAGE --version | $AWK -F_ {'print $1'}` # Define a symbol for the name of the extpack matching the VB version VBOX_EXT=`echo Oracle_VM_VirtualBox_Extension_Pack-${VBOX_VERSION}.vbox-extpack` # Full path to extpack license file LICENSE_PATH="/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/ExtPack-license.rtf" # Determine the installed version of extpack, if any. EXTPACK_CURRENT=`$VBOXMANAGE list extpacks | $GREP -A1 "Oracle VM VirtualBox Extension Pack" | $GREP Version | $AWK -F\ {'print $2'}` # The extpacks are licensed under a Personal Use and Evaluation License # At some point, the user must agree to the conditions of that license. # If no extpack is installed on this system, then there is no agreement, # thus this script cannot install the extpack. # # This situation applies to new installations that could conform to the license, # but more importantly, it handles commercial setups that have not purchased # the necessary license. # Check if extpack is currently installed. If not exit if [ -z $EXTPACK_CURRENT ]; then exit 0 fi # # An extpack has been installed on this system. Now we need to check if # it was issued under the current version of the license. #Note to maintainers: The "version 11" in the next command must be changed # manually when Oracle revises the license. LICENSE_CHECK=`$GREP "version 11" $LICENSE_PATH | $AWK -F\ {'print $2'}` if [ -z $LICENSE_CHECK ]; then # New license version does not match the current installation. # The user will need to agree to the new version, thus we do nothing here. exit 0 fi if [ $VBOX_VERSION == $EXTPACK_CURRENT ]; then # The extpack currently installed matches - we are done exit 0 fi # A new version of extpack is needed - switch to directory that can be written, and download it pushd ~ > /dev/null 2>&1 $WGET https://download.virtualbox.org/virtualbox/$VBOX_VERSION/$VBOX_EXT > /dev/null 2>&1 # Now install it echo Y | $VBOXMANAGE extpack install --replace $VBOX_EXT > /dev/null 2>&1 # Clean up by deleting downloaded file and restoring the original working directory rm -f $VBOX_EXT popd ~ > /dev/null 2>&1 07070100000003000081ed00000000000000000000000168f8ed6300001025000000000000000000000000000000000000001900000000vboxautostart-service.sh#!/bin/sh # $Id: vboxautostart-service.sh 143795 2021-04-15 11:42:37Z vgalitsy $ ## @file # VirtualBox autostart service init script. # # # Copyright (C) 2012-2020 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; # you can redistribute it and/or modify it under the terms of the GNU # General Public License (GPL) as published by the Free Software # Foundation, in version 2 as it comes in the "COPYING" file of the # VirtualBox OSE distribution. VirtualBox OSE is distributed in the # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. # # chkconfig: 345 35 65 # description: VirtualBox autostart service # ### BEGIN INIT INFO # Provides: vboxautostart-service # Required-Start: vboxdrv # Required-Stop: vboxdrv # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: VirtualBox autostart service ### END INIT INFO PATH=$PATH:/bin:/sbin:/usr/sbin SCRIPTNAME=vboxautostart-service.sh [ -f /etc/debian_release -a -f /lib/lsb/init-functions ] || NOLSB=yes [ -f /etc/vbox/vbox.cfg ] && . /etc/vbox/vbox.cfg if [ -n "$INSTALL_DIR" ]; then binary="$INSTALL_DIR/VBoxAutostart" else binary="/usr/lib/virtualbox/VBoxAutostart" fi # silently exit if the package was uninstalled but not purged, # applies to Debian packages only (but shouldn't hurt elsewhere) [ ! -f /etc/debian_release -o -x $binary ] || exit 0 [ -r /etc/default/virtualbox ] && . /etc/default/virtualbox # Preamble for Gentoo if [ "`which $0`" = "/sbin/rc" ]; then shift fi begin_msg() { test -n "${2}" && echo "${SCRIPTNAME}: ${1}." logger -t "${SCRIPTNAME}" "${1}." } succ_msg() { logger -t "${SCRIPTNAME}" "${1}." } fail_msg() { echo "${SCRIPTNAME}: failed: ${1}." >&2 logger -t "${SCRIPTNAME}" "failed: ${1}." } start_daemon() { usr="$1" shift su - $usr -c "$*" } if which start-stop-daemon >/dev/null 2>&1; then start_daemon() { usr="$1" shift bin="$1" shift start-stop-daemon --chuid $usr --start --exec $bin -- $@ } fi vboxdrvrunning() { lsmod | grep -q "vboxdrv[^_-]" } valid_db_entry() { entry="$1" [ -z "$entry" ] && return 1 user="$2" [ -z "$user" ] && return 1 user_name=$(id -n -u "$user" 2>/dev/null) [ -z "$user_name" ] && return 1 user_id=$(id -u "$user" 2>/dev/null) # Verify that @user identifies a user *by name* (i.e. not a numeric id). # Careful, all numeric user names are legal. if [ "$user_id" = "$user" ] && [ "$user_name" != "$user" ]; then return 1 fi # Verify whether file name is the same as file owner name. [ -z "$(find "$entry" -user "$user" -type f 2>/dev/null)" ] && return 1 return 0 } start() { [ -z "$VBOXAUTOSTART_DB" ] && exit 0 [ -z "$VBOXAUTOSTART_CONFIG" ] && exit 0 begin_msg "Starting VirtualBox VMs configured for autostart" console; vboxdrvrunning || { fail_msg "VirtualBox kernel module not loaded!" exit 0 } PARAMS="--background --start --config $VBOXAUTOSTART_CONFIG" # prevent inheriting this setting to VBoxSVC unset VBOX_RELEASE_LOG_DEST for entry in "$VBOXAUTOSTART_DB"/*.start do user=$(basename "$entry" .start) [ "$user" = "*" ] && break valid_db_entry "$entry" "$user" || continue start_daemon "$user" "$binary" $PARAMS > /dev/null 2>&1 done return $RETVAL } stop() { [ -z "$VBOXAUTOSTART_DB" ] && exit 0 [ -z "$VBOXAUTOSTART_CONFIG" ] && exit 0 PARAMS="--stop --config $VBOXAUTOSTART_CONFIG" # prevent inheriting this setting to VBoxSVC unset VBOX_RELEASE_LOG_DEST for entry in "$VBOXAUTOSTART_DB"/*.stop do user=$(basename "$entry" .stop) [ "$user" = "*" ] && break valid_db_entry "$entry" "$user" || continue start_daemon "$user" "$binary" $PARAMS > /dev/null 2>&1 done return $RETVAL } case "$1" in start) start ;; stop) stop ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit $RETVAL 07070100000004000081ed00000000000000000000000168f8ed63000007b0000000000000000000000000000000000000000e00000000vboxconfig.sh#!/bin/bash # # Script to build VirtualBox host kernel modules # Copyright C 2017 by Larry Finger # # This script is part of the openSUSE VirtualBox package # SOURCE="/usr/src/kernel-modules/virtualbox/src" LOGFILE="/var/log/virtualbox.log" INCLUDE="/lib/modules/`uname -r`/build/include" # # Test if vboxdrv module loaded. If it is, skip everything else loaded=$(lsmod | grep vboxdrv) if [ -n "$loaded" ] ; then echo "Kernel modules are loaded, unload them via" echo "systemctl stop vboxdrv.service if you wish to rebuild them." echo "Quitting .." exit 1 fi # # Check if virtualbox-host-source is installed, quit if not if ! rpm -qf "$SOURCE/Makefile" &>/dev/null ; then echo "Sources for building host modules are not present," echo "Use 'sudo zypper install virtualbox-host-source kernel-devel kernel-default-devel' to install them. Quitting .." exit 1 fi # # 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 the version of virtualbox package." echo "This situation is probably not fatal, thus we will try to continue .." fi # Prerequisites are available, start build pushd $SOURCE > /dev/null 2>&1 echo "Building kernel modules..." make clean &>/dev/null make > $LOGFILE 2>&1 if [ "$?" -ne 0 ] ; then echo "" echo "Build of VirtualBox host kernel modules failed." echo "Look at $LOGFILE to find reasons." popd > /dev/null 2>&1 exit 1 else echo "Kernel modules built correctly. They will now be installed." fi make install >> $LOGFILE 2>&1 if [ "$?" -ne 0 ] ; then echo "" echo "Installation of VirtualBox host kernel modules failed." echo "Look at $LOGFILE to find reasons." popd > /dev/null 2>&1 exit 1 fi depmod -a modprobe -av vboxnetflt vboxnetadp popd > /dev/null 2>&1 echo "Kernel modules are installed and loaded." exit 0 07070100000005000081ed00000000000000000000000168f8ed630000310c000000000000000000000000000000000000000b00000000vboxdrv.sh#! /bin/sh # Oracle VM VirtualBox # Linux kernel module init script # # Copyright (C) 2006-2015 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; # you can redistribute it and/or modify it under the terms of the GNU # General Public License (GPL) as published by the Free Software # Foundation, in version 2 as it comes in the "COPYING" file of the # VirtualBox OSE distribution. VirtualBox OSE is distributed in the # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. # # chkconfig: 345 20 80 # description: VirtualBox Linux kernel module # ### BEGIN INIT INFO # Provides: vboxdrv # Required-Start: $syslog $remote_fs # Required-Stop: $syslog $remote_fs # Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Short-Description: VirtualBox Linux module # Description: VirtualBox Linux kernel module ### END INIT INFO PATH=/usr/sbin:/usr/bin:$PATH DEVICE=/dev/vboxdrv LOG="/var/log/vbox-install.log" MODPROBE=/usr/sbin/modprobe SCRIPTNAME=vboxdrv.sh INSTALL_DIR=/usr/lib/virtualbox # The below is GNU-specific. See VBox.sh for the longer Solaris/OS X version. TARGET=`readlink -e -- "${0}"` || exit 1 SCRIPT_DIR="${TARGET%/[!/]*}" if $MODPROBE -c | grep -q '^allow_unsupported_modules *0'; then MODPROBE="$MODPROBE --allow-unsupported-modules" fi [ -f /etc/vbox/vbox.cfg ] && . /etc/vbox/vbox.cfg export BUILD_TYPE export USERNAME export USER=$USERNAME VIRTUALBOX="${INSTALL_DIR}/VirtualBox" VBOXMANAGE="${INSTALL_DIR}/VBoxManage" BUILDINTMP="${MODULE_SRC}/build_in_tmp" if test -u "${VBOXMANAGE}"; then GROUP=root DEVICE_MODE=0600 else GROUP=vboxusers DEVICE_MODE=0660 fi [ -r /etc/default/virtualbox ] && . /etc/default/virtualbox begin_msg() { test -n "${2}" && echo "${SCRIPTNAME}: ${1}." logger -t "${SCRIPTNAME}" "${1}." } succ_msg() { logger -t "${SCRIPTNAME}" "${1}." } fail_msg() { echo "${SCRIPTNAME}: failed: ${1}." >&2 logger -t "${SCRIPTNAME}" "failed: ${1}." } failure() { fail_msg "$1" exit 1 } running() { lsmod | grep -q "$1[^_-]" } ## Output the vboxdrv part of our udev rule. This is redirected to the right file. udev_write_vboxdrv() { VBOXDRV_GRP="$1" VBOXDRV_MODE="$2" echo "KERNEL==\"vboxdrv\", NAME=\"vboxdrv\", OWNER=\"root\", GROUP=\"$VBOXDRV_GRP\", MODE=\"$VBOXDRV_MODE\"" echo "KERNEL==\"vboxdrvu\", NAME=\"vboxdrvu\", OWNER=\"root\", GROUP=\"$VBOXDRV_GRP\", MODE=\"0660\"" echo "KERNEL==\"vboxnetctl\", NAME=\"vboxnetctl\", OWNER=\"root\", GROUP=\"$VBOXDRV_GRP\", MODE=\"$VBOXDRV_MODE\"" } ## Output the USB part of our udev rule. This is redirected to the right file. udev_write_usb() { INSTALLATION_DIR="$1" USB_GROUP="$2" echo "SUBSYSTEM==\"usb_device\", ACTION==\"add\", RUN+=\"$INSTALLATION_DIR/VBoxCreateUSBNode.sh \$major \$minor \$attr{bDeviceClass}${USB_GROUP}\"" echo "SUBSYSTEM==\"usb\", ACTION==\"add\", ENV{DEVTYPE}==\"usb_device\", RUN+=\"$INSTALLATION_DIR/VBoxCreateUSBNode.sh \$major \$minor \$attr{bDeviceClass}${USB_GROUP}\"" echo "SUBSYSTEM==\"usb_device\", ACTION==\"remove\", RUN+=\"$INSTALLATION_DIR/VBoxCreateUSBNode.sh --remove \$major \$minor\"" echo "SUBSYSTEM==\"usb\", ACTION==\"remove\", ENV{DEVTYPE}==\"usb_device\", RUN+=\"$INSTALLATION_DIR/VBoxCreateUSBNode.sh --remove \$major \$minor\"" } ## Generate our udev rule file. This takes a change in udev rule syntax in ## version 55 into account. It only creates rules for USB for udev versions ## recent enough to support USB device nodes. generate_udev_rule() { VBOXDRV_GRP="$1" # The group owning the vboxdrv device VBOXDRV_MODE="$2" # The access mode for the vboxdrv device INSTALLATION_DIR="$3" # The directory VirtualBox is installed in USB_GROUP="$4" # The group that has permission to access USB devices NO_INSTALL="$5" # Set this to "1" to remove but not re-install rules # Extra space! case "$USB_GROUP" in ?*) USB_GROUP=" $USB_GROUP" ;; esac case "$NO_INSTALL" in "1") return ;; esac udev_write_vboxdrv "$VBOXDRV_GRP" "$VBOXDRV_MODE" udev_write_usb "$INSTALLATION_DIR" "$USB_GROUP" } ## Install udev rule (disable with INSTALL_NO_UDEV=1 in ## /etc/default/virtualbox). install_udev() { VBOXDRV_GRP="$1" # The group owning the vboxdrv device VBOXDRV_MODE="$2" # The access mode for the vboxdrv device INSTALLATION_DIR="$3" # The directory VirtualBox is installed in USB_GROUP="$4" # The group that has permission to access USB devices NO_INSTALL="$5" # Set this to "1" to remove but not re-install rules if test -d /etc/udev/rules.d; then generate_udev_rule "$VBOXDRV_GRP" "$VBOXDRV_MODE" "$INSTALLATION_DIR" \ "$USB_GROUP" "$NO_INSTALL" fi # Remove old udev description file rm -f /etc/udev/rules.d/10-vboxdrv.rules 2> /dev/null } ## Create a usb device node for a given sysfs path to a USB device. install_create_usb_node_for_sysfs() { path="$1" # sysfs path for the device usb_createnode="$2" # Path to the USB device node creation script usb_group="$3" # The group to give ownership of the node to if test -r "${path}/dev"; then dev="`cat "${path}/dev" 2> /dev/null`" major="`expr "$dev" : '\(.*\):' 2> /dev/null`" minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null`" class="`cat ${path}/bDeviceClass 2> /dev/null`" sh "${usb_createnode}" "$major" "$minor" "$class" \ "${usb_group}" 2>/dev/null fi } udev_rule_file=/etc/udev/rules.d/60-vboxdrv.rules sysfs_usb_devices="/sys/bus/usb/devices/*" ## Install udev rules and create device nodes for usb access setup_usb() { VBOXDRV_GRP="$1" # The group that should own /dev/vboxdrv VBOXDRV_MODE="$2" # The mode to be used for /dev/vboxdrv INSTALLATION_DIR="$3" # The directory VirtualBox is installed in USB_GROUP="$4" # The group that should own the /dev/vboxusb device # nodes unless INSTALL_NO_GROUP=1 in # /etc/default/virtualbox. Optional. usb_createnode="$INSTALLATION_DIR/VBoxCreateUSBNode.sh" # install udev rule (disable with INSTALL_NO_UDEV=1 in # /etc/default/virtualbox) if [ "$INSTALL_NO_GROUP" != "1" ]; then usb_group=$USB_GROUP vboxdrv_group=$VBOXDRV_GRP else usb_group=root vboxdrv_group=root fi install_udev "${vboxdrv_group}" "$VBOXDRV_MODE" \ "$INSTALLATION_DIR" "${usb_group}" \ "$INSTALL_NO_UDEV" > ${udev_rule_file} # Build our device tree for i in ${sysfs_usb_devices}; do # This line intentionally without quotes. install_create_usb_node_for_sysfs "$i" "${usb_createnode}" \ "${usb_group}" done } cleanup_usb() { # Remove udev description file rm -f /etc/udev/rules.d/60-vboxdrv.rules rm -f /etc/udev/rules.d/10-vboxdrv.rules # Remove our USB device tree rm -rf /dev/vboxusb } start_drv() { begin_msg "Starting VirtualBox services" console if [ -d /proc/xen ]; then failure "Running VirtualBox in a Xen environment is not supported" fi if ! running vboxdrv; then if ! rm -f $DEVICE; then failure "Cannot remove $DEVICE" fi if ! $MODPROBE vboxdrv > /dev/null 2>&1; then /usr/sbin/vboxconfig if ! $MODPROBE vboxdrv > /dev/null 2>&1; then failure "modprobe vboxdrv failed. Please use 'dmesg' to find out why" fi fi sleep .2 fi # ensure the character special exists if [ ! -c $DEVICE ]; then MAJOR=`sed -n 's;\([0-9]\+\) vboxdrv$;\1;p' /proc/devices` if [ ! -z "$MAJOR" ]; then MINOR=0 else MINOR=`sed -n 's;\([0-9]\+\) vboxdrv$;\1;p' /proc/extra` if [ ! -z "$MINOR" ]; then MAJOR=10 fi fi if [ -z "$MAJOR" ]; then rmmod vboxdrv 2>/dev/null failure "Cannot locate the VirtualBox device" fi if ! mknod -m 0660 $DEVICE c $MAJOR $MINOR 2>/dev/null; then rmmod vboxdrv 2>/dev/null failure "Cannot create device $DEVICE with major $MAJOR and minor $MINOR" fi fi # ensure permissions if ! $MODPROBE vboxnetflt > /dev/null 2>&1; then failure "modprobe vboxnetflt failed. Please use 'dmesg' to find out why" fi if ! $MODPROBE vboxnetadp > /dev/null 2>&1; then failure "modprobe vboxnetadp failed. Please use 'dmesg' to find out why" fi # Create the /dev/vboxusb directory if the host supports that method # of USB access. The USB code checks for the existance of that path. if grep -q usb_device /proc/devices; then mkdir -p -m 0750 /dev/vboxusb 2>/dev/null chown root:vboxusers /dev/vboxusb 2>/dev/null fi succ_msg "VirtualBox services started" } stop_drv() { begin_msg "Stopping VirtualBox services" console if running vboxnetadp; then if ! rmmod vboxnetadp 2>/dev/null; then failure "Cannot unload module vboxnetadp" fi fi if running vboxdrv; then if running vboxnetflt; then if ! rmmod vboxnetflt 2>/dev/null; then failure "Cannot unload module vboxnetflt" fi fi if ! rmmod vboxdrv 2>/dev/null; then failure "Cannot unload module vboxdrv" fi if ! rm -f $DEVICE; then failure "Cannot unlink $DEVICE" fi fi succ_msg "VirtualBox services stopped" } cleanup_vb() { for i in /lib/modules/*; do # We could just do "rm -f", but we only want to try deleting folders if # we are sure they were ours, i.e. they had our modules in beforehand. if test -e "${i}/extra/vboxdrv.ko" \ || test -e "${i}/extra/vboxnetadp.ko" \ || test -e "${i}/extra/vboxnetflt.ko"; then rm -f "${i}/extra/vboxdrv.ko" "${i}/extra/vboxnetadp.ko" \ "${i}/extra/vboxnetflt.ko" # Remove the kernel version folder if it was empty except for us. test "`echo ${i}/extra/* ${i}/extra/.?* ${i}/* ${i}/.?*`" \ = "${i}/extra/* ${i}/extra/.. ${i}/extra ${i}/.." && rmdir "${i}/extra" "${i}" # We used to leave empty folders. version=`expr "${i}" : "/lib/modules/\(.*\)"` depmod -a "${version}" fi done } # setup_script setup_vb() { # Try to build the host kernel modules in case prepackaging has failed /usr/sbin/vboxconfig } dmnstatus() { if running vboxdrv; then str="vboxdrv" if running vboxnetflt; then str="$str, vboxnetflt" if running vboxnetadp; then str="$str, vboxnetadp" fi fi echo "VirtualBox kernel modules ($str) are loaded." for i in $SHUTDOWN_USERS; do # don't create the ipcd directory with wrong permissions! if [ -d /tmp/.vbox-$i-ipc ]; then export VBOX_IPC_SOCKETID="$i" VMS=`$VBOXMANAGE --nologo list runningvms | sed -e 's/^".*".*{\(.*\)}/\1/' 2>/dev/null` if [ -n "$VMS" ]; then echo "The following VMs are currently running:" for v in $VMS; do echo " $v" done fi fi done else echo "VirtualBox kernel module is not loaded." fi } case "$1" in start) start_drv ;; stop) stop_drv ;; restart) "$0" stop && "$0" start ;; setup) # Create udev rule and USB device nodes. ## todo Wouldn't it make more sense to install the rule to /lib/udev? This ## is not a user-created configuration file after all. ## todo Do we need a udev rule to create /dev/vboxdrv[u] at all? We have ## working fall-back code here anyway, and the "right" code is more complex ## than the fall-back. Unnecessary duplication? stop_drv && cleanup_vb setup_usb "$GROUP" "$DEVICE_MODE" "$INSTALL_DIR" setup_vb && start_drv ;; cleanup) stop_drv && cleanup_vb cleanup_usb ;; force-reload) "$0" stop "$0" start ;; status) dmnstatus ;; *) echo "Usage: $0 {start|stop|stop_vms|restart|force-reload|status}" exit 1 esac exit 0 07070100000006000081ed00000000000000000000000168f8ed6300000840000000000000000000000000000000000000001300000000vboxguestconfig.sh#!/bin/bash # # Script to build VirtualBox guest kernel modules # Copyright C 2017 by Larry Finger # # This script is part of the openSUSE VirtualBox package # SOURCE="/usr/src/kernel-modules/" LOGFILE="/var/log/virtualbox.log" INCLUDE="/lib/modules/`uname -r`/build/include" # # Test if vboxguest module loaded. If it is, skip everything else loaded=$(lsmod | grep vboxguest) if [ -n "$loaded" ] ; then echo "Kernel modules available. but we will continue..." fi # # Check if virtualbox-guest-source is installed, quit if not if ! rpm -qf "$SOURCE/additions/guest_src.tar.bz2" &>/dev/null ; then echo "Sources for building guest modules are not present," echo "Use 'sudo zypper install virtualbox-guest-source' to install them. Quitting .." exit 1 fi # unpack source pushd $SOURCE > /dev/null 2>&1 tar jxf additions/guest_src.tar.bz2 > /dev/null 2>&1 popd > /dev/null 2>&1 # # Check if virtualbox-guest-source version matches virtualbox version if [ "$(rpm -q virtualbox virtualbox-guest-source --queryformat='%{version}-%{release}\n' 2>/dev/null | sort -u | wc -l)" -ne "1" ] ; then echo "virtualbox-guest-source package version doesn't match the version of virtualbox package." echo "This situation is probably not fatal, thus we will try to continue .." fi # Prerequisites are available, start build pushd $SOURCE/additions/src > /dev/null 2>&1 echo "Building kernel modules..." make > $LOGFILE 2>&1 if [ "$?" -ne 0 ] ; then echo "" echo "Build of VirtualBox guest kernel modules failed." echo "Look at $LOGFILE to find reasons." popd > /dev/null 2>&1 exit 1 else echo "Kernel modules built correctly. They will now be installed." fi make install >> $LOGFILE 2>&1 if [ "$?" -ne 0 ] ; then echo "" echo "Installation of VirtualBox guest kernel modules failed." echo "Look at $LOGFILE to find reasons." popd > /dev/null 2>&1 exit 1 fi depmod -a modprobe -av vboxguest vboxvideo cd ../.. rm -rf additions popd > /dev/null 2>&1 echo "Kernel modules are installed and loaded." exit 0 07070100000007000081ed00000000000000000000000168f8ed6300001a4f000000000000000000000000000000000000001300000000vboxweb-service.sh#!/bin/sh # $Id: vboxweb-service.sh 127855 2019-01-01 01:45:53Z bird $ ## @file # VirtualBox web service API daemon init script. # # # Copyright (C) 2006-2019 Oracle Corporation # # This file is part of VirtualBox Open Source Edition (OSE), as # available from http://www.virtualbox.org. This file is free software; # you can redistribute it and/or modify it under the terms of the GNU # General Public License (GPL) as published by the Free Software # Foundation, in version 2 as it comes in the "COPYING" file of the # VirtualBox OSE distribution. VirtualBox OSE is distributed in the # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. # # chkconfig: 345 35 65 # description: VirtualBox web service API # ### BEGIN INIT INFO # Provides: vboxweb-service # Required-Start: vboxdrv # Required-Stop: vboxdrv # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: VirtualBox web service API ### END INIT INFO PATH=$PATH:/bin:/sbin:/usr/sbin SCRIPTNAME=vboxweb-service.sh [ -f /etc/vbox/vbox.cfg ] && . /etc/vbox/vbox.cfg if [ -n "$INSTALL_DIR" ]; then binary="$INSTALL_DIR/vboxwebsrv" vboxmanage="$INSTALL_DIR/VBoxManage" else binary="/usr/lib/virtualbox/vboxwebsrv" vboxmanage="/usr/lib/virtualbox/VBoxManage" fi # silently exit if the package was uninstalled but not purged, # applies to Debian packages only (but shouldn't hurt elsewhere) [ ! -f /etc/debian_release -o -x $binary ] || exit 0 [ -r /etc/default/virtualbox ] && . /etc/default/virtualbox PIDFILE="/var/run/${SCRIPTNAME}" # Preamble for Gentoo if [ "`which $0`" = "/sbin/rc" ]; then shift fi begin_msg() { test -n "${2}" && echo "${SCRIPTNAME}: ${1}." logger -t "${SCRIPTNAME}" "${1}." } succ_msg() { logger -t "${SCRIPTNAME}" "${1}." } fail_msg() { echo "${SCRIPTNAME}: failed: ${1}." >&2 logger -t "${SCRIPTNAME}" "failed: ${1}." } start_daemon() { usr="$1" shift su - $usr -c "$*" } killproc() { killall $1 rm -f $PIDFILE } if which start-stop-daemon >/dev/null 2>&1; then start_daemon() { usr="$1" shift bin="$1" shift start-stop-daemon --background --chuid $usr --start --exec $bin -- $@ } killproc() { start-stop-daemon --stop --exec $@ } fi vboxdrvrunning() { lsmod | grep vboxdrv } check_single_user() { if [ -n "$2" ]; then fail_msg "VBOXWEB_USER must not contain multiple users!" exit 1 fi } start() { if ! test -f $PIDFILE; then [ -z "$VBOXWEB_USER" ] && exit 0 begin_msg "Starting VirtualBox web service" console; check_single_user $VBOXWEB_USER temp=$(lsmod | grep vboxdrv) echo $temp if [ -z "$temp" ]; then fail_msg "VirtualBox kernel module not loaded!" exit 1 fi PARAMS="--background" [ -n "$VBOXWEB_HOST" ] && PARAMS="$PARAMS -H $VBOXWEB_HOST" [ -n "$VBOXWEB_PORT" ] && PARAMS="$PARAMS -p $VBOXWEB_PORT" [ -n "$VBOXWEB_SSL_KEYFILE" ] && PARAMS="$PARAMS -s -K $VBOXWEB_SSL_KEYFILE" [ -n "$VBOXWEB_SSL_PASSWORDFILE" ] && PARAMS="$PARAMS -a $VBOXWEB_SSL_PASSWORDFILE" [ -n "$VBOXWEB_SSL_CACERT" ] && PARAMS="$PARAMS -c $VBOXWEB_SSL_CACERT" [ -n "$VBOXWEB_SSL_CAPATH" ] && PARAMS="$PARAMS -C $VBOXWEB_SSL_CAPATH" [ -n "$VBOXWEB_SSL_DHFILE" ] && PARAMS="$PARAMS -D $VBOXWEB_SSL_DHFILE" [ -n "$VBOXWEB_SSL_RANDFILE" ] && PARAMS="$PARAMS -r $VBOXWEB_SSL_RANDFILE" [ -n "$VBOXWEB_TIMEOUT" ] && PARAMS="$PARAMS -t $VBOXWEB_TIMEOUT" [ -n "$VBOXWEB_CHECK_INTERVAL" ] && PARAMS="$PARAMS -i $VBOXWEB_CHECK_INTERVAL" [ -n "$VBOXWEB_THREADS" ] && PARAMS="$PARAMS -T $VBOXWEB_THREADS" [ -n "$VBOXWEB_KEEPALIVE" ] && PARAMS="$PARAMS -k $VBOXWEB_KEEPALIVE" [ -n "$VBOXWEB_AUTHENTICATION" ] && PARAMS="$PARAMS -A $VBOXWEB_AUTHENTICATION" [ -n "$VBOXWEB_LOGFILE" ] && PARAMS="$PARAMS -F $VBOXWEB_LOGFILE" [ -n "$VBOXWEB_ROTATE" ] && PARAMS="$PARAMS -R $VBOXWEB_ROTATE" [ -n "$VBOXWEB_LOGSIZE" ] && PARAMS="$PARAMS -S $VBOXWEB_LOGSIZE" [ -n "$VBOXWEB_LOGINTERVAL" ] && PARAMS="$PARAMS -I $VBOXWEB_LOGINTERVAL" # set authentication method + password hash if [ -n "$VBOXWEB_AUTH_LIBRARY" ]; then su - "$VBOXWEB_USER" -c "$vboxmanage setproperty websrvauthlibrary \"$VBOXWEB_AUTH_LIBRARY\"" if [ $? -ne 0 ]; then fail_msg "Error $? setting webservice authentication library to $VBOXWEB_AUTH_LIBRARY" fi fi if [ -n "$VBOXWEB_AUTH_PWHASH" ]; then su - "$VBOXWEB_USER" -c "$vboxmanage setextradata global \"VBoxAuthSimple/users/$VBOXWEB_USER\" \"$VBOXWEB_AUTH_PWHASH\"" if [ $? -ne 0 ]; then fail_msg "Error $? setting webservice password hash" fi fi # prevent inheriting this setting to VBoxSVC unset VBOX_RELEASE_LOG_DEST start_daemon $VBOXWEB_USER $binary $PARAMS > /dev/null 2>&1 # ugly: wait until the final process has forked sleep .1 PID=`pidof $binary 2>/dev/null` if [ -n "$PID" ]; then echo "$PID" > $PIDFILE RETVAL=0 firewall-cmd --permanent --new-service=vboxweb firewall-cmd --permanent --service=vboxweb --set-description="service to remotely manage VirtualBox" firewall-cmd --permanent --add-port=18083/tcp --zone=internal --service=vboxweb firewall-cmd --permanent --set-short="vboxweb" --service=vboxweb succ_msg "VirtualBox web service started" else RETVAL=1 fail_msg "VirtualBox web service failed to start" fi fi return $RETVAL } stop() { if test -f $PIDFILE; then begin_msg "Stopping VirtualBox web service" console; killproc $binary RETVAL=$? # Be careful: wait 1 second, making sure that everything is cleaned up. sleep 1 if ! pidof $binary > /dev/null 2>&1; then rm -f $PIDFILE succ_msg "VirtualBox web service stopped" else fail_msg "VirtualBox web service failed to stop" fi fi return $RETVAL } restart() { stop && start } status() { echo -n "Checking for VBox Web Service" if [ -f $PIDFILE ]; then echo " ...running" else echo " ...not running" fi } case "$1" in start) start ;; stop) stop ;; restart) restart ;; force-reload) restart ;; status) status ;; setup) ;; cleanup) ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac exit $RETVAL 07070100000008000081ed00000000000000000000000168f8ed630000054f000000000000000000000000000000000000001b00000000virtualbox-patch-source.sh#!/bin/bash -ex if [ -z "$1" ]; then echo "You need to pass the filename VirtualBox-x.y.z.tar.bz2 as first argument." exit 1 fi REMOVE_DIRS=( src/VBox/Additions/WINNT src/VBox/Additions/os2 src/VBox/Runtime/r3/darwin src/VBox/Runtime/r0drv/darwin src/VBox/Runtime/darwin kBuild/bin kBuild/msgstyles kBuild/tools kBuild/sdks tools/darwin.x86 tools/darwin.amd64 tools/freebsd.x86 tools/os2.x86 tools/solaris.x86 tools/solaris.amd64 tools/win.amd64 tools/win.x86 tools/linux.x86 tools/linux.amd64 ) set -o errexit CMDNAME=${0##*/} SOURCEDIR=${0%$CMDNAME} BASENAME=${1%.tar.bz2} trap "rm -rf \"$BASENAME-patched.tar\" \"$BASENAME-patched.tar.bz2\"" ERR for (( N=0 ; N<${#REMOVE_DIRS[@]} ; N++ )) ; do #REMOVE_DIRS[N]="$BASENAME/${REMOVE_DIRS[N]}" # use a wildcard because VirtualBox-1.6.0-OSE != VirtualBox-1.6.0_OSE REMOVE_DIRS[N]="*/${REMOVE_DIRS[N]}" done cd "$SOURCEDIR" >/dev/null if ! test -f "$BASENAME.tar.bz2" ; then exit 0 fi if test -f "$BASENAME-patched.tar.bz2" ; then if test "$BASENAME.tar.bz2" -ot "$BASENAME-patched.tar.bz2" ; then if test $CMDNAME -ot "$BASENAME-patched.tar.bz2" ; then exit 0 fi fi fi cp -a "$BASENAME.tar.bz2" "$BASENAME-patched.tar.bz2" bunzip2 "$BASENAME-patched.tar.bz2" tar --wildcards --delete -f "$BASENAME-patched.tar" "${REMOVE_DIRS[@]}" pixz -9 "$BASENAME-patched.tar" 07070100000009000081ed00000000000000000000000168f8ed6300000a30000000000000000000000000000000000000001600000000virtualbox-wrapper.sh#!/bin/bash export QT_NO_KDE_INTEGRATION=1 # make certain that the user/group combination is valid /usr/bin/id -nG | grep -v -e "root" -e "vboxusers" >/dev/null && /usr/lib/virtualbox/VBoxPermissionMessage && exit # # Handle the issue regarding USB passthru # The following conditions apply: # 1. If ~/.config/VirtualBox/enable exists, the user accepts the security risk. # 2. If ~/.config/VirtualBox/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() { /usr/lib/virtualbox/VBoxUSB_DevRules if [ $? -eq 0 ] ; then # User accepts the risk touch ~/.config/VirtualBox/enable rm -f ~/.config/VirtualBox/disable else # User declines the risk - save the inode echo "" > ~/.config/VirtualBox/disable rm -f ~/.config/VirtualBox/enable fi } # Start of main routine # # Ensure that ~/.config/VirtualBox exists mkdir -p ~/.config/VirtualBox # 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 ~/.config/VirtualBox/enable ] && [ ! -f ~/.config/VirtualBox/disable ] ; then # Neither file exists - find what the user wants devrules fi # Get the original Inode if it exists if [ -f ~/.config/VirtualBox/disable ] ; then read LINE < ~/.config/VirtualBox/disable else LINE=" " fi # If user originally declined, make certain that /usr/lib/udev/rules.d/60-vboxdrv.rules has not been changed if [ -f ~/.config/VirtualBox/disable ] && [ "$LINE" != "$INODE" ] && [ "$LINE" != "" ] ; then # disable is selected and the Inode has changed - ask again devrules fi if [ -f ~/.config/VirtualBox/disable ] ; then echo $INODE > ~/.config/VirtualBox/disable if [ "$LINE" != "$INODE" ] ; then if [ -f /usr/bin/kdesu ] ; then kdesu /usr/sbin/vbox-fix-usb-rules.sh fi if [ -f /usr/bin/gnomesu ] ; then gnomesu /usr/sbin/vbox-fix-usb-rules.sh fi fi fi # Check if extpack needs to be updated /usr/bin/update-extpack.sh # Check that /usr/lib/virtualbox/VirtualBoxVM has SUID permissions PERM=$(ls -l /usr/lib/virtualbox/VirtualBoxVM | grep rwsr) if [ -z "$PERM" ] then logger -s "Wrong permissions for VirtualBoxVM - use 'sudo chmod 4711 /usr/lib/virtualbox/VirtualBoxVM' to fix" /usr/lib/virtualbox/VBoxSUIDMessage exit 1 fi # Now run the VB GUI LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" exec /usr/lib/virtualbox/VirtualBoxQt "$@" 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Contact
Support
@OBShq
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor