[PATCH 00/30] Add ejabberd package.

  • Done
  • quality assurance status badge
Details
2 participants
  • Andrew Tropin
  • Igor Goryachev
Owner
unassigned
Submitted by
Igor Goryachev
Severity
normal

Debbugs page

Igor Goryachev wrote 7 months ago
(address . guix-patches@gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
cover.1722851684.git.igor@goryachev.org
Hello,

I've packaged Ejabberd, a well-known XMPP server written mostly in Erlang. It advertises itself as "Robust, Ubiquitous and Massively Scalable Messaging Platform, which supports XMPP, MQTT and SIP protocols".

Igor Goryachev (30):
gnu: Add erlang-base64url.
gnu: Add erlang-jose.
gnu: Add erlang-pc.
gnu: Add erlang-provider-asn1.
gnu: Add erlang-luerl.
gnu: Add erlang-p1-utils.
gnu: Add erlang-unicode-util-compat.
gnu: Add erlang-idna.
gnu: Add erlang-stringprep.
gnu: Add erlang-cache-tab.
gnu: Add erlang-eimp.
gnu: Add erlang-mqtree.
gnu: Add erlang-jiffy.
gnu: Add erlang-p1-oauth2.
gnu: Add erlang-pkix.
gnu: Add erlang-ezlib.
gnu: Add erlang-fast-tls.
gnu: Add erlang-stun.
gnu: Add erlang-fast-xml.
gnu: Add erlang-fast-yaml.
gnu: Add erlang-yconf.
gnu: Add erlang-epam.
gnu: Add erlang-p1-acme.
gnu: Add erlang-xmpp.
gnu: Add erlang-esip.
gnu: Add erlang-p1-mysql.
gnu: Add erlang-p1-pgsql.
gnu: Add erlang-sqlite3.
gnu: Add erlang-eredis.
gnu: Add ejabberd.

gnu/packages/erlang-xyz.scm | 651 ++++++++++++++++++++++++++++++++++++
gnu/packages/erlang.scm | 35 ++
gnu/packages/messaging.scm | 134 ++++++++
3 files changed, 820 insertions(+)
create mode 100644 gnu/packages/erlang-xyz.scm


base-commit: 3c309a7b7020a9645bfe775d9f53f43f05d076bf
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 01/30] gnu: Add erlang-base64url.
(address . 72474@debbugs.gnu.org)
c8325d72384868497866fe5ddff2a576e130272b.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-base64url): New variable.

Change-Id: I2b7b44631408138576e4a1498a39c64810cb0582
---
gnu/packages/erlang-xyz.scm | 51 +++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
create mode 100644 gnu/packages/erlang-xyz.scm

Toggle diff (59 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
new file mode 100644
index 0000000000..1cf5d9c6fd
--- /dev/null
+++ b/gnu/packages/erlang-xyz.scm
@@ -0,0 +1,51 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages erlang-xyz)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages erlang)
+ #:use-module (guix build-system rebar)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix utils))
+
+(define-public erlang-base64url
+ (package
+ (name "erlang-base64url")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "base64url" version))
+ (sha256
+ (base32 "0p4zf53v86zfpnk3flinjnk6cx9yndsv960386qaj0hsfgaavczr"))))
+ (build-system rebar-build-system)
+ (synopsis "URL safe base64-compatible codec")
+ (description "This package provides URL safe base64-compatible codec
+for Erlang.")
+ (home-page "https://hex.pm/packages/base64url")
+ (license license:expat)))
+
+;;;
+;;; Avoid adding new packages to the end of this file. To reduce the chances
+;;; of a merge conflict, place them above by existing packages with similar
+;;; functionality or similar names.
+;;;
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 02/30] gnu: Add erlang-jose.
(address . 72474@debbugs.gnu.org)
7e9fa54a00dcf447956eb18bcf78efee4cd8aa63.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-jose): New variable.

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

