Subject: [bug#72474] [PATCH 17/30] gnu: Add erlang-fast-tls.

From: Igor Goryachev <[email-masked]>
Date: Mon, 5 Aug 2024 13:44:50 +0300

* gnu/packages/erlang-xyz.scm (erlang-fast-tls): New variable.

Change-Id: Ibda856e308b68f5e1dba4a7a541e0f2438aae737
---
 gnu/packages/erlang-xyz.scm | 41 +++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 58b503b49c..2d0d8cd567 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -20,6 +20,7 @@ (define-module (gnu packages erlang-xyz)
   #:use-module (gnu packages)
   #:use-module (gnu packages erlang)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages tls)
   #:use-module (guix build-system rebar)
   #:use-module (guix download)
   #:use-module (guix gexp)
@@ -268,6 +269,46 @@ (define-public erlang-ezlib
     (home-page "https://hex.pm/packages/ezlib")
     (license license:asl2.0)))
 
+(define-public erlang-fast-tls
+  (package
+    (name "erlang-fast-tls")
+    (version "1.1.21")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "fast_tls" version))
+       (sha256
+        (base32 "0nsh5597pa1643kj2mmp05anss2r0gq83al0rm45w0ip768l458k"))))
+    (build-system rebar-build-system)
+    (inputs (list erlang-p1-utils openssl))
+    (native-inputs (list erlang-pc openssl))
+    (arguments
+     (list
+      #:tests? #f ; some required files are absent
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-/bin/sh
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let ((sh (search-input-file inputs "/bin/sh")))
+                (substitute* "configure"
+                  (("/bin/sh") sh)))))
+          (add-after 'unpack 'set-environment
+            (lambda _
+              (setenv "HOME" "/tmp")
+              (setenv "CC" "gcc")
+              (let ((openssl (assoc-ref %build-inputs "openssl")))
+                (setenv "LDFLAGS" (string-append "-L" openssl "/lib"))
+                (setenv "CFLAGS" (string-append "-I" openssl "/include")))))
+          (add-before 'build 'configure
+            (lambda _
+              (invoke "./configure"))))))
+    (synopsis "TLS/SSL OpenSSL-based native driver for Erlang/Elixir")
+    (description
+     "This package provides TLS/SSL @code{OpenSSL}-based native driver
+for Erlang/Elixir.")
+    (home-page "https://hex.pm/packages/fast_tls")
+    (license license:asl2.0)))
+
 (define-public erlang-unicode-util-compat
   (package
     (name "erlang-unicode-util-compat")
-- 
2.45.2