1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5
6 # build-system
7 setuptools,
8
9 # dependencies
10 anyascii,
11 beautifulsoup4,
12 django,
13 django-filter,
14 django-modelcluster,
15 django-taggit,
16 django-tasks,
17 django-treebeard,
18 djangorestframework,
19 draftjs-exporter,
20 laces,
21 openpyxl,
22 permissionedforms,
23 pillow,
24 requests,
25 telepath,
26 willow,
27
28 # tests
29 callPackage,
30}:
31
32buildPythonPackage rec {
33 pname = "wagtail";
34 version = "7.1.1";
35 pyproject = true;
36
37 # The GitHub source requires some assets to be compiled, which in turn
38 # requires fixing the upstream package lock. We need to use the PyPI release
39 # until https://github.com/wagtail/wagtail/pull/13136 gets merged.
40 src = fetchPypi {
41 inherit pname version;
42 hash = "sha256-e90eWww0VDeYXAHwp/YKYX5114jzfH2DlVj05qElGvk=";
43 };
44
45 build-system = [
46 setuptools
47 ];
48
49 pythonRelaxDeps = [ "django-tasks" ];
50
51 dependencies = [
52 anyascii
53 beautifulsoup4
54 django
55 django-filter
56 django-modelcluster
57 django-taggit
58 django-tasks
59 django-treebeard
60 djangorestframework
61 draftjs-exporter
62 laces
63 openpyxl
64 permissionedforms
65 pillow
66 requests
67 telepath
68 willow
69 ]
70 ++ willow.optional-dependencies.heif;
71
72 # Tests are in separate derivation because they require a package that depends
73 # on wagtail (wagtail-factories)
74 doCheck = false;
75
76 passthru.tests.wagtail = callPackage ./tests.nix { };
77
78 pythonImportsCheck = [ "wagtail" ];
79
80 meta = {
81 description = "Django content management system focused on flexibility and user experience";
82 mainProgram = "wagtail";
83 homepage = "https://github.com/wagtail/wagtail";
84 changelog = "https://github.com/wagtail/wagtail/blob/v${version}/CHANGELOG.txt";
85 license = lib.licenses.bsd3;
86 maintainers = with lib.maintainers; [ sephi ];
87 };
88}