Toggle diff (32 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 1cf5d9c6fd..862d9462a2 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -27,6 +27,25 @@ (define-module (gnu packages erlang-xyz)
#:use-module (guix packages)
#:use-module (guix utils))
+(define-public erlang-jose
+ (package
+ (name "erlang-jose")
+ (version "1.11.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "jose" version))
+ (sha256
+ (base32 "0576jdjygby37qmzrs8cm5l6n622b0mi3z28j6r4s5xsz1px6v0d"))))
+ (build-system rebar-build-system)
+ (synopsis
+ "JSON Object Signing and Encryption for Erlang and Elixir")
+ (description
+ "This package provides JSON Object Signing and Encryption (JOSE) for
+Erlang and Elixir.")
+ (home-page "https://hex.pm/packages/jose")
+ (license license:expat)))
+
(define-public erlang-base64url
(package
(name "erlang-base64url")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 03/30] gnu: Add erlang-pc.
(address . 72474@debbugs.gnu.org)
7dcd10c2bcbfdee81cf4d7643ea588a2cbe7ba6b.1722851684.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-pc): New variable.

Change-Id: I3c216c07804f8329238cc7c17f3094d2ccbf626e
---
gnu/packages/erlang.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index a236722474..7bf26483d0 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -768,6 +768,23 @@ (define-public rebar3-proper
rebar3.")
(license license:bsd-3)))
+(define-public erlang-pc
+ (package
+ (name "erlang-pc")
+ (version "1.15.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "pc" version))
+ (sha256
+ (base32 "1cwm8pjsmjllfj41g62blkzvhiw3wy7j3nhpsm9y7jipci7ss3sc"))))
+ (build-system rebar-build-system)
+ (synopsis "Rebar3 port compiler for native code")
+ (description "This package provides support for compiling native code
+for Rebar3.")
+ (home-page "https://hex.pm/packages/pc")
+ (license license:expat)))
+
(define-public erlang-lfe
(package
(name "erlang-lfe")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 04/30] gnu: Add erlang-provider-asn1.
(address . 72474@debbugs.gnu.org)
fae43d1a190d223e4780c8571d05305c314717f8.1722851684.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-provider-asn1): New variable.

Change-Id: I12c57f721226d5256616650f634f129ad2f74fa2
---
gnu/packages/erlang.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 7bf26483d0..b6a31f26e9 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -565,6 +565,24 @@ (define-public erlang-providers
(description "This package provides an Erlang providers library.")
(license license:asl2.0)))
+(define-public erlang-provider-asn1
+ (package
+ (name "erlang-provider-asn1")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "provider_asn1" version))
+ (sha256
+ (base32 "01gvpwdlkpmvzi280rn66f5ijlvap6k368yzpb0mmlv2hrcsbrrj"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-providers))
+ (synopsis "Compile ASN.1 with Rebar3")
+ (description "This package contains plugin for ASN.1 compilation from
+within Rebar3.")
+ (home-page "https://hex.pm/packages/provider_asn1")
+ (license license:expat)))
+
(define-public erlang-relx
(package
(name "erlang-relx")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 05/30] gnu: Add erlang-luerl.
(address . 72474@debbugs.gnu.org)
b81e691c47db2062ad0326f31ccc6ca8e60a3cdd.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-luerl): New variable.

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

Toggle diff (29 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 862d9462a2..1e5d87e833 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -27,6 +27,22 @@ (define-module (gnu packages erlang-xyz)
#:use-module (guix packages)
#:use-module (guix utils))
+(define-public erlang-luerl
+ (package
+ (name "erlang-luerl")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "luerl" version))
+ (sha256
+ (base32 "0paj3gr0kn8v9g6wmdnz1f16q0iy1pb83zbqsalzbw2g17vd9bww"))))
+ (build-system rebar-build-system)
+ (synopsis "Implementation of Lua on Erlang")
+ (description "This package provides implementation of Lua on Erlang.")
+ (home-page "https://hex.pm/packages/luerl")
+ (license license:asl2.0)))
+
(define-public erlang-jose
(package
(name "erlang-jose")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 06/30] gnu: Add erlang-p1-utils.
(address . 72474@debbugs.gnu.org)
7628437dd3a132b499c7f5cc684a15588c5461f5.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-p1-utils): New variable.

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

Toggle diff (29 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 1e5d87e833..954bd15773 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -62,6 +62,22 @@ (define-public erlang-jose
(home-page "https://hex.pm/packages/jose")
(license license:expat)))
+(define-public erlang-p1-utils
+ (package
+ (name "erlang-p1-utils")
+ (version "1.0.26")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "p1_utils" version))
+ (sha256
+ (base32 "0k5hfqrjrvgh7gknqj5pzpra9k1g0bgc2ac19zb8pfan2669wdyh"))))
+ (build-system rebar-build-system)
+ (synopsis "ProcessOne utility modules for Erlang")
+ (description "This package provides ProcessOne utility modules for Erlang.")
+ (home-page "https://hex.pm/packages/p1_utils")
+ (license license:asl2.0)))
+
(define-public erlang-base64url
(package
(name "erlang-base64url")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 07/30] gnu: Add erlang-unicode-util-compat.
(address . 72474@debbugs.gnu.org)
b1a4f0ce4925177608e046087a106586d922228f.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-unicode-util-compat): New variable.

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

Toggle diff (30 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 954bd15773..6e25194acd 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -78,6 +78,23 @@ (define-public erlang-p1-utils
(home-page "https://hex.pm/packages/p1_utils")
(license license:asl2.0)))
+(define-public erlang-unicode-util-compat
+ (package
+ (name "erlang-unicode-util-compat")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "unicode_util_compat" version))
+ (sha256
+ (base32 "08952lw8cjdw8w171lv8wqbrxc4rcmb3jhkrdb7n06gngpbfdvi5"))))
+ (build-system rebar-build-system)
+ (synopsis "Compatibility library for Erlang < 20")
+ (description "This package provides @code{unicode_util} compatibility
+library for Erlang < 20.")
+ (home-page "https://hex.pm/packages/unicode_util_compat")
+ (license license:asl2.0)))
+
(define-public erlang-base64url
(package
(name "erlang-base64url")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 08/30] gnu: Add erlang-idna.
(address . 72474@debbugs.gnu.org)
93175ef855a0cd4bef52b85cc127c2565aa58546.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-idna): New variable.

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

