virtualbox: 7.0.14 -> 7.0.18

This commit is contained in:
Friedrich Altheide 2024-05-13 07:15:49 +02:00
parent cb0317c455
commit d67961fe4e
8 changed files with 10 additions and 213 deletions

View File

@ -32,11 +32,11 @@ let
buildType = "release";
# Use maintainers/scripts/update.nix to update the version and all related hashes or
# change the hashes in extpack.nix and guest-additions/default.nix as well manually.
virtualboxVersion = "7.0.14";
virtualboxSha256 = "45860d834804a24a163c1bb264a6b1cb802a5bc7ce7e01128072f8d6a4617ca9";
virtualboxVersion = "7.0.18";
virtualboxSha256 = "d999513533631674a024762668de999411d8197060c51e68c5faf0a2c0eea1a5";
kvmPatchVersion = "20240502";
kvmPatchHash = "sha256-KokIrrAoJutHzPg6e5YAJgDGs+nQoVjapmyn9kG5tV0=";
kvmPatchVersion = "20240515";
kvmPatchHash = "sha256-Kh/tlPScdf7CbEEpL54iqMpeUIdmnJL2r/mxnlEzLd0=";
# The KVM build is not compatible to VirtualBox's kernel modules. So don't export
# modsrc at all.
@ -135,8 +135,6 @@ in stdenv.mkDerivation (finalAttrs: {
./qt-dependency-paths.patch
# https://github.com/NixOS/nixpkgs/issues/123851
./fix-audio-driver-loading.patch
./libxml-2.12.patch
./gcc-13.patch
];
postPatch = ''

View File

@ -12,7 +12,7 @@ fetchurl rec {
# Manually sha256sum the extensionPack file, must be hex!
# Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
# Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
let value = "42cb36fbf439a9ed28c95d2bbc718a0eac902225eb579c884c549af2e94be633";
let value = "cab1abad478679fc34a0c5cb4a6d3566edc20e3c54cbed39c8e895d8cfad3ee2";
in assert (builtins.stringLength value) == 64; value;
meta = {

View File

@ -1,35 +0,0 @@
diff --git a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp
index 8a9d15c0..260ebc5c 100644
--- a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp
+++ b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp
@@ -46,6 +46,9 @@
#if defined(VBOX_VBGLR3_XFREE86)
extern "C" {
# define XFree86LOADER
+# ifdef RT_GNUC_PREREQ(13,0) /* cmath gets dragged in and the c++/13/cmath header is allergic to -ffreestanding. */
+# define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+# endif
# include <xf86_ansic.h>
# undef size_t
}
diff --git a/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp b/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
index 2c5e9314..64890169 100644
--- a/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
+++ b/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
@@ -1,3 +1,5 @@
+#include <cstdint>
+
#include "util_matrix.h"
namespace dxvk {
diff --git a/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h b/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
index 77cdf294..9dcb4bf9 100644
--- a/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
+++ b/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
@@ -1,5 +1,6 @@
#pragma once
+#include <cstdint>
#include <iostream>
#include "util_bit.h"

View File

@ -5,7 +5,7 @@ let
in
fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "0efbcb9bf4722cb19292ae00eba29587432e918d3b1f70905deb70f7cf78e8ce";
sha256 = "4469bab0f59c62312b0a1b67dcf9c07a8a971afad339fa2c3eb80e209e099ef9";
meta = {
description = "Guest additions ISO for VirtualBox";
longDescription = ''

View File

@ -10,11 +10,11 @@ let
in stdenv.mkDerivation (finalAttrs: {
pname = "VirtualBox-GuestAdditions-builder-${kernel.version}";
version = "7.0.14";
version = "7.0.18";
src = fetchurl {
url = "https://download.virtualbox.org/virtualbox/${finalAttrs.version}/VirtualBox-${finalAttrs.version}.tar.bz2";
sha256 = "45860d834804a24a163c1bb264a6b1cb802a5bc7ce7e01128072f8d6a4617ca9";
sha256 = "d999513533631674a024762668de999411d8197060c51e68c5faf0a2c0eea1a5";
};
env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
@ -37,13 +37,9 @@ in stdenv.mkDerivation (finalAttrs: {
'';
patches = [
../gcc-13.patch
# https://www.virtualbox.org/changeset/100258/vbox
#../gcc-13.patch
## https://www.virtualbox.org/changeset/100258/vbox
./no-legacy-xorg.patch
# https://www.virtualbox.org/changeset/102989/vbox
./strlcpy-1.patch
# https://www.virtualbox.org/changeset/102990/vbox
./strlcpy-2.patch
];
postPatch = ''

View File

@ -1,29 +0,0 @@
# https://www.virtualbox.org/changeset/102989/vbox
--- a/include/iprt/string.h
+++ b/include/iprt/string.h
@@ -244,4 +244,26 @@
#else /* !RT_OS_LINUX && !__KERNEL__ */
# 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__ */

View File

@ -1,86 +0,0 @@
# https://www.virtualbox.org/changeset/102990/vbox
--- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
+++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
@@ -1411,5 +1411,5 @@
}
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;
@@ -1437,5 +1437,5 @@
}
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;
}
@@ -1462,5 +1462,5 @@
}
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;
}
# https://www.virtualbox.org/changeset/102990/vbox
--- a/src/VBox/Additions/linux/drm/vbox_drv.h
+++ b/src/VBox/Additions/linux/drm/vbox_drv.h
@@ -539,7 +539,5 @@
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 */
# https://www.virtualbox.org/changeset/102990/vbox
--- a/src/VBox/Additions/linux/sharedfolders/regops.c
+++ b/src/VBox/Additions/linux/sharedfolders/regops.c
@@ -3506,5 +3506,5 @@
/** 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;
@@ -3787,5 +3787,5 @@
# 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)
{
@@ -3794,5 +3794,5 @@
}
# 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)
{
# https://www.virtualbox.org/changeset/102990/vbox
--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c
+++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c
@@ -1409,5 +1409,5 @@
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:
@@ -1470,5 +1470,5 @@
break;
case Opt_tag:
- strlcpy(info->szTag, param->string, sizeof(info->szTag));
+ RT_STRSCPY(info->szTag, param->string, sizeof(info->szTag));
break;
default:
@@ -1529,5 +1529,5 @@
/* 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)

View File

@ -1,47 +0,0 @@
diff --git a/include/iprt/cpp/xml.h b/include/iprt/cpp/xml.h
index 40975e86..7639c281 100644
--- a/include/iprt/cpp/xml.h
+++ b/include/iprt/cpp/xml.h
@@ -113,9 +113,9 @@ public:
class RT_DECL_CLASS XmlError : public RuntimeError
{
public:
- XmlError(xmlErrorPtr aErr);
+ XmlError(const xmlError *aErr);
- static char* Format(xmlErrorPtr aErr);
+ static char* Format(const xmlError *aErr);
};
// Logical errors
diff --git a/src/VBox/Runtime/r3/xml.cpp b/src/VBox/Runtime/r3/xml.cpp
index a6661760..b301a6c6 100644
--- a/src/VBox/Runtime/r3/xml.cpp
+++ b/src/VBox/Runtime/r3/xml.cpp
@@ -131,7 +131,7 @@ LogicError::LogicError(RT_SRC_POS_DECL)
RTStrFree(msg);
}
-XmlError::XmlError(xmlErrorPtr aErr)
+XmlError::XmlError(const xmlError *aErr)
{
if (!aErr)
throw EInvalidArg(RT_SRC_POS);
@@ -145,7 +145,7 @@ XmlError::XmlError(xmlErrorPtr aErr)
* Composes a single message for the given error. The caller must free the
* returned string using RTStrFree() when no more necessary.
*/
-/* static */ char *XmlError::Format(xmlErrorPtr aErr)
+/* static */ char *XmlError::Format(const xmlError *aErr)
{
const char *msg = aErr->message ? aErr->message : "<none>";
size_t msgLen = strlen(msg);
@@ -1856,7 +1856,7 @@ static void xmlParserBaseGenericError(void *pCtx, const char *pszMsg, ...) RT_NO
va_end(args);
}
-static void xmlParserBaseStructuredError(void *pCtx, xmlErrorPtr error) RT_NOTHROW_DEF
+static void xmlParserBaseStructuredError(void *pCtx, const xmlError *error) RT_NOTHROW_DEF
{
NOREF(pCtx);
/* we expect that there is always a trailing NL */