{ lib , buildPythonApplication , fetchPypi , copyDesktopItems , gobject-introspection , poetry-core , wrapGAppsHook4 , gtksourceview5 , libadwaita , pango , gaphas , generic , jedi , pycairo , pillow , dulwich , pydot , defusedxml , better-exceptions , babel , pygobject3 , tinycss2 , gtk4 , librsvg , makeDesktopItem , python }: buildPythonApplication rec { pname = "gaphor"; version = "2.26.0"; pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-e0K5bfgPqlJh8qrAz40c/w3ANzkfa/6txuqzQDJYXfE="; }; pythonRelaxDeps = [ "defusedxml" ]; nativeBuildInputs = [ copyDesktopItems gobject-introspection wrapGAppsHook4 ]; buildInputs = [ gtksourceview5 pango libadwaita ]; build-system = [ poetry-core ]; dependencies = [ pycairo pygobject3 gaphas generic tinycss2 babel jedi better-exceptions pydot pillow defusedxml dulwich ]; desktopItems = [ (makeDesktopItem { name = pname; exec = "gaphor"; icon = "gaphor"; comment = meta.description; desktopName = "Gaphor"; }) ]; # Disable automatic wrapGAppsHook4 to prevent double wrapping dontWrapGApps = true; postInstall = '' install -Dm644 $out/${python.sitePackages}/gaphor/ui/icons/hicolor/scalable/apps/org.gaphor.Gaphor.svg $out/share/pixmaps/gaphor.svg ''; preFixup = '' makeWrapperArgs+=( "''${gappsWrapperArgs[@]}" \ --prefix XDG_DATA_DIRS : "${gtk4}/share/gsettings-schemas/${gtk4.name}/" \ --set GDK_PIXBUF_MODULE_FILE "${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ) ''; meta = with lib; { description = "Simple modeling tool written in Python"; maintainers = [ ]; homepage = "https://github.com/gaphor/gaphor"; license = licenses.asl20; platforms = lib.platforms.linux; }; }