Toggle diff (30 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 6e25194acd..cb306d30b8 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -95,6 +95,23 @@ (define-public erlang-unicode-util-compat
(home-page "https://hex.pm/packages/unicode_util_compat")
(license license:asl2.0)))
+(define-public erlang-idna
+ (package
+ (name "erlang-idna")
+ (version "6.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "idna" version))
+ (sha256
+ (base32 "1sjcjibl34sprpf1dgdmzfww24xlyy34lpj7mhcys4j4i6vnwdwj"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-unicode-util-compat))
+ (synopsis "Pure Erlang IDNA implementation")
+ (description "This package provides a pure Erlang IDNA implementation.")
+ (home-page "https://hex.pm/packages/idna")
+ (license license:expat)))
+
(define-public erlang-base64url
(package
(name "erlang-base64url")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 10/30] gnu: Add erlang-cache-tab.
(address . 72474@debbugs.gnu.org)
2fc57bb31648317c973621d51dc13248133fe050.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-cache-tab): New variable.

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

Toggle diff (39 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index de70852399..d247d990d4 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -105,6 +105,32 @@ (define-public erlang-stringprep
(home-page "https://hex.pm/packages/stringprep")
(license license:asl2.0)))
+(define-public erlang-cache-tab
+ (package
+ (name "erlang-cache-tab")
+ (version "1.0.31")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "cache_tab" version))
+ (sha256
+ (base32 "0lb35g3p3ybij5f7fnilq3ni37nfgzhajnrmhvplgch9985bd0l5"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-p1-utils))
+ (native-inputs (list erlang-pc))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "In-memory cache Erlang/Elixir library")
+ (description "This package provides in-memory cache Erlang/Elixir library.")
+ (home-page "https://hex.pm/packages/cache_tab")
+ (license license:asl2.0)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 09/30] gnu: Add erlang-stringprep.
(address . 72474@debbugs.gnu.org)
6df13bf79f41be1232ff1b8105377df1d233afb5.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-stringprep): New variable.

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

Toggle diff (40 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index cb306d30b8..de70852399 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -78,6 +78,33 @@ (define-public erlang-p1-utils
(home-page "https://hex.pm/packages/p1_utils")
(license license:asl2.0)))
+(define-public erlang-stringprep
+ (package
+ (name "erlang-stringprep")
+ (version "1.0.30")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "stringprep" version))
+ (sha256
+ (base32 "16hb49f9ghx8sqrs7928fjig9wyah22z7cl91y1pff50hhrrpz7n"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-p1-utils))
+ (native-inputs (list erlang-pc))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "Fast Stringprep Erlang/Elixir implementation")
+ (description "This package provides fast Stringprep Erlang/Elixir
+implementation.")
+ (home-page "https://hex.pm/packages/stringprep")
+ (license license:asl2.0)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 11/30] gnu: Add erlang-eimp.
(address . 72474@debbugs.gnu.org)
5ba1d501167d74aed1f3d3873c476b34bd2f9198.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-eimp): New variable.

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

Toggle diff (39 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index d247d990d4..9ee1e903bd 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -131,6 +131,32 @@ (define-public erlang-cache-tab
(home-page "https://hex.pm/packages/cache_tab")
(license license:asl2.0)))
+(define-public erlang-eimp
+ (package
+ (name "erlang-eimp")
+ (version "1.0.23")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "eimp" version))
+ (sha256
+ (base32 "12k2df0mwq16rh77ziiahq9mjd9cy2jfdnsbzkj96a6b4c07hz4h"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-p1-utils))
+ (native-inputs (list erlang-pc))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "Erlang/Elixir image converter")
+ (description "This package provides Erlang/Elixir image converter.")
+ (home-page "https://hex.pm/packages/eimp")
+ (license license:asl2.0)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 12/30] gnu: Add erlang-mqtree.
(address . 72474@debbugs.gnu.org)
e8882873e1977aa4dfe9564168a27c106d968de0.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-mqtree): New variable.

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

Toggle diff (39 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 9ee1e903bd..b3e8d13ad7 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -157,6 +157,32 @@ (define-public erlang-eimp
(home-page "https://hex.pm/packages/eimp")
(license license:asl2.0)))
+(define-public erlang-mqtree
+ (package
+ (name "erlang-mqtree")
+ (version "1.0.17")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "mqtree" version))
+ (sha256
+ (base32 "18z23c1axn6y9799f0ydb0m29wxvq956b57bzk886ixwiz7vgs2z"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-p1-utils))
+ (native-inputs (list erlang-pc))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "Index tree for MQTT topic filters")
+ (description "This package provides index tree for MQTT topic filters.")
+ (home-page "https://hex.pm/packages/mqtree")
+ (license license:asl2.0)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 13/30] gnu: Add erlang-jiffy.
(address . 72474@debbugs.gnu.org)
2d0b55cbd79c60966a79ffef4abbcc022c0338fe.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-jiffy): New variable.

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

Toggle diff (47 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index b3e8d13ad7..81dfe1c5de 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -19,6 +19,7 @@
(define-module (gnu packages erlang-xyz)
#:use-module (gnu packages)
#:use-module (gnu packages erlang)
+ #:use-module (gnu packages python)
#:use-module (guix build-system rebar)
#:use-module (guix download)
#:use-module (guix gexp)
@@ -62,6 +63,32 @@ (define-public erlang-jose
(home-page "https://hex.pm/packages/jose")
(license license:expat)))
+(define-public erlang-jiffy
+ (package
+ (name "erlang-jiffy")
+ (version "1.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "jiffy" version))
+ (sha256
+ (base32 "10gkbi48in96bzkv7f2cqw9119krpd40whcsn0yd7fr0lx1bqqdv"))))
+ (build-system rebar-build-system)
+ (native-inputs (list erlang-pc
+ python)) ; for tests
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "JSON Decoder/Encoder")
+ (description "This package provides JSON Decoder/Encoder for Erlang.")
+ (home-page "https://hex.pm/packages/jiffy")
+ (license license:expat)))
+
(define-public erlang-p1-utils
(package
(name "erlang-p1-utils")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 16/30] gnu: Add erlang-ezlib.
(address . 72474@debbugs.gnu.org)
bbc64f5bb470c1cec6a148722cc564aabd246775.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-ezlib): New variable.

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

