gaphor: 3.0.0 → 3.1.0; overhaul derivation builder (#418335)

This commit is contained in:
Aleksana 2025-06-25 23:23:41 +08:00 committed by GitHub
commit 409a0cae52
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 107 additions and 114 deletions

View File

@ -0,0 +1,107 @@
{
lib,
fetchFromGitHub,
glib,
gobject-introspection,
wrapGAppsHook4,
gtksourceview5,
libadwaita,
python3Packages,
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "gaphor";
version = "3.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "gaphor";
repo = "gaphor";
tag = version;
hash = "sha256-0xivimpYM1gwOO2QrovYiJPNUfuGclr+F/WyHLNl+jw=";
};
pythonRelaxDeps = [
"pydot"
"pygobject"
];
nativeBuildInputs = [
glib
gobject-introspection
wrapGAppsHook4
];
buildInputs = [
gtksourceview5
libadwaita
];
build-system = [ python3Packages.poetry-core ];
dependencies = with python3Packages; [
babel
better-exceptions
defusedxml
dulwich
gaphas
generic
jedi
pillow
pycairo
pydot
pygobject3
tinycss2
];
postInstall = ''
install -Dm644 data/org.gaphor.Gaphor.appdata.xml -t $out/share/metainfo/
install -Dm644 data/org.gaphor.Gaphor.desktop -t $out/share/applications/
install -Dm644 data/org.gaphor.Gaphor.xml -t $out/share/mime/packages/
install -Dm644 data/logos/org.gaphor.Gaphor.svg -t $out/share/icons/hicolor/scalable/apps/
install -Dm644 data/logos/org.gaphor.Gaphor-symbolic.svg -t $out/share/icons/hicolor/symbolic/apps/
install -Dm644 data/logos/gaphor-24x24.png $out/share/icons/hicolor/24x24/apps/org.gaphor.Gaphor.png
install -Dm644 data/logos/gaphor-48x48.png $out/share/icons/hicolor/48x48/apps/org.gaphor.Gaphor.png
install -Dm644 gaphor/ui/installschemas/org.gaphor.Gaphor.gschema.xml -t $out/share/glib-2.0/schemas/
glib-compile-schemas $out/share/glib-2.0/schemas/
install -Dm644 data/org.gaphor.Gaphor.service -t $out/share/dbus-1/services/
substituteInPlace $out/share/dbus-1/services/org.gaphor.Gaphor.service \
--replace-fail "Exec=/usr/bin/gaphor" "Exec=$out/bin/gaphor"
'';
# Prevent double wrapping
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "UML and SysML modeling tool";
longDescription = ''
Gaphor is a UML, SysML, RAAML, and C4 modeling application. It
is designed to be easy to use, while still being powerful.
Gaphor implements a fully-compliant UML 2 data model, so it is
much more than a picture drawing tool. You can use Gaphor to
quickly visualize different aspects of a system as well as
create complete, highly complex models.
Gaphor provides four modeling languages: UML, SysML, RAAML and C4 and
makes them accessible to beginners.
'';
homepage = "https://gaphor.org/";
changelog = "https://github.com/gaphor/gaphor/releases/tag/${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ normalcea ];
teams = [ lib.teams.gnome-circle ];
mainProgram = "gaphor";
platforms = lib.platforms.linux;
};
}

View File

@ -1,112 +0,0 @@
{
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,
nix-update-script,
}:
buildPythonApplication rec {
pname = "gaphor";
version = "3.0.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-I5n0XeZLQw4qje6gwh2aMu5Zo5tuXgESHhkR0xegaYM=";
};
pythonRelaxDeps = [
"defusedxml"
"gaphas"
];
nativeBuildInputs = [
copyDesktopItems
gobject-introspection
wrapGAppsHook4
];
buildInputs = [
gtksourceview5
pango
libadwaita
];
build-system = [ poetry-core ];
dependencies = [
babel
better-exceptions
defusedxml
dulwich
gaphas
generic
jedi
pillow
pycairo
pydot
pygobject3
tinycss2
];
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"
)
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Simple modeling tool written in Python";
homepage = "https://github.com/gaphor/gaphor";
changelog = "https://github.com/gaphor/gaphor/releases/tag/${version}";
license = lib.licenses.asl20;
teams = [ lib.teams.gnome-circle ];
platforms = lib.platforms.linux;
};
}

View File

@ -3021,8 +3021,6 @@ with pkgs;
gandi-cli = python3Packages.callPackage ../tools/networking/gandi-cli { };
gaphor = python3Packages.callPackage ../tools/misc/gaphor { };
inherit (callPackages ../tools/filesystems/garage { })
garage
garage_0_8