# Erlang/OTP 28.0-rc2 Released

**URL:** <https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599>\
**Category:** Erlang News\
**Tags:** erlang-release\
**Created:** [March 19, 2025, 9:13am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599 "2025-03-19T09:13:16Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![proxyles](https://erlangforums.com/letter_avatar_proxy/v4/letter/p/9de053/32.png) [@proxyles](https://erlangforums.com/u/proxyles)\
**Post date:** [March 19, 2025, 9:13am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/1 "2025-03-19T09:13:16Z")

</div>

## OTP 28.0-rc2

Erlang/OTP 28.0-rc2 is the second release candidate of three before the OTP 28.0 release.

The intention with this release is to get feedback from our users. All feedback is welcome, even if it is only to say that it works for you.  
We encourage users to try it out and give us feedback either by creating an issue at [https://github.com/erlang/otp/issues](https://github.com/erlang/otp/issues) or by posting to [Erlang Forums](https://erlangforums.com/).

All artifacts for the release can be downloaded from the [Erlang/OTP Github](https://github.com/erlang/otp/releases/tag/OTP-28.0-rc2) release and you can view the new documentation at [https://erlang.org/documentation/doc-16-rc2/doc](https://erlang.org/documentation/doc-16-rc2/doc/). You can also install the latest release using [kerl](https://github.com/kerl/kerl) like this:

```erlang
kerl build 28.0-rc2 28.0-rc2.

```

Starting with this release, a source [Software Bill of Materials (SBOM)](https://www.cisa.gov/sites/default/files/2023-04/sbom-types-document-508c.pdf) will describe the release on the [Github Releases](https://github.com/erlang/otp/releases) page. We welcome feedback on the SBOM.

Erlang/OTP 28 is a new major release with new features, improvements as well as a few incompatibilities. Some of the new features are highlighted below.

Many thanks to all contributors!

# Highlights for RC2

- Functionality making it possible for processes to enable reception of [priority messages](https://erlang.org/doc/system/ref_man_processes.html#priority-messages) has been introduced in accordance with [EEP 76](https://www.erlang.org/eeps/eep-0076).

# Highlights for RC1

## New language features

- Comprehensions have been extended with “zip generators” allowing multiple generators to be run in parallel. For example, `[A+B || A <- [1,2,3] && B <- [4,5,6]]` will produce `[5,7,9]`.

- Generators in comprehensions can now be strict, meaning that if the generator pattern does not match, an exception will be raised instead of silently ignore the value that didn’t match.

- It is now possible to use any base for floating point numbers as per [EEP 75: Based Floating Point Literals](https://www.erlang.org/eeps/eep-0075).

## Compiler and JIT improvements

- For certain types of errors, the compiler can now suggest corrections. For example, when attempting to use variable `A` that is not defined but `A0` is, the compiler could emit the following message: `variable 'A' is unbound, did you mean 'A0'?`

- The size of an atom in the Erlang source code was limited to 255 bytes in previous releases, meaning that an atom containing only emojis could contain only 63 emojis. While atoms are still only allowed to contain 255 characters, the number of bytes is no longer limited.

- The `warn_deprecated_catch` option enables warnings for use of old-style catch expressions on the form `catch Expr` instead of the modern `try` … `catch` … `end`.

- Provided that the map argument for a `maps:put/3` call is known to the compiler to be a map, the compiler will replace such calls with the corresponding update using the map syntax.

- Some BIFs with side-effects (such as `binary_to_atom/1`) are optimized in `try` … `catch` in the same way as guard BIFs in order to gain performance.

- The compiler’s alias analysis pass is now both faster and less conservative, allowing optimizations of records and binary construction to be applied in more cases.

## ERTS

- The `trace:system/3` function has been added. It has a similar interface as `erlang:system_monitor/2` but it also supports trace sessions.

- `os:set_signal/2` now supports setting handlers for the `SIGWINCH`, `SIGCONT`, and `SIGINFO` signals.

- The two new BIFs `erlang:processes_iterator/0` and `erlang:process_next/1` make it possible to iterate over the process table in a way that scales better than `erlang:processes/0`.

## Shell and terminal

- The erl -noshell mode has been updated to have two sub modes called `raw` and `cooked`, where `cooked` is the old default behaviour and `raw` can be used to bypass the line-editing support of the native terminal. Using `raw` mode it is possible to read keystrokes as they occur without the user having to press Enter. Also, the `raw` mode does not echo the typed characters to stdout.

- The shell now prints a help message explaining how to interrupt a running command when stuck executing a command for longer than 5 seconds.

## STDLIB

- The `join(Binaries, Separator)` function that joins a list of binaries has been added to the [`binary`](https://erlang.org/documentation/doc-16-rc1/lib/stdlib-7.0/doc/html/binary.html) module.

- By default, sets created by module [`sets`](https://erlang.org/documentation/doc-16-rc1/lib/stdlib-7.0/doc/html/sets.html) will now be represented as maps.

- Module [`re`](https://erlang.org/documentation/doc-16-rc1/lib/stdlib-7.0/doc/html/re.html) has been updated to use the newer PCRE2 library instead of the PCRE library.

- There is a new `zstd` module that does [Zstandard](https://facebook.github.io/zstd/) compression.

## Dialyzer

- [EEP 69: Nominal Types](https://www.erlang.org/eeps/eep-0069) has been implemented.

## SSL

- The data handling for tls-v1.3 has been optimized.

## Emacs mode (in the Tools application)

- The `indent-region` in Emacs command will now handle multiline strings better.

For more details about new features and potential incompatibilities see the [README](https://erlang.org/download/otp_src_28.0-rc2.readme).

---

<div class="post-metadata">

**Author:** ![proxyles](https://erlangforums.com/letter_avatar_proxy/v4/letter/p/9de053/32.png) [@proxyles](https://erlangforums.com/u/proxyles)\
**Post date:** [March 19, 2025, 9:14am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/2 "2025-03-19T09:14:16Z")

</div>



---

<div class="post-metadata">

**Author:** ![phild](https://erlangforums.com/user_avatar/erlangforums.com/phild/32/742_2.png) [@phild](https://erlangforums.com/u/phild)\
**Post date:** [March 19, 2025, 2:53pm UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/3 "2025-03-19T14:53:45Z")

</div>

> [@proxyles](#):
>
> Starting with this release, a source [Software Bill of Materials (SBOM)](https://www.cisa.gov/sites/default/files/2023-04/sbom-types-document-508c.pdf) will describe the release on the [Github Releases](https://github.com/erlang/otp/releases) page. We welcome feedback on the SBOM.

I don’t know much about the SBOM generation tooling, but is there a way to make it formatted with line breaks? The advantage of a human readable format such as JSON is that it is supposed to be human readable.

---

<div class="post-metadata">

**Author:** ![rickard](https://erlangforums.com/user_avatar/erlangforums.com/rickard/32/184_2.png) [@rickard](https://erlangforums.com/u/rickard)\
**Post date:** [March 19, 2025, 4:20pm UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/4 "2025-03-19T16:20:09Z")

</div>

This one-liner will make it human readable:

```erlang
 1> file:write_file("readable.bom.spdx.json", unicode:characters_to_binary(json:format(json:decode(element(2, file:read_file("./bom.spdx.json")))))).

```

(assumes you use an OTP 27.1 Erlang or newer)

---

<div class="post-metadata">

**Author:** ![phild](https://erlangforums.com/user_avatar/erlangforums.com/phild/32/742_2.png) [@phild](https://erlangforums.com/u/phild)\
**Post date:** [March 19, 2025, 8:50pm UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/5 "2025-03-19T20:50:41Z")

</div>

Call me obtuse, I’d quite like be able to browse it on the website without having to download it and run a command on it :).

I’d also expect that the official OTP site will/should be held up as a paragon of best practice, so whatever it does will likely be mimicked by others. Is there any reason _not_ to have it human readable in the repo?

---

<div class="post-metadata">

**Author:** ![garazdawi](https://erlangforums.com/user_avatar/erlangforums.com/garazdawi/32/175_2.png) [@garazdawi](https://erlangforums.com/u/garazdawi)\
**Post date:** [March 20, 2025, 7:39pm UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/6 "2025-03-20T19:39:43Z")

</div>

I’m not sure a 3.5 MB json file will be more or less human readable if it is formatted nicely 🙂

As [the tool](https://github.com/oss-review-toolkit/ort) we use to generate the sbom generates a formatted json document, I think that we also should do that after we have processed it. What do you think @kiko ?

---

<div class="post-metadata">

**Author:** ![kiko](https://erlangforums.com/user_avatar/erlangforums.com/kiko/32/1630_2.png) [@kiko](https://erlangforums.com/u/kiko)\
**Post date:** [March 20, 2025, 8:01pm UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/7 "2025-03-20T20:01:27Z")

</div>

Sure, we can generate a nicely formatted json. The nicely formatted json is 5.3 MB.  
I doubt anyone reads this as a raw text file (187,000+ lines), but we can deliver a formatted json so that our users do not need to run the one liner script.

Thanks for the feedback

---

<div class="post-metadata">

**Author:** ![0m3](https://erlangforums.com/user_avatar/erlangforums.com/0m3/32/2339_2.png) [@0m3](https://erlangforums.com/u/0m3)\
**Post date:** [March 20, 2025, 10:18pm UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/8 "2025-03-20T22:18:48Z")

</div>

Hello everyone.  
There was a problem when building 28.0-rc2 release.

```sh
❯ asdf list erlang                                                              
  ...                                                                           
  27.3                                                                          
 *28.0-rc1                                                                      
❯ asdf install erlang 28.0-rc2                                                  
ERROR: 'asdf_28.0-rc2' is not a kerl-managed Erlang/OTP installation.           
Build 'asdf_28.0-rc2' has been deleted.                                         
Extracting source code for normal build...                                      
Building (normal) Erlang/OTP 28.0-rc2 (asdf_28.0-rc2); please wait...           
Initializing (build) log file at /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_build_28.0-rc2.log.
autoconf: error: no input file                                                  
APPLICATIONS DISABLED (See: /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_build_28.0-rc2.log)
 * jinterface : Java compiler disabled by user                              
 * jinterface : User gave --without-jinterface option                       
 * odbc : User gave --without-odbc option                             
                                                                                
APPLICATIONS INFORMATION (See: /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_build_28.0-rc2.log)
 * wx : wxWidgets was not compiled with --enable-webview or wxWebView developer package is not installed, wxWebView will NOT be available
                                                                                
ERROR: build failed.                                                            
   26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
      | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
compilation terminated.                                                         
make[3]: *** [Makefile:168: x86_64-pc-linux-gnu/wxe_init.o] Error 1             
make[3]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/lib/wx/c_src'
make[2]: *** [/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/make/otp_subdir.mk:29: opt] Error 2
make[2]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/lib/wx'
make[1]: *** [/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/make/otp_subdir.mk:29: opt] Error 2
make[1]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/lib'
make: *** [Makefile:508: libs] Error 2                                          
                                                                                
Please see /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_build_28.0-rc2.log for full details.
Auto cleaning all artifacts except the log file...                              
(use KERL_AUTOCLEAN=0 to keep build on failure, if desired)                     
Cleaning up compilation products for 'asdf_28.0-rc2' under:                     
  - /home/user/.asdf/plugins/erlang/kerl-home/builds...                         
  - /home/user/.asdf/downloads/erlang/28.0-rc2...                               
... done.                                                                       
error installing version: failed to run install callback: exit status 1

```

[Kerl options](https://github.com/kerl/kerl?tab=readme-ov-file#kerl-options) are as follows:

```sh
cat .zshrc
...
# kerl options
#
export KERL_BUILD_DOCS=yes
export KERL_USE_AUTOCONF=0
#kco1="--disable-debug \
# --without-javac \
# --without-jinterface \
# --without-odbc \
# --without-wx"
#
kco2="--disable-debug \
    --without-javac \
    --without-jinterface \
    --without-odbc \
    --enable-wx \
    --enable-webview \
    --with-wx-config=/usr/lib/wx/config/gtk3-unicode-3.2"

export KERL_CONFIGURE_OPTIONS=$kco2
...

```

The build of release 28.0-rc2 with kerl configuration options `kco1` is successful (without `wx`).  
Releases 27.3 and 28.0-rc1 were build without setting kerl options (without errors) .

```sh
$ erl -run wx demo

```

 ![2025-03-21-004412_1920x1080_scrot](https://erlangforums.com/uploads/default/original/2X/2/28ed4742c4b01823a4fb3580954fc63bee61688c.jpeg)

```sh
❯ asdf info                                                                     
OS:                                                                             
Linux arch 6.13.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 13 Mar 2025 18:12:00 +0000 x86_64 GNU/Linux
                                                                                
SHELL:                                                                          
zsh 5.9 (x86_64-pc-linux-gnu)                                                   
                                                                                
BASH VERSION:                                                                   
5.2.37(1)-release                                                               
                                                                                
ASDF VERSION:                                                                   
0.16.5-arch                                                                     
                                                                                
ASDF INTERNAL VARIABLES:                                                        
ASDF_DEFAULT_TOOL_VERSIONS_FILENAME=.tool-versions                              
ASDF_DATA_DIR=/home/user/.asdf                                                  
ASDF_CONFIG_FILE=/home/user/.asdfrc                                             
                                                                                
ASDF INSTALLED PLUGINS:                                                         
erlang https://github.com/asdf-vm/asdf-erlang.git 5868e8a7a7b1f69be4aa14a76ed5a6c222d9114d

```

Findings:

- [Erlang 24.0 installation error message: wxWidgets was not compiled with --enable-webview or wxWebView developer package is not installed #203](https://github.com/asdf-vm/asdf-erlang/issues/203)
- [Fatal error asdf install of erlang 24.2.1](https://elixirforum.com/t/fatal-error-asdf-install-of-erlang-24-2-1/45763)
- [Advanced configuration and build of Erlang/OTP](https://www.erlang.org/doc/system/install.html#advanced-configuration-and-build-of-erlang-otp)
- [asdf-erlang (Arch Linux)](https://github.com/asdf-vm/asdf-erlang?tab=readme-ov-file#arch-linux)

---

<div class="post-metadata">

**Author:** ![garazdawi](https://erlangforums.com/user_avatar/erlangforums.com/garazdawi/32/175_2.png) [@garazdawi](https://erlangforums.com/u/garazdawi)\
**Post date:** [March 21, 2025, 7:36am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/9 "2025-03-21T07:36:06Z")

</div>

> [@0m3](#):
>
> `/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_build_28.0-rc2.log`

Can you post the contents (or atleast the last 20 or so lines) of this file?

---

<div class="post-metadata">

**Author:** ![0m3](https://erlangforums.com/user_avatar/erlangforums.com/0m3/32/2339_2.png) [@0m3](https://erlangforums.com/u/0m3)\
**Post date:** [March 21, 2025, 9:14am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/10 "2025-03-21T09:14:34Z")

</div>

Hi, @garazdawi.

```sh
   1 ***Fri Mar 21 12:13:38 AM MSK 2025 - kerl build 28.0-rc2***                                                                                                                                                                            
   2 Build options:                                                                  
   3 * KERL_BUILD_DOCS=yes                                                           
   4 * KERL_BUILD_BACKEND=git                                                        
   5 [packages] Found Arch Linux with ID arch                                        
   6 [packages] Release ID found in /etc/os-release: arch                            
   7 [packages] Found package declarations for your Linux distro: arch               
   8 [packages] Probe success for autoconf (distro: arch)!                           
   9 /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/configure --cache-file=/dev/null --disable-debug --without-javac --without-jinterface --without-odbc --enable-wx --enable-webview --with-wx-config=/usr/ lib/wx/config/gtk3-unicode-3.2
  10 === Running configure in /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/erts ===
  11 ./configure '--disable-debug' '--without-javac' '--without-jinterface' '--without-odbc' '--enable-wx' '--enable-webview' '--with-wx-config=/usr/lib/wx/config/gtk3-unicode-3.2' --disable-option-checking --cache-file=/dev/null --srcdir ="/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/erts"
...
2274 CXX»···x86_64-pc-linux-gnu/wxe_wrapper_1.o                                     
2275 CXX»···x86_64-pc-linux-gnu/wxe_wrapper_3.o                                     
2276 CXX»···x86_64-pc-linux-gnu/wxe_wrapper_2.o                                     
2277 CXX»···x86_64-pc-linux-gnu/wxe_wrapper_4.o                                     
2278 CXX»···x86_64-pc-linux-gnu/wxe_wrapper_5.o                                     
2279 CXX»···x86_64-pc-linux-gnu/wxe_wrapper_6.o                                     
2280 CXX»···x86_64-pc-linux-gnu/wxe_wrapper_8.o                                     
2281 CXX»···x86_64-pc-linux-gnu/wxe_wrapper_7.o                                     
2282 CXX»···x86_64-pc-linux-gnu/wxe_events.o                                        
2283 CXX»···x86_64-pc-linux-gnu/wxe_init.o                                          
2284 CXX»···x86_64-pc-linux-gnu/wxe_func_table.o                                    
2285 CC»x86_64-pc-linux-gnu/wxe_nif.o                                               
2286 CC»x86_64-pc-linux-gnu/wxe_ps_init.o                                           
2287 CXX»···x86_64-pc-linux-gnu/wxe_main.o                                          
2288 CXX»···x86_64-pc-linux-gnu/wxe_impl.o                                          
2289 CXX»···x86_64-pc-linux-gnu/wxe_helpers.o                                       
2290 CXX»···x86_64-pc-linux-gnu/wxe_callback_impl.o                                 
2291 CXX»···x86_64-pc-linux-gnu/wxe_return.o                                        
2292 CXX»···x86_64-pc-linux-gnu/wxe_gl.o                                            
2293 CXX»···x86_64-pc-linux-gnu/gl_nif.o                                            
2294 CXX»···x86_64-pc-linux-gnu/glu_nif.o                                           
2295 CC»x86_64-pc-linux-gnu/egl_impl.o                                              
2296 In file included from gen/wxe_macros.h:72,                                      
2297 from gen/wxe_wrapper_2.cpp:28:                                 
2298 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2299 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2300 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2301 compilation terminated.                                                         
2302 make[3]: *** [Makefile:169: x86_64-pc-linux-gnu/wxe_wrapper_2.o] Error 1        
2303 make[3]: *** Waiting for unfinished jobs....                                    
2304 In file included from gen/wxe_macros.h:72,                                      
2305 from gen/wxe_wrapper_3.cpp:28:                                 
2306 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2307 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2308 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2309 compilation terminated.                                                         
2310 make[3]: *** [Makefile:169: x86_64-pc-linux-gnu/wxe_wrapper_3.o] Error 1        
2311 In file included from gen/wxe_macros.h:72,                                      
2312 from gen/wxe_wrapper_7.cpp:28:                                 
2313 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2314 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2315 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2316 compilation terminated.                                                         
2317 make[3]: *** [Makefile:169: x86_64-pc-linux-gnu/wxe_wrapper_7.o] Error 1        
2318 In file included from gen/wxe_macros.h:72,                                      
2319 from gen/wxe_wrapper_8.cpp:28:                                 
2320 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2321 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2322 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2323 compilation terminated.                                                         
2324 make[3]: *** [Makefile:168: x86_64-pc-linux-gnu/wxe_wrapper_8.o] Error 1        
2325 In file included from gen/wxe_macros.h:72,                                      
2326 from gen/wxe_wrapper_5.cpp:28:                                 
2327 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2328 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2329 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2330 compilation terminated.                                                         
2331 make[3]: *** [Makefile:168: x86_64-pc-linux-gnu/wxe_wrapper_5.o] Error 1        
2332 In file included from gen/wxe_macros.h:72,                                      
2333 from gen/wxe_wrapper_6.cpp:28:                                 
2334 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2335 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2336 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2337 compilation terminated.                                                         
2338 make[3]: *** [Makefile:168: x86_64-pc-linux-gnu/wxe_wrapper_6.o] Error 1        
2339 In file included from gen/wxe_macros.h:72,                                      
2340 from gen/wxe_events.cpp:26:                                    
2341 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2342 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2343 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2344 compilation terminated.                                                         
2345 make[3]: *** [Makefile:168: x86_64-pc-linux-gnu/wxe_events.o] Error 1           
2346 In file included from gen/wxe_macros.h:72,                                      
2347 from gen/wxe_wrapper_4.cpp:28:                                 
2348 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2349 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2350 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2351 compilation terminated.                                                         
2352 make[3]: *** [Makefile:168: x86_64-pc-linux-gnu/wxe_wrapper_4.o] Error 1        
2353 In file included from gen/wxe_macros.h:72,                                      
2354 from gen/wxe_wrapper_1.cpp:28:                                 
2355 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2356 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2357 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2358 compilation terminated.                                                         
2359 make[3]: *** [Makefile:168: x86_64-pc-linux-gnu/wxe_wrapper_1.o] Error 1        
2360 In file included from gen/wxe_macros.h:72,                                      
2361 from wxe_callback_impl.cpp:26:                                 
2362 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2363 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2364 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2365 compilation terminated.                                                         
2366 make[3]: *** [Makefile:157: x86_64-pc-linux-gnu/wxe_callback_impl.o] Error 1    
2367 In file included from gen/wxe_macros.h:72,                                      
2368 from gen/wxe_init.cpp:23:                                      
2369 /usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
2370 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
2371 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
2372 compilation terminated.                                                         
2373 make[3]: *** [Makefile:168: x86_64-pc-linux-gnu/wxe_init.o] Error 1             
2374 make[3]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/lib/wx/c_src'
2375 make[2]: *** [/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/make/otp_subdir.mk:29: opt] Error 2
2376 make[2]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/lib/wx'
2377 make[1]: *** [/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/make/otp_subdir.mk:29: opt] Error 2
2378 make[1]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc2/otp_src_28.0-rc2/lib'
2379 make: *** [Makefile:508: libs] Error 2                                                                                                                                                                                                   

```

---

<div class="post-metadata">

**Author:** ![garazdawi](https://erlangforums.com/user_avatar/erlangforums.com/garazdawi/32/175_2.png) [@garazdawi](https://erlangforums.com/u/garazdawi)\
**Post date:** [March 21, 2025, 9:22am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/11 "2025-03-21T09:22:45Z")

</div>

Thanks. Does it work if you build rc1 with the options you pass to rc2?

---

<div class="post-metadata">

**Author:** ![phild](https://erlangforums.com/user_avatar/erlangforums.com/phild/32/742_2.png) [@phild](https://erlangforums.com/u/phild)\
**Post date:** [March 21, 2025, 9:52am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/12 "2025-03-21T09:52:00Z")

</div>

I must admit I hadn’t expected it to be so large and didn’t check the file size!

---

<div class="post-metadata">

**Author:** ![0m3](https://erlangforums.com/user_avatar/erlangforums.com/0m3/32/2339_2.png) [@0m3](https://erlangforums.com/u/0m3)\
**Post date:** [March 21, 2025, 10:05am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/13 "2025-03-21T10:05:55Z")

</div>

> **[withkerlopts\_otp\_build\_28.0-rc1.log](https://drive.google.com/file/d/1jPnXkW4e_AASHvbGNBn8M2nLu0NLeco2/edit)**
>
> Google Drive file.

```sh
 1 ❯ asdf install erlang 28.0-rc1                                                  
  2 ERROR: 'asdf_28.0-rc1' is not a kerl-managed Erlang/OTP installation.           
  3 ERROR: no build named 'asdf_28.0-rc1'!                                          
  4 Downloading (from GitHub) Erlang/OTP 28.0-rc1 to /home/user/.asdf/downloads/erlang/28.0-rc1...
  5 Extracting source code for normal build...                                      
  6 Building (normal) Erlang/OTP 28.0-rc1 (asdf_28.0-rc1); please wait...           
  7 Initializing (build) log file at /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_build_28.0-rc1.log.
  8 autoconf: error: no input file                                                  
  9 APPLICATIONS DISABLED (See: /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_build_28.0-rc1.log)
 10 * jinterface : Java compiler disabled by user                              
 11 * jinterface : User gave --without-jinterface option                       
 12 * odbc : User gave --without-odbc option                             
 13                                                                                 
 14 APPLICATIONS INFORMATION (See: /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_build_28.0-rc1.log)
 15 * wx : wxWidgets was not compiled with --enable-webview or wxWebView developer package is not installed, wxWebView will NOT be available
 16                                                                                 
 17 ERROR: build failed.                                                            
 18 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
 19 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 20 compilation terminated.                                                         
 21 make[3]: *** [Makefile:168: x86_64-pc-linux-gnu/wxe_init.o] Error 1             
 22 make[3]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_src_28.0-rc1/lib/wx/c_src'
 23 make[2]: *** [/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_src_28.0-rc1/make/otp_subdir.mk:29: opt] Error 2
 24 make[2]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_src_28.0-rc1/lib/wx'
 25 make[1]: *** [/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_src_28.0-rc1/make/otp_subdir.mk:29: opt] Error 2
 26 make[1]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_src_28.0-rc1/lib'
 27 make: *** [Makefile:508: libs] Error 2                                          
 28                                                                                 
 29 Please see /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_build_28.0-rc1.log for full details.
 30 Auto cleaning all artifacts except the log file...                              
 31 (use KERL_AUTOCLEAN=0 to keep build on failure, if desired)                     
 32 Cleaning up compilation products for 'asdf_28.0-rc1' under:                     
 33 - /home/user/.asdf/plugins/erlang/kerl-home/builds...                         
 34 - /home/user/.asdf/downloads/erlang/28.0-rc1...                                                                                                                                                                                         
 35 ... done.                                                                       
 36 error installing version: failed to run install callback: exit status 1

```

> **[withoutkerlopts\_otp\_build\_28.0-rc1.log](https://drive.google.com/file/d/1euKN-ZVnFJMfeiV1EcVrMAAYR_di3jSC/edit)**
>
> Google Drive file.

```sh
  1 ❯ asdf install erlang 28.0-rc1                                                  
  2 ERROR: 'asdf_28.0-rc1' is not a kerl-managed Erlang/OTP installation.           
  3 Build 'asdf_28.0-rc1' has been deleted.                                         
  4 Extracting source code for normal build...                                      
  5 Building (normal) Erlang/OTP 28.0-rc1 (asdf_28.0-rc1); please wait...           
  6 Initializing (build) log file at /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_build_28.0-rc1.log.
  7 autoconf: error: no input file                                                  
  8 APPLICATIONS DISABLED (See: /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_build_28.0-rc1.log)
  9 * jinterface : No Java compiler found                                      
 10                                                                                 
 11 APPLICATIONS INFORMATION (See: /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_build_28.0-rc1.log)
 12 * wx : wxWidgets was not compiled with --enable-webview or wxWebView developer package is not installed, wxWebView will NOT be available
 13                                                                                 
 14 ERROR: build failed.                                                            
 15 26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                       
 16 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 17 compilation terminated.                                                         
 18 make[3]: *** [Makefile:168: x86_64-pc-linux-gnu/wxe_wrapper_4.o] Error 1        
 19 make[3]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_src_28.0-rc1/lib/wx/c_src'
 20 make[2]: *** [/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_src_28.0-rc1/make/otp_subdir.mk:29: opt] Error 2
 21 make[2]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_src_28.0-rc1/lib/wx'
 22 make[1]: *** [/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_src_28.0-rc1/make/otp_subdir.mk:29: opt] Error 2
 23 make[1]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_src_28.0-rc1/lib'
 24 make: *** [Makefile:508: libs] Error 2                                          
 25                                                                                 
 26 Please see /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_28.0-rc1/otp_build_28.0-rc1.log for full details.
 27 Auto cleaning all artifacts except the log file...                              
 28 (use KERL_AUTOCLEAN=0 to keep build on failure, if desired)                     
 29 Cleaning up compilation products for 'asdf_28.0-rc1' under:                     
 30 - /home/user/.asdf/plugins/erlang/kerl-home/builds...                         
 31 - /home/user/.asdf/downloads/erlang/28.0-rc1...                                                                                                                                                                                         
 32 ... done.                                                                       
 33 error installing version: failed to run install callback: exit status 1

```

> **[withkerlopts\_otp\_build\_28.0-rc2.log](https://drive.google.com/file/d/1FMMH2qUv20x5IlurPN_hjopXWMYB9v2_/edit)**
>
> Google Drive file.

---

<div class="post-metadata">

**Author:** ![0m3](https://erlangforums.com/user_avatar/erlangforums.com/0m3/32/2339_2.png) [@0m3](https://erlangforums.com/u/0m3)\
**Post date:** [March 21, 2025, 10:37am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/14 "2025-03-21T10:37:48Z")

</div>

The tooling has not changed.  
There is a problem with asdf (this is due to [the upgrade to 0.16.0](https://asdf-vm.com/guide/upgrading-to-v0-16.html)) [uninstall is not working #331](https://github.com/asdf-vm/asdf-erlang/issues/331#issuecomment-2670094801).  
There was the workaround for this: `rm -rf .asdf/installs/erlang/<version>`  
The `asdf uninstall erlang <version>` command is currently working.

---

<div class="post-metadata">

**Author:** ![garazdawi](https://erlangforums.com/user_avatar/erlangforums.com/garazdawi/32/175_2.png) [@garazdawi](https://erlangforums.com/u/garazdawi)\
**Post date:** [March 21, 2025, 11:43am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/15 "2025-03-21T11:43:36Z")

</div>

> [@0m3](#):
>
> `wxWidgets was not compiled with --enable-webview or wxWebView developer package is not installed, wxWebView will NOT be available`

There is this printout in the logs. It means that you cannot use webview which you enable to configure. So you need to check your wx installation to see why webview is not there.

If you build Erlang 28-rc2 directly without asdf and without enabling webview, does it work then?

---

<div class="post-metadata">

**Author:** ![0m3](https://erlangforums.com/user_avatar/erlangforums.com/0m3/32/2339_2.png) [@0m3](https://erlangforums.com/u/0m3)\
**Post date:** [March 21, 2025, 2:26pm UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/16 "2025-03-21T14:26:24Z")

</div>

Compiling from source:

```sh
...
make[2]: Entering directory '/home/user/Downloads/otp_src_28.0-rc2/lib/wx'                                                                                                                                                                    
=== Entering application wx                                                        
make[3]: Entering directory '/home/user/Downloads/otp_src_28.0-rc2/lib/wx/src'  
make[3]: Nothing to be done for 'opt'.                                             
make[3]: Leaving directory '/home/user/Downloads/otp_src_28.0-rc2/lib/wx/src'   
make[3]: Entering directory '/home/user/Downloads/otp_src_28.0-rc2/lib/wx/c_src'
 CXX»···x86_64-pc-linux-gnu/wxe_wrapper_1.o                                        
In file included from gen/wxe_macros.h:72,                                         
                 from gen/wxe_wrapper_1.cpp:28:                                    
/usr/include/wx-3.2/wx/webview.h:26:14: fatal error: wx/gtk/webviewhistoryitem_webkit.h: No such file or directory
   26 | #include "wx/gtk/webviewhistoryitem_webkit.h"                          
      | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
compilation terminated.                                                            
make[3]: *** [Makefile:169: x86_64-pc-linux-gnu/wxe_wrapper_1.o] Error 1           
make[3]: Leaving directory '/home/user/Downloads/otp_src_28.0-rc2/lib/wx/c_src' 
make[2]: *** [/home/user/Downloads/otp_src_28.0-rc2/make/otp_subdir.mk:29: opt] Error 2
make[2]: Leaving directory '/home/user/Downloads/otp_src_28.0-rc2/lib/wx'          
make[1]: *** [/home/user/Downloads/otp_src_28.0-rc2/make/otp_subdir.mk:29: opt] Error 2
make[1]: Leaving directory '/home/user/Downloads/otp_src_28.0-rc2/lib'          
make: *** [Makefile:508: libs] Error 2

```

It [Include wxwidgets webview on Arch Linux](https://github.com/asdf-vm/asdf-erlang/wiki#include-wxwidgets-webview-on-arch-linux) says _" These libraries will be compiled and will detect that `webkit2gtk` is available, and therefore compile wxWidgets with webview support."_

- `wxgtk2-dev` or `wxgtk3-dev` - not available in AUR and official repos (core, extra)
- `wxgtk-common-dev` - not available in AUR and official repos
- `webkit2gtk` - available in official repos

Official repos contain:

- `webkit2gtk` (If installed, you can delete it)

- `webkit2gtk-4.1`

- `webkitgtk-6.0` (If installed, you can delete it)

```sh
❯ wx-config --selected-config
gtk3-unicode-3.2

❯ autoconf -V
autoconf (GNU Autoconf) 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.

❯ sudo find / -type f -name autoconf
/usr/bin/autoconf
/usr/local/bin/autoconf

❯ /usr/bin/autoconf -V
autoconf (GNU Autoconf) 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>, <https://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.
❯ /usr/local/bin/autoconf -V
autoconf (GNU Autoconf) 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.

```

I don’t understand how it was installed successfully before (i.e. `asdf install erlang <version>`)?

---

<div class="post-metadata">

**Author:** ![0m3](https://erlangforums.com/user_avatar/erlangforums.com/0m3/32/2339_2.png) [@0m3](https://erlangforums.com/u/0m3)\
**Post date:** [March 21, 2025, 7:38pm UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/17 "2025-03-21T19:38:15Z")

</div>

**With the `wxgtk2.8` package from AUR:**

```sh
❯ yay -S wxgtk2.8                                                               
❯ wx-config --list                                                              
                                                                                
    Default config is gtk3-unicode-3.2                                          
                                                                                
  Default config will be used for output                                        
                                                                                
  Also available in /usr:                                                       
    gtk2-unicode-release-2.8

```

- with kerl options

- without kerl options

**With the `wxwidgets-gtk2` package from AUR:**

```sh
❯ yay -S wxwidgets-gtk2
❯ wx-config --list

    Default config is gtk3-unicode-3.2

  Default config will be used for output

  Alternate matches:
    gtk2-unicode-3.2

```

- with kerl options

- without kerl options

```erlang

```

---

<div class="post-metadata">

**Author:** ![0m3](https://erlangforums.com/user_avatar/erlangforums.com/0m3/32/2339_2.png) [@0m3](https://erlangforums.com/u/0m3)\
**Post date:** [March 26, 2025, 11:32am UTC](https://erlangforums.com/t/erlang-otp-28-0-rc2-released/4599/18 "2025-03-26T11:32:26Z")

</div>

Now 28.0-rc2 with wx support is built without kerl options.

 ![2025-03-26-135140_1920x1080_scrot](https://erlangforums.com/uploads/default/original/2X/3/3d2f01eb54f58f355f163f2237869cf2ff7325d6.jpeg)  
Thanks for the help.
