diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index 9690ee757c0d..1edbddc8ea72 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -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 = '' diff --git a/pkgs/applications/virtualization/virtualbox/extpack.nix b/pkgs/applications/virtualization/virtualbox/extpack.nix index fad5aa6e10fb..089ab4856c0d 100644 --- a/pkgs/applications/virtualization/virtualbox/extpack.nix +++ b/pkgs/applications/virtualization/virtualbox/extpack.nix @@ -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 = { diff --git a/pkgs/applications/virtualization/virtualbox/gcc-13.patch b/pkgs/applications/virtualization/virtualbox/gcc-13.patch deleted file mode 100644 index c06780299f95..000000000000 --- a/pkgs/applications/virtualization/virtualbox/gcc-13.patch +++ /dev/null @@ -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 - # 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 -+ - #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 - #include - - #include "util_bit.h" diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix index cd2f58afc92a..9529c980475d 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix @@ -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 = '' diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix index f070f0df4322..72c0af9626f7 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix @@ -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 = '' diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch b/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch deleted file mode 100644 index 642f5864d208..000000000000 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch +++ /dev/null @@ -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__ */ diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch b/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch deleted file mode 100644 index 15e546f89e79..000000000000 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch +++ /dev/null @@ -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) diff --git a/pkgs/applications/virtualization/virtualbox/libxml-2.12.patch b/pkgs/applications/virtualization/virtualbox/libxml-2.12.patch deleted file mode 100644 index 4631f304735c..000000000000 --- a/pkgs/applications/virtualization/virtualbox/libxml-2.12.patch +++ /dev/null @@ -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 : ""; - 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 */