depot/third_party/nixpkgs/pkgs/development/python-modules/pysvn/default.nix
Default email 7e47f3658e Project import generated by Copybara.
GitOrigin-RevId: 1925c603f17fc89f4c8f6bf6f631a802ad85d784
2024-09-26 11:04:55 +00:00

92 lines
2.1 KiB
Nix

{
stdenv,
lib,
buildPythonPackage,
fetchurl,
python,
apr,
aprutil,
bash,
e2fsprogs,
expat,
gcc,
neon,
glibcLocales,
openssl,
pycxx,
subversion,
}:
buildPythonPackage rec {
pname = "pysvn";
version = "1.9.22";
format = "other";
src = fetchurl {
url = "mirror://sourceforge/project/pysvn/pysvn/V${version}/pysvn-${version}.tar.gz";
hash = "sha256-KfLg9tuuKpXxJoniD002kDXGCTwOZ9jurCoPrWMRo7g=";
};
patches = [ ./replace-python-first.patch ];
buildInputs =
[
bash
subversion
apr
aprutil
expat
neon
openssl
]
++ lib.optionals stdenv.hostPlatform.isLinux [ e2fsprogs ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ gcc ];
preConfigure = ''
cd Source
${python.pythonOnBuildForHost.interpreter} setup.py backport
${python.pythonOnBuildForHost.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
'';
nativeCheckInputs = [ 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|${lib.getExe bash}|" ../Tests/test-*.sh
make -C ../Tests
runHook postCheck
'';
pythonImportsCheck = [ "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 lib; {
description = "Python bindings for Subversion";
homepage = "https://pysvn.sourceforge.io/";
license = licenses.asl20;
maintainers = with maintainers; [ dotlambda ];
# g++: command not found
broken = stdenv.hostPlatform.isDarwin;
};
}