1{ lib
2, buildPythonPackage
3, isPy3k
4, fetchPypi
5, doit
6, glibcLocales
7, pytest
8, pytestcov
9, mock
10, pygments
11, pillow
12, dateutil
13, docutils
14, Mako
15, unidecode
16, lxml
17, Yapsy
18, PyRSS2Gen
19, Logbook
20, blinker
21, natsort
22, requests
23, piexif
24, markdown
25, phpserialize
26, jinja2
27, Babel
28, freezegun
29, toml
30, notebook
31, ruamel_yaml
32, aiohttp
33, watchdog
34}:
35
36buildPythonPackage rec {
37 pname = "Nikola";
38 version = "8.1.1";
39
40 # Nix contains only Python 3 supported version of doit, which is a dependency
41 # of Nikola. Python 2 support would require older doit 0.29.0 (which on the
42 # other hand doesn't support Python 3.3). So, just disable Python 2.
43 disabled = !isPy3k;
44
45 checkInputs = [ pytest pytestcov mock glibcLocales freezegun ];
46
47 propagatedBuildInputs = [
48 # requirements.txt
49 doit pygments pillow dateutil docutils Mako markdown unidecode
50 lxml Yapsy PyRSS2Gen Logbook blinker natsort requests piexif Babel
51 # requirements-extras.txt
52 phpserialize jinja2 toml notebook ruamel_yaml aiohttp watchdog
53 ];
54
55 src = fetchPypi {
56 inherit pname version;
57 sha256 = "cee35b011667a965eca01b7d36b54649c9434ab004d8556d6563b7d899df61ed";
58 };
59
60 patchPhase = ''
61 # upstream added bound so that requires.io doesn't send mails about update
62 # nikola should work with markdown 3.0: https://github.com/getnikola/nikola/pull/3175#issue-220147596
63 sed -i 's/Markdown>.*/Markdown/' requirements.txt
64 '';
65
66 checkPhase = ''
67 LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" py.test .
68 '';
69
70 meta = {
71 broken = true;
72 homepage = "https://getnikola.com/";
73 description = "A modular, fast, simple, static website and blog generator";
74 license = lib.licenses.mit;
75 maintainers = with lib.maintainers; [ jluttine ];
76 };
77}