Skip to content

Commit

Permalink
virtualbox: Add vbox package to remove the CFI check (fails all time)
Browse files Browse the repository at this point in the history
Signed-off-by: Peter Jung <[email protected]>
  • Loading branch information
ptr1337 committed Dec 22, 2024
1 parent 57a8480 commit b8600b4
Show file tree
Hide file tree
Showing 26 changed files with 1,064 additions and 0 deletions.
177 changes: 177 additions & 0 deletions virtualbox/.SRCINFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
pkgbase = virtualbox
pkgver = 7.1.4
pkgrel = 3
url = https://virtualbox.org/
arch = x86_64
license = GPL
license = custom:CDDL
makedepends = alsa-lib
makedepends = cdrkit
makedepends = curl
makedepends = device-mapper
makedepends = git
makedepends = glu
makedepends = gsoap
makedepends = glslang
makedepends = iasl
makedepends = jdk8-openjdk
makedepends = libidl2
makedepends = liblzf
makedepends = libpulse
makedepends = libtpms
makedepends = libvncserver
makedepends = libvpx
makedepends = libxcomposite
makedepends = libxcursor
makedepends = libxinerama
makedepends = libxml2
makedepends = libxmu
makedepends = libxrandr
makedepends = libxslt
makedepends = libxtst
makedepends = linux-headers
makedepends = mesa
makedepends = python
makedepends = python-setuptools
makedepends = qt6-base
makedepends = qt6-scxml
makedepends = qt6-tools
makedepends = sdl
makedepends = sdl_ttf
makedepends = vde2
makedepends = xorgproto
makedepends = xorg-server-devel
makedepends = yasm
source = https://download.virtualbox.org/virtualbox/7.1.4/VirtualBox-7.1.4.tar.bz2
source = virtualbox-host-dkms.conf
source = virtualbox.modprobe
source = virtualbox.sysusers
source = virtualbox-guest-utils.sysusers
source = 60-vboxdrv.rules
source = 60-vboxguest.rules
source = LocalConfig.kmk
source = vboxservice.service
source = vboxservice-nox.service
source = vboxdrmclient.path
source = vboxdrmclient.service
source = vboxweb.service
source = vboxreload
source = 001-disable-update.patch
source = 004-drop-Wno-format.patch
source = 008-no-vboxvideo.patch
source = 009-properly-handle-i3wm.patch
source = 012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch
source = 013-support-building-from-dkms.patch
source = 018-upate-xclient-script.patch
source = 020-python-3-12.patch
source = 021-python-3-13.patch
sha256sums = 872e7a42b41f8558abbf887f1bdc7aac932bb88b2764d07cbce270cab57e3b5e
sha256sums = 76d98ea062fcad9e5e3fa981d046a6eb12a3e718a296544a68b66f4b65cb56db
sha256sums = 07fe5c8b313cd7f01505eb9721357269a288ccd0c04e6467afb954038d6f46df
sha256sums = 2101ebb58233bbfadf3aa74381f22f7e7e508559d2b46387114bc2d8e308554c
sha256sums = da4c49f6ca94e047e196cdbcba2c321199f4760056ea66e0fbc659353e128c9e
sha256sums = f876e9f55243eded423fda4fc2ffe3b174dca90380a6315f7c9b3cd1c9d07206
sha256sums = 033c597e0f5285d2ddb0490868e5b6f945f45c7b1b1152a02a9e6fea438b2c95
sha256sums = 476202f87a4a461af6b73a7709e91f868a65ff7306494227e0d7b264fa3f919e
sha256sums = c41a801fe344a4471a7b61a4764d1d857c403e4fb96e2ba6bc89c77a35f2be7a
sha256sums = 01dbb921bd57a852919cc78be5b73580a564f28ebab2fe8d6c9b8301265cbfce
sha256sums = 83d8f24bff25bb925083cf39b3195236c6136105e62417712cc3f25b92e14b47
sha256sums = 2beab8de525220fa418c9873f9e0d657ddbad4ff9e4a46d7053e6cd9bc4ce95e
sha256sums = e6e875ef186578b53106d7f6af48e426cdaf1b4e86834f01696b8ef1c685787f
sha256sums = 4001b5927348fe669a541e80526d4f9ea91b883805f102f7d571edbb482a9b9d
sha256sums = 483a043ddfe32c4c5001a8de0a94a0ea884f34d3dbd817b492b9c97fba3ab5e0
sha256sums = ffd30d1d5c41909518571da02c797102d459ba6dec22fe335b4778db264275e1
sha256sums = d0ca7e240b7bc19b4630998d943d095c733cbdb27b343269f2f602a8f1088974
sha256sums = d76b52d955215a72c296aa36d173897bcaa357528bf5a73347c52ccec8654ced
sha256sums = 8c64b3617e597390dd25cf85c9afac0ebbe369d620349d7f5c8056d834acb6c6
sha256sums = 00f68b86d32a1fada900c2da8dad2ab4215106cd58004f049bded99727cda2ff
sha256sums = 73ed7ef243c975227660b9bbe7c576018f2c0216b3a3b5efcc4cc56c44c90914
sha256sums = ddb2092a5a000aa6ef854796f39dcdf86e72c06d53b24bac3835350571182df6
sha256sums = 70245fc3abafbd3b191d87e2910f0f004050672f2d0d056db029a062e80e73bc

