GNU bug report logs - #36303
[PATCH] gnu: Add qtpass.

Previous Next

Package: guix-patches;

Reported by: Jens Mølgaard <jens <at> zete.tk>

Date: Thu, 20 Jun 2019 07:55:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 36303 in the body.
You can then email your comments to 36303 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#36303; Package guix-patches. (Thu, 20 Jun 2019 07:55:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jens Mølgaard <jens <at> zete.tk>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 20 Jun 2019 07:55:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jens Mølgaard <jens <at> zete.tk>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add qtpass.
Date: Thu, 20 Jun 2019 19:53:51 +1200
[Message part 1 (text/plain, inline)]
Hello guix!

This patch adds qtpass, one of the GUIs available for password-store. It
should build reproducibly now, and 'guix lint' reports no issues, so
should be ready to go.

Some notes:

- Tests are currently disabled as they seem to need display set. Appears
to be the case for a few qt packages.

- qmake looks for lrelease-qt5/lupdate-qt5 instead of lrelease/lupdate,
and only seems to like the env vars given directly when invoked.
lrelease/lupdate in turn need a variable to find qmake. There's possibly
a more elegant way of doing this.

- Desktop file isn't currently set up; I'll need to look into that.

Comments and advice are very welcome (I'm quite 'green')!

Happy hacking,
Jens M

[0001-gnu-Add-qtpass.patch (text/x-patch, inline)]
From cf95cf3b851c09afe7904e512c4a2e6b373db4de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= <jens <at> 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 | 56 +++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index ed890f73c3..a3db8fbcdc 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2018 Pierre Neidhardt <mail <at> ambrevar.xyz>
 ;;; Copyright © 2018 Amirouche Boubekki <amirouche <at> hypermove.net>
 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen <at> yahoo.de>
+;;; Copyright © 2019 Jens Mølgaard <jens <at> zete.tk>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -562,6 +563,61 @@ 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
+     `(#:tests? #f                      ; Tests require display.
+       #: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)))))
+    (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

[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#36303; Package guix-patches. (Tue, 02 Jul 2019 22:24:03 GMT) Full text and rfc822 format available.

Message #8 received at 36303 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Jens Mølgaard <jens <at> zete.tk>
Cc: 36303 <at> debbugs.gnu.org
Subject: Re: [bug#36303] [PATCH] gnu: Add qtpass.
Date: Wed, 03 Jul 2019 00:23:06 +0200
Hi Jens,

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

> Some notes:
>
> - Tests are currently disabled as they seem to need display set. Appears
> to be the case for a few qt packages.

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?

> - qmake looks for lrelease-qt5/lupdate-qt5 instead of lrelease/lupdate,
> and only seems to like the env vars given directly when invoked.
> lrelease/lupdate in turn need a variable to find qmake. There's possibly
> a more elegant way of doing this.

Sounds good.

> - Desktop file isn't currently set up; I'll need to look into that.

OK.

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

[...]

> +    (license license:gpl3)))

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

Apart from these minor issues, it LGTM!

Could you send an updated patch that runs tests, if that works?
Otherwise we’re ready to go.

Thank you, and apologies for the delay!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#36303; Package guix-patches. (Wed, 03 Jul 2019 09:30:02 GMT) Full text and rfc822 format available.

Message #11 received at 36303 <at> debbugs.gnu.org (full text, mbox):

From: Jens Mølgaard <jens <at> zete.tk>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 36303 <at> debbugs.gnu.org
Subject: Re: [bug#36303] [PATCH] gnu: Add qtpass.
Date: Wed, 03 Jul 2019 21:29:23 +1200
[Message part 1 (text/plain, inline)]
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

[0001-gnu-Add-qtpass.patch (text/x-patch, inline)]
From 9aa91d33b280197dbd590e8347260e213df623c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= <jens <at> 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 <at> ambrevar.xyz>
 ;;; Copyright © 2018 Amirouche Boubekki <amirouche <at> hypermove.net>
 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen <at> yahoo.de>
+;;; Copyright © 2019 Jens Mølgaard <jens <at> 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

[signature.asc (application/pgp-signature, inline)]

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Thu, 04 Jul 2019 09:49:02 GMT) Full text and rfc822 format available.

Notification sent to Jens Mølgaard <jens <at> zete.tk>:
bug acknowledged by developer. (Thu, 04 Jul 2019 09:49:02 GMT) Full text and rfc822 format available.

Message #16 received at 36303-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Jens Mølgaard <jens <at> zete.tk>
Cc: 36303-done <at> debbugs.gnu.org
Subject: Re: [bug#36303] [PATCH] gnu: Add qtpass.
Date: Thu, 04 Jul 2019 11:48:30 +0200
Hi,

Jens Mølgaard <jens <at> 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 <at> 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’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 01 Aug 2019 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 270 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.