diff options
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.patch | 242 | ||||
-rw-r--r-- | app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch | 24 | ||||
-rw-r--r-- | app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd | 25 |
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 -} |