[info=4254eefd364fcbe4d183fa7ec73c1d01ef533d78663821c4b237e9d50bc30d10]
OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=757
This commit is contained in:
commit
4302f9f03e
25
.gitattributes
vendored
Normal file
25
.gitattributes
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
## Specific LFS patterns
|
||||
VirtualBox-7.1.4-patched.tpxz filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
39
README.autostart
Normal file
39
README.autostart
Normal file
@ -0,0 +1,39 @@
|
||||
Prerequisites
|
||||
=============
|
||||
|
||||
Users, that want to use the VirtualBox autostart feature, have to be
|
||||
members of the vboxusers group.
|
||||
|
||||
E.g.:
|
||||
sudo usermod -aG vboxusers USERNAME
|
||||
|
||||
Preparation
|
||||
===========
|
||||
|
||||
For each autostart user, add a section in /etc/vbox/autostart.cfg:
|
||||
|
||||
USERNAME = {
|
||||
allow = true
|
||||
}
|
||||
|
||||
Users work
|
||||
==========
|
||||
|
||||
The *first* time a user configures autostart, the command:
|
||||
VBoxManage setproperty autostartdbpath /etc/vbox/autostart.d
|
||||
needs to be run.
|
||||
|
||||
Note: The autostart options are stored in the /etc/vbox file, and in the
|
||||
VM itself. If moving a VM, these options may need to be set again.
|
||||
|
||||
Prepare a VM to start automatically:
|
||||
VBoxManage modifyvm <uuid|vmname> --autostart-enabled on
|
||||
|
||||
Choose a shut down mode:
|
||||
VBoxManage modifyvm <uuid|vmname> --autostop-type <disabled|savestate|poweroff|acpishutdown>
|
||||
|
||||
Restart the vboxdrv service to start the VMs in question
|
||||
sudo service vboxdrv restart
|
||||
|
||||
To turn off autostart for a VM
|
||||
VBoxManage modifyvm <uuid|vmname> --autostart-enabled off
|
128
README.build
Normal file
128
README.build
Normal file
@ -0,0 +1,128 @@
|
||||
Instructions for building the VirtualBox project
|
||||
|
||||
Although it is possible to modify a project at the openSUSE Build System (OBS),
|
||||
I have found it to be more convenient to use the various osc commands to create a
|
||||
local copy, edit it on my own computer to fix any problems, and then push the result
|
||||
to OBS.
|
||||
|
||||
You will need a login account at OBS. This account is also used to login at openSUSE's
|
||||
bugzilla, etc. Those credentials are also used by osc whose package must also be
|
||||
installed.
|
||||
|
||||
A. Create a new sub-project:
|
||||
1. Branch the package:
|
||||
The sources for Tumbleweed and the Leap releases have been merges, thus
|
||||
development work can be concentrates on TW. To branch VB for Tumbleweed,
|
||||
osc branch Virtualization virtualbox
|
||||
2. Checkout the package using the "osc co" command listed
|
||||
|
||||
B. For the first time, test Build the project:
|
||||
1. Use "osc build" to build. This step is rather compute intensive and
|
||||
takes about an hour on my Toshiba laptop with a dual-core Intel Core i7 CPU
|
||||
with hyper-threading, 12 GB RAM, and an SSD. This build will create all the
|
||||
VirtualBox packages except the kernel modules. To build them use "osc build -M kmp",
|
||||
which takes a lot less time. The split was made to reduce the load on OBS.
|
||||
Now, a kernel change only requires rebuild of the modules, not the entire package.
|
||||
2. The build results are stored in the /var/tmp/build-root tree. These files
|
||||
can occupy a lot of disc space, particularly when one builds several flavors.
|
||||
To keep from running out of space on the / partition, I mount /var/tmp on
|
||||
a separate partition. In general, about 25 GB is required for each flavor,
|
||||
thus the disk usabe can approach 100 GB. If you have plenty of headroom in /,
|
||||
you can skip this separate partition.
|
||||
3. Special flavors:
|
||||
When a new kernel is released, there may be several API changes that affect
|
||||
builds of the kernel modules used by VirtualBox. In Factory, the project that
|
||||
contains the latest kernels is "Kernel-HEAD-standard". To run a test build with
|
||||
this kernel, use the command " osc build --alternative-project Kernel:HEAD standard".
|
||||
Note: The syntax of this step has changed throughout the years. If it fails, ask
|
||||
how to do it on the openSUSE Factory mailing list at opensuse-factory@opensuse.org.
|
||||
When switching between kernel projects, use of the "--clean" switch is advised,
|
||||
otherwise strange "missing library" messages will result.
|
||||
4. On occasion, there may be breakage in the build when there is an update of
|
||||
python or Qt. Use the "--alternative-project=<xxx>" switch to force usage of
|
||||
the revised component. You will need to ask at factory@lists.opensuse.org to
|
||||
get the proper profect name.
|
||||
|
||||
C. Steps to take with a new release:
|
||||
1. When Oracle releases a new version, you will need to download the new tarball
|
||||
from https://download.virtualbox.org/virtualbox/. While downloading the file, I
|
||||
also get the new UserManual.pdf. I use the wget utility, but the browser could
|
||||
be used.
|
||||
2. openSUSE makes some changes to the tarballi, which are done with the command
|
||||
bash ./virtualbox-patch-source.sh <name of tarball just downloaded>
|
||||
This script unpacks the tar file, removes Windows and Mac host code from the file,
|
||||
and recreates the tar file with "patched" in its name. Any further modifications
|
||||
are made by patches that are applied during the build process. Do NOT make any
|
||||
further changes to the tar file.
|
||||
3. Edit the "Version" line near the start of virtualbox.spec to select the new version.
|
||||
4. Use "osc rm <old_tarball-name>" and "osc add <new_tarball_name>" to get the
|
||||
new file into osc. The local build will work without these changes, but the remote
|
||||
operations with OBS will fail.
|
||||
5. VirtualBox at openSUSE is a multi-build package consisting of virtualbox-kmp and
|
||||
the rest of virtualbox. The former builds in about 20% of the time needed for the
|
||||
latter, thus it is best to start with the kmp part.
|
||||
6. The usual problems are as follows:
|
||||
a. Fixing for kernel API changes are incorporated in a new release, thus our patch
|
||||
is obsolete.
|
||||
b. Oracle has revised their code such that one of the patches needed by openSUSE
|
||||
fails to apply.
|
||||
c. There are kernel API changes that break the building of the kmp part of VB.
|
||||
5. When fixing kernel API changes, keep in mind that Oracle will be 2-3 months behind
|
||||
your needs; however, they will eventually include the necessary changes in their
|
||||
distribution. If you find something that you do not know how to fix, you could file
|
||||
a bug tracker at https://www.virtualbox.org/wiki/Bugtracker. Note that previous
|
||||
reports have gotten the response "We do not support kernel X.Y" - a really helpful
|
||||
response. To be able to back out your changes, create a new patch file for the
|
||||
updates. An OBS or osc build will unpack the "patched" tarball and apply the patches.
|
||||
To help in the creation of such patches, it is my practice to untar the tarball and
|
||||
use quilt to create the necessary patch, refresh it, and then copy it back into the
|
||||
main directory. At that point it can be added into the spec file. The utility
|
||||
wiggle is useful in fixing patches that will not apply.
|
||||
6. Once the kmp modules, and the main part of VirtualBox are building correctly with
|
||||
osc, use 'osc status' to indicate the file changes. Anything with a "?" as its status
|
||||
is a new file that needs to be resolved. If these files are not added to the project,
|
||||
they will not be uploaded to OBS. You should also remove any files made obsolete
|
||||
because Oracle caught up with kernel API changes. At this point, the new release
|
||||
should be tested by adding the directory
|
||||
/var/tmp/build-root/.../home/abuild/rpmbuild/RPMS/x86_64
|
||||
to the list of repositories, and updating virtualbox from that new repository. These
|
||||
packages will not be signed, thus you will get a warning that can be ignored. Be sure
|
||||
to install virtualbox-host-source, as well as kernel-default-devel and kernel-devel
|
||||
for the kernel you are running. After loading the updated packages, then run
|
||||
'sudo /lib/sbin/vboxconfig' to build and install the kernel modules.
|
||||
7. The new code can now be tested. Usually, the tests will not show any problems;
|
||||
however, there was a version where Windows 7 failed to boot because of a virtual
|
||||
BIOS change. With kernel 5.18, there was a major bug where the FPU was not being
|
||||
saved. The symptoms ranged from application crashes in a Linux VM to a full virtual
|
||||
machine crash in a Windows 10 VM. The patch for this problem was provided by Oracle,
|
||||
only a few days before kernel 5.18.1 was released and added to Tumbleweed. Obviously,
|
||||
both Windows and Linux systems should be tested to ensure that screen resizing,
|
||||
bidirectional clipboard, and shared folders work with no crashes.
|
||||
8. Once the new release is tested and 'osc status' is clean, it is time to update the
|
||||
changes file using the 'osc vc' command. I copy and paste the changes listed in
|
||||
the Oracle release notes to the new entry and add references to any bugzilla entries.
|
||||
In this section, it is essential that you list files that are deleted or added. It is
|
||||
not necessary to mention the tarball change - it is implied.
|
||||
9. Now it is time to send the new material to OBS using the 'osc ci' command. The
|
||||
material in the new section usually appears as the commit message. If not, copy it
|
||||
from the .changes file. Committing new material will trigger builds at OBS. The
|
||||
status of them can be seen with the 'osc r' command. Once the builds are successful,
|
||||
they should be submitted using the 'osc sr' for Tumbleweed. One peculiarity of the
|
||||
factory releases is that they require a review, even for your own changes. A few
|
||||
minutes after an ‘osc sr’ command, you will need to log into OBS and check your
|
||||
tasks for “Outgoing Requests”. From there, you will be able to submit a review.
|
||||
10. After VirtualBox is completed for Tumbleweed, and building OK on the various Leap
|
||||
versions at OBS, you can branch the various Leap versions with the command
|
||||
osc branch openSUSE:Leap:15.X:Update virtualbox
|
||||
It is not necessary to check out the code as creating the directory that will
|
||||
be used. If it already exists on your system, delete all files in that directory.
|
||||
Then copy all the files from the Tumbleweed source into the Leap directory. To
|
||||
syncronize your system wuth OBS, do an "osc update". At this point, you will
|
||||
need to repeat the "osc rm" and "osc add" steps to update the version of the
|
||||
tarball. After that, make sure that "osc status" is clean. At that point, update
|
||||
the package at OBS with "osc ci". When "osc r" shows that the build has completed,
|
||||
use "osc mr" to submit it to the project. For the update projects, no review by
|
||||
the maintainer is requied.
|
||||
11. When a new Leap release is in a pre-release state, updated VB releases can be
|
||||
sent to that project from OBS.
|
||||
|
3
UserManual.pdf
Normal file
3
UserManual.pdf
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cd25f171445f6037e69d3ed1e194aebfd08006c8dd343d3481f6f65526992803
|
||||
size 4600713
|
23
VirtualBox-5.2.10-xclient.patch
Normal file
23
VirtualBox-5.2.10-xclient.patch
Normal file
@ -0,0 +1,23 @@
|
||||
Index: VirtualBox-7.0.14/src/VBox/Additions/x11/Installer/98vboxadd-xclient
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Additions/x11/Installer/98vboxadd-xclient
|
||||
+++ VirtualBox-7.0.14/src/VBox/Additions/x11/Installer/98vboxadd-xclient
|
||||
@@ -31,15 +31,9 @@ for i in $HOME/.vboxclient-*.pid; do
|
||||
test -w $i || rm -f $i
|
||||
done
|
||||
|
||||
-if ! test -c /dev/vboxguest 2>/dev/null; then
|
||||
- # Do not start if the kernel module is not present.
|
||||
- # Execute notify-send in the back-ground to avoid racing with sddm,
|
||||
- # as notify-send may wait for sddm to start while it waits for us to exit.
|
||||
- notify-send "VBoxClient: the VirtualBox kernel service is not running. Exiting." &
|
||||
-elif test -z "${SSH_CONNECTION}"; then
|
||||
- # This script can also be triggered by a connection over SSH, which is not
|
||||
- # what we had in mind, so we do not start VBoxClient in that case. We do
|
||||
- # not use "exit" here as this script is "source"d, not executed.
|
||||
+# Do not start if the kernel module is not present; or if this script is
|
||||
+# triggered by a connection over SSH.
|
||||
+if [ -c /dev/vboxguest -a -z "${SSH_CONNECTION}" ]; then
|
||||
/usr/bin/VBoxClient --clipboard
|
||||
/usr/bin/VBoxClient --checkhostversion
|
||||
/usr/bin/VBoxClient --seamless
|
3
VirtualBox-7.1.4-patched.tpxz
Normal file
3
VirtualBox-7.1.4-patched.tpxz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bd2fe03a82514f7c7e2673cbdcd8496ace2bee5925c54dca92f1a6d74fdc09dc
|
||||
size 150630796
|
21
VirtualBox.appdata.xml
Normal file
21
VirtualBox.appdata.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop">
|
||||
<id>virtualbox.desktop</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>GPL-2.0-or-later</project_license>
|
||||
<name>VirtualBox</name>
|
||||
<summary>Virtual Machine client</summary>
|
||||
<description>
|
||||
<p>
|
||||
VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use.
|
||||
</p>
|
||||
</description>
|
||||
<url type="homepage">https://www.virtualbox.org/</url>
|
||||
<url type="bugtracker">https://www.virtualbox.org/wiki/Bugtracker</url>
|
||||
<url type="help">https://www.virtualbox.org/manual</url>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://www.virtualbox.org/attachment/wiki/Screenshots/OpenSuse13.2_on_Windows_7.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
</component>
|
11
_constraints
Normal file
11
_constraints
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0"?>
|
||||
<constraints>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="M">8000</size>
|
||||
</physicalmemory>
|
||||
<disk>
|
||||
<size unit="G">9</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</constraints>
|
3
_multibuild
Normal file
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
||||
<multibuild>
|
||||
<flavor>kmp</flavor>
|
||||
</multibuild>
|
4
_scmsync.obsinfo
Normal file
4
_scmsync.obsinfo
Normal file
@ -0,0 +1,4 @@
|
||||
mtime: 1735863933
|
||||
commit: 4254eefd364fcbe4d183fa7ec73c1d01ef533d78663821c4b237e9d50bc30d10
|
||||
url: https://src.opensuse.org/jengelh/virtualbox
|
||||
revision: master
|
5
_service
Normal file
5
_service
Normal file
@ -0,0 +1,5 @@
|
||||
<services>
|
||||
<service name="refresh_patches" mode="disabled">
|
||||
<param name="changesgenerate">enable</param>
|
||||
</service>
|
||||
</services>
|
3
build.specials.obscpio
Normal file
3
build.specials.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:516d85b66b78675cc0aa0e29b35710dd791fdaa4d4d5c9596b4a3b7ae3d01e48
|
||||
size 256
|
108
cxx17.patch
Normal file
108
cxx17.patch
Normal file
@ -0,0 +1,108 @@
|
||||
From: Jan Engelhardt <ej@inai.de>
|
||||
Date: 2024-09-20 22:48:58.758026690 +0200
|
||||
|
||||
The code uses <filesystem>, so ensure we always use -std=c++17 at the
|
||||
very least.
|
||||
|
||||
Prior to C++17, noexcept cannot be part of a type alias, and so is
|
||||
not part of the function signature, and so is not part of the ABI.
|
||||
|
||||
In C++17, noexcept is significant. There is a compile error because
|
||||
the FNCONSUMER alias as defined in a .h file does not match the
|
||||
function body in a .cpp file.
|
||||
|
||||
The def file is also wrong, but no one at virtualbox.org noticed for
|
||||
some reason, even though the def mismatch also caused a link/build
|
||||
failure in its own right.
|
||||
|
||||
To resolve the mismatch between .cpp/.h, the function signature is
|
||||
augmented by RT_NOEXCEPT, based upon the function head being the
|
||||
authoritative source as to whether something was meant to be noexcept
|
||||
or not.
|
||||
|
||||
In turn, adding RT_NOEXCEPT causes a change in the ABI of VBoxRT.so.
|
||||
The closed-source VirtualBox extension pack does not expect that and
|
||||
is unable to load [LD_BIND_NOW=1]. To resolve _that_, we add extra
|
||||
symbol aliases.
|
||||
|
||||
---
|
||||
Config.kmk | 3 +++
|
||||
include/iprt/cpp/restclient.h | 12 ++++++++++--
|
||||
src/VBox/Runtime/VBox/VBoxRTImp-gcc.def | 2 +-
|
||||
src/VBox/Runtime/common/rest/rest-binary.cpp | 9 +++++++++
|
||||
4 files changed, 23 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: VirtualBox-7.1.0/Config.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.1.0.orig/Config.kmk
|
||||
+++ VirtualBox-7.1.0/Config.kmk
|
||||
@@ -3093,6 +3093,9 @@ ifeq ($(KBUILD_TARGET),darwin)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
+ifndef VBOX_GCC_std
|
||||
+ VBOX_GCC_std := -std=c++17
|
||||
+endif
|
||||
|
||||
#
|
||||
# Check for incompatible rpath combinations.
|
||||
Index: VirtualBox-7.1.0/include/iprt/cpp/restclient.h
|
||||
===================================================================
|
||||
--- VirtualBox-7.1.0.orig/include/iprt/cpp/restclient.h
|
||||
+++ VirtualBox-7.1.0/include/iprt/cpp/restclient.h
|
||||
@@ -130,7 +130,11 @@ public:
|
||||
* is the sum of the previously returned @a *pcbActual values.
|
||||
*/
|
||||
typedef DECLCALLBACKTYPE(int, FNPRODUCER,(RTCRestBinaryParameter *a_pThis, void *a_pvDst, size_t a_cbDst,
|
||||
- uint64_t a_offContent, size_t *a_pcbActual)) /*RT_NOEXCEPT*/;
|
||||
+ uint64_t a_offContent, size_t *a_pcbActual))
|
||||
+#if defined(__cplusplus) && __cplusplus >= 201700L
|
||||
+RT_NOEXCEPT
|
||||
+#endif
|
||||
+;
|
||||
/** Pointer to a byte producer callback. */
|
||||
typedef FNPRODUCER *PFNPRODUCER;
|
||||
|
||||
@@ -268,7 +272,11 @@ public:
|
||||
* is the sum of the previous @a a_cbSrc values.
|
||||
*/
|
||||
typedef DECLCALLBACKTYPE(int, FNCONSUMER,(RTCRestBinaryResponse *a_pThis, const void *a_pvSrc, size_t a_cbSrc,
|
||||
- uint32_t a_uHttpStatus, uint64_t a_offContent, uint64_t a_cbContent)) /*RT_NOEXCEPT*/;
|
||||
+ uint32_t a_uHttpStatus, uint64_t a_offContent, uint64_t a_cbContent))
|
||||
+#if defined(__cplusplus) && __cplusplus >= 201700L
|
||||
+RT_NOEXCEPT
|
||||
+#endif
|
||||
+;
|
||||
/** Pointer to a byte consumer callback. */
|
||||
typedef FNCONSUMER *PFNCONSUMER;
|
||||
|
||||
Index: VirtualBox-7.1.0/src/VBox/Runtime/VBox/VBoxRTImp-gcc.def
|
||||
===================================================================
|
||||
--- VirtualBox-7.1.0.orig/src/VBox/Runtime/VBox/VBoxRTImp-gcc.def
|
||||
+++ VirtualBox-7.1.0/src/VBox/Runtime/VBox/VBoxRTImp-gcc.def
|
||||
@@ -379,7 +379,7 @@ EXPORTS
|
||||
_ZN22RTCRestBinaryParameter16xmitHttpCallbackEP14RTHTTPINTERNALPvmyPmS2_ ; int64=llong
|
||||
_ZN22RTCRestBinaryParameter19setProducerCallbackEPFiPS_PvmmPmES1_m ; before-noexcept int64=long
|
||||
_ZN22RTCRestBinaryParameter19setProducerCallbackEPFiPS_PvmyPmES1_y ; before-noexcept int64=llong
|
||||
- _ZN22RTCRestBinaryParameter19setProducerCallbackEPDoFiPS_PvmyPmES1_m ; after-noexcept int64=long
|
||||
+ _ZN22RTCRestBinaryParameter19setProducerCallbackEPDoFiPS_PvmmPmES1_m ; after-noexcept int64=long
|
||||
_ZN22RTCRestBinaryParameter19setProducerCallbackEPDoFiPS_PvmyPmES1_y ; after-noexcept int64=llong
|
||||
_ZN22RTCRestBinaryParameterC1Ev
|
||||
_ZN22RTCRestBinaryParameterC2Ev
|
||||
Index: VirtualBox-7.1.0/src/VBox/Runtime/common/rest/rest-binary.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.1.0.orig/src/VBox/Runtime/common/rest/rest-binary.cpp
|
||||
+++ VirtualBox-7.1.0/src/VBox/Runtime/common/rest/rest-binary.cpp
|
||||
@@ -706,3 +706,12 @@ void RTCRestBinaryResponse::receiveCompl
|
||||
AssertRC(rc);
|
||||
}
|
||||
|
||||
+// extpack was built with wrong -std=, add a redirect
|
||||
+extern "C" void DECLEXPORT_CLASS __attribute__((weak,
|
||||
+alias("_ZN21RTCRestBinaryResponse19setConsumerCallbackEPDoFiPS_PKvmjmmEPv"))) // T symbol that exists
|
||||
+ _ZN21RTCRestBinaryResponse19setConsumerCallbackEPFiPS_PKvmjmmEPv( // W symbol to make
|
||||
+ RTCRestBinaryResponse::PFNCONSUMER, void *);
|
||||
+extern "C" void DECLEXPORT_CLASS __attribute__((weak,
|
||||
+alias("_ZN22RTCRestBinaryParameter19setProducerCallbackEPDoFiPS_PvmmPmES1_m"))) // T
|
||||
+ _ZN22RTCRestBinaryParameter19setProducerCallbackEPFiPS_PvmmPmES1_m( // W
|
||||
+ RTCRestBinaryParameter::PFNPRODUCER, void *, uint64_t);
|
24
fix-missing-includes-with-qt-5.15.patch
Normal file
24
fix-missing-includes-with-qt-5.15.patch
Normal file
@ -0,0 +1,24 @@
|
||||
Index: VirtualBox-7.0.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp
|
||||
@@ -28,6 +28,7 @@
|
||||
/* Qt includes: */
|
||||
#include <QApplication>
|
||||
#include <QLabel>
|
||||
+#include <QPainterPath>
|
||||
#include <QPaintEvent>
|
||||
#include <QStyle>
|
||||
#include <QVBoxLayout>
|
||||
Index: VirtualBox-7.0.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h
|
||||
+++ VirtualBox-7.0.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h
|
||||
@@ -47,7 +47,6 @@ class QIcon;
|
||||
class QLabel;
|
||||
class QMouseEvent;
|
||||
class QObject;
|
||||
-class QPainterPath;
|
||||
class QPaintEvent;
|
||||
class QResizeEvent;
|
||||
class QString;
|
28
fix_7.0.6_locking_problems.patch
Normal file
28
fix_7.0.6_locking_problems.patch
Normal file
@ -0,0 +1,28 @@
|
||||
Index: VirtualBox-7.0.14/src/VBox/HostDrivers/Support/SUPDrvGip.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/HostDrivers/Support/SUPDrvGip.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/HostDrivers/Support/SUPDrvGip.cpp
|
||||
@@ -4537,9 +4537,11 @@ static int supdrvTscDeltaThreadWait(PSUP
|
||||
*/
|
||||
static void supdrvTscDeltaThreadStartMeasurement(PSUPDRVDEVEXT pDevExt, bool fForceAll)
|
||||
{
|
||||
+ if (!pDevExt || ! pDevExt->hTscDeltaSpinlock)
|
||||
+ return;
|
||||
+ RTSpinlockAcquire(pDevExt->hTscDeltaSpinlock);
|
||||
if (pDevExt->hTscDeltaThread != NIL_RTTHREAD)
|
||||
{
|
||||
- RTSpinlockAcquire(pDevExt->hTscDeltaSpinlock);
|
||||
if ( pDevExt->enmTscDeltaThreadState == kTscDeltaThreadState_Listening
|
||||
|| pDevExt->enmTscDeltaThreadState == kTscDeltaThreadState_Measuring)
|
||||
{
|
||||
@@ -4550,9 +4552,9 @@ static void supdrvTscDeltaThreadStartMea
|
||||
else if ( pDevExt->enmTscDeltaThreadState == kTscDeltaThreadState_WaitAndMeasure
|
||||
&& fForceAll)
|
||||
pDevExt->fTscThreadRecomputeAllDeltas = true;
|
||||
- RTSpinlockRelease(pDevExt->hTscDeltaSpinlock);
|
||||
RTThreadUserSignal(pDevExt->hTscDeltaThread);
|
||||
}
|
||||
+ RTSpinlockRelease(pDevExt->hTscDeltaSpinlock);
|
||||
}
|
||||
|
||||
|
13
fix_conflict_between_host_and_guest.patch
Normal file
13
fix_conflict_between_host_and_guest.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: VirtualBox-7.0.14/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c
|
||||
+++ VirtualBox-7.0.14/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c
|
||||
@@ -140,7 +140,7 @@ static struct vboxguest_module_info g_VB
|
||||
RTMemAllocExTag,
|
||||
RTMemContAlloc,
|
||||
RTMemContFree,
|
||||
- RTMemFreeEx,
|
||||
+ RTMemFreeExG,
|
||||
RTMpIsCpuPossible,
|
||||
RTMpNotificationDeregister,
|
||||
RTMpNotificationRegister,
|
13
fix_for_leap15.5.patch
Normal file
13
fix_for_leap15.5.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: VirtualBox-7.0.20/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp
|
||||
+++ VirtualBox-7.0.20/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp
|
||||
@@ -710,7 +710,7 @@ static const char *keyModToStr(unsigned
|
||||
RT_CASE_RET_STR(KMOD_NUM);
|
||||
RT_CASE_RET_STR(KMOD_CAPS);
|
||||
RT_CASE_RET_STR(KMOD_MODE);
|
||||
- RT_CASE_RET_STR(KMOD_SCROLL);
|
||||
+ RT_CASE_RET_STR(KMOD_RESERVED);
|
||||
default:
|
||||
break;
|
||||
}
|
92
fix_sdl_build.patch
Normal file
92
fix_sdl_build.patch
Normal file
@ -0,0 +1,92 @@
|
||||
Index: VirtualBox-7.0.20/configure
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/configure
|
||||
+++ VirtualBox-7.0.20/configure
|
||||
@@ -1186,21 +1186,19 @@ check_sdl()
|
||||
fail
|
||||
fi
|
||||
else
|
||||
- if which_wrapper sdl-config > /dev/null; then
|
||||
- FLGSDL=`sdl-config --cflags`
|
||||
+ FLGSDL="-I/usr/include/SDL2 -D_GNU_SOURCE=1 -D_REENTRANT"
|
||||
INCSDL=`strip_I "$FLGSDL"`
|
||||
- LIBSDL=`sdl-config --libs`
|
||||
+ LIBSDL="-L/usr/lib64 -LSDL2"
|
||||
LIBSDLMAIN="-lSDLmain"
|
||||
FLDSDL=
|
||||
foundsdl=1
|
||||
- fi
|
||||
fi
|
||||
[ "$OS" = "linux" -o "$OS" = "darwin" -o "$OS" = "solaris" ] && LIBSDLMAIN=""
|
||||
if [ -n "$foundsdl" ]; then
|
||||
cat > $ODIR.tmp_src.cc << EOF
|
||||
#include <cstdio>
|
||||
#include <SDL.h>
|
||||
-#include <SDL_main.h>
|
||||
+//#include <SDL_main.h>
|
||||
#undef main
|
||||
extern "C" int main(int argc, char** argv)
|
||||
{
|
||||
@@ -1216,7 +1214,7 @@ extern "C" int main(int argc, char** arg
|
||||
}
|
||||
EOF
|
||||
[ -n "$INCSDL" ] && I_INCSDL=`prefix_I "$INCSDL"`
|
||||
- if test_compile "$LIBSDL $LIBSDLMAIN $I_INCSDL $FLDSDL" SDL SDL; then
|
||||
+ if test_compile "$LIBSDL $LIBSDLMAIN $I_INCSDL $FLDSDL" SDL2 SDL2; then
|
||||
if test_execute; then
|
||||
cnf_append "LIB_SDK_LIBSDL_SDL" "`strip_l "$LIBSDL"`"
|
||||
cnf_append "SDK_LIBSDL_LIBPATH" "`strip_L "$LIBSDL"`"
|
||||
@@ -3010,11 +3008,8 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then
|
||||
[ $WITH_LIBLZMA -eq 1 ] && check_liblzma
|
||||
[ "$OS" != "darwin" ] && check_png
|
||||
[ $OSE -eq 0 -a "$OS" = "linux" ] && check_pam
|
||||
- if [ $WITH_SDL -eq 1 ]; then
|
||||
- check_sdl
|
||||
- else
|
||||
- cnf_append "VBOX_WITH_VBOXSDL" ""
|
||||
- fi
|
||||
+ check_sdl
|
||||
+ cnf_append "VBOX_WITH_VBOXSDL" "1"
|
||||
[ $WITH_SDL_TTF -eq 1 -a $OSE -eq 0 ] && check_sdl_ttf
|
||||
[ $WITH_X11 -eq 1 ] && check_x
|
||||
# TODO check for xcomposite-dev (X11/extensions/Xcomposite.h, additions only)
|
||||
Index: VirtualBox-7.0.20/src/VBox/Frontends/VBoxSDL/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/Frontends/VBoxSDL/Makefile.kmk
|
||||
+++ VirtualBox-7.0.20/src/VBox/Frontends/VBoxSDL/Makefile.kmk
|
||||
@@ -51,7 +51,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K
|
||||
PROGRAMS += VBoxSDL
|
||||
endif
|
||||
VBoxSDL_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBoxMainClientDll,VBoxMainClientExe)
|
||||
- VBoxSDL_SDKS = LIBSDL2
|
||||
+ VBoxSDL_SDKS = LIBSDL
|
||||
VBoxSDL_SOURCES = \
|
||||
VBoxSDL.cpp \
|
||||
Framebuffer.cpp \
|
||||
@@ -81,7 +81,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K
|
||||
endif
|
||||
ifn1of ($(KBUILD_TARGET), solaris) # Probably wrong with SDL2
|
||||
VBoxSDL_LIBS = \
|
||||
- $(LIB_SDK_LIBSDL2_SDLMAIN)
|
||||
+ $(LIB_SDK_LIBSDL_SDLMAIN)
|
||||
endif
|
||||
if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # X11
|
||||
VBoxSDL_LIBS += \
|
||||
@@ -121,7 +121,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K
|
||||
if 0
|
||||
PROGRAMS += tstSDL
|
||||
tstSDL_TEMPLATE = VBoxR3TstExe
|
||||
- tstSDL_SDKS = LIBSDL2
|
||||
+ tstSDL_SDKS = LIBSDL
|
||||
tstSDL_INST = $(INST_TESTCASE)
|
||||
tstSDL_SOURCES = \
|
||||
VBoxSDLTest.cpp
|
||||
@@ -138,7 +138,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K
|
||||
$(LIB_RUNTIME)
|
||||
ifn1of ($(KBUILD_TARGET), solaris)
|
||||
tstSDL_LIBS += \
|
||||
- $(LIB_SDK_LIBSDL2_SDLMAIN)
|
||||
+ $(LIB_SDK_LIBSDL_SDLMAIN)
|
||||
endif
|
||||
|
||||
ifdef VBOX_OPENGL
|
7
fix_usb_rules.sh
Normal file
7
fix_usb_rules.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/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
|
||||
|
18
fixes_for_gcc13.patch
Normal file
18
fixes_for_gcc13.patch
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
Index: VirtualBox-7.1.0/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
|
||||
===================================================================
|
||||
--- VirtualBox-7.1.0.orig/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
|
||||
+++ VirtualBox-7.1.0/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
|
||||
@@ -66,6 +66,9 @@ TORTIOUS ACTION, ARISING OUT OF OR IN CO
|
||||
OF THIS SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
+
|
||||
+#define __STDC_HOSTED__ 1
|
||||
+
|
||||
/* $Xorg: misc.h,v 1.5 2001/02/09 02:05:15 xorgcvs Exp $ */
|
||||
#ifndef MISC_H
|
||||
#define MISC_H 1
|
110
fixes_for_leap15.6.patch
Normal file
110
fixes_for_leap15.6.patch
Normal file
@ -0,0 +1,110 @@
|
||||
Index: VirtualBox-7.0.14/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
|
||||
+++ VirtualBox-7.0.14/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
|
||||
@@ -1292,9 +1292,6 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
|
||||
IPRT_LINUX_SAVE_EFL_AC();
|
||||
const int cPages = cb >> PAGE_SHIFT;
|
||||
struct task_struct *pTask = rtR0ProcessToLinuxTask(R0Process);
|
||||
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
|
||||
- struct vm_area_struct **papVMAs;
|
||||
-# endif
|
||||
PRTR0MEMOBJLNX pMemLnx;
|
||||
int rc = VERR_NO_MEMORY;
|
||||
int const fWrite = fAccess & RTMEM_PROT_WRITE ? 1 : 0;
|
||||
@@ -1318,11 +1315,6 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
|
||||
return VERR_NO_MEMORY;
|
||||
}
|
||||
|
||||
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
|
||||
- papVMAs = (struct vm_area_struct **)RTMemAlloc(sizeof(*papVMAs) * cPages);
|
||||
- if (papVMAs)
|
||||
- {
|
||||
-# endif
|
||||
LNX_MM_DOWN_READ(pTask->mm);
|
||||
|
||||
/*
|
||||
@@ -1342,9 +1334,6 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
|
||||
fWrite, /* force write access. */
|
||||
# endif
|
||||
&pMemLnx->apPages[0] /* Page array. */
|
||||
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0) && !RTLNX_SUSE_MAJ_PREREQ(15, 6)
|
||||
- , papVMAs /* vmas */
|
||||
-# endif
|
||||
);
|
||||
/*
|
||||
* Actually this should not happen at the moment as call this function
|
||||
@@ -1367,12 +1356,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
|
||||
fWrite, /* force write access. */
|
||||
# endif
|
||||
&pMemLnx->apPages[0] /* Page array. */
|
||||
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
|
||||
- , papVMAs /* vmas */
|
||||
-# endif
|
||||
-# if GET_USER_PAGES_API >= KERNEL_VERSION(4, 10, 0)
|
||||
- , NULL /* locked */
|
||||
-# endif
|
||||
+ , NULL, NULL
|
||||
);
|
||||
#else /* GET_USER_PAGES_API < KERNEL_VERSION(4, 6, 0) */
|
||||
rc = get_user_pages(pTask, /* Task for fault accounting. */
|
||||
@@ -1389,9 +1373,6 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
|
||||
fWrite, /* force write access. */
|
||||
# endif
|
||||
&pMemLnx->apPages[0] /* Page array. */
|
||||
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0) && && !defined(OPENSUSE_156)
|
||||
- , papVMAs /* vmas */
|
||||
-# endif
|
||||
);
|
||||
#endif /* GET_USER_PAGES_API < KERNEL_VERSION(4, 6, 0) */
|
||||
if (rc == cPages)
|
||||
@@ -1415,21 +1396,10 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
|
||||
while (rc-- > 0)
|
||||
{
|
||||
flush_dcache_page(pMemLnx->apPages[rc]);
|
||||
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
|
||||
-# if RTLNX_VER_MIN(6,3,0)
|
||||
- vm_flags_set(papVMAs[rc], VM_DONTCOPY | VM_LOCKED);
|
||||
-# else
|
||||
- papVMAs[rc]->vm_flags |= VM_DONTCOPY | VM_LOCKED;
|
||||
-# endif
|
||||
-# endif
|
||||
}
|
||||
|
||||
LNX_MM_UP_READ(pTask->mm);
|
||||
|
||||
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
|
||||
- RTMemFree(papVMAs);
|
||||
-# endif
|
||||
-
|
||||
pMemLnx->Core.u.Lock.R0Process = R0Process;
|
||||
pMemLnx->cPages = cPages;
|
||||
Assert(!pMemLnx->fMappedToRing0);
|
||||
@@ -1457,11 +1427,6 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
|
||||
|
||||
rc = VERR_LOCK_FAILED;
|
||||
|
||||
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
|
||||
- RTMemFree(papVMAs);
|
||||
- }
|
||||
-# endif
|
||||
-
|
||||
rtR0MemObjDelete(&pMemLnx->Core);
|
||||
IPRT_LINUX_RESTORE_EFL_AC();
|
||||
return rc;
|
||||
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/sharedfolders/regops.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/sharedfolders/regops.c
|
||||
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/sharedfolders/regops.c
|
||||
@@ -270,11 +270,7 @@ static ssize_t vbsf_iov_iter_get_pages(s
|
||||
size_t cPagesLocked;
|
||||
|
||||
down_read(&pTask->mm->mmap_sem);
|
||||
-#if defined(OPENSUSE_156)
|
||||
cPagesLocked = get_user_pages(pTask, pTask->mm, uPtrFrom, cPages);
|
||||
-#else
|
||||
- cPagesLocked = get_user_pages(pTask, pTask->mm, uPtrFrom, cPages, iter->v_write, 1 /*force*/, papPages, NULL);
|
||||
-#endif
|
||||
up_read(&pTask->mm->mmap_sem);
|
||||
if (cPagesLocked == cPages) {
|
||||
size_t cbRet = (cPages << PAGE_SHIFT) - offPg0;
|
107
fixes_for_vboxconfig.patch
Normal file
107
fixes_for_vboxconfig.patch
Normal file
@ -0,0 +1,107 @@
|
||||
Index: VirtualBox-7.0.14/src/VBox/Frontends/VirtualBox/nls/VirtualBox_lt.ts
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Frontends/VirtualBox/nls/VirtualBox_lt.ts
|
||||
+++ VirtualBox-7.0.14/src/VBox/Frontends/VirtualBox/nls/VirtualBox_lt.ts
|
||||
@@ -92,19 +92,19 @@
|
||||
<translation type="vanished">VirtualBox Linux branduolio modulis (vboxdrv) arba nėra įkeltas, arba nepakanka leidimų dirbti su /dev/vboxdrv. Iš naujo įdiekite branduolio modulį root teisėmis įvykdydami <br/><br/><font color=blue>'/sbin/rcvboxdrv setup'</font><br/><br/>. Jei įmanoma pirma turite įsidiegti DKMS paketą. Šis paketas seka Linux branduolio pakeitimus ir, jei reikia, perkompiliuoja vboxdrv branduolio modulį.</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <source>The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/>as root.</source>
|
||||
- <translation type="vanished">VirtualBox Linux branduolio tvarkyklė (vboxdrv) neįkelta arba /dev/vboxdrv turi bėdų su leidimais. Iš naujo įdiekite branduolio modulį įvykdydami <br/><br/> <font color=blue>/sbin/vboxconfig</font><br/><br/> administratoriaus (root) teisėmis.</translation>
|
||||
+ <source>The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/>as root.</source>
|
||||
+ <translation type="vanished">VirtualBox Linux branduolio tvarkyklė (vboxdrv) neįkelta arba /dev/vboxdrv turi bėdų su leidimais. Iš naujo įdiekite branduolio modulį įvykdydami <br/><br/> <font color=blue>/usr/sbin/vboxconfig</font><br/><br/> administratoriaus (root) teisėmis.</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <source>The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/>may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox.</source>
|
||||
- <translation type="vanished">VirtualBox branduolio modulis neatitinka VirtualBox versijos. Panašu, kad VirtualBox diegimas nebuvo sėkmingas. Pataisyti gali pavykti įvykdžius<br/><br/> <font color=blue>/sbin/vboxconfig</font><br/><br/> Įsitikinkite, ar nemaišote VirtualBox OSE ir PUEL versijų.</translation>
|
||||
+ <source>The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/>may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox.</source>
|
||||
+ <translation type="vanished">VirtualBox branduolio modulis neatitinka VirtualBox versijos. Panašu, kad VirtualBox diegimas nebuvo sėkmingas. Pataisyti gali pavykti įvykdžius<br/><br/> <font color=blue>/usr/sbin/vboxconfig</font><br/><br/> Įsitikinkite, ar nemaišote VirtualBox OSE ir PUEL versijų.</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <source>The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing<br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/>as root.<br/><br/>If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information.</source>
|
||||
+ <source>The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing<br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/>as root.<br/><br/>If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
- <source>The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/>may correct this. Make sure that you are not mixing builds of VirtualBox from different sources.</source>
|
||||
+ <source>The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/>may correct this. Make sure that you are not mixing builds of VirtualBox from different sources.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
Index: VirtualBox-7.0.14/src/VBox/Frontends/VirtualBox/nls/VirtualBox_tr.ts
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Frontends/VirtualBox/nls/VirtualBox_tr.ts
|
||||
+++ VirtualBox-7.0.14/src/VBox/Frontends/VirtualBox/nls/VirtualBox_tr.ts
|
||||
@@ -148,20 +148,20 @@
|
||||
<translation type="obsolete">Kare Boyutu: %1x%2, Kare Oranı: %3fps, Bit Oranı: %4kbps</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <source>The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/>as root.</source>
|
||||
- <translation type="vanished">VirtualBox Linux çekirdek sürücüsü (vboxdrv) ya yüklenmedi ya da /dev/vboxdrv ile ilgili izin sorunu var. Lütfen root kullanıcısı olarak <br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/> dosyasını çalıştırarak çekirdek modülünü yeniden yükleyin.</translation>
|
||||
+ <source>The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing<br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/>as root.</source>
|
||||
+ <translation type="vanished">VirtualBox Linux çekirdek sürücüsü (vboxdrv) ya yüklenmedi ya da /dev/vboxdrv ile ilgili izin sorunu var. Lütfen root kullanıcısı olarak <br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/> dosyasını çalıştırarak çekirdek modülünü yeniden yükleyin.</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <source>The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/>may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox.</source>
|
||||
- <translation type="vanished">VirtualBox çekirdek modülleri VirtualBox'ın bu sürümüyle uyuşmuyor. VirtualBox'ın kurulumu görünüşe göre başarılı olmadı. <br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/> dosyasını çalıştırmak bunu düzeltebilir. VirtualBox'ın OSE ve PUEL sürümlerini karıştırmadığınızdan emin olun.</translation>
|
||||
+ <source>The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/>may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox.</source>
|
||||
+ <translation type="vanished">VirtualBox çekirdek modülleri VirtualBox'ın bu sürümüyle uyuşmuyor. VirtualBox'ın kurulumu görünüşe göre başarılı olmadı. <br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/> dosyasını çalıştırmak bunu düzeltebilir. VirtualBox'ın OSE ve PUEL sürümlerini karıştırmadığınızdan emin olun.</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <source>The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing<br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/>as root.<br/><br/>If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information.</source>
|
||||
- <translation>VirtualBox Linux çekirdek sürücüsü ya yüklenmedi ya da doğru olarak ayarlanmadı. Lütfen root kullanıcısı olarak <br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/> dosyasını çalıştırarak bunu tekrar ayarlamayı deneyin. Eğer sisteminizde EFI Secure Boot etkinleştirildiyse, çekirdek modüllerini (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) yüklemeden önce ayrıca bunları imzalamanız gerekebilir. Lütfen daha fazla bilgi için Linux sisteminin belgelerine bakın.</translation>
|
||||
+ <source>The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing<br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/>as root.<br/><br/>If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information.</source>
|
||||
+ <translation>VirtualBox Linux çekirdek sürücüsü ya yüklenmedi ya da doğru olarak ayarlanmadı. Lütfen root kullanıcısı olarak <br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/> dosyasını çalıştırarak bunu tekrar ayarlamayı deneyin. Eğer sisteminizde EFI Secure Boot etkinleştirildiyse, çekirdek modüllerini (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) yüklemeden önce ayrıca bunları imzalamanız gerekebilir. Lütfen daha fazla bilgi için Linux sisteminin belgelerine bakın.</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <source>The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/>may correct this. Make sure that you are not mixing builds of VirtualBox from different sources.</source>
|
||||
- <translation>VirtualBox çekirdek modülleri VirtualBox'ın bu sürümüyle uyuşmuyor. VirtualBox'ın kurulumu görünüşe göre başarılı olmadı. <br/><br/> <font color=blue>'/sbin/vboxconfig'</font><br/><br/> dosyasını çalıştırmak bunu düzeltebilir. Farklı kaynaklardan gelen VirtualBox'ın yapımlarını karıştırmadığınızdan emin olun.</translation>
|
||||
+ <source>The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing<br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/>may correct this. Make sure that you are not mixing builds of VirtualBox from different sources.</source>
|
||||
+ <translation>VirtualBox çekirdek modülleri VirtualBox'ın bu sürümüyle uyuşmuyor. VirtualBox'ın kurulumu görünüşe göre başarılı olmadı. <br/><br/> <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/> dosyasını çalıştırmak bunu düzeltebilir. Farklı kaynaklardan gelen VirtualBox'ın yapımlarını karıştırmadığınızdan emin olun.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
Index: VirtualBox-7.0.14/src/VBox/Frontends/VirtualBox/src/main.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Frontends/VirtualBox/src/main.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/Frontends/VirtualBox/src/main.cpp
|
||||
@@ -99,7 +99,7 @@ QString g_QStrHintLinuxNoMemory = QAppli
|
||||
QString g_QStrHintLinuxNoDriver = QApplication::tr(
|
||||
"The VirtualBox Linux kernel driver is either not loaded or not set "
|
||||
"up correctly. Please try setting it up again by executing<br/><br/>"
|
||||
- " <font color=blue>'/sbin/vboxconfig'</font><br/><br/>"
|
||||
+ " <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/>"
|
||||
"as root.<br/><br/>"
|
||||
"If your system has EFI Secure Boot enabled you may also need to sign "
|
||||
"the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before "
|
||||
@@ -118,7 +118,7 @@ QString g_QStrHintLinuxWrongDriverVersio
|
||||
"The VirtualBox kernel modules do not match this version of "
|
||||
"VirtualBox. The installation of VirtualBox was apparently not "
|
||||
"successful. Executing<br/><br/>"
|
||||
- " <font color=blue>'/sbin/vboxconfig'</font><br/><br/>"
|
||||
+ " <font color=blue>'/usr/sbin/vboxconfig'</font><br/><br/>"
|
||||
"may correct this. Make sure that you are not mixing builds "
|
||||
"of VirtualBox from different sources."
|
||||
);
|
||||
Index: VirtualBox-7.0.14/src/VBox/Installer/linux/VBox.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Installer/linux/VBox.sh
|
||||
+++ VirtualBox-7.0.14/src/VBox/Installer/linux/VBox.sh
|
||||
@@ -72,7 +72,7 @@ WARNING: The vboxdrv kernel module is no
|
||||
available for the current kernel (`uname -r`) or it failed to
|
||||
load. Please recompile the kernel module and install it by
|
||||
|
||||
- sudo /sbin/vboxconfig
|
||||
+ sudo /usr/sbin/vboxconfig
|
||||
|
||||
You will not be able to start VMs until this problem is fixed.
|
||||
EOF
|
||||
@@ -80,7 +80,7 @@ elif [ ! -c /dev/vboxdrv ]; then
|
||||
cat << EOF
|
||||
WARNING: The character device /dev/vboxdrv does not exist. Try
|
||||
|
||||
- sudo /sbin/vboxconfig
|
||||
+ sudo /usr/sbin/vboxconfig
|
||||
|
||||
and if that is not successful, try to re-install the package.
|
||||
|
48
host-source.patch
Normal file
48
host-source.patch
Normal file
@ -0,0 +1,48 @@
|
||||
From: Jan Engelhardt <ej@inai.de>
|
||||
Date: 2024-11-14 15:11:28.216506193 +0100
|
||||
References: https://bugzilla.suse.com/1231346
|
||||
|
||||
Stop overriding INSTALL_MOD_DIR, stop using a non-standard path.
|
||||
[MODULE_DIR is a 2.4ism and irrelevant here;
|
||||
but INSTALL_MOD_DIR affects the 2.6+ install alike.]
|
||||
|
||||
---
|
||||
src/VBox/Installer/linux/Makefile-footer.gmk | 2 +-
|
||||
src/VBox/Installer/linux/Makefile-header.gmk | 4 +---
|
||||
2 files changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: VirtualBox-7.1.4/src/VBox/Installer/linux/Makefile-footer.gmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.1.4.orig/src/VBox/Installer/linux/Makefile-footer.gmk
|
||||
+++ VirtualBox-7.1.4/src/VBox/Installer/linux/Makefile-footer.gmk
|
||||
@@ -145,7 +145,7 @@ $(VBOXMOD_0_TARGET):
|
||||
$(MAKE) V=$(VBOX_LNX_VERBOSE) $(VBOX_DISABLE_SIGN) -C $(KERN_DIR) $(VBOX_SUBDIR_VAR)=$(CURDIR) SRCROOT=$(CURDIR) $(if $(JOBS),-j$(JOBS),) modules
|
||||
|
||||
install: $(VBOXMOD_0_TARGET)
|
||||
- $(MAKE) V=$(VBOX_LNX_VERBOSE) $(VBOX_DISABLE_SIGN) -C $(KERN_DIR) $(VBOX_SUBDIR_VAR)=$(CURDIR) SRCROOT=$(CURDIR) INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) modules_install
|
||||
+ $(MAKE) V=$(VBOX_LNX_VERBOSE) $(VBOX_DISABLE_SIGN) -C $(KERN_DIR) $(VBOX_SUBDIR_VAR)=$(CURDIR) SRCROOT=$(CURDIR) INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) modules_install
|
||||
|
||||
modules_install: install
|
||||
|
||||
Index: VirtualBox-7.1.4/src/VBox/Installer/linux/Makefile-header.gmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.1.4.orig/src/VBox/Installer/linux/Makefile-header.gmk
|
||||
+++ VirtualBox-7.1.4/src/VBox/Installer/linux/Makefile-header.gmk
|
||||
@@ -261,8 +261,7 @@ endif
|
||||
# Kernel include folder
|
||||
KERN_INCL := $(KERN_DIR)/include
|
||||
# module install folder
|
||||
-INSTALL_MOD_DIR ?= misc
|
||||
-MODULE_DIR := $(INSTALL_MOD_PATH)/lib/modules/$(KERN_VER)/$(INSTALL_MOD_DIR)
|
||||
+MODULE_DIR := $(INSTALL_MOD_PATH)/lib/modules/$(KERN_VER)/updates
|
||||
|
||||
# For VBOX_GCC_CHECK_CC
|
||||
VBOX_CLOSEPAR := )
|
||||
@@ -298,7 +297,6 @@ endif
|
||||
ifdef DEBUG
|
||||
ifndef VBOX_KERN_QUIET
|
||||
$(warning dbg: INSTALL_MOD_PATH = $(INSTALL_MOD_PATH))
|
||||
-$(warning dbg: INSTALL_MOD_DIR = $(INSTALL_MOD_DIR))
|
||||
$(warning dbg: KERN_DIR = $(KERN_DIR))
|
||||
$(warning dbg: KERN_INCL = $(KERN_INCL))
|
||||
$(warning dbg: KERN_VERSION = $(KERN_VERSION))
|
22
libxml21206.patch
Normal file
22
libxml21206.patch
Normal file
@ -0,0 +1,22 @@
|
||||
Index: VirtualBox-7.0.18/src/libs/libxml2-2.12.6/include/vboxconfig.h
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.18.orig/src/libs/libxml2-2.12.6/include/vboxconfig.h
|
||||
+++ VirtualBox-7.0.18/src/libs/libxml2-2.12.6/include/vboxconfig.h
|
||||
@@ -387,7 +387,7 @@
|
||||
#define PACKAGE_TARNAME ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
-#define PACKAGE_VERSION "2.6.30"
|
||||
+#define PACKAGE_VERSION "2.12.6"
|
||||
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#define PROTOTYPES 1
|
||||
@@ -399,7 +399,7 @@
|
||||
#undef SUPPORT_IP6
|
||||
|
||||
/* Version number of package */
|
||||
-#define VERSION "2.6.30"
|
||||
+#define VERSION "2.12.6"
|
||||
|
||||
/* Determine what socket length (socklen_t) data type is */
|
||||
#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2)
|
39
remove_vbox_video_build.patch
Normal file
39
remove_vbox_video_build.patch
Normal file
@ -0,0 +1,39 @@
|
||||
Index: VirtualBox-7.0.20/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/Makefile.kmk
|
||||
+++ VirtualBox-7.0.20/Makefile.kmk
|
||||
@@ -824,7 +824,6 @@ VBOX_CORE_DOXYFILE_INPUT_DIRS = \
|
||||
src/VBox/Additions/x11/vboxmouse \
|
||||
src/VBox/Additions/x11/vboxmouse/xorg70 \
|
||||
src/VBox/Additions/x11/vboxmouse/xorg71 \
|
||||
- src/VBox/Additions/x11/vboxvideo \
|
||||
src/VBox/NetworkServices \
|
||||
src/VBox/NetworkServices/Dhcpd \
|
||||
src/VBox/NetworkServices/NAT \
|
||||
Index: VirtualBox-7.0.20/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
|
||||
+++ VirtualBox-7.0.20/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
|
||||
@@ -404,7 +404,8 @@ vboxvideo_drv_118_INCS += $(PATH_ROOT)/s
|
||||
vboxvideo_drv_118_SOURCES := $(vboxvideo_drv_17_SOURCES)
|
||||
vboxvideo_drv_118_LIBS += $(vboxvideo_drv_70_LIBS)
|
||||
|
||||
-ifdef VBOX_USE_SYSTEM_XORG_HEADERS
|
||||
+# Fix to never build
|
||||
+ifdef XX_VBOX_USE_SYSTEM_XORG_HEADERS
|
||||
# Build using local X.Org headers. We assume X.Org Server 1.7 or later.
|
||||
DLLS := $(filter-out vboxvideo_drv_%,$(DLLS)) vboxvideo_drv_system
|
||||
SYSMODS := $(filter-out vboxvideo_drv%,$(SYSMODS))
|
||||
Index: VirtualBox-7.0.20/src/VBox/Additions/x11/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/Additions/x11/Makefile.kmk
|
||||
+++ VirtualBox-7.0.20/src/VBox/Additions/x11/Makefile.kmk
|
||||
@@ -32,7 +32,7 @@ include $(KBUILD_PATH)/subheader.kmk
|
||||
if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
|
||||
include $(PATH_SUB_CURRENT)/VBoxClient/Makefile.kmk
|
||||
ifndef VBOX_NO_LEGACY_XORG_X11
|
||||
- include $(PATH_SUB_CURRENT)/vboxvideo/Makefile.kmk
|
||||
+# include $(PATH_SUB_CURRENT)/vboxvideo/Makefile.kmk
|
||||
ifn1of ($(KBUILD_TARGET), netbsd solaris)
|
||||
include $(PATH_SUB_CURRENT)/vboxmouse/Makefile.kmk
|
||||
endif
|
40
security_fixes.patch
Normal file
40
security_fixes.patch
Normal file
@ -0,0 +1,40 @@
|
||||
# This patch file is to warn future maintainers of VirtualBox on openSUSE
|
||||
# platforms that the distributed versions of vboxadd.sh and vboxdrv.sh
|
||||
# contain security holes. If you need to use these scripts in the future,
|
||||
# please consult the Security Group at openSUSE.
|
||||
#
|
||||
# January 31, 2019 - Larry Finger
|
||||
#
|
||||
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/installer/vboxadd.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/installer/vboxadd.sh
|
||||
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/installer/vboxadd.sh
|
||||
@@ -1228,9 +1228,11 @@ dmnstatus()
|
||||
fi
|
||||
}
|
||||
|
||||
-for i; do
|
||||
- case "$i" in quiet) QUIET=yes;; esac
|
||||
-done
|
||||
+echo "This script has insecurities. It must never be used in openSUSE without consultine Security."
|
||||
+exit 1
|
||||
+
|
||||
+case "$2" in quiet)
|
||||
+ QUIET=yes;;
|
||||
case "$1" in
|
||||
# Does setup without clean-up first and marks all kernels currently found on the
|
||||
# system so that we can see later if any were added.
|
||||
Index: VirtualBox-7.0.14/src/VBox/Installer/linux/vboxdrv.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Installer/linux/vboxdrv.sh
|
||||
+++ VirtualBox-7.0.14/src/VBox/Installer/linux/vboxdrv.sh
|
||||
@@ -48,6 +48,9 @@ DEVICE=/dev/vboxdrv
|
||||
MODPROBE=/sbin/modprobe
|
||||
SCRIPTNAME=vboxdrv.sh
|
||||
|
||||
+echo "This script has insecurities. It must never be used in openSUSE without consultine Security."
|
||||
+exit 1
|
||||
+
|
||||
# The below is GNU-specific. See VBox.sh for the longer Solaris/OS X version.
|
||||
TARGET=`readlink -e -- "${0}"` || exit 1
|
||||
SCRIPT_DIR="${TARGET%/[!/]*}"
|
18
turn_off_cloud_net.patch
Normal file
18
turn_off_cloud_net.patch
Normal file
@ -0,0 +1,18 @@
|
||||
Index: VirtualBox-7.0.20/Config.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/Config.kmk
|
||||
+++ VirtualBox-7.0.20/Config.kmk
|
||||
@@ -981,11 +981,9 @@ if1of ($(KBUILD_TARGET), freebsd linux)
|
||||
endif
|
||||
# Use new VBoxNetDhcpd instead of old VBoxNetDHCP
|
||||
VBOX_WITH_DHCPD = 1
|
||||
-# Experimental suport for cloud network integration (depends on libssh)
|
||||
-ifdef VBOX_WITH_LIBSSH
|
||||
- VBOX_WITH_CLOUD_NET = 1
|
||||
-endif
|
||||
# Use Mac OS X VMNET API instead of network kernel extensions
|
||||
+# Experimental suport for cloud network integration
|
||||
+#VBOX_WITH_CLOUD_NET = 1
|
||||
VBOX_WITH_VMNET = 1
|
||||
## @}
|
||||
|
64
update-extpack.sh
Normal file
64
update-extpack.sh
Normal file
@ -0,0 +1,64 @@
|
||||
#!/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
|
406
vbox-no-build-dates.diff
Normal file
406
vbox-no-build-dates.diff
Normal file
@ -0,0 +1,406 @@
|
||||
Index: VirtualBox-7.0.14/src/VBox/Frontends/VBoxFB/VBoxFB.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Frontends/VBoxFB/VBoxFB.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/Frontends/VBoxFB/VBoxFB.cpp
|
||||
@@ -72,7 +72,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
printf("VirtualBox DirectFB GUI built %s %s\n"
|
||||
"Copyright (C) 2004-" VBOX_C_YEAR " " VBOX_VENDOR "\n"
|
||||
- "Copyright (C) 2004-2005 secunet Security Networks AG\n", __DATE__, __TIME__);
|
||||
+ "Copyright (C) 2004-2005 secunet Security Networks AG\n");
|
||||
|
||||
fputs("\nWARNING! Unmaintained code.\nWARNING! Needs fixing & debugging!\n\n", stdout);
|
||||
|
||||
Index: VirtualBox-7.0.14/src/VBox/Runtime/common/string/uniread.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Runtime/common/string/uniread.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/Runtime/common/string/uniread.cpp
|
||||
@@ -1049,7 +1049,7 @@ int PrintHeader(const char *argv0, const
|
||||
" * IPRT - Unicode Tables.\n"
|
||||
" *\n"
|
||||
" * Automatically Generated from %s\n"
|
||||
- " * by %s (" __DATE__ " " __TIME__ ")\n"
|
||||
+ " * by %s\n"
|
||||
" */\n"
|
||||
"\n"
|
||||
"/*\n"
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/nsprpub/lib/libc/src/plvrsion.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/nsprpub/lib/libc/src/plvrsion.c
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/nsprpub/lib/libc/src/plvrsion.c
|
||||
@@ -42,16 +42,13 @@
|
||||
/**************************IDENTITY AND VERSIONING***********************/
|
||||
/************************************************************************/
|
||||
#include "_pl_bld.h"
|
||||
-#if !defined(_BUILD_TIME)
|
||||
-#ifdef HAVE_LONG_LONG
|
||||
-#define _BUILD_TIME 0
|
||||
-#else
|
||||
+
|
||||
+#undef _BUILD_TIME
|
||||
#define _BUILD_TIME {0, 0}
|
||||
-#endif
|
||||
-#endif
|
||||
-#if !defined(_BUILD_STRING)
|
||||
+
|
||||
+#undef _BUILD_STRING
|
||||
#define _BUILD_STRING ""
|
||||
-#endif
|
||||
+
|
||||
#if !defined(_PRODUCTION)
|
||||
#define _PRODUCTION ""
|
||||
#endif
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/nsprpub/pr/src/prvrsion.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/nsprpub/pr/src/prvrsion.c
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/nsprpub/pr/src/prvrsion.c
|
||||
@@ -44,16 +44,10 @@
|
||||
#ifndef XP_MAC
|
||||
#include "_pr_bld.h"
|
||||
#endif
|
||||
-#if !defined(_BUILD_TIME)
|
||||
-#ifdef HAVE_LONG_LONG
|
||||
-#define _BUILD_TIME 0
|
||||
-#else
|
||||
+#undef _BUILD_TIME
|
||||
#define _BUILD_TIME {0, 0}
|
||||
-#endif
|
||||
-#endif
|
||||
-#if !defined(_BUILD_STRING)
|
||||
+#undef _BUILD_STRING
|
||||
#define _BUILD_STRING ""
|
||||
-#endif
|
||||
#if !defined(_PRODUCTION)
|
||||
#define _PRODUCTION ""
|
||||
#endif
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/nsprpub/lib/prstreams/plvrsion.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/nsprpub/lib/prstreams/plvrsion.c
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/nsprpub/lib/prstreams/plvrsion.c
|
||||
@@ -42,16 +42,13 @@
|
||||
/**************************IDENTITY AND VERSIONING***********************/
|
||||
/************************************************************************/
|
||||
#include "_pl_bld.h"
|
||||
-#if !defined(_BUILD_TIME)
|
||||
-#ifdef HAVE_LONG_LONG
|
||||
-#define _BUILD_TIME 0
|
||||
-#else
|
||||
+
|
||||
+#undef _BUILD_TIME
|
||||
#define _BUILD_TIME {0, 0}
|
||||
-#endif
|
||||
-#endif
|
||||
-#if !defined(_BUILD_STRING)
|
||||
+
|
||||
+#undef _BUILD_STRING
|
||||
#define _BUILD_STRING ""
|
||||
-#endif
|
||||
+
|
||||
#if !defined(_PRODUCTION)
|
||||
#define _PRODUCTION ""
|
||||
#endif
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/nsprpub/lib/ds/plvrsion.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/nsprpub/lib/ds/plvrsion.c
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/nsprpub/lib/ds/plvrsion.c
|
||||
@@ -42,16 +42,13 @@
|
||||
/**************************IDENTITY AND VERSIONING***********************/
|
||||
/************************************************************************/
|
||||
#include "_pl_bld.h"
|
||||
-#if !defined(_BUILD_TIME)
|
||||
-#ifdef HAVE_LONG_LONG
|
||||
-#define _BUILD_TIME 0
|
||||
-#else
|
||||
+
|
||||
+#undef _BUILD_TIME
|
||||
#define _BUILD_TIME {0, 0}
|
||||
-#endif
|
||||
-#endif
|
||||
-#if !defined(_BUILD_STRING)
|
||||
+
|
||||
+#undef _BUILD_STRING
|
||||
#define _BUILD_STRING ""
|
||||
-#endif
|
||||
+
|
||||
#if !defined(_PRODUCTION)
|
||||
#define _PRODUCTION ""
|
||||
#endif
|
||||
Index: VirtualBox-7.0.14/src/VBox/Main/src-helper-apps/OpenGLTest/OpenGLTestApp.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Main/src-helper-apps/OpenGLTest/OpenGLTestApp.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/Main/src-helper-apps/OpenGLTest/OpenGLTestApp.cpp
|
||||
@@ -327,7 +327,7 @@ static int vboxInitLogging(const char *p
|
||||
#endif
|
||||
"Log opened %s\n",
|
||||
VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET,
|
||||
- __DATE__, __TIME__, szTmp);
|
||||
+ "openSUSE", "Buildservice", szTmp);
|
||||
|
||||
vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp));
|
||||
if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW)
|
||||
Index: VirtualBox-7.0.14/src/VBox/Devices/PC/BIOS/bios.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Devices/PC/BIOS/bios.c
|
||||
+++ VirtualBox-7.0.14/src/VBox/Devices/PC/BIOS/bios.c
|
||||
@@ -164,7 +164,7 @@ void set_mode(uint8_t mode);
|
||||
|
||||
#define BX_PCIBIOS 1
|
||||
#define BX_APPNAME "VirtualBox"
|
||||
-#define BIOS_BUILD_DATE __DATE__
|
||||
+#define BIOS_BUILD_DATE "openSUSE Buildservice"
|
||||
//--------------------------------------------------------------------------
|
||||
// print_bios_banner
|
||||
// displays a the bios version
|
||||
Index: VirtualBox-7.0.14/src/VBox/Additions/common/VBoxService/VBoxService.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Additions/common/VBoxService/VBoxService.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/Additions/common/VBoxService/VBoxService.cpp
|
||||
@@ -255,7 +255,7 @@ static DECLCALLBACK(void) vgsvcLogHeader
|
||||
"VBoxService %s r%s (verbosity: %u) %s (%s %s) release log\n"
|
||||
"Log opened %s\n",
|
||||
RTBldCfgVersion(), RTBldCfgRevisionStr(), g_cVerbosity, VBOX_BUILD_TARGET,
|
||||
- __DATE__, __TIME__, szTmp);
|
||||
+ "openSUSE", "Build Service", szTmp);
|
||||
|
||||
int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp));
|
||||
if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW)
|
||||
Index: VirtualBox-7.0.14/src/VBox/ExtPacks/BusMouseSample/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/ExtPacks/BusMouseSample/Makefile.kmk
|
||||
+++ VirtualBox-7.0.14/src/VBox/ExtPacks/BusMouseSample/Makefile.kmk
|
||||
@@ -193,7 +193,7 @@ $(VBOX_PATH_PACKAGES)/$(VBOX_BUSMOUSE_MA
|
||||
$(VBoxBusMouseIns_0_OUTDIR)/Stage/ExtPack.manifest \
|
||||
$(VBoxBusMouseIns_0_OUTDIR)/Stage/ExtPack.signature
|
||||
# Tar it up.
|
||||
- tar -cvf - -C $(VBoxBusMouseIns_0_OUTDIR)/Stage/ . | gzip -9c > $@
|
||||
+ tar -cvf - -C $(VBoxBusMouseIns_0_OUTDIR)/Stage/ . | gzip -9nc > $@
|
||||
# Clean up
|
||||
$(RM) -Rf $(VBoxBusMouseIns_0_OUTDIR)/Stage/
|
||||
|
||||
Index: VirtualBox-7.0.14/src/VBox/ExtPacks/Skeleton/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/ExtPacks/Skeleton/Makefile.kmk
|
||||
+++ VirtualBox-7.0.14/src/VBox/ExtPacks/Skeleton/Makefile.kmk
|
||||
@@ -161,7 +161,7 @@ $(VBOX_PATH_PACKAGES)/$(VBOX_SKELETON_MA
|
||||
$(VBoxSkeletonIns_0_OUTDIR)/Stage/ExtPack.manifest \
|
||||
$(VBoxSkeletonIns_0_OUTDIR)/Stage/ExtPack.signature
|
||||
# Tar it up.
|
||||
- tar -cvf - -C $(VBoxSkeletonIns_0_OUTDIR)/Stage/ . | gzip -9c > $@
|
||||
+ tar -cvf - -C $(VBoxSkeletonIns_0_OUTDIR)/Stage/ . | gzip -9nc > $@
|
||||
# Clean up
|
||||
$(RM) -Rf $(VBoxSkeletonIns_0_OUTDIR)/Stage/
|
||||
|
||||
Index: VirtualBox-7.0.14/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
|
||||
+++ VirtualBox-7.0.14/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
|
||||
@@ -354,7 +354,7 @@ if defined(VBOX_WITH_EXTPACK_VBOXDTRACE)
|
||||
$(VBoxDTraceIns_0_OUTDIR)/Stage/ExtPack.manifest \
|
||||
$(VBoxDTraceIns_0_OUTDIR)/Stage/ExtPack.signature
|
||||
# Tar it up.
|
||||
- tar -cvf - -C $(VBoxDTraceIns_0_OUTDIR)/Stage/ . | gzip -9c > $@
|
||||
+ tar -cvf - -C $(VBoxDTraceIns_0_OUTDIR)/Stage/ . | gzip -9nc > $@
|
||||
# Clean up
|
||||
$(RM) -Rf $(VBoxDTraceIns_0_OUTDIR)/Stage/
|
||||
|
||||
Index: VirtualBox-7.0.14/src/VBox/ExtPacks/VNC/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/ExtPacks/VNC/Makefile.kmk
|
||||
+++ VirtualBox-7.0.14/src/VBox/ExtPacks/VNC/Makefile.kmk
|
||||
@@ -164,7 +164,7 @@ $(VBOX_PATH_PACKAGES)/$(VBOX_VNC_MANGLED
|
||||
$(VBoxVNCIns_0_OUTDIR)/Stage/ExtPack.manifest \
|
||||
$(VBoxVNCIns_0_OUTDIR)/Stage/ExtPack.signature
|
||||
# Tar it up.
|
||||
- tar -cvf - -C $(VBoxVNCIns_0_OUTDIR)/Stage/ . | gzip -9c > $@
|
||||
+ tar -cvf - -C $(VBoxVNCIns_0_OUTDIR)/Stage/ . | gzip -9nc > $@
|
||||
# Clean up
|
||||
$(RM) -Rf $(VBoxVNCIns_0_OUTDIR)/Stage/
|
||||
|
||||
Index: VirtualBox-7.0.14/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp
|
||||
@@ -329,7 +329,7 @@ NTSTATUS DriverEntry(PDRIVER_OBJECT pDrv
|
||||
}
|
||||
VGDrvCommonInitLoggers();
|
||||
|
||||
- LogFunc(("Driver built: %s %s\n", __DATE__, __TIME__));
|
||||
+ LogFunc(("Driver built: %s %s\n", "no date", "no time"));
|
||||
|
||||
/*
|
||||
* Check if the NT version is supported and initialize g_enmVGDrvNtVer.
|
||||
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/lightdm-greeter/vbox-greeter.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/lightdm-greeter/vbox-greeter.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/lightdm-greeter/vbox-greeter.cpp
|
||||
@@ -882,7 +882,7 @@ static DECLCALLBACK(void) vboxGreeterLog
|
||||
"vbox-greeter %s r%s (verbosity: %d) %s (%s %s) release log\n"
|
||||
"Log opened %s\n",
|
||||
RTBldCfgVersion(), RTBldCfgRevisionStr(), g_iVerbosity, VBOX_BUILD_TARGET,
|
||||
- __DATE__, __TIME__, szTmp);
|
||||
+ "no date", "no time", szTmp);
|
||||
|
||||
int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp));
|
||||
if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW)
|
||||
Index: VirtualBox-7.0.14/src/VBox/Additions/solaris/Mouse/vboxms.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Additions/solaris/Mouse/vboxms.c
|
||||
+++ VirtualBox-7.0.14/src/VBox/Additions/solaris/Mouse/vboxms.c
|
||||
@@ -266,7 +266,7 @@ static VBMSSTATE g_OpenNodeSt
|
||||
int _init(void)
|
||||
{
|
||||
int rc;
|
||||
- LogRelFlow((DEVICE_NAME ": built on " __DATE__ " at " __TIME__ "\n"));
|
||||
+ LogRelFlow((DEVICE_NAME ": built on " "no date" " at " "no time" "\n"));
|
||||
mutex_init(&g_OpenNodeState.InitMtx, NULL, MUTEX_DRIVER, NULL);
|
||||
/*
|
||||
* Prevent module autounloading.
|
||||
Index: VirtualBox-7.0.14/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/VolInfo/VolInfo.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/VolInfo/VolInfo.c
|
||||
+++ VirtualBox-7.0.14/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/VolInfo/VolInfo.c
|
||||
@@ -251,10 +251,10 @@ Returns:
|
||||
UTILITY_NAME,
|
||||
UTILITY_MAJOR_VERSION,
|
||||
UTILITY_MINOR_VERSION,
|
||||
- __BUILD_VERSION
|
||||
+ __BUILD_VERSION,
|
||||
+ "no date"
|
||||
);
|
||||
|
||||
- if (argc == 1) {
|
||||
Usage ();
|
||||
return -1;
|
||||
}
|
||||
Index: VirtualBox-7.0.14/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbDev.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbDev.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbDev.cpp
|
||||
@@ -128,7 +128,7 @@ static NTSTATUS vboxUsbDdiAddDevice(PDRI
|
||||
static VOID vboxUsbDdiUnload(PDRIVER_OBJECT pDriverObject)
|
||||
{
|
||||
RT_NOREF1(pDriverObject);
|
||||
- LogRel(("VBoxUsb::DriverUnload. Built Date (%s) Time (%s)\n", __DATE__, __TIME__));
|
||||
+ LogRel(("VBoxUsb::DriverUnload. Built Date (%s) Time (%s)\n", "no date", "no time"));
|
||||
VBoxDrvToolStrFree(&g_VBoxUsbGlobals.RegPath);
|
||||
|
||||
vboxUsbRtGlobalsTerm();
|
||||
@@ -284,7 +284,7 @@ RT_C_DECLS_END
|
||||
|
||||
NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath)
|
||||
{
|
||||
- LogRel(("VBoxUsb::DriverEntry. Built Date (%s) Time (%s)\n", __DATE__, __TIME__));
|
||||
+ LogRel(("VBoxUsb::DriverEntry. Built Date (%s) Time (%s)\n", "no date", "no time"));
|
||||
|
||||
NTSTATUS Status = vboxUsbRtGlobalsInit();
|
||||
Assert(Status == STATUS_SUCCESS);
|
||||
Index: VirtualBox-7.0.14/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp
|
||||
@@ -1518,7 +1518,7 @@ NTSTATUS _stdcall DriverEntry(PDRIVER_OB
|
||||
RTLogDestinations(0, "debugger");
|
||||
#endif
|
||||
|
||||
- LOGREL(("Built %s %s", __DATE__, __TIME__));
|
||||
+ LOGREL(("Built %s %s", "no date", "no time"));
|
||||
|
||||
memset (&g_VBoxUsbMonGlobals, 0, sizeof (g_VBoxUsbMonGlobals));
|
||||
|
||||
Index: VirtualBox-7.0.14/src/VBox/Main/glue/VBoxLogRelCreate.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Main/glue/VBoxLogRelCreate.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/Main/glue/VBoxLogRelCreate.cpp
|
||||
@@ -71,7 +71,7 @@ static DECLCALLBACK(void) vboxHeaderFoot
|
||||
#endif
|
||||
"Log opened %s\n",
|
||||
g_pszLogEntity, VBOX_VERSION_STRING, RTBldCfgRevision(),
|
||||
- RTBldCfgTargetDotArch(), __DATE__, __TIME__, szTmp);
|
||||
+ RTBldCfgTargetDotArch(), "no date", "no time", szTmp);
|
||||
|
||||
pfnLog(pReleaseLogger, "Build Type: %s\n", KBUILD_TYPE);
|
||||
int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp));
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/nsprpub/pr/tests/depend.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/nsprpub/pr/tests/depend.c
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/nsprpub/pr/tests/depend.c
|
||||
@@ -141,7 +141,7 @@ int main(int argc, char **argv)
|
||||
{
|
||||
PRIntn tab = 0;
|
||||
const PRVersionInfo *info = DummyLibVersion();
|
||||
- const char *buildDate = __DATE__, *buildTime = __TIME__;
|
||||
+ const char *buildDate = "no date", *buildTime = "no time";
|
||||
|
||||
printf("Depend.c build time is %s %s\n", buildDate, buildTime);
|
||||
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/xpcom/tests/StringFactoringTests/profile_main.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/xpcom/tests/StringFactoringTests/profile_main.cpp
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/xpcom/tests/StringFactoringTests/profile_main.cpp
|
||||
@@ -458,7 +458,7 @@ int
|
||||
main()
|
||||
{
|
||||
|
||||
- cout << "String performance profiling. Compiled " __DATE__ " " __TIME__ << endl;
|
||||
+ cout << "String performance profiling. Compiled nodate no time" << endl;
|
||||
#ifdef TEST_STD_STRING
|
||||
cout << "Testing std::string." << endl;
|
||||
#else
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/xpcom/tests/StringFactoringTests/test_main.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/xpcom/tests/StringFactoringTests/test_main.cpp
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/xpcom/tests/StringFactoringTests/test_main.cpp
|
||||
@@ -425,7 +425,7 @@ int
|
||||
main()
|
||||
{
|
||||
int tests_failed = 0;
|
||||
- cout << "String unit tests. Compiled " __DATE__ " " __TIME__ << endl;
|
||||
+ cout << "String unit tests. Compiled no date no time" << endl;
|
||||
|
||||
#if 0
|
||||
{
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/xpcom/tests/TestCOMPtr.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/xpcom/tests/TestCOMPtr.cpp
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/xpcom/tests/TestCOMPtr.cpp
|
||||
@@ -102,7 +102,7 @@ class test_message
|
||||
public:
|
||||
test_message()
|
||||
{
|
||||
- printf("BEGIN unit tests for |nsCOMPtr|, compiled " __DATE__ "\n");
|
||||
+ printf("BEGIN unit tests for |nsCOMPtr|, compiled no date\n");
|
||||
}
|
||||
|
||||
~test_message()
|
||||
Index: VirtualBox-7.0.14/src/VBox/Additions/3D/mesa/mesa-21.3.8/src/util/build_id.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Additions/3D/mesa/mesa-21.3.8/src/util/build_id.c
|
||||
+++ VirtualBox-7.0.14/src/VBox/Additions/3D/mesa/mesa-21.3.8/src/util/build_id.c
|
||||
@@ -30,9 +30,8 @@
|
||||
#include "build_id.h"
|
||||
#include "macros.h"
|
||||
|
||||
-#ifndef NT_GNU_BUILD_ID
|
||||
+#undef NT_GNU_BUILD_ID
|
||||
#define NT_GNU_BUILD_ID 3
|
||||
-#endif
|
||||
|
||||
#ifndef ElfW
|
||||
#define ElfW(type) Elf_##type
|
||||
Index: VirtualBox-7.0.14/src/VBox/Additions/x11/VBoxClient/logging.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Additions/x11/VBoxClient/logging.cpp
|
||||
+++ VirtualBox-7.0.14/src/VBox/Additions/x11/VBoxClient/logging.cpp
|
||||
@@ -328,10 +328,10 @@ static DECLCALLBACK(void) vbClLogHeaderF
|
||||
case RTLOGPHASE_BEGIN:
|
||||
{
|
||||
pfnLog(pLoggerRelease,
|
||||
- "VBoxClient %s r%s (verbosity: %u) %s (%s %s) release log\n"
|
||||
+ "VBoxClient %s r%s (verbosity: %u) %s release log\n"
|
||||
"Log opened %s\n",
|
||||
RTBldCfgVersion(), RTBldCfgRevisionStr(), g_cVerbosity, VBOX_BUILD_TARGET,
|
||||
- __DATE__, __TIME__, szTmp);
|
||||
+ szTmp);
|
||||
|
||||
int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp));
|
||||
if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW)
|
67
vbox-permissions_warning.diff
Normal file
67
vbox-permissions_warning.diff
Normal file
@ -0,0 +1,67 @@
|
||||
Index: VirtualBox-7.0.20/src/apps/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/apps/Makefile.kmk
|
||||
+++ VirtualBox-7.0.20/src/apps/Makefile.kmk
|
||||
@@ -28,5 +28,7 @@
|
||||
SUB_DEPTH = ../..
|
||||
include $(KBUILD_PATH)/subheader.kmk
|
||||
|
||||
+include $(PATH_SUB_CURRENT)/VBoxPermissionMessage/Makefile.kmk
|
||||
+
|
||||
include $(FILE_KBUILD_SUB_FOOTER)
|
||||
|
||||
Index: VirtualBox-7.0.20/src/apps/VBoxPermissionMessage/Makefile.kmk
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ VirtualBox-7.0.20/src/apps/VBoxPermissionMessage/Makefile.kmk
|
||||
@@ -0,0 +1,32 @@
|
||||
+# $Id: Makefile.kmk 28800 2010-04-27 08:22:32Z vboxsync $
|
||||
+## @file
|
||||
+#
|
||||
+# VBoxPermissionMessage is wrapper for suse users
|
||||
+#
|
||||
+#
|
||||
+# Copyright (C) 2009 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.
|
||||
+#
|
||||
+
|
||||
+
|
||||
+SUB_DEPTH = ../../..
|
||||
+include $(KBUILD_PATH)/subheader.kmk
|
||||
+
|
||||
+PROGRAMS += VBoxPermissionMessage
|
||||
+
|
||||
+VBoxPermissionMessage_TEMPLATE = VBoxQtGuiExe
|
||||
+VBoxPermissionMessage_SOURCES = VBoxPermissionMessage.cpp
|
||||
+VBoxPermissionMessage_QT_MODULES = Core Gui
|
||||
+VBoxPermissionMessage_QT_MODULES += Widgets
|
||||
+
|
||||
+#INSTALLS += VBoxPermissionMessage
|
||||
+
|
||||
+include $(KBUILD_PATH)/subfooter.kmk
|
||||
+
|
||||
Index: VirtualBox-7.0.20/src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ VirtualBox-7.0.20/src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp
|
||||
@@ -0,0 +1,12 @@
|
||||
+#include <QtWidgets/QApplication>
|
||||
+#include <QtWidgets/QMessageBox>
|
||||
+int main(int argc, char *argv[])
|
||||
+{
|
||||
+ QApplication app(argc, argv);
|
||||
+ QMessageBox msgBox;
|
||||
+ msgBox.setWindowTitle(QObject::tr("Permissions problem !"));
|
||||
+ msgBox.setText(QObject::tr("You are not a member of the \"vboxusers\" group. Please add yourself to this group before starting VirtualBox. You could do it using: Yast / Security and Users / User and Group management. Don't forget re-login your user account!"));
|
||||
+ int ret = msgBox.exec();
|
||||
+ app.quit();
|
||||
+ return 0;
|
||||
+}
|
||||
\ No newline at end of file
|
67
vbox-python-py310.patch
Normal file
67
vbox-python-py310.patch
Normal file
@ -0,0 +1,67 @@
|
||||
# https://www.virtualbox.org/changeset/90537/vbox
|
||||
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/python/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/python/Makefile.kmk
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/python/Makefile.kmk
|
||||
@@ -642,11 +642,57 @@ ifndef VBOX_ONLY_SDK
|
||||
VBoxPython3_12_x86_LIBS = $(VBOX_PYTHON312_LIB_X86)
|
||||
endif
|
||||
endif
|
||||
+endif
|
||||
+
|
||||
+ifdef VBOX_PYTHON310_INC
|
||||
+#
|
||||
+# Python 3.10 version
|
||||
+#
|
||||
+DLLS += VBoxPython3_10
|
||||
+VBoxPython3_10_EXTENDS = VBoxPythonBase
|
||||
+VBoxPython3_10_EXTENDS_BY = appending
|
||||
+VBoxPython3_10_TEMPLATE = XPCOM
|
||||
+VBoxPython3_10_INCS = $(VBOX_PYTHON310_INC)
|
||||
+VBoxPython3_10_LIBS = $(VBOX_PYTHON310_LIB)
|
||||
+
|
||||
+ ifdef VBOX_WITH_32_ON_64_MAIN_API
|
||||
+ ifdef VBOX_PYTHON310_LIB_X86
|
||||
+DLLS += VBoxPython3_10_x86
|
||||
+VBoxPython3_10_x86_EXTENDS = VBoxPythonBase_x86
|
||||
+VBoxPython3_10_x86_EXTENDS_BY = appending
|
||||
+VBoxPython3_10_x86_TEMPLATE = XPCOM
|
||||
+VBoxPython3_10_x86_INCS = $(VBOX_PYTHON310_INC)
|
||||
+VBoxPython3_10_x86_LIBS = $(VBOX_PYTHON310_LIB_X86)
|
||||
endif
|
||||
+ endif
|
||||
+endif
|
||||
|
||||
- ifdef VBOX_PYTHONDEF_INC
|
||||
- #
|
||||
- # Python without versioning
|
||||
+ifdef VBOX_PYTHON310M_INC
|
||||
+#
|
||||
+# Python 3.10 version with pymalloc
|
||||
+#
|
||||
+DLLS += VBoxPython3_10m
|
||||
+VBoxPython3_10m_EXTENDS = VBoxPythonBase_m
|
||||
+VBoxPython3_10m_EXTENDS_BY = appending
|
||||
+VBoxPython3_10m_TEMPLATE = XPCOM
|
||||
+VBoxPython3_10m_INCS = $(VBOX_PYTHON310M_INC)
|
||||
+VBoxPython3_10m_LIBS = $(VBOX_PYTHON310M_LIB)
|
||||
+
|
||||
+ ifdef VBOX_WITH_32_ON_64_MAIN_API
|
||||
+ ifdef VBOX_PYTHON310M_LIB_X86
|
||||
+DLLS += VBoxPython3_10m_x86
|
||||
+VBoxPython3_10m_x86_EXTENDS = VBoxPythonBase_x86_m
|
||||
+VBoxPython3_10m_x86_EXTENDS_BY = appending
|
||||
+VBoxPython3_10m_x86_TEMPLATE_ = XPCOM
|
||||
+VBoxPython3_10m_x86_INCS = $(VBOX_PYTHON310M_INC)
|
||||
+VBoxPython3_10m_x86_LIBS = $(VBOX_PYTHON310M_LIB_X86)
|
||||
+ endif
|
||||
+ endif
|
||||
+endif
|
||||
+
|
||||
+ifdef VBOX_PYTHONDEF_INC
|
||||
+#
|
||||
+# Python without versioning
|
||||
#
|
||||
DLLS += VBoxPython
|
||||
VBoxPython_EXTENDS = VBoxPythonBase
|
110
vbox-python-selection.patch
Normal file
110
vbox-python-selection.patch
Normal file
@ -0,0 +1,110 @@
|
||||
Index: VirtualBox-7.0.14/src/bldprogs/scm.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/bldprogs/scm.cpp
|
||||
+++ VirtualBox-7.0.14/src/bldprogs/scm.cpp
|
||||
@@ -2367,7 +2367,7 @@ static int scmProcessFileInner(PSCMRWSTA
|
||||
pszTreatAs = "shell";
|
||||
else if ( (cchFirst >= 15 && strncmp(pchFirst, "/usr/bin/python", 15) == 0)
|
||||
|| (cchFirst >= 19 && strncmp(pchFirst, "/usr/bin/env python", 19) == 0) )
|
||||
- pszTreatAs = "python";
|
||||
+ pszTreatAs = "python3";
|
||||
else if ( (cchFirst >= 13 && strncmp(pchFirst, "/usr/bin/perl", 13) == 0)
|
||||
|| (cchFirst >= 17 && strncmp(pchFirst, "/usr/bin/env perl", 17) == 0) )
|
||||
pszTreatAs = "perl";
|
||||
Index: VirtualBox-7.0.14/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
|
||||
+++ VirtualBox-7.0.14/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
|
||||
@@ -32,6 +32,9 @@
|
||||
%define VBOXDOCDIR %{_defaultdocdir}/%NAME%
|
||||
%global __requires_exclude_from ^/usr/lib/virtualbox/VBoxPython.*$|^/usr/lib/python.*$|^.*\\.py$
|
||||
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
|
||||
+# SUSE defines these in python-rpm-macros, not necessarily available here
|
||||
+%{!?__python3:%{_bindir}/python3}}
|
||||
+%{!?python3_sitelib: %define python_sitelib python3 -c "import sysconfig as s; print(s.get_paths().get('purelib'))"}
|
||||
|
||||
Summary: Oracle VM VirtualBox
|
||||
Name: %NAME%
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
|
||||
@@ -438,7 +438,9 @@ char *PyTraceback_AsString(PyObject *exc
|
||||
|
||||
{ // a temp scope so I can use temp locals.
|
||||
#if PY_MAJOR_VERSION <= 2
|
||||
- char *tempResult = PyString_AsString(obResult);
|
||||
+ char *tempResult = (char *)PyString_AsString(obResult);
|
||||
+#elif PY_MINOR_VERSION <= 6
|
||||
+ char *tempResult = (char *)PyUnicode_AsUTF8(obResult);
|
||||
#else
|
||||
/* PyUnicode_AsUTF8() is const char * as of Python 3.7, char * earlier. */
|
||||
const char *tempResult = (const char *)PyUnicode_AsUTF8(obResult);
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/PyGBase.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/PyGBase.cpp
|
||||
@@ -183,7 +183,11 @@ PyG_Base::~PyG_Base()
|
||||
// Get the correct interface pointer for this object given the IID.
|
||||
void *PyG_Base::ThisAsIID( const nsIID &iid )
|
||||
{
|
||||
- if (this==NULL) return NULL;
|
||||
+#if PY_MINOR_VERSION <= 6
|
||||
+ if (!this) return NULL;
|
||||
+#else
|
||||
+ if (!this) return NULL;
|
||||
+#endif
|
||||
if (iid.Equals(NS_GET_IID(nsISupports)))
|
||||
return (nsISupports *)(nsIInternalPython *)this;
|
||||
if (iid.Equals(NS_GET_IID(nsISupportsWeakReference)))
|
||||
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/python/gen_python_deps.py
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/python/gen_python_deps.py
|
||||
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/python/gen_python_deps.py
|
||||
@@ -96,7 +96,7 @@ def main(argv):
|
||||
else:
|
||||
multi = 1
|
||||
|
||||
- if multi == 0:
|
||||
+ if not multi:
|
||||
prefixes = ["/usr"]
|
||||
versions = [str(sys.version_info[0])+'.'+str(sys.version_info[1]),
|
||||
str(sys.version_info[0])+'.'+str(sys.version_info[1])+'m']
|
||||
@@ -124,24 +124,25 @@ def main(argv):
|
||||
continue
|
||||
for p in prefixes:
|
||||
c = checkPair(p, v, dllpre, dllsuff, bitness_magic)
|
||||
- if c is not None:
|
||||
+ if c:
|
||||
known[v] = c
|
||||
break
|
||||
- keys = list(known.keys())
|
||||
- # we want default to be the lowest versioned Python
|
||||
- keys.sort()
|
||||
- d = None
|
||||
# We need separator other than newline, to sneak through $(shell)
|
||||
sep = "|"
|
||||
- for k in keys:
|
||||
- if d is None:
|
||||
- d = k
|
||||
- vers = k.replace('.', '').upper()
|
||||
- print_vars(vers, known[k], sep, bitness_magic)
|
||||
- if d is not None:
|
||||
- print_vars("DEF", known[d], sep, bitness_magic)
|
||||
+
|
||||
+ if not known:
|
||||
+ # this type of problem should be detected in configure
|
||||
+ # print_vars("DEF", defaultpaths, sep, bitness_magic)
|
||||
+ pass
|
||||
else:
|
||||
print(argv[0] + ": No Python development package found!", file=sys.stderr)
|
||||
+ if multi:
|
||||
+ for ver, paths in known.items():
|
||||
+ print_vars(ver.replace('.', '').upper(), paths, sep, bitness_magic)
|
||||
+ else:
|
||||
+ ver = versions[0]
|
||||
+ paths = known[ver]
|
||||
+ print_vars(ver.replace('.', ''), paths, sep, bitness_magic)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv)
|
13
vbox-smc-napa.diff
Normal file
13
vbox-smc-napa.diff
Normal file
@ -0,0 +1,13 @@
|
||||
Index: VirtualBox-7.0.14/src/VBox/Devices/PC/vbox.dsl
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Devices/PC/vbox.dsl
|
||||
+++ VirtualBox-7.0.14/src/VBox/Devices/PC/vbox.dsl
|
||||
@@ -1225,7 +1225,7 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2,
|
||||
Device (SMC)
|
||||
{
|
||||
Name (_HID, EisaId ("APP0001"))
|
||||
- Name (_CID, "smc-napa")
|
||||
+ Name (_CID, "smcnapa")
|
||||
|
||||
Method (_STA, 0, NotSerialized)
|
||||
{
|
70
vbox-suid-warning.diff
Normal file
70
vbox-suid-warning.diff
Normal file
@ -0,0 +1,70 @@
|
||||
Index: VirtualBox-7.0.20/src/apps/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/apps/Makefile.kmk
|
||||
+++ VirtualBox-7.0.20/src/apps/Makefile.kmk
|
||||
@@ -30,5 +30,7 @@ include $(KBUILD_PATH)/subheader.kmk
|
||||
|
||||
include $(PATH_SUB_CURRENT)/VBoxPermissionMessage/Makefile.kmk
|
||||
|
||||
+include $(PATH_SUB_CURRENT)/VBoxSUIDMessage/Makefile.kmk
|
||||
+
|
||||
include $(FILE_KBUILD_SUB_FOOTER)
|
||||
|
||||
Index: VirtualBox-7.0.20/src/apps/VBoxSUIDMessage/Makefile.kmk
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ VirtualBox-7.0.20/src/apps/VBoxSUIDMessage/Makefile.kmk
|
||||
@@ -0,0 +1,33 @@
|
||||
+# $Id: Makefile.kmk 28800 2010-04-27 08:22:32Z vboxsync $
|
||||
+## @file
|
||||
+#
|
||||
+# VBoxSUIDMessage is wrapper for suse users
|
||||
+#
|
||||
+#
|
||||
+# Copyright (C) 2009 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.
|
||||
+#
|
||||
+
|
||||
+
|
||||
+SUB_DEPTH = ../../..
|
||||
+include $(KBUILD_PATH)/subheader.kmk
|
||||
+
|
||||
+PROGRAMS += VBoxSUIDMessage
|
||||
+
|
||||
+VBoxSUIDMessage_TEMPLATE = VBoxQtGuiExe
|
||||
+VBoxSUIDMessage_SOURCES = VBoxSUIDMessage.cpp
|
||||
+VBoxSUIDMessage_QT_MODULES = Core Gui
|
||||
+VBoxSUIDMessage_QT_MODULES += Widgets
|
||||
+
|
||||
+#INSTALLS += VBoxSUIDMessage
|
||||
+
|
||||
+include $(KBUILD_PATH)/subfooter.kmk
|
||||
+
|
||||
+
|
||||
Index: VirtualBox-7.0.20/src/apps/VBoxSUIDMessage/VBoxSUIDMessage.cpp
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ VirtualBox-7.0.20/src/apps/VBoxSUIDMessage/VBoxSUIDMessage.cpp
|
||||
@@ -0,0 +1,15 @@
|
||||
+#include <QtWidgets/QApplication>
|
||||
+#include <QtWidgets/QMessageBox>
|
||||
+int main(int argc, char *argv[])
|
||||
+{
|
||||
+ QApplication app(argc, argv);
|
||||
+ QMessageBox msgBox;
|
||||
+ msgBox.setWindowTitle(QObject::tr("File Permissions problem !"));
|
||||
+ msgBox.setText(QObject::tr("File VirtualBoxVM must be SUID, but the file permissions are wrong.\n\n"
|
||||
+ "To fix this problem, please run\n"
|
||||
+ "sudo chmod 4750 /usr/lib/virtualbox/VirtualBoxVM\n\n"
|
||||
+ "Until this is done, Virtual Machines cannot run."));
|
||||
+ msgBox.exec();
|
||||
+ app.quit();
|
||||
+ return 0;
|
||||
+}
|
77
vbox-usb-warning.diff
Normal file
77
vbox-usb-warning.diff
Normal file
@ -0,0 +1,77 @@
|
||||
Index: VirtualBox-7.0.20/src/apps/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/apps/Makefile.kmk
|
||||
+++ VirtualBox-7.0.20/src/apps/Makefile.kmk
|
||||
@@ -32,5 +32,7 @@ include $(PATH_SUB_CURRENT)/VBoxPermissi
|
||||
|
||||
include $(PATH_SUB_CURRENT)/VBoxSUIDMessage/Makefile.kmk
|
||||
|
||||
+include $(PATH_SUB_CURRENT)/VBoxUSB_DevRules/Makefile.kmk
|
||||
+
|
||||
include $(FILE_KBUILD_SUB_FOOTER)
|
||||
|
||||
Index: VirtualBox-7.0.20/src/apps/VBoxUSB_DevRules/Makefile.kmk
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ VirtualBox-7.0.20/src/apps/VBoxUSB_DevRules/Makefile.kmk
|
||||
@@ -0,0 +1,30 @@
|
||||
+# $Id: Makefile.kmk 28800 2010-04-27 08:22:32Z vboxsync $
|
||||
+## @file
|
||||
+#
|
||||
+# VBoxUSB_DevRules is wrapper for suse users
|
||||
+#
|
||||
+# 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.
|
||||
+#
|
||||
+
|
||||
+
|
||||
+SUB_DEPTH = ../../..
|
||||
+include $(KBUILD_PATH)/subheader.kmk
|
||||
+
|
||||
+PROGRAMS += VBoxUSB_DevRules
|
||||
+
|
||||
+VBoxUSB_DevRules_TEMPLATE = VBoxQtGuiExe
|
||||
+VBoxUSB_DevRules_SOURCES = VBoxUSB_DevRules.cpp
|
||||
+VBoxUSB_DevRules_QT_MODULES = Core Gui
|
||||
+VBoxUSB_DevRules_QT_MODULES += Widgets
|
||||
+
|
||||
+#INSTALLS += VBoxUSB_DevRules
|
||||
+
|
||||
+include $(KBUILD_PATH)/subfooter.kmk
|
||||
+
|
||||
+
|
||||
Index: VirtualBox-7.0.20/src/apps/VBoxUSB_DevRules/VBoxUSB_DevRules.cpp
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ VirtualBox-7.0.20/src/apps/VBoxUSB_DevRules/VBoxUSB_DevRules.cpp
|
||||
@@ -0,0 +1,25 @@
|
||||
+#include <QtWidgets/QApplication>
|
||||
+#include <QtWidgets/QMessageBox>
|
||||
+#include <QtWidgets/QPushButton>+
|
||||
+int main(int argc, char *argv[])
|
||||
+{
|
||||
+ QApplication app(argc, argv);
|
||||
+ QMessageBox msgBox;
|
||||
+ QPushButton *myYesButton = msgBox.addButton("Enable", QMessageBox::YesRole);
|
||||
+ QPushButton *myNoButton = msgBox.addButton("Disable", QMessageBox::NoRole);
|
||||
+ msgBox.setWindowTitle(QObject::tr("USB Rules and Permissions !"));
|
||||
+ msgBox.setText(QObject::tr("USB passthrough requires read/write access to USB devices. "
|
||||
+ "As a result, it opens a security hole.\n\n"
|
||||
+ "Nonetheless, this feature is extremely useful and it may be worth the security risk. "
|
||||
+ "Thus the code defaults to enabling it.\n\nIf you agree that the risk is acceptable, then click 'Enable'.\n"
|
||||
+ "You should not be asked this question again when VB is updated. If you later change your mind, run 'rm ~/.config/virtualbox/*'\n\n"
|
||||
+ "If you wish to disable USB passthrough to plug the security hole, then click 'Disable'. "
|
||||
+ "You will be asked for the system password, and /etc/udev/rules.d/60-vboxdrv.rules will be changed.\n\n"
|
||||
+ "These changes may not be preserved through VB updates, thus this screen may be displayed again at that time."));
|
||||
+ msgBox.exec();
|
||||
+ app.quit();
|
||||
+ if (msgBox.clickedButton() == myYesButton)
|
||||
+ return 0;
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
213
vbox-vboxadd-init-script.diff
Normal file
213
vbox-vboxadd-init-script.diff
Normal file
@ -0,0 +1,213 @@
|
||||
Index: VirtualBox-7.0.20/src/VBox/Additions/linux/installer/vboxadd.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/Additions/linux/installer/vboxadd.sh
|
||||
+++ VirtualBox-7.0.20/src/VBox/Additions/linux/installer/vboxadd.sh
|
||||
@@ -36,11 +36,14 @@
|
||||
# Provides: vboxadd
|
||||
# Required-Start:
|
||||
# Required-Stop:
|
||||
-# Default-Start: 2 3 4 5
|
||||
+# Should-Start: $remote_fs
|
||||
+# Should-Stop: $remote_fs
|
||||
+# Default-Start: 2 3 5
|
||||
# Default-Stop: 0 1 6
|
||||
# X-Start-Before: display-manager
|
||||
# X-Service-Type: oneshot
|
||||
# Description: VirtualBox Linux Additions kernel modules
|
||||
+# Short-Description: VirtualBox Linux Additions kernel modules
|
||||
### END INIT INFO
|
||||
|
||||
## @todo This file duplicates a lot of script with vboxdrv.sh. When making
|
||||
@@ -266,12 +269,6 @@ do_vboxguest_non_udev()
|
||||
fail "Cannot create device $dev with major $maj and minor $min"
|
||||
}
|
||||
fi
|
||||
- chown $owner:$group $dev 2>/dev/null || {
|
||||
- rm -f $dev 2>/dev/null
|
||||
- rm -f $userdev 2>/dev/null
|
||||
- rmmod vboxguest 2>/dev/null
|
||||
- fail "Cannot change owner $owner:$group for device $dev"
|
||||
- }
|
||||
|
||||
if [ ! -c $userdev ]; then
|
||||
maj=10
|
||||
@@ -282,12 +279,6 @@ do_vboxguest_non_udev()
|
||||
rmmod vboxguest 2>/dev/null
|
||||
fail "Cannot create device $userdev with major $maj and minor $min"
|
||||
}
|
||||
- chown $owner:$group $userdev 2>/dev/null || {
|
||||
- rm -f $dev 2>/dev/null
|
||||
- rm -f $userdev 2>/dev/null
|
||||
- rmmod vboxguest 2>/dev/null
|
||||
- fail "Cannot change owner $owner:$group for device $userdev"
|
||||
- }
|
||||
fi
|
||||
fi
|
||||
}
|
||||
@@ -351,7 +342,7 @@ cleanup_modules()
|
||||
done
|
||||
if test -z "${keep}"; then
|
||||
rm -rf /lib/modules/"${KERN_VER}"
|
||||
- rm -f /boot/initrd.img-"${KERN_VER}"
|
||||
+ rm -f /boot/initrd.img-"${KERN_VER}"
|
||||
fi
|
||||
done
|
||||
for i in ${OLDMODULES}; do
|
||||
@@ -660,9 +651,9 @@ create_udev_rule()
|
||||
udevcontrol reload_rules >/dev/null 2>&1 || true
|
||||
fi
|
||||
}
|
||||
-
|
||||
-create_module_rebuild_script()
|
||||
-{
|
||||
+ # And an rc file to re-build the kernel modules and re-set-up the X server.
|
||||
+ ln -sf "$lib_path/$PACKAGE/vboxadd" /sbin/rcvboxadd
|
||||
+ #ln -sf "$lib_path/$PACKAGE/vboxadd-x11" /sbin/rcvboxadd-x11
|
||||
# And a post-installation script for rebuilding modules when a new kernel
|
||||
# is installed.
|
||||
mkdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d
|
||||
@@ -875,18 +866,17 @@ setup()
|
||||
already available for kernel $TARGET_VER and do not require to be rebuilt."
|
||||
else
|
||||
info "Building the VirtualBox Guest Additions kernel modules. This may take a while."
|
||||
- info "To build modules for other installed kernels, run"
|
||||
- info " /sbin/rcvboxadd quicksetup <version>"
|
||||
- info "or"
|
||||
- info " /sbin/rcvboxadd quicksetup all"
|
||||
- if test -d /lib/modules/"$TARGET_VER"/build; then
|
||||
- setup_modules "$TARGET_VER"
|
||||
- depmod
|
||||
- else
|
||||
- info "Kernel headers not found for target kernel $TARGET_VER. \
|
||||
+ info "To build modules for other installed kernels, run"
|
||||
+ info " /sbin/rcvboxadd quicksetup <version>"
|
||||
+ info "or"
|
||||
+ info " /sbin/rcvboxadd quicksetup all"
|
||||
+ if test -d /lib/modules/"$TARGET_VER"/build; then
|
||||
+ setup_modules "$TARGET_VER"
|
||||
+ depmod
|
||||
+ else
|
||||
+ info "Kernel headers not found for target kernel $TARGET_VER. \
|
||||
Please install them and execute
|
||||
/sbin/rcvboxadd setup"
|
||||
- fi
|
||||
fi
|
||||
fi
|
||||
create_vbox_user
|
||||
@@ -904,17 +894,14 @@ Please install them and execute
|
||||
# Put the X.Org driver in place. This is harmless if it is not needed.
|
||||
# Also set up the OpenGL library.
|
||||
myerr=`"${INSTALL_DIR}/init/vboxadd-x11" setup 2>&1`
|
||||
- test -z "${myerr}" || log "${myerr}"
|
||||
-
|
||||
- return 0
|
||||
+ succ_msg
|
||||
}
|
||||
|
||||
# cleanup_script
|
||||
cleanup()
|
||||
{
|
||||
- if test -z "${INSTALL_NO_MODULE_BUILDS}"; then
|
||||
- # Delete old versions of VBox modules.
|
||||
- cleanup_modules
|
||||
+ # Delete old versions of VBox modules.
|
||||
+ cleanup_modules
|
||||
depmod
|
||||
|
||||
# Remove old module sources
|
||||
@@ -924,12 +911,13 @@ cleanup()
|
||||
fi
|
||||
|
||||
# Clean-up X11-related bits
|
||||
- "${INSTALL_DIR}/init/vboxadd-x11" cleanup
|
||||
+ #/sbin/rcvboxadd-x11 cleanup
|
||||
|
||||
# Remove other files
|
||||
- if test -z "${INSTALL_NO_MODULE_BUILDS}"; then
|
||||
- rm -f /etc/kernel/postinst.d/vboxadd /etc/kernel/prerm.d/vboxadd
|
||||
- rmdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d 2>/dev/null || true
|
||||
+ rm /sbin/rcvboxadd 2>/dev/null
|
||||
+ #rm /sbin/rcvboxadd-x11 2>/dev/null
|
||||
+ rm -f /etc/kernel/postinst.d/vboxadd /etc/kernel/prerm.d/vboxadd
|
||||
+ rmdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d 2>/dev/null || true
|
||||
fi
|
||||
rm -f /sbin/mount.vboxsf 2>/dev/null
|
||||
rm -f /etc/udev/rules.d/60-vboxadd.rules 2>/dev/null
|
||||
Index: VirtualBox-7.0.20/src/VBox/Additions/linux/installer/vboxadd-service.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/Additions/linux/installer/vboxadd-service.sh
|
||||
+++ VirtualBox-7.0.20/src/VBox/Additions/linux/installer/vboxadd-service.sh
|
||||
@@ -36,7 +36,7 @@
|
||||
# Provides: vboxadd-service
|
||||
# Required-Start: vboxadd
|
||||
# Required-Stop: vboxadd
|
||||
-# Default-Start: 2 3 4 5
|
||||
+# Default-Start: 2 3 5
|
||||
# Default-Stop: 0 1 6
|
||||
# X-Conflicts-With: systemd-timesyncd.service
|
||||
# Description: VirtualBox Additions Service
|
||||
Index: VirtualBox-7.0.20/src/VBox/Installer/linux/vboxautostart-service.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/Installer/linux/vboxautostart-service.sh
|
||||
+++ VirtualBox-7.0.20/src/VBox/Installer/linux/vboxautostart-service.sh
|
||||
@@ -33,7 +33,7 @@
|
||||
# Provides: vboxautostart-service
|
||||
# Required-Start: vboxdrv
|
||||
# Required-Stop: vboxdrv
|
||||
-# Default-Start: 2 3 4 5
|
||||
+# Default-Start: 2 3 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Description: VirtualBox autostart service
|
||||
### END INIT INFO
|
||||
Index: VirtualBox-7.0.20/src/VBox/Installer/linux/vboxballoonctrl-service.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/Installer/linux/vboxballoonctrl-service.sh
|
||||
+++ VirtualBox-7.0.20/src/VBox/Installer/linux/vboxballoonctrl-service.sh
|
||||
@@ -33,7 +33,7 @@
|
||||
# Provides: vboxballoonctrl-service
|
||||
# Required-Start: vboxdrv
|
||||
# Required-Stop: vboxdrv
|
||||
-# Default-Start: 2 3 4 5
|
||||
+# Default-Start: 2 3 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Description: VirtualBox watchdog daemon
|
||||
### END INIT INFO
|
||||
Index: VirtualBox-7.0.20/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh
|
||||
+++ VirtualBox-7.0.20/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh
|
||||
@@ -41,7 +41,7 @@
|
||||
# Provides: testboxscript-service
|
||||
# Required-Start: $network
|
||||
# Required-Stop:
|
||||
-# Default-Start: 2 3 4 5
|
||||
+# Default-Start: 2 3 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Description: TestBoxScript service
|
||||
### END INIT INFO
|
||||
Index: VirtualBox-7.0.20/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh
|
||||
+++ VirtualBox-7.0.20/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh
|
||||
@@ -41,7 +41,7 @@
|
||||
# Provides: vboxtxs
|
||||
# Required-Start: $network
|
||||
# Required-Stop:
|
||||
-# Default-Start: 2 3 4 5
|
||||
+# Default-Start: 2 3 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Description: VirtualBox Test Execution Service
|
||||
### END INIT INFO
|
||||
Index: VirtualBox-7.0.20/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.20.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh
|
||||
+++ VirtualBox-7.0.20/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh
|
||||
@@ -41,7 +41,7 @@
|
||||
# Provides: vboxtxs
|
||||
# Required-Start: $network
|
||||
# Required-Stop:
|
||||
-# Default-Start: 2 3 4 5
|
||||
+# Default-Start: 2 3 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Description: VirtualBox Test Execution Service
|
||||
### END INIT INFO
|
72
vbox-vboxdrv-init-script.diff
Normal file
72
vbox-vboxdrv-init-script.diff
Normal file
@ -0,0 +1,72 @@
|
||||
---
|
||||
src/VBox/Installer/linux/vboxdrv.sh | 42 ++++++------------------------------
|
||||
1 file changed, 7 insertions(+), 35 deletions(-)
|
||||
|
||||
Index: VirtualBox-7.1.0/src/VBox/Installer/linux/vboxdrv.sh
|
||||
===================================================================
|
||||
--- VirtualBox-7.1.0.orig/src/VBox/Installer/linux/vboxdrv.sh
|
||||
+++ VirtualBox-7.1.0/src/VBox/Installer/linux/vboxdrv.sh
|
||||
@@ -29,11 +29,12 @@
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: vboxdrv
|
||||
-# Required-Start: $syslog
|
||||
-# Required-Stop:
|
||||
-# Default-Start: 2 3 4 5
|
||||
+# Required-Start: $syslog $remote_fs
|
||||
+# Required-Stop: $syslog $remote_fs
|
||||
+# Default-Start: 2 3 5
|
||||
# Default-Stop: 0 1 6
|
||||
-# Short-Description: VirtualBox Linux kernel module
|
||||
+# Short-Description: VirtualBox Linux module
|
||||
+# Description: VirtualBox Linux kernel module
|
||||
### END INIT INFO
|
||||
|
||||
## @todo This file duplicates a lot of script with vboxadd.sh. When making
|
||||
@@ -571,13 +572,6 @@ See the documentation for your Linux dis
|
||||
fi
|
||||
fi
|
||||
# ensure permissions
|
||||
- if ! chown :"${GROUP}" $DEVICE 2>/dev/null; then
|
||||
- rmmod vboxpci 2>/dev/null
|
||||
- rmmod vboxnetadp 2>/dev/null
|
||||
- rmmod vboxnetflt 2>/dev/null
|
||||
- rmmod vboxdrv 2>/dev/null
|
||||
- failure "Cannot change group ${GROUP} for device $DEVICE"
|
||||
- fi
|
||||
if ! $MODPROBE vboxnetflt > /dev/null 2>&1; then
|
||||
failure "modprobe vboxnetflt failed. Please use 'dmesg' to find out why"
|
||||
fi
|
||||
@@ -736,30 +730,8 @@ setup()
|
||||
module_build_log "$myerr"
|
||||
failure "Look at $LOG to find out what went wrong"
|
||||
fi
|
||||
- log "Building the net adapter module."
|
||||
- if ! myerr=`$BUILDINTMP \
|
||||
- --use-module-symvers /tmp/vboxdrv-Module.symvers \
|
||||
- --module-source "$MODULE_SRC/vboxnetadp" \
|
||||
- --no-print-directory install 2>&1`; then
|
||||
- log "Error building the module:"
|
||||
- module_build_log "$myerr"
|
||||
- failure "Look at $LOG to find out what went wrong"
|
||||
- fi
|
||||
- if test -e "$MODULE_SRC/vboxpci"; then
|
||||
- log "Building the PCI pass-through module."
|
||||
- if ! myerr=`$BUILDINTMP \
|
||||
- --use-module-symvers /tmp/vboxdrv-Module.symvers \
|
||||
- --module-source "$MODULE_SRC/vboxpci" \
|
||||
- --no-print-directory install 2>&1`; then
|
||||
- log "Error building the module:"
|
||||
- module_build_log "$myerr"
|
||||
- failure "Look at $LOG to find out what went wrong"
|
||||
- fi
|
||||
- fi
|
||||
- rm -f /etc/vbox/module_not_compiled
|
||||
- depmod -a
|
||||
- sync
|
||||
- succ_msg "VirtualBox kernel modules built"
|
||||
+
|
||||
+ /usr/sbin/vboxconfig
|
||||
|
||||
# Sign kernel modules if kernel configuration requires it.
|
||||
if test "$(kernel_requires_module_signature)" = "1"; then
|
20
vboxadd-service.service
Normal file
20
vboxadd-service.service
Normal file
@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
SourcePath=/etc/init.d/vboxadd-service
|
||||
Description=Start/Stop VirtualBox Guest Linux module
|
||||
After=remote-fs.target
|
||||
Wants=remote-fs.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Restart=no
|
||||
TimeoutSec=5min
|
||||
IgnoreSIGPIPE=no
|
||||
KillMode=process
|
||||
GuessMainPID=no
|
||||
RemainAfterExit=yes
|
||||
SuccessExitStatus=5 6
|
||||
ExecStart=/usr/lib/virtualbox/vboxadd-service start
|
||||
ExecStop=/usr/lib/virtualbox/vboxadd-service stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
20
vboxautostart-service.service
Normal file
20
vboxautostart-service.service
Normal file
@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
SourcePath=/usr/lib/virtualbox/vboxautostart-service.sh
|
||||
Description=
|
||||
Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target
|
||||
After=vboxdrv.service
|
||||
Conflicts=shutdown.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
Restart=no
|
||||
TimeoutSec=5min
|
||||
IgnoreSIGPIPE=no
|
||||
KillMode=process
|
||||
GuessMainPID=no
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/lib/virtualbox/vboxautostart-service.sh start
|
||||
ExecStop=/usr/lib/virtualbox/vboxautostart-service.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
174
vboxautostart-service.sh
Normal file
174
vboxautostart-service.sh
Normal file
@ -0,0 +1,174 @@
|
||||
#!/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
|
14
vboxclient.desktop
Normal file
14
vboxclient.desktop
Normal file
@ -0,0 +1,14 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Version=1.0
|
||||
Name=vboxclient
|
||||
Name[C]=vboxclient
|
||||
Comment[C]=VirtualBox User Session Services
|
||||
Comment=VirtualBox User Session Services
|
||||
Comment[it]=Servizi di sessione utente di VirtualBox
|
||||
Comment[pl]=Usługi sesji użytkownika VirtualBox
|
||||
Exec=/etc/X11/xinit/xinitrc.d/98vboxadd-xclient
|
||||
X-GNOME-Autostart-enabled=true
|
||||
X-KDE-autostart-after=panel
|
||||
X-Desktop-File-Install-Version=0.26
|
||||
|
13
vboxclient.service
Normal file
13
vboxclient.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=VirtualBox guest VMSVGA resize client
|
||||
ConditionVirtualization=|oracle
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecCondition=sh -c '[ "$XDG_SESSION_TYPE" = "wayland" ] || exit -1'
|
||||
ExecStart=/usr/bin/VBoxDRMClient
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
60
vboxconfig.sh
Normal file
60
vboxconfig.sh
Normal file
@ -0,0 +1,60 @@
|
||||
#!/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
|
||||
|
20
vboxdrv.service
Normal file
20
vboxdrv.service
Normal file
@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
SourcePath=/usr/lib/virtualbox/vboxdrv.sh
|
||||
Description=VirtualBox Linux kernel module
|
||||
Before=runlevel2.target runlevel3.target runlevel5.target shutdown.target
|
||||
After=
|
||||
Conflicts=shutdown.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
Restart=no
|
||||
TimeoutSec=5min
|
||||
IgnoreSIGPIPE=no
|
||||
KillMode=process
|
||||
GuessMainPID=no
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/lib/virtualbox/vboxdrv.sh start
|
||||
ExecStop=/usr/lib/virtualbox/vboxdrv.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
375
vboxdrv.sh
Normal file
375
vboxdrv.sh
Normal file
@ -0,0 +1,375 @@
|
||||
#! /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
|
||||
|
62
vboxguestconfig.sh
Normal file
62
vboxguestconfig.sh
Normal file
@ -0,0 +1,62 @@
|
||||
#!/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
|
||||
|
9
vboxservice.service
Normal file
9
vboxservice.service
Normal file
@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=VirtualBox guest services
|
||||
ConditionVirtualization=|oracle
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStartPre=-/usr/sbin/modprobe vboxguest
|
||||
ExecStart=/usr/sbin/VBoxService -f
|
||||
Restart=on-failure
|
20
vboxweb-service.service
Normal file
20
vboxweb-service.service
Normal file
@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
SourcePath=/usr/lib/virtualbox/vboxweb-service.sh
|
||||
Description=
|
||||
Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target
|
||||
After=vboxdrv.service
|
||||
Conflicts=shutdown.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
Restart=no
|
||||
TimeoutSec=5min
|
||||
IgnoreSIGPIPE=no
|
||||
KillMode=process
|
||||
GuessMainPID=no
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/lib/virtualbox/vboxweb-service.sh start
|
||||
ExecStop=/usr/lib/virtualbox/vboxweb-service.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
229
vboxweb-service.sh
Normal file
229
vboxweb-service.sh
Normal file
@ -0,0 +1,229 @@
|
||||
#!/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
|
7
virtualbox-60-vboxdrv.rules
Normal file
7
virtualbox-60-vboxdrv.rules
Normal file
@ -0,0 +1,7 @@
|
||||
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"
|
||||
KERNEL=="vboxdrvu", NAME="vboxdrvu", OWNER="root", GROUP="vboxusers", MODE="0660"
|
||||
KERNEL=="vboxnetctl", NAME="vboxnetctl", OWNER="root", GROUP="vboxusers", MODE="0660"
|
||||
SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
|
||||
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
|
||||
SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
|
||||
SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
|
4
virtualbox-60-vboxguest.rules
Normal file
4
virtualbox-60-vboxguest.rules
Normal file
@ -0,0 +1,4 @@
|
||||
KERNEL=="vboxguest", NAME="vboxguest", OWNER="root", MODE="0660" ENV{ID_INPUT}="1", ENV{ID_INPUT_MOUSE}="1"
|
||||
KERNEL=="vboxuser", NAME="vboxuser", OWNER="root", MODE="0660", TAG+="uaccess"
|
||||
ACTION=="add|change", SUBSYSTEM=="drm", KERNEL=="card[0-9]", SUBSYSTEMS=="pci", ATTRS{vendor}=="0x15ad", ATTRS{device}=="0x0405", TAG+="systemd", ENV{SYSTEMD_WANTS}="vboxclient.service"
|
||||
|
14
virtualbox-LocalConfig.kmk
Normal file
14
virtualbox-LocalConfig.kmk
Normal file
@ -0,0 +1,14 @@
|
||||
VBOX_WITH_TESTCASES =
|
||||
VBOX_WITH_TESTSUITE =
|
||||
VBOX_WITH_ORIGIN :=
|
||||
VBOX_WITH_REGISTRATION_REQUEST =
|
||||
VBOX_WITH_UPDATE_REQUEST =
|
||||
VBOX_WITH_INSTALLER = 1
|
||||
VBOX_WITH_LINUX_ADDITIONS = 1
|
||||
VBOX_WITH_X11_ADDITIONS = 1
|
||||
VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
|
||||
VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
|
||||
VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
|
||||
VBOX_PATH_APP_PRIVATE = /usr/share/virtualbox
|
||||
VBOX_PATH_APP_DOCS := /usr/share/doc/packages/virtualbox
|
||||
VBOX_WITH_REGISTRATION_REQUEST =
|
17
virtualbox-default.virtualbox
Normal file
17
virtualbox-default.virtualbox
Normal file
@ -0,0 +1,17 @@
|
||||
# /etc/default/virtualbox
|
||||
#
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Autostart
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
VBOXAUTOSTART_DB=/etc/vbox
|
||||
VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# By default, vboxdrv creates a file /etc/udev/rules.d/60-vboxdrv.rules every time, it is started,
|
||||
# that allows full control of this hosts usb devices in virtual machines (given, you allow accessing
|
||||
# them with the GUI).
|
||||
# In order to control this ability yourself, copy the generated /etc/udev/rules.d/60-vboxdrv.rules
|
||||
# file to another name and modify to your needs, e.g. comment out all lines beginning with SUBSYSTEM,
|
||||
# which will make this hosts usb devices inaccessible AND enable the next line.
|
||||
#INSTALL_NO_UDEV=1
|
||||
|
3
virtualbox-kmp-preamble
Normal file
3
virtualbox-kmp-preamble
Normal file
@ -0,0 +1,3 @@
|
||||
Requires: kernel-%1
|
||||
Enhances: kernel-%1
|
||||
Supplements: (virtualbox-guest-tools and kernel-%1)
|
62
virtualbox-patch-source.sh
Normal file
62
virtualbox-patch-source.sh
Normal file
@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
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"
|
4
virtualbox-rpmlintrc
Normal file
4
virtualbox-rpmlintrc
Normal file
@ -0,0 +1,4 @@
|
||||
addFilter("incoherent-init-script-name vboxdrv")
|
||||
addFilter("incoherent-init-script-name vboxadd")
|
||||
addFilter("xorg-x11-driver-virtualbox-ose.* shlib-policy-missing-suffix")
|
||||
addFilter("executable-stack")
|
27
virtualbox-sed-params.patch
Normal file
27
virtualbox-sed-params.patch
Normal file
@ -0,0 +1,27 @@
|
||||
Index: VirtualBox-7.0.14/src/VBox/Main/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Main/Makefile.kmk
|
||||
+++ VirtualBox-7.0.14/src/VBox/Main/Makefile.kmk
|
||||
@@ -1895,7 +1895,7 @@ $(VBoxAPIWrap_0_OUTDIR)/VBoxAPI.d.ts \
|
||||
$(QUIET)$(VBOX_XSLTPROC) --stringparam KBUILD_HOST $(KBUILD_HOST) \
|
||||
--stringparam generating "dtrace-probes" \
|
||||
-o "$@" $(VBoxAPIWrap_VBOX_XSLT) $(VBOX_XIDL_FILE)
|
||||
- $(QUIET)$(SED) -e '' -o "$@.tmp" \
|
||||
+ $(QUIET)$(SED) -e '' --output "$@.tmp" \
|
||||
"$(VBOX_PATH_MAIN_SRC)/src-all/VBoxAPI-start$(if-expr "$(VBOX_HOST_DTRACE_VERSION)" == "dtrace: Sun D 1.6.2",-alternative,).d" \
|
||||
"$@" \
|
||||
"$(VBOX_PATH_MAIN_SRC)/src-all/VBoxAPI-end$(if-expr "$(VBOX_HOST_DTRACE_VERSION)" == "dtrace: Sun D 1.6.2",-alternative,).d"
|
||||
Index: VirtualBox-7.0.14/src/VBox/Devices/Makefile.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.14.orig/src/VBox/Devices/Makefile.kmk
|
||||
+++ VirtualBox-7.0.14/src/VBox/Devices/Makefile.kmk
|
||||
@@ -989,8 +989,7 @@ if !defined(VBOX_ONLY_EXTPACKS) && "$(in
|
||||
$(call MSG_TOOL,iasl,VBoxDD,$<,$@)
|
||||
$(QUIET)$(RM) -f $@ $@.tmp $@.pre
|
||||
$(QUIET)$(TOOL_$(VBOX_GCC_TOOL)_CC) -E -P -x c -o $@.pre $<
|
||||
- $(QUIET)$(SED) -e "s/<NL>/\n/g" \
|
||||
- --output $@.pre1 $@.pre
|
||||
+ $(QUIET)$(SED) -e "s/<NL>/\n/g" $@.pre > $@.pre1
|
||||
$(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ $@.pre1
|
||||
$(QUIET)$(MV) -f $@ $@.tmp
|
||||
$(QUIET)$(SED) -e "s/AmlCode\|vboxssdt_cpuhotplug_aml_code/AmlCodeSsdtCpuHotPlug/g" \
|
70
virtualbox-wrapper.sh
Normal file
70
virtualbox-wrapper.sh
Normal file
@ -0,0 +1,70 @@
|
||||
#!/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 "$@"
|
7900
virtualbox.changes
Normal file
7900
virtualbox.changes
Normal file
File diff suppressed because it is too large
Load Diff
1026
virtualbox.spec
Normal file
1026
virtualbox.spec
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user