diff --git a/pkgs/development/python-modules/pypandoc/default.nix b/pkgs/development/python-modules/pypandoc/default.nix index c54e220228abb0..b5acf6c05438e5 100644 --- a/pkgs/development/python-modules/pypandoc/default.nix +++ b/pkgs/development/python-modules/pypandoc/default.nix @@ -1,5 +1,6 @@ -{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch -, pandoc, haskellPackages, texlive }: +{ lib, substituteAll, buildPythonPackage, fetchFromGitHub +, pandoc, texlive +}: buildPythonPackage rec { pname = "pypandoc"; @@ -12,25 +13,18 @@ buildPythonPackage rec { sha256 = "1lpslfns6zxx7b0xr13bzg921lwrj5am8za0b2dviywk6iiib0ld"; }; - # https://github.com/bebraw/pypandoc/pull/204 patches = [ - (fetchpatch { - url = "https://github.com/sternenseemann/pypandoc/commit/e422e277dd667c77dae11fad931dbb6015e9a784.patch"; - sha256 = "11l11kh2a4k0h1g4yvijb60076kzxlkrvda3x6dc1s8fz352bpg3"; + (substituteAll { + src = ./static-pandoc-path.patch; + pandoc = "${lib.getBin pandoc}/bin/pandoc"; }) + ./skip-tests.patch + ./new-pandoc-headings.patch ]; - postPatch = '' - # set pandoc path statically - sed -i '/^__pandoc_path = None$/c__pandoc_path = "${pandoc}/bin/pandoc"' pypandoc/__init__.py - - # Skip test that requires network access - sed -i '/test_basic_conversion_from_http_url/i\\ @unittest.skip\("no network access during checkPhase"\)' tests.py - ''; - - preCheck = '' - export PATH="${haskellPackages.pandoc-citeproc}/bin:${texlive.combined.scheme-small}/bin:$PATH" - ''; + checkInputs = [ + texlive.combined.scheme-small + ]; meta = with lib; { description = "Thin wrapper for pandoc"; diff --git a/pkgs/development/python-modules/pypandoc/new-pandoc-headings.patch b/pkgs/development/python-modules/pypandoc/new-pandoc-headings.patch new file mode 100644 index 00000000000000..6716bf57d1bb8c --- /dev/null +++ b/pkgs/development/python-modules/pypandoc/new-pandoc-headings.patch @@ -0,0 +1,22 @@ +diff --git a/tests.py b/tests.py +index aede281..c400888 100755 +--- a/tests.py ++++ b/tests.py +@@ -295,7 +295,7 @@ class TestPypandoc(unittest.TestCase): + + def test_unicode_input(self): + # make sure that pandoc always returns unicode and does not mishandle it +- expected = u'üäöîôû{0}======{0}{0}'.format(os.linesep) ++ expected = u'# üäöîôû'.format(os.linesep) + written = pypandoc.convert_text(u'

üäöîôû

', 'md', format='html') + self.assertTrue(isinstance(written, unicode_type)) + self.assertEqualExceptForNewlineEnd(expected, written) +@@ -305,7 +305,7 @@ class TestPypandoc(unittest.TestCase): + self.assertTrue(isinstance(written, unicode_type)) + + # Only use german umlauts in th next test, as iso-8859-15 covers that +- expected = u'üäö€{0}===={0}{0}'.format(os.linesep) ++ expected = u'# üäö€'.format(os.linesep) + bytes = u'

üäö€

'.encode("iso-8859-15") + + # Without encoding, this fails as we expect utf-8 per default diff --git a/pkgs/development/python-modules/pypandoc/skip-tests.patch b/pkgs/development/python-modules/pypandoc/skip-tests.patch new file mode 100644 index 00000000000000..d8f7f972177762 --- /dev/null +++ b/pkgs/development/python-modules/pypandoc/skip-tests.patch @@ -0,0 +1,20 @@ +diff --git a/tests.py b/tests.py +index deb50e0..aede281 100755 +--- a/tests.py ++++ b/tests.py +@@ -179,6 +179,7 @@ class TestPypandoc(unittest.TestCase): + received = pypandoc.convert_file(file_url, 'rst') + self.assertEqualExceptForNewlineEnd(expected, received) + ++ @unittest.skip("no network access during checkPhase") + def test_basic_conversion_from_http_url(self): + url = 'https://raw.githubusercontent.com/bebraw/pypandoc/master/README.md' + received = pypandoc.convert_file(url, 'html') +@@ -247,6 +248,7 @@ class TestPypandoc(unittest.TestCase): + + self.assertRaises(RuntimeError, f) + ++ @unittest.skip("pandoc-citeproc has been deprecated") + def test_conversion_with_citeproc_filter(self): + # we just want to get a temp file name, where we can write to + filters = ['pandoc-citeproc'] diff --git a/pkgs/development/python-modules/pypandoc/static-pandoc-path.patch b/pkgs/development/python-modules/pypandoc/static-pandoc-path.patch new file mode 100644 index 00000000000000..bb495e78bea649 --- /dev/null +++ b/pkgs/development/python-modules/pypandoc/static-pandoc-path.patch @@ -0,0 +1,10 @@ +diff --git a/pypandoc/__init__.py b/pypandoc/__init__.py +index 6d5b79b..65437aa 100644 +--- a/pypandoc/__init__.py ++++ b/pypandoc/__init__.py +@@ -582,4 +582,4 @@ def clean_pandocpath_cache(): + + + __version = None +-__pandoc_path = None ++__pandoc_path = "@pandoc@"