Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package virtualbox for openSUSE:Factory 
checked in at 2026-09-07 11:29:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virtualbox (Old)
 and      /work/SRC/openSUSE:Factory/.virtualbox.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "virtualbox"

Mon Sep  7 11:29:41 2026 rev:315 rq:1375889 version:7.2.16

Changes:
--------
--- /work/SRC/openSUSE:Factory/virtualbox/virtualbox.changes    2026-08-21 
16:50:03.994006063 +0200
+++ /work/SRC/openSUSE:Factory/.virtualbox.new.1265/virtualbox.changes  
2026-09-07 11:30:40.962842400 +0200
@@ -1,0 +2,10 @@
+Sat Sep  5 04:28:27 UTC 2026 - Jiri Slaby <[email protected]>
+
+- add Leap-16.1.patch (bsc#1274769)
+
+-------------------------------------------------------------------
+Wed Sep  2 04:43:02 UTC 2026 - Jiri Slaby <[email protected]>
+
+- add kernel-7.3.patch to fix build against kernel 7.3.
+
+-------------------------------------------------------------------

New:
----
  Leap-16.1.patch
  kernel-7.3.patch

----------(New B)----------
  New:
- add Leap-16.1.patch (bsc#1274769)
  New:
- add kernel-7.3.patch to fix build against kernel 7.3.
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ virtualbox.spec ++++++
--- /var/tmp/diff_new_pack.OuCGYQ/_old  2026-09-07 11:30:43.202920921 +0200
+++ /var/tmp/diff_new_pack.OuCGYQ/_new  2026-09-07 11:30:43.204920991 +0200
@@ -130,6 +130,8 @@
 Patch12:        host-source.patch
 Patch20:        gentoo-C23.patch
 Patch30:        kernel-longterm_6-18-44.patch
+Patch31:        kernel-7.3.patch
+Patch32:        Leap-16.1.patch
 #
 # Common BuildRequires for both virtualbox and virtualbox-kmp
 BuildRequires:  %{kernel_module_package_buildreqs}

++++++ Leap-16.1.patch ++++++
>From cb25e3b0a23327a1d8c39ca7fd089150604ecf02 Mon Sep 17 00:00:00 2001
From: Jiri Slaby <[email protected]>
Date: Sat, 5 Sep 2026 06:23:56 +0200
Subject: [PATCH] Support openSUSE Leap 16.1
References: bsc#1274769
Patch-mainline: Submitted https://github.com/VirtualBox/virtualbox/issues/854

The kernel in openSUSE Leap 16.1 is defined as SLFO 1.3.

1) Define a new macro RTLNX_SUSE_SLFO_MAJ_PREREQ() for SLFO.
2) Use it over the code, because the kernel adopted many features, but
   is still at version 6.12.

Signed-off-by: Jiri Slaby <[email protected]>
---
 include/iprt/linux/version.h                        | 7 +++++++
 src/VBox/Additions/linux/drm/vbox_drv.c             | 8 ++++----
 src/VBox/Additions/linux/drm/vbox_drv.h             | 8 ++++++++
 src/VBox/Additions/linux/drm/vbox_fb.c              | 4 ++--
 src/VBox/Additions/linux/drm/vbox_main.c            | 4 ++--
 src/VBox/Additions/linux/drm/vbox_mode.c            | 2 +-
 src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c   | 2 +-
 src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c | 8 ++++----
 src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c   | 6 +++---
 src/VBox/Runtime/r0drv/linux/the-linux-kernel.h     | 3 ++-
 10 files changed, 34 insertions(+), 18 deletions(-)

diff --git a/include/iprt/linux/version.h b/include/iprt/linux/version.h
index 27f414b00e0f..a40ea2e5ebe6 100644
--- a/include/iprt/linux/version.h
+++ b/include/iprt/linux/version.h
@@ -133,6 +133,13 @@
 # define RTLNX_SUSE_MAJ_PREREQ(a_iMajor, a_iMinor) (0)
 #endif
 
