Commit graph

975 commits

Author SHA1 Message Date
aszlig e1d63ada02
nginx: Fix ETag patch to ignore realpath(3) error
While our ETag patch works pretty fine if it comes to serving data off
store paths, it unfortunately broke something that might be a bit more
common, namely when using regexes to extract path components of
location directives for example.

Recently, @devhell has reported a bug with a nginx location directive
like this:

  location ~^/\~([a-z0-9_]+)(/.*)?$" {
    alias /home/$1/public_html$2;
  }

While this might look harmless at first glance, it does however cause
issues with our ETag patch. The alias directive gets broken up by nginx
like this:

  *2 http script copy: "/home/"
  *2 http script capture: "foo"
  *2 http script copy: "/public_html/"
  *2 http script capture: "bar.txt"

In our patch however, we use realpath(3) to get the canonicalised path
from ngx_http_core_loc_conf_s.root, which returns the *configured* value
from the root or alias directive. So in the example above, realpath(3)
boils down to the following syscalls:

  lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
  lstat("/home/$1", 0x7ffd08da6f60) = -1 ENOENT (No such file or directory)

During my review[1] of the initial patch, I didn't actually notice that
what we're doing here is returning NGX_ERROR if the realpath(3) call
fails, which in turn causes an HTTP 500 error.

Since our patch actually made the canonicalisation (and thus additional
syscalls) necessary, we really shouldn't introduce an additional error
so let's - at least for now - silently skip return value if realpath(3)
has failed.

However since we're using the unaltered root from the config we have
another issue, consider this root:

  /nix/store/...-abcde/$1

Calling realpath(3) on this path will fail (except if there's a file
called "$1" of course), so even this fix is not enough because it
results in the ETag not being set to the store path hash.

While this is very ugly and we should fix this very soon, it's not as
serious as getting HTTP 500 errors for serving static files.

I added a small NixOS VM test, which uses the example above as a
regression test.

It seems that my memory is failing these days, since apparently I *knew*
about this issue since digging for existing issues in nixpkgs, I found
this similar pull request which I even reviewed:

https://github.com/NixOS/nixpkgs/pull/66532

However, since the comments weren't addressed and the author hasn't
responded to the pull request, I decided to keep this very commit and do
a follow-up pull request.

[1]: https://github.com/NixOS/nixpkgs/pull/48337

Signed-off-by: aszlig <aszlig@nix.build>
Reported-by: @devhell
Acked-by: @7c6f434c
Acked-by: @yorickvP
Merges: https://github.com/NixOS/nixpkgs/pull/80671
Fixes: https://github.com/NixOS/nixpkgs/pull/66532
2020-03-28 02:57:21 +01:00
Emily 7be86f3b3c openresty: 1.15.8.2 -> 1.15.8.3 2020-03-24 11:37:44 -05:00
Aaron Andersen 6283b00f4f
Merge pull request #82319 from aanderse/tomcat-update
tomcat: 7.0.92 -> 7.0.100, 8.5.42 -> 8.5.51, 9.0.21 -> 9.0.31
2020-03-16 15:46:48 -04:00
R. RyanTM 79586e1b74 tomcat_connectors: 1.2.46 -> 1.2.48 2020-03-14 14:30:51 +01:00
Mario Rodas 34914fce19
Merge pull request #82290 from helsinki-systems/upd/ngx_fastcgi_cache_purge
nginxModules.fastcgi-cache-purge: 2.3 -> 2.5
2020-03-13 08:44:44 -05:00
Izorkin 5dbe01af5b unit: 1.15.0 -> 1.16.0 2020-03-12 19:53:13 +00:00
Aaron Andersen 46e7580f24 tomcat9: 9.0.21 -> 9.0.31 2020-03-11 07:51:04 -04:00
Aaron Andersen 22f24f7859 tomcat8: 8.5.42 -> 8.5.51 2020-03-11 07:51:04 -04:00
Aaron Andersen 78b0222cb2 tomcat7: 7.0.92 -> 7.0.100 2020-03-11 07:51:04 -04:00
ajs124 0aec2cdd08 nginxModules.fastcgi-cache-purge: 2.3 -> 2.5
switch to a fork that seems sort of alive
2020-03-10 23:35:15 +01:00
Aaron Andersen fc7efd51d6
Merge pull request #80182 from dirkx/Redwax-0.22-update
redwax-modules: 0.2.1 -> 0.2.2/0.2.3
2020-02-22 19:03:21 -05:00
Dirk-Willem van Gulik 928c365a1b redwax-modules: 0.2.1 -> 0.2.2/0.2.3 2020-02-21 12:00:00 +01:00
R. RyanTM 56debabe34 mod_wsgi: 4.7.0 -> 4.7.1 2020-02-19 08:54:38 +00:00
Frederik Rietdijk 1a6c3cb06b Merge staging into staging-next 2020-02-11 07:59:53 +01:00
zimbatm bcdc90a3a7 ruby_2_4: remove
According to https://endoflife.software/programming-languages/server-side-scripting/ruby
ruby 2.4 will go end-of-life in march, where the new release of nixpkgs
will be cut. We won't be able to support it for security updates.

