aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/python-modules/hglib
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/hglib')
-rw-r--r--nixpkgs/pkgs/development/python-modules/hglib/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/hglib/hgpath.patch24
2 files changed, 68 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/hglib/default.nix b/nixpkgs/pkgs/development/python-modules/hglib/default.nix
new file mode 100644
index 00000000000..14e5b4edcd7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hglib/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, substituteAll, python, nose, mercurial }:
+
+buildPythonPackage rec {
+ pname = "python-hglib";
+ version = "2.6.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "7c1fa0cb4d332dd6ec8409b04787ceba4623e97fb378656f7cab0b996c6ca3b2";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./hgpath.patch;
+ hg = "${mercurial}/bin/hg";
+ })
+
+ # These two patches are needed to fix the tests.
+ # They will need to be removed on the next update.
+ (fetchpatch {
+ url = "https://www.mercurial-scm.org/repo/python-hglib/raw-rev/12e6aaef0f6e";
+ sha256 = "159pmhy23gqcc6rkh5jrni8fba4xbhxwcc0jf02wqr7f82kv8a7x";
+ })
+ (fetchpatch {
+ url = "https://www.mercurial-scm.org/repo/python-hglib/raw-rev/1a318162f06f";
+ sha256 = "04lxfc15m3yw5kvp133xg8zv09l8kndi146xk3lnbbm07fgcnn1z";
+ })
+ ];
+
+ checkInputs = [ nose ];
+
+ checkPhase = ''
+ ${python.interpreter} test.py --with-hg "${mercurial}/bin/hg" -v \
+ --exclude=test_merge_prompt_cb # https://bz.mercurial-scm.org/show_bug.cgi?id=6265
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Mercurial Python library";
+ homepage = "http://selenic.com/repo/python-hglib";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dfoxfranke ];
+ platforms = platforms.all;
+ };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hglib/hgpath.patch b/nixpkgs/pkgs/development/python-modules/hglib/hgpath.patch
new file mode 100644
index 00000000000..2141aa32a13
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hglib/hgpath.patch
@@ -0,0 +1,24 @@
+diff -r 2d0ec6097d78 hglib/__init__.py
+--- a/hglib/__init__.py Mon Apr 30 15:43:29 2018 +0900
++++ b/hglib/__init__.py Tue Mar 19 23:30:01 2019 +0100
+@@ -1,7 +1,7 @@
+ import subprocess
+ from hglib import client, util, error
+
+-HGPATH = 'hg'
++HGPATH = '@hg@'
+
+ def open(path=None, encoding=None, configs=None):
+ '''starts a cmdserver for the given path (or for a repository found
+diff -r 2d0ec6097d78 tests/common.py
+--- a/tests/common.py Mon Apr 30 15:43:29 2018 +0900
++++ b/tests/common.py Tue Mar 19 23:30:01 2019 +0100
+@@ -26,7 +26,7 @@
+ os.mkdir(self._testtmp)
+ os.chdir(self._testtmp)
+ # until we can run norepo commands in the cmdserver
+- os.system('hg init')
++ os.system('@hg@ init')
+ self.client = hglib.open()
+
+ def tearDown(self):