From 95ce6fe3180f78c38b85853ad9689d191ed25e0c Mon Sep 17 00:00:00 2001
From: Tim Gesthuizen <tim.gesthuizen@yahoo.de>
Date: Wed, 4 Nov 2020 16:10:20 +0100
Subject: [PATCH 3/3] gnu: pwsafe: Reset timestamps in in zip archives
* gnu/packages/password-utils.scm (pwsafe):
[native-inputs] Add strip-nondeterminism.
[arguments]: Add a new phase resetting timestamps in zip archives and adapt
modules for it.
---
gnu/packages/password-utils.scm | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
@@ -64,6 +64,7 @@
#:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages debian)
#:use-module (gnu packages docbook)
#:use-module (gnu packages file)
#:use-module (gnu packages freedesktop)
@@ -227,6 +228,7 @@ algorithms AES or Twofish.")
`(("gettext" ,gettext-minimal)
("gtest" ,googletest)
("perl" ,perl)
+ ("strip-nondeterminism" ,strip-nondeterminism)
("zip" ,zip)))
(inputs `(("curl" ,curl)
("file" ,file)
@@ -237,7 +239,10 @@ algorithms AES or Twofish.")
("qrencode" ,qrencode)
("wxwidgets" ,wxwidgets)
("xerces-c" ,xerces-c)))
- (arguments '(#:configure-flags (list "-DNO_GTEST=YES")
+ (arguments `(#:configure-flags (list "-DNO_GTEST=YES")
+ #:modules ((guix build cmake-build-system)
+ (guix build utils)
+ (ice-9 ftw))
#:phases (modify-phases %standard-phases
(add-after 'unpack 'add-gtest
(lambda* (#:key inputs #:allow-other-keys)
@@ -247,7 +252,18 @@ algorithms AES or Twofish.")
(display "find_package(GTest)
add_subdirectory(src/test)\n" cmake-port)
(close cmake-port)
- #t))))))
+ #t)))
+ (add-after 'build 'patch-zips
+ (lambda* (#:key inputs #:allow-other-keys)
+ (ftw (getcwd)
+ (lambda (filename statinfo flag)
+ (when (and (eq? flag 'regular)
+ (string-suffix? ".zip" filename))
+ (chmod filename #o644)
+ (invoke "strip-nondeterminism"
+ "-v" filename))
+ #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.
--
2.29.1