about summary refs log tree commit diff
path: root/pkgs/tools/misc/gaphor
diff options
context:
space:
mode:
authorP. R. d. O <d.ol.rod@protonmail.com>2021-11-12 09:24:28 -0600
committerP. R. d. O <d.ol.rod@protonmail.com>2021-11-12 09:24:28 -0600
commit992b117aae76a3f187d78bf2710a8cf611a02e77 (patch)
tree421c347a551dd67dc4fb458d04609b7922b70d87 /pkgs/tools/misc/gaphor
parentc3cd0c0a74c8f684b08ba048e226cc720e903a95 (diff)
gaphor: init at 2.6.5
Diffstat (limited to 'pkgs/tools/misc/gaphor')
-rw-r--r--pkgs/tools/misc/gaphor/default.nix66
1 files changed, 66 insertions, 0 deletions
diff --git a/pkgs/tools/misc/gaphor/default.nix b/pkgs/tools/misc/gaphor/default.nix
new file mode 100644
index 0000000000000..6105b07c34509
--- /dev/null
+++ b/pkgs/tools/misc/gaphor/default.nix
@@ -0,0 +1,66 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, poetry-core
+, gobject-introspection
+, pango
+, gtksourceview4
+, wrapGAppsHook
+, makeDesktopItem
+, copyDesktopItems
+, gaphas
+, generic
+, pycairo
+, pygobject3
+, python
+, tinycss2
+}:
+
+buildPythonApplication rec {
+  pname = "gaphor";
+  version = "2.6.5";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-IFsbWx5lblKsnEibVihM6ZPRoydXC+JM1gdZEUUTKxw=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core copyDesktopItems gobject-introspection wrapGAppsHook
+  ];
+
+  # Setting gobject-introspection on booth nativeBuildInputs and
+  # buildInputs because of #56943. This recognizes pango, avoiding
+  # a "ValueError: Namespace PangoCairo not available".
+  buildInputs = [ gobject-introspection gtksourceview4 pango ];
+
+  propagatedBuildInputs = [
+    gaphas
+    generic
+    pycairo
+    pygobject3
+    tinycss2
+  ];
+
+  desktopItems = makeDesktopItem {
+    name = pname;
+    exec = "gaphor";
+    icon = "gaphor";
+    comment = meta.description;
+    desktopName = "Gaphor";
+  };
+
+  postInstall = ''
+    install -Dm644 $out/${python.sitePackages}/gaphor/ui/icons/hicolor/scalable/apps/org.gaphor.Gaphor.svg $out/share/pixmaps/gaphor.svg
+  '';
+
+  meta = with lib; {
+    description = "Simple modeling tool written in Python";
+    maintainers = with maintainers; [ wolfangaukang ];
+    homepage = "https://github.com/gaphor/gaphor";
+    license = licenses.asl20;
+    platforms = [ "x86_64-linux" ];
+  };
+}