about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/apr
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/apr')
-rw-r--r--nixpkgs/pkgs/development/libraries/apr/default.nix52
-rw-r--r--nixpkgs/pkgs/development/libraries/apr/is-this-a-compiler-bug.patch17
2 files changed, 69 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/apr/default.nix b/nixpkgs/pkgs/development/libraries/apr/default.nix
new file mode 100644
index 000000000000..03b6c9777dfd
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/apr/default.nix
@@ -0,0 +1,52 @@
+{ lib, stdenv, fetchurl, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "apr-1.7.0";
+
+  src = fetchurl {
+    url = "mirror://apache/apr/${name}.tar.bz2";
+    sha256 = "1spp6r2a3xcl5yajm9safhzyilsdzgagc2dadif8x6z9nbq4iqg2";
+  };
+
+  patches = lib.optionals stdenv.isDarwin [ ./is-this-a-compiler-bug.patch ];
+
+  # This test needs the net
+  postPatch = ''
+    rm test/testsock.*
+  '';
+
+  outputs = [ "out" "dev" ];
+  outputBin = "dev";
+
+  preConfigure =
+    ''
+      configureFlagsArray+=("--with-installbuilddir=$dev/share/build")
+    '';
+
+  configureFlags = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "ac_cv_file__dev_zero=yes"
+    "ac_cv_func_setpgrp_void=0"
+    "apr_cv_process_shared_works=1"
+    "apr_cv_tcp_nodelay_with_cork=1"
+  ] ++ lib.optionals (stdenv.hostPlatform.system == "i686-cygwin") [
+    # Including the Windows headers breaks unistd.h.
+    # Based on ftp://sourceware.org/pub/cygwin/release/libapr1/libapr1-1.3.8-2-src.tar.bz2
+    "ac_cv_header_windows_h=no"
+  ];
+
+  CPPFLAGS=lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-DAPR_IOVEC_DEFINED";
+
+  nativeBuildInputs =
+    # Update libtool for macOS 11 support
+    lib.optional (stdenv.isDarwin && stdenv.isAarch64) [ autoreconfHook ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "http://apr.apache.org/";
+    description = "The Apache Portable Runtime library";
+    platforms = platforms.all;
+    license = licenses.asl20;
+    maintainers = [ maintainers.eelco ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/apr/is-this-a-compiler-bug.patch b/nixpkgs/pkgs/development/libraries/apr/is-this-a-compiler-bug.patch
new file mode 100644
index 000000000000..bbc10fabb268
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/apr/is-this-a-compiler-bug.patch
@@ -0,0 +1,17 @@
+--- apr-1.5.1/file_io/unix/filestat.c	2014-11-01 06:42:50.000000000 -0400
++++ apr-1.5.1/file_io/unix/filestat.c.new	2014-11-01 07:07:32.000000000 -0400
+@@ -297,9 +297,11 @@
+         finfo->pool = pool;
+         finfo->fname = fname;
+         fill_out_finfo(finfo, &info, wanted);
+-        if (wanted & APR_FINFO_LINK)
+-            wanted &= ~APR_FINFO_LINK;
+-        return (wanted & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS;
++        if (wanted & APR_FINFO_LINK) {
++            return ((wanted & ~APR_FINFO_LINK) & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS;
++        } else {
++            return (wanted & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS;
++        }
+     }
+     else {
+ #if !defined(ENOENT) || !defined(ENOTDIR)