forked from mirrors/nixpkgs
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>
This commit is contained in:
parent
d533285224
commit
1f24685d93
|
@ -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";
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue