python3Packages.Nikola: fix build

This commit is contained in:
Fabian Affolter 2021-05-16 16:02:02 +02:00 committed by Jonathan Ringer
parent 195ee1e14b
commit ba2cac52bd

View file

@ -1,79 +1,112 @@
{ lib
, stdenv
, aiohttp
, Babel
, blinker
, buildPythonPackage
, isPy3k
, fetchPypi
, doit
, glibcLocales
, pytest
, pytestcov
, mock
, pygments
, pillow
, dateutil
, docutils
, Mako
, unidecode
, lxml
, Yapsy
, PyRSS2Gen
, Logbook
, blinker
, natsort
, requests
, piexif
, markdown
, phpserialize
, jinja2
, Babel
, doit
, fetchPypi
, freezegun
, toml
, ghp-import
, hsluv
, html5lib
, ipykernel
, jinja2
, lxml
, Mako
, markdown
, micawber
, mock
, natsort
, notebook
, phpserialize
, piexif
, pillow
, pygal
, pygments
, pyphen
, PyRSS2Gen
, pytestCheckHook
, pythonOlder
, requests
, ruamel_yaml
, aiohttp
, stdenv
, toml
, typogrify
, unidecode
, watchdog
, Yapsy
}:
buildPythonPackage rec {
pname = "Nikola";
version = "8.1.3";
# Nix contains only Python 3 supported version of doit, which is a dependency
# of Nikola. Python 2 support would require older doit 0.29.0 (which on the
# other hand doesn't support Python 3.3). So, just disable Python 2.
disabled = !isPy3k;
checkInputs = [ pytest pytestcov mock glibcLocales freezegun ];
propagatedBuildInputs = [
# requirements.txt
doit pygments pillow dateutil docutils Mako markdown unidecode
lxml Yapsy PyRSS2Gen Logbook blinker natsort requests piexif Babel
# requirements-extras.txt
phpserialize jinja2 toml notebook ruamel_yaml aiohttp watchdog
];
disabled = pythonOlder "3.5";
src = fetchPypi {
inherit pname version;
sha256 = "05eac356bb4273cdd05d2dd6ad676226133496c457af91987c3f0d40e2fe57ef";
};
patchPhase = ''
# upstream added bound so that requires.io doesn't send mails about update
# nikola should work with markdown 3.0: https://github.com/getnikola/nikola/pull/3175#issue-220147596
sed -i 's/Markdown>.*/Markdown/' requirements.txt
propagatedBuildInputs = [
aiohttp
Babel
blinker
dateutil
docutils
doit
ghp-import
hsluv
html5lib
ipykernel
jinja2
lxml
Mako
markdown
micawber
natsort
notebook
phpserialize
piexif
pillow
pygal
pygments
pyphen
PyRSS2Gen
requests
ruamel_yaml
toml
typogrify
unidecode
watchdog
Yapsy
];
checkInputs = [
freezegun
mock
pytestCheckHook
];
postPatch = ''
substituteInPlace setup.cfg \
--replace "--cov nikola --cov-report term-missing" ""
'';
checkPhase = ''
LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" py.test .
'';
disabledTests = [
# AssertionError
"test_compiling_markdown"
];
meta = {
pythonImportsCheck = [ "nikola" ];
meta = with lib; {
description = "Static website and blog generator";
homepage = "https://getnikola.com/";
description = "A modular, fast, simple, static website and blog generator";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jluttine ];
# all tests fail
license = licenses.mit;
maintainers = with maintainers; [ jluttine ];
# All tests fail
broken = stdenv.isDarwin;
};
}