about summary refs log tree commit diff
path: root/pkgs/servers/http/unit/default.nix
blob: 68676a07bf033e3803428d2b69137fcf0a7b0b8f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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 ];
  };
}