GNU bug report logs - #68964
[PATCH] gnu: elixir: Remove wrap for mix.

Previous Next

Package: guix-patches;

Reported by: Andrew Tropin <andrew <at> trop.in>

Date: Wed, 7 Feb 2024 06:44:01 UTC

Severity: normal

Tags: patch

Done: Andrew Tropin <andrew <at> trop.in>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Andrew Tropin <andrew <at> trop.in>, 68964 <at> debbugs.gnu.org
Cc: Pierre-Henry Fröhring <contact <at> phfrohring.com>, Ivan Sokolov <ivan-p-sokolov <at> ya.ru>
Subject: [bug#68964] [PATCH v2] gnu: elixir: Remove wrap for mix.
Date: Wed, 07 Feb 2024 19:22:51 +0100
Am Mittwoch, dem 07.02.2024 um 11:13 +0300 schrieb Andrew Tropin:
> * gnu/packages/elixir.scm (elixir)[#:phases]: Instead of wrapping mix
> into
> shell script, which sets environment variables, we patch mix itself
> and set
> environmnet variables via elixir code.
> 
> Change-Id: Ia4643e18fe927491242a0541938b7570bd56fca1
> 
> Co-authored-by: Ivan Sokolov <ivan-p-sokolov <at> ya.ru>
> Change-Id: I29d2c61299a8a54125f0e15190c526a860d501da
> ---
> Changes since v1: Added Ivan's copyright and co-authored-by.
> 
>  gnu/packages/elixir.scm | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
> index ef8c39d0d7..2d11707711 100644
> --- a/gnu/packages/elixir.scm
> +++ b/gnu/packages/elixir.scm
> @@ -7,6 +7,8 @@
>  ;;; Copyright © 2018 Nikita <nikita <at> n0.is>
>  ;;; Copyright © 2021 Oskar Köök <oskar <at> maatriks.ee>
>  ;;; Copyright © 2021 Cees de Groot <cg <at> evrl.com>
> +;;; Copyright © 2024 Andrew Tropin <andrew <at> trop.in>
> +;;; Copyright © 2024 Ivan Sokolov <ivan-p-sokolov <at> ya.ru>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -101,7 +103,18 @@ (define-public elixir
>            (add-after 'install 'wrap-programs
>              (lambda* (#:key inputs outputs #:allow-other-keys)
>                (let* ((out (assoc-ref outputs "out"))
> -                     (programs '("elixir" "elixirc" "iex" "mix")))
> +                     (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\\(\\)") "\
> +~w[GUIX_ELIXIR_LIBS ERL_LIBS]
> +|> Enum.map(&System.get_env/1)
> +|> Enum.reject(&is_nil/1)
> +|> Enum.join(\":\")
> +|> case do \"\" -> :ok; erl_libs -> System.put_env(\"ERL_LIBS\",
> erl_libs) end
> +Mix.start()"))
You might want to make a patch for that.  I don't speak Elixir, but
from what I understand, this LGTM.

Cheers




This bug report was last modified 1 year and 103 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.