Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / servers / http / openresty / default.nix
blob53c77426427981b902860ab14253f27fd02b36e5
1 { callPackage
2 , runCommand
3 , lib
4 , fetchurl
5 , perl
6 , postgresql
7 , nixosTests
8 , ...
9 }@args:
11 callPackage ../nginx/generic.nix args rec {
12   pname = "openresty";
13   nginxVersion = "1.25.3";
14   version = "${nginxVersion}.1";
16   src = fetchurl {
17     url = "https://openresty.org/download/openresty-${version}.tar.gz";
18     sha256 = "sha256-MuwaJTpaEyUDVaB1/mW31j7EXFYLviEzUPCZKlfNed8=";
19   };
21   # generic.nix applies fixPatch on top of every patch defined there.
22   # This allows updating the patch destination, as openresty has
23   # nginx source code in a different folder.
24   fixPatch = patch:
25     let name = patch.name or (builtins.baseNameOf patch); in
26     runCommand "openresty-${name}" { src = patch; } ''
27       substitute $src $out \
28         --replace "a/" "a/bundle/nginx-${nginxVersion}/" \
29         --replace "b/" "b/bundle/nginx-${nginxVersion}/"
30     '';
32   nativeBuildInputs = [ perl ];
34   buildInputs = [ postgresql ];
36   postPatch = ''
37     patchShebangs configure bundle/
38   '';
40   configureFlags = [ "--with-http_postgres_module" ];
42   postInstall = ''
43     ln -s $out/luajit/bin/luajit-2.1.ROLLING $out/bin/luajit-openresty
44     ln -sf $out/nginx/bin/nginx $out/bin/openresty
45     ln -s $out/nginx/bin/nginx $out/bin/nginx
46     ln -s $out/nginx/conf $out/conf
47     ln -s $out/nginx/html $out/html
48   '';
50   passthru.tests = {
51     inherit (nixosTests) openresty-lua;
52   };
54   meta = {
55     description = "Fast web application server built on Nginx";
56     homepage = "https://openresty.org";
57     license = lib.licenses.bsd2;
58     platforms = lib.platforms.all;
59     maintainers = with lib.maintainers; [ thoughtpolice lblasc ];
60   };