diff options
Diffstat (limited to 'nongnu')
-rw-r--r-- | nongnu/packages/password-utils.scm | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/nongnu/packages/password-utils.scm b/nongnu/packages/password-utils.scm new file mode 100644 index 0000000..42375db --- /dev/null +++ b/nongnu/packages/password-utils.scm @@ -0,0 +1,78 @@ +;;; SPDX-License-Identifier: GPL-3.0-or-later +;;; Copyright © 2025 Giacomo Leidi <goodoldpaul@autistici.org> + +(define-module (nongnu packages password-utils) + #:use-module (gnu packages gnome) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (nonguix build-system chromium-binary) + #:use-module ((guix licenses) #:prefix free-license:)) + +(define-public bitwarden-desktop + (package + (name "bitwarden-desktop") + (version "2025.2.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://github.com/bitwarden/clients/releases/download/" + "desktop-v" version "/Bitwarden-" version "-amd64.deb")) + (file-name (string-append name "-" version ".deb")) + (sha256 + (base32 + "1ixgs8i2vhi9ivg02rm0x8wy95rrqi1spw67wmicqdj3ahccvxkz")))) + (build-system chromium-binary-build-system) + (arguments + (list + #:substitutable? #f + #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files + #:wrapper-plan + #~(map (lambda (file) + (string-append "opt/Bitwarden/" file)) + '("bitwarden-app" + "chrome-sandbox" + "chrome_crashpad_handler" + "libEGL.so" + "libffmpeg.so" + "libGLESv2.so" + "libvk_swiftshader.so" + "libvulkan.so.1" + "resources/app.asar.unpacked/node_modules/@bitwarden/desktop-napi/desktop_napi.linux-x64-musl.node")) + #:install-plan + #~'(("opt/" "/share") + ("usr/share/" "/share")) + #:phases + #~(modify-phases %standard-phases + (add-before 'install 'patch-assets + (lambda _ + (let* ((bin (string-append #$output "/bin")) + (usr/share "./usr/share") + (old-exe "/opt/Bitwarden/bitwarden") + (exe (string-append bin "/bitwarden"))) + (substitute* (string-append usr/share "/applications/bitwarden.desktop") + (((string-append "^Exec=" old-exe)) (string-append "Exec=" exe)))))) + (add-before 'install-wrapper 'symlink-entrypoint + (lambda _ + (let* ((bin (string-append #$output "/bin")) + (share (string-append #$output "/share/Bitwarden"))) + (mkdir-p bin) + (for-each + (lambda (entrypoint) + (define exe (string-append bin "/" entrypoint)) + (define target (string-append share "/" entrypoint)) + (symlink target exe) + (wrap-program exe + `("LD_LIBRARY_PATH" = (,share)))) + '("bitwarden" "bitwarden-app")))))))) + (inputs + (list libsecret)) + (synopsis + "Access your sensitive information on any device with secure cloud sync") + (supported-systems '("x86_64-linux")) + (description + "Bitwarden is a password manager for securely storing, managing, and +sharing sensitive online data such as passwords, passkeys, and credit cards.") + (home-page "https://bitwarden.com") + (license free-license:gpl3))) |