From e8673e9e85f3f5c029a8bc076f34f4ab6ce1b2be Mon Sep 17 00:00:00 2001 From: krant Date: Wed, 10 Jan 2024 15:27:01 +0200 Subject: [PATCH] erlang: update to 26.2.1 - Update to Erlang/OTP 26.2.1 - Remove obsolete configure options - Remove obsolete patches, add new one - Add missing no_dot_erlang.boot file (fixes #20587) - Change package URL to https Signed-off-by: krant --- lang/erlang/Makefile | 52 +- .../patches/010-openssl-deprecated.patch | 48 -- lang/erlang/patches/010-openssl-md5.patch | 455 ++++++++++++++++++ ...ulator-reorder-inclued-headers-paths.patch | 53 -- ...nfigure-flag-disable-otp-test-engine.patch | 86 ---- .../031-Update-configure-scripts.patch | 63 --- ...e-otp-test-engine-for-LibreSSL-3.5.0.patch | 45 -- .../033-Update-configure-scripts.patch | 89 ---- 8 files changed, 478 insertions(+), 413 deletions(-) delete mode 100644 lang/erlang/patches/010-openssl-deprecated.patch create mode 100644 lang/erlang/patches/010-openssl-md5.patch delete mode 100644 lang/erlang/patches/020-erts-emulator-reorder-inclued-headers-paths.patch delete mode 100644 lang/erlang/patches/030-crypto-Make-configure-flag-disable-otp-test-engine.patch delete mode 100644 lang/erlang/patches/031-Update-configure-scripts.patch delete mode 100644 lang/erlang/patches/032-crypto-do-disable-otp-test-engine-for-LibreSSL-3.5.0.patch delete mode 100644 lang/erlang/patches/033-Update-configure-scripts.patch diff --git a/lang/erlang/Makefile b/lang/erlang/Makefile index e1428ffbff..2a69133fa6 100644 --- a/lang/erlang/Makefile +++ b/lang/erlang/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=erlang -PKG_VERSION:=24.2 -PKG_RELEASE:=3 +PKG_VERSION:=26.2.1 +PKG_RELEASE:=1 PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:= http://www.erlang.org/download/ -PKG_HASH:=af0f1928dcd16cd5746feeca8325811865578bf1a110a443d353ea3e509e6d41 +PKG_SOURCE_URL:= https://github.com/erlang/otp/releases/download/OTP-$(PKG_VERSION)/ +PKG_HASH:=80d66bafbae409481a4e1badcb4a6275b07a8e9af82980c08d7a8add483232a9 PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=LICENSE.txt @@ -35,7 +35,7 @@ define Package/erlang/Default SECTION:=lang CATEGORY:=Languages TITLE:=Erlang/OTP programming language - URL:=http://www.erlang.org/ + URL:=https://www.erlang.org/ endef define Package/erlang/Default/description @@ -47,7 +47,7 @@ endef define Package/erlang $(call Package/erlang/Default) DEPENDS+= +libncurses +librt +zlib +libstdcpp - PROVIDES:= erlang-erts=12.2 erlang-kernel=8.2 erlang-sasl=4.1.1 erlang-stdlib=3.17 + PROVIDES:= erlang-erts=14.2.1 erlang-kernel=9.2 erlang-sasl=4.2.1 erlang-stdlib=5.2 endef define Package/erlang/description @@ -61,7 +61,7 @@ endef define Package/erlang-asn1 $(call Package/erlang/Default) TITLE:=Abstract Syntax Notation One (ASN.1) support - VERSION:=5.0.17 + VERSION:=5.2.1 DEPENDS+= +erlang +erlang-syntax-tools endef @@ -76,7 +76,7 @@ endef define Package/erlang-compiler $(call Package/erlang/Default) TITLE:=Byte code compiler - VERSION:=8.0.4 + VERSION:=8.4.1 DEPENDS+= +erlang endef @@ -91,7 +91,7 @@ endef define Package/erlang-crypto $(call Package/erlang/Default) TITLE:=Cryptography support - VERSION:=5.0.5 + VERSION:=5.4 DEPENDS+= +erlang +libopenssl endef @@ -106,7 +106,7 @@ endef define Package/erlang-inets $(call Package/erlang/Default) TITLE:=Internet clients and servers - VERSION:=7.5 + VERSION:=9.1 DEPENDS+= +erlang endef @@ -122,7 +122,7 @@ endef define Package/erlang-mnesia $(call Package/erlang/Default) TITLE:=Distributed database - VERSION:=4.20.1 + VERSION:=4.23 DEPENDS+= +erlang endef @@ -139,7 +139,7 @@ endef define Package/erlang-runtime-tools $(call Package/erlang/Default) TITLE:=Low-profile debugging/tracing tools - VERSION:=1.17 + VERSION:=2.0.1 DEPENDS+= +erlang endef @@ -154,7 +154,7 @@ endef define Package/erlang-snmp $(call Package/erlang/Default) TITLE:=Simple Network Management Protocol (SNMP) support - VERSION:=5.11 + VERSION:=5.15 DEPENDS+= +erlang +erlang-asn1 endef @@ -170,7 +170,7 @@ endef define Package/erlang-public-key $(call Package/erlang/Default) TITLE:=Public Key support - VERSION:=1.11.3 + VERSION:=1.15 DEPENDS+= +erlang +erlang-crypto +erlang-asn1 endef @@ -184,7 +184,7 @@ endef define Package/erlang-ssh $(call Package/erlang/Default) TITLE:=Secure Shell (SSH) support - VERSION:=4.13 + VERSION:=5.1.1 DEPENDS+= +erlang +erlang-crypto endef @@ -199,7 +199,7 @@ endef define Package/erlang-ssl $(call Package/erlang/Default) TITLE:=Secure Sockets Layer (SSL) support - VERSION:=10.6 + VERSION:=11.1 DEPENDS+= +erlang +erlang-crypto endef @@ -214,7 +214,7 @@ endef define Package/erlang-syntax-tools $(call Package/erlang/Default) TITLE:=Abstract Erlang syntax trees handling support - VERSION:=2.6 + VERSION:=3.1 DEPENDS+= +erlang endef @@ -229,7 +229,7 @@ endef define Package/erlang-tools $(call Package/erlang/Default) TITLE:=Erlang tools support - VERSION:=3.5.2 + VERSION:=3.6 DEPENDS+= +erlang endef @@ -243,7 +243,7 @@ endef define Package/erlang-reltool $(call Package/erlang/Default) TITLE:=Erlang reltool support - VERSION:=0.9 + VERSION:=1.0 DEPENDS+= +erlang endef @@ -257,7 +257,7 @@ endef define Package/erlang-erl-interface $(call Package/erlang/Default) TITLE:=Erlang erl_interface support - VERSION:=5.1 + VERSION:=5.5 DEPENDS+= +erlang endef @@ -270,7 +270,7 @@ endef define Package/erlang-os_mon $(call Package/erlang/Default) TITLE:=Erlang OS Monitoring Application - VERSION:=2.7.1 + VERSION:=2.9.1 DEPENDS+= +erlang endef @@ -286,7 +286,7 @@ endef define Package/erlang-xmerl $(call Package/erlang/Default) TITLE:=Erlang XML export - VERSION:=1.3.28 + VERSION:=1.3.34 DEPENDS+= +erlang endef @@ -305,16 +305,11 @@ HOST_CFLAGS += \ HOST_CONFIGURE_ARGS += \ --with-ssl="$(STAGING_DIR_HOST)" \ - --disable-hipe \ - --disable-pgo \ - --disable-smp-support \ --without-javac # Target CONFIGURE_ARGS += \ - --disable-hipe \ - --disable-smp-support \ --without-javac \ --enable-dynamic-ssl-lib @@ -343,7 +338,7 @@ define Package/erlang/install $(CP) $(PKG_INSTALL_DIR)/usr/bin/$$$$f $(1)/usr/bin/ ; \ done $(INSTALL_DIR) $(1)/usr/lib/erlang/bin - for f in erl erlc escript run_erl start start.boot start.script start_clean.boot start_erl start_sasl.boot to_erl; do \ + for f in erl erlc escript run_erl start start.boot start.script start_clean.boot start_erl start_sasl.boot no_dot_erlang.boot to_erl; do \ $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/bin/$$$$f $(1)/usr/lib/erlang/bin/ ; \ done $(INSTALL_DIR) $(1)/usr/lib/erlang/lib @@ -408,4 +403,3 @@ $(eval $(call BuildModule,reltool,reltool)) $(eval $(call BuildModule,erl-interface,erl_interface)) $(eval $(call BuildModule,os_mon,os_mon)) $(eval $(call BuildModule,xmerl,xmerl)) - diff --git a/lang/erlang/patches/010-openssl-deprecated.patch b/lang/erlang/patches/010-openssl-deprecated.patch deleted file mode 100644 index 6804b06357..0000000000 --- a/lang/erlang/patches/010-openssl-deprecated.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- a/lib/crypto/c_src/engine.c -+++ b/lib/crypto/c_src/engine.c -@@ -239,7 +239,7 @@ ERL_NIF_TERM engine_load_dynamic_nif(Erl - #ifdef HAS_ENGINE_SUPPORT - ASSERT(argc == 0); - -- ENGINE_load_dynamic(); -+ ENGINE_load_builtin_engines(); - return atom_ok; - #else - return atom_notsup; ---- a/lib/crypto/c_src/info.c -+++ b/lib/crypto/c_src/info.c -@@ -46,6 +46,11 @@ - #endif - - -+#if OPENSSL_VERSION_NUMBER < PACKED_OPENSSL_VERSION_PLAIN(1,1,0) -+#define OPENSSL_VERSION SSLEAY_VERSION -+#define OpenSSL_version SSLeay_version -+#endif -+ - #ifdef HAVE_DYNAMIC_CRYPTO_LIB - - char *crypto_callback_name = CB_NAME; -@@ -132,7 +137,7 @@ ERL_NIF_TERM info_lib(ErlNifEnv *env, in - ASSERT(argc == 0); - - name_sz = strlen(libname); -- ver = SSLeay_version(SSLEAY_VERSION); -+ ver = OpenSSL_version(OPENSSL_VERSION); - ver_sz = strlen(ver); - ver_num = OPENSSL_VERSION_NUMBER; - ---- a/lib/crypto/c_src/otp_test_engine.c -+++ b/lib/crypto/c_src/otp_test_engine.c -@@ -101,9 +101,11 @@ static int test_init(ENGINE *e) { - goto err; - #endif /* if defined(FAKE_RSA_IMPL) */ - -+#if OPENSSL_VERSION_NUMBER < PACKED_OPENSSL_VERSION_PLAIN(1,1,0) - /* Load all digest and cipher algorithms. Needed for password protected private keys */ - OpenSSL_add_all_ciphers(); - OpenSSL_add_all_digests(); -+#endif - - return 111; - diff --git a/lang/erlang/patches/010-openssl-md5.patch b/lang/erlang/patches/010-openssl-md5.patch new file mode 100644 index 0000000000..8b02f8a8c6 --- /dev/null +++ b/lang/erlang/patches/010-openssl-md5.patch @@ -0,0 +1,455 @@ +From eace72dfda7e6452dc82b884f0385a78a9d65d10 Mon Sep 17 00:00:00 2001 +From: Paul Swartz +Date: Sun, 31 Dec 2023 13:12:02 -0500 +Subject: [PATCH 1/3] fix: rename `openssl/md5.h` to avoid include conflicts + with OpenSSL + +Ref: #7987 +--- + erts/emulator/openssl/README | 2 +- + erts/emulator/openssl/crypto/md5/md5_local.h | 2 +- + erts/emulator/openssl/include/erl_md5.h | 2 +- + .../emulator/openssl/include/{openssl => openssl_local}/md5.h | 0 + erts/emulator/openssl/openssl.diff | 4 ++-- + erts/emulator/openssl/openssl.mk | 2 +- + lib/erl_interface/src/openssl/README | 2 +- + lib/erl_interface/src/openssl/crypto/md5/md5_local.h | 2 +- + lib/erl_interface/src/openssl/include/erl_md5.h | 2 +- + .../src/openssl/include/{openssl => openssl_local}/md5.h | 0 + lib/erl_interface/src/openssl/openssl.diff | 4 ++-- + 11 files changed, 11 insertions(+), 11 deletions(-) + rename erts/emulator/openssl/include/{openssl => openssl_local}/md5.h (100%) + rename lib/erl_interface/src/openssl/include/{openssl => openssl_local}/md5.h (100%) + +--- a/erts/emulator/openssl/README ++++ b/erts/emulator/openssl/README +@@ -7,7 +7,7 @@ The files that has been taken from the 3 + ./crypto/md5/md5_local.h + ./crypto/md5/md5_dgst.c + ./include/crypto/md32_common.h +-./include/openssl/md5.h ++./include/openssl_local/md5.h (renamed from include/openssl/md5.h) + + The openssl.diff file contains the diff between the original files and the ones + included in OTP. +--- a/erts/emulator/openssl/crypto/md5/md5_local.h ++++ b/erts/emulator/openssl/crypto/md5/md5_local.h +@@ -10,7 +10,7 @@ + #include + #include + #if defined(ERLANG_OPENSSL_INTEGRATION) +-#include "openssl/md5.h" ++#include "openssl_local/md5.h" + #define md5_block_data_order MD5_BLOCK_DATA_ORDER_FUNCTION_NAME + #undef MD5_ASM + #else +--- a/erts/emulator/openssl/include/erl_md5.h ++++ b/erts/emulator/openssl/include/erl_md5.h +@@ -30,6 +30,6 @@ + #define MD5_TRANSFORM_FUNCTION_NAME MD5Transform + #define MD5_BLOCK_DATA_ORDER_FUNCTION_NAME MD5BlockDataOrder + +-#include "openssl/md5.h" ++#include "openssl_local/md5.h" + + #endif +--- a/erts/emulator/openssl/openssl.diff ++++ b/erts/emulator/openssl/openssl.diff +@@ -46,7 +46,7 @@ diff -u original/crypto/md5/md5_local.h + #include + #include + +#if defined(ERLANG_OPENSSL_INTEGRATION) +-+#include "openssl/md5.h" +++#include "openssl_local/md5.h" + +#define md5_block_data_order MD5_BLOCK_DATA_ORDER_FUNCTION_NAME + +#undef MD5_ASM + +#else +@@ -116,7 +116,7 @@ diff -u original/include/crypto/md32_com + # error "HASH_MAKE_STRING must be defined!" + diff -u original/include/openssl/md5.h include/openssl/md5.h + --- original/include/openssl/md5.h 2023-11-24 15:58:28.610171865 +0100 +-+++ include/openssl/md5.h 2023-11-24 23:10:52.570854593 +0100 +++++ include/openssl_local/md5.h 2023-11-24 23:10:52.570854593 +0100 + @@ -11,6 +11,15 @@ + # define OPENSSL_MD5_H + # pragma once +--- a/erts/emulator/openssl/openssl.mk ++++ b/erts/emulator/openssl/openssl.mk +@@ -50,4 +50,4 @@ $(OPENSSL_OBJDIR)/%.o: $(OPENSSL_DIR)/cr + $(OPENSSL_OBJDIR)/md5_dgst.o: $(OPENSSL_DIR)/crypto/md5/md5_dgst.c \ + $(OPENSSL_DIR)/crypto/md5/md5_local.h \ + $(OPENSSL_DIR)/include/crypto/md32_common.h \ +- $(OPENSSL_DIR)/include/openssl/md5.h ++ $(OPENSSL_DIR)/include/openssl_local/md5.h +--- a/erts/lib_src/common/erl_misc_utils.c ++++ b/erts/lib_src/common/erl_misc_utils.c +@@ -42,7 +42,7 @@ + # include + # endif + # include +-# if HAVE_SYS_TIME_H ++# ifdef HAVE_SYS_TIME_H + # include + # endif + # include +--- a/lib/erl_interface/src/openssl/crypto/md5/md5_local.h ++++ b/lib/erl_interface/src/openssl/crypto/md5/md5_local.h +@@ -10,7 +10,7 @@ + #include + #include + #if defined(ERLANG_OPENSSL_INTEGRATION) +-#include "openssl/md5.h" ++#include "openssl_local/md5.h" + #define md5_block_data_order MD5_BLOCK_DATA_ORDER_FUNCTION_NAME + #undef MD5_ASM + #else +--- a/lib/erl_interface/src/openssl/include/erl_md5.h ++++ b/lib/erl_interface/src/openssl/include/erl_md5.h +@@ -30,6 +30,6 @@ + #define MD5_TRANSFORM_FUNCTION_NAME ei_MD5Transform + #define MD5_BLOCK_DATA_ORDER_FUNCTION_NAME ei_MD5BlockDataOrder + +-#include "openssl/md5.h" ++#include "openssl_local/md5.h" + + #endif +--- a/erts/emulator/openssl/include/openssl/md5.h ++++ /dev/null +@@ -1,82 +0,0 @@ +-/* +- * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. +- * +- * Licensed under the Apache License 2.0 (the "License"). You may not use +- * this file except in compliance with the License. You can obtain a copy +- * in the file LICENSE in the source distribution or at +- * https://www.openssl.org/source/license.html +- */ +- +-#ifndef OPENSSL_MD5_H +-# define OPENSSL_MD5_H +-# pragma once +- +-#if defined(ERLANG_OPENSSL_INTEGRATION) +- +-#include "erl_md5.h" +- +-#undef OPENSSL_NO_MD5 +-#undef OPENSSL_NO_DEPRECATED_3_0 +- +-#else /* !defined(ERLANG_OPENSSL_INTEGRATION) */ +- +-# include +-# ifndef OPENSSL_NO_DEPRECATED_3_0 +-# define HEADER_MD5_H +-# endif +- +-# include +- +-#endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */ +- +-# ifndef OPENSSL_NO_MD5 +-#if !defined(ERLANG_OPENSSL_INTEGRATION) +-# include +-#endif +-# include +-# ifdef __cplusplus +-extern "C" { +-# endif +- +-# define MD5_DIGEST_LENGTH 16 +- +-# if !defined(OPENSSL_NO_DEPRECATED_3_0) +-/* +- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +- * ! MD5_LONG has to be at least 32 bits wide. ! +- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +- */ +-# define MD5_LONG unsigned int +- +-# define MD5_CBLOCK 64 +-# define MD5_LBLOCK (MD5_CBLOCK/4) +- +-typedef struct MD5state_st { +- MD5_LONG A, B, C, D; +- MD5_LONG Nl, Nh; +- MD5_LONG data[MD5_LBLOCK]; +- unsigned int num; +-} MD5_CTX; +-# endif +-# ifndef OPENSSL_NO_DEPRECATED_3_0 +-# if defined(ERLANG_OPENSSL_INTEGRATION) +-int MD5_INIT_FUNCTION_NAME(MD5_CTX *c); +-int MD5_UPDATE_FUNCTION_NAME(MD5_CTX *c, const void *data, size_t len); +-int MD5_FINAL_FUNCTION_NAME(unsigned char *md, MD5_CTX *c); +-void MD5_TRANSFORM_FUNCTION_NAME(MD5_CTX *c, const unsigned char *b); +-# else /* !defined(ERLANG_OPENSSL_INTEGRATION) */ +-OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); +-OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); +-OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); +-OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n, +- unsigned char *md); +-OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b); +-# endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */ +-# endif +- +-# ifdef __cplusplus +-} +-# endif +-# endif +- +-#endif +--- /dev/null ++++ b/erts/emulator/openssl/include/openssl_local/md5.h +@@ -0,0 +1,82 @@ ++/* ++ * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. ++ * ++ * Licensed under the Apache License 2.0 (the "License"). You may not use ++ * this file except in compliance with the License. You can obtain a copy ++ * in the file LICENSE in the source distribution or at ++ * https://www.openssl.org/source/license.html ++ */ ++ ++#ifndef OPENSSL_MD5_H ++# define OPENSSL_MD5_H ++# pragma once ++ ++#if defined(ERLANG_OPENSSL_INTEGRATION) ++ ++#include "erl_md5.h" ++ ++#undef OPENSSL_NO_MD5 ++#undef OPENSSL_NO_DEPRECATED_3_0 ++ ++#else /* !defined(ERLANG_OPENSSL_INTEGRATION) */ ++ ++# include ++# ifndef OPENSSL_NO_DEPRECATED_3_0 ++# define HEADER_MD5_H ++# endif ++ ++# include ++ ++#endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */ ++ ++# ifndef OPENSSL_NO_MD5 ++#if !defined(ERLANG_OPENSSL_INTEGRATION) ++# include ++#endif ++# include ++# ifdef __cplusplus ++extern "C" { ++# endif ++ ++# define MD5_DIGEST_LENGTH 16 ++ ++# if !defined(OPENSSL_NO_DEPRECATED_3_0) ++/* ++ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++ * ! MD5_LONG has to be at least 32 bits wide. ! ++ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++ */ ++# define MD5_LONG unsigned int ++ ++# define MD5_CBLOCK 64 ++# define MD5_LBLOCK (MD5_CBLOCK/4) ++ ++typedef struct MD5state_st { ++ MD5_LONG A, B, C, D; ++ MD5_LONG Nl, Nh; ++ MD5_LONG data[MD5_LBLOCK]; ++ unsigned int num; ++} MD5_CTX; ++# endif ++# ifndef OPENSSL_NO_DEPRECATED_3_0 ++# if defined(ERLANG_OPENSSL_INTEGRATION) ++int MD5_INIT_FUNCTION_NAME(MD5_CTX *c); ++int MD5_UPDATE_FUNCTION_NAME(MD5_CTX *c, const void *data, size_t len); ++int MD5_FINAL_FUNCTION_NAME(unsigned char *md, MD5_CTX *c); ++void MD5_TRANSFORM_FUNCTION_NAME(MD5_CTX *c, const unsigned char *b); ++# else /* !defined(ERLANG_OPENSSL_INTEGRATION) */ ++OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); ++OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); ++OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); ++OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n, ++ unsigned char *md); ++OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b); ++# endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */ ++# endif ++ ++# ifdef __cplusplus ++} ++# endif ++# endif ++ ++#endif +--- a/lib/erl_interface/src/openssl/include/openssl/md5.h ++++ /dev/null +@@ -1,82 +0,0 @@ +-/* +- * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. +- * +- * Licensed under the Apache License 2.0 (the "License"). You may not use +- * this file except in compliance with the License. You can obtain a copy +- * in the file LICENSE in the source distribution or at +- * https://www.openssl.org/source/license.html +- */ +- +-#ifndef OPENSSL_MD5_H +-# define OPENSSL_MD5_H +-# pragma once +- +-#if defined(ERLANG_OPENSSL_INTEGRATION) +- +-#include "erl_md5.h" +- +-#undef OPENSSL_NO_MD5 +-#undef OPENSSL_NO_DEPRECATED_3_0 +- +-#else /* !defined(ERLANG_OPENSSL_INTEGRATION) */ +- +-# include +-# ifndef OPENSSL_NO_DEPRECATED_3_0 +-# define HEADER_MD5_H +-# endif +- +-# include +- +-#endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */ +- +-# ifndef OPENSSL_NO_MD5 +-#if !defined(ERLANG_OPENSSL_INTEGRATION) +-# include +-#endif +-# include +-# ifdef __cplusplus +-extern "C" { +-# endif +- +-# define MD5_DIGEST_LENGTH 16 +- +-# if !defined(OPENSSL_NO_DEPRECATED_3_0) +-/* +- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +- * ! MD5_LONG has to be at least 32 bits wide. ! +- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +- */ +-# define MD5_LONG unsigned int +- +-# define MD5_CBLOCK 64 +-# define MD5_LBLOCK (MD5_CBLOCK/4) +- +-typedef struct MD5state_st { +- MD5_LONG A, B, C, D; +- MD5_LONG Nl, Nh; +- MD5_LONG data[MD5_LBLOCK]; +- unsigned int num; +-} MD5_CTX; +-# endif +-# ifndef OPENSSL_NO_DEPRECATED_3_0 +-# if defined(ERLANG_OPENSSL_INTEGRATION) +-int MD5_INIT_FUNCTION_NAME(MD5_CTX *c); +-int MD5_UPDATE_FUNCTION_NAME(MD5_CTX *c, const void *data, size_t len); +-int MD5_FINAL_FUNCTION_NAME(unsigned char *md, MD5_CTX *c); +-void MD5_TRANSFORM_FUNCTION_NAME(MD5_CTX *c, const unsigned char *b); +-# else /* !defined(ERLANG_OPENSSL_INTEGRATION) */ +-OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); +-OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); +-OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); +-OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n, +- unsigned char *md); +-OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b); +-# endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */ +-# endif +- +-# ifdef __cplusplus +-} +-# endif +-# endif +- +-#endif +--- /dev/null ++++ b/lib/erl_interface/src/openssl/include/openssl_local/md5.h +@@ -0,0 +1,82 @@ ++/* ++ * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. ++ * ++ * Licensed under the Apache License 2.0 (the "License"). You may not use ++ * this file except in compliance with the License. You can obtain a copy ++ * in the file LICENSE in the source distribution or at ++ * https://www.openssl.org/source/license.html ++ */ ++ ++#ifndef OPENSSL_MD5_H ++# define OPENSSL_MD5_H ++# pragma once ++ ++#if defined(ERLANG_OPENSSL_INTEGRATION) ++ ++#include "erl_md5.h" ++ ++#undef OPENSSL_NO_MD5 ++#undef OPENSSL_NO_DEPRECATED_3_0 ++ ++#else /* !defined(ERLANG_OPENSSL_INTEGRATION) */ ++ ++# include ++# ifndef OPENSSL_NO_DEPRECATED_3_0 ++# define HEADER_MD5_H ++# endif ++ ++# include ++ ++#endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */ ++ ++# ifndef OPENSSL_NO_MD5 ++#if !defined(ERLANG_OPENSSL_INTEGRATION) ++# include ++#endif ++# include ++# ifdef __cplusplus ++extern "C" { ++# endif ++ ++# define MD5_DIGEST_LENGTH 16 ++ ++# if !defined(OPENSSL_NO_DEPRECATED_3_0) ++/* ++ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++ * ! MD5_LONG has to be at least 32 bits wide. ! ++ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++ */ ++# define MD5_LONG unsigned int ++ ++# define MD5_CBLOCK 64 ++# define MD5_LBLOCK (MD5_CBLOCK/4) ++ ++typedef struct MD5state_st { ++ MD5_LONG A, B, C, D; ++ MD5_LONG Nl, Nh; ++ MD5_LONG data[MD5_LBLOCK]; ++ unsigned int num; ++} MD5_CTX; ++# endif ++# ifndef OPENSSL_NO_DEPRECATED_3_0 ++# if defined(ERLANG_OPENSSL_INTEGRATION) ++int MD5_INIT_FUNCTION_NAME(MD5_CTX *c); ++int MD5_UPDATE_FUNCTION_NAME(MD5_CTX *c, const void *data, size_t len); ++int MD5_FINAL_FUNCTION_NAME(unsigned char *md, MD5_CTX *c); ++void MD5_TRANSFORM_FUNCTION_NAME(MD5_CTX *c, const unsigned char *b); ++# else /* !defined(ERLANG_OPENSSL_INTEGRATION) */ ++OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); ++OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); ++OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); ++OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n, ++ unsigned char *md); ++OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b); ++# endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */ ++# endif ++ ++# ifdef __cplusplus ++} ++# endif ++# endif ++ ++#endif diff --git a/lang/erlang/patches/020-erts-emulator-reorder-inclued-headers-paths.patch b/lang/erlang/patches/020-erts-emulator-reorder-inclued-headers-paths.patch deleted file mode 100644 index 7ef2f8efee..0000000000 --- a/lang/erlang/patches/020-erts-emulator-reorder-inclued-headers-paths.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 85a3e5b4f65e5284e59dcdd90e92ea7d50ef6907 Mon Sep 17 00:00:00 2001 -From: Romain Naour -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 -[Bernd: rebased for erlang-21.0] -Signed-off-by: Bernd Kuhls -[svlobanov: updated for erlang-24.2] ---- - erts/emulator/Makefile.in | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - ---- a/erts/emulator/Makefile.in -+++ b/erts/emulator/Makefile.in -@@ -800,7 +800,7 @@ endif - # Usually the same as the default rule, but certain platforms (e.g. win32) mix - # different compilers - $(OBJDIR)/beam_emu.o: beam/emu/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/emu/beam_emu.c - $(V_EMU_CC) -S -fverbose-asm $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ -@@ -863,13 +863,13 @@ endif - # 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: beam/emu/%.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: beam/jit/%.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 $@ diff --git a/lang/erlang/patches/030-crypto-Make-configure-flag-disable-otp-test-engine.patch b/lang/erlang/patches/030-crypto-Make-configure-flag-disable-otp-test-engine.patch deleted file mode 100644 index 3120641ee3..0000000000 --- a/lang/erlang/patches/030-crypto-Make-configure-flag-disable-otp-test-engine.patch +++ /dev/null @@ -1,86 +0,0 @@ -From ca2fed6c60039003f255ffe7a5d98744b8ebdedc Mon Sep 17 00:00:00 2001 -From: Hans Nilsson -Date: Thu, 17 Feb 2022 12:22:06 +0100 -Subject: [PATCH] crypto: Make configure flag --disable-otp-test-engine - ---- - lib/crypto/c_src/Makefile.in | 16 ++++++++++++++-- - lib/crypto/configure.in | 10 ++++++++++ - 2 files changed, 24 insertions(+), 2 deletions(-) - ---- a/lib/crypto/c_src/Makefile.in -+++ b/lib/crypto/c_src/Makefile.in -@@ -119,11 +119,17 @@ CRYPTO_STATIC_OBJS = $(patsubst $(OBJDIR - - NIF_ARCHIVE = $(LIBDIR)/crypto$(TYPEMARKER).a - --TEST_ENGINE_OBJS = $(OBJDIR)/otp_test_engine$(TYPEMARKER).o -- - NIF_LIB = $(LIBDIR)/crypto$(TYPEMARKER).@DED_EXT@ - CALLBACK_LIB = $(LIBDIR)/crypto_callback$(TYPEMARKER).@DED_EXT@ -+ -+DISABLE_OTP_TEST_ENGINE = @DISABLE_OTP_TEST_ENGINE@ -+ifeq ($(DISABLE_OTP_TEST_ENGINE),yes) -+TEST_ENGINE_LIB = -+TEST_ENGINE_OBJS = -+else - TEST_ENGINE_LIB = $(LIBDIR)/otp_test_engine$(TYPEMARKER).@DED_EXT@ -+TEST_ENGINE_OBJS = $(OBJDIR)/otp_test_engine$(TYPEMARKER).o -+endif - - DYNAMIC_CRYPTO_LIB=@SSL_DYNAMIC_ONLY@ - # Wierd that we compile as if dynamically linking when statically -@@ -182,6 +188,8 @@ debug opt valgrind asan: $(NIF_LIB) $(CA - - static_lib: $(NIF_ARCHIVE) - -+ifeq ($(DISABLE_OTP_TEST_ENGINE),yes) -+else - $(OBJDIR)/otp_test_engine$(TYPEMARKER).o: otp_test_engine.c - $(V_at)$(INSTALL_DIR) $(OBJDIR) - $(V_CC) -c -o $@ $(filter-out -Wmissing-prototypes,$(ALL_CFLAGS)) $< -@@ -193,6 +201,7 @@ $(LIBDIR)/otp_test_engine$(TYPEMARKER).s - $(LIBDIR)/otp_test_engine$(TYPEMARKER).dll: $(TEST_ENGINE_OBJS) - $(V_at)$(INSTALL_DIR) $(LIBDIR) - $(V_LD) $(LDFLAGS) -o $@ $(SSL_DED_LD_RUNTIME_LIBRARY_PATH) -L$(SSL_LIBDIR) $(TEST_ENGINE_OBJS) -l$(SSL_CRYPTO_LIBNAME) -l$(SSL_SSL_LIBNAME) $(SSL_EXTRA_LIBS) -+endif - - $(OBJDIR)/%$(TYPEMARKER).o: %.c - $(V_at)$(INSTALL_DIR) $(OBJDIR) -@@ -255,7 +264,10 @@ release_spec: opt - ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes) - $(INSTALL_PROGRAM) $(CALLBACK_LIB) "$(RELSYSDIR)/priv/lib" - endif -+ifeq ($(DISABLE_OTP_TEST_ENGINE),yes) -+else - $(INSTALL_PROGRAM) $(TEST_ENGINE_LIB) "$(RELSYSDIR)/priv/lib" -+endif - - release_docs_spec: - ---- a/lib/crypto/configure.in -+++ b/lib/crypto/configure.in -@@ -156,6 +156,15 @@ AS_HELP_STRING([--disable-evp-hmac], - *) DISABLE_EVP_HMAC=0;; - esac ], DISABLE_EVP_HMAC=0) - -+ -+AC_ARG_ENABLE(otp-test-engine, -+AS_HELP_STRING([--disable-otp-test-engine], -+ [intentionally undocumented workaround]), -+[ case "$enableval" in -+ no) DISABLE_OTP_TEST_ENGINE=yes;; -+ *) DISABLE_OTP_TEST_ENGINE=no;; -+ esac ], DISABLE_OTP_TEST_ENGINE=no) -+ - AC_ARG_ENABLE(deprecated_warnings, - AS_HELP_STRING([--disable-deprecated-warnings], - [disable warnings for deprecated functions in cryptolib (default is to warn, except for OpenSSL 3.x where the default is not to warn)]), -@@ -826,6 +835,7 @@ AC_SUBST(SSL_DED_LD_RUNTIME_LIBRARY_PATH - AC_SUBST(SSL_DYNAMIC_ONLY) - AC_SUBST(DISABLE_EVP_DH) - AC_SUBST(DISABLE_EVP_HMAC) -+AC_SUBST(DISABLE_OTP_TEST_ENGINE) - - AC_OUTPUT(c_src/$host/Makefile:c_src/Makefile.in) - diff --git a/lang/erlang/patches/031-Update-configure-scripts.patch b/lang/erlang/patches/031-Update-configure-scripts.patch deleted file mode 100644 index 174a8b83dc..0000000000 --- a/lang/erlang/patches/031-Update-configure-scripts.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 4d48c33d413957dc95fc8b921f9708eb0705c796 Mon Sep 17 00:00:00 2001 -From: Hans Nilsson -Date: Wed, 16 Feb 2022 09:28:38 +0100 -Subject: [PATCH] Update configure scripts - ---- - lib/crypto/configure | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - ---- a/lib/crypto/configure -+++ b/lib/crypto/configure -@@ -621,6 +621,7 @@ ac_includes_default="\ - - ac_subst_vars='LTLIBOBJS - LIBOBJS -+DISABLE_OTP_TEST_ENGINE - DISABLE_EVP_HMAC - DISABLE_EVP_DH - SSL_DYNAMIC_ONLY -@@ -747,6 +748,7 @@ with_ssl_rpath - enable_dynamic_ssl_lib - enable_evp_dh - enable_evp_hmac -+enable_otp_test_engine - enable_deprecated_warnings - enable_fips - ' -@@ -1420,6 +1422,8 @@ Optional Features: - the crypto NIF - --disable-evp-dh intentionally undocumented workaround - --disable-evp-hmac intentionally undocumented workaround -+ --disable-otp-test-engine -+ intentionally undocumented workaround - --disable-deprecated-warnings - disable warnings for deprecated functions in - cryptolib (default is to warn, except for OpenSSL -@@ -5096,6 +5100,18 @@ else - fi - - -+ -+# Check whether --enable-otp-test-engine was given. -+if test "${enable_otp_test_engine+set}" = set; then : -+ enableval=$enable_otp_test_engine; case "$enableval" in -+ no) DISABLE_OTP_TEST_ENGINE=yes;; -+ *) DISABLE_OTP_TEST_ENGINE=no;; -+ esac -+else -+ DISABLE_OTP_TEST_ENGINE=no -+fi -+ -+ - # Check whether --enable-deprecated_warnings was given. - if test "${enable_deprecated_warnings+set}" = set; then : - enableval=$enable_deprecated_warnings; case "$enableval" in -@@ -6319,6 +6335,7 @@ fi - - - -+ - - - diff --git a/lang/erlang/patches/032-crypto-do-disable-otp-test-engine-for-LibreSSL-3.5.0.patch b/lang/erlang/patches/032-crypto-do-disable-otp-test-engine-for-LibreSSL-3.5.0.patch deleted file mode 100644 index 6b7f6c6f0c..0000000000 --- a/lang/erlang/patches/032-crypto-do-disable-otp-test-engine-for-LibreSSL-3.5.0.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 4e3d154c0f1bd975016eaa2d842affd230b736cc Mon Sep 17 00:00:00 2001 -From: Hans Nilsson -Date: Mon, 21 Feb 2022 14:58:08 +0100 -Subject: [PATCH] crypto: do --disable-otp-test-engine for LibreSSL >= 3.5.0 - ---- - lib/crypto/configure.in | 17 +++++++++++++++-- - 1 file changed, 15 insertions(+), 2 deletions(-) - ---- a/lib/crypto/configure.in -+++ b/lib/crypto/configure.in -@@ -159,11 +159,11 @@ AS_HELP_STRING([--disable-evp-hmac], - - AC_ARG_ENABLE(otp-test-engine, - AS_HELP_STRING([--disable-otp-test-engine], -- [intentionally undocumented workaround]), -+ [Disable build of the otp_test_engine. (default is --enable-otp-test-engine, unless for LibreSSL >= 3.5.0 where default is --disable-otp-test-engine)]), - [ case "$enableval" in - no) DISABLE_OTP_TEST_ENGINE=yes;; - *) DISABLE_OTP_TEST_ENGINE=no;; -- esac ], DISABLE_OTP_TEST_ENGINE=no) -+ esac ], DISABLE_OTP_TEST_ENGINE=default) - - AC_ARG_ENABLE(deprecated_warnings, - AS_HELP_STRING([--disable-deprecated-warnings], -@@ -245,6 +245,19 @@ yes - ], - [v3_include=yes], - [v3_include=no]) -+ -+if test "x$DISABLE_OTP_TEST_ENGINE" = "xdefault"; then -+# Get default value for the --disable-otp-test-engine. Depends on cryptolib version -+ AC_EGREP_CPP(^yes.?$,[ -+#include -+#if LIBRESSL_VERSION_NUMBER >= 0x3050000fL -+yes -+#endif -+ ], -+ [DISABLE_OTP_TEST_ENGINE=yes], -+ [DISABLE_OTP_TEST_ENGINE=no]) -+ fi -+ - CPPFLAGS="$save_CPPFLAGS" - - if test $valid_include != yes; then diff --git a/lang/erlang/patches/033-Update-configure-scripts.patch b/lang/erlang/patches/033-Update-configure-scripts.patch deleted file mode 100644 index cdc6af7821..0000000000 --- a/lang/erlang/patches/033-Update-configure-scripts.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 2f27f4bf85971dc8d8e0c2dcef133729835458c5 Mon Sep 17 00:00:00 2001 -From: Hans Nilsson -Date: Mon, 21 Feb 2022 14:58:35 +0100 -Subject: [PATCH] Update configure scripts - ---- - lib/crypto/configure | 50 ++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 48 insertions(+), 2 deletions(-) - ---- a/lib/crypto/configure -+++ b/lib/crypto/configure -@@ -1423,7 +1423,9 @@ Optional Features: - --disable-evp-dh intentionally undocumented workaround - --disable-evp-hmac intentionally undocumented workaround - --disable-otp-test-engine -- intentionally undocumented workaround -+ Disable build of the otp_test_engine. (default is -+ --enable-otp-test-engine, unless for LibreSSL >= -+ 3.5.0 where default is --disable-otp-test-engine) - --disable-deprecated-warnings - disable warnings for deprecated functions in - cryptolib (default is to warn, except for OpenSSL -@@ -5108,7 +5110,7 @@ if test "${enable_otp_test_engine+set}" - *) DISABLE_OTP_TEST_ENGINE=no;; - esac - else -- DISABLE_OTP_TEST_ENGINE=no -+ DISABLE_OTP_TEST_ENGINE=default - fi - - -@@ -5300,6 +5302,28 @@ else - fi - rm -f conftest* - -+ -+if test "x$DISABLE_OTP_TEST_ENGINE" = "xdefault"; then -+# Get default value for the --disable-otp-test-engine. Depends on cryptolib version -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+#include -+#if LIBRESSL_VERSION_NUMBER >= 0x3050000fL -+yes -+#endif -+ -+_ACEOF -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "^yes.?$" >/dev/null 2>&1; then : -+ DISABLE_OTP_TEST_ENGINE=yes -+else -+ DISABLE_OTP_TEST_ENGINE=no -+fi -+rm -f conftest* -+ -+ fi -+ - CPPFLAGS="$save_CPPFLAGS" - - if test $valid_include != yes; then -@@ -5705,6 +5729,28 @@ else - fi - rm -f conftest* - -+ -+if test "x$DISABLE_OTP_TEST_ENGINE" = "xdefault"; then -+# Get default value for the --disable-otp-test-engine. Depends on cryptolib version -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+#include -+#if LIBRESSL_VERSION_NUMBER >= 0x3050000fL -+yes -+#endif -+ -+_ACEOF -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "^yes.?$" >/dev/null 2>&1; then : -+ DISABLE_OTP_TEST_ENGINE=yes -+else -+ DISABLE_OTP_TEST_ENGINE=no -+fi -+rm -f conftest* -+ -+ fi -+ - CPPFLAGS="$save_CPPFLAGS" - - if test $valid_include != yes; then