diff mbox series

[bug#54920] gnu: tcl: Add tcl-tls to packages.

Message ID 20220413204405.28483-1-dlowe@dlowe.net
State Accepted
Headers show
Series [bug#54920] gnu: tcl: Add tcl-tls to packages. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Daniel Lowe April 13, 2022, 8:44 p.m. UTC
* gnu/packages/tcl.scm (tcl-tls): Added 1.7.22
---
 gnu/packages/tcl.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

Comments

Ludovic Courtès May 6, 2022, 1:22 p.m. UTC | #1
Hi,

Daniel Lowe <dlowe@dlowe.net> skribis:

> * gnu/packages/tcl.scm (tcl-tls): Added 1.7.22

Applied.  I followed up with cosmetic changes.

One question though:

> +   (search-paths
> +    (list (search-path-specification
> +           (variable "TCLLIBPATH")
> +           (separator " ")
> +           (files (list (string-append "lib/tcltls" version))))))

This declaration most likely belongs in ‘tcl’ itself:

  https://guix.gnu.org/manual/devel/en/html_node/Search-Paths.html

Most Tcl libraries that we have have that ‘search-paths’ declaration
though, and they would need to be fixed.

One problem is that they augment TCLLIBPATH not with a generic “lib/tcl”
(say) collection of directories, but instead with a package-specific
directory, like “lib/tcltls1.3”.

The solution would be to ensure that, instead, all these libraries
install their Tcl code in “lib/tcl” rather than “lib/PACKAGE”.

Since you’re into Tcl, would you like to give it a try? :-)

TIA,
Ludo’.
diff mbox series

Patch

diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 810095282e..3497851f18 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -432,6 +432,50 @@  (define-public tclx
 debugging tools.")
     (license license:tcl/tk)))
 
+(define-public tcl-tls
+  (package
+   (name "tcl-tls")
+   (version "1.7.22")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append "https://core.tcl-lang.org/tcltls/uv/tcltls-"
+                         version ".tar.gz"))
+     (sha256
+      (base32
+       "1d639gzngxp7zwwpb4ayh663br6vhsbiy6wxm952rj2y4xx2nkp8"))))
+   (build-system gnu-build-system)
+   (inputs
+    (list tcl))
+   (propagated-inputs
+    (list openssl))
+   (arguments
+    '(#:configure-flags
+      (let ((out (assoc-ref %outputs "out"))
+            (tcl (assoc-ref %build-inputs "tcl"))
+            (ssllib (assoc-ref %build-inputs "openssl")))
+        (list "--with-ssl=libressl"
+              (string-append "-with-ssl-dir=" ssllib)
+              (string-append "--with-tcl=" tcl "/lib")
+              (string-append "--with-tclinclude=" tcl "/include")
+              (string-append "--exec-prefix=" out)
+              (string-append "--mandir=" out "/share/man")))
+
+      #:test-target "test"))
+   (search-paths
+    (list (search-path-specification
+           (variable "TCLLIBPATH")
+           (separator " ")
+           (files (list (string-append "lib/tcltls" version))))))
+   (home-page "https://core.tcl-lang.org/tcltls/index")
+   (synopsis "TCL binding to OpenSSL toolkit")
+   (description
+    "This extension provides a generic binding to OpenSSL, utilizing
+the Tcl_StackChannel API for Tcl 8.2 and higher.  The sockets behave
+exactly the same as channels created using Tcl's built-in socket
+command with additional options for controlling the SSL session.")
+   (license license:public-domain)))
+
 (define-public go-github.com-nsf-gothic
   (let ((commit "97dfcc195b9de36c911a69a6ec2b5b2659c05652")
         (revision "0"))