about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/pysvn/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysvn/default.nix64
1 files changed, 44 insertions, 20 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/pysvn/default.nix b/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
index d46d3cfc5006..0fca57cb2923 100644
--- a/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
@@ -1,43 +1,69 @@
 { stdenv
+, lib
 , buildPythonPackage
 , fetchurl
-, pkgs
 , isPy3k
 , python
+, apr
+, aprutil
+, bash
+, e2fsprogs
+, expat
+, gcc
+, glibcLocales
+, neon
+, openssl
+, pycxx
+, subversion
 }:
 
 buildPythonPackage rec {
   pname = "pysvn";
-  version = "1.8.0";
-  disabled = isPy3k;
+  version = "1.9.12";
   format = "other";
 
   src = fetchurl {
     url = "http://pysvn.barrys-emacs.org/source_kits/${pname}-${version}.tar.gz";
-    sha256 = "0srjr2qgxfs69p65d9vvdib2lc142x10w8afbbdrqs7dhi46yn9r";
+    sha256 = "sRPa4wNyjDmGdF1gTOgLS0pnrdyZwkkH4/9UCdh/R9Q=";
   };
 
-  buildInputs = [ pkgs.subversion pkgs.apr pkgs.aprutil pkgs.expat pkgs.neon pkgs.openssl ]
-    ++ (if stdenv.isLinux then [pkgs.e2fsprogs] else []);
+  buildInputs = [ bash subversion apr aprutil expat neon openssl ]
+    ++ lib.optionals stdenv.isLinux [ e2fsprogs ]
+    ++ lib.optionals stdenv.isDarwin [ gcc ];
 
-  # There seems to be no way to pass that path to configure.
-  NIX_CFLAGS_COMPILE="-I${pkgs.aprutil.dev}/include/apr-1";
+  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=${pkgs.apr.dev}/include \
-      --apu-inc-dir=${pkgs.aprutil.dev}/include \
-      --apr-lib-dir=${pkgs.apr.out}/lib \
-      --svn-lib-dir=${pkgs.subversion.out}/lib \
-      --svn-bin-dir=${pkgs.subversion.out}/bin \
-      --svn-root-dir=${pkgs.subversion.dev}
-  '' + (if !stdenv.isDarwin then "" else ''
+      --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
   '');
 
-  checkPhase = "make -C ../Tests";
+  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
+
+    ${python.interpreter} -c "import pysvn"
+
+    runHook postCheck
+  '';
 
   installPhase = ''
     dest=$(toPythonPath $out)/pysvn
@@ -45,15 +71,13 @@ buildPythonPackage rec {
     cp pysvn/__init__.py $dest/
     cp pysvn/_pysvn*.so $dest/
     mkdir -p $out/share/doc
-    mv -v ../Docs $out/share/doc/pysvn-1.7.2
-    rm -v $out/share/doc/pysvn-1.7.2/generate_cpp_docs_from_html_docs.py
+    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;
-    broken = true;
   };
-
 }