about summary refs log tree commit diff
path: root/pkgs/tools/admin/cdist
diff options
context:
space:
mode:
authorDmitry Bogatov <serenity@kaction.cc>2023-01-01 07:05:18 -0500
committerYt <happysalada@proton.me>2023-03-05 16:15:04 -0500
commit2fd55ed4c9d910c6b12e727e7b39cfea77269c55 (patch)
treeb46646c4d588e521705b754a9c400fd867e5e6d5 /pkgs/tools/admin/cdist
parent43441b9e7f9f9de2fa6372936a89c1ef79629858 (diff)
cdist: init at 7.0.0
Diffstat (limited to 'pkgs/tools/admin/cdist')
-rw-r--r--pkgs/tools/admin/cdist/default.nix64
1 files changed, 64 insertions, 0 deletions
diff --git a/pkgs/tools/admin/cdist/default.nix b/pkgs/tools/admin/cdist/default.nix
new file mode 100644
index 0000000000000..115800fcf2c5c
--- /dev/null
+++ b/pkgs/tools/admin/cdist/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitea
+, pythonImportsCheckHook
+, sphinxHook
+, sphinx-rtd-theme
+}:
+
+buildPythonApplication rec {
+  pname = "cdist";
+  version = "7.0.0";
+  outputs = [ "out" "man" "doc" ];
+
+  src = fetchFromGitea {
+    domain = "code.ungleich.ch";
+    owner = "ungleich-public";
+    repo = "cdist";
+    rev = version;
+    hash = "sha256-lIx0RtGQJdY2e00azI9yS6TV+5pCegpKOOD0dQmgMqA=";
+  };
+
+  nativeBuildInputs = [
+    pythonImportsCheckHook
+    sphinxHook
+    sphinx-rtd-theme
+  ];
+
+  sphinxRoot = "docs/src";
+
+  # "make man" creates symlinks in docs/src needed by sphinxHook.
+  postPatch = ''
+    echo "VERSION = '$version'" > cdist/version.py
+
+    make man
+  '';
+
+  preConfigure = ''
+    export HOME=/tmp
+  '';
+
+  # Test suite requires either non-chrooted environment or root.
+  #
+  # When "machine_type" explorer figures out that it is running inside
+  # chroot, it assumes that it has enough privileges to escape it.
+  doCheck = false;
+
+  pythonImportsCheck = [ "cdist" ];
+
+  postInstall = ''
+    mkdir -p $out/share
+    mv docs/dist/man $out/share
+  '';
+
+  meta = with lib; {
+    description = "Minimalistic configuration management system";
+    homepage = "https://www.sdi.st";
+    changelog = "https://code.ungleich.ch/ungleich-public/cdist/src/tag/${version}/docs/changelog";
+
+    # Mostly. There are still couple types that are gpl3-only.
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ kaction ];
+    platforms = platforms.unix;
+  };
+}