1{ stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, kerberos
2, pkgconfig, gnused, expat, openldap, libiconv }:
3
4stdenv.mkDerivation rec {
5 name = "serf-1.3.9";
6
7 src = fetchurl {
8 url = "https://www.apache.org/dist/serf/${name}.tar.bz2";
9 sha256 = "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l";
10 };
11
12 nativeBuildInputs = [ pkgconfig ];
13 buildInputs = [ apr scons openssl aprutil zlib libiconv ]
14 ++ stdenv.lib.optional (!stdenv.isCygwin) kerberos;
15
16 postPatch = ''
17 sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"PATH":os.environ["PATH"]})' \
18 -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"NIX_CFLAGS_COMPILE":os.environ["NIX_CFLAGS_COMPILE"]})' \
19 -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"NIX_LDFLAGS":os.environ["NIX_LDFLAGS"]})' \
20 -e 's,$OPENSSL/lib,${openssl.out}/lib,' \
21 -e 's,$OPENSSL/include,${openssl.dev}/include,' \
22 -i SConstruct
23 '';
24
25 buildPhase = ''
26 scons PREFIX="$out" OPENSSL="${openssl}" ZLIB="${zlib}" APR="$(echo "${apr.dev}"/bin/*-config)" CFLAGS="-I${zlib.dev}/include" \
27 LINKFLAGS="-L${zlib.out}/lib -L${expat}/lib -L${openldap}/lib -L${libiconv}/lib" \
28 APU="$(echo "${aprutil.dev}"/bin/*-config)" CC="${
29 if stdenv.cc.isClang then "clang" else "${stdenv.cc}/bin/gcc"
30 }" ${
31 if (stdenv.isDarwin || stdenv.isCygwin) then "" else "GSSAPI=\"${kerberos.dev}\""
32 }
33 '';
34
35 NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-L/usr/lib";
36
37 installPhase = ''
38 scons install
39 '';
40
41 meta = {
42 description = "HTTP client library based on APR";
43 license = stdenv.lib.licenses.asl20;
44 maintainers = [stdenv.lib.maintainers.raskin];
45 platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
46 };
47}