Remove all references to ruby_2_4 and add ruby_2_7 instead where
missing.

Mark packages that depend on ruby 2.4 as broken:
* chefdk
* sonic-pi
2020-02-10 13:23:35 -05:00
R. RyanTM 3815de80c0 unit: 1.14.0 -> 1.15.0 2020-02-10 14:47:35 +00:00
Frederik Rietdijk 03755ed59a Merge master into staging-next 2020-02-09 09:17:51 +01:00
R. RyanTM fa84aa8adb lighttpd: 1.4.54 -> 1.4.55 2020-02-08 18:13:10 +01:00
Vladimír Čunát 48a997cd76
Merge #66528: glibc: 2.27 -> 2.30 (into staging)
Includes update of stdenv bootstap tools (for three main platforms)
and many package fixes with new glibc.
2020-02-05 13:41:09 +01:00
Emily 6d046e1079 openresty: rebase on top of nginx package
The primary motivation of this change was to allow third-party modules
to be used with OpenResty, but it also results in a significant
reduction of code duplication.
2020-02-04 19:30:40 -06:00
Emily db3182a65d nginxModules.brotli: v0.1.2 -> unstable
The fork was merged back upstream but has yet to see a formal release.
2020-02-04 19:30:40 -06:00
Will Dietz 500f032729
Merge pull request #78185 from dtzWill/update/nginx-1.17.8
nginxMainline: 1.17.3 -> 1.17.8
2020-02-03 17:35:42 -06:00
Maximilian Bosch 1bb18d9e8d
lwan: 0.2 -> 0.3, fix build w/glibc-2.30 2020-02-01 17:30:18 +01:00
Silvan Mosberger 80a2740991
Merge pull request #78265 from Synthetica9/https-homepages
treewide: fix redirected urls
2020-01-27 15:00:53 +01:00
Patrick Hilhorst 593e11fd94
treewide: fix redirected urls
According to https://repology.org/repository/nix_unstable/problems, we have a
lot of packages that have http links that redirect to https as their homepage.
This commit updates all these packages to use the https links as their
homepage.

The following script was used to make these updates:

