about summary refs log tree commit diff
path: root/pkgs/development/libraries/libowfat/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/libowfat/default.nix')
-rw-r--r--pkgs/development/libraries/libowfat/default.nix21
1 files changed, 18 insertions, 3 deletions
diff --git a/pkgs/development/libraries/libowfat/default.nix b/pkgs/development/libraries/libowfat/default.nix
index 665121b58b5ce..3dfb910f1cd6d 100644
--- a/pkgs/development/libraries/libowfat/default.nix
+++ b/pkgs/development/libraries/libowfat/default.nix
@@ -9,6 +9,24 @@ stdenv.mkDerivation rec {
     sha256 = "1hcqg7pvy093bxx8wk7i4gvbmgnxz2grxpyy7b4mphidjbcv7fgl";
   };
 
+  patches = [
+    (fetchurl {
+      name = "first_deferred.patch";
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/libowfat/files/libowfat-0.32-gcc10.patch?id=129f4ab9f8571c651937c46ba7bd4c82d6d052a2";
+      sha256 = "zxWb9qq5dkDucOsiPfGG1Gb4BZ6HmhBjgSe3tBnydP4=";
+    })
+  ];
+
+  # Fix for glibc 2.34 from Gentoo
+  # https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=914a4aa87415dabfe77181a2365766417a5919a4
+  postPatch = ''
+    # do not define "__pure__", this the gcc builtin (bug #806505)
+    sed 's#__pure__;#__attribute__((__pure__));#' -i fmt.h scan.h byte.h stralloc.h str.h critbit.h || die
+    sed 's#__pure__$#__attrib__pure__#' -i  fmt.h scan.h byte.h stralloc.h str.h critbit.h || die
+    # remove unneeded definition of __deprecated__
+    sed '/^#define __deprecated__$/d' -i scan/scan_iso8601.c scan/scan_httpdate.c || die
+  '';
+
   makeFlags = [ "prefix=$(out)" ];
   enableParallelBuilding = true;
 
@@ -17,8 +35,5 @@ stdenv.mkDerivation rec {
     homepage = "https://www.fefe.de/libowfat/";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    # Doesn't build with glibc 2.34: https://hydra.nixos.org/build/156248131
-    # Should be fixed with the next release: https://bugs.gentoo.org/806505
-    broken = true;
   };
 }