Toggle diff (39 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 488c7a766c..58b503b49c 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -242,6 +242,32 @@ (define-public erlang-mqtree
(home-page "https://hex.pm/packages/mqtree")
(license license:asl2.0)))
+(define-public erlang-ezlib
+ (package
+ (name "erlang-ezlib")
+ (version "1.0.13")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "ezlib" version))
+ (sha256
+ (base32 "1fxz584ry1ib35r74hbmapwq71j5iv5rymm927ys0mgdz2rjmrly"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-p1-utils))
+ (native-inputs (list erlang-pc))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "Native zlib driver for Erlang/Elixir")
+ (description "This package provides native zlib driver for Erlang/Elixir.")
+ (home-page "https://hex.pm/packages/ezlib")
+ (license license:asl2.0)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 17/30] gnu: Add erlang-fast-tls.
(address . 72474@debbugs.gnu.org)
7c02752ce7713dfd8d625b0fbbb4b812028aa670.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-fast-tls): New variable.

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

Toggle diff (61 lines)
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
Igor Goryachev wrote 7 months ago
[PATCH 19/30] gnu: Add erlang-fast-xml.
(address . 72474@debbugs.gnu.org)
4293d24e463cf2f873fdbc1bc785f722748d389e.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-fast-xml): New variable.

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

Toggle diff (40 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index d534cc4c6f..f0d62e1679 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -326,6 +326,33 @@ (define-public erlang-stun
(home-page "https://hex.pm/packages/stun")
(license license:asl2.0)))
+(define-public erlang-fast-xml
+ (package
+ (name "erlang-fast-xml")
+ (version "1.1.52")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "fast_xml" version))
+ (sha256
+ (base32 "1z8vrpnjx8y9qfqhhj4is8k4lzvjlnzhp6d62r8bdlh61qwr4lbr"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-p1-utils))
+ (native-inputs (list erlang-pc))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "Fast Expat-based Erlang/Elixir XML parsing library")
+ (description "This package provides fast Expat-based Erlang/Elixir XML
+parsing library.")
+ (home-page "https://hex.pm/packages/fast_xml")
+ (license license:asl2.0)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 20/30] gnu: Add erlang-fast-yaml.
(address . 72474@debbugs.gnu.org)
04bee75dbd935a8621eacd66e5ce1b99e4e04565.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-fast-yaml): New variable.

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

Toggle diff (51 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index f0d62e1679..7d03590639 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 serialization)
#:use-module (gnu packages tls)
#:use-module (guix build-system rebar)
#:use-module (guix download)
@@ -353,6 +354,36 @@ (define-public erlang-fast-xml
(home-page "https://hex.pm/packages/fast_xml")
(license license:asl2.0)))
+(define-public erlang-fast-yaml
+ (package
+ (name "erlang-fast-yaml")
+ (version "1.0.37")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "fast_yaml" version))
+ (sha256
+ (base32 "0sd72nal5i6mbmicsmb494mr4g0gvs719lzp2hj1gqpp3dr6is4d"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-p1-utils))
+ (native-inputs (list erlang-pc libyaml))
+ (arguments
+ (list
+ #:tests? #f ; some required files are absent
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc")
+ (let ((openssl (assoc-ref %build-inputs "libyaml")))
+ (setenv "LDFLAGS" (string-append "-L" openssl "/lib"))
+ (setenv "CFLAGS" (string-append "-I" openssl "/include"))))))))
+ (synopsis "Fast YAML native library for Erlang/Elixir")
+ (description "This package provides fast YAML native library for Erlang/Elixir.")
+ (home-page "https://hex.pm/packages/fast_yaml")
+ (license license:asl2.0)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 21/30] gnu: Add erlang-yconf.
(address . 72474@debbugs.gnu.org)
de808745cebb36bda0a5509c7b2db17d85027cd3.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-yconf): New variable.

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

Toggle diff (30 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 7d03590639..565de27608 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -384,6 +384,23 @@ (define-public erlang-fast-yaml
(home-page "https://hex.pm/packages/fast_yaml")
(license license:asl2.0)))
+(define-public erlang-yconf
+ (package
+ (name "erlang-yconf")
+ (version "1.0.16")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "yconf" version))
+ (sha256
+ (base32 "12bcb0w0nc30bws4lx2ghnz7n755r6nf9a75nb3i31zkfcr82iz9"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-fast-yaml))
+ (synopsis "YAML configuration processor")
+ (description "This package provides YAML configuration processor.")
+ (home-page "https://hex.pm/packages/yconf")
+ (license license:asl2.0)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 23/30] gnu: Add erlang-p1-acme.
(address . 72474@debbugs.gnu.org)
3d0ad8f0a77be54cc2ebdfaeb9c8cac132621820.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-p1-acme): New variable.

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

