X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/4035c3e3525599c3aa958d498c5bc789a4adffc3..bff94a5a537c2c484f9f6e98cab75195c3dde9e7:/gnu/packages/password-utils.scm diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 2a570691a4..c1bd212f09 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2016, 2019, 2020 Alex Griffin ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017, 2018 Clément Lassieur -;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2017 Jelle Licht ;;; Copyright © 2017, 2019 Eric Bavier ;;; Copyright © 2017, 2020 Nicolas Goaziou @@ -21,11 +21,14 @@ ;;; Copyright © 2018 Arun Isaac ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2018 Amirouche Boubekki -;;; Copyright © 2018, 2019 Tim Gesthuizen +;;; Copyright © 2018, 2019, 2020 Tim Gesthuizen ;;; Copyright © 2019 Jens Mølgaard ;;; Copyright © 2019 Tanguy Le Carrour ;;; Copyright © 2020 Guillaume Le Vaillant ;;; Copyright © 2020 Brice Waegeneire +;;; Copyright © 2020 Jean-Baptiste Note +;;; Copyright © 2020 Michael Rohleder +;;; Copyright © 2020 Vinicius Monego ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,6 +64,7 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) #:use-module (gnu packages curl) + #:use-module (gnu packages docbook) #:use-module (gnu packages file) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) @@ -119,7 +123,7 @@ human.") (define-public keepassxc (package (name "keepassxc") - (version "2.5.4") + (version "2.6.2") (source (origin (method url-fetch) @@ -127,11 +131,26 @@ human.") "/releases/download/" version "/keepassxc-" version "-src.tar.xz")) (sha256 - (base32 "0jndssyvpl8bc5i2q3d6kq1ppynchxx9nvp1qhd2pc0qqc0hhpm5")))) + (base32 "0f3ygnjzjijqmmrvrslwsbnz208jgxp5bwy4p336w3bn1bggl6qh")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DWITH_XC_ALL=YES" - "-DWITH_XC_UPDATECHECK=NO"))) + "-DWITH_XC_UPDATECHECK=NO") + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-bin + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/keepassxc") + `("QT_PLUGIN_PATH" ":" prefix + ,(map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib/qt5/plugins")) + '("qtbase" "qtsvg"))))) + #t))))) + (native-inputs + `(("asciidoctor" ,ruby-asciidoctor) + ("qttools" ,qttools))) (inputs `(("argon2" ,argon2) ("libgcrypt" ,libgcrypt) @@ -147,8 +166,6 @@ human.") ("readline" ,readline) ("yubikey-personalization" ,yubikey-personalization) ; XC_YUBIKEY ("zlib" ,zlib))) - (native-inputs - `(("qttools" ,qttools))) (home-page "https://www.keepassxc.org") (synopsis "Password manager") (description "KeePassXC is a password manager or safe which helps you to @@ -194,16 +211,16 @@ algorithms AES or Twofish.") (define-public pwsafe (package (name "pwsafe") - (version "3.50.0") + (version "3.54.1") (home-page "https://www.pwsafe.org/") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/pwsafe/pwsafe.git") + (url "https://github.com/pwsafe/pwsafe") (commit version))) (sha256 - (base32 "01kfssd2vr64yh4dqhch58x36n3aj3hpj5n560f41rsxym69c6qs")) + (base32 "0d51dlw98mv23nwb0b5jyji8gnb9f5cnig6kivfljl97lmr6lhvf")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (native-inputs @@ -213,7 +230,7 @@ algorithms AES or Twofish.") ("zip" ,zip))) (inputs `(("curl" ,curl) ("file" ,file) - ("libuuid" ,util-linux) + ("libuuid" ,util-linux "lib") ("libxt" ,libxt) ("libxtst" ,libxtst) ("openssl" ,openssl) @@ -230,15 +247,7 @@ algorithms AES or Twofish.") (display "find_package(GTest) add_subdirectory(src/test)\n" cmake-port) (close cmake-port) - #t))) - (add-after 'add-gtest 'patch-executables - (lambda* (#:key inputs #:allow-other-keys) - (chmod "src/test/OSTest.cpp" #o644) - (substitute* "src/os/unix/media.cpp" - (("/usr/bin/file") - (string-append (assoc-ref inputs "file") - "/bin/file"))) - #t))))) + #t)))))) (synopsis "Password safe with automatic input and key generation") (description "pwsafe is a password manager originally designed by Bruce Schneier. It offers a simple UI to manage passwords for different services. @@ -298,14 +307,14 @@ applications, there is xclip integration." ) (define-public yapet (package (name "yapet") - (version "2.3") + (version "2.4") (source (origin (method url-fetch) (uri (string-append "https://yapet.guengel.ch/downloads/yapet-" version ".tar.xz")) (sha256 - (base32 "1fl4s7v1psl52ndd6i7716i9f493aj8ipl6lgmraadnn5h26l3pm")))) + (base32 "0b1v0whf70dfjzlwqwwvfv526s828skjvm4xvwly3vcvcmpz59sh")))) (build-system gnu-build-system) (inputs `(("argon2" ,argon2) @@ -358,7 +367,7 @@ them out, at the source.") (define-public libpwquality (package (name "libpwquality") - (version "1.4.2") + (version "1.4.4") (source (origin (method url-fetch) (uri (list @@ -370,11 +379,20 @@ them out, at the source.") "libpwquality-" version ".tar.bz2"))) (sha256 (base32 - "13hw532fmzc5xjpy75d74rlfdlxf2a8ibb4hyy9c0s92wsgf0qsj")))) + "0id5a8bi8xnjg11g9vzrl2xbpx65mfxclxcvis7zx1v8vhisyfyl")))) (build-system gnu-build-system) (arguments - ;; XXX: have RUNPATH issue. - '(#:configure-flags '("--disable-python-bindings"))) + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'set-LDFLAGS + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "LDFLAGS" + (string-append + "-Wl,-rpath=" + (assoc-ref outputs "out") "/lib")) + #t))))) + (native-inputs + `(("python" ,python-wrapper))) (inputs `(("cracklib" ,cracklib))) (synopsis "Password quality checker") @@ -587,20 +605,25 @@ key URIs using the standard otpauth:// scheme.") (define-public qtpass (package (name "qtpass") - (version "1.2.3") + (version "1.3.2") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/IJHack/QtPass.git") + (url "https://github.com/IJHack/QtPass") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1vfhfyccrxq9snyvayqfzm5rqik8ny2gysyv7nipc91kvhq3bhky")))) + "0748hjvhjrybi33ci3c8hcr74k9pdrf5jv8npf9hrsrmdyy1kr9x")))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:modules ((guix build gnu-build-system) + (guix build qt-utils) + (guix build utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build qt-utils)) + #:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) @@ -636,6 +659,10 @@ key URIs using the standard otpauth:// scheme.") (string-append icons "/qtpass-icon.svg")) (install-file "qtpass.1" man) #t))) + (add-after 'install 'wrap-qt + (lambda* (#:key outputs #:allow-other-keys) + (wrap-qt-program (assoc-ref outputs "out") "qtpass") + #t)) (add-before 'check 'check-setup ;; Make Qt render "offscreen", required for tests. (lambda _ @@ -702,17 +729,17 @@ using password-store through rofi interface: (define-public browserpass-native (package (name "browserpass-native") - (version "3.0.6") + (version "3.0.7") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/browserpass/browserpass-native.git") + (url "https://github.com/browserpass/browserpass-native") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0q3bsla07zjl6i69nj1axbkg2ia89pvh0jg6nlqgbm2kpzzbn0pz")))) + "1jkjslbbac49xjyjkc2b07phdm3i64z40kh6h55cl22dxjmpp1nb")))) (build-system go-build-system) (arguments `(#:import-path "github.com/browserpass/browserpass-native" @@ -1060,7 +1087,7 @@ your online accounts makes it necessary.") (define-public hashcat (package (name "hashcat") - (version "5.1.0") + (version "6.1.1") (source (origin (method url-fetch) @@ -1068,7 +1095,7 @@ your online accounts makes it necessary.") version ".tar.gz")) (sha256 (base32 - "0f73y4cg8c7a6q7x34qvpfi4g3lw6j9bnn0a13g43aqyiskflfr8")))) + "104z63m7lqbb0sdrxhf9yi15l4a9zwf9m6zs9dbb3gf0nfxl1h9r")))) (native-inputs `(("opencl-headers" ,opencl-headers))) (build-system gnu-build-system) @@ -1168,3 +1195,85 @@ exhaustive mode to try every password given a charset or in dictionary mode to try every password contained in a file.") (home-page "https://github.com/glv2/bruteforce-luks") (license license:gpl3+))) + +(define-public makepasswd + (let ((commit "3545d57d3a589a392d7eb0df36a5286785345c9e") + (revision "1")) + (package + (name "makepasswd") + (version (git-version "0.5.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/khorben/makepasswd") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0lspqyyxbk6h28yxnp7pd5aib161vrkzgasam5jpzn35n1jacx2j")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("libxslt" ,libxslt) + ("libxml2" ,libxml2) + ("docbook-xsl" ,docbook-xsl) + ("docbook-xml" ,docbook-xml))) + (inputs + `(("openssl" ,openssl))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure)) + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:tests? #f)) ;no tests + (synopsis "Generate (pseudo-)random passwords and hashes") + (description + "Makepasswd is a program that generates pseudo-random passwords of a +desired length. It can also generate their corresponding hashes for a given +encryption algorithm if so desired.") + (home-page "https://github.com/khorben/makepasswd") + (license license:gpl3)))) + +(define-public pass-tomb + (package + (name "pass-tomb") + (version "1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/roddhjav/pass-tomb") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qj7vx7svk1ljwihj3kv310k17mafnf919n30n4qn1yxmmsvj924")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append "PREFIX=" out) + (string-append "BASHCOMPDIR=" out "/etc/bash_completion.d"))) + #:test-target "tests" + ;; tests are very dependent on system state (swap partition) and require + ;; access to /tmp/zsh which is not in the build container. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-tomb-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((tomb (assoc-ref inputs "tomb"))) + (substitute* "tomb.bash" + ((":-tomb") + (string-append ":-" tomb "/bin/tomb")))))) + (delete 'configure)))) + (inputs + `(("tomb" ,tomb))) + (home-page "https://github.com/roddhjav/pass-tomb") + (synopsis "Pass extension keeping the tree of passwords encrypted") + (description "Pass-tomb provides a convenient solution to put your +password store in a Tomb and then keep your password tree encrypted when you +are not using it. It uses the same GPG key to encrypt passwords and tomb, +therefore you don't need to manage more key or secret. Moreover, you can ask +pass-tomb to automatically close your store after a given time.") + (license license:gpl3+)))