nixpkgs/pkgs/servers/http/lighttpd/default.nix
2018-08-17 20:53:27 +02:00

66 lines
2.2 KiB
Nix

{ stdenv, fetchurl, pkgconfig, pcre, libxml2, zlib, attr, bzip2, which, file
, openssl, enableMagnet ? false, lua5_1 ? null
, enableMysql ? false, mysql ? null
, enableLdap ? false, openldap ? null
, enableWebDAV ? true, sqlite ? null, libuuid ? null
, perl
}:
assert enableMagnet -> lua5_1 != null;
assert enableMysql -> mysql != null;
assert enableLdap -> openldap != null;
assert enableWebDAV -> sqlite != null;
assert enableWebDAV -> libuuid != null;
stdenv.mkDerivation rec {
name = "lighttpd-1.4.50";
src = fetchurl {
url = "https://download.lighttpd.net/lighttpd/releases-1.4.x/${name}.tar.xz";
sha256 = "1sr9avcnld22a5wl5s8vgrz8r86mybggm9z8zwabqz48v0986dr9";
};
postPatch = ''
patchShebangs tests
'';
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ pcre libxml2 zlib attr bzip2 which file openssl ]
++ stdenv.lib.optional enableMagnet lua5_1
++ stdenv.lib.optional enableMysql mysql.connector-c
++ stdenv.lib.optional enableLdap openldap
++ stdenv.lib.optional enableWebDAV sqlite
++ stdenv.lib.optional enableWebDAV libuuid;
configureFlags = [ "--with-openssl" ]
++ stdenv.lib.optional enableMagnet "--with-lua"
++ stdenv.lib.optional enableMysql "--with-mysql"
++ stdenv.lib.optional enableLdap "--with-ldap"
++ stdenv.lib.optional enableWebDAV "--with-webdav-props"
++ stdenv.lib.optional enableWebDAV "--with-webdav-locks";
preConfigure = ''
sed -i "s:/usr/bin/file:${file}/bin/file:g" configure
'';
checkInputs = [ perl ];
doCheck = false; # fails 2 tests
postInstall = ''
mkdir -p "$out/share/lighttpd/doc/config"
cp -vr doc/config "$out/share/lighttpd/doc/"
# Remove files that references needless store paths (dependency bloat)
rm "$out/share/lighttpd/doc/config/Makefile"*
rm "$out/share/lighttpd/doc/config/conf.d/Makefile"*
rm "$out/share/lighttpd/doc/config/vhosts.d/Makefile"*
'';
meta = with stdenv.lib; {
description = "Lightweight high-performance web server";
homepage = http://www.lighttpd.net/;
license = stdenv.lib.licenses.bsd3;
platforms = platforms.linux;
maintainers = [ maintainers.bjornfor ];
};
}