+/** @def RTLNX_SUSE_SLFO_MAJ_PREREQ
+ * Require a minimum minor release number for the given SUSE SLFO release.
+ * @param a_iMajor      CONFIG_SUSE_VERSION must _equal_ this.
+ * @param a_iMinor      CONFIG_SUSE_PATCHLEVEL must be greater or equal to 
this.
+ */
+#define RTLNX_SUSE_SLFO_MAJ_PREREQ(a_iMajor, a_iMinor) 
(IS_ENABLED(CONFIG_SUSE_PRODUCT_SLFO) && RTLNX_SUSE_MAJ_PREREQ(a_iMajor, 
a_iMinor))
+
 /** @def RTLNX_SUSE_ADLP_MAJ_LNX_PREREQ
  * Require a minimum minor release number for the given SUSE release.
  *
diff --git a/src/VBox/Additions/linux/drm/vbox_drv.c 
b/src/VBox/Additions/linux/drm/vbox_drv.c
index 5679e97091ff..24dd0244d813 100644
--- a/src/VBox/Additions/linux/drm/vbox_drv.c
+++ b/src/VBox/Additions/linux/drm/vbox_drv.c
@@ -43,14 +43,14 @@
 # include <drm/drm_probe_helper.h>
 #endif
 
-#if RTLNX_VER_MIN(6,13,0) && defined(CONFIG_APERTURE_HELPERS) || 
RTLNX_RHEL_RANGE(9,7, 9,99) || RTLNX_RHEL_RANGE(10,1, 10,99)
+#if RTLNX_VER_MIN(6,13,0) && defined(CONFIG_APERTURE_HELPERS) || 
RTLNX_RHEL_RANGE(9,7, 9,99) || RTLNX_RHEL_RANGE(10,1, 10,99) || 
RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)
 # include <linux/aperture.h>
 #endif
 
 #if RTLNX_VER_RANGE(5,14,0, 6,13,0) || RTLNX_RHEL_RANGE(8,6, 8,99)
 /** RHEL 9.7 is based on 5.14, however this header is not available
  * there due to backports from newer kernels. Same for RHEL 10.X (based on 
6.12) */
-# if !RTLNX_RHEL_RANGE(9,7, 9,99) && !RTLNX_RHEL_RANGE(10,1, 10,99)
+# if !RTLNX_RHEL_RANGE(9,7, 9,99) && !RTLNX_RHEL_RANGE(10,1, 10,99) && 
!RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)
 #  include <drm/drm_aperture.h>
 # endif
 #endif
@@ -102,7 +102,7 @@ static int vbox_pci_probe(struct pci_dev *pdev, const 
struct pci_device_id *ent)
        }
 #endif
 
-# if RTLNX_VER_MIN(6,13,0) && defined(CONFIG_APERTURE_HELPERS) || 
RTLNX_RHEL_RANGE(9,7, 9,99) || RTLNX_RHEL_RANGE(10,1, 10,99)
+# if RTLNX_VER_MIN(6,13,0) && defined(CONFIG_APERTURE_HELPERS) || 
RTLNX_RHEL_RANGE(9,7, 9,99) || RTLNX_RHEL_RANGE(10,1, 10,99) || 
RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)
        ret = aperture_remove_conflicting_pci_devices(pdev, driver.name);
 # elif RTLNX_VER_RANGE(5,14,0, 6,13,0) || RTLNX_RHEL_RANGE(8,6, 8,99)
 #  if RTLNX_VER_MIN(5,15,0) || RTLNX_RHEL_RANGE(8,7, 8,99) || 
RTLNX_RHEL_MIN(9,1) || RTLNX_SUSE_MAJ_PREREQ(15,4)
@@ -399,7 +399,7 @@ static struct drm_driver driver = {
 #endif
        .name = DRIVER_NAME,
        .desc = DRIVER_DESC,
-#if RTLNX_VER_MAX(6,14,0) && !RTLNX_RHEL_RANGE(9,7, 9,99) && 
!RTLNX_RHEL_RANGE(10,1, 10,99)
+#if RTLNX_VER_MAX(6,14,0) && !RTLNX_RHEL_RANGE(9,7, 9,99) && 
!RTLNX_RHEL_RANGE(10,1, 10,99) && !RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)
        .date = DRIVER_DATE,
 #endif
 #if RTLNX_VER_MIN(6,15,0) || RTLNX_RHEL_RANGE(9,7, 9,99) || 
RTLNX_RHEL_RANGE(10,1, 10,99)
diff --git a/src/VBox/Additions/linux/drm/vbox_drv.h 
b/src/VBox/Additions/linux/drm/vbox_drv.h
index 9f47a5e3aac0..ffdecbe2bb47 100644
--- a/src/VBox/Additions/linux/drm/vbox_drv.h
+++ b/src/VBox/Additions/linux/drm/vbox_drv.h
@@ -123,6 +123,14 @@
 #else
 # define RTLNX_SUSE_MAJ_PREREQ(a_iMajor, a_iMinor) (0)
 #endif
