nixpkgs/pkgs/servers/http/apache-httpd/default.nix

57 lines
1.5 KiB
Nix
Raw Normal View History

{ stdenv, fetchurl, openssl, db4, expat, perl, zlib
, sslSupport, db4Support, proxySupport ? true
}:
assert sslSupport -> openssl != null;
assert db4Support -> db4 != null;
assert expat != null && perl != null;
stdenv.mkDerivation {
name = "apache-httpd-2.2.8x";
src = fetchurl {
url = http://archive.apache.org/dist/httpd/httpd-2.2.8.tar.bz2;
md5 = "76d2598a4797163d07cd50e5304aa7cd";
};
#inherit sslSupport db4Support;
buildInputs = [expat perl] ++
stdenv.lib.optional sslSupport openssl ++
stdenv.lib.optional db4Support db4;
configureFlags = ''
--with-expat=${expat}
--with-z=${zlib}
--enable-mods-shared=all
--enable-authn-alias
${if proxySupport then "--enable-proxy" else ""}
--without-gdbm
--enable-threads
--with-devrandom=/dev/urandom
${if sslSupport then "--enable-ssl --with-ssl=${openssl}" else ""}
${if db4Support then "--with-berkeley-db=${db4}" else ""}
'';
postInstall = ''
echo "removing manual"
rm -rf $out/manual
'';
# For now, disable detection of epoll to ensure that Apache still
# runs on Linux 2.4 kernels. Once we've dropped support for 2.4 in
# Nixpkgs, this can go. In general, it's a problem that APR
# detects characteristics of the build system's kernel to decide
# what to use at runtime, since it's impure.
apr_cv_epoll = "no";
passthru = {
inherit expat sslSupport db4Support proxySupport;
};
meta = {
description = "Apache HTTPD, the world's most popular web server";
homepage = http://httpd.apache.org/;
};
}