package/erlang: bump version to 26.0.2

Needed for compatibility with OpenSSL 3.x which was added in version 25:
f11a9f2d3a

Added dependency to wchar due to upstream commit
bd0865ff86

Removed all patches.
Added new patch to fix build with defconfig bootlin-x86-64-uclibc.

CVE-2021-29221 does not need to be ignored anymore, the latest broken
version was 23.2.3.

Removed ERLANG_REMOVE_SSL_DEPS hook, bug was fixed upstream:
f03feee7e3

Updated ERLANG_RUN_AUTOCONF due to upstream commit
d277599a42 (diff-9d7b6b593fbd689e1f48ba5964dc3bcc87c51e8e1aab5ff496a4e5ba3a248775R1233)

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Bernd Kuhls 2023-07-15 18:55:35 +02:00 committed by Thomas Petazzoni
parent fd29a61f01
commit 2cfa86a548
8 changed files with 53 additions and 166 deletions

View File

@ -412,9 +412,6 @@ package/empty/0001-respect-LDFLAGS.patch Upstream
package/erlang-p1-sip/0001-correct-include.patch Upstream
package/erlang-p1-xmpp/0001-fix-includes.patch Upstream
package/erlang-rebar/0001-src-rebar_port_compiler-add-fPIC-to-LDFLAGS-by-defau.patch Upstream
package/erlang/0001-erts-ethread-instruct-libatomic_ops-we-do-require-CA.patch Upstream
package/erlang/0002-erts-emulator-reorder-inclued-headers-paths.patch Upstream
package/erlang/0003-crypto-Fixes-for-LibreSSL-3-5-0.patch Upstream
package/espeak/0001-Fix-build-of-shared-library-on-architectures-needing.patch Upstream
package/espeak/0002-tr_languages-cast-string_ordinal-init-values.patch Upstream
package/eudev/S10udev ConsecutiveEmptyLines Indent Shellcheck Variables

View File

