[PATCH 00/20] Update erlang, elixir things, add xxkb.

  • 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 9 months ago
(address . guix-patches@gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
cover.1718205806.git.igor@goryachev.org
Erlang, Elixir and some their tools/libs updates with several improvements and fixes. And also added xxkb as a new package.

Igor Goryachev (20):
gnu: rebar3: Make rebar3 escriptize reproducible.
gnu: erlang: Update to 26.2.5.
gnu: erlang-certifi: Update to 2.13.0.
gnu: erlang-covertool: Update to 2.0.6.
gnu: erlang-cth-readable: Update to 1.6.0.
gnu: erlang-edown: Update to 0.9.1.
gnu: erlang-erlware-commons: Update to 1.7.0.
gnu: erlang-getopt: Update to 1.0.3.
gnu: erlang-hex-core: Update to 0.10.0.
gnu: erlang-jsone: Update to 1.8.1.
gnu: erlang-parse-trans: Update to 3.4.2.
gnu: erlang-relx: Update to 4.9.0.
gnu: erlang-ssl-verify-fun: Update to 1.1.7.
gnu: rebar3: Update to 3.23.0.
gnu: erlang-lfe: Update to 2.1.4.
gnu: elixir: Update to 1.16.3.
gnu: elixir-hex: Update to 2.1.1.
gnu: elixir: Add src output, metas correction, lint warnings fix.
gnu: erlang: Add chunks compilation.
gnu: Add xxkb.

gnu/packages/elixir.scm | 206 ++++++++++++++++++++++-----------------
gnu/packages/erlang.scm | 98 ++++++++++++-------
gnu/packages/xdisorg.scm | 48 +++++++++
3 files changed, 230 insertions(+), 122 deletions(-)


base-commit: 22482834c5412df9816adefecbf8915221999edb
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 01/20] gnu: rebar3: Make rebar3 escriptize reproducible.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
caf959b8e2f2f8a115095e72b59a38c15e8c94f1.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (rebar3): Make rebar3 escriptize reproducible.

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

Toggle diff (44 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index c53cb72c2e..975e989055 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2023 wrobell <wrobell@riseup.net>
;;; Copyright © 2023 Tim Johann <t1m@phrogstar.de>
+;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -638,6 +639,29 @@ (define-public rebar3
"eunit_formatters" "getopt" "hex_core" "erlware_commons"
"parse_trans" "relx" "ssl_verify_fun" "providers"))))
(delete 'configure)
+ ;; By default rebar3 produces escripts with embedded ZIP archives
+ ;; with files with current timestamps which is not suitable for
+ ;; reproducible builds. We fix it by setting predefined timestamps.
+ (add-before 'build 'make-escriptize-reproducible
+ (lambda _
+ (let ((escriptize "src/rebar_prv_escriptize.erl"))
+ (substitute* escriptize
+ (("\\[dir_entries\\(filename:dirname\\(Filename1\\)\\),")
+ (string-append "FilePath = filename:join(Dir, Filename),"
+ "{ok, FileInfo0} = file:read_file_info(FilePath),"
+ "DateTime = {{1970, 1, 1}, {0, 0, 1}},"
+ "FileInfo = FileInfo0#file_info{mtime = DateTime},"
+ "[dir_entries(filename:dirname(Filename1)),")))
+ (substitute* escriptize
+ (((string-append
+ "\\{Filename1, file_contents\\(filename:join\\(Dir, "
+ "Filename\\)\\)\\}\\]."))
+ "{Filename1, file_contents(FilePath), FileInfo}]."))
+ (substitute* escriptize
+ (((string-append "\\[\\{FName,FBin\\} \\|\\| \\{FName,FBin\\} <- "
+ "Files, FBin =/= <<>>\\]\\."))
+ (string-append "[{FName,FBin,FInfo} || {FName,FBin,FInfo} <- "
+ "Files, FBin =/= <<>>]."))))))
(replace 'build
(lambda _
(setenv "HOME" (getcwd))
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 04/20] gnu: erlang-covertool: Update to 2.0.6.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
37bc71580121f799c0f5e4ae9552b06520c6cdfa.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-covertool): Update to 2.0.6.

Change-Id: Ib2ace96df8c1831aea098c26da907bcf8c85102f
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 97cfd7d872..190f764a26 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -311,13 +311,13 @@ (define-public erlang-yamerl
(define-public erlang-covertool
(package
(name "erlang-covertool")
- (version "2.0.4")
+ (version "2.0.6")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "covertool" version))
(sha256
- (base32 "1p0c1n3nl4063xwi1sv176l1x68xqf07qwvj444a5z888fx6i5aw"))))
+ (base32 "088y3m0mmqprq3vd4q0dxrd1plx846mx3m2pv15fmn4047cgrcsx"))))
(build-system rebar-build-system)
(home-page "https://github.com/covertool/covertool")
(synopsis "Convert code-coverage data generated by @code{cover} into
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 03/20] gnu: erlang-certifi: Update to 2.13.0.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
38ccedabe1c7ebbcd55026473f0ef3562fbeea7c.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-certifi): Update to 2.13.0.

Change-Id: If1ea284809c6f581375140795ba2ca9e0deb39a8
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 9bd6394518..97cfd7d872 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -248,13 +248,13 @@ (define-public erlang-bbmustache
(define-public erlang-certifi
(package
(name "erlang-certifi")
- (version "2.9.0")
+ (version "2.13.0")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "certifi" version))
(sha256
- (base32 "0ha6vmf5p3xlbf5w1msa89frhvfk535rnyfybz9wdmh6vdms8v96"))))
+ (base32 "1887qmxp7qmha4c8k4m4cw35iii15srrdmfmvypp0q7hl0rragcg"))))
(build-system rebar-build-system)
(arguments
`(#:tests? #f)) ;; have not been updated for latest cert bundle
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 05/20] gnu: erlang-cth-readable: Update to 1.6.0.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
5befe68b254c0c9d560a119b6930559520f9f053.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-cth-readable): Update to 1.6.0.

Change-Id: I8e3d6e2585f1e7b570a49f17a3c86dcc67eaf145
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 190f764a26..a79bb43758 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -332,13 +332,13 @@ (define-public erlang-covertool
(define-public erlang-cth-readable
(package
(name "erlang-cth-readable")
- (version "1.5.1")
+ (version "1.6.0")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "cth_readable" version))
(sha256
- (base32 "104xgybb6iciy6i28pyyrarqzliddi8kjyq43ajaav7y5si42rb8"))))
+ (base32 "16851qzf2mjgw36s2bx3bb4x2vm8fpg8jk3dz8ph1mai5dim47lh"))))
(build-system rebar-build-system)
(propagated-inputs
(list erlang-cf))
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 06/20] gnu: erlang-edown: Update to 0.9.1.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
b5d679beabea387cf1794d8c59da2a1e5a306534.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-edown): Update to 0.9.1.

Change-Id: I99e5e9f8edfa86937b86c0a3a42b3b73b64afc5e
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index a79bb43758..2ba8c6aeb7 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -353,13 +353,13 @@ (define-public erlang-cth-readable
(define-public erlang-edown
(package
(name "erlang-edown")
- (version "0.8.4")
+ (version "0.9.1")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "edown" version))
(sha256
- (base32 "0ij47gvgs6yfqphj0f54qjzj18crj8y1dsjjlzpp3dp8pscqzbqw"))))
+ (base32 "1hl27qnylbjxzmz9w2pnm0wfmkcgyc6bcpmlm6mf35ymkj659ngr"))))
(build-system rebar-build-system)
(home-page "https://github.com/uwiger/edown")
(synopsis "Markdown extension for EDoc")
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 02/20] gnu: erlang: Update to 26.2.5.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
78f09980e36c51bf6f70d22d4515a6e2e74a4e01.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang): Update to 26.2.5.

Change-Id: I726eb2d7fd1d82c918707ec33d3d42ba279b74b9
---
gnu/packages/erlang.scm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 975e989055..9bd6394518 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -49,7 +49,7 @@ (define-module (gnu packages erlang)
(define-public erlang
(package
(name "erlang")
- (version "25.3.2")
+ (version "26.2.5")
(source (origin
(method git-fetch)
;; The tarball from http://erlang.org/download contains many
@@ -61,7 +61,7 @@ (define-public erlang
(file-name (git-file-name name version))
(sha256
(base32
- "092lym5a181gz89nscw7kqhw1wa6qvgcpkj80q4i9p79mxmsr1nj"))
+ "0hd4flm9x8254rcv8hj0hra5lh5n51vcpharxy2d1ph8059vfsmx"))
(patches (search-patches "erlang-man-path.patch"))))
(build-system gnu-build-system)
(native-inputs
@@ -71,11 +71,11 @@ (define-public erlang
("erlang-manpages"
,(origin
(method url-fetch)
- (uri (string-append "http://erlang.org/download/otp_doc_man_"
- (version-major+minor version) ".tar.gz"))
+ (uri (string-append "https://github.com/erlang/otp/releases/download"
+ "/OTP-" version "/otp_doc_man_" version ".tar.gz"))
(sha256
(base32
- "0vnpds5q17xc4jjj3sbsllpx68wyhgvx70714vkzyd68rbjmhmk7"))))))
+ "08ngil8578asjzmqa657l4zdy0cr0h9spkg88wp9kxl95bfyli8p"))))))
(inputs
(list ncurses openssl wxwidgets))
(propagated-inputs
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 08/20] gnu: erlang-getopt: Update to 1.0.3.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
d8a30d75be1b181a1a39f84cf590b278bb03ad22.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-getopt): Update to 1.0.3.

Change-Id: Ie2a94ae24377be227cc4fe0f39616312305cbb92
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 98ff520e0f..d0857f4699 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -413,13 +413,13 @@ (define-public erlang-eunit-formatters
(define-public erlang-getopt
(package
(name "erlang-getopt")
- (version "1.0.2")
+ (version "1.0.3")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "getopt" version))
(sha256
- (base32 "09pasi7ki1rivw9sl7xndj5qgjbdqvcscxk83yk85yr28gm9l0m0"))))
+ (base32 "0krj967wnlnfniscdgzbcsckjb8nwfqr49zp9x4j23slmj8dw0by"))))
(build-system rebar-build-system)
(home-page "https://github.com/jcomellas/getopt")
(synopsis "Command-line options parser for Erlang")
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 07/20] gnu: erlang-erlware-commons: Update to 1.7.0.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
3fe3a34df50a3ef012b4aae10c2453f83fb138fb.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-erlware-commons): Update to 1.7.0.

Change-Id: I72a7c0a592b2a485ea8d3bab7337e476ebce0f5a
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 2ba8c6aeb7..98ff520e0f 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -370,13 +370,13 @@ (define-public erlang-edown
(define-public erlang-erlware-commons
(package
(name "erlang-erlware-commons")
- (version "1.6.0")
+ (version "1.7.0")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "erlware_commons" version))
(sha256
- (base32 "18qam9xdzi74wppb0cj4zc8161i0i8djr79z8662m6d276f2jz5m"))))
+ (base32 "0fxkfzw3akq1zgiy3xk63irxzfifa5mk34ik75hvlcf0zzs0x1f0"))))
(build-system rebar-build-system)
(propagated-inputs
(list erlang-cf))
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 09/20] gnu: erlang-hex-core: Update to 0.10.0.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
d08cc452af47c1c3b322d0d3d5ad082563f5bd0b.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-hex-core): Update to 0.10.0.

Change-Id: I1fddff28f2194f55c79e00341bfc5525beab8ac2
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index d0857f4699..0bbeb8816f 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -430,13 +430,13 @@ (define-public erlang-getopt
(define-public erlang-hex-core
(package
(name "erlang-hex-core")
- (version "0.8.4")
+ (version "0.10.0")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "hex_core" version))
(sha256
- (base32 "06p65hlm29ky03vs3fq3qz6px2ylwp8b0f2y75wdf5cm0kx2332b"))))
+ (base32 "0mwz3n5jaabyc77q7w0pqsr5hl4r44bzr90gq30gz9zk5pmrl8hw"))))
(build-system rebar-build-system)
(arguments
`(#:phases
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 11/20] gnu: erlang-parse-trans: Update to 3.4.2.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
c8eb5190b5785812aa38c80c191e20ea6c531f29.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-parse-trans): Update to 3.4.2.

