1{
2 stdenv,
3 lib,
4 buildPythonPackage,
5 pythonOlder,
6 fetchFromGitHub,
7
8 # build-system
9 cython,
10 krb5,
11 setuptools,
12
13 # dependencies
14 decorator,
15
16 # native dependencies
17 GSS,
18
19 # tests
20 parameterized,
21 k5test,
22 pytestCheckHook,
23}:
24
25buildPythonPackage rec {
26 pname = "gssapi";
27 version = "1.8.3";
28 pyproject = true;
29
30 disabled = pythonOlder "3.6";
31
32 src = fetchFromGitHub {
33 owner = "pythongssapi";
34 repo = "python-${pname}";
35 rev = "refs/tags/v${version}";
36 hash = "sha256-H1JfdvxJvX5dmC9aTqIOkjAqFEL44KoUXEhoYj2uRY8=";
37 };
38
39 postPatch = ''
40 substituteInPlace setup.py \
41 --replace 'get_output(f"{kc} gssapi --prefix")' '"${lib.getDev krb5}"'
42 '';
43
44 env = lib.optionalAttrs (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) {
45 GSSAPI_SUPPORT_DETECT = "false";
46 };
47
48 build-system = [
49 cython
50 krb5
51 setuptools
52 ];
53
54 dependencies = [ decorator ];
55
56 buildInputs = lib.optionals stdenv.isDarwin [ GSS ];
57
58 nativeCheckInputs = [
59 k5test
60 parameterized
61 pytestCheckHook
62 ];
63
64 preCheck = ''
65 mv gssapi/tests $TMPDIR/
66 pushd $TMPDIR
67 '';
68
69 postCheck = ''
70 popd
71 '';
72
73 pythonImportsCheck = [ "gssapi" ];
74
75 meta = with lib; {
76 homepage = "https://pypi.python.org/pypi/gssapi";
77 description = "Python GSSAPI Wrapper";
78 license = licenses.mit;
79 };
80}