Toggle diff (40 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 5de258d316..1a9c747ee1 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -108,6 +108,33 @@ (define-public erlang-pkix
(home-page "https://hex.pm/packages/pkix")
(license license:asl2.0)))
+(define-public erlang-p1-acme
+ (package
+ (name "erlang-p1-acme")
+ (version "1.0.23")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "p1_acme" version))
+ (sha256
+ (base32 "0nfxs3ldgbh7a8r7wxl0gw98r1v50jaj54c0nw8fl8ixdvr9dqcc"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-base64url erlang-idna erlang-jiffy erlang-jose
+ erlang-yconf))
+ (native-inputs (list erlang-pc))
+ (arguments
+ (list
+ #:tests? #f ; no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp"))))))
+ (synopsis "ACME client for Erlang")
+ (description "This package provides ACME client for Erlang.")
+ (home-page "https://hex.pm/packages/p1_acme")
+ (license license:asl2.0)))
+
(define-public erlang-p1-oauth2
(package
(name "erlang-p1-oauth2")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 24/30] gnu: Add erlang-xmpp.
(address . 72474@debbugs.gnu.org)
48a5d666fb664693bfc3ffbd60f91eb38631016e.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-xmpp): New variable.

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

Toggle diff (45 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 1a9c747ee1..a515bf83c2 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -382,6 +382,38 @@ (define-public erlang-fast-xml
(home-page "https://hex.pm/packages/fast_xml")
(license license:asl2.0)))
+(define-public erlang-xmpp
+ (package
+ (name "erlang-xmpp")
+ (version "1.8.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "xmpp" version))
+ (sha256
+ (base32 "04gpka0dp03jvgnin1g12ha4yzwy1h44rds3zzf1ia49k9ghcw7d"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-ezlib
+ erlang-fast-tls
+ erlang-fast-xml
+ erlang-idna
+ erlang-p1-utils
+ erlang-stringprep))
+ (native-inputs (list erlang-pc erlang-provider-asn1))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "XMPP parsing and serialization library for Erlang/Elixir")
+ (description "This package provides XMPP parsing and serialization library
+for Erlang/Elixir.")
+ (home-page "https://hex.pm/packages/xmpp")
+ (license license:asl2.0)))
+
(define-public erlang-fast-yaml
(package
(name "erlang-fast-yaml")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 26/30] gnu: Add erlang-p1-mysql.
(address . 72474@debbugs.gnu.org)
82425afbee1be5b478cf074c9d2b9b74152615ab.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-p1-mysql): New variable.

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

Toggle diff (29 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 71e261bfc1..fc09a6747e 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -167,6 +167,22 @@ (define-public erlang-p1-utils
(home-page "https://hex.pm/packages/p1_utils")
(license license:asl2.0)))
+(define-public erlang-p1-mysql
+ (package
+ (name "erlang-p1-mysql")
+ (version "1.0.24")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "p1_mysql" version))
+ (sha256
+ (base32 "0pv5zfpkw6sgmn6jbm5k635xnx8kkcvgynka5ix50zr5cigqcn7h"))))
+ (build-system rebar-build-system)
+ (synopsis "Pure Erlang MySQL driver")
+ (description "This package provides pure Erlang @code{MySQL} driver.")
+ (home-page "https://hex.pm/packages/p1_mysql")
+ (license license:asl2.0)))
+
(define-public erlang-stringprep
(package
(name "erlang-stringprep")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 27/30] gnu: Add erlang-p1-pgsql.
(address . 72474@debbugs.gnu.org)
7706e0db8f2e4b714820a8c92b9d7610c6469e6a.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-p1-pgsql): New variable.

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

Toggle diff (30 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index fc09a6747e..be678794b4 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -183,6 +183,23 @@ (define-public erlang-p1-mysql
(home-page "https://hex.pm/packages/p1_mysql")
(license license:asl2.0)))
+(define-public erlang-p1-pgsql
+ (package
+ (name "erlang-p1-pgsql")
+ (version "1.1.27")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "p1_pgsql" version))
+ (sha256
+ (base32 "1fgzchikv31gbyid3qqy9wzwmap1nalwb7fqal77hs6b09v1lkcf"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-xmpp))
+ (synopsis "PostgreSQL driver for Erlang")
+ (description "This package provides @code{PostgreSQL} driver for Erlang.")
+ (home-page "https://hex.pm/packages/p1_pgsql")
+ (license license:asl2.0)))
+
(define-public erlang-stringprep
(package
(name "erlang-stringprep")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 29/30] gnu: Add erlang-eredis.
(address . 72474@debbugs.gnu.org)
036b539473861b540b1c4d0cf9c83e3fa1c7e6d4.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-eredis): New variable.

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

