summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/virtualbox-guest-additions/files')
-rw-r--r--app-emulation/virtualbox-guest-additions/files/vboxguest-6.1.36-log-use-c99.patch (renamed from app-emulation/virtualbox-guest-additions/files/vboxguest-6.0.6-log-use-c99.patch)4
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch242
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch24
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd25
4 files changed, 268 insertions, 27 deletions
diff --git a/app-emulation/virtualbox-guest-additions/files/vboxguest-6.0.6-log-use-c99.patch b/app-emulation/virtualbox-guest-additions/files/vboxguest-6.1.36-log-use-c99.patch
index baae66fb081f..41641f2336a5 100644
--- a/app-emulation/virtualbox-guest-additions/files/vboxguest-6.0.6-log-use-c99.patch
+++ b/app-emulation/virtualbox-guest-additions/files/vboxguest-6.1.36-log-use-c99.patch
@@ -2,12 +2,12 @@ https://bugs.gentoo.org/298988
--- a/vboxguest/Makefile
+++ b/vboxguest/Makefile
-@@ -136,7 +136,7 @@
+@@ -149,7 +149,7 @@
IN_MODULE \
RT_WITH_VBOX \
VBGL_VBOXGUEST \
- VBOX_WITH_HGCM
+ VBOX_WITH_HGCM LOG_USE_C99
- ifeq ($(BUILD_TARGET_ARCH),amd64)
+ ifeq ($(VBOX_KBUILD_TARGET_ARCH),amd64)
VBOXMOD_DEFS += VBOX_WITH_64_BITS_GUESTS
endif
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch
new file mode 100644
index 000000000000..459dbef713e9
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch
@@ -0,0 +1,242 @@
+Support for kernel 6.8.x.
+
+https://www.virtualbox.org/changeset/102989/vbox
+https://www.virtualbox.org/changeset/102990/vbox
+https://www.virtualbox.org/changeset/102992/vbox
+https://www.virtualbox.org/changeset/102993/vbox
+https://www.virtualbox.org/changeset/102994/vbox
+
+------------------------------------------------------------------------
+r102989 | vboxsync | 2024-01-22 19:12:25 +0200 (Lu, 22 ian 2024) | 2 lines
+
+iprt: Add wrapper for strlcpy/strscpy functions, bugref:10584.
+
+
+--- a/include/iprt/string.h
++++ b/include/iprt/string.h
+@@ -245,7 +245,29 @@
+ # define RT_BCOPY_UNFORTIFIED(a_pDst, a_pSrc, a_cbToCopy) memcpy((a_pDst), (a_pSrc), (a_cbToCopy))
+ #endif /* !RT_OS_LINUX && !__KERNEL__ */
+
++/** @def RT_STRSCPY
++ * Copy string and NULL-terminate output buffer.
++ *
++ * This macro should mostly be used in Linux kernel code. This is
++ * the replacement for deprecated strlcpy. It was deprecated since 3.16.60
++ * when strscpy was introduced as an alternative. Finally, strlcpy was
++ * completely removed from kernel code in 6.8.0.
++ *
++ * @param a_pDst Pointer to the destination string buffer.
++ * @param a_pSrc Pointer to the source NULL-terminated string buffer.
++ * @param a_cbToCopy Size of destination buffer..
++ */
++#if defined(RT_OS_LINUX) && defined(__KERNEL__)
++# if (RTLNX_VER_MIN(3,16,60))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# else /* < 3.16.60 */
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strlcpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# endif
++#else /* !RT_OS_LINUX && !__KERNEL__ */
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
++#endif /* !RT_OS_LINUX && !__KERNEL__ */
+
++
+ #ifdef IN_RING3
+
+ /**
+
+------------------------------------------------------------------------
+------------------------------------------------------------------------
+r102990 | vboxsync | 2024-01-22 19:13:50 +0200 (Lu, 22 ian 2024) | 2 lines
+
+Additions: Linux: Introduce initial support for kernel 6.8, bugref:10584.
+
+
+--- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
++++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
+@@ -1410,7 +1410,7 @@
+ RTLogGroupSettings(pLogger, pszValue);
+ }
+ else if (pParam->name[0] != 'd')
+- strlcpy(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp));
++ RT_STRSCPY(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp));
+
+ return 0;
+ }
+@@ -1436,7 +1436,7 @@
+ RTLogFlags(pLogger, pszValue);
+ }
+ else if (pParam->name[0] != 'd')
+- strlcpy(&g_szLogFlags[0], pszValue, sizeof(g_szLogFlags));
++ RT_STRSCPY(&g_szLogFlags[0], pszValue, sizeof(g_szLogFlags));
+ return 0;
+ }
+
+@@ -1461,7 +1461,7 @@
+ RTLogDestinations(pLogger, pszValue);
+ }
+ else if (pParam->name[0] != 'd')
+- strlcpy(&g_szLogDst[0], pszValue, sizeof(g_szLogDst));
++ RT_STRSCPY(&g_szLogDst[0], pszValue, sizeof(g_szLogDst));
+ return 0;
+ }
+
+--- a/src/VBox/Additions/linux/drm/vbox_drv.h
++++ b/src/VBox/Additions/linux/drm/vbox_drv.h
+@@ -538,9 +538,7 @@
+ int vbox_irq_init(struct vbox_private *vbox);
+ void vbox_irq_fini(struct vbox_private *vbox);
+ void vbox_report_hotplug(struct vbox_private *vbox);
+-#if RTLNX_VER_MAX(5,15,0) && !RTLNX_RHEL_MAJ_PREREQ(9,1) && !RTLNX_SUSE_MAJ_PREREQ(15,5)
+ irqreturn_t vbox_irq_handler(int irq, void *arg);
+-#endif
+
+ /* vbox_hgsmi.c */
+ void *hgsmi_buffer_alloc(struct gen_pool *guest_pool, size_t size,
+--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c
++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c
+@@ -1408,7 +1408,7 @@
+ switch (opt) {
+ case Opt_iocharset:
+ case Opt_nls:
+- strlcpy(info->nls_name, param->string, sizeof(info->nls_name));
++ RT_STRSCPY(info->nls_name, param->string, sizeof(info->nls_name));
+ break;
+ case Opt_uid:
+ info->uid = result.uint_32;
+@@ -1469,7 +1469,7 @@
+ printk(KERN_WARNING "vboxsf: cache mode (%u) is out of range, using default instead.\n", result.uint_32);
+ break;
+ case Opt_tag:
+- strlcpy(info->szTag, param->string, sizeof(info->szTag));
++ RT_STRSCPY(info->szTag, param->string, sizeof(info->szTag));
+ break;
+ default:
+ return invalf(fc, "Invalid mount option: '%s'", param->key);
+@@ -1528,7 +1528,7 @@
+ }
+
+ /* fc->source (the shared folder name) is set after vbsf_init_fs_ctx() */
+- strlcpy(info->name, fc->source, sizeof(info->name));
++ RT_STRSCPY(info->name, fc->source, sizeof(info->name));
+
+ # if RTLNX_VER_MAX(5,3,0)
+ return vfs_get_super(fc, vfs_get_independent_super, vbsf_read_super_aux);
+--- a/src/VBox/Additions/linux/sharedfolders/regops.c
++++ b/src/VBox/Additions/linux/sharedfolders/regops.c
+@@ -3505,7 +3505,7 @@
+ };
+
+ /** file_operations::mmap wrapper for logging purposes. */
+-extern int vbsf_reg_mmap(struct file *file, struct vm_area_struct *vma)
++static int vbsf_reg_mmap(struct file *file, struct vm_area_struct *vma)
+ {
+ int rc;
+ SFLOGFLOW(("vbsf_reg_mmap: file=%p vma=%p\n", file, vma));
+@@ -3786,7 +3786,7 @@
+ }
+
+ # if RTLNX_VER_MIN(5,19,0) || RTLNX_RHEL_RANGE(9,3, 9,99)
+-int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
++static int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
+ unsigned len, struct page **pagep, void **fsdata)
+ {
+ vbsf_write_begin_warn(pos, len, 0);
+@@ -3793,7 +3793,7 @@
+ return simple_write_begin(file, mapping, pos, len, pagep, fsdata);
+ }
+ # else
+-int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
++static int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
+ unsigned len, unsigned flags, struct page **pagep, void **fsdata)
+ {
+ vbsf_write_begin_warn(pos, len, flags);
+
+------------------------------------------------------------------------
+------------------------------------------------------------------------
+r102992 | vboxsync | 2024-01-22 19:33:49 +0200 (Lu, 22 ian 2024) | 5 lines
+
+iprt: Add wrapper for strlcpy/strscpy functions, build fix, bugref:10584.
+
+Ignore return code of strscpy() in RT_STRSCPY macro sinse we have no caller
+who is using it. Also rename macro parameter, so it makes more sense.
+
+
+--- a/include/iprt/string.h
++++ b/include/iprt/string.h
+@@ -255,16 +255,16 @@
+ *
+ * @param a_pDst Pointer to the destination string buffer.
+ * @param a_pSrc Pointer to the source NULL-terminated string buffer.
+- * @param a_cbToCopy Size of destination buffer..
++ * @param a_cbDst Size of destination buffer.
+ */
+ #if defined(RT_OS_LINUX) && defined(__KERNEL__)
+ # if (RTLNX_VER_MIN(3,16,60))
+-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst))
+ # else /* < 3.16.60 */
+-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strlcpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst))
+ # endif
+ #else /* !RT_OS_LINUX && !__KERNEL__ */
+-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst))
+ #endif /* !RT_OS_LINUX && !__KERNEL__ */
+
+
+
+------------------------------------------------------------------------
+r102993 | vboxsync | 2024-01-22 19:41:44 +0200 (Lu, 22 ian 2024) | 5 lines
+
+Add wrapper for strlcpy/strscpy functions, build fix, bugref:10584.
+
+It seem, strscpy was added around 4.3.0. Older kernels probably
+have it as a backport. So, stick to 4.3.0.
+
+
+--- a/include/iprt/string.h
++++ b/include/iprt/string.h
+@@ -258,7 +258,7 @@
+ * @param a_cbDst Size of destination buffer.
+ */
+ #if defined(RT_OS_LINUX) && defined(__KERNEL__)
+-# if (RTLNX_VER_MIN(3,16,60))
++# if (RTLNX_VER_MIN(4,3,0))
+ # define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst))
+ # else /* < 3.16.60 */
+ # define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst))
+
+------------------------------------------------------------------------
+r102994 | vboxsync | 2024-01-22 20:06:29 +0200 (Lu, 22 ian 2024) | 6 lines
+
+iprt: Add wrapper for strlcpy/strscpy functions, build fix, bugref:10584.
+
+Another way around to suppress build error when strscpy return status
+is not used. Also, turn macro into strlcpy for non-Linux systems,
+so for them it will be no change.
+
+
+--- a/include/iprt/string.h
++++ b/include/iprt/string.h
+@@ -259,12 +259,16 @@
+ */
+ #if defined(RT_OS_LINUX) && defined(__KERNEL__)
+ # if (RTLNX_VER_MIN(4,3,0))
+-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) \
++ { \
++ ssize_t _ret; \
++ _ret = strscpy((a_pDst), (a_pSrc), (a_cbDst)); \
++ }
+ # else /* < 3.16.60 */
+ # define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst))
+ # endif
+ #else /* !RT_OS_LINUX && !__KERNEL__ */
+-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst))
+ #endif /* !RT_OS_LINUX && !__KERNEL__ */
+
+
+
+------------------------------------------------------------------------
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
new file mode 100644
index 000000000000..8e53107aedbc
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
@@ -0,0 +1,24 @@
+This file ends up included in
+src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp which
+is compiled with -ffreestanding, so it shouldn't include math.h
+
+See also: https://bugs.gentoo.org/907597
+
+--- a/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
++++ b/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
+@@ -169,6 +169,7 @@
+ #ifndef IN_MODULE
+ /* XXX Not for modules */
+ #include <limits.h>
++#if defined __STDC_HOSTED__ && __STDC_HOSTED__ == 1
+ #if !defined(MAXSHORT) || !defined(MINSHORT) || \
+ !defined(MAXINT) || !defined(MININT)
+ /*
+@@ -178,6 +179,7 @@
+
+ #include <math.h>
+ #endif
++#endif // defined __STDC_HOSTED__ && __STDC_HOSTED__ == 1
+ #undef MAXSHORT
+ #define MAXSHORT SHRT_MAX
+ #undef MINSHORT
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd
deleted file mode 100644
index 3af22dbfa49e..000000000000
--- a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-pidfile="/var/run/vboxguest-service.pid"
-command="/usr/sbin/vboxguest-service"
-command_args="--foreground"
-command_background="true"
-
-depend() {
- need dbus localmount
- before xdm
-}
-
-start_pre() {
- einfo "Loading kernel modules"
- /sbin/modprobe vboxguest 2>&1
- /sbin/modprobe vboxsf 2>&1
-}
-
-stop_post() {
- einfo "Removing kernel modules"
- /sbin/modprobe -r vboxsf 2>&1
- /sbin/modprobe -r vboxguest 2>&1
-}