@ -0,0 +1,44 @@
From ede1e17794c2caf091e810bdfa49040c75f513eb Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd@kuhls.net>
Date: Sat, 15 Jul 2023 18:36:48 +0200
Subject: [PATCH] erts: check for sys/auxv.h
Upstream: https://github.com/erlang/otp/pull/7500
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
erts/configure.ac | 2 +-
erts/emulator/asmjit/core/cpuinfo.cpp | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/erts/configure.ac b/erts/configure.ac
index a63d391fb3..9d3e338633 100644
--- a/erts/configure.ac
+++ b/erts/configure.ac
@@ -1655,7 +1655,7 @@ AC_CHECK_HEADERS(fcntl.h limits.h unistd.h syslog.h dlfcn.h ieeefp.h \
sys/socket.h sys/sockio.h sys/socketio.h \
net/errno.h malloc.h arpa/nameser.h libdlpi.h \
pty.h util.h libutil.h utmp.h langinfo.h poll.h sdkddkver.h \
- elf.h)
+ elf.h sys/auxv.h)
AC_CHECK_MEMBERS([struct ifreq.ifr_hwaddr], [], [],
[#ifdef __WIN32__
diff --git a/erts/emulator/asmjit/core/cpuinfo.cpp b/erts/emulator/asmjit/core/cpuinfo.cpp
index fb2acfc09b..d8b72697ab 100644
--- a/erts/emulator/asmjit/core/cpuinfo.cpp
+++ b/erts/emulator/asmjit/core/cpuinfo.cpp
@@ -15,8 +15,10 @@
// Required by `getauxval()` on Linux.
#if defined(__linux__)
+#if defined(HAVE_SYS_AUXV_H)
#include <sys/auxv.h>
#endif
+#endif
//! Required to detect CPU and features on Apple platforms.
#if defined(__APPLE__)
--
2.39.2

View File

@ -1,70 +0,0 @@
From 439fa2eae78a8900bda120072335be19d626498c Mon Sep 17 00:00:00 2001
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Sun, 28 Dec 2014 23:39:40 +0100
Subject: [PATCH] erts/ethread: instruct libatomic_ops we do require CAS
We do require compare-and-swap (CAS), so we must instruct libatomic_ops
to provide it, even if the architecture does not have instructions for
it.
For example, on ARM, LDREX is required for fast CAS. But LDREX is only
available on ARMv6, so by default libatomic_ops will not have CAS for
anything below, like ARMv5. But ARMv5 is always UP, so using an
emulated CAS (that is signal-asyn-safe) is still possible (albeit much
slower).
Tell libatomic_ops to provide CAS, even if the hardware is not capable
of it, by using emulated CAS, as per libatomic_ops dosc:
https://github.com/ivmai/libatomic_ops/blob/master/doc/README.txt#L28
If this is included after defining AO_REQUIRE_CAS, then the package
will make an attempt to emulate compare-and-swap in a way that (at
least on Linux) should still be async-signal-safe.
Thanks go to Thomas for all this insight! :-)
Thanks go to Frank for reporting the issue! :-)
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Frank Hunleth <fhunleth@troodon-software.com>
---
erts/include/internal/libatomic_ops/ethread.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/erts/include/internal/libatomic_ops/ethread.h b/erts/include/internal/libatomic_ops/ethread.h
index d65ee19..71d3598 100644
--- a/erts/include/internal/libatomic_ops/ethread.h
+++ b/erts/include/internal/libatomic_ops/ethread.h
@@ -35,6 +35,7 @@
#define ETHR_NATIVE_IMPL__ "libatomic_ops"
+#define AO_REQUIRE_CAS
#include "atomic_ops.h"
#include "ethr_membar.h"
#include "ethr_atomic.h"
diff --git a/erts/aclocal.m4 b/erts/aclocal.m4
index d65ee19..71d3598 100644
--- a/erts/aclocal.m4
+++ b/erts/aclocal.m4
@@ -1414,7 +1414,8 @@
fi;;
esac
ethr_have_libatomic_ops=no
- AC_TRY_LINK([#include "atomic_ops.h"],
+ AC_TRY_LINK([#define AO_REQUIRE_CAS
+ #include "atomic_ops.h"],
[
volatile AO_t x;
AO_t y;
@@ -1455,6 +1455,7 @@
AC_CHECK_SIZEOF(AO_t, ,
[
#include <stdio.h>
+ #define AO_REQUIRE_CAS
#include "atomic_ops.h"
])
AC_DEFINE_UNQUOTED(ETHR_SIZEOF_AO_T, $ac_cv_sizeof_AO_t, [Define to the size of AO_t if libatomic_ops is used])
--
1.9.1

View File

@ -1,46 +0,0 @@
From 85a3e5b4f65e5284e59dcdd90e92ea7d50ef6907 Mon Sep 17 00:00:00 2001
From: Romain Naour <romain.naour@openwide.fr>
Date: Sun, 8 Feb 2015 17:23:13 +0100
Subject: [PATCH] erts/emulator: reorder inclued headers paths
If the Perl Compatible Regular Expressions is installed on the
host and the path to the headers is added to the CFLAGS, the
pcre.h from the host is used instead of the one provided by
erlang.
Erlang use an old version of this file which is incompatible
with the upstream one.
Move INCLUDES before CFLAGS to use pcre.h from erlang.
http://autobuild.buildroot.net/results/cbd/cbd8b54eef535f19d7d400fd269af1b3571d6143/build-end.log
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
[Bernd: rebased for erlang-21.0]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
erts/emulator/Makefile.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/erts/emulator/Makefile.in b/erts/emulator/Makefile.in
index 7145824..d079487 100644
--- a/erts/emulator/Makefile.in
+++ b/erts/emulator/Makefile.in
@@ -712,7 +712,7 @@
# Usually the same as the default rule, but certain platforms (e.g. win32) mix
# different compilers
$(OBJDIR)/beam_emu.o: beam/beam_emu.c
- $(V_EMU_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@
+ $(V_EMU_CC) $(INCLUDES) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) -c $< -o $@
$(OBJDIR)/beam_emu.S: beam/beam_emu.c
$(V_EMU_CC) -S -fverbose-asm $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@
@@ -765,7 +765,7 @@
# General targets
#
$(OBJDIR)/%.o: beam/%.c
- $(V_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@
+ $(V_CC) $(INCLUDES) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) -c $< -o $@
$(OBJDIR)/%.o: $(TARGET)/%.c
$(V_CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -c $< -o $@

View File

@ -1,30 +0,0 @@
From 8e5170d79e387d7e898d948a78e0c70407a4030c Mon Sep 17 00:00:00 2001
From: Hans Nilsson <hans@erlang.org>
Date: Mon, 14 Feb 2022 15:51:35 +0100
Subject: [PATCH] crypto: Fixes for LibreSSL 3.5.0
[Retrieved (and backported) from:
https://github.com/erlang/otp/commit/8e5170d79e387d7e898d948a78e0c70407a4030c]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
lib/crypto/c_src/openssl_config.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/lib/crypto/c_src/openssl_config.h b/lib/crypto/c_src/openssl_config.h
index 6fdd049fb30a..39e4b2d9d7c0 100644
--- a/lib/crypto/c_src/openssl_config.h
+++ b/lib/crypto/c_src/openssl_config.h
@@ -122,7 +122,14 @@
# endif
#endif
+#ifdef HAS_LIBRESSL
+# if LIBRESSL_VERSION_NUMBER >= 0x3050000fL
+# define HAS_EVP_PKEY_CTX
+# define HAVE_EVP_CIPHER_CTX_COPY
+# endif
+#endif
+
#ifndef HAS_LIBRESSL
# if OPENSSL_VERSION_NUMBER >= PACKED_OPENSSL_VERSION_PLAIN(1,0,0)
# define HAS_EVP_PKEY_CTX

View File

@ -14,14 +14,16 @@ config BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
# erlang needs host-erlang
depends on BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS
comment "erlang needs a toolchain w/ dynamic library, threads"
comment "erlang needs a toolchain w/ dynamic library, threads, wchar"
depends on BR2_USE_MMU # fork()
depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \
|| !BR2_USE_WCHAR
config BR2_PACKAGE_ERLANG
bool "erlang"
depends on BR2_USE_MMU # fork()
depends on BR2_USE_WCHAR
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS

View File

@ -1,5 +1,5 @@
# From https://github.com/erlang/otp/releases/download/OTP-22.3.4.22/SHA256.txt
sha256 e7f0793e62f8da4f7551dc9c1c0de76c40f19773ba516121fc56315c840f60cc otp_src_22.3.4.22.tar.gz
# From https://github.com/erlang/otp/releases/download/OTP-26.0.2/SHA256.txt
sha256 47853ea9230643a0a31004433f07a71c1b92d6e0094534f629e3b75dbc62f193 otp_src_26.0.2.tar.gz
# Hash for license file
sha256 809fa1ed21450f59827d1e9aec720bbc4b687434fa22283c6cb5dd82a47ab9c0 LICENSE.txt

View File

@ -5,7 +5,7 @@
################################################################################
# See note below when updating Erlang
ERLANG_VERSION = 22.3.4.22
ERLANG_VERSION = 26.0.2
ERLANG_SITE = \
https://github.com/erlang/otp/releases/download/OTP-$(ERLANG_VERSION)
ERLANG_SOURCE = otp_src_$(ERLANG_VERSION).tar.gz
@ -17,19 +17,9 @@ ERLANG_CPE_ID_VENDOR = erlang
ERLANG_CPE_ID_PRODUCT = erlang\/otp
ERLANG_INSTALL_STAGING = YES
# windows specific issue: https://nvd.nist.gov/vuln/detail/CVE-2021-29221
ERLANG_IGNORE_CVES += CVE-2021-29221
# Remove the leftover deps directory from the ssl app
# See https://bugs.erlang.org/browse/ERL-1168
define ERLANG_REMOVE_SSL_DEPS
rm -rf $(@D)/lib/ssl/src/deps
endef
ERLANG_POST_PATCH_HOOKS += ERLANG_REMOVE_SSL_DEPS
# Patched erts/aclocal.m4
define ERLANG_RUN_AUTOCONF
cd $(@D) && PATH=$(BR_PATH) ./otp_build autoconf
cd $(@D) && PATH=$(BR_PATH) ./otp_build update_configure --no-commit
endef
ERLANG_DEPENDENCIES += host-autoconf
ERLANG_PRE_CONFIGURE_HOOKS += ERLANG_RUN_AUTOCONF
@ -38,7 +28,7 @@ HOST_ERLANG_PRE_CONFIGURE_HOOKS += ERLANG_RUN_AUTOCONF
# Whenever updating Erlang, this value should be updated as well, to the
# value of EI_VSN in the file lib/erl_interface/vsn.mk
ERLANG_EI_VSN = 3.13.2.2
ERLANG_EI_VSN = 5.4
# The configure checks for these functions fail incorrectly
ERLANG_CONF_ENV = ac_cv_func_isnan=yes ac_cv_func_isinf=yes