nixpkgs/pkgs/tools/misc/gaphor/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

104 lines
1.9 KiB
Nix
Raw Normal View History

2021-11-12 15:24:28 +00:00
{
lib,
buildPythonApplication,
fetchPypi,
2022-02-25 16:29:16 +00:00
copyDesktopItems,
2021-11-12 15:24:28 +00:00
gobject-introspection,
2022-02-25 16:29:16 +00:00
poetry-core,
2024-08-18 15:03:37 +00:00
wrapGAppsHook4,
gtksourceview5,
libadwaita,
2022-02-25 16:29:16 +00:00
pango,
2021-11-12 15:24:28 +00:00
gaphas,
generic,
2022-02-25 16:29:16 +00:00
jedi,
2021-11-12 15:24:28 +00:00
pycairo,
2024-08-18 15:03:37 +00:00
pillow,
dulwich,
pydot,
defusedxml,
better-exceptions,
babel,
2021-11-12 15:24:28 +00:00
pygobject3,
tinycss2,
2024-08-18 15:03:37 +00:00
gtk4,
2022-02-25 16:29:16 +00:00
librsvg,
makeDesktopItem,
python,
2021-11-12 15:24:28 +00:00
}:
buildPythonApplication rec {
pname = "gaphor";
2024-11-10 19:30:15 +00:00
version = "2.27.0";
2024-08-18 15:03:37 +00:00
pyproject = true;
2021-11-12 15:24:28 +00:00
src = fetchPypi {
inherit pname version;
2024-11-10 19:30:15 +00:00
hash = "sha256-MsbEeOop6Osq2Hn6CkorsXt8/bTY//QHW/uCl0FEUN4=";
2021-11-12 15:24:28 +00:00
};
2024-08-18 15:03:37 +00:00
pythonRelaxDeps = [ "defusedxml" ];
2021-11-12 15:24:28 +00:00
nativeBuildInputs = [
2022-02-25 16:29:16 +00:00
copyDesktopItems
gobject-introspection
2024-08-18 15:03:37 +00:00
wrapGAppsHook4
2021-11-12 15:24:28 +00:00
];
2022-02-25 16:29:16 +00:00
buildInputs = [
2024-08-18 15:03:37 +00:00
gtksourceview5
2022-02-25 16:29:16 +00:00
pango
2024-08-18 15:03:37 +00:00
libadwaita
2022-02-25 16:29:16 +00:00
];
2021-11-12 15:24:28 +00:00
2024-08-18 15:03:37 +00:00
build-system = [ poetry-core ];
dependencies = [
2021-11-12 15:24:28 +00:00
pycairo
pygobject3
2024-08-18 15:03:37 +00:00
gaphas
generic
2021-11-12 15:24:28 +00:00
tinycss2
2024-08-18 15:03:37 +00:00
babel
jedi
better-exceptions
pydot
pillow
defusedxml
dulwich
2021-11-12 15:24:28 +00:00
];
2024-10-01 21:09:23 +00:00
desktopItems = [
(makeDesktopItem {
name = pname;
exec = "gaphor";
icon = "gaphor";
comment = meta.description;
desktopName = "Gaphor";
})
];
2021-11-12 15:24:28 +00:00
2024-08-18 15:03:37 +00:00
# Disable automatic wrapGAppsHook4 to prevent double wrapping
2022-02-25 16:29:16 +00:00
dontWrapGApps = true;
2021-11-12 15:24:28 +00:00
postInstall = ''
install -Dm644 $out/${python.sitePackages}/gaphor/ui/icons/hicolor/scalable/apps/org.gaphor.Gaphor.svg $out/share/pixmaps/gaphor.svg
'';
2022-02-25 16:29:16 +00:00
preFixup = ''
2023-08-21 03:28:04 +00:00
makeWrapperArgs+=(
"''${gappsWrapperArgs[@]}" \
2024-08-18 15:03:37 +00:00
--prefix XDG_DATA_DIRS : "${gtk4}/share/gsettings-schemas/${gtk4.name}/" \
2023-08-21 03:28:04 +00:00
--set GDK_PIXBUF_MODULE_FILE "${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
)
2022-02-25 16:29:16 +00:00
'';
2021-11-12 15:24:28 +00:00
meta = with lib; {
description = "Simple modeling tool written in Python";
maintainers = [ ] ++ lib.teams.gnome-circle.members;
2021-11-12 15:24:28 +00:00
homepage = "https://github.com/gaphor/gaphor";
license = licenses.asl20;
2024-08-18 15:03:37 +00:00
platforms = lib.platforms.linux;
2021-11-12 15:24:28 +00:00
};
}