Change-Id: Ie14d7031e8e5d16f342e58edeb4564267e22b9fc
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index f426c7b694..8f153af0f2 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -480,13 +480,13 @@ (define-public erlang-jsone
(define-public erlang-parse-trans
(package
(name "erlang-parse-trans")
- (version "3.4.1")
+ (version "3.4.2")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "parse_trans" version))
(sha256
- (base32 "16p4c2xjrvz16kzpr9pmcvi6nxq6rwckqi9fp0ksibaxwxn402k2"))))
+ (base32 "1jnr4k93vgcwnphsvczkwgm0pvnfs51sns9fscr5ghxpwdyk89ac"))))
(build-system rebar-build-system)
(inputs
(list erlang-getopt))
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 12/20] gnu: erlang-relx: Update to 4.9.0.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
d09f5e545d579169f8bd8fb7f33a872b2d1ff1ea.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-relx): Update to 4.9.0.

Change-Id: I6e767f7c54d182566db6865b28a7a6e1e864ba9c
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 8f153af0f2..643db8abe0 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -565,13 +565,13 @@ (define-public erlang-providers
(define-public erlang-relx
(package
(name "erlang-relx")
- (version "4.6.0")
+ (version "4.9.0")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "relx" version))
(sha256
- (base32 "02gmfx1vxg9m3mq4njsqhs4972l4nb8m5p1pdcf64g09ccf17y1g"))))
+ (base32 "1iamihsd3gi82sc7169rx5730drvgm0n4k7clg75pap79b6pgjqj"))))
(build-system rebar-build-system)
(propagated-inputs
(list erlang-bbmustache))
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 10/20] gnu: erlang-jsone: Update to 1.8.1.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
93a740b662ae614ea2ac4517c88abb89b5964155.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-jsone): Update to 1.8.1.