+
+/** @def RTLNX_SUSE_SLFO_MAJ_PREREQ
+ * Require a minimum minor release number for the given SUSE SLFO release.
+ * @param a_iMajor      CONFIG_SUSE_VERSION must _equal_ this.
+ * @param a_iMinor      CONFIG_SUSE_PATCHLEVEL must be greater or equal to 
this.
+ */
+#define RTLNX_SUSE_SLFO_MAJ_PREREQ(a_iMajor, a_iMinor) 
(IS_ENABLED(CONFIG_SUSE_PRODUCT_SLFO) && RTLNX_SUSE_MAJ_PREREQ(a_iMajor, 
a_iMinor))
+
 /* iprt/linux/version.h copy - end */
 
 #if RTLNX_VER_MAX(4,5,0)
diff --git a/src/VBox/Additions/linux/drm/vbox_fb.c 
b/src/VBox/Additions/linux/drm/vbox_fb.c
index 16970bed2ee1..b29b39c81313 100644
--- a/src/VBox/Additions/linux/drm/vbox_fb.c
+++ b/src/VBox/Additions/linux/drm/vbox_fb.c
@@ -420,7 +420,7 @@ int vboxfb_create(struct drm_fb_helper *helper,
        return 0;
 }
 
-#if RTLNX_VER_MAX(6,15,0) && !RTLNX_RHEL_RANGE(9,7, 9,99) && 
!RTLNX_RHEL_RANGE(10,1, 10,99)
+#if RTLNX_VER_MAX(6,15,0) && !RTLNX_RHEL_RANGE(9,7, 9,99) && 
!RTLNX_RHEL_RANGE(10,1, 10,99) && !RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)
 static struct drm_fb_helper_funcs vbox_fb_helper_funcs = {
        .fb_probe = vboxfb_create,
 };
@@ -493,7 +493,7 @@ int vbox_fbdev_init(struct drm_device *dev)
        vbox->fbdev = fbdev;
        spin_lock_init(&fbdev->dirty_lock);
 
-#if RTLNX_VER_MIN(6,15,0) || RTLNX_RHEL_RANGE(9,7, 9,99) || 
RTLNX_RHEL_RANGE(10,1, 10,99)
+#if RTLNX_VER_MIN(6,15,0) || RTLNX_RHEL_RANGE(9,7, 9,99) || 
RTLNX_RHEL_RANGE(10,1, 10,99) || RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)
        drm_fb_helper_prepare(dev, &fbdev->helper, 32, NULL);
 #elif RTLNX_VER_MIN(6,3,0) || RTLNX_RHEL_RANGE(8,9, 8,99) || 
RTLNX_RHEL_RANGE(9,3, 9,99)
        drm_fb_helper_prepare(dev, &fbdev->helper, 32, &vbox_fb_helper_funcs);
