diff --git a/pkgs/by-name/gd/gdm-settings/package.nix b/pkgs/by-name/gd/gdm-settings/package.nix new file mode 100644 index 000000000000..ab34a2eefb13 --- /dev/null +++ b/pkgs/by-name/gd/gdm-settings/package.nix @@ -0,0 +1,68 @@ +{ + lib, + fetchFromGitHub, + python3Packages, + appstream, + blueprint-compiler, + desktop-file-utils, + glib, + gnome, + libadwaita, + meson, + ninja, + pkg-config, + wrapGAppsHook4, + # gdm-settings needs to know where to look for themes + # This should work for most systems, but can be overridden if not + dataDirs ? lib.concatStringsSep ":" [ + "/run/current-system/sw/share" + "/usr/local/share" + "/usr/share" + ], +}: + +python3Packages.buildPythonApplication rec { + pname = "gdm-settings"; + version = "4.4"; + pyproject = false; + + src = fetchFromGitHub { + owner = "gdm-settings"; + repo = "gdm-settings"; + rev = "refs/tags/v${version}"; + hash = "sha256-3Te8bhv2TkpJFz4llm1itRhzg9v64M7Drtrm4s9EyiQ="; + }; + + nativeBuildInputs = [ + appstream # for appstream file validation + blueprint-compiler + desktop-file-utils # for desktop file validation + glib # for `glib-compile-schemas` + meson + ninja + pkg-config + wrapGAppsHook4 + ]; + + buildInputs = [ libadwaita ]; + + dependencies = [ python3Packages.pygobject3 ]; + + dontWrapGApps = true; + makeWrapperArgs = [ + "\${gappsWrapperArgs[@]}" + "--set-default HOST_DATA_DIRS ${dataDirs}" + ]; + + pythonImportsCheck = [ "gdms" ]; + + meta = { + description = "Settings app for GNOME's Login Manager"; + homepage = "https://gdm-settings.github.io/"; + changelog = "https://github.com/gdm-settings/gdm-settings/releases/tag/v${version}"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ getchoo ]; + mainProgram = "gdm-settings"; + inherit (gnome.gdm.meta) platforms; + }; +}