summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
author3noch <eacameron@gmail.com>2017-01-06 02:09:54 -0500
committer3noch <eacameron@gmail.com>2017-01-10 17:26:50 -0500
commit0d4d401b7f67766f52052b123d61988e8deadfb2 (patch)
tree47fc128546a6a68d829d22ac99e45dd56c642795 /pkgs
parentd2d7740f1b5cbe31fd574d3f362712b968228bf5 (diff)
downloadnixpkgs-0d4d401b7f67766f52052b123d61988e8deadfb2.tar
nixpkgs-0d4d401b7f67766f52052b123d61988e8deadfb2.tar.gz
nixpkgs-0d4d401b7f67766f52052b123d61988e8deadfb2.tar.bz2
nixpkgs-0d4d401b7f67766f52052b123d61988e8deadfb2.tar.lz
nixpkgs-0d4d401b7f67766f52052b123d61988e8deadfb2.tar.xz
nixpkgs-0d4d401b7f67766f52052b123d61988e8deadfb2.tar.zst
nixpkgs-0d4d401b7f67766f52052b123d61988e8deadfb2.zip
nginx: add PageSpeed module (Linux only)
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/libraries/psol/default.nix5
-rw-r--r--pkgs/development/libraries/psol/generic.nix16
-rw-r--r--pkgs/servers/http/nginx/modules.nix29
-rw-r--r--pkgs/top-level/all-packages.nix4
4 files changed, 53 insertions, 1 deletions
diff --git a/pkgs/development/libraries/psol/default.nix b/pkgs/development/libraries/psol/default.nix
new file mode 100644
index 00000000000..5c78c1a288f
--- /dev/null
+++ b/pkgs/development/libraries/psol/default.nix
@@ -0,0 +1,5 @@
+{ callPackage }:
+callPackage ./generic.nix {} {
+  version = "1.11.33.4";
+  sha256  = "1jq2llp0i4666rwqnx1hs4pjlpblxivvs1jkkjzlmdbsv28jzjq8";
+}
diff --git a/pkgs/development/libraries/psol/generic.nix b/pkgs/development/libraries/psol/generic.nix
new file mode 100644
index 00000000000..3e82bb4975d
--- /dev/null
+++ b/pkgs/development/libraries/psol/generic.nix
@@ -0,0 +1,16 @@
+{ fetchzip, stdenv }:
+{ version, sha256 }:
+{ inherit version; } // fetchzip {
+  inherit sha256;
+  name   = "psol-${version}";
+  url    = "https://dl.google.com/dl/page-speed/psol/${version}.tar.gz";
+
+  meta = {
+    description = "PageSpeed Optimization Libraries";
+    homepage    = "https://developers.google.com/speed/pagespeed/psol";
+    license     = stdenv.lib.licenses.asl20;
+    # WARNING: This only works with Linux because the pre-built PSOL binary is only supplied for Linux.
+    # TODO: Build PSOL from source to support more platforms.
+    platforms   = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix
index d19c147ce93..20ea55f82a1 100644
--- a/pkgs/servers/http/nginx/modules.nix
+++ b/pkgs/servers/http/nginx/modules.nix
@@ -146,4 +146,33 @@
       sha256 = "0ib2jrbjwrhvmihhnzkp4w87fxssbbmmmj6lfdwpm6ni8p9g60dw";
     };
   };
+
+  pagespeed =
+    let
+      version = pkgs.psol.version;
+
+      moduleSrc = fetchFromGitHub {
+        owner  = "pagespeed";
+        repo   = "ngx_pagespeed";
+        rev    = "v${version}-beta";
+        sha256 = "03dvzf1lgsjxcs1jjxq95n2rhgq0wy0f9ahvgascy0fak7qx4xj9";
+      };
+
+      ngx_pagespeed = pkgs.runCommand
+        "ngx_pagespeed"
+        {
+          meta = {
+            description = "PageSpeed module for Nginx";
+            homepage    = "https://developers.google.com/speed/pagespeed/module/";
+            license     = pkgs.stdenv.lib.licenses.asl20;
+          };
+        }
+        ''
+          cp -r "${moduleSrc}" "$out"
+          chmod -R +w "$out"
+          ln -s "${pkgs.psol}" "$out/psol"
+        '';
+    in {
+      src = ngx_pagespeed;
+    };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index adc434f97d7..f05b3dab363 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8395,7 +8395,7 @@ in
 
   libpfm = callPackage ../development/libraries/libpfm { };
 
-  libpqxx = callPackage ../development/libraries/libpqxx { 
+  libpqxx = callPackage ../development/libraries/libpqxx {
     gnused = gnused_422;
   };
 
@@ -14589,6 +14589,8 @@ in
     autoAwaySupport = config.profanity.autoAwaySupport or true;
   };
 
+  psol = callPackage ../development/libraries/psol/default.nix { };
+
   pstree = callPackage ../applications/misc/pstree { };
 
   pulseview = callPackage ../applications/science/electronics/pulseview { };