Subject: [PATCH] gnu: Add confclerk.
From: Efraim Flashner <[email-masked]>
To: [email-masked]
Cc: Efraim Flashner <[email-masked]>
Date: Mon, 3 Aug 2020 15:58:08 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/calendar.scm (confclerk): New variable.
---
 gnu/packages/calendar.scm | 59 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 58 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index 53c73c969d..9987ae1bf8 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015 David Thompson <[email-masked]>
 ;;; Copyright © 2015, 2016, 2017 Leo Famulari <[email-masked]>
 ;;; Copyright © 2016 Kei Kebreau <[email-masked]>
-;;; Copyright © 2016, 2017 Efraim Flashner <[email-masked]>
+;;; Copyright © 2016, 2017, 2020 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2016 Troy Sankey <[email-masked]>
 ;;; Copyright © 2016 Stefan Reichoer <[email-masked]>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <[email-masked]>
@@ -46,6 +46,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages time)
@@ -282,3 +283,59 @@ of day, written in C, and including bindings for C++, pascal, perl, php, python,
 and ruby.  It includes two illustrative command-line programs, @code{hcal} and
 @code{hdate}, and some snippets and scripts written in the binding languages.")
     (license license:gpl3+)))
+
+(define-public confclerk
+  (package
+    (name "confclerk")
+    (version "0.6.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://www.toastfreeware.priv.at/tarballs/"
+                            "confclerk/confclerk-" version ".tar.gz"))
+        (sha256
+         (base32
+          "10rhg44px4nvbkd3p341cmp2ds43jn8r4rvgladda9v8zmsgr2b3"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; Install directory is currently hard-coded.
+               (substitute* "src/app/app.pro"
+                 (("PREFIX = /usr/bin")
+                  (string-append "PREFIX =" out "/bin")))
+               (invoke "qmake"))))
+         (add-after 'install 'install-docs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out   (assoc-ref outputs "out"))
+                    (share (string-append out "/share")))
+               (install-file "data/confclerk.1"
+                             (string-append share "/man/man1"))
+               (install-file "data/confclerk.desktop"
+                             (string-append share "/applications"))
+               (install-file "data/confclerk.svg"
+                             (string-append share "/icons/hicolor/scalable/apps"))
+               #t))))
+       #:tests? #f)) ; no tests
+    (native-inputs
+     `(("perl" ,perl))) ; pod2man
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (home-page "https://www.toastfreeware.priv.at/confclerk")
+    (synopsis "Offline conference schedule application")
+    (description
+     "ConfClerk is an application written in Qt, which makes conference schedules
+available offline.  It displays the conference schedule from various views,
+support searches on various items (speaker, speech topic, location, etc.) and
+enables you to select favorite events and create your own schedule.
+
+At the moment ConfClerk is able to import schedules in XML format created by
+the PentaBarf conference management system (or frab) used by e.g. FOSDEM,
+DebConf, FrOSCon, Grazer LinuxTage, and the CCC congresses.
+
+ConfClerk is targeted at mobile devices but works on any system running Qt.")
+    (license (list license:gpl2+
+                   license:lgpl3)))) ; or cc-by3.0 for src/icons/*
-- 
2.28.0