785f04f986
this is the recommanded default, as glibc cause memory leaks: "We ran into a problem with glibc's malloc on Linux where it seemed like it failed to ever give memory back to the OS, causing the system to swap. We have now switched to jemalloc which appears not to have this problem." (from varnish-cache/doc/changes.rst)
66 lines
2.1 KiB
Nix
66 lines
2.1 KiB
Nix
{ lib, stdenv, fetchurl, fetchpatch, pcre, pcre2, jemalloc, libxslt, groff, ncurses, pkg-config, readline, libedit
|
|
, coreutils, python3, makeWrapper }:
|
|
|
|
let
|
|
common = { version, sha256, extraNativeBuildInputs ? [] }:
|
|
stdenv.mkDerivation rec {
|
|
pname = "varnish";
|
|
inherit version;
|
|
|
|
src = fetchurl {
|
|
url = "https://varnish-cache.org/_downloads/${pname}-${version}.tgz";
|
|
inherit sha256;
|
|
};
|
|
|
|
passthru.python = python3;
|
|
|
|
nativeBuildInputs = with python3.pkgs; [ pkg-config docutils sphinx ];
|
|
buildInputs = [
|
|
libxslt groff ncurses readline libedit makeWrapper python3
|
|
]
|
|
++ lib.optional (lib.versionOlder version "7") pcre
|
|
++ lib.optional (lib.versionAtLeast version "7") pcre2
|
|
++ lib.optional stdenv.hostPlatform.isLinux jemalloc;
|
|
|
|
buildFlags = [ "localstatedir=/var/spool" ];
|
|
|
|
postPatch = ''
|
|
substituteInPlace bin/varnishtest/vtc_main.c --replace /bin/rm "${coreutils}/bin/rm"
|
|
'';
|
|
|
|
postInstall = ''
|
|
wrapProgram "$out/sbin/varnishd" --prefix PATH : "${lib.makeBinPath [ stdenv.cc ]}"
|
|
'';
|
|
|
|
# https://github.com/varnishcache/varnish-cache/issues/1875
|
|
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isi686 "-fexcess-precision=standard";
|
|
|
|
outputs = [ "out" "dev" "man" ];
|
|
|
|
meta = with lib; {
|
|
description = "Web application accelerator also known as a caching HTTP reverse proxy";
|
|
homepage = "https://www.varnish-cache.org";
|
|
license = licenses.bsd2;
|
|
maintainers = with maintainers; [ fpletz ];
|
|
platforms = platforms.unix;
|
|
};
|
|
};
|
|
in
|
|
{
|
|
varnish60 = common {
|
|
version = "6.0.9";
|
|
sha256 = "1g0pwyckc0xh6ag6wj082x9wn4q6p6krjgc16fkw1arl71c18wsh";
|
|
};
|
|
varnish70 = (common {
|
|
version = "7.0.1";
|
|
sha256 = "0q265fzarz5530g8lasvfpgks8z1kq1yh7rn88bn2qfly3pmpry4";
|
|
}).overrideAttrs (oA: {
|
|
patches = [
|
|
(fetchpatch {
|
|
url = "https://github.com/varnishcache/varnish-cache/commit/20e007a5b17c1f68f70ab42080de384f9e192900.patch";
|
|
sha256 = "0vvihbjknb0skdv2ksn2lz89pwmn4f2rjmb6q65cvgnnjfj46s82";
|
|
})
|
|
];
|
|
});
|
|
}
|