1{ lib, stdenv
2, fetchurl
3, python3
4, pkg-config
5, cmocka
6, readline
7, talloc
8, libxslt
9, docbook-xsl-nons
10, docbook_xml_dtd_42
11, which
12, wafHook
13, libxcrypt
14}:
15
16stdenv.mkDerivation rec {
17 pname = "tevent";
18 version = "0.15.0";
19
20 src = fetchurl {
21 url = "mirror://samba/tevent/${pname}-${version}.tar.gz";
22 sha256 = "sha256-ZiqfJ3KBvPUGtrwKC6oD5EpiIpUW7jS8xwOguCqkaQU=";
23 };
24
25 nativeBuildInputs = [
26 pkg-config
27 which
28 python3
29 libxslt
30 docbook-xsl-nons
31 docbook_xml_dtd_42
32 wafHook
33 ];
34
35 buildInputs = [
36 python3
37 cmocka
38 readline # required to build python
39 talloc
40 libxcrypt
41 ];
42
43 # otherwise the configure script fails with
44 # PYTHONHASHSEED=1 missing! Don't use waf directly, use ./configure and make!
45 preConfigure = ''
46 export PKGCONFIG="$PKG_CONFIG"
47 export PYTHONHASHSEED=1
48 '';
49
50 wafPath = "buildtools/bin/waf";
51
52 wafConfigureFlags = [
53 "--bundled-libraries=NONE"
54 "--builtin-libraries=replace"
55 ];
56
57 # python-config from build Python gives incorrect values when cross-compiling.
58 # If python-config is not found, the build falls back to using the sysconfig
59 # module, which works correctly in all cases.
60 PYTHON_CONFIG = "/invalid";
61
62 meta = with lib; {
63 description = "An event system based on the talloc memory management library";
64 homepage = "https://tevent.samba.org/";
65 license = licenses.lgpl3Plus;
66 platforms = platforms.all;
67 };
68}