pkgname = virtualbox
pkgdesc = Powerful x86 virtualization for enterprise as well as home use
depends = curl
depends = gcc-libs
depends = glibc
depends = liblzf
depends = libpng
depends = libtpms
depends = libvpx
depends = libx11
depends = libxcursor
depends = libxext
depends = libxinerama
depends = libxml2
depends = libxmu
depends = libxt
depends = openssl
depends = procps-ng
depends = python
depends = qt6-base
depends = qt6-scxml
depends = qt6-tools
depends = sdl
depends = shared-mime-info
depends = zlib
depends = VIRTUALBOX-HOST-MODULES
optdepends = vde2: Virtual Distributed Ethernet support
optdepends = virtualbox-guest-iso: Guest Additions CD image
optdepends = virtualbox-ext-vnc: VNC server support
optdepends = virtualbox-sdk: Developer kit
conflicts = virtualbox-ose
replaces = virtualbox-ose
backup = etc/vbox/vbox.cfg

pkgname = virtualbox-sdk
pkgdesc = VirtualBox Software Developer Kit (SDK)
depends = python

pkgname = virtualbox-host-dkms
pkgdesc = VirtualBox Host kernel modules sources
depends = dkms
depends = gcc
depends = make
provides = VIRTUALBOX-HOST-MODULES
conflicts = virtualbox-source
conflicts = virtualbox-host-source
replaces = virtualbox-source
replaces = virtualbox-host-source

pkgname = virtualbox-guest-utils
pkgdesc = VirtualBox Guest userspace utilities
depends = glibc
depends = pam
depends = libx11
depends = libxcomposite
depends = libxdamage
depends = libxext
depends = libxfixes
depends = libxmu
depends = libxt
depends = xorg-xrandr
depends = xf86-video-vmware
depends = VIRTUALBOX-GUEST-MODULES
conflicts = virtualbox-archlinux-additions
conflicts = virtualbox-guest-additions
conflicts = virtualbox-guest-utils-nox
conflicts = virtualbox-guest-dkms
replaces = virtualbox-archlinux-additions
replaces = virtualbox-guest-additions
replaces = virtualbox-guest-dkms

pkgname = virtualbox-guest-utils-nox
pkgdesc = VirtualBox Guest userspace utilities without X support
depends = glibc
depends = pam
depends = VIRTUALBOX-GUEST-MODULES
conflicts = virtualbox-guest-utils
conflicts = virtualbox-guest-dkms
replaces = virtualbox-guest-dkms

pkgname = virtualbox-ext-vnc
pkgdesc = VirtualBox VNC extension pack
install = virtualbox-ext-vnc.install
depends = virtualbox
depends = libvncserver
optdepends = tigervnc: vnc client
13 changes: 13 additions & 0 deletions virtualbox/001-disable-update.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp b/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
index 7a902e83..e19804ed 100644
--- a/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
@@ -2420,7 +2420,7 @@ QString UIExtraDataManager::preventBetaBuildWarningForVersion()
bool UIExtraDataManager::applicationUpdateEnabled()
{
/* 'True' unless 'restriction' feature allowed: */
- return !isFeatureAllowed(GUI_PreventApplicationUpdate);
+ return false;
}

