diff options
author | aszlig <aszlig@nix.build> | 2019-04-18 10:07:55 +0200 |
---|---|---|
committer | aszlig <aszlig@nix.build> | 2019-04-18 10:07:55 +0200 |
commit | 1f24685d93e96581b65d8c30a0c8eac903d82052 (patch) | |
tree | 03e33f2ae1217ace0277194896fc7369bb073ecf /pkgs/servers | |
parent | d533285224de23354f445f728049e7758d686f20 (diff) | |
download | nixlib-1f24685d93e96581b65d8c30a0c8eac903d82052.tar nixlib-1f24685d93e96581b65d8c30a0c8eac903d82052.tar.gz nixlib-1f24685d93e96581b65d8c30a0c8eac903d82052.tar.bz2 nixlib-1f24685d93e96581b65d8c30a0c8eac903d82052.tar.lz nixlib-1f24685d93e96581b65d8c30a0c8eac903d82052.tar.xz nixlib-1f24685d93e96581b65d8c30a0c8eac903d82052.tar.zst nixlib-1f24685d93e96581b65d8c30a0c8eac903d82052.zip |
nginx/etag-patch: Use Nix store dir from build env
So far, the Nix store directory was hardcoded and if someone uses a different Nix store directory the patch won't work. Of course, this is pretty uncommon, but by not only substituting the store directory but also the length of it we also save a few calls to ngx_strlen(), which should save us a few cycles. Signed-off-by: aszlig <aszlig@nix.build>
Diffstat (limited to 'pkgs/servers')
-rw-r--r-- | pkgs/servers/http/nginx/generic.nix | 11 | ||||
-rw-r--r-- | pkgs/servers/http/nginx/nix-etag-1.15.4.patch | 4 |
2 files changed, 9 insertions, 6 deletions
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix index fa7864886dc5..12b873df6a40 100644 --- a/pkgs/servers/http/nginx/generic.nix +++ b/pkgs/servers/http/nginx/generic.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, fetchpatch, openssl, zlib, pcre, libxml2, libxslt -, gd, geoip +, substituteAll, gd, geoip , withDebug ? false , withStream ? true , withMail ? false @@ -75,9 +75,12 @@ stdenv.mkDerivation { preConfigure = (concatMapStringsSep "\n" (mod: mod.preConfigure or "") modules); - patches = [ - ./nix-etag-1.15.4.patch - ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + patches = stdenv.lib.singleton (substituteAll { + src = ./nix-etag-1.15.4.patch; + preInstall = '' + export nixStoreDir="$NIX_STORE" nixStoreDirLen="''${#NIX_STORE}" + ''; + }) ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ (fetchpatch { url = "https://raw.githubusercontent.com/openwrt/packages/master/net/nginx/patches/102-sizeof_test_fix.patch"; sha256 = "0i2k30ac8d7inj9l6bl0684kjglam2f68z8lf3xggcc2i5wzhh8a"; diff --git a/pkgs/servers/http/nginx/nix-etag-1.15.4.patch b/pkgs/servers/http/nginx/nix-etag-1.15.4.patch index 1a8dcb4303ad..9dec715bf6c5 100644 --- a/pkgs/servers/http/nginx/nix-etag-1.15.4.patch +++ b/pkgs/servers/http/nginx/nix-etag-1.15.4.patch @@ -36,8 +36,8 @@ index c57ec00c..b7992de2 100644 - r->headers_out.last_modified_time, - r->headers_out.content_length_n) - - etag->value.data; -+ #define NIX_STORE_DIR "/nix/store" -+ #define NIX_STORE_LEN ngx_strlen(NIX_STORE_DIR) ++ #define NIX_STORE_DIR "@nixStoreDir@" ++ #define NIX_STORE_LEN @nixStoreDirLen@ + + if (r->headers_out.last_modified_time == 1 + && !ngx_strncmp(real, NIX_STORE_DIR, NIX_STORE_LEN) |