1{ stdenv
2, lib
3, buildPythonPackage
4, fetchFromGitHub
5, six
6, enum34
7, decorator
8, nose
9, krb5Full
10, darwin
11, isPy27
12, parameterized
13, shouldbe
14, cython
15, python
16, k5test
17, isPy38
18}:
19
20buildPythonPackage rec {
21 pname = "gssapi";
22 version = "1.6.1";
23
24 src = fetchFromGitHub {
25 owner = "pythongssapi";
26 repo = "python-${pname}";
27 rev = "v${version}";
28 sha256 = "0n13vb3v50vr04vrnql2w00gri0gcf08i0pr0q2p4w8scbsw7kjk";
29 };
30
31 # It's used to locate headers
32 postPatch = ''
33 substituteInPlace setup.py \
34 --replace "get_output('krb5-config gssapi --prefix')" "'${lib.getDev krb5Full}'"
35 '';
36
37 nativeBuildInputs = [
38 cython
39 krb5Full
40 ];
41
42 propagatedBuildInputs = [
43 decorator
44 six
45 ] ++ lib.optional isPy27 enum34;
46
47 buildInputs = lib.optionals stdenv.isDarwin [
48 darwin.apple_sdk.frameworks.GSS
49 ];
50
51 checkInputs = [
52 k5test
53 nose
54 parameterized
55 shouldbe
56 six
57 ];
58
59 doCheck = !stdenv.isDarwin; # many failures on darwin
60
61 checkPhase = ''
62 export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
63 ${python.interpreter} setup.py nosetests
64 '';
65
66 meta = with lib; {
67 homepage = https://pypi.python.org/pypi/gssapi;
68 description = "Python GSSAPI Wrapper";
69 license = licenses.mit;
70 broken = isPy38;
71 };
72}