diff --git a/src/VBox/Additions/linux/drm/vbox_main.c 
b/src/VBox/Additions/linux/drm/vbox_main.c
index 1fa4d139cc40..747d0224a6d1 100644
--- a/src/VBox/Additions/linux/drm/vbox_main.c
+++ b/src/VBox/Additions/linux/drm/vbox_main.c
@@ -180,7 +180,7 @@ int vbox_framebuffer_init(struct drm_device *dev,
 {
        int ret;
 
-#if RTLNX_VER_MIN(6,17,0) || RTLNX_RHEL_RANGE(9,8, 9,99) || 
RTLNX_RHEL_RANGE(10,2, 10,99)
+#if RTLNX_VER_MIN(6,17,0) || RTLNX_RHEL_RANGE(9,8, 9,99) || 
RTLNX_RHEL_RANGE(10,2, 10,99) || RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)
        const struct drm_format_info *format = drm_get_format_info(dev, 
mode_cmd->pixel_format, 0);
        drm_helper_mode_fill_fb_struct(dev, &vbox_fb->base, format, mode_cmd);
 #elif RTLNX_VER_MIN(4,11,0) || RTLNX_RHEL_MAJ_PREREQ(7,5)
@@ -201,7 +201,7 @@ int vbox_framebuffer_init(struct drm_device *dev,
 static struct drm_framebuffer *vbox_user_framebuffer_create(
                struct drm_device *dev,
                struct drm_file *filp,
-#if RTLNX_VER_MIN(6,17,0) || RTLNX_RHEL_RANGE(9,8, 9,99) || 
RTLNX_RHEL_RANGE(10,2, 10,99)
+#if RTLNX_VER_MIN(6,17,0) || RTLNX_RHEL_RANGE(9,8, 9,99) || 
RTLNX_RHEL_RANGE(10,2, 10,99) || RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)
                const struct drm_format_info *info,
 #endif
 #if RTLNX_VER_MIN(4,5,0) || RTLNX_RHEL_MAJ_PREREQ(7,3)
diff --git a/src/VBox/Additions/linux/drm/vbox_mode.c 
b/src/VBox/Additions/linux/drm/vbox_mode.c
index e18c50be611c..bd40181c5f78 100644
--- a/src/VBox/Additions/linux/drm/vbox_mode.c
+++ b/src/VBox/Additions/linux/drm/vbox_mode.c
@@ -660,7 +660,7 @@ static int vbox_get_modes(struct drm_connector *connector)
     return num_modes;
 }
 
-#if RTLNX_VER_MIN(6,15,0) || RTLNX_RHEL_RANGE(9,7, 9,99) || 
RTLNX_RHEL_RANGE(10,1, 10,99)
+#if RTLNX_VER_MIN(6,15,0) || RTLNX_RHEL_RANGE(9,7, 9,99) || 
RTLNX_RHEL_RANGE(10,1, 10,99) || RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)
 static enum drm_mode_status vbox_mode_valid(struct drm_connector *connector, 
const struct drm_display_mode *mode)
 #elif RTLNX_VER_MIN(3,14,0) || RTLNX_RHEL_MAJ_PREREQ(7,1)
 static enum drm_mode_status vbox_mode_valid(struct drm_connector *connector, 
struct drm_display_mode *mode)
diff --git a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c 
b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
index 01d6b33aed30..8693f4a14ea7 100644
--- a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
+++ b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
@@ -250,7 +250,7 @@ static struct file_system_type                  
g_SupDrvLnxFsType =
 static __typeof__(switch_fpu_return)           *g_pfnSwitchFpuReturn;
 #endif
 
-#if RTLNX_VER_MIN(6,19,0) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
+#if (RTLNX_VER_MIN(6,19,0) || RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)) && 
(defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
 # define SUPDRV_LINUX_DYNAMIC_CR4_FUNCTIONS
 /** Function pointer to cr4_update_irqsoff(). */
 static __typeof__(cr4_update_irqsoff)           *g_pfnCr4UpdateIrqsoff;
diff --git a/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c 
b/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c
index 88f49f816c9e..ef60fc6d7e3b 100644
--- a/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c
+++ b/src/VBox/Runtime/r0drv/linux/initterm-r0drv-linux.c
@@ -72,7 +72,7 @@ bool g_fLnxIsCetSupported = false;
 /** Whether CET is enabled. */
 bool g_fLnxIsCetEnabled  = false;
 
-#if RTLNX_VER_MIN(6,19,0) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
+#ifdef LINUX_DYNAMIC_FLUSH_TLB_ALL
 /** Pointer to __flush_tlb_all kernel symbol. */
 __typeof__(__flush_tlb_all) *g_pfnLinuxFlushTlbAll;
 #endif
@@ -179,7 +179,7 @@ DECLHIDDEN(int) rtR0InitNative(void)
             g_pLnxInitMm = (struct mm_struct 
*)RTR0DbgKrnlInfoGetSymbol(hKrnlInfo, NULL,  "init_mm");
             //printk("rtR0InitNative: g_pLnxInitMm=%#lx\n", (unsigned 
long)g_pLnxInitMm);
             printk(KERN_INFO "rtR0InitNative: g_pLnxInitMm=%p\n", 
g_pLnxInitMm);
-# if RTLNX_VER_MIN(6,19,0) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
+# ifdef LINUX_DYNAMIC_FLUSH_TLB_ALL
             g_pfnLinuxFlushTlbAll = 
(__typeof__(g_pfnLinuxFlushTlbAll))RTR0DbgKrnlInfoGetFunction(hKrnlInfo, NULL,
                                                                                
                    "__flush_tlb_all");
 # endif
