erlang / otp

Erlang/OTP
http://erlang.org
Apache License 2.0
11.35k stars 2.95k forks source link

Build on Debian Trixie fails due to an "incompatible" version of autoconf #8925

Closed michaelklishin closed 6 days ago

michaelklishin commented 1 week ago

Team RabbitMQ builds recent Erlang/OTP releases on a number of Debian and Ubuntu distributions.

Recently, Erlang 26.2.x builds on Debian Trixie (yes, it is not yet GA but still) builds have started failing with

# Regenerate configure scripts using autoconf
./otp_build update_configure --no-commit
ERROR: autoconf of version 2.72 found in path! You need to have autoconf of version 2.71 in path.
make: *** [debian/rules:159: automake-stamp] Error 1
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
debuild: fatal error at line 1184:
dpkg-buildpackage -us -uc -ui -i -I failed
gbp:error: 'debuild --preserve-envvar PATH -i -I -k***' failed: it exited with 29

Unlike Debian Bookworm, Trixie ships with autoconf 2.72.x.

I cannot comment on the actual compatibility of 2.72.x but in case there are no breaking changes, this should be a matter of whitelisting 2.72.x as supported.

Trixie does not have an announced release date yet and chance are, it will ship around June 2025 or 2026.

joaohf commented 1 week ago

Hi,

Just adding some additional data here:

When building Erlang/OTP for Yocto (using meta-erlang layer) I've added some patches for changing autoconf version:

That was necessary because each Yocto version uses a specific autoconf version (usually the latest one available). I've been testing running Erlang/OTP 26,27,28 (master branch) without any problems so far.

rickard-green commented 1 week ago

OTP contains all configure scripts needed already generated, so there is no need to run ./otp_build update_configure. Already generated configure scripts was introduced since different autoconf versions were incompatible which caused misconfigurations. Now we always generate all configure scripts using fixed versions (which is different in different OTP versions). We will not change that, since that prevents misconfigurations of the system.

If you modify configure.ac files, you have to re-generate configure scripts, but this is not something that we support. If you do that, I would strongly recommend not hacking the otp_build script (as in the patches above), but instead use the autoconf version that the specific OTP version needs. This in order to avoid strange misconfigurations. Downloading and building autoconf is an easy task.