Commit 024e4447 authored by David Guibert's avatar David Guibert
Browse files

paraview: fix strlcat symbol provided by glibc 2.38

Glibc introduces strlcat in commit [1].
The logic of vtknetcdf was to only define strlcat conditionally on not
BSD systems, but starting with glibc 2.38, strlcat is also defined on
Linux.

The CMakelist checks for the symbol existence, the redefinition of the
symbol can be conditional on the boolean HAVE_STRLCAT instead of if
not BSD systems.

This commit fixes 268961.

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=454a20c8756c9c1d55419153255fc7692b3d2199
parent 8ae2bf1e
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -86,6 +86,10 @@ in stdenv.mkDerivation rec {
    qtsvg
  ];

  patches = [
    ./dont-redefine-strlcat.patch
  ];

  postInstall = let docDir = "$out/share/paraview-${lib.versions.majorMinor version}/doc"; in
    lib.optionalString withDocs ''
      mkdir -p ${docDir};
+28 −0
Original line number Diff line number Diff line
--- a/VTK/ThirdParty/netcdf/vtknetcdf/include/vtk_netcdf_mangle.h	2023-11-27 21:11:33.562949964 +0100
+++ b/VTK/ThirdParty/netcdf/vtknetcdf/include/vtk_netcdf_mangle.h	2023-11-27 21:11:33.562949964 +0100
@@ -1246,7 +1246,7 @@
 #define write_numrecs vtknetcdf_write_numrecs
 
 /* Only define strlcat conditionally, as it's provided by system headers on the BSDs. */
-#if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(_BSD_SOURCE)
+#ifndef HAVE_STRLCAT
 #define strlcat vtknetcdf_strlcat
 #endif
 
--- a/VTK/ThirdParty/netcdf/vtknetcdf/config.h.in	2023-11-27 21:10:35.113525241 +0100
+++ b/VTK/ThirdParty/netcdf/vtknetcdf/config.h.in	2023-11-27 21:10:55.241982399 +0100
@@ -1,7 +1,5 @@
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
-#include "vtk_netcdf_mangle.h"
-
 /* Define if building universal (internal helper macro) */
 #cmakedefine AC_APPLE_UNIVERSAL_BUILD
 
@@ -621,4 +619,6 @@
 #endif
 #endif
 
+#include "vtk_netcdf_mangle.h"
+
 #include "ncconfigure.h"