Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 May 2022 21:03:24 -0700
From:      "Pat Maddox" <pat@patmaddox.com>
To:        "Dave Cottlehuber" <dch@skunkwerks.at>
Cc:        erlang <freebsd-erlang@freebsd.org>
Subject:   Re: Why the difference between lang/elixir and lang/elixir-devel? (also: elixir-devel doesn't support mix release)
Message-ID:  <2D5CF793-1DB1-4F46-82EB-FD8108D36DBF@patmaddox.com>
In-Reply-To: <4c572e79-2744-412a-94d0-ec0eb48f3144@www.fastmail.com>
References:  <88FB0E34-FBB2-4257-A1C8-4F24B9BA130F@patmaddox.com> <4c572e79-2744-412a-94d0-ec0eb48f3144@www.fastmail.com>

index | next in thread | previous in thread | raw e-mail

On 17 May 2022, at 5:52, Dave Cottlehuber wrote:

> On Tue, 10 May 2022, at 04:12, Pat Maddox wrote:
>> I had been working on a patch to lang/elixir-devel to support mix
>> releases, per the problem I shared in
>> https://lists.freebsd.org/archives/freebsd-erlang/2022-May/000629.html
>>
>> When working on it, I saw that lang/elixir doesn’t have the problem 
>> -
>> it doesn’t patch `elixir` to “hard-wire” the OTP release. So I 
>> can
>> just depend on lang/elixir instead.
>>
>> I had assumed that lang/elixir-devel just provided a more up-to-date
>> version of elixir, to get access to a newer elixir while still using
>> quarterly ports.
>>
>> That appears not to be the case. Two key differences I note are:
>>
>> 1. lang/elixir depends on lang/erlang, whereas lang/elixir-devel 
>> depends
>> on lang/erlang-runtime*
>> 2. lang/elixir builds elixir as-is, whereas lang/elixir-devel patches
>> the `elixir` script to “hard-wire” the OTP release.
>>
>> What is the intent of the lang/elixir-devel port?
>
> Hi Pat
>
> TLDR log an issue against lang/elixir-devel for fixing mix release &
> tracking this. The OTP21-OTP22 transition was a major breakage point
> for OTP stdlib and stuff needed to be hard wired to work reliably.

Done! https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264046


> -devel flavoured ports are the leading edge of ports dev. As a ports
> committer it allows me to easily switch a subsidiary port (like
> net/rabbitmq or phoenix) over for testing, as I choose, & back again.
> As a user, it allows me to test my apps against the very latest.

Okay that makes sense. I’ve taken a closer look at the two Makefiles 
and see that they are indeed similar - the key difference being that 
elixir-devel depends on an erlang runtime rather than lang/erlang, and 
that it patches the elixir script.

I will experiment with removing the post-patch hard-wire from 
elixir-devel. I believe when I did that, elixir failed to run because 
there was no erl on the path. lang/erlang puts erl on the path, but 
erlang-runtime* do not. If I’m remembering correctly.

Pat


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2D5CF793-1DB1-4F46-82EB-FD8108D36DBF>