@@ -188,7 +188,7 @@ DECLHIDDEN(int) rtR0InitNative(void)
         else
             printk(KERN_WARNING "rtR0InitNative: RTR0DbgKrnlInfoOpen failed: 
%d\n", rc2);
 
-# if RTLNX_VER_MIN(6,19,0) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
+# ifdef LINUX_DYNAMIC_FLUSH_TLB_ALL
         if (!RT_VALID_PTR(g_pfnLinuxFlushTlbAll))
             g_pfnLinuxFlushTlbAll = 
(__typeof__(g_pfnLinuxFlushTlbAll))__symbol_get("__flush_tlb_all");
         if (!RT_VALID_PTR(g_pfnLinuxFlushTlbAll))
@@ -215,7 +215,7 @@ DECLHIDDEN(void) rtR0TermNative(void)
     g_prtR0LnxWorkQueue = NULL;
 #endif
 
-#if RTLNX_VER_MIN(6,19,0) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
+#ifdef LINUX_DYNAMIC_FLUSH_TLB_ALL
     /* Don't bother putting __flush_tlb_all, it's in kernel text and we
        probably got it via kallsyms anyway. */
     g_pfnLinuxFlushTlbAll = NULL;
diff --git a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c 
b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
index 05549cbc9f4b..c533709dfd73 100644
--- a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
+++ b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
@@ -47,7 +47,7 @@
 #include <iprt/mem.h>
 #include <iprt/process.h>
 #include <iprt/string.h>
-#if RTLNX_VER_MIN(6,19,0) && (defined(RT_ARCH_X86) || defined(RT_ARCH_AMD64))
+#ifdef LINUX_DYNAMIC_FLUSH_TLB_ALL
 # include <iprt/mp.h>
 # include <iprt/asm-amd64-x86.h>
 # ifndef X86_CPUID_FEATURE_EDX_PGE /* can't include iprt/x86.h here */
@@ -2260,7 +2260,7 @@ DECLHIDDEN(int) 
rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ p
 /*
  * Wrapper around __flush_tlb_all and fallback code for 4.19+.
  */
-# if RTLNX_VER_MIN(6,19,0)
+# ifdef LINUX_DYNAMIC_FLUSH_TLB_ALL
 
 static DECLCALLBACK(void) rtR0MemObjLinuxFlushTlbAllOnEach(RTCPUID idCpu, void 
*pvUser1, void *pvUser2)
 {
@@ -2290,7 +2290,7 @@ static DECLCALLBACK(void) 
rtR0MemObjLinuxFlushTlbAllOnEachInvPcid(RTCPUID idCpu,
 
 static void rtR0MemObjLinuxFlushTlbAll(void)
 {
-# if RTLNX_VER_MIN(6,19,0)
+# ifdef LINUX_DYNAMIC_FLUSH_TLB_ALL
     if (RT_LIKELY(RT_VALID_PTR(g_pfnLinuxFlushTlbAll)))
         RTLNX_CET_UNSAFE_CALL(g_pfnLinuxFlushTlbAll, g_pfnLinuxFlushTlbAll());
     else
diff --git a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h 
b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
index 18c50e0da30c..c942f2796808 100644
--- a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
+++ b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
@@ -512,7 +512,8 @@ RTDECL(struct page *) rtR0MemObjLinuxVirtToPage(void *pv);
 
 
 extern struct mm_struct *g_pLnxInitMm;
-#if RTLNX_VER_MIN(6,19,0) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
+#if (RTLNX_VER_MIN(6,19,0) || RTLNX_SUSE_SLFO_MAJ_PREREQ(1,3)) && 
(defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
+#define LINUX_DYNAMIC_FLUSH_TLB_ALL 1
 extern void (*g_pfnLinuxFlushTlbAll)(void);
 #endif
 
-- 
2.55.0



++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.OuCGYQ/_old  2026-09-07 11:30:43.319925022 +0200
+++ /var/tmp/diff_new_pack.OuCGYQ/_new  2026-09-07 11:30:43.321925092 +0200
@@ -1,5 +1,5 @@
-mtime: 1787125646
-commit: 1258dff6a98a7770bb8d68ef1a9c7dd1502ca3e88b46c418725a6a4e18c3c406
+mtime: 1788582565
+commit: 7a95eac3367e8b2520231bab5745e04d10756f8ab276ab6c49e5a8153fec072e
 url: https://src.opensuse.org/jengelh/virtualbox
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-09-05 06:29:25.000000000 +0200
@@ -0,0 +1 @@
+.osc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fix_usb_rules.sh new/fix_usb_rules.sh
--- old/fix_usb_rules.sh        1970-01-01 01:00:00.000000000 +0100
+++ new/fix_usb_rules.sh        2026-09-05 06:29:25.000000000 +0200
@@ -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
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/update-extpack.sh new/update-extpack.sh
--- old/update-extpack.sh       1970-01-01 01:00:00.000000000 +0100
+++ new/update-extpack.sh       2026-09-05 06:29:25.000000000 +0200
@@ -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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vboxautostart-service.sh new/vboxautostart-service.sh
--- old/vboxautostart-service.sh        1970-01-01 01:00:00.000000000 +0100
+++ new/vboxautostart-service.sh        2026-09-05 06:29:25.000000000 +0200
@@ -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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vboxconfig.sh new/vboxconfig.sh
--- old/vboxconfig.sh   1970-01-01 01:00:00.000000000 +0100
+++ new/vboxconfig.sh   2026-09-05 06:29:25.000000000 +0200
@@ -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
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vboxdrv.sh new/vboxdrv.sh
--- old/vboxdrv.sh      1970-01-01 01:00:00.000000000 +0100
+++ new/vboxdrv.sh      2026-09-05 06:29:25.000000000 +0200
@@ -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
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vboxguestconfig.sh new/vboxguestconfig.sh
--- old/vboxguestconfig.sh      1970-01-01 01:00:00.000000000 +0100
+++ new/vboxguestconfig.sh      2026-09-05 06:29:25.000000000 +0200
@@ -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
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vboxweb-service.sh new/vboxweb-service.sh
--- old/vboxweb-service.sh      1970-01-01 01:00:00.000000000 +0100
+++ new/vboxweb-service.sh      2026-09-05 06:29:25.000000000 +0200
@@ -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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/virtualbox-patch-source.sh 
new/virtualbox-patch-source.sh
--- old/virtualbox-patch-source.sh      1970-01-01 01:00:00.000000000 +0100
+++ new/virtualbox-patch-source.sh      2026-09-05 06:29:25.000000000 +0200
@@ -0,0 +1,61 @@
+#!/bin/bash -ex
+
+if [ -z "$1" ]; then
+       echo "You need to pass the filename VirtualBox-x.y.z.tar.bz2 as first 
argument."
+       exit 1
+fi
+
+REMOVE_DIRS=( 
+src/VBox/Additions/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"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/virtualbox-wrapper.sh new/virtualbox-wrapper.sh
--- old/virtualbox-wrapper.sh   1970-01-01 01:00:00.000000000 +0100
+++ new/virtualbox-wrapper.sh   2026-09-05 06:29:25.000000000 +0200
@@ -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 "$@"

++++++ kernel-7.3.patch ++++++
From: Jiri Slaby <[email protected]>
Date: Wed, 2 Sep 2026 06:26:25 +0200
Subject: Additions: Linux: vboxsf: Align with upstream vboxsf changes from
 kernel 7.3
References: build-fix
Patch-mainline: Submitted https://github.com/VirtualBox/virtualbox/issues/849

struct inode_operations::create() dropped the excl parameter in
torvalds/linux@b2f1e6301efa.

Signed-off-by: Jiri Slaby <[email protected]>
---
 src/VBox/Additions/linux/sharedfolders/dirops.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/VBox/Additions/linux/sharedfolders/dirops.c 
b/src/VBox/Additions/linux/sharedfolders/dirops.c
index 3827137816ac..41b8687673d2 100644
--- a/src/VBox/Additions/linux/sharedfolders/dirops.c
+++ b/src/VBox/Additions/linux/sharedfolders/dirops.c
@@ -1043,10 +1043,11 @@ static int vbsf_inode_atomic_open(struct inode 
*pDirInode, struct dentry *dentry
  * @param   parent  inode of the directory
  * @param   dentry  directory cache entry
  * @param   mode    file mode
- * @param   excl    Possible O_EXCL...
  * @returns 0 on success, Linux error code otherwise
  */
-#if RTLNX_VER_MIN(6,3,0) || RTLNX_RHEL_RANGE(9,6, 9,99) || 
defined(DOXYGEN_RUNNING)
+#if RTLNX_VER_MIN(7,3,0) || defined(DOXYGEN_RUNNING)
+static int vbsf_inode_create(struct mnt_idmap *idmap, struct inode *parent, 
struct dentry *dentry, umode_t mode)
+#elif RTLNX_VER_MIN(6,3,0) || RTLNX_RHEL_RANGE(9,6, 9,99)
 static int vbsf_inode_create(struct mnt_idmap *idmap, struct inode *parent, 
struct dentry *dentry, umode_t mode, bool excl)
 #elif RTLNX_VER_MIN(5,12,0)
 static int vbsf_inode_create(struct user_namespace *ns, struct inode *parent, 
struct dentry *dentry, umode_t mode, bool excl)
-- 
2.55.0

Reply via email to