Subject: [PATCH] gnu: elixir: Update to 1.18.0.
From: Igor Goryachev <[email-masked]>
To: [email-masked]
Cc: Igor Goryachev <[email-masked]>, Zheng Junjie <[email-masked]>
Date: Sat, 21 Dec 2024 18:12:23 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/elixir.scm (elixir): Update to 1.18.0.
[arguments]: Remove obsolete code, reindent comments, make more deterministic.

Change-Id: I6cf8886339cbc4627fb5d89751462b492e7c62f3
---
 gnu/packages/elixir.scm | 37 +++++++++++++++++--------------------
 1 file changed, 17 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index 459e160830..eb6146cb11 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -41,7 +41,7 @@ (define-module (gnu packages elixir)
 (define-public elixir
   (package
     (name "elixir")
-    (version "1.17.3")
+    (version "1.18.0")
     (source
      (origin
        (method git-fetch)
@@ -50,7 +50,7 @@ (define-public elixir
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "171l6g304044yk6i0827hgl64vp122ygn1wa1xqdjhw08b5kl2pd"))
+        (base32 "1ki5wfkdidgkvcm3r6b547gkdpchah4r6z0y96frzf5f3prcjgbx"))
        (patches (search-patches "elixir-path-length.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -95,9 +95,9 @@ (define-public elixir
                 (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
+              ;; Temporarily patch the compiler to place correct source
+              ;; locations into module info instead of build directory.
               (lambda* (#:key outputs #:allow-other-keys)
                 (copy-recursively compiler-path compiler-path-orig)
                 (let ((source (string-append "/tmp/guix-build-" #$name "-"
@@ -107,7 +107,18 @@ (define-public elixir
                     (("source, Source")
                      (string-append "source, string:replace(Source, \""
                                     source "\", \"" destination "\")"))))))
-            (add-before 'build 'make-current
+            (add-before 'build 'set-deterministic
+              (lambda _
+                ;; Set deterministic compiler option.
+                (setenv "ERL_COMPILER_OPTIONS" "deterministic")))
+            (add-after 'build 'restore-and-recompile
+              ;; Unpatch the compiler and recompile it.
+              (lambda _
+                (copy-recursively compiler-path-orig compiler-path)
+                (delete-file compiler-path-orig)
+                (invoke "erlc" "-I" "lib/elixir/include"
+                        "-o" "lib/elixir/ebin" compiler-path)))
+            (add-after 'restore-and-recompile '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
@@ -117,24 +128,10 @@ (define-public elixir
                             (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)
+              (lambda _
                 ;; Some tests require access to a home directory.
                 (setenv "HOME" "/tmp")))
-            ;; Temporarily skip several tests related to logger to pass
-            ;; under Erlang 27.1. For more info see:
-            ;; https://elixirforum.com/t/elixir-v1-17-3-released/66156/2
-            (add-before 'check 'disable-some-logger-tests-for-erlang-27.1+
-              (lambda _
-                (substitute* "lib/logger/test/logger/translator_test.exs"
-                  (("test \"translates Supervisor progress")
-                   "@tag :skip\n  test \"translates Supervisor progress"))))
             (delete 'configure)
             (add-after 'install 'wrap-programs
               (lambda* (#:key inputs outputs #:allow-other-keys)

base-commit: 11855e1c2863c56d9a3364cdac614a529a1c7cc2
-- 
2.46.0