QString UIExtraDataManager::applicationUpdateData()
86 changes: 86 additions & 0 deletions virtualbox/004-drop-Wno-format.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
From c2dc4a940e485a26e1b729e94c5aa710834d1542 Mon Sep 17 00:00:00 2001
From: Christian Hesse <[email protected]>
Date: Tue, 18 Apr 2023 22:59:50 +0200
Subject: [PATCH 1/1] drop -Wno-format

---
src/VBox/Devices/EFI/Firmware/Config.kmk | 2 +-
src/VBox/Devices/Makefile.kmk | 2 +-
src/VBox/Devices/PC/ipxe/Makefile.kmk | 2 +-
src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk | 2 +-
src/VBox/Main/webservice/Makefile.kmk | 3 +--
5 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/VBox/Devices/EFI/Firmware/Config.kmk b/src/VBox/Devices/EFI/Firmware/Config.kmk
index 5e7dcf91..04f4c854 100644
--- a/src/VBox/Devices/EFI/Firmware/Config.kmk
+++ b/src/VBox/Devices/EFI/Firmware/Config.kmk
@@ -165,7 +165,7 @@ TEMPLATE_VBoxEfiBldProg_LIBS = \
ifn1of ($(KBUILD_HOST), win) # This stuff isn't up to our standard at all! :/
TEMPLATE_VBoxEfiBldProg_CFLAGS = $(filter-out -pedantic,$(TEMPLATE_VBoxBldProg_CFLAGS)) \
-Wno-sign-compare -Wno-missing-prototypes -Wno-strict-prototypes \
- -Wno-implicit-function-declaration -Wno-missing-declarations -Wno-shadow -Wno-format \
+ -Wno-implicit-function-declaration -Wno-missing-declarations -Wno-shadow \
-Wno-empty-body -Wno-unused-parameter -Wno-unused-variable -Wno-unused-label
TEMPLATE_VBoxEfiBldProg_CXXFLAGS = $(filter-out -pedantic,$(TEMPLATE_VBoxBldProg_CXXFLAGS)) \
-Wno-all -Wno-shadow -Wno-empty-body -Wno-unused-parameter -Wno-unused-variable \
diff --git a/src/VBox/Devices/Makefile.kmk b/src/VBox/Devices/Makefile.kmk
index 613ff466..9123b767 100644
--- a/src/VBox/Devices/Makefile.kmk
+++ b/src/VBox/Devices/Makefile.kmk
@@ -859,7 +859,7 @@ if !defined(VBOX_ONLY_EXTPACKS) && "$(intersects $(KBUILD_TARGET_ARCH),$(VBOX_SU
ifeq ($(KBUILD_TARGET),win)
$(file)_CFLAGS = -wd4018
else
- $(file)_CFLAGS += -Wno-sign-compare -Wno-format -Wno-bad-function-cast
+ $(file)_CFLAGS += -Wno-sign-compare -Wno-bad-function-cast
endif
endef

