Installing Erlang, Rebar3 and Lisp Flavoured Erlang (LFE)

Hello,

Requirements:

I have Searched the forum for my issue and found nothing related or helpful
I have checked the Resources category (Resources Index)
I have reviewed the Wiki for relevant information
I have read the the Release Notes and Errata

OpenMandriva Lx version:

OpenMandriva Lx release 6.0 (Vanadium) Rock for x86_64

Desktop environment (KDE, LXQT…):

KDE Plasma Version (Wayland): 6.3.4

Description of the issue (screenshots if relevant):

When searching the repos for erlang, I could only find

 erlang-rpm-macros.noarch : Macros for simplifying building of Erlang packages

Running erl would only result in Would you like to install erlang-base(contrib) y/N. Typing y then hitting Enter would do nothing and return me to the next prompt.

After further searching in the forums, I found an article discussing using abb to install applications. The following is what I did to get Erlang (OTP 25), Rebar3 and LFE installed.

Relevant informations (hardware involved, software version, logs or output…):

This was a newly installed OMLx 6.0, with Java 17 and NetBeans and ECL just installed.

Hardware: (Dell Precision 5530)

$ inxi -CGI
CPU:
  Info: 6-core model: Intel Core i7-8850H bits: 64 type: MT MCP cache:
    L2: 1.5 MiB
  Speed (MHz): avg: 800 min/max: 800/4300 cores: 1: 800 2: 800 3: 800 4: 800
    5: 800 6: 800 7: 800 8: 800 9: 800 10: 800 11: 800 12: 800
Graphics:
  Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] driver: i915 v: kernel
  Device-2: NVIDIA GP107GLM [Quadro P1000 Mobile] driver: nvidia
    v: 575.51.02
  Device-3: Microdia Integrated_Webcam_HD driver: uvcvideo type: USB
  Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8
    compositor: kwin_wayland driver: X: loaded: modesetting unloaded: fbdev,vesa
    dri: iris,nouveau gpu: i915 resolution: 1920x1080~60Hz
  API: EGL v: 1.5 drivers: iris,kms_swrast,nouveau,nvidia,swrast
    platforms: gbm,wayland,x11,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 25.0.7
    renderer: Mesa Intel UHD Graphics 630 (CFL GT2)
  API: Vulkan v: 1.4.312 drivers: N/A surfaces: xcb,xlib,wayland
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo de: kscreen-console
    gpu: nvidia-smi wl: wayland-info x11: xdpyinfo, xprop, xrandr
Info:
  Memory: total: 32 GiB note: est. available: 31.01 GiB used: 4.81 GiB (15.5%)
  Processes: 291 Uptime: 4h 4m Shell: Bash inxi: 3.3.37

1. Install Erlang

Step 1: Install relevant software

$ sudo dnf install git abb
$ abb clone erlang

Step 2: Attempt the build and install any other required packages

$ abb build erlang

At this point abb will let you know about any missing dependencies. Repeat this step until abb stops complaining. Please note I had java-17-openjdk-devel et. al. installed prior. In my case these were the missing dependencies.

$ sudo dnf in -y bison flex java-rpmbuild pkgconfig tcl-devel unixODBC-devel valgrind-devel wxgtkc3.2-devel lib64gd-devel libcurl-devel libcurl4 wxwidget

Step 3: After a successful build, install the newly minted RPM(s).

$ cd RPMS/x86_64 # where the output of the builds are, aka the RPMs
$ sudo dnf in erlang-base-<version>.rpm # Use [TAB] for autocomplete
$ erl # Test that you have a working version of Erlang.

2. Install Rebar3

Things get a bit more involved here.

$ abb clone erlang-rebar3

Update the erlang-rebar3.spec file to the version of rebar3 that works with the OTP version installed in the previous section. As of this writing, it was OTP 25, so I changed the version to 3.24.0 and removed the %mkrel token.
Also update the Source0 to download the .zip or tar.gz file from GitHub.

$ abb build erlang-rebar3
$ cd erlang-rebar3/RPMS/x86_64 # you will see the RPM with the rebar3 version you selected.
$ sudo dnf in -y erlang-rebar3-[TAB] # too long to write it out and your version may vary...
$ rebar3 version # test that rebar3 was successfully installed.

3. Install Erlang-LFE

At this point, using the abb version of erlang-lfe was getting too complicated.

Easiest option at this point is to use the rebar3_lfe plugin. Follow the setup instructions found here, adding the plugin to ~/.config/rebar3/rebar.config.

$ mkdir -p $HOME/.config/rebar3
$ rebar3 lfe repl # Testing LFE

It hasn’t been built in a while:

Which means it probably needs an update, as well.

As will all the dependents, most likely:

Thanks for the update. I saw that as well, based on the Github dates. As a first time ABB user, it was fun learning, but it started getting a bit hairy towards the end. :sweat_smile:

What would maintaining this package entail? I don’t mind contributing if possible.

Fork the package repo in your GH account, update the version and apply any needed fixes or patches (and remove any broken ones), and submit a PR after you have a known good local build and can test the package is working. If you aren’t in the Cooker room on Matrix yet, that is a good place to get advice about packaging.

Great! Does that mean I need to be running Cooker or can I stick with Rock?

Because of how we release, packages need to be built and tested in Cooker. I think you can just set up a VM or chroot to handle that if you don’t want to daily drive it like some of us do.

1 Like