Toggle diff (32 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index b1ac387440..3eb2cf25ab 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -574,6 +574,25 @@ (define-public erlang-epam
(home-page "https://hex.pm/packages/epam")
(license license:asl2.0)))
+(define-public erlang-eredis
+ (package
+ (name "erlang-eredis")
+ (version "1.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "eredis" version))
+ (sha256
+ (base32 "1h9wihjqs4fmgr5ihqpisf7k99h006dsf71lygp5zmgycv2m8avw"))))
+ (build-system rebar-build-system)
+ (synopsis
+ "Non-blocking Redis client with focus on performance and robustness")
+ (description
+ "This package provides non-blocking Redis client for Erlang with focus
+on performance and robustness.")
+ (home-page "https://hex.pm/packages/eredis")
+ (license license:expat)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 30/30] gnu: Add ejabberd.
(address . 72474@debbugs.gnu.org)
771ba2c109b39bc9419cb3bb3e2d5efed6c24184.1722851684.git.igor@goryachev.org
* gnu/packages/messaging.scm (ejabberd): New variable.

Change-Id: Ia2d5201f02205debfcbf1eebf24761c0c5fceae6
---
gnu/packages/messaging.scm | 134 +++++++++++++++++++++++++++++++++++++
1 file changed, 134 insertions(+)

Toggle diff (166 lines)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 7dd1c3765a..92e327d507 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -43,6 +43,7 @@
;;; Copyright © 2024 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se>
+;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -82,6 +83,8 @@ (define-module (gnu packages messaging)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages enchant)
+ #:use-module (gnu packages erlang)
+ #:use-module (gnu packages erlang-xyz)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
@@ -157,6 +160,7 @@ (define-module (gnu packages messaging)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
+ #:use-module (guix build-system rebar)
#:use-module (guix build-system qt)
#:use-module (guix build-system trivial)
#:use-module (guix download)
@@ -3627,4 +3631,134 @@ (define-public senpai
"@code{senpai} is an IRC client that works best with bouncers.")
(license license:isc)))
+(define-public ejabberd
+ (package
+ (name "ejabberd")
+ (version "24.07")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/processone/ejabberd")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0d5i9skgfjzs2100k0g99sigc2w61480ysz3va6pmb4nx43100g3"))))
+ (build-system rebar-build-system)
+ (native-inputs
+ (list autoconf
+ automake
+ erlang-base64url
+ erlang-cache-tab
+ erlang-eimp
+ erlang-epam
+ erlang-eredis
+ erlang-esip
+ erlang-ezlib
+ erlang-fast-tls
+ erlang-fast-xml
+ erlang-fast-yaml
+ erlang-idna
+ erlang-jiffy
+ erlang-jose
+ erlang-luerl
+ erlang-mqtree
+ erlang-p1-acme
+ erlang-p1-mysql
+ erlang-p1-oauth2
+ erlang-p1-pgsql
+ erlang-p1-utils
+ erlang-pc
+ erlang-pkix
+ erlang-provider-asn1
+ erlang-stringprep
+ erlang-stun
+ erlang-sqlite3
+ erlang-unicode-util-compat
+ erlang-xmpp
+ erlang-yconf))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc")))
+ (add-after 'unpack 'bootstrap
+ (lambda _
+ (invoke "aclocal" "-I" "m4")
+ (invoke "autoconf" "-f")))
+ (add-after 'bootstrap 'make-various-fixes
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((sh (search-input-file inputs "/bin/sh")))
+ ;; Fix shell locations.
+ (substitute* "configure" (("/bin/sh") sh))
+ (substitute* "rebar.config.script"
+ (("sh -c '") (string-append sh " -c '")))
+ ;; Do not recompile dependences.
+ (substitute* "rebar.config"
+ (("\\[\\{\"eimp\", \\[\\]\\},") "[]}.\n{nop, ["))
+ ;; Do not include source files into release.
+ (substitute* "rebar.config"
+ (("\\{include_src, true\\},") "{include_src, false},"))
+ ;; Do not install erl wrapper, we will do it ourselves.
+ (substitute* "rebar.config"
+ (("\\{copy, \"rel/files/erl\",")
+ "%{copy, \"rel/files/erl\","))
+ ;; Unpin pinned dependences.
+ (substitute* "rebar.lock"
+ ((",1\\}") ",0}"))
+ ;; Set proper paths.
+ (substitute* "vars.config.in"
+ (("\\{sysconfdir, \".*\"\\}\\.")
+ "{sysconfdir, \"/etc\"}."))
+ (substitute* "vars.config.in"
+ (("\\{localstatedir, \".*\"\\}\\.")
+ "{sysconfdir, \"/var\"}."))
+ (substitute* "vars.config.in"
+ (("\\{config_dir, \".*\"\\}\\.")
+ "{config_dir, \"/etc/ejabberd\"}."))
+ (substitute* "vars.config.in"
+ (("\\{logs_dir, \".*\"\\}\\.")
+ "{logs_dir, \"/var/log/ejabberd\"}."))
+ (substitute* "vars.config.in"
+ (("\\{spool_dir, \".*\"\\}\\.")
+ "{spool_dir, \"/var/lib/ejabberd\"}.")))))
+ (add-after 'make-various-fixes 'configure
+ (lambda _
+ (invoke "./configure"
+ (string-append "--prefix=" #$output))))
+ (replace 'build
+ (lambda _
+ (invoke "make" "rel")))
+ (replace 'install
+ (lambda _
+ (let ((ejabberd "_build/prod/rel/ejabberd"))
+ (copy-recursively
+ (string-append ejabberd "/conf")
+ (string-append ejabberd "/share/doc/ejabberd-"
+ #$version "/examples"))
+ (for-each
+ (lambda (rmdir)
+ (delete-file-recursively
+ (string-append ejabberd "/" rmdir)))
+ '("conf" "database" "logs"))
+ (delete-file
+ (string-append (string-append ejabberd "/ejabberd-"
+ #$version ".tar.gz")))
+ (let ((erts (car (find-files ejabberd "erts-.*"
+ #:directories? #t))))
+ (delete-file (string-append erts "/bin/erl"))
+ (install-file "rel/files/erl"
+ (string-append erts "/bin")))
+ (chmod (string-append ejabberd
+ "/bin/install_upgrade.escript") #o755)
+ (copy-recursively ejabberd #$output)))))))
+ (synopsis "Robust, Ubiquitous and Massively Scalable Messaging Platform")
+ (description "This package provides Ejabberd -- Robust, Ubiquitous and
+Massively Scalable Messaging Platform. It supports XMPP, MQTT and SIP protocols.")
+ (home-page "https://www.ejabberd.im")
+ (license license:gpl2+)))
+
;;; messaging.scm ends here
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 14/30] gnu: Add erlang-p1-oauth2.
(address . 72474@debbugs.gnu.org)
758c69f5cbedcf13c1584a629d8cac3e0b818bc0.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-p1-oauth2): New variable.

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

Toggle diff (29 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 81dfe1c5de..c50d7cc2da 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -89,6 +89,22 @@ (define-public erlang-jiffy
(home-page "https://hex.pm/packages/jiffy")
(license license:expat)))
+(define-public erlang-p1-oauth2
+ (package
+ (name "erlang-p1-oauth2")
+ (version "0.6.14")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "p1_oauth2" version))
+ (sha256
+ (base32 "13xfk4flaqb3nsxirf3vmy3yv67n6s6xzil7bafjswj39r3srlqz"))))
+ (build-system rebar-build-system)
+ (synopsis "OAuth 2.0 implementation for Erlang")
+ (description "This package provides OAuth 2.0 implementation for Erlang.")
+ (home-page "https://hex.pm/packages/p1_oauth2")
+ (license (list license:expat license:asl2.0))))
+
(define-public erlang-p1-utils
(package
(name "erlang-p1-utils")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 25/30] gnu: Add erlang-esip.
(address . 72474@debbugs.gnu.org)
b069d7a51b424303e31beb503c26f1fe5153763f.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-esip): New variable.

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

Toggle diff (40 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index a515bf83c2..71e261bfc1 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -414,6 +414,33 @@ (define-public erlang-xmpp
(home-page "https://hex.pm/packages/xmpp")
(license license:asl2.0)))
+(define-public erlang-esip
+ (package
+ (name "erlang-esip")
+ (version "1.0.54")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "esip" version))
+ (sha256
+ (base32 "1vip49gbz1z6sgrab6021fdlqq7g7712d5znvanwsnbjkn0sz1w1"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-fast-tls erlang-p1-utils erlang-stun))
+ (native-inputs (list erlang-pc))
+ (arguments
+ (list
+ #:tests? #f ; no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "SIP server component in Erlang")
+ (description "This package provides ProcessOne SIP server component in Erlang.")
+ (home-page "https://hex.pm/packages/esip")
+ (license license:asl2.0)))
+
(define-public erlang-fast-yaml
(package
(name "erlang-fast-yaml")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 18/30] gnu: Add erlang-stun.
(address . 72474@debbugs.gnu.org)
a2086de5ebb48e6086fe2b40171b26dfe61a6255.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-stun): New variable.

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

Toggle diff (30 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 2d0d8cd567..d534cc4c6f 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -309,6 +309,23 @@ (define-public erlang-fast-tls
(home-page "https://hex.pm/packages/fast_tls")
(license license:asl2.0)))
+(define-public erlang-stun
+ (package
+ (name "erlang-stun")
+ (version "1.2.14")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "stun" version))
+ (sha256
+ (base32 "10qm6wh6smj3ixpy251x5w2b9iv51vhgxvk49vczz3bs3dxq0d71"))))
+ (build-system rebar-build-system)
+ (inputs (list erlang-fast-tls erlang-p1-utils))
+ (synopsis "STUN and TURN library for Erlang/Elixir")
+ (description "This package provodes STUN and TURN library for Erlang/Elixir.")
+ (home-page "https://hex.pm/packages/stun")
+ (license license:asl2.0)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 15/30] gnu: Add erlang-pkix.
(address . 72474@debbugs.gnu.org)
3e7c5da7e9d58a4a811d452ba5bc4987f639490e.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-pkix): New variable.

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

Toggle diff (29 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index c50d7cc2da..488c7a766c 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -89,6 +89,22 @@ (define-public erlang-jiffy
(home-page "https://hex.pm/packages/jiffy")
(license license:expat)))
+(define-public erlang-pkix
+ (package
+ (name "erlang-pkix")
+ (version "1.0.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "pkix" version))
+ (sha256
+ (base32 "03jxmjirg98r1zq7b1f3mnwm8pb1iac2iaxi85615jwl63w688g0"))))
+ (build-system rebar-build-system)
+ (synopsis "PKIX management")
+ (description "This package provides PKIX management for Erlang.")
+ (home-page "https://hex.pm/packages/pkix")
+ (license license:asl2.0)))
+
(define-public erlang-p1-oauth2
(package
(name "erlang-p1-oauth2")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 22/30] gnu: Add erlang-epam.
(address . 72474@debbugs.gnu.org)
a1e767691c5e9a8aec0e1d2da61082104e91f088.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-epam): New variable.

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

Toggle diff (48 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index 565de27608..5de258d316 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -19,6 +19,7 @@
(define-module (gnu packages erlang-xyz)
#:use-module (gnu packages)
#:use-module (gnu packages erlang)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages python)
#:use-module (gnu packages serialization)
#:use-module (gnu packages tls)
@@ -401,6 +402,33 @@ (define-public erlang-yconf
(home-page "https://hex.pm/packages/yconf")
(license license:asl2.0)))
+(define-public erlang-epam
+ (package
+ (name "erlang-epam")
+ (version "1.0.14")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "epam" version))
+ (sha256
+ (base32 "12frsirp8m0ajdb19xi1g86zghhgvld5cgw459n2m9w553kljd1g"))))
+ (build-system rebar-build-system)
+ (native-inputs (list erlang-pc linux-pam))
+ (arguments
+ (list
+ #:tests? #f ; no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "Helper for PAM authentication support")
+ (description "This package provides epam helper for PAM authentication
+support.")
+ (home-page "https://hex.pm/packages/epam")
+ (license license:asl2.0)))
+
(define-public erlang-unicode-util-compat
(package
(name "erlang-unicode-util-compat")
--
2.45.2
Igor Goryachev wrote 7 months ago
[PATCH 28/30] gnu: Add erlang-sqlite3.
(address . 72474@debbugs.gnu.org)
63f2cff7897c766ef842f1ed661fbcb9e07ba436.1722851684.git.igor@goryachev.org
* gnu/packages/erlang-xyz.scm (erlang-sqlite3): New variable.

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

Toggle diff (46 lines)
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm
index be678794b4..b1ac387440 100644
--- a/gnu/packages/erlang-xyz.scm
+++ b/gnu/packages/erlang-xyz.scm
@@ -22,6 +22,7 @@ (define-module (gnu packages erlang-xyz)
#:use-module (gnu packages linux)
#:use-module (gnu packages python)
#:use-module (gnu packages serialization)
+ #:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (guix build-system rebar)
#:use-module (guix download)
@@ -200,6 +201,31 @@ (define-public erlang-p1-pgsql
(home-page "https://hex.pm/packages/p1_pgsql")
(license license:asl2.0)))
+(define-public erlang-sqlite3
+ (package
+ (name "erlang-sqlite3")
+ (version "1.1.15")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hexpm-uri "sqlite3" version))
+ (sha256
+ (base32 "0mr8kpv8hf4yknx8vbmyakgasrhk64ldsbafvr4svhi26ghs82rw"))))
+ (build-system rebar-build-system)
+ (native-inputs (list erlang-pc sqlite))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'set-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "CC" "gcc"))))))
+ (synopsis "SQLite3 driver for Erlang")
+ (description "This package provides SQLite3 driver for Erlang.")
+ (home-page "https://hex.pm/packages/sqlite3")
+ (license license:asl2.0)))
+
(define-public erlang-stringprep
(package
(name "erlang-stringprep")
--
2.45.2
Andrew Tropin wrote 7 months ago
Re: [bug#72474] [PATCH 00/30] Add ejabberd package.
(name . Igor Goryachev)(address . igor@goryachev.org)
87a5hrhykq.fsf@trop.in
On 2024-08-05 13:36, Igor Goryachev via Guix-patches via wrote:

Toggle quote (4 lines)
> Hello,
>
> I've packaged Ejabberd, a well-known XMPP server written mostly in Erlang. It advertises itself as "Robust, Ubiquitous and Massively Scalable Messaging Platform, which supports XMPP, MQTT and SIP protocols".

Hi Igor!

Thank you very much for packaging ejabberd, I adjust a few minor
formatting things, builded, linted and checked if binary runs, pushed as

--
Best regards,
Andrew Tropin
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmaw17UACgkQIgjSCVjB
3rBv3g/+MGXfsfqQdA8CubXOhdFupYtUM3DEYEC1vyPmFCwGppUnNIO+ebjY8xH5
joZguhlmxQAit13JmQHRzeVjjyaztbHXmnPE3Y0bs8CWYrJn1zYWBt3xhkTp8wTQ
4w1ZoYowWVJVswyFJTjqjM3ZBNiMsoS3lE+l0iMoyMxdjL5Vd0c2nEg8ZX++I2v+
tUmGGaFFEZrkwHUk006jA/zkWtjeLQY3vfHnj/jO0+L25N0SAGkEpScosvLsMUo0
ibRiGIKR7IdK4p16HEnN8TVuDlw6E7ipjDOCtPYkKOhdl+2+Q4A81pdJilbZUVgm
9fi6FHk3h5bk41y+l5U8zEXoqtk4GdottvZqgpgf2az0G+l0Tn1NIqncU6K1nh+8
qo7hGfMOwPJM01Lsb3ly9dMYUfRQ2Jq2V1yEzkY8u/eWB/32bCrsTq/3F5D0l9Z2
QiGfrRw5x1H7hVIHRfv2JQiM6HWGwVSNLB0hMww1DGeJ3BUH37zDoFya9RT3ryZu
/GuG2LmlaIdPJa+q6nUdIojBdGeqz9wI0ISaWzrqD15anuMyRPHBeslEZzDaP5I4
MOM/xMGK6D/JzZIpaH9MnOTyYcL6oJLhiJ2dXrLHxXv3GHAys3x48yl8Rsne5M+v
TzxDtQfCe3Wy/iLn0JbASkGY5NgpbrNLv5hHLPTZSVsQQT9m/9I=
=pNwT
-----END PGP SIGNATURE-----

?
Your comment

This issue is archived.

To comment on this conversation send an email to 72474@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 72474
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help