summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2017-03-31 08:46:14 +0200
committerGitHub <noreply@github.com>2017-03-31 08:46:14 +0200
commit607a21b7c0ab0115e6e9d68d7325b9723636c1ae (patch)
tree817922072d1a7ee997867efe831c4f390d8fa8b3 /pkgs
parent7b739364596aec89adedbb156243a5690917fbba (diff)
parentea80cd1f1101aa9553a6bdb9896e619593948cef (diff)
downloadnixpkgs-607a21b7c0ab0115e6e9d68d7325b9723636c1ae.tar
nixpkgs-607a21b7c0ab0115e6e9d68d7325b9723636c1ae.tar.gz
nixpkgs-607a21b7c0ab0115e6e9d68d7325b9723636c1ae.tar.bz2
nixpkgs-607a21b7c0ab0115e6e9d68d7325b9723636c1ae.tar.lz
nixpkgs-607a21b7c0ab0115e6e9d68d7325b9723636c1ae.tar.xz
nixpkgs-607a21b7c0ab0115e6e9d68d7325b9723636c1ae.tar.zst
nixpkgs-607a21b7c0ab0115e6e9d68d7325b9723636c1ae.zip
Merge pull request #24380 from fuzzy-id/haproxy-overworked4
haproxy: PCRE and LUA support via configurable options
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/tools/networking/haproxy/default.nix36
1 files changed, 30 insertions, 6 deletions
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index 3b7a68fb972..dda4452f644 100644
--- a/pkgs/tools/networking/haproxy/default.nix
+++ b/pkgs/tools/networking/haproxy/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, pkgs, fetchurl, openssl, zlib }:
+{ useLua ? !stdenv.isDarwin
+, usePcre ? true
+, stdenv, fetchurl
+, openssl, zlib, lua5_3 ? null, pcre ? null
+}:
+
+assert useLua -> lua5_3 != null;
+assert usePcre -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "haproxy";
@@ -12,12 +19,29 @@ stdenv.mkDerivation rec {
     sha256 = "ebb31550a5261091034f1b6ac7f4a8b9d79a8ce2a3ddcd7be5b5eb355c35ba65";
   };
 
-  buildInputs = [ openssl zlib ];
+  buildInputs = [ openssl zlib ]
+    ++ stdenv.lib.optional useLua lua5_3
+    ++ stdenv.lib.optional usePcre pcre;
 
   # TODO: make it work on bsd as well
-  preConfigure = ''
-    export makeFlags="TARGET=${if stdenv.isSunOS then "solaris" else if stdenv.isLinux then "linux2628" else "generic"} PREFIX=$out USE_OPENSSL=yes USE_ZLIB=yes ${stdenv.lib.optionalString stdenv.isDarwin "CC=cc USE_KQUEUE=1"}"
-  '';
+  makeFlags = [
+    "PREFIX=\${out}"
+    ("TARGET=" + (if stdenv.isSunOS  then "solaris"
+             else if stdenv.isLinux  then "linux2628"
+             else if stdenv.isDarwin then "osx"
+             else "generic"))
+  ];
+  buildFlags = [
+    "USE_OPENSSL=yes"
+    "USE_ZLIB=yes"
+  ] ++ stdenv.lib.optionals usePcre [
+    "USE_PCRE=yes"
+    "USE_PCRE_JIT=yes"
+  ] ++ stdenv.lib.optionals useLua [
+    "USE_LUA=yes"
+    "LUA_LIB=${lua5_3}/lib"
+    "LUA_INC=${lua5_3}/include"
+  ] ++ stdenv.lib.optional stdenv.isDarwin "CC=cc";
 
   meta = {
     description = "Reliable, high performance TCP/HTTP load balancer";
@@ -30,7 +54,7 @@ stdenv.mkDerivation rec {
       hardware.
     '';
     homepage = http://haproxy.1wt.eu;
-    maintainers = [ stdenv.lib.maintainers.garbas ];
+    maintainers = with stdenv.lib.maintainers; [ fuzzy-id garbas ];
     platforms = with stdenv.lib.platforms; linux ++ darwin;
     license = stdenv.lib.licenses.gpl2;
   };