diff --git a/src/VBox/Devices/PC/ipxe/Makefile.kmk b/src/VBox/Devices/PC/ipxe/Makefile.kmk
index 6c95001a..9708145c 100644
--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk
+++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk
@@ -396,7 +396,7 @@ endif
#
BLDPROGS += ipxezbin
ipxezbin_TEMPLATE = VBoxBldProg
- ipxezbin_CFLAGS = -Wno-format -Wno-unused-function -Wno-pointer-arith
+ ipxezbin_CFLAGS = -Wno-unused-function -Wno-pointer-arith
ipxezbin_SOURCES = src/util/zbin.c
ifdef VBOX_WITH_LIBLZMA
ipxezbin_INCS = $(SDK_VBoxLibLzma_INCS) # Can't use the proper SDK here as link order matters and liblzma depends on our runtime.
diff --git a/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk b/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
index 394834e5..2f90d86f 100644
--- a/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
+++ b/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
@@ -118,7 +118,7 @@ if defined(VBOX_WITH_EXTPACK_VBOXDTRACE) && defined(VBOX_WITH_EXTPACK)
VBoxDTraceCmd_DEFS.win = YY_USE_PROTOS=1 YYENABLE_NLS=0 YYLTYPE_IS_TRIVIAL=0
VBoxDTraceCmd_SDKS = VBoxZlib
ifn1of ($(KBUILD_TARGET), win)
- VBoxDTraceCmd_CFLAGS = -Wno-format $(VBOX_GCC_Wno-overlength-strings) -Wno-sign-compare -Wno-strict-prototypes -Wno-missing-prototypes -Wno-missing-declarations -Wno-shadow
+ VBoxDTraceCmd_CFLAGS = $(VBOX_GCC_Wno-overlength-strings) -Wno-sign-compare -Wno-strict-prototypes -Wno-missing-prototypes -Wno-missing-declarations -Wno-shadow
endif
VBoxDTraceCmd_INCS = \
include \
diff --git a/src/VBox/Main/webservice/Makefile.kmk b/src/VBox/Main/webservice/Makefile.kmk
index 84880dcd..f301f9cc 100644
--- a/src/VBox/Main/webservice/Makefile.kmk
+++ b/src/VBox/Main/webservice/Makefile.kmk
@@ -264,7 +264,7 @@ ifdef VBOX_GSOAP_INSTALLED
ifn1of ($(KBUILD_TARGET), win)
vboxsoap_CXXFLAGS += -Wno-shadow -Wno-parentheses $(VBOX_GCC_Wno-literal-suffix) \
$(VBOX_GCC_Wno-stringop-overflow) $(VBOX_GCC_Wno-stringop-truncation) \
- $(VBOX_GCC_Wno-vla) -Wno-format -Wno-deprecated-declarations $(VBOX_GCC_fno-printf-return-value)
+ $(VBOX_GCC_Wno-vla) -Wno-deprecated-declarations $(VBOX_GCC_fno-printf-return-value)
ifn1of ($(KBUILD_TYPE), debug) # Save time+memory by using -O0 instead of -O2.
vboxsoap_CXXFLAGS += -O0 ## @todo this could be interesting for g++ (not clang++): -fcprop-registers
endif
@@ -335,7 +335,6 @@ ifdef VBOX_GSOAP_INSTALLED
$(VBOXWEB_OUT_DIR)/gsoap_copy_all_ts
ifn1of ($(KBUILD_TARGET), win)
$(VBOX_GSOAP_CXX_SOURCES)_CXXFLAGS = \
- -Wno-format \
$(VBOX_GCC_Wno-int-in-bool-context) \
$(VBOX_GCC_Wno-logical-op)
# currently necessary when compiling against OpenSSL 1.0 due to a missing
13 changes: 13 additions & 0 deletions virtualbox/008-no-vboxvideo.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
index 6f98670d..0a7b7e01 100644
--- a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
+++ b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
@@ -406,7 +406,7 @@ vboxvideo_drv_118_LIBS += $(vboxvideo_drv_70_LIBS)

ifdef 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
+ DLLS := $(filter-out vboxvideo_drv_%,$(DLLS))
SYSMODS := $(filter-out vboxvideo_drv%,$(SYSMODS))
vboxvideo_drv_system_TEMPLATE = VBoxGuestR3XOrgMod
vboxvideo_drv_system_CFLAGS := \
75 changes: 75 additions & 0 deletions virtualbox/009-properly-handle-i3wm.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
From 04cf1e3a266fcc4e65d01b8b492d2c5fbe1bf13d Mon Sep 17 00:00:00 2001
From: Christian Hesse <[email protected]>
Date: Wed, 11 Sep 2024 21:10:09 +0200
Subject: [PATCH 1/1] properly handle i3wm

