summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/servers/http/unit/default.nix67
-rw-r--r--pkgs/top-level/all-packages.nix20
2 files changed, 86 insertions, 1 deletions
diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix
new file mode 100644
index 00000000000..68676a07bf0
--- /dev/null
+++ b/pkgs/servers/http/unit/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl
+, which
+, python
+, php71
+, php72
+, perl526
+, perl
+, perldevel
+, ruby_2_3
+, ruby_2_4
+, ruby
+, withSSL ? true, openssl ? null
+, withIPv6 ? true
+, withDebug ? false
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  version = "1.6";
+  name = "unit-${version}";
+
+  src = fetchurl {
+    url = "https://unit.nginx.org/download/${name}.tar.gz";
+    sha256 = "0lws5xpzkcmv0gc7vi8pgnymin02dq4gw0zb41jfzq0vbljxxl14";
+  };
+
+  buildInputs = [
+    which
+    python
+    php71
+    php72
+    perl526
+    perl
+    perldevel
+    ruby_2_3
+    ruby_2_4
+    ruby
+  ] ++ optional withSSL openssl;
+
+  configureFlags = [
+    "--control=unix:/run/control.unit.sock"
+    "--pid=/run/unit.pid"
+  ] ++ optional withSSL     [ "--openssl" ]
+    ++ optional (!withIPv6) [ "--no-ipv6" ]
+    ++ optional withDebug   [ "--debug" ];
+
+  postConfigure = ''
+    ./configure python  --module=python    --config=${python}/bin/python-config  --lib-path=${python}/lib
+    ./configure php     --module=php71     --config=${php71.dev}/bin/php-config  --lib-path=${php71}/lib
+    ./configure php     --module=php72     --config=${php72.dev}/bin/php-config  --lib-path=${php72}/lib
+    ./configure perl    --module=perl526   --perl=${perl526}/bin/perl
+    ./configure perl    --module=perl      --perl=${perl}/bin/perl
+    ./configure perl    --module=perl529   --perl=${perldevel}/bin/perl
+    ./configure ruby    --module=ruby23    --ruby=${ruby_2_3}/bin/ruby
+    ./configure ruby    --module=ruby24    --ruby=${ruby_2_4}/bin/ruby
+    ./configure ruby    --module=ruby      --ruby=${ruby}/bin/ruby
+  '';
+
+  meta = {
+    description = "Dynamic web and application server, designed to run applications in multiple languages.";
+    homepage    = https://unit.nginx.org/;
+    license     = licenses.asl20;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ izorkin ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e939afa1808..a273d116293 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7829,7 +7829,6 @@ in
     php = php72;
   });
 
-
   inherit (callPackages ../development/interpreters/php { })
     php71
     php72;
@@ -7846,6 +7845,20 @@ in
     config.php.apxs2 = false;
   };
 
+  php-unit = php72-unit;
+
+  php71-unit = php71.override {
+    config.php.embed = true;
+    config.php.apxs2 = false;
+    config.php.fpm = false;
+  };
+
+  php72-unit = php72.override {
+    config.php.embed = true;
+    config.php.apxs2 = false;
+    config.php.fpm = false;
+  };
+
   picoc = callPackage ../development/interpreters/picoc {};
 
   picolisp = callPackage ../development/interpreters/picolisp {};
@@ -13514,6 +13527,11 @@ in
 
   neard = callPackage ../servers/neard { };
 
+  unit = callPackage ../servers/http/unit {
+    php71 = php71-unit;
+    php72 = php72-unit;
+  };
+
   nginx = nginxStable;
 
   nginxStable = callPackage ../servers/http/nginx/stable.nix {