Change-Id: I385c38c75a566ca4603fc871bef367220316bd2a
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 0bbeb8816f..f426c7b694 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -456,13 +456,13 @@ (define-public erlang-hex-core
(define-public erlang-jsone
(package
(name "erlang-jsone")
- (version "1.7.0")
+ (version "1.8.1")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "jsone" version))
(sha256
- (base32 "1gaxiw76syjp3s9rygskm32y9799b917q752rw8bxj3bxq93g8x3"))))
+ (base32 "0f4px5l89a988rc8h79gb35zi0b2pjdy6y66hix1mia88491i2f7"))))
(build-system rebar-build-system)
(arguments
`(#:phases
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 13/20] gnu: erlang-ssl-verify-fun: Update to 1.1.7.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
3279dd31d7cd627029bc8d5011b774d497669d11.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-ssl-verify-fun): Update to 1.1.7.

Change-Id: I9bfa90dc27dc39863ffa5112c08beee0ee79bf32
---
gnu/packages/erlang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 643db8abe0..a71decdd7c 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -587,13 +587,13 @@ (define-public erlang-relx
(define-public erlang-ssl-verify-fun
(package
(name "erlang-ssl-verify-fun")
- (version "1.1.6")
+ (version "1.1.7")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "ssl_verify_fun" version))
(sha256
- (base32 "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x"))))
+ (base32 "1y37pj5q6gk1vrnwg1vraws9yihrv9g4133w2qq1sh1piw71jk7y"))))
(build-system rebar-build-system)
(home-page "https://github.com/deadtrickster/ssl_verify_fun.erl")
(synopsis "SSL verification functions for Erlang")
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 14/20] gnu: rebar3: Update to 3.23.0.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
caf77cb244536c5492026875a83eceaf9774b094.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (rebar3): Update to 3.23.0.

Change-Id: I14bd18647efd93519548f6f7ff5c6383892054f6
---
gnu/packages/erlang.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (33 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index a71decdd7c..c24d75e6c9 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -604,7 +604,7 @@ (define-public erlang-ssl-verify-fun
(define-public rebar3
(package
(name "rebar3")
- (version "3.18.0")
+ (version "3.23.0")
(source
(origin
(method git-fetch)
@@ -613,7 +613,7 @@ (define-public rebar3
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "09648hzc2mnjwf9klm20cg4hb5rn2xv2gmzcg98ffv37p5yfl327"))))
+ (base32 "0jinjx3mk5j1kczxmblixbvhf24q0yfwih2ggs11x5ykmrqpbckl"))))
(build-system gnu-build-system)
;; TODO: remove vendored modules, install man-page, install lib(?)
(arguments
@@ -644,7 +644,7 @@ (define-public rebar3
;; reproducible builds. We fix it by setting predefined timestamps.
(add-before 'build 'make-escriptize-reproducible
(lambda _
- (let ((escriptize "src/rebar_prv_escriptize.erl"))
+ (let ((escriptize "apps/rebar/src/rebar_prv_escriptize.erl"))
(substitute* escriptize
(("\\[dir_entries\\(filename:dirname\\(Filename1\\)\\),")
(string-append "FilePath = filename:join(Dir, Filename),"
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 15/20] gnu: erlang-lfe: Update to 2.1.4.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
e544cdbfd7b036174c73907ecf64d38f2c3276bd.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang-lfe): Update to 2.1.4.

Change-Id: Ib6888b92ce45853bec9ecec0a24c759358280b5a
---
gnu/packages/erlang.scm | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

Toggle diff (38 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index c24d75e6c9..421869d029 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -768,16 +768,16 @@ (define-public rebar3-proper
(define-public erlang-lfe
(package
(name "erlang-lfe")
- (version "2.1.2")
+ (version "2.1.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lfe/lfe")
- (commit "v2.1.2")))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "180hz1p2v3vb6yyzcfwircmljlnd86ln8z80lzy3mwlyrcxblvxy"))))
+ "0yyh8jmdi7c4y6vjrk3zw4iy7iyqcs5h88hx96ml9dx2im2aydlq"))))
(build-system gnu-build-system)
(arguments
(list
@@ -825,6 +825,11 @@ (define-public erlang-lfe
(when tests?
(begin
(setenv "REBAR_CACHE_DIR" "/tmp")
+ (substitute* "Makefile"
+ ;; More strict argument parsing since rebar v3.23.0 seems
+ ;; to break backwards compatibility. See more info at:
+ ;; https://github.com/erlang/rebar3/pull/2813.
+ (("-n 20,ct") "-n 20, ct"))
(invoke "make" "-j" (number->string (parallel-job-count))
"tests"))))))))
(native-inputs (list rebar3 rebar3-proper erlang-proper))
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 17/20] gnu: elixir-hex: Update to 2.1.1.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
841f6dc460cf190fe4bad16b549e6f737352a4f0.1718205806.git.igor@goryachev.org
* gnu/packages/elixir.scm (elixir-hex): Update to 2.1.1.

Change-Id: I0b91b2b0d0bd72be2d7e7419f3a9ceec1f4eb4ed
---
gnu/packages/elixir.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index 6f423d12a3..7675b38ffb 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -139,7 +139,7 @@ (define-public elixir
(define-public elixir-hex
(package
(name "elixir-hex")
- (version "2.0.5")
+ (version "2.1.1")
(source
(origin
(method git-fetch)
@@ -149,7 +149,7 @@ (define-public elixir-hex
(file-name (git-file-name name version))
(sha256
(base32
- "1kvczwvij58kgkhak68004ap81pl26600bczg21mymy2sypkgxmj"))))
+ "0fmrbl7dj8ndq1z7h13qgx3cv7vw3b1zf6krdrahcmx43bcdsix4"))))
;; The mix-build-system assumes that Hex exists.
;; We build Hex using the gnu-build-system.
;; Other Elixir packages use the mix-build-system.
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 19/20] gnu: erlang: Add chunks compilation.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
3c6a2edfa9416a7df9c419d053bd02b881bdcab9.1718205806.git.igor@goryachev.org
* gnu/packages/erlang.scm (erlang): Add chunks compilation.

Change-Id: I81037864ac38f5a2a6cf8eac2fe0523e6500c78b
---
gnu/packages/erlang.scm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 421869d029..dd07c1a617 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -181,7 +181,10 @@ (define-public erlang
(share (string-append out "/share/")))
(mkdir-p share)
(with-directory-excursion share
- (invoke "tar" "xvf" manpages))))))))
+ (invoke "tar" "xvf" manpages)))))
+ (add-after 'install-doc 'install-chunks
+ (lambda _
+ (invoke "make" "install-docs" "DOC_TARGETS=chunks"))))))
(home-page "https://www.erlang.org/")
(synopsis "The Erlang programming language")
(description
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 18/20] gnu: elixir: Add src output, metas correction, lint warnings fix.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
5e77f8a0948230db8da07c37c5b1f24fec44acb7.1718205806.git.igor@goryachev.org
* gnu/packages/elixir.scm (elixir): Add src output, metas correction, lint warnings fix.

Change-Id: I93ae35239168de9a8d8d99ca83950edfce735bc2
---
gnu/packages/elixir.scm | 201 +++++++++++++++++++++++-----------------
1 file changed, 114 insertions(+), 87 deletions(-)

Toggle diff (228 lines)
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index 7675b38ffb..aa4a24fcda 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -34,83 +34,108 @@ (define-module (gnu packages elixir)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages erlang)
#:use-module (gnu packages version-control))
(define-public elixir
- (package
- (name "elixir")
- (version "1.16.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/elixir-lang/elixir")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0db1f6p8409ld81lfd9ln9ir4v55h48lzsbd91jz0hns7ninlh2r"))
- (patches (search-patches "elixir-path-length.patch"))))
- (build-system gnu-build-system)
- (arguments
- (list
- #:test-target "test"
- #:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23>
- #:make-flags #~(list (string-append "PREFIX=" #$output))
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'make-git-checkout-writable
- (lambda _
- (for-each make-file-writable (find-files "."))))
- (add-after 'make-git-checkout-writable 'replace-paths
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Note: references end up obfuscated in binary BEAM files where
- ;; they may be invisible to the GC and graft code:
- ;; <https://issues.guix.gnu.org/54304#11>.
- (substitute* '("lib/mix/lib/mix/release.ex"
- "lib/mix/lib/mix/tasks/release.init.ex")
- (("#!/bin/sh")
- (string-append "#!" (search-input-file inputs "/bin/sh"))))
- (substitute* "bin/elixir"
- (("ERTS_BIN=\n")
- (string-append
- "ERTS_BIN="
- ;; Elixir Releases will prepend to ERTS_BIN the path of
- ;; a copy of erl. We detect if a release is being generated
- ;; by checking the initial ERTS_BIN value: if it's empty, we
- ;; are not in release mode and can point to the actual erl
- ;; binary in Guix store.
- "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN="
- (string-drop-right (search-input-file inputs "/bin/erl") 3)
- "; fi\n")))
- (substitute* "bin/mix"
- (("#!/usr/bin/env elixir")
- (string-append "#!" #$output "/bin/elixir")))))
- (add-before 'build 'make-current
- ;; The Elixir compiler checks whether or not to compile files by
- ;; inspecting their timestamps. When the timestamp is equal to the
- ;; epoch no compilation will be performed. Some tests fail when
- ;; files are older than Jan 1, 2000.
- (lambda _
- (for-each (lambda (file)
- (let ((recent 1400000000))
- (utime file recent recent 0 0)))
- (find-files "." ".*"))))
- (add-before 'check 'set-home
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Some tests require access to a home directory.
- (setenv "HOME" "/tmp")))
- (delete 'configure)
- (add-after 'install 'wrap-programs
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (programs '("elixir" "elixirc" "iex")))
- ;; mix can be sourced as an elixir script by other elixir
- ;; program, for example `iex -S mix`, so we should not wrap
- ;; mix into shell script.
- (substitute* (string-append out "/bin/mix")
- (("Mix.start\\(\\)")
- (format #f "\
+ (let* ((compiler-path "lib/elixir/src/elixir_erl_compiler.erl")
+ (compiler-path-orig (string-append compiler-path ".orig")))
+ (package
+ (name "elixir")
+ (version "1.16.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/elixir-lang/elixir")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0db1f6p8409ld81lfd9ln9ir4v55h48lzsbd91jz0hns7ninlh2r"))
+ (patches (search-patches "elixir-path-length.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:test-target "test"
+ #:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23>
+ #:make-flags #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'make-git-checkout-writable
+ (lambda _
+ (for-each make-file-writable (find-files "."))))
+ (add-after 'make-git-checkout-writable 'replace-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Note: references end up obfuscated in binary BEAM files where
+ ;; they may be invisible to the GC and graft code:
+ ;; <https://issues.guix.gnu.org/54304#11>.
+ (substitute* '("lib/mix/lib/mix/release.ex"
+ "lib/mix/lib/mix/tasks/release.init.ex")
+ (("#!/bin/sh")
+ (string-append "#!" (search-input-file inputs "/bin/sh"))))
+ (substitute* "bin/elixir"
+ (("ERTS_BIN=\n")
+ (string-append
+ "ERTS_BIN="
+ ;; Elixir Releases will prepend to ERTS_BIN the path of
+ ;; a copy of erl. We detect if a release is being generated
+ ;; by checking the initial ERTS_BIN value: if it's empty, we
+ ;; are not in release mode and can point to the actual erl
+ ;; binary in Guix store.
+ "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN="
+ (string-drop-right (search-input-file inputs "/bin/erl") 3)
+ "; fi\n")))
+ (substitute* "bin/mix"
+ (("#!/usr/bin/env elixir")
+ (string-append "#!" #$output "/bin/elixir")))))
+ (add-after 'replace-paths 'pre-install-source
+ (lambda* (#:key outputs #:allow-other-keys)
+ (copy-recursively "lib" (string-append (assoc-ref outputs "src")
+ "/source/lib"))))
+ ;; Temporarily patch the compiler to place correct source locations
+ ;; into module info instead of build directory.
+ (add-after 'pre-install-source 'patch-elixir-compiler
+ (lambda* (#:key outputs #:allow-other-keys)
+ (copy-recursively #$compiler-path #$compiler-path-orig)
+ (let ((source (string-append "/tmp/guix-build-" #$name "-"
+ #$version ".drv-0"))
+ (destination (assoc-ref outputs "src")))
+ (substitute* #$compiler-path
+ (("source, Source")
+ (string-append "source, string:replace(Source, \""
+ source "\", \"" destination "\")"))))))
+ (add-before 'build 'make-current
+ ;; The Elixir compiler checks whether or not to compile files by
+ ;; inspecting their timestamps. When the timestamp is equal to the
+ ;; epoch no compilation will be performed. Some tests fail when
+ ;; files are older than Jan 1, 2000.
+ (lambda _
+ (for-each (lambda (file)
+ (let ((recent 1400000000))
+ (utime file recent recent 0 0)))
+ (find-files "." ".*"))))
+ ;; Unpatch the compiler and recompile it.
+ (add-after 'build 'restore-and-recompile
+ (lambda _
+ (copy-recursively #$compiler-path-orig #$compiler-path)
+ (delete-file #$compiler-path-orig)
+ (invoke "make")))
+ (add-before 'check 'set-home
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Some tests require access to a home directory.
+ (setenv "HOME" "/tmp")))
+ (delete 'configure)
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (programs '("elixir" "elixirc" "iex")))
+ ;; mix can be sourced as an elixir script by other elixir
+ ;; program, for example `iex -S mix`, so we should not wrap
+ ;; mix into shell script.
+ (substitute* (string-append out "/bin/mix")
+ (("Mix.start\\(\\)")
+ (format #f "\
~~w[GUIX_ELIXIR_LIBS ERL_LIBS]
|> Enum.map(&System.get_env/1)
|> Enum.reject(&is_nil/1)
@@ -118,23 +143,25 @@ (define-public elixir
|> case do \"\" -> :ok; erl_libs -> System.put_env(\"ERL_LIBS\", erl_libs) end
System.put_env(\"MIX_REBAR3\", System.get_env(\"MIX_REBAR3\", \"~a\"))
Mix.start()"
- (search-input-file inputs "/bin/rebar3"))))
- (for-each (lambda (program)
- (wrap-program (string-append out "/bin/" program)
- '("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}"))))
- programs)))))))
- (inputs (list erlang rebar3 git))
- (native-search-paths
- (list (search-path-specification
- (variable "GUIX_ELIXIR_LIBS")
- (files (list (string-append "lib/elixir/" (version-major+minor version)))))))
- (home-page "https://elixir-lang.org/")
- (synopsis "Elixir programming language")
- (description "Elixir is a dynamic, functional language used to build
+ (search-input-file inputs "/bin/rebar3"))))
+ (for-each (lambda (program)
+ (wrap-program (string-append out "/bin/" program)
+ '("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}"))))
+ programs)))))))
+ (outputs '("out" "src"))
+ (inputs (list bash-minimal erlang rebar3 git))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GUIX_ELIXIR_LIBS")
+ (files (list (string-append "lib/elixir/" (version-major+minor
+ version)))))))
+ (home-page "https://elixir-lang.org/")
+ (synopsis "Functional meta-programming aware language")
+ (description "Elixir is a dynamic, functional language used to build
scalable and maintainable applications. Elixir leverages the Erlang VM, known
for running low-latency, distributed and fault-tolerant systems, while also
being successfully used in web development and the embedded software domain.")
- (license license:asl2.0)))
+ (license license:asl2.0))))
(define-public elixir-hex
(package
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 20/20] gnu: Add xxkb.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
456cc94a92b51bd6c86a5c898ec41c50622532cc.1718205806.git.igor@goryachev.org
* gnu/packages/xdisorg.scm (xxkb): New variable.

Change-Id: Ibf7ff3394438490045c1821b9f9e417adc8d5e0b
---
gnu/packages/xdisorg.scm | 48 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (65 lines)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index dc31cedeba..c56db45630 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -62,6 +62,7 @@
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2022 Mehmet Tekman <mtekman89@gmail.com>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3804,3 +3805,50 @@ (define-public show-me-the-key
and works under both Xorg and Wayland (via @code{libinput}), inspired by
@code{python-screenkey}.")
(license license:asl2.0)))
+
+(define-public xxkb
+ (package
+ (name "xxkb")
+ (version "1.11.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/xxkb/"
+ name "-" version "-src.tar.gz"))
+ (sha256
+ (base32
+ "0hl1i38z9xnbgfjkaz04vv1n8xbgfg88g5z8fyzyb2hxv2z37anf"))))
+ (build-system gnu-build-system)
+ (inputs (list libx11
+ libxext
+ libxt
+ libxpm))
+ (native-inputs
+ (list imake))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((imake (assoc-ref inputs "imake"))
+ (out (assoc-ref outputs "out")))
+ (invoke "xmkmf")
+ (substitute* "Makefile"
+ ((imake) out)
+ (("(MANPATH = )[[:graph:]]*" _ front)
+ (string-append front out "/share/man"))
+ (("XAPPLOADDIR = /etc/X11/app-defaults")
+ (string-append "XAPPLOADDIR = " out "/lib/X11/app-defaults"))
+ (("ETCX11DIR = /etc/X11")
+ (string-append "ETCX11DIR = " out "/etc/X11")))
+ #t))))))
+ (home-page "https://xxkb.sourceforge.net/")
+ (synopsis "Keyboard layout indicator and switcher")
+ (description
+ "The xxkb program is a keyboard layout switcher and indicator. Unlike
+the programs that reload keyboard maps and use their own hot-keys, xxkb is
+a simple GUI for XKB (X KeyBoard extension) and just sends commands to and
+accepts events from XKB. That means that it will work with the existing
+setup of your X Server without any modifications.")
+ (license license:artistic2.0)))
--
2.45.1
Igor Goryachev wrote 9 months ago
[PATCH 16/20] gnu: elixir: Update to 1.16.3.
(address . 71527@debbugs.gnu.org)(name . Igor Goryachev)(address . igor@goryachev.org)
748fb7ee208588778f804d2446e290ea4170b6c4.1718205806.git.igor@goryachev.org
* gnu/packages/elixir.scm (elixir): Update to 1.16.3.

Change-Id: Iaef9633f68cca0b36c7528f7f399fb8d58125858
---
gnu/packages/elixir.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Toggle diff (32 lines)
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index 2885ddbd61..6f423d12a3 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2021 Cees de Groot <cg@evrl.com>
;;; Copyright © 2024 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2024 Ivan Sokolov <ivan-p-sokolov@ya.ru>
+;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -39,7 +40,7 @@ (define-module (gnu packages elixir)
(define-public elixir
(package
(name "elixir")
- (version "1.14.0")
+ (version "1.16.3")
(source
(origin
(method git-fetch)
@@ -48,7 +49,7 @@ (define-public elixir
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "16rc4qaykddda6ax5f8zw70yhapgwraqbgx5gp3f40dvfax3d51l"))
+ (base32 "0db1f6p8409ld81lfd9ln9ir4v55h48lzsbd91jz0hns7ninlh2r"))
(patches (search-patches "elixir-path-length.patch"))))
(build-system gnu-build-system)
(arguments
--
2.45.1
Andrew Tropin wrote 9 months ago
Re: [bug#71527] [PATCH 18/20] gnu: elixir: Add src output, metas correction, lint warnings fix.
(name . Igor Goryachev)(address . igor@goryachev.org)
87sex7n6fc.fsf@trop.in
On 2024-06-13 09:17, Igor Goryachev via Guix-patches via wrote:

Toggle quote (96 lines)
> * gnu/packages/elixir.scm (elixir): Add src output, metas correction, lint warnings fix.
>
> Change-Id: I93ae35239168de9a8d8d99ca83950edfce735bc2
> ---
> gnu/packages/elixir.scm | 201 +++++++++++++++++++++++-----------------
> 1 file changed, 114 insertions(+), 87 deletions(-)
>
> diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
> index 7675b38ffb..aa4a24fcda 100644
> --- a/gnu/packages/elixir.scm
> +++ b/gnu/packages/elixir.scm
> @@ -34,83 +34,108 @@ (define-module (gnu packages elixir)
> #:use-module (guix git-download)
> #:use-module (guix packages)
> #:use-module (gnu packages)
> + #:use-module (gnu packages bash)
> #:use-module (gnu packages erlang)
> #:use-module (gnu packages version-control))
>
> (define-public elixir
> - (package
> - (name "elixir")
> - (version "1.16.3")
> - (source
> - (origin
> - (method git-fetch)
> - (uri (git-reference
> - (url "https://github.com/elixir-lang/elixir")
> - (commit (string-append "v" version))))
> - (file-name (git-file-name name version))
> - (sha256
> - (base32 "0db1f6p8409ld81lfd9ln9ir4v55h48lzsbd91jz0hns7ninlh2r"))
> - (patches (search-patches "elixir-path-length.patch"))))
> - (build-system gnu-build-system)
> - (arguments
> - (list
> - #:test-target "test"
> - #:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23>
> - #:make-flags #~(list (string-append "PREFIX=" #$output))
> - #:phases
> - #~(modify-phases %standard-phases
> - (add-after 'unpack 'make-git-checkout-writable
> - (lambda _
> - (for-each make-file-writable (find-files "."))))
> - (add-after 'make-git-checkout-writable 'replace-paths
> - (lambda* (#:key inputs #:allow-other-keys)
> - ;; Note: references end up obfuscated in binary BEAM files where
> - ;; they may be invisible to the GC and graft code:
> - ;; <https://issues.guix.gnu.org/54304#11>.
> - (substitute* '("lib/mix/lib/mix/release.ex"
> - "lib/mix/lib/mix/tasks/release.init.ex")
> - (("#!/bin/sh")
> - (string-append "#!" (search-input-file inputs "/bin/sh"))))
> - (substitute* "bin/elixir"
> - (("ERTS_BIN=\n")
> - (string-append
> - "ERTS_BIN="
> - ;; Elixir Releases will prepend to ERTS_BIN the path of
> - ;; a copy of erl. We detect if a release is being generated
> - ;; by checking the initial ERTS_BIN value: if it's empty, we
> - ;; are not in release mode and can point to the actual erl
> - ;; binary in Guix store.
> - "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN="
> - (string-drop-right (search-input-file inputs "/bin/erl") 3)
> - "; fi\n")))
> - (substitute* "bin/mix"
> - (("#!/usr/bin/env elixir")
> - (string-append "#!" #$output "/bin/elixir")))))
> - (add-before 'build 'make-current
> - ;; The Elixir compiler checks whether or not to compile files by
> - ;; inspecting their timestamps. When the timestamp is equal to the
> - ;; epoch no compilation will be performed. Some tests fail when
> - ;; files are older than Jan 1, 2000.
> - (lambda _
> - (for-each (lambda (file)
> - (let ((recent 1400000000))
> - (utime file recent recent 0 0)))
> - (find-files "." ".*"))))
> - (add-before 'check 'set-home
> - (lambda* (#:key inputs #:allow-other-keys)
> - ;; Some tests require access to a home directory.
> - (setenv "HOME" "/tmp")))
> - (delete 'configure)
> - (add-after 'install 'wrap-programs
> - (lambda* (#:key inputs outputs #:allow-other-keys)
> - (let* ((out (assoc-ref outputs "out"))
> - (programs '("elixir" "elixirc" "iex")))
> - ;; mix can be sourced as an elixir script by other elixir
> - ;; program, for example `iex -S mix`, so we should not wrap
> - ;; mix into shell script.
> - (substitute* (string-append out "/bin/mix")
> - (("Mix.start\\(\\)")
> - (format #f "\
> + (let* ((compiler-path "lib/elixir/src/elixir_erl_compiler.erl")
> + (compiler-path-orig (string-append compiler-path ".orig")))

Moved this let inside phases gexp.

Toggle quote (139 lines)
> + (package
> + (name "elixir")
> + (version "1.16.3")
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/elixir-lang/elixir")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32 "0db1f6p8409ld81lfd9ln9ir4v55h48lzsbd91jz0hns7ninlh2r"))
> + (patches (search-patches "elixir-path-length.patch"))))
> + (build-system gnu-build-system)
> + (arguments
> + (list
> + #:test-target "test"
> + #:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23>
> + #:make-flags #~(list (string-append "PREFIX=" #$output))
> + #:phases
> + #~(modify-phases %standard-phases
> + (add-after 'unpack 'make-git-checkout-writable
> + (lambda _
> + (for-each make-file-writable (find-files "."))))
> + (add-after 'make-git-checkout-writable 'replace-paths
> + (lambda* (#:key inputs #:allow-other-keys)
> + ;; Note: references end up obfuscated in binary BEAM files where
> + ;; they may be invisible to the GC and graft code:
> + ;; <https://issues.guix.gnu.org/54304#11>.
> + (substitute* '("lib/mix/lib/mix/release.ex"
> + "lib/mix/lib/mix/tasks/release.init.ex")
> + (("#!/bin/sh")
> + (string-append "#!" (search-input-file inputs "/bin/sh"))))
> + (substitute* "bin/elixir"
> + (("ERTS_BIN=\n")
> + (string-append
> + "ERTS_BIN="
> + ;; Elixir Releases will prepend to ERTS_BIN the path of
> + ;; a copy of erl. We detect if a release is being generated
> + ;; by checking the initial ERTS_BIN value: if it's empty, we
> + ;; are not in release mode and can point to the actual erl
> + ;; binary in Guix store.
> + "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN="
> + (string-drop-right (search-input-file inputs "/bin/erl") 3)
> + "; fi\n")))
> + (substitute* "bin/mix"
> + (("#!/usr/bin/env elixir")
> + (string-append "#!" #$output "/bin/elixir")))))
> + (add-after 'replace-paths 'pre-install-source
> + (lambda* (#:key outputs #:allow-other-keys)
> + (copy-recursively "lib" (string-append (assoc-ref outputs "src")
> + "/source/lib"))))
> + ;; Temporarily patch the compiler to place correct source locations
> + ;; into module info instead of build directory.
> + (add-after 'pre-install-source 'patch-elixir-compiler
> + (lambda* (#:key outputs #:allow-other-keys)
> + (copy-recursively #$compiler-path #$compiler-path-orig)
> + (let ((source (string-append "/tmp/guix-build-" #$name "-"
> + #$version ".drv-0"))
> + (destination (assoc-ref outputs "src")))
> + (substitute* #$compiler-path
> + (("source, Source")
> + (string-append "source, string:replace(Source, \""
> + source "\", \"" destination "\")"))))))
> + (add-before 'build 'make-current
> + ;; The Elixir compiler checks whether or not to compile files by
> + ;; inspecting their timestamps. When the timestamp is equal to the
> + ;; epoch no compilation will be performed. Some tests fail when
> + ;; files are older than Jan 1, 2000.
> + (lambda _
> + (for-each (lambda (file)
> + (let ((recent 1400000000))
> + (utime file recent recent 0 0)))
> + (find-files "." ".*"))))
> + ;; Unpatch the compiler and recompile it.
> + (add-after 'build 'restore-and-recompile
> + (lambda _
> + (copy-recursively #$compiler-path-orig #$compiler-path)
> + (delete-file #$compiler-path-orig)
> + (invoke "make")))
> + (add-before 'check 'set-home
> + (lambda* (#:key inputs #:allow-other-keys)
> + ;; Some tests require access to a home directory.
> + (setenv "HOME" "/tmp")))
> + (delete 'configure)
> + (add-after 'install 'wrap-programs
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (programs '("elixir" "elixirc" "iex")))
> + ;; mix can be sourced as an elixir script by other elixir
> + ;; program, for example `iex -S mix`, so we should not wrap
> + ;; mix into shell script.
> + (substitute* (string-append out "/bin/mix")
> + (("Mix.start\\(\\)")
> + (format #f "\
> ~~w[GUIX_ELIXIR_LIBS ERL_LIBS]
> |> Enum.map(&System.get_env/1)
> |> Enum.reject(&is_nil/1)
> @@ -118,23 +143,25 @@ (define-public elixir
> |> case do \"\" -> :ok; erl_libs -> System.put_env(\"ERL_LIBS\", erl_libs) end
> System.put_env(\"MIX_REBAR3\", System.get_env(\"MIX_REBAR3\", \"~a\"))
> Mix.start()"
> - (search-input-file inputs "/bin/rebar3"))))
> - (for-each (lambda (program)
> - (wrap-program (string-append out "/bin/" program)
> - '("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}"))))
> - programs)))))))
> - (inputs (list erlang rebar3 git))
> - (native-search-paths
> - (list (search-path-specification
> - (variable "GUIX_ELIXIR_LIBS")
> - (files (list (string-append "lib/elixir/" (version-major+minor version)))))))
> - (home-page "https://elixir-lang.org/")
> - (synopsis "Elixir programming language")
> - (description "Elixir is a dynamic, functional language used to build
> + (search-input-file inputs "/bin/rebar3"))))
> + (for-each (lambda (program)
> + (wrap-program (string-append out "/bin/" program)
> + '("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}"))))
> + programs)))))))
> + (outputs '("out" "src"))
> + (inputs (list bash-minimal erlang rebar3 git))
> + (native-search-paths
> + (list (search-path-specification
> + (variable "GUIX_ELIXIR_LIBS")
> + (files (list (string-append "lib/elixir/" (version-major+minor
> + version)))))))
> + (home-page "https://elixir-lang.org/")
> + (synopsis "Functional meta-programming aware language")
> + (description "Elixir is a dynamic, functional language used to build
> scalable and maintainable applications. Elixir leverages the Erlang VM, known
> for running low-latency, distributed and fault-tolerant systems, while also
> being successfully used in web development and the embedded software domain.")
> - (license license:asl2.0)))
> + (license license:asl2.0))))
>
> (define-public elixir-hex
> (package

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

iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmZ0ILcACgkQIgjSCVjB
3rDG9g//U1Qa0GSldfjJfrG/6UOr3ZseHIg605Koq51Yz8h+lBLSbj3qN/C/L1WN
OSRmZzPBO12iQZTUEOEagV6CwOnJD0PtOJFs/5k7Ud7XP+3Nmjea/z+Z9Zshutgb
VrJuZOk9oXHsZoFVStrsmSWvTAL9mTFHdCwjyKQfH+ErQZsXvB0sZktUfC/WgZkG
8Em2NefxoziFPP0HB0TxIlXKDH9XHDQM+AnvEmZLJreyhYCOPDOHnmk6uGPFzOY7
9JLlJ3ilhq0GKSiGNsksmmTiw1H4+tmuJbGV2NRT7DM/jPLDgSzKtQ6286MLPO5S
9U3MyU0XbfwCmrLvLh0YqMnfx8F0+JD0NY6XTC88LI6R8i2ErDD/Y+zSpW/2XQby
sy7FaQGDEgnk78uiNmqpkiW8H1CPCJo82Vm1KIc9oNzQkDlhrtMBSQKu1kpr6iB9
HVVLl4OpH8CFWYjhx9JZnE2DIyZbW3Fx9DuCEJ3xvSHfb5YndBhBj8Fkis52RfUG
Xp/wvdcbF59rWhz8V+5/QzSJEwgEuLAlMXy+8BhKWuVsVcebiSaprLhqA7usCMcM
EYldFPQcZPV8Hh6I+/BhEWFtpsgt8XZGvdDXgZc2ELylRfkkDiHH5yEA6PbWcwLR
BIcNVYaXzAquHyGqN+o1Ui3OgC0fz4sBR+Xwy5H7TeKNp2v6iBI=
=uBw1
-----END PGP SIGNATURE-----

Andrew Tropin wrote 9 months ago
Re: [bug#71527] [PATCH 00/20] Update erlang, elixir things, add xxkb.
(name . Igor Goryachev)(address . igor@goryachev.org)
87o77vn620.fsf@trop.in
On 2024-06-12 18:25, Igor Goryachev via Guix-patches via wrote:

Toggle quote (22 lines)
> Erlang, Elixir and some their tools/libs updates with several improvements and fixes. And also added xxkb as a new package.
>
> Igor Goryachev (20):
> gnu: rebar3: Make rebar3 escriptize reproducible.
> gnu: erlang: Update to 26.2.5.
> gnu: erlang-certifi: Update to 2.13.0.
> gnu: erlang-covertool: Update to 2.0.6.
> gnu: erlang-cth-readable: Update to 1.6.0.
> gnu: erlang-edown: Update to 0.9.1.
> gnu: erlang-erlware-commons: Update to 1.7.0.
> gnu: erlang-getopt: Update to 1.0.3.
> gnu: erlang-hex-core: Update to 0.10.0.
> gnu: erlang-jsone: Update to 1.8.1.
> gnu: erlang-parse-trans: Update to 3.4.2.
> gnu: erlang-relx: Update to 4.9.0.
> gnu: erlang-ssl-verify-fun: Update to 1.1.7.
> gnu: rebar3: Update to 3.23.0.
> gnu: erlang-lfe: Update to 2.1.4.
> gnu: elixir: Update to 1.16.3.
> gnu: elixir-hex: Update to 2.1.1.
> gnu: elixir: Add src output, metas correction, lint warnings fix.

Moved let inside phases gexp.

Toggle quote (11 lines)
> gnu: erlang: Add chunks compilation.
> gnu: Add xxkb.
>
> gnu/packages/elixir.scm | 206 ++++++++++++++++++++++-----------------
> gnu/packages/erlang.scm | 98 ++++++++++++-------
> gnu/packages/xdisorg.scm | 48 +++++++++
> 3 files changed, 230 insertions(+), 122 deletions(-)
>
>
> base-commit: 22482834c5412df9816adefecbf8915221999edb

Hi Igor!

Applied, slihtly adjusted last elixir patch, pushed as

Thank you very much for working on this and making Guix even more
reproducible!

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

iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmZ0IpcACgkQIgjSCVjB
3rCwbxAAjfyyxv5FuRgM1sT4jM3GafoeFf1lTM55P+hmRTIIB/AS3j3HJr9Wx/pX
8OFxXP9CftQAiuYx0YuVqbVO7b8jY43K2V6MxFHWnVdHww0jiJNfuDykDxH2fMZn
doFhh19RPLxu5YVMywrqUkuE8sF9X6X3JcAdpRslqu134O3KWVA80U36J0KylvTR
4Ih6KTOm+qB3T9oqHOY8llHfAXsYxWqCkwbhhSBr2MphT9HTAp98scwYVJzPKUWw
RwM5uZ3pC3yBFmGpbK9CsJ0+dtXF1W0jcYlD1yiKdvmdGtJtndGB1SHHTIdzmTlj
WV/rMYNiscKUv++O/OGPEsnnFP4S+pEKI+imY875Re82pOQxoub++K5tuQZsnahP
vmN+QaNdDYpo9o3LN848PtvCj7SPJcfP8Oa9Mqjn8YRuXRmhA29578AkK5SfG94a
dPXDEold8CdQKcSP1iaBeGkNmLohYi7eAzxdlv8KMNlLAv4pHileXDmwWsskGD/M
DfTCPZmdFfacxtOIs6Hq+GQTopgoJKbHW+5uhAumA3sA4KtHsObS7bkiFwki8WdP
J38tnUtkGT9A1CkxHvTDOPilEuXayev8nrUvwtwSE/d1dcNDk4SngI8Ethm016wT
odiE4EXOfllPiYufIRWYztGYHUD58eUAorCif0etE5u/UIs1mCQ=
=lXwL
-----END PGP SIGNATURE-----

?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 71527
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