1{ lib
2, stdenv
3, buildPythonPackage
4, fetchFromGitHub
5, pythonOlder
6
7# build-system
8, setuptools
9
10# native dependencies
11, openldap
12, cyrus_sasl
13
14# dependencies
15, pyasn1
16, pyasn1-modules
17
18# tests
19, pytestCheckHook
20}:
21
22buildPythonPackage rec {
23 pname = "python-ldap";
24 version = "3.4.4";
25 pyproject = true;
26
27 disabled = pythonOlder "3.6";
28
29 src = fetchFromGitHub {
30 owner = "python-ldap";
31 repo = "python-ldap";
32 rev = "refs/tags/python-ldap-${version}";
33 hash = "sha256-v1cWoRGxbvvFnHqnwoIfmiQQcxfaA8Bf3+M5bE5PtuU=";
34 };
35
36 nativeBuildInputs = [
37 setuptools
38 ];
39
40 buildInputs = [
41 openldap
42 cyrus_sasl
43 ];
44
45 propagatedBuildInputs = [
46 pyasn1
47 pyasn1-modules
48 ];
49
50 nativeCheckInputs = [
51 pytestCheckHook
52 ];
53
54 preCheck = ''
55 # Needed by tests to setup a mockup ldap server.
56 export BIN="${openldap}/bin"
57 export SBIN="${openldap}/bin"
58 export SLAPD="${openldap}/libexec/slapd"
59 export SCHEMA="${openldap}/etc/schema"
60 '';
61
62 disabledTests = [
63 # https://github.com/python-ldap/python-ldap/issues/501
64 "test_tls_ext_noca"
65 ];
66
67 doCheck = !stdenv.isDarwin;
68
69 meta = with lib; {
70 changelog = "https://github.com/python-ldap/python-ldap/releases/tag/python-ldap-${version}";
71 description = "Python modules for implementing LDAP clients";
72 downloadPage = "https://github.com/python-ldap/python-ldap";
73 homepage = "https://www.python-ldap.org/";
74 license = licenses.psfl;
75 };
76}