---
.../VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp | 3 ++-
.../Frontends/VirtualBox/src/platform/nix/VBoxUtils-nix.cpp | 3 +++
src/VBox/Frontends/VirtualBox/src/platform/nix/VBoxUtils-nix.h | 3 ++-
src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp | 3 +++
4 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp
index e9b78fde..17a1dfc0 100644
--- a/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp
@@ -380,7 +380,8 @@ QRect UIDesktopWidgetWatchdog::availableGeometry(QScreen *pScreen) const
/* Get cached available-geometry: */
const QRect availableGeometry = m_availableGeometryData.value(screenToIndex(pScreen));
/* Return cached available-geometry if it's valid or screen-geometry otherwise: */
- return availableGeometry.isValid() ? availableGeometry : screenGeometry(pScreen);
+ return availableGeometry.isValid() && NativeWindowSubsystem::X11WindowManagerType() != X11WMType_i3 ?
+ availableGeometry : screenGeometry(pScreen);
# endif /* !VBOX_GUI_WITH_CUSTOMIZATIONS1 */
#else /* !VBOX_WS_NIX */
/* Just return screen available-geometry: */
diff --git a/src/VBox/Frontends/VirtualBox/src/platform/nix/VBoxUtils-nix.cpp b/src/VBox/Frontends/VirtualBox/src/platform/nix/VBoxUtils-nix.cpp
index ab520e51..f168050d 100644
--- a/src/VBox/Frontends/VirtualBox/src/platform/nix/VBoxUtils-nix.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/platform/nix/VBoxUtils-nix.cpp
@@ -139,6 +139,9 @@ X11WMType NativeWindowSubsystem::X11WindowManagerType()
else
if (QString((const char*)pcData).contains("Xfwm4", Qt::CaseInsensitive))
wmType = X11WMType_Xfwm4;
+ else
+ if (QString((const char*)pcData).contains("i3", Qt::CaseInsensitive))
+ wmType = X11WMType_i3;
if (pcData)
XFree(pcData);
}
diff --git a/src/VBox/Frontends/VirtualBox/src/platform/nix/VBoxUtils-nix.h b/src/VBox/Frontends/VirtualBox/src/platform/nix/VBoxUtils-nix.h
index e1dfc07f..b1a789e7 100644
--- a/src/VBox/Frontends/VirtualBox/src/platform/nix/VBoxUtils-nix.h
+++ b/src/VBox/Frontends/VirtualBox/src/platform/nix/VBoxUtils-nix.h
@@ -51,6 +51,7 @@ enum X11WMType
X11WMType_Metacity,
X11WMType_Mutter,
X11WMType_Xfwm4,
+ X11WMType_i3,
};

/** X11: Screen-saver inhibit methods. */
@@ -104,7 +105,7 @@ namespace NativeWindowSubsystem
/** Wrapper for window manager type functions. */
X11WMType windowManagerType(bool fIsXServerAvailable);
/** X11: Determines and returns current Window Manager type. */
- X11WMType X11WindowManagerType();
+ SHARED_LIBRARY_STUFF X11WMType X11WindowManagerType();
/** Wayland: Determines and returns current Window Manager type. */
X11WMType WaylandWindowManagerType();

diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp
index 272729a4..6346fb63 100644
--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp
@@ -1076,6 +1076,9 @@ void UIMiniToolBar::prepare()
/* Enable translucency through Qt API if supported: */
if (uiCommon().isCompositingManagerRunning())
setAttribute(Qt::WA_TranslucentBackground);
+
+ if (NativeWindowSubsystem::X11WindowManagerType() == X11WMType_i3)
+ setWindowFlags(Qt::FramelessWindowHint);
#endif /* VBOX_WS_NIX */

/* Make sure we have no focus: */
14 changes: 14 additions & 0 deletions virtualbox/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp
index fc29936c..cbf9c478 100644
--- a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp
+++ b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp
@@ -178,6 +178,9 @@ static int vbglR3GuestCtrlMsgWaitFor(uint32_t idClient, uint32_t *pidMsg, uint32
*/
DECL_NO_INLINE(static, bool) vbglR3GuestCtrlDetectPeekGetCancelSupport(uint32_t idClient)
{
+
+ return false;
+
/*
* Seems we get VINF_SUCCESS back from the host if we try unsupported
* guest control messages, so we need to supply some random message
Loading

0 comments on commit b8600b4

Please sign in to comment.