Trouble building Erlang + Elixir from master on Fedora 29

Evening,

whatever I try, I end up getting this error trying to compile Elixir master on top of locally built Erlang on Fedora 29.

/screenshot removed - click on post history to view/

in Elixir I am at commit 05363f77f8eba58f540ff86d57e8b2aa048ba60a <- current master
in Erlang I am at master though I also tried the last RC tag build (OTP-21.2)

the Erlang ./configure goes fine with the following result so does the install

/screenshot removed - click on post history to view/

Any idea why those Mix.CLI tests are not passing? The error trace gives me no clue. Anyone experienced similar problem?

Cheers,

Martin

Which command did you use to build elixir and which do you use to run the tests?

Also please use copy and paste instead of screenshots, some of us (including me) are mainly browsing via mobiles and tablets or on a low-band-with connection.

1 Like

for Erlang, this would have been:

$ ./otp_build autoconf
$ ./configure
$ make
$ make install

Elixir as simple as (as suggested)

$ make clean test

ps I’ll get better about the images, my apolologies

1 Like

On what kind of disk/medium are you running the tests?

After running the tests, have you used find to find the files mentioned in the error and stated them?

I do not think this is related to erlang, but more to your overall build environment.

you are right

[martin@localhost ~]$ find . -name Elixir.NewWithTests.beam
./elixir/lib/mix/tmp/new_with_tests/_build/iioi_rpi2_test/lib/new_with_tests/ebin/Elixir.NewWithTests.beam

seems the MIX_ENV environment property is still kicking in ever after source ~/.bashrc

will restart the session and hopefully this’s beed resolved, cheers!

Martin

source ~/.bashrc won’t delete otherwise exported environment variables, so if you have manually done export MIX_ENV=… in a session, but do not have a line export MIX_ENV=…, then the variable won’t be changed nor deleted by re-sourcing the ~/.bashrc.

To delete you need to either start a new session or use unset MIX_ENV.

1 Like

it went through

==> mix (ex_unit)
Excluding tags: [windows: true]

................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Finished in 54.0 seconds (2.4s on load, 51.6s on tests)
9 doctests, 519 tests, 0 failures

Guess it’d be nice to clarify the ownership of the MIX_ENV system variable. Elixir is claiming it for its build process, the Nerves project too…

Either way: thank you!

source ~/.bashrc won’t delete otherwise exported environment variables, so if you have manually done export MIX_ENV=… in a session, but do not have a line export MIX_ENV=… , then the variable won’t be changed nor deleted by re-sourcing the ~/.bashrc .

To delete you need to either start a new session or use unset MIX_ENV .

so much I gathered, just escaped my attention, thanks!

MIX_ENV is owned by mix, and it does not restrict its values.

Each project can define the values they like.

I have opened a ticket about the failing tests though, proposing to write them in an environment agnostic way or to fail early with a clear error message:

https://github.com/elixir-lang/elixir/issues/8584

2 Likes