From 919bcb417c9ff2e644b25864b91eabe07876de68 Mon Sep 17 00:00:00 2001 From: aleksana Date: Wed, 19 Nov 2025 22:43:09 +0800 Subject: [PATCH] gnome-secrets: 10.4 -> 12.0 --- pkgs/by-name/gn/gnome-secrets/package.nix | 56 +++++++++++++++++------ 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/gn/gnome-secrets/package.nix b/pkgs/by-name/gn/gnome-secrets/package.nix index 97f30f26bc83..31406b14275b 100644 --- a/pkgs/by-name/gn/gnome-secrets/package.nix +++ b/pkgs/by-name/gn/gnome-secrets/package.nix @@ -7,29 +7,40 @@ fetchFromGitLab, python3Packages, wrapGAppsHook4, + opensc, gtk4, glib, gdk-pixbuf, gobject-introspection, desktop-file-utils, + shared-mime-info, appstream-glib, libadwaita, + gtksourceview5, + xvfb-run, nix-update-script, }: python3Packages.buildPythonApplication rec { pname = "gnome-secrets"; - version = "10.4"; - format = "other"; + version = "12.0"; + pyproject = false; src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "World"; repo = "secrets"; - rev = version; - hash = "sha256-FyBtw7Gkvd5XONkM7OVGxE+S5FpuUIl7KWLFHoQeoN4="; + tag = version; + hash = "sha256-U+ez/rhaXROcLdXhFY992YzIRBCkR05hxkAYbWIpa/A="; }; + postPatch = '' + substituteInPlace gsecrets/meson.build \ + --replace-fail \ + "join_paths(get_option('prefix'), get_option('libdir'), 'opensc-pkcs11.so')" \ + "'${lib.getLib opensc}/lib/opensc-pkcs11.so'" + ''; + nativeBuildInputs = [ meson ninja @@ -37,6 +48,7 @@ python3Packages.buildPythonApplication rec { pkg-config wrapGAppsHook4 desktop-file-utils + shared-mime-info appstream-glib gobject-introspection ]; @@ -46,11 +58,13 @@ python3Packages.buildPythonApplication rec { glib gdk-pixbuf libadwaita + gtksourceview5 ]; - propagatedBuildInputs = with python3Packages; [ + dependencies = with python3Packages; [ pygobject3 construct + pyhibp pykcs11 pykeepass pyotp @@ -59,24 +73,40 @@ python3Packages.buildPythonApplication rec { zxcvbn-rs-py ]; + doCheck = true; + + nativeCheckInputs = [ + python3Packages.pytest + xvfb-run + ]; + + checkPhase = '' + runHook preCheck + env \ + GTK_A11Y=none \ + PYTHONPATH="$out/${python3Packages.python.sitePackages}:$PYTHONPATH" \ + XDG_DATA_DIRS="$out/share/gsettings-schemas/$name:$XDG_DATA_DIRS" \ + xvfb-run meson test --print-errorlogs + runHook postCheck + ''; + # Prevent double wrapping, let the Python wrapper use the args in preFixup. dontWrapGApps = true; - preFixup = '' - makeWrapperArgs+=("''${gappsWrapperArgs[@]}") - ''; + makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ]; passthru = { updateScript = nix-update-script { }; }; - meta = with lib; { + meta = { description = "Password manager for GNOME which makes use of the KeePass v.4 format"; homepage = "https://gitlab.gnome.org/World/secrets"; - license = licenses.gpl3Only; - platforms = platforms.linux; - maintainers = with maintainers; [ mvnetbiz ]; - teams = [ teams.gnome-circle ]; + changelog = "https://gitlab.gnome.org/World/secrets/-/releases/${version}"; + license = lib.licenses.gpl3Only; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ mvnetbiz ]; + teams = [ lib.teams.gnome-circle ]; mainProgram = "secrets"; }; }