* [bug#67877] [PATCH 0/7] Enable Elixir packages that depend on Erlang packages to build
@ 2023-12-18 13:02 Pierre-Henry Fröhring
2023-12-18 14:49 ` Liliana Marie Prikler
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Pierre-Henry Fröhring @ 2023-12-18 13:02 UTC (permalink / raw)
To: 67877; +Cc: Liliana Marie Prikler
Hello lylip,
It's great to see progress!
I suggest the next objective is to enable Elixir packages that depend on Erlang
packages to build. For instance, the Elixir package [telemetry_metrics] depends on the
Erlang telemetry package and is a dependency of the Elixir Phoenix package.
While reviewing the code of the Rebar build system, we noticed the use of the
[skip_deps] Rebar flag, which is ignored by Rebar:
┌────
│ $ guix shell rebar3 -- rebar3 help compile
│ […]
│ -d, --deps_only Only compile dependencies, no project apps will be
│ built.
└────
So, to build Elixir packages that depend on Erlang, the necessary steps inlcude:
1) Updating the Rebar build system to align with the current usages of Rebar.
2) Allowing Elixir to access Erlang compiled libraries as discussed in [issue 66801].
If the following plan is agreed upon, then we will have an Elixir package that
depends on an Erlang package to build, specifically `telemetry_metrics'. Patches in the
series will have these objectives:
1. ☐ Update the Rebar build system to align with the current usages of Rebar.
2. ☐ Update the Erlang build system to install libraries under `lib/erlang/X.Y' as discussed in issue 66801.
3. ☐ Update the Erlang package so that `GUIX_ERL_LIBS' gather all libraries installed under `lib/erlang/X.Y'.
4. ☐ Update the Erlang package to wrap its binaires so that they have access to
compiled libraries represented by `GUIX_ERL_LIBS'.
5. ☐ Add the Erlang Telemetry package.
6. ☐ Update the Elixir package so that it has access to Erlang packages represented by `GUIX_ERL_LIBS'.
7. ☐ Add the Elixir package `telemetry_metrics'.
If the corresponding patch series is merged, additional packages (whether Erlang,
Elixir, or other types) will be incorporated until Phoenix package builds.
What do you think of this plan?
–
Regards,
phf
[telemetry_metrics] <https://hex.pm/packages/telemetry_metrics>
[skip_deps] <https://git.savannah.gnu.org/cgit/guix.git/tree/guix/build-system/rebar.scm?id=f410d49eb24db4eecae054dfe136464bc92ba8a3#n103>
[issue 66801] <https://issues.guix.gnu.org/66801#75>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [bug#67877] [PATCH 0/7] Enable Elixir packages that depend on Erlang packages to build
2023-12-18 13:02 [bug#67877] [PATCH 0/7] Enable Elixir packages that depend on Erlang packages to build Pierre-Henry Fröhring
@ 2023-12-18 14:49 ` Liliana Marie Prikler
2023-12-20 10:57 ` Pierre-Henry Fröhring
2024-07-13 11:45 ` Hartmut Goebel
2024-07-14 10:47 ` Pierre-Henry Fröhring
2 siblings, 1 reply; 5+ messages in thread
From: Liliana Marie Prikler @ 2023-12-18 14:49 UTC (permalink / raw)
To: contact, 67877
Am Montag, dem 18.12.2023 um 14:02 +0100 schrieb Pierre-Henry Fröhring:
> Hello lylip,
>
> It's great to see progress!
>
> I suggest the next objective is to enable Elixir packages that depend
> on Erlang packages to build. For instance, the Elixir package
> [telemetry_metrics] depends on the Erlang telemetry package and is a
> dependency of the Elixir Phoenix package.
>
> While reviewing the code of the Rebar build system, we noticed the
> use of the [skip_deps] Rebar flag, which is ignored by Rebar:
> ┌────
> │ $ guix shell rebar3 -- rebar3 help compile
> │ […]
> │ -d, --deps_only Only compile dependencies, no project apps will
> be
> │ built.
> └────
>
> So, to build Elixir packages that depend on Erlang, the necessary
> steps inlcude:
> 1) Updating the Rebar build system to align with the current usages
> of Rebar.
> 2) Allowing Elixir to access Erlang compiled libraries as discussed
> in [issue 66801].
>
> If the following plan is agreed upon, then we will have an Elixir
> package that depends on an Erlang package to build, specifically
> `telemetry_metrics'. Patches in the series will have these
> objectives:
>
> 1. ☐ Update the Rebar build system to align with the current usages
> of Rebar.
> 2. ☐ Update the Erlang build system to install libraries under
> `lib/erlang/X.Y' as discussed in issue 66801.
> 3. ☐ Update the Erlang package so that `GUIX_ERL_LIBS' gather all
> libraries installed under `lib/erlang/X.Y'.
> 4. ☐ Update the Erlang package to wrap its binaires so that they have
> access to
> compiled libraries represented by `GUIX_ERL_LIBS'.
> 5. ☐ Add the Erlang Telemetry package.
> 6. ☐ Update the Elixir package so that it has access to Erlang
> packages represented by `GUIX_ERL_LIBS'.
> 7. ☐ Add the Elixir package `telemetry_metrics'.
>
> If the corresponding patch series is merged, additional packages
> (whether Erlang, Elixir, or other types) will be incorporated until
> Phoenix package builds.
>
> What do you think of this plan?
Since we typically disable phoning home (including telemetry), I don't
think having a telemetry package in Guix would be good optics :)
Perhaps you can think of another example package but still follow the
steps laid out above?
Cheers
^ permalink raw reply [flat|nested] 5+ messages in thread
* [bug#67877] [PATCH 0/7] Enable Elixir packages that depend on Erlang packages to build
2023-12-18 13:02 [bug#67877] [PATCH 0/7] Enable Elixir packages that depend on Erlang packages to build Pierre-Henry Fröhring
2023-12-18 14:49 ` Liliana Marie Prikler
@ 2024-07-13 11:45 ` Hartmut Goebel
2024-07-14 10:47 ` Pierre-Henry Fröhring
2 siblings, 0 replies; 5+ messages in thread
From: Hartmut Goebel @ 2024-07-13 11:45 UTC (permalink / raw)
To: 67877
[-- Attachment #1: Type: text/plain, Size: 1957 bytes --]
Another Elixir package depending on Erlang package is artificery. Here
is a scratch of a package definition. Please let me know how I can help
implementing the required things.
* gnu/packages/elixir-xyz.scm (elixir-artificery): New variable.
---
gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm
index f08e07bb57..618c5afe8e 100644
--- a/gnu/packages/elixir-xyz.scm
+++ b/gnu/packages/elixir-xyz.scm
@@ -1,4 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020, 2021 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2023 Pierre-Henry Fröhring <phfrohring@deeplinks.com>
;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org>
;;;
@@ -36,6 +37,24 @@ (define-module (gnu packages elixir-xyz)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
+(define-public elixir-artificery
+ (package
+ (name "elixir-artificery")
+ (version "0.4.3")
+ (source (origin
+ (method url-fetch)
+ (uri (hexpm-uri "artificery" version))
+ (sha256
+ (base32
+ "0105zjghn01zncvwza1bkih0apkz7vxbxgbsjd78h80flcrm7s8j"))))
+ (build-system elixir-build-system)
+ (inputs (list erlang-hex-core))
+ (home-page "https://github.com/bitwalker/artificery")
+ (synopsis "Toolkit for terminal user interfaces in Elixir")
+ (description "This package provides a toolkit for terminal user
interfaces
+in Elixir.")
+ (license license:asl2.0)))
+
(define-public elixir-nimble-parsec
(package
(name "elixir-nimble-parsec")
--
2.41.1
--
Regards
Hartmut Goebel
| Hartmut Goebel |h.goebel@crazy-compilers.com |
|www.crazy-compilers.com | compilers which you thought are impossible |
[-- Attachment #2: Type: text/html, Size: 3636 bytes --]
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#67877] [PATCH 0/7] Enable Elixir packages that depend on Erlang packages to build
2023-12-18 13:02 [bug#67877] [PATCH 0/7] Enable Elixir packages that depend on Erlang packages to build Pierre-Henry Fröhring
2023-12-18 14:49 ` Liliana Marie Prikler
2024-07-13 11:45 ` Hartmut Goebel
@ 2024-07-14 10:47 ` Pierre-Henry Fröhring
2 siblings, 0 replies; 5+ messages in thread
From: Pierre-Henry Fröhring @ 2024-07-14 10:47 UTC (permalink / raw)
To: Hartmut Goebel; +Cc: 67877
Hello Hartmut,
I have built a test case, which you can find here:
<https://phfrohring.com/page/7cbeef0f-6f18-41be-85fb-706ee226be2b/>
If `guix build -f test-package.scm` succeeds, there is a good chance that the issue is resolved.
Cheers,
--
Pierre-Henry FRÖHRING
- Tel: +33 7 88 17 15 73
- Email: contact@phfrohring.com
- Web: <https://www.phfrohring.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-07-14 10:49 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-18 13:02 [bug#67877] [PATCH 0/7] Enable Elixir packages that depend on Erlang packages to build Pierre-Henry Fröhring
2023-12-18 14:49 ` Liliana Marie Prikler
2023-12-20 10:57 ` Pierre-Henry Fröhring
2024-07-13 11:45 ` Hartmut Goebel
2024-07-14 10:47 ` Pierre-Henry Fröhring
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.