1{ lib
2, buildPythonApplication
3, fetchFromGitea
4, pythonImportsCheckHook
5, six
6, sphinxHook
7, sphinx-rtd-theme
8}:
9
10buildPythonApplication rec {
11 pname = "cdist";
12 version = "7.0.0";
13 outputs = [ "out" "man" "doc" ];
14
15 src = fetchFromGitea {
16 domain = "code.ungleich.ch";
17 owner = "ungleich-public";
18 repo = "cdist";
19 rev = version;
20 hash = "sha256-lIx0RtGQJdY2e00azI9yS6TV+5pCegpKOOD0dQmgMqA=";
21 };
22
23 nativeBuildInputs = [
24 pythonImportsCheckHook
25 six
26 sphinxHook
27 sphinx-rtd-theme
28 ];
29
30 sphinxRoot = "docs/src";
31
32 # "make man" creates symlinks in docs/src needed by sphinxHook.
33 postPatch = ''
34 echo "VERSION = '$version'" > cdist/version.py
35
36 make man
37 '';
38
39 preConfigure = ''
40 export HOME=/tmp
41 '';
42
43 # Test suite requires either non-chrooted environment or root.
44 #
45 # When "machine_type" explorer figures out that it is running inside
46 # chroot, it assumes that it has enough privileges to escape it.
47 doCheck = false;
48
49 pythonImportsCheck = [ "cdist" ];
50
51 postInstall = ''
52 mkdir -p $out/share
53 mv docs/dist/man $out/share
54 '';
55
56 meta = with lib; {
57 description = "Minimalistic configuration management system";
58 homepage = "https://www.sdi.st";
59 changelog = "https://code.ungleich.ch/ungleich-public/cdist/src/tag/${version}/docs/changelog";
60
61 # Mostly. There are still couple types that are gpl3-only.
62 license = licenses.gpl3Plus;
63 maintainers = with maintainers; [ kaction ];
64 platforms = platforms.unix;
65 };
66}