mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-23 15:33:13 +00:00
goldwarden: package GUI, drop pinentry
The correct way is to use goldwarden through the programs.goldwarden module and the correct pinentry flavor based on programs.gnupg.agent.pinentryFlavor is now used.
This commit is contained in:
parent
3b2d1bebd6
commit
32adfce17c
@ -1,11 +1,14 @@
|
||||
{ lib
|
||||
, bash
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, makeBinaryWrapper
|
||||
, gobject-introspection
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, libfido2
|
||||
, dbus
|
||||
, pinentry-gnome3
|
||||
, nix-update-script
|
||||
, libnotify
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
@ -19,25 +22,64 @@ buildGoModule rec {
|
||||
hash = "sha256-4KxPtsIEW46p+cFx6yeSdNlsffy9U31k+ZSkE6V0AFc=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace browserbiometrics/manifests.go \
|
||||
--replace-fail "/bin/bash" "${lib.getExe bash}"
|
||||
substituteInPlace gui/com.quexten.Goldwarden.desktop \
|
||||
--replace-fail "Exec=goldwarden_ui_main.py" "Exec=$out/bin/goldwarden-gui"
|
||||
substituteInPlace gui/src/gui/browserbiometrics.py \
|
||||
--replace-fail "flatpak run --filesystem=home --command=goldwarden com.quexten.Goldwarden" "goldwarden"
|
||||
substituteInPlace gui/src/gui/ssh.py \
|
||||
--replace-fail "flatpak run --command=goldwarden com.quexten.Goldwarden" "goldwarden" \
|
||||
--replace-fail 'SSH_AUTH_SOCK=/home/$USER/.var/app/com.quexten.Goldwarden/data/ssh-auth-sock' 'SSH_AUTH_SOCK=/home/$USER/.goldwarden-ssh-agent.sock'
|
||||
substituteInPlace gui/src/{linux/main.py,linux/monitors/dbus_monitor.py,gui/settings.py} \
|
||||
--replace-fail "python3" "${(python3.buildEnv.override { extraLibs = pythonPath; }).interpreter}"
|
||||
'';
|
||||
|
||||
vendorHash = "sha256-IH0p7t1qInA9rNYv6ekxDN/BT5Kguhh4cZfmL+iqwVU=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
nativeBuildInputs = [makeBinaryWrapper];
|
||||
nativeBuildInputs = [
|
||||
gobject-introspection
|
||||
python3.pkgs.wrapPython
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [libfido2];
|
||||
buildInputs = [
|
||||
gtk4
|
||||
libadwaita
|
||||
libfido2
|
||||
libnotify
|
||||
];
|
||||
|
||||
pythonPath = with python3.pkgs; [
|
||||
dbus-python
|
||||
pygobject3
|
||||
tendo
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/goldwarden \
|
||||
--suffix PATH : ${lib.makeBinPath [dbus pinentry-gnome3]}
|
||||
chmod +x gui/goldwarden_ui_main.py
|
||||
ln -s $out/share/goldwarden/goldwarden_ui_main.py $out/bin/goldwarden-gui
|
||||
mkdir -p $out/share/goldwarden
|
||||
cp -r gui/* $out/share/goldwarden/
|
||||
rm $out/share/goldwarden/{com.quexten.Goldwarden.desktop,com.quexten.Goldwarden.metainfo.xml,goldwarden.svg,python3-requirements.json,requirements.txt}
|
||||
|
||||
install -Dm644 $src/resources/com.quexten.goldwarden.policy -t $out/share/polkit-1/actions
|
||||
install -D gui/com.quexten.Goldwarden.desktop -t $out/share/applications
|
||||
install -D gui/goldwarden.svg -t $out/share/icons/hicolor/scalable/apps
|
||||
install -Dm644 gui/com.quexten.Goldwarden.metainfo.xml -t $out/share/metainfo
|
||||
install -Dm644 resources/com.quexten.goldwarden.policy -t $out/share/polkit-1/actions
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script {};
|
||||
dontWrapGApps = true;
|
||||
postFixup = ''
|
||||
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
wrapPythonProgramsIn $out/share/goldwarden "$out/share/goldwarden $pythonPath"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A feature-packed Bitwarden compatible desktop integration";
|
||||
description = "Feature-packed Bitwarden compatible desktop integration";
|
||||
homepage = "https://github.com/quexten/goldwarden";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ arthsmn ];
|
||||
|
Loading…
Reference in New Issue
Block a user