1{ lib
2, stdenv
3, fetchurl
4, apr
5, scons
6, openssl
7, aprutil
8, zlib
9, libkrb5
10, pkg-config
11, libiconv
12, fetchpatch
13}:
14
15stdenv.mkDerivation rec {
16 pname = "serf";
17 version = "1.3.10";
18
19 src = fetchurl {
20 url = "mirror://apache/serf/${pname}-${version}.tar.bz2";
21 hash = "sha256-voHvCLqiUW7Np2p3rffe97wyJ+61eLmjO0X3tB3AZOY=";
22 };
23
24 nativeBuildInputs = [ pkg-config scons ];
25 buildInputs = [ apr openssl aprutil zlib libiconv ]
26 ++ lib.optional (!stdenv.isCygwin) libkrb5;
27
28 patches = [
29 ./scons.patch
30
31 (fetchpatch {
32 url = "https://src.fedoraproject.org/rpms/libserf/raw/rawhide/f/libserf-1.3.9-errgetfunc.patch";
33 hash = "sha256-FQJvXOIZ0iItvbbcu4kR88j74M7fOi7C/0NN3o1/ub4=";
34 })
35 ];
36
37 prefixKey = "PREFIX=";
38
39 preConfigure = ''
40 sconsFlags+=" APR=$(echo ${apr.dev}/bin/*-config)"
41 sconsFlags+=" APU=$(echo ${aprutil.dev}/bin/*-config)"
42 sconsFlags+=" CC=$CC"
43 sconsFlags+=" OPENSSL=${openssl}"
44 sconsFlags+=" ZLIB=${zlib}"
45 '' + lib.optionalString (!stdenv.isCygwin) ''
46 sconsFlags+=" GSSAPI=${libkrb5.dev}"
47 '';
48
49 enableParallelBuilding = true;
50
51 meta = with lib; {
52 description = "HTTP client library based on APR";
53 homepage = "https://serf.apache.org/";
54 license = licenses.asl20;
55 maintainers = with maintainers; [ orivej raskin ];
56 platforms = platforms.linux ++ platforms.darwin;
57 };
58}