guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

10/13: gnu: remind: Move Tcl/Tk scripts to separate output.


From: guix-commits
Subject: 10/13: gnu: remind: Move Tcl/Tk scripts to separate output.
Date: Thu, 6 May 2021 18:17:43 -0400 (EDT)

nckx pushed a commit to branch master
in repository guix.

commit bf3589f16c8ea0be5090a2f608a70f6c86b215d9
Author: Tobias Geerinckx-Rice <me@tobias.gr>
AuthorDate: Thu May 6 23:30:35 2021 +0200

    gnu: remind: Move Tcl/Tk scripts to separate output.
    
    * gnu/packages/calendar.scm (remind)[outputs]: Add "tcl".
    [arguments]: Add a new 'split-:tcl phase.
    [inputs]: Add inetutils, tcl, tcllib, and tk.
---
 gnu/packages/calendar.scm | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index d74c8ac..f62f746 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -35,6 +35,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
   #:use-module (gnu packages dav)
@@ -51,6 +52,7 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tcl)
   #:use-module (gnu packages time)
   #:use-module (gnu packages xml)
   #:use-module (srfi srfi-26))
@@ -239,8 +241,42 @@ able to synchronize with CalDAV servers through 
vdirsyncer.")
        (sha256
         (base32 "0nszv62gqyclsvsygqj4b1c5h40rp66s5njgcf1h7iy9f00hr6ln"))))
     (build-system gnu-build-system)
+    (outputs (list "out"
+                   "tcl"))           ; more than doubles the closure by >110 
MiB
     (arguments
-     '(#:test-target "test"))
+     '(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'split-:tcl
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (tcl (assoc-ref outputs "tcl")))
+               (for-each
+                (lambda (file)
+                  (let ((from (string-append out "/" file))
+                        (to   (string-append tcl "/" file)))
+                    (mkdir-p (dirname to))
+                    (rename-file from to)
+                    ;; For simplicity, wrap all scripts with the same variables
+                    ;; even though, e.g., inetutils is not needed by 
cm2rem.tcl.
+                    ;; XXX Using WRAP-SCRIPT currently breaks tkremind.
+                    (wrap-program to
+                      `("PATH" ":" prefix
+                        ,(map (lambda (dir)
+                                (string-append dir "/bin"))
+                              (append (list out tcl)
+                                      (map (lambda (input)
+                                             (assoc-ref inputs input))
+                                           (list "tcl" "tk" "inetutils")))))
+                      `("TCLLIBPATH" " " =
+                        (,(getenv "TCLLIBPATH"))))))
+                (list "bin/cm2rem.tcl"
+                      "bin/tkremind"))))))))
+    (inputs
+     `(("inetutils" ,inetutils)
+       ("tcl" ,tcl)
+       ("tcllib" ,tcllib)
+       ("tk" ,tk)))
     (home-page "https://dianne.skoll.ca/projects/remind/";)
     (synopsis "Sophisticated calendar and alarm program")
     (description



reply via email to

[Prev in Thread] Current Thread [Next in Thread]