1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
{ stdenv
, lib
, buildPythonPackage
, fetchurl
, isPy3k
, python
, apr
, aprutil
, bash
, e2fsprogs
, expat
, gcc
, glibcLocales
, neon
, openssl
, pycxx
, subversion
}:
buildPythonPackage rec {
pname = "pysvn";
version = "1.9.12";
format = "other";
src = fetchurl {
url = "http://pysvn.barrys-emacs.org/source_kits/${pname}-${version}.tar.gz";
sha256 = "sRPa4wNyjDmGdF1gTOgLS0pnrdyZwkkH4/9UCdh/R9Q=";
};
buildInputs = [ bash subversion apr aprutil expat neon openssl ]
++ lib.optionals stdenv.isLinux [ e2fsprogs ]
++ lib.optionals stdenv.isDarwin [ gcc ];
postPatch = ''
sed -i "117s|append(|insert(0, |" Tests/benchmark_diff.py
'';
preConfigure = ''
cd Source
${python.interpreter} setup.py backport
${python.interpreter} setup.py configure \
--apr-inc-dir=${apr.dev}/include \
--apu-inc-dir=${aprutil.dev}/include \
--pycxx-dir=${pycxx.dev}/include \
--svn-inc-dir=${subversion.dev}/include/subversion-1 \
--pycxx-src-dir=${pycxx.dev}/src \
--apr-lib-dir=${apr.out}/lib \
--svn-lib-dir=${subversion.out}/lib \
--svn-bin-dir=${subversion.out}/bin
'' + (lib.optionalString (stdenv.isDarwin && !isPy3k) ''
sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile
'');
checkInputs = [ glibcLocales ];
checkPhase = ''
runHook preCheck
# It is not only shebangs, some tests also write scripts dynamically
# so it is easier to simply search and replace
sed -i "s|/bin/bash|${bash}/bin/bash|" ../Tests/test-*.sh
make -C ../Tests
runHook postCheck
'';
pythonImportCheck = [ "pysvn" ];
installPhase = ''
dest=$(toPythonPath $out)/pysvn
mkdir -p $dest
cp pysvn/__init__.py $dest/
cp pysvn/_pysvn*.so $dest/
mkdir -p $out/share/doc
mv -v ../Docs $out/share/doc/pysvn-${version}
rm -v $out/share/doc/pysvn-${version}/generate_cpp_docs_from_html_docs.py
'';
meta = with stdenv.lib; {
description = "Python bindings for Subversion";
homepage = "http://pysvn.tigris.org/";
license = licenses.asl20;
};
}
|