diff mbox series

[bug#36303] gnu: Add qtpass.

Message ID 87o92bbh58.fsf@zete.tk
State Accepted
Headers show
Series [bug#36303] gnu: Add qtpass. | expand

Commit Message

Jens Mølgaard July 3, 2019, 9:29 a.m. UTC
Hello Ludo,

> Some packages have a pre-check phase that spawns Xvfb; others do:
>   (setenv "QT_QPA_PLATFORM" "offscreen")
> Would one of these method allow us to run the tests?

Yep, tests work fine with this!

> Source file headers don’t specify any version of the GPL, so it should
> be ‘gpl3+’ (meaning “or any later version”).

Ah, I thought only compatible later versions could be used, unless it
was specified explicitly. I'll trust your advice and specify 'gpl3+'.

I've also added a bit to install the desktop file, man-page and icon.

So, patch should be good to go!

Thanks,
Jens M

Comments

Ludovic Courtès July 4, 2019, 9:48 a.m. UTC | #1
Hi,

Jens Mølgaard <jens@zete.tk> skribis:

>> Some packages have a pre-check phase that spawns Xvfb; others do:
>>   (setenv "QT_QPA_PLATFORM" "offscreen")
>> Would one of these method allow us to run the tests?
>
> Yep, tests work fine with this!

Awesome.

>> Source file headers don’t specify any version of the GPL, so it should
>> be ‘gpl3+’ (meaning “or any later version”).
>
> Ah, I thought only compatible later versions could be used, unless it
> was specified explicitly. I'll trust your advice and specify 'gpl3+'.

Section 14 of GPLv3 reads (GPLv2 has similar wording):

  If the Program does not specify a version number of the GNU General
  Public License, you may choose any version ever published by the Free
  Software Foundation.

In Guix, we encode it as “version X or later”.

> From 9aa91d33b280197dbd590e8347260e213df623c7 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= <jens@zete.tk>
> Date: Thu, 20 Jun 2019 19:24:47 +1200
> Subject: [PATCH] gnu: Add qtpass.
>
> * gnu/packages/password-utils.scm (qtpass): New variable.

Applied, thanks!

Ludo’.
diff mbox series

Patch

From 9aa91d33b280197dbd590e8347260e213df623c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= <jens@zete.tk>
Date: Thu, 20 Jun 2019 19:24:47 +1200
Subject: [PATCH] gnu: Add qtpass.

* gnu/packages/password-utils.scm (qtpass): New variable.
---
 gnu/packages/password-utils.scm | 73 +++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index ed890f73c3..e1c8a10242 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -22,6 +22,7 @@ 
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
+;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -562,6 +563,78 @@  one-time-password (OTP) secrets, generating OTP codes, and displaying secret
 key URIs using the standard otpauth:// scheme.")
     (license license:gpl3+)))
 
+(define-public qtpass
+  (package
+    (name "qtpass")
+    (version "1.2.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/IJHack/QtPass.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1vfhfyccrxq9snyvayqfzm5rqik8ny2gysyv7nipc91kvhq3bhky"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; lupdate/lrelease need to find qmake.
+               (setenv "QMAKE" "qmake")
+               ;; qmake needs to find lrelease/lupdate.
+               (invoke "qmake"
+                       "QMAKE_LRELEASE=lrelease"
+                       "QMAKE_LUPDATE=lupdate"
+                       (string-append "PREFIX=" out)))))
+         (add-after 'configure 'reset-resource-timestamps
+           ;; Reset timestamps on localization files for a reproducible build.
+           (lambda _
+             (with-directory-excursion "localization"
+               (for-each (lambda (file)
+                           (let* ((base (basename file ".qm"))
+                                  (src (string-append base ".ts"))
+                                  (st (stat src)))
+                             (set-file-time file st)))
+                         (find-files "." ".*\\.qm")))
+             #t))
+         (add-after 'install 'install-auxilliary
+           ;; Install man-page, icon and .desktop file.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (applications (string-append out "/share/applications"))
+                    (icons (string-append out "/share/icons/hicolor/scalable/apps"))
+                    (man (string-append out "/share/man/man1")))
+               (install-file "qtpass.desktop" applications)
+               (install-file "artwork/icon.svg" icons)
+               (rename-file (string-append icons "/icon.svg")
+                            (string-append icons "/qtpass-icon.svg"))
+               (install-file "qtpass.1" man)
+               #t)))
+         (add-before 'check 'check-setup
+           ;; Make Qt render "offscreen", required for tests.
+           (lambda _
+             (setenv "QT_QPA_PLATFORM" "offscreen")
+             #t)))))
+    (native-inputs
+     `(("qttools" ,qttools)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)))
+    (home-page "https://qtpass.org")
+    (synopsis "GUI for password manager password-store")
+    (description
+     "Qt-based graphical user interface for the password manager
+password-store also known as pass.  Can use either pass or gpg to interact
+with password-store files.  Features configurable password generation,
+templates, clipboard handling, and per folder settings for multi-recipient
+encryption.")
+    (license license:gpl3+)))
+
 (define-public argon2
   (package
     (name "argon2")
-- 
2.22.0