summary refs log tree commit diff
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2021-02-13 21:18:18 +0000
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2021-03-06 14:38:15 +0100
commit0e36ea23374d432f7b74607ae39f717b1f4b2aa9 (patch)
tree87bb74ca1b9fa21568717781428ec2cf9b72cf48
parent1463e9504b116ea0874a0643a6dd23c957f3e506 (diff)
downloadguix-0e36ea23374d432f7b74607ae39f717b1f4b2aa9.tar.gz
gnu: Add itcl
* gnu/pacages/tcl.scm (itcl): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
-rw-r--r--gnu/packages/tcl.scm50
1 files changed, 50 insertions, 0 deletions
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index f17e138bdb..709b3dd603 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -95,6 +95,56 @@
     (description "The Tcl (Tool Command Language) scripting language.")
     (license license:tcl/tk)))
 
+(define-public itcl
+  (package
+    (name "itcl")
+    (version "4.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/incrtcl/%5Bincr%20Tcl_Tk%5D-4-source/itcl%20"
+             version "/itcl" version ".tar.gz"))
+       (file-name (string-append "incrtcl-" version ".tar.gz"))
+       (sha256
+        (base32 "0w28v0zaraxcq1s9pa6cihqqwqvvwfgz275lks7w4gl7hxjxmasw"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append
+         "--exec-prefix=" (assoc-ref %outputs "out"))
+        (string-append
+         "--with-tclinclude=" (assoc-ref %build-inputs "tcl") "/include")
+        (string-append
+         "--with-tcl=" (assoc-ref %build-inputs "tcl") "/lib"))
+       #:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'cleanup-bin-and-lib
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; NOTE: (Sharlatan-20210213T204336+0000): libraries appearer in
+             ;; "out/lib/itcl{{version}}" and there are no binaries, some extra
+             ;; rename and remove spells are to be applied.
+             (let ((out (assoc-ref outputs "out")))
+               (rmdir
+                (string-append out "/bin"))
+               (rename-file
+                (string-append out "/lib/itcl" ,version) (string-append out "/libtmp"))
+               (rename-file
+                (string-append out "/libtmp") (string-append out "/lib")))
+             #t)))))
+    (native-inputs
+     `(("tcl" ,tcl)))
+    (inputs
+     `(("tcllib" ,tcllib)))
+    (home-page "http://incrtcl.sourceforge.net/")
+    (synopsis "Object Oriented programming (OOP) extension for Tcl")
+    (description
+     "[incr Tcl] is a widely used object-oriented system for Tcl.  The name is
+a play on C++, and [incr Tcl] provides a similar object model, including
+multiple inheritence and public and private classes and variables.")
+    (license license:public-domain)))
 
 (define-public expect
   (package