```

curl https://repology.org/api/v1/repository/nix_unstable/problems \
    | jq '.[] | .problem' -r \
    | rg 'Homepage link "(.+)" is a permanent redirect to "(.+)" and should be updated' --replace 's@$1@$2@' \
    | sort | uniq > script.sed

find -name '*.nix' | xargs -P4 -- sed -f script.sed -i
```
2020-01-22 11:26:22 +01:00
R. RyanTM 359f235769 jetty: 9.4.24.v20191120 -> 9.4.25.v20191220 2020-01-21 16:06:08 -08:00
Will Dietz 92d29418b3
nginxMainline: 1.17.3 -> 1.17.8
http://nginx.org/en/CHANGES
2020-01-21 11:02:11 -06:00
Jörg Thalheim 71c19d3efa
Merge pull request #76537 from Izorkin/unit
unit: 1.13.0 -> 1.14.0
2020-01-21 11:39:41 +00:00
Leonhard Markert 8008905e5a lwan: 0.1 -> 0.2 2020-01-16 16:55:07 +00:00
Aaron Andersen 7260d2eb13
Merge pull request #77326 from aanderse/apacheHttpd
nixos/httpd: symlink apache configuration to /etc/httpd/httpd.conf for use in the apachectl command
2020-01-15 21:02:05 -05:00
Mario Rodas c7e16e71d0
Merge pull request #77011 from r-ryantm/auto-update/mod_wsgi
mod_wsgi: 4.6.8 -> 4.7.0
2020-01-09 05:34:03 -05:00
Aaron Andersen 336a6f471f nixos/httpd: symlink apache configuration to /etc/httpd/httpd.conf for use in the apachectl command 2020-01-08 10:37:46 -05:00
Aaron Andersen e9d3a3c7d8
Merge pull request #76417 from dirkx/redwax-modules
mod_ca, mod_crl, mod_csr, mod_ocsp, mod_scep, mod_pkcs12, mod_spkac, mod_timestamp: init at 0.2.1
2020-01-07 20:49:24 -05:00
R. RyanTM aa4fe9c768 mod_wsgi: 4.6.8 -> 4.7.0 2020-01-05 22:08:04 -08:00
Ryan Mulligan 6de8b8f144
Merge pull request #61722 from Izorkin/pinba-nginx
nginxModules.pinba: init at 13.05.2019
2020-01-04 07:58:18 -08:00
Frederik Rietdijk 7aa2b0215b Merge master into staging-next 2020-01-03 10:25:14 +01:00
aszlig 845e92835d
Merge Last-Modified fix for nginx (#76697)
This fixes the patch for nginx to clear the Last-Modified header if a
static file is served from the Nix store.

So far we only used the ETag from the store path, but if the
Last-Modified header is always set to "Thu, 01 Jan 1970 00:00:01 GMT",
Firefox and Chrome/Chromium seem to ignore the ETag and simply use the
cached content instead of revalidating.

Alongside the fix, this also adds a dedicated NixOS VM test, which uses
WebDriver and Firefox to check whether the content is actually served
from the browser's cache and to have a more real-world test case.
2020-01-02 21:41:59 +01:00
Frederik Rietdijk f08e3e38d4 Merge master into staging-next 2020-01-02 21:41:13 +01:00
zimbatm c187844214
unit: add withRuby_2_7 option 2020-01-01 00:25:03 +00:00
Robin Gloster 6ca6ac796b
treewide: configureFlags is a flat list 2019-12-31 01:37:49 +01:00
Robin Gloster 760e23136a
treewide: *inputs are lists 2019-12-31 01:09:25 +01:00
Robin Gloster 313da176d3
treewide: NIX_*_FLAGS -> string 2019-12-31 00:16:46 +01:00
Robin Gloster 5f2b92e3ec
treewide: NIX_*_COMPILE -> string 2019-12-31 00:13:29 +01:00
aszlig ccf55bead1
nginx: Clear Last-Modified if ETag is from store
This is what I've suspected a while ago[1]:

> Heads-up everyone: After testing this in a few production instances,
> it seems that some browsers still get cache hits for new store paths
> (and changed contents) for some reason. I highly suspect that it might
> be due to the last-modified header (as mentioned in [2]).
>
> Going to test this with last-modified disabled for a little while and
> if this is the case I think we should improve that patch by disabling
> last-modified if serving from a store path.

Much earlier[2] when I reviewed the patch, I wrote this:

> Other than that, it looks good to me.
>
> However, I'm not sure what we should do with Last-Modified header.
> From RFC 2616, section 13.3.4:
>
> - If both an entity tag and a Last-Modified value have been
>   provided by the origin server, SHOULD use both validators in
>   cache-conditional requests. This allows both HTTP/1.0 and
>   HTTP/1.1 caches to respond appropriately.
>
> I'm a bit nervous about the SHOULD here, as user agents in the wild
> could possibly just use Last-Modified and use the cached content
> instead.

Unfortunately, I didn't pursue this any further back then because
@pbogdan noted[3] the following:

> Hmm, could they (assuming they are conforming):
>
>  * If an entity tag has been provided by the origin server, MUST
>    use that entity tag in any cache-conditional request (using If-
>    Match or If-None-Match).

Since running with this patch in some deployments, I found that both
Firefox and Chrome/Chromium do NOT re-validate against the ETag if the
Last-Modified header is still the same.

So I wrote a small NixOS VM test with Geckodriver to have a test case
which is closer to the real world and I indeed was able to reproduce
this.

Whether this is actually a bug in Chrome or Firefox is an entirely
different issue and even IF it is the fault of the browsers and it is
fixed at some point, we'd still need to handle this for older browser
versions.

Apart from clearing the header, I also recreated the patch by using a
plain "git diff" with a small description on top. This should make it
easier for future authors to work on that patch.

[1]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-495072764
[2]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451644084
[3]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451646135

Signed-off-by: aszlig <aszlig@nix.build>
2019-12-30 14:30:36 +01:00
Robin Gloster 2157dcd141
treewide: installFlags is a list 2019-12-30 13:22:43 +01:00
Nathan b0caf68bff
maintainer-list.nix: remove ndowens 2019-12-26 16:47:41 -05:00
Izorkin b5bd159690 unit: add drop capabilites patch 2019-12-26 17:51:53 +03:00
Izorkin 681dca1b67 unit: 1.13.0 -> 1.14.0 2019-12-26 17:39:14 +03:00
Dirk-Willem van Gulik f85ec2d896 Additional redwax modules - including comments from review on #75620. 2019-12-24 17:01:04 +01:00
Jörg Thalheim b9bc38934b
h2o: build with openssl
otherwise we get symbol conflicts, once we link it against applications using
openssl
2019-12-21 22:55:58 +00:00
Izorkin edddf0ac47 nginxModules.pinba: init at 13.05.2019 2019-12-11 10:06:55 +03:00
Frederik Rietdijk f3618342ec Merge staging-next into staging 2019-12-10 19:01:27 +01:00
Renaud f640cf49d1
rdf4store: remove pkg and service modules
(#74214)
2019-12-08 20:33:51 +01:00
Frederik Rietdijk 353ec3f3a8
Merge pull request #73491 from Izorkin/unit
unit: 1.12.0 -> 1.13.0
2019-12-05 10:25:54 +01:00
R. RyanTM fffce07e96 jetty: 9.4.22.v20191022 -> 9.4.24.v20191120 (#74417)
* jetty: 9.4.22.v20191022 -> 9.4.24.v20191120

* jetty: homepage over https
2019-11-30 22:03:40 +01:00
Jörg Thalheim 571ed9d22e
nginx: reference tests 2019-11-29 12:27:55 +00:00
tekeri a5f26644d4 Add nginx perl modules (#73198)
* nginx: enable perl_module if perl is given

* nginx: move `perl = null` to toplevel
2019-11-27 17:08:56 +00:00
Izorkin d5f8c4b1d1 unit: update build configuration 2019-11-24 12:55:21 +03:00
Izorkin 6ae0c68216 unit: 1.12.0 -> 1.13.0 2019-11-24 12:46:36 +03:00
R. RyanTM f28fad5e2f jetty: 9.4.16.v20190411 -> 9.4.22.v20191022
(#72533)
2019-11-06 19:30:58 +01:00
Aaron Andersen 0cad3f6734
Merge pull request #70365 from jglukasik/mod_tile
apacheHttpdPackages.mod_tile: init at unstable-2017-01-08
2019-11-05 20:45:55 -05:00
Joseph Lukasik babd3f7747 apacheHttpdPackage.mod_tile: init at unstable-2017-01-08 2019-11-01 22:52:14 -07:00
R. RyanTM 43e64eb545 mod_wsgi: 4.6.7 -> 4.6.8
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/mod_wsgi/versions
2019-10-21 09:14:11 +02:00
Mario Rodas 86df0e335c tengine: 2.3.1 -> 2.3.2 (#70574)
* tengine: 2.3.1 -> 2.3.2

Changelog: https://github.com/alibaba/tengine/releases/tag/2.3.2

* tengine: unbreak
2019-10-15 22:00:09 +02:00
Renaud dbf21775d4
Merge pull request #70527 from Izorkin/nginx-unit
unit: 1.11.0 -> 1.12.0
2019-10-09 13:58:44 +02:00
Linus Heckemann 5aa4b19946 treewide: mark some broken packages as broken
Refs:
e6754980264fe927320d5ff2dbd24ca4fac9a160
1e9cc5b9844ef603fe160e9f671178f96200774f
793a2fe1e8bb886ca2096c5904e1193dc3268b6d
c19cf65261639f749012454932a532aa7c681e4b
f6544d618f30fae0bc4798c4387a8c7c9c047a7c
2019-10-08 17:14:26 +02:00
Izorkin 1134fb45c0 unit: 1.11.0 -> 1.12.0 2019-10-06 15:33:03 +03:00
Ryan Mulligan 43be6a46a8
Merge pull request #69715 from r-ryantm/auto-update/openresty
openresty: 1.15.8.1 -> 1.15.8.2
2019-09-28 08:30:18 -07:00
R. RyanTM 8696c19bbb openresty: 1.15.8.1 -> 1.15.8.2
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/openresty/versions
2019-09-27 16:17:19 -07:00
Vladimír Čunát eab41878ac
Merge branch 'master' into staging-next 2019-09-24 08:14:34 +02:00
Vladimír Čunát 22a216849b
Re-Revert "Merge branch 'staging-next'"
This reverts commit f8a8fc6c7c.
2019-09-22 09:38:09 +02:00
Izorkin b397fbc0aa unit: 1.10.0 -> 1.11.0 2019-09-22 10:16:59 +03:00
Vladimír Čunát f8a8fc6c7c
Revert "Merge branch 'staging-next'"
This reverts commit 41af38f372, reversing
changes made to f0fec244ca.

Let's delay this.  We have some serious regressions.
2019-09-21 20:05:09 +02:00
Vladimír Čunát 41af38f372
Merge branch 'staging-next' 2019-09-21 13:14:09 +02:00
Austin Seipp 889537352b
h2o: 2.2.6 -> 2.3.0-beta2, enable multi-output
This also lets us remove a hack for supporting LibreSSL 2.7, since we're
now using 2.9 by default, anyway.

Finally, use Ninja to run the CMake build instead of Make -- speeds
things up for me by a few seconds.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-09-19 18:28:04 -05:00
Izorkin 329a88efa7 treewide: replace mysql.connector-c to libmysqlclient 2019-09-09 15:55:34 +03:00
volth 7b8fb5c06c treewide: remove redundant quotes 2019-09-08 23:38:31 +00:00
Frederik Rietdijk 5f4734b1dd Merge remote-tracking branch 'upstream/gcc-8' into staging-next
Earlier the gcc8 branch was merged instead of the gcc-8 branch (note the dash)...
2019-09-08 20:44:26 +02:00
Alyssa Ross 5262dd23b3 unit: drop withRuby_2_3 option
Ruby 2.3 is EOL.
2019-09-07 13:09:17 +00:00
Franz Pletz de85797565
Merge remote-tracking branch 'origin/master' into gcc-8 2019-09-03 22:15:07 +02:00
volth 08f68313a4 treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
Frederik Rietdijk 5061fe0c2c Merge staging-next into staging 2019-08-28 08:26:42 +02:00
Frederik Rietdijk 98640fd482 Merge master into staging-next 2019-08-27 16:36:47 +02:00
Peter Simons 79c6d22c1f mod_wsgi: allow building this module with python 2.x and 3.x 2019-08-27 14:27:31 +02:00
Robin Gloster 616b8343c4
Merge remote-tracking branch 'upstream/master' into gcc-8 2019-08-25 18:55:46 +02:00
Vladimír Čunát 2e6bf42a22
Merge branch 'master' into staging-next
There ver very many conflicts, basically all due to
name -> pname+version.  Fortunately, almost everything was auto-resolved
by kdiff3, and for now I just fixed up a couple evaluation problems,
as verified by the tarball job.  There might be some fallback to these
conflicts, but I believe it should be minimal.

Hydra nixpkgs: ?compare=1538299
2019-08-24 08:55:37 +02:00
Izorkin 9332861720 unit: 1.9.0 -> 1.10.0 2019-08-23 10:03:00 +03:00
Robin Gloster 4e60b0efae
treewide: update globin's maintained drvs 2019-08-20 19:36:05 +02:00
Marek Mahut f8892cb49c
Merge pull request #66890 from r-ryantm/auto-update/h2o
h2o: 2.2.5 -> 2.2.6
2019-08-19 11:51:02 +02:00
R. RyanTM 3ac9a51961 h2o: 2.2.5 -> 2.2.6
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/h2o/versions
2019-08-19 02:10:02 -07:00
Aaron Andersen 23abcd5ee3 apacheHttpd: 2.4.39 -> 2.4.41 2019-08-18 17:40:26 -04:00
Marek Mahut aff691af10
Merge pull request #65892 from r-ryantm/auto-update/couchdb
couchdb2: 2.3.0 -> 2.3.1
2019-08-18 16:28:41 +02:00
volth c814d72b51 treewide: name -> pname 2019-08-17 10:54:38 +00:00
Frederik Rietdijk fe9a3e3e63 Merge staging-next into staging 2019-08-17 09:39:23 +02:00
volth 46420bbaa3 treewide: name -> pname (easy cases) (#66585)
treewide replacement of

stdenv.mkDerivation rec {
  name = "*-${version}";
  version = "*";

to pname
2019-08-15 13:41:18 +01:00
Izorkin 83381bec9c nginxMainline: 1.17.2 -> 1.17.3 2019-08-13 21:31:57 +03:00
Izorkin aec55db737 nginxStable: 1.16.0 -> 1.16.1 2019-08-13 21:30:08 +03:00
Marek Mahut 1b8da7d755 Adding python3Packages.requests as dependecy 2019-08-13 18:20:21 +02:00
Sander van der Burg 5f01a2586a
Merge pull request #50805 from r-ryantm/auto-update/axis2
axis2: 1.6.4 -> 1.7.9
2019-08-11 12:15:33 +02:00
Marek Mahut 0e679dd53e axis2: 1.7.8 -> 1.7.9 2019-08-10 10:24:53 +02:00