From 7c3c66449ddabc5ab0ad951f861e33956306207a Mon Sep 17 00:00:00 2001 From: aleksana Date: Wed, 19 Nov 2025 22:22:44 +0800 Subject: [PATCH 1/2] python3Packages.pyhibp: init at 4.2.0 --- .../python-modules/pyhibp/default.nix | 46 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 48 insertions(+) create mode 100644 pkgs/development/python-modules/pyhibp/default.nix diff --git a/pkgs/development/python-modules/pyhibp/default.nix b/pkgs/development/python-modules/pyhibp/default.nix new file mode 100644 index 000000000000..7b60f7b7d6f0 --- /dev/null +++ b/pkgs/development/python-modules/pyhibp/default.nix @@ -0,0 +1,46 @@ +{ + lib, + buildPythonPackage, + fetchFromGitLab, + setuptools, + requests, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "pyhibp"; + version = "4.2.0"; + pyproject = true; + + src = fetchFromGitLab { + group = "kitsunix"; + owner = "pyHIBP"; + repo = "pyHIBP"; + tag = "v${version}"; + hash = "sha256-2LJA989hpG5X6o+zCTSU0RRd0Z4zd29RAtp/jBW8Clo="; + }; + + build-system = [ setuptools ]; + + dependencies = [ requests ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + disabledTests = [ + # All require internet access + "TestIsPasswordBreached" + "TestSuffixSearch" + "TestGetAllBreaches" + "TestGetSingleBreach" + "TestGetDataClasses" + ]; + + pythonImportsCheck = [ "pyhibp" ]; + + meta = { + description = "Python interface to Troy Hunt's 'Have I Been Pwned?' public API"; + homepage = "https://gitlab.com/kitsunix/pyHIBP/pyHIBP"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ aleksana ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9a06ae263ac5..c1db49cc23db 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13362,6 +13362,8 @@ self: super: with self; { pyhepmc = callPackage ../development/python-modules/pyhepmc { }; + pyhibp = callPackage ../development/python-modules/pyhibp { }; + pyhidra = callPackage ../development/python-modules/pyhidra { }; pyhik = callPackage ../development/python-modules/pyhik { }; From 919bcb417c9ff2e644b25864b91eabe07876de68 Mon Sep 17 00:00:00 2001 From: aleksana Date: Wed, 19 Nov 2025 22:43:09 +0800 Subject: [PATCH 2/2] 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"; }; }