Erlang OTP-24.0 released!

I only have the file name, no line number.

I can’t share the code.

I reverted for now.

1 Like

The (functionally harmless) error is still there in your code, though. Not using 24.0 doesn’t make it go away :slight_smile: So perhaps it is better to stick with 24.0 and clear out the issues?

There was one of these warnings in Phoenix that I first noticed when upgrading to 24.0, but it was already fixed in a new release. (A Plug.Conn struct was getting updated, but that updated struct was never being used or returned to the caller, so “never used” … )

1 Like

Yes, that will have to happen eventually.

@tomciopp Do you know what the default KERL_CONFIGURE_OPTIONS when using the asdf command? Are these options for development or production only? I ask this question because I have a lot of these options currently set when building Erlang with asdf. Thanks in advance for any insight that you can regarding these configuration options.

Think different and code well,

-Conrad

Hey All, I was able to resolve my issue by first installing wxWidgets 3.1.5 from source as follows:

git clone git@github.com:wxWidgets/wxWidgets.git
cd wxWidgets
git submodule update --init src/png
git submodule update --init src/jpeg
./configure --with-cocoa --prefix=/usr/local --enable-webview --enable-compat28 --with-macosx-version-min=11.3
make
sudo make install

Then I installed Erlang 24.0 as follows:

export KERL_BUILD_DOCS=yes
export KERL_INSTALL_MANPAGES=yes
export wxUSE_MACOSX_VERSION_MIN=11
export EGREP=egrep
export CC=clang
export CPP="clang -E"
export KERL_USE_AUTOCONF=0

export KERL_CONFIGURE_OPTIONS="--disable-debug \
                               --disable-hipe \
                               --disable-sctp \
                               --disable-silent-rules \
                               --enable-darwin-64bit \
                               --enable-dynamic-ssl-lib \
                               --enable-kernel-poll \
                               --enable-shared-zlib \
                               --enable-smp-support \
                               --enable-threads \
                               --enable-wx \
                               --with-ssl=/opt/local \
                               --with-wx-config=/usr/local/bin/wx-config \
                               --without-javac \
                               --without-jinterface \
                               --without-odbc"
asdf install erlang 24.0
4 Likes

A post was merged into an existing topic: Erlang OTP-24.0.1 released!

Watch Mark’s YT video on how to fixed this asdf issue https://www.youtube.com/watch?v=w7JkhGrjnMY

2 Likes

Relatedly, I asked what to do afterwards. Do we remove “Darwin-disabled”?

Regarding: Erlang OTP-24.0.1 released! - #18 by woohaaha

Alchemist.camp (https://alchemist.camp) posted this video recently: https://www.youtube.com/watch?v=w7JkhGrjnMY :clap:

He suggests editing kerl and changing “Darwin” to “Darwin-disabled”.

I haven’t tried this yet but I’m wondering what to do afterwards? Should we change it back to “Darwin”?

I just upgraded to 24 to see if the tests pass and I get this error as well. No line number.

➜  my_app git:(develop) ✗ mix test test/my_app_web/integration/home_page_test.exs

warning: a term is constructed, but never used
  test/my_app_web/integration/home_page_test.exs

.

Finished in 1.5 seconds
1 feature, 0 failures

Is there a verbose mode to see where this originates from?

1 Like

This has been fixed on Elixir v1.12+.

2 Likes

How do we resolve the crypto.hmac issue? I’m running into this error and need to resolve it asap. It’s a production issue.

Elixir version 1.12.0 and OTP version 24. Docker base image is elixir:1.12.0-alpine

xAzure.request(:get_blob, [storename, "97/d6/ec/86/97d6ec86-6ae2-4e92-bae3-c62fc94f88ca"])
** (exit) exited in: :gen_server.call(#PID<0.4125.0>, {:get_blob, 'filestore-v2', '97/d6/ec/86/97d6ec86-6ae2-4e92-bae3-c62fc94f88ca', []}, 30000)
    ** (EXIT) an exception was raised:
        ** (UndefinedFunctionError) function :crypto.hmac/3 is undefined or private
            (crypto 5.0.1) :crypto.hmac(:sha256, <<180, 132, 132, 66, 159, 46, 117, 95, 190, 26, 224, 69, 171, 56, 248, 175, 73, 173, 24, 178, 82, 80, 244, 118, 52, 223, 221, 130, 13, 11, 116, 174, 184, 40, 108, 145, 116, 78, 12, 65, 154, 147, 42, 245, 173, 193, 23, 58, 241, 84, ...>>, 'GET\n\n\n\n\n\n\n\n\n\n\n\nx-ms-date:Thu, 03 Jun 2021 00:20:33 GMT\nx-ms-version:2014-02-14\n/roninstorageacctstage/filestore-v2/97/d6/ec/86/97d6ec86-6ae2-4e92-bae3-c62fc94f88ca')

The library/code must be updated to no longer use the deprecated function.

4 Likes

asdf now cleanly builds erlang 24.0.x on macOS! :tada:

asdf-erlang PR:

kerl PR:

You just need to run:

asdf plugin-update erlang
asdf install erlang 24.0.2
9 Likes

I’m not sure this will resolve your issue but that base image is not supported by the Hex Team as far as I understand. If that’s true you may be interested in swapping it out for one of these:
https://hub.docker.com/r/hexpm/elixir/tags?page=1&ordering=last_updated

1 Like

Thanks! Switching to officially supported images by the Hex team was what I decided to do.

The ExAzure library isn’t maintained anymore so I’ll likely switch out of that in the near future

Thanks @josevalim! I decided to switch the docker image to the one supported by the Hex Team. In the near team I’ll switch out of ExAzure to a better supported Azure library or build my own.

Yes! Worked perfectly for me.

1 Like
asdf plugin-update erlang
asdf install erlang 24.0.2

Doesn’t work for me on my M1 Macbook Air, macOS 11.3.1.

Still getting the same error:

Extracting source code
Building Erlang/OTP 24.0 (asdf_24.0), please wait…
Configure failed.
checking for compiler flags for loadable drivers… -Werror=undef -Werror=implicit -Werror=return-type -Wdeclaration-after-statement -Wall -Wstrict-prototypes -Wmissing-prototypes -D_THREAD_SAFE -D_REENTRANT -DPOSIX_THREADS -fno-common -g -O2 -fPIC -fno-common
checking for linker for loadable drivers… clang
checking for linker flags for loadable drivers… -m64 -bundle -bundle_loader /Users/andy/.asdf/plugins/erlang/kerl-home/builds/asdf_24.0/otp_src_24.0/bin/aarch64-apple-darwin20.4.0/beam.smp
checking for ‘runtime library path’ linker flag… not found
checking for multiarch directory… not found
checking size of void *… (cached) 8
checking for static zlib… no
checking for OpenSSL header in /usr/local/opt/openssl@1.1… yes
checking for OpenSSL in /usr/local/opt/openssl@1.1… configure: error: neither static nor dynamic crypto library found in /usr/local/opt/openssl@1.1
ERROR: /Users/andy/.asdf/plugins/erlang/kerl-home/builds/asdf_24.0/otp_src_24.0/lib/crypto/configure failed!

There are notes on the OpenSSL issues for Macs in the Erlang plug-in repo

If that doesn’t work, there are also some issues for M1 macs stemming from terminals running under Rosetta. See my post here

3 Likes

Awesome, it wasn’t exactly what you said but your messages helped me realize that because I restored my new M1 mac with a time machine backup of an Intel mac, I had Homebrew installed in the old directory (/usr/local) instead of the one used by M1s (/opts/homebrew).

I ripped out the old one and re-installed homebrew, and I was able to cleanly install Erlang 24.0.2 using the command that I quoted from @axelson above!

Thanks!

2 Likes