* [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2
@ 2026-09-19 15:57 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 01/77] Remove mender packages Bernd Kuhls
` (76 more replies)
0 siblings, 77 replies; 107+ messages in thread
From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw)
To: buildroot
Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis,
Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni,
Cédric Chépied, Heiko Thiery, Dario Binacchi,
Titouan Christophe, Fabrice Fontaine, Joris Lijssens,
Philipp Richter, Thomas Devoogdt, Romain Naour,
Roy Kollen Svendsen, Brandon Maier, Francois Perrad,
Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli,
David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price,
Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su,
Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti,
Karoly Kasza, Martin Bark
Hi,
this series bumps libopenssl to version 4.0.2.
It consists of the following parts:
0001-0006: package removals
0007-0031: version bumps that provide compatibility with OpenSSL 4.x
0007-0013 belong to the boost patch series
0026-0029 belong to the snort3 patch series
0032-0076: upstream fixes for packages without a released version that
provides compatibility with OpenSSL 4.x
The luvi package needed to be bumped first so the upstream
fix for OpenSSL 4.x could be applied
The poco package needed the CMake patch from Yegor
0077: bump libopenssl to 4.0.2
None of the patches 0001-0076 depend on the libopenssl bump, they all
build fine with libopenssl 3.6.2.
Regards, Bernd
v2:
- squashed BR2_TOOLCHAIN_HAS_GCC_BUG_101916 removal into
heirloom-mailx removal patch
- added qt6 bump which also fixes build with OpenSSL 4.0
Bernd Kuhls (75):
Remove mender packages
package/heirloom-mailx: remove package
package/qt5/qt5opcua: remove package
package/qt5/qt5knx: remove package
package/resiprocate: remove package
package/libcpprestsdk: remove package
package/cc-tool: Fix build with Boost >= 1.89
package/jwt-cpp: new package
package/domoticz: bump version to 2026.3
package/libtorrent-rasterbar: bump version to 2.1.1
package/boost: bump version to 1.92.0
package/libpjsip: Add support for OpenSSL 4.0.0
package/asterisk: bump bundled pjsip to 2.17
package/asterisk: bump version to 22.11.0
package/asterisk: Fix build with OpenSSL 4.0.0
package/dovecot{-pigeonhole}: security bump version to 2.4.5
package/ibrcommon: update patches
package/ibrcommon: Fix build with OpenSSL 4.0.0
package/libp11: bump version to 0.4.20
package/nmap: bump version to 7.991
package/openvmtools: bump version to 13.1.0
package/poco: bump version to 1.15.3
package/qt6: security bump version to 6.11.2
package/daq3: bump version to 3.0.27
package/snort3: fix build error with numa support
package/snort3: bump version to 3.12.2.0
package/snort3: Fix build with OpenSSL 4.0.0
package/xtables-addons: use kernel-module infra
package/xtables-addons: bump version to 3.31
package/apache: Add support for OpenSSL 4.0.0
package/boinc: Fix build with OpenSSL 4.0.0
package/ca-certificates: Replace c_rehash with openssl rehash
package/clamav: Fix build with OpenSSL 4.0.0
package/capnproto: Fix build with OpenSSL 4.0.0
package/ecryptfs-utils: remove OpenSSL support
package/freeradius-server: Add support for OpenSSL 4.0.0
package/freeswitch: Add support for OpenSSL 4.0.0
package/gloox: Fix build with OpenSSL 4.0.0
package/grpc: Fix build with OpenSSL 4.0.0
package/ibm-sw-tpm2: Fix build with OpenSSL 4.{0, 1}
package/ibrdtnd: Fix build with OpenSSL 4.0.0
package/lftp: Add support for OpenSSL 4.0.0
package/libesmtp: Fix build with OpenSSL 4.0.0
package/libest: Fix build with OpenSSL 4.0.0
package/libkrb5: Add support for OpenSSL 4.0.0
package/luvi: fix build without c++
package/luvi: bump version to 102-g9fa6c141a
package/luvi: Fix build with OpenSSL 4.0.0
package/mtd: Fix build with OpenSSL 4.0.0
package/netsnmp: Fix build with OpenSSL 4.0.0
package/ntp: Add support for OpenSSL 4.0.0
package/omniorb: Fix build with OpenSSL 4.0.0
package/opensc: Add support for OpenSSL 4.0.0
package/perl-net-ssleay: Add support for OpenSSL 4.0.0
package/pkcs11-helper: Add support for OpenSSL 4.0.0
package/python3: Add support for OpenSSL 4.0.0
package/qpid-proton: Fix build with OpenSSL 4.0.0
package/qt5/qt5base: Add support for OpenSSL 4.0.0
package/rauc: Fix build with OpenSSL 4.0.0
package/redis: Fix build with OpenSSL 4.0.0
package/socat: Add support for OpenSSL 4.0.0
package/sofia-sip: Fix build with OpenSSL 4.0.0
package/softhsm2: Fix build with OpenSSL 4.0.0
package/squid: Fix build with OpenSSL 4.0.0
package/sscep: Fix build with OpenSSL 4.0.0
package/sudo: Add support for OpenSSL 4.0.0
package/thrift: Fix build with LibreSSL and OpenSSL 4.x
package/thrift: Fix build with OpenSSL 4.0.0
package/tpm2-openssl: Fix build with OpenSSL 4.0.0
package/trousers: Fix build with OpenSSL 4.0.0
package/turbolua: Fix build with OpenSSL 4.0.0
package/uboot-tools: Fix build with OpenSSL 4.0.0
package/xmrig: Add support for OpenSSL 4.0.0
package/znc: Fix build with OpenSSL 4.0.0
package/libopenssl: bump version to 4.0.2
Michael Nosthoff (1):
package/boost: remove dependencies on Boost.DateTime
Yegor Yefremov (1):
package/poco: convert to CMake package
.checkpackageignore | 15 +-
Config.in.legacy | 105 +
DEVELOPERS | 7 +-
board/mender/x86_64/genimage-efi.cfg | 43 -
board/mender/x86_64/linux.config | 64 -
board/mender/x86_64/mender_grubenv_defines | 25 -
board/mender/x86_64/overlay/etc/fstab | 7 -
.../x86_64/overlay/etc/mender/mender.conf | 11 -
board/mender/x86_64/post-build.sh | 48 -
board/mender/x86_64/post-image-efi.sh | 92 -
board/mender/x86_64/readme.txt | 69 -
configs/mender_x86_64_efi_defconfig | 54 -
docs/manual/migrating.adoc | 6 +
package/Config.in | 8 +-
package/Config.in.host | 1 -
.../0004-modules-md-Merge-from-icing-md.patch | 57 +
package/apr-util/Config.in | 1 -
...of-bundled-libpjsip-with-OpenSSL-4.x.patch | 63 +
package/asterisk/asterisk.hash | 6 +-
package/asterisk/asterisk.mk | 8 +-
...fix-a-build-failure-with-openssl-4.0.patch | 26 +
...xit_code-guard-static_asserts-on-MIP.patch | 59 +
.../0001-unordered-fix-copy-assign.patch | 22 -
...-for-duplicate-definition-of-SIGLOST.patch | 30 +
package/boost/0003-Fix-build.patch | 39 +
...-types-between-declaration-and-defin.patch | 53 +
package/boost/Config.in | 17 +-
package/boost/boost.hash | 4 +-
package/boost/boost.mk | 2 +-
package/ca-certificates/ca-certificates.mk | 4 +-
...-errors-when-building-against-OpenSS.patch | 38 +
...tibility-with-older-OpenSSL-versions.patch | 29 +
.../0001-Fix-build-with-Boost-1.89-32.patch | 1029 ++
...-crypto-Remove-cl_ASN1_GetTimeT-1731.patch | 136 +
package/daq3/daq3.hash | 2 +-
package/daq3/daq3.mk | 2 +-
package/domoticz/Config.in | 7 +-
package/domoticz/domoticz.hash | 3 +-
package/domoticz/domoticz.mk | 27 +-
.../dovecot-pigeonhole.hash | 4 +-
.../dovecot-pigeonhole/dovecot-pigeonhole.mk | 12 +-
...xpand-crypt-Link-test-binary-statica.patch | 32 +
...g-passdbs-with-identical-driver-args.patch | 137 -
...onfigure-Explicitly-check-for-icu-uc.patch | 28 -
package/dovecot/Config.in | 21 +-
package/dovecot/dovecot.hash | 4 +-
package/dovecot/dovecot.mk | 68 +-
package/ecryptfs-utils/ecryptfs-utils.mk | 2 +-
package/fluent-bit/Config.in | 1 -
...ING-functions-for-OpenSSL-4.0-compat.patch | 80 +
package/freeswitch/freeswitch.mk | 5 +
.../0001-Fix-build-with-OpenSSL-4.x.patch | 43 +
.../grpc/0003-Add-support-for-OpenSSL-4.patch | 327 +
...k-symbol-optopt-to-fix-FTBFS-on-mips.patch | 57 -
...-support-since-it-is-no-longer-suppo.patch | 39 -
...-warning-warning-macro-N-not-defined.patch | 23 -
...0011-outof-Introduce-expandaddr-flag.patch | 69 -
...ption-processing-for-email-addresses.patch | 77 -
...onditionally-require-wordexp-support.patch | 111 -
...bname-Invoke-wordexp-with-WRDE_NOCMD.patch | 29 -
.../0015-usr-sbin-sendmail.patch | 36 -
.../0101-fix-libressl-support.patch | 55 -
package/heirloom-mailx/Config.in | 22 -
package/heirloom-mailx/heirloom-mailx.hash | 5 -
package/heirloom-mailx/heirloom-mailx.mk | 51 -
.../0002-tpm-Update-to-OpenSSL-4.1.patch | 28 +
...mplyfied-POSIX-method-to-get-the-bas.patch | 46 +
...File.cpp-support-POSIX-basename-call.patch | 55 -
...-added-openssl-1.1-compatibility-264.patch | 3 +-
...sl-gcm-fix-static-build-with-openssl.patch | 3 +-
...ion-without-deprecated-OpenSSL-1.1-A.patch | 42 +
...ateManager.cpp-fix-build-with-OpenSS.patch | 41 +
package/jwt-cpp/Config.in | 12 +
package/jwt-cpp/jwt-cpp.hash | 4 +
package/jwt-cpp/jwt-cpp.mk | 18 +
.../0002-allow-build-with-OpenSSL-4.x.patch | 56 +
package/libcoap/Config.in | 1 -
package/libcpprestsdk/Config.in | 34 -
package/libcpprestsdk/libcpprestsdk.hash | 3 -
package/libcpprestsdk/libcpprestsdk.mk | 55 -
...-with-OpenSSL-4.0-opaque-ASN1_STRING.patch | 36 +
...r-opaque-ASN1_STRING-OpenSSL-4-compa.patch | 60 +
...stead-of-the-ENGINE-API-on-OpenSSL-4.patch | 64 +
...-Port-ossl_srv.c-copies-to-OpenSSL-4.patch | 358 +
package/libest/Config.in | 1 -
...eck_host-to-verify-KKDCP-server-cert.patch | 252 +
...Improve-future-OpenSSL-compatibility.patch | 327 +
package/libks/Config.in | 1 -
package/libldns/libldns.mk | 8 +-
package/libopenssl/Config.in | 34 -
package/libopenssl/libopenssl.hash | 4 +-
package/libopenssl/libopenssl.mk | 18 +-
package/libp11/Config.in | 1 -
package/libp11/libp11.hash | 4 +-
package/libp11/libp11.mk | 5 +-
...l-fix-OpenSSL-4.0-compatibility-5036.patch | 44 +
package/librelp/Config.in | 1 -
package/libssh/Config.in | 1 -
.../0001-fix-more-c-17-that-made-it-in.patch | 53 +
package/libtorrent-rasterbar/Config.in | 8 +-
.../libtorrent-rasterbar.hash | 5 +-
.../libtorrent-rasterbar.mk | 22 +-
...eLists.txt-only-require-a-C-compiler.patch | 48 +
...ly-disable-GCC-diagnostics-in-ocsp.c.patch | 80 -
...isable-Wincompatible-pointer-types-f.patch | 54 -
.../luvi/0002-feat-support-openssl-4.0.patch | 403 +
package/luvi/Config.in | 1 -
package/luvi/luvi.hash | 2 +-
package/luvi/luvi.mk | 2 +-
package/mender-artifact/Config.in.host | 19 -
package/mender-artifact/mender-artifact.hash | 106 -
package/mender-artifact/mender-artifact.mk | 118 -
package/mender-connect/Config.in | 34 -
package/mender-connect/S43mender-connect | 53 -
package/mender-connect/mender-connect.hash | 35 -
package/mender-connect/mender-connect.mk | 60 -
package/mender-grubenv/Config.in | 43 -
package/mender-grubenv/mender-grubenv.hash | 3 -
package/mender-grubenv/mender-grubenv.mk | 90 -
package/mender-update-modules/Config.in | 250 -
.../mender-update-modules.hash | 3 -
.../mender-update-modules.mk | 77 -
package/mender/Config.in | 45 -
package/mender/S42mender | 44 -
package/mender/device_type | 1 -
package/mender/mender-client.service | 13 -
package/mender/mender.conf | 11 -
package/mender/mender.hash | 47 -
package/mender/mender.mk | 110 -
package/mender/readme.txt | 132 -
package/mender/server.crt | 22 -
...t-compile-engine-support-if-not-avai.patch | 62 +
package/mtd/Config.in | 1 -
.../0002-libsnmp-Fix-OpenSSL-4-build.patch | 99 +
...if-compiling-without-Lua-support.-Cl.patch | 29 +
package/nmap/nmap.hash | 6 +-
package/nmap/nmap.mk | 2 +-
package/ntp/0008-openssl4.patch | 100 +
package/omniorb/0001-openssl4.patch | 63 +
.../0001-Changes-for-OpenSSL-4.0.0.patch | 333 +
package/openssh/openssh.mk | 8 +-
.../0001-configure.ac-disable-Werror.patch | 32 +
.../openvmtools/0001-no_cflags_werror.patch | 18 -
.../0002-dont-force-cppflags.patch | 21 -
...-not-force-I-usr-include-in-CPPFLAGS.patch | 36 +
..._poll-h-to-fix-build-failure-on-musl.patch | 813 --
...to-vm_poll.h-to-fix-build-failure-on.patch | 133 +
...ns-about-glibc-being-only-libc-imple.patch | 27 +-
...e-configure-test-for-struct-timespec.patch | 31 +-
...finition-of-ALLPERMS-and-ACCESSPERMS.patch | 35 +-
...-test-for-feature-instead-of-platfor.patch | 74 +-
...onfigure-test-for-sys-stat.h-include.patch | 21 +-
...gfs-fuse-fsutils.h-fix-build-on-mus.patch} | 8 +-
...FromNtTimeNsec-aware-of-64-bit-time_.patch | 51 +
...on-discards-const-qualifier-from-poi.patch | 148 +
...FromNtTimeNsec-aware-of-64-bit-time_.patch | 80 -
...GLib-g_free-macro-redefinition-erro.patch} | 11 +-
...uthorization-on-incoming-guestOps-re.patch | 41 -
...-2025-22247-1100-1225-VGAuth-updates.patch | 383 -
package/openvmtools/openvmtools.hash | 3 +-
package/openvmtools/openvmtools.mk | 22 +-
.../0002-Fix-SSLv3-in-OpenSSL-4.0.0.patch | 39 +
...emove-support-for-some-TLS-functions.patch | 197 +
...SSLeay-to-support-opaque-ASN1_STRING.patch | 179 +
...-removal-of-SSLv2-Client-Hello-suppo.patch | 66 +
...Net-SSLeay-OPENSSL_info-return-value.patch | 45 +
...r-OPenSSL-4-support-and-update-tests.patch | 94 +
...but-if-with-else-to-avoid-duplicate-.patch | 83 +
...1-crypto-openssl-use-ASN1_TIME_to_tm.patch | 48 +
package/poco/Config.in | 1 +
package/poco/poco.hash | 2 +-
package/poco/poco.mk | 100 +-
package/python3/0011-openssl4-support.patch | 9807 +++++++++++++++++
...1-PROTON-2937-Add-OpenSSL-4.x-compat.patch | 80 +
package/qt5/Config.in | 2 -
package/qt5/qt5base/0009-openssl4.patch | 52 +
package/qt5/qt5base/0010-openssl4.patch | 139 +
package/qt5/qt5base/0011-openssl4.patch | 89 +
package/qt5/qt5knx/Config.in | 12 -
package/qt5/qt5knx/qt5knx.hash | 6 -
package/qt5/qt5knx/qt5knx.mk | 15 -
package/qt5/qt5opcua/Config.in | 9 -
package/qt5/qt5opcua/qt5opcua.hash | 10 -
package/qt5/qt5opcua/qt5opcua.mk | 19 -
package/qt6/qt6.mk | 2 +-
...e.cpp-remove-is_always_lock_free-sta.patch | 41 -
package/qt6/qt6base/qt6base.hash | 4 +-
package/qt6/qt6charts/qt6charts.hash | 4 +-
.../qt6/qt6core5compat/qt6core5compat.hash | 4 +-
.../qt6/qt6declarative/qt6declarative.hash | 4 +-
package/qt6/qt6graphs/qt6graphs.hash | 4 +-
package/qt6/qt6grpc/qt6grpc.hash | 4 +-
.../qt6languageserver/qt6languageserver.hash | 4 +-
package/qt6/qt6mqtt/qt6mqtt.hash | 2 +-
package/qt6/qt6multimedia/qt6multimedia.hash | 4 +-
package/qt6/qt6opcua/qt6opcua.hash | 2 +-
.../qt6/qt6positioning/qt6positioning.hash | 4 +-
package/qt6/qt6quick3d/qt6quick3d.hash | 4 +-
.../qt6quicktimeline/qt6quicktimeline.hash | 4 +-
package/qt6/qt6scxml/qt6scxml.hash | 4 +-
package/qt6/qt6serialbus/qt6serialbus.hash | 4 +-
package/qt6/qt6serialport/qt6serialport.hash | 4 +-
.../qt6/qt6shadertools/qt6shadertools.hash | 4 +-
package/qt6/qt6svg/qt6svg.hash | 4 +-
package/qt6/qt6tools/qt6tools.hash | 4 +-
.../qt6virtualkeyboard.hash | 4 +-
package/qt6/qt6wayland/qt6wayland.hash | 4 +-
package/qt6/qt6websockets/qt6websockets.hash | 4 +-
...N1_STRING_get0_data-and-ASN1_STRING_.patch | 48 +
package/rauc/Config.in | 2 -
package/rauc/rauc.mk | 3 +-
...emove-Werror-deprecated-declarations.patch | 28 +
package/resiprocate/Config.in | 43 -
package/resiprocate/resiprocate.hash | 3 -
package/resiprocate/resiprocate.mk | 60 -
.../0001-Rename-numa.h-to-numa_snort.h.patch | 79 +
...fix-const-qualifiers-for-OpenSSL-4.0.patch | 63 +
package/snort3/snort3.hash | 2 +-
package/snort3/snort3.mk | 2 +-
...penSSL-4.0-use-ASN1_STRING-accessors.patch | 35 +
...001-Fix-build-error-with-OpenSSL-4.0.patch | 42 +
...mory-leak-in-OSSL-byteString2oid-863.patch | 49 +
...in-EdDSA-PrintableString-handling-85.patch | 98 +
package/softhsm2/Config.in | 1 -
.../0001-Fix-OpenSSL-4.0-compatibility.patch | 368 +
.../0003-Fix-build-with-OpenSSL-4.x.patch | 33 +
...-for-getting-an-ASN1_STRING-s-length.patch | 46 +
...sport-Make-it-compatible-with-OpenSS.patch | 193 +
...recated-OpenSSL-API-ASN1_STRING_data.patch | 35 +
...TRING-and-X509_NAME-access-for-OpenS.patch | 87 +
package/trousers/0004-openssl4.patch | 26 +
...-Replace-deprecated-OpenSSL-API-ASN1.patch | 49 +
...Add-support-for-OpenSSL-Provider-API.patch | 304 +
package/unbound/Config.in | 1 -
package/unbound/unbound.mk | 1 +
.../0001-Fix-build-with-OpenSSL-4.0.0.patch | 40 +
package/xtables-addons/Config.in | 2 +-
package/xtables-addons/xtables-addons.hash | 2 +-
package/xtables-addons/xtables-addons.mk | 9 +-
...-Fix-build-error-with-OpenSSL-4-2024.patch | 57 +
support/testing/tests/package/test_mender.py | 72 -
.../tests/package/test_mender/post-build.sh | 25 -
.../rootfs-overlay/etc/mender/artifact_info | 1 -
.../rootfs-overlay/usr/bin/fw_printenv | 6 -
toolchain/Config.in | 7 -
245 files changed, 18130 insertions(+), 4875 deletions(-)
delete mode 100644 board/mender/x86_64/genimage-efi.cfg
delete mode 100644 board/mender/x86_64/linux.config
delete mode 100644 board/mender/x86_64/mender_grubenv_defines
delete mode 100644 board/mender/x86_64/overlay/etc/fstab
delete mode 100644 board/mender/x86_64/overlay/etc/mender/mender.conf
delete mode 100755 board/mender/x86_64/post-build.sh
delete mode 100755 board/mender/x86_64/post-image-efi.sh
delete mode 100644 board/mender/x86_64/readme.txt
delete mode 100644 configs/mender_x86_64_efi_defconfig
create mode 100644 package/apache/0004-modules-md-Merge-from-icing-md.patch
create mode 100644 package/asterisk/0006-Fix-build-of-bundled-libpjsip-with-OpenSSL-4.x.patch
create mode 100644 package/boinc/0001-Adapt-code-to-fix-a-build-failure-with-openssl-4.0.patch
create mode 100644 package/boost/0001-fix-process-v2-exit_code-guard-static_asserts-on-MIP.patch
delete mode 100644 package/boost/0001-unordered-fix-copy-assign.patch
create mode 100644 package/boost/0002-Add-check-for-duplicate-definition-of-SIGLOST.patch
create mode 100644 package/boost/0003-Fix-build.patch
create mode 100644 package/boost/0004-fix-inconsistent-types-between-declaration-and-defin.patch
create mode 100644 package/capnproto/0002-Address-compiler-errors-when-building-against-OpenSS.patch
create mode 100644 package/capnproto/0003-Maintain-compatibility-with-older-OpenSSL-versions.patch
create mode 100644 package/cc-tool/0001-Fix-build-with-Boost-1.89-32.patch
create mode 100644 package/clamav/0001-libclamav-crypto-Remove-cl_ASN1_GetTimeT-1731.patch
create mode 100644 package/dovecot/0001-Revert-lib-var-expand-crypt-Link-test-binary-statica.patch
delete mode 100644 package/dovecot/0001-auth-Fix-handling-passdbs-with-identical-driver-args.patch
delete mode 100644 package/dovecot/0002-configure-Explicitly-check-for-icu-uc.patch
create mode 100644 package/freeradius-server/0009-Use-ASN1_STRING-functions-for-OpenSSL-4.0-compat.patch
create mode 100644 package/gloox/0001-Fix-build-with-OpenSSL-4.x.patch
create mode 100644 package/grpc/0003-Add-support-for-OpenSSL-4.patch
delete mode 100644 package/heirloom-mailx/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch
delete mode 100644 package/heirloom-mailx/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch
delete mode 100644 package/heirloom-mailx/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch
delete mode 100644 package/heirloom-mailx/0011-outof-Introduce-expandaddr-flag.patch
delete mode 100644 package/heirloom-mailx/0012-unpack-Disable-option-processing-for-email-addresses.patch
delete mode 100644 package/heirloom-mailx/0013-fio.c-Unconditionally-require-wordexp-support.patch
delete mode 100644 package/heirloom-mailx/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch
delete mode 100644 package/heirloom-mailx/0015-usr-sbin-sendmail.patch
delete mode 100644 package/heirloom-mailx/0101-fix-libressl-support.patch
delete mode 100644 package/heirloom-mailx/Config.in
delete mode 100644 package/heirloom-mailx/heirloom-mailx.hash
delete mode 100644 package/heirloom-mailx/heirloom-mailx.mk
create mode 100644 package/ibm-sw-tpm2/0002-tpm-Update-to-OpenSSL-4.1.patch
create mode 100644 package/ibrcommon/0001-ibrcommon-Use-simplyfied-POSIX-method-to-get-the-bas.patch
delete mode 100644 package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch
create mode 100644 package/ibrcommon/0004-ssl-Fix-compilation-without-deprecated-OpenSSL-1.1-A.patch
create mode 100644 package/ibrdtnd/0003-SecurityCertificateManager.cpp-fix-build-with-OpenSS.patch
create mode 100644 package/jwt-cpp/Config.in
create mode 100644 package/jwt-cpp/jwt-cpp.hash
create mode 100644 package/jwt-cpp/jwt-cpp.mk
create mode 100644 package/lftp/0002-allow-build-with-OpenSSL-4.x.patch
delete mode 100644 package/libcpprestsdk/Config.in
delete mode 100644 package/libcpprestsdk/libcpprestsdk.hash
delete mode 100644 package/libcpprestsdk/libcpprestsdk.mk
create mode 100644 package/libesmtp/0001-Fix-build-with-OpenSSL-4.0-opaque-ASN1_STRING.patch
create mode 100644 package/libest/0005-Use-accessors-for-opaque-ASN1_STRING-OpenSSL-4-compa.patch
create mode 100644 package/libest/0006-Use-providers-instead-of-the-ENGINE-API-on-OpenSSL-4.patch
create mode 100644 package/libest/0007-Port-ossl_srv.c-copies-to-OpenSSL-4.patch
create mode 100644 package/libkrb5/0002-Use-X509_check_host-to-verify-KKDCP-server-cert.patch
create mode 100644 package/libkrb5/0003-Improve-future-OpenSSL-compatibility.patch
create mode 100644 package/libpjsip/0001-ssl_sock_ossl-fix-OpenSSL-4.0-compatibility-5036.patch
create mode 100644 package/libtorrent-rasterbar/0001-fix-more-c-17-that-made-it-in.patch
create mode 100644 package/luvi/0001-CMakeLists.txt-only-require-a-C-compiler.patch
delete mode 100644 package/luvi/0001-Selectively-disable-GCC-diagnostics-in-ocsp.c.patch
delete mode 100644 package/luvi/0002-CMakeLists.txt-disable-Wincompatible-pointer-types-f.patch
create mode 100644 package/luvi/0002-feat-support-openssl-4.0.patch
delete mode 100644 package/mender-artifact/Config.in.host
delete mode 100644 package/mender-artifact/mender-artifact.hash
delete mode 100644 package/mender-artifact/mender-artifact.mk
delete mode 100644 package/mender-connect/Config.in
delete mode 100644 package/mender-connect/S43mender-connect
delete mode 100644 package/mender-connect/mender-connect.hash
delete mode 100644 package/mender-connect/mender-connect.mk
delete mode 100644 package/mender-grubenv/Config.in
delete mode 100644 package/mender-grubenv/mender-grubenv.hash
delete mode 100644 package/mender-grubenv/mender-grubenv.mk
delete mode 100644 package/mender-update-modules/Config.in
delete mode 100644 package/mender-update-modules/mender-update-modules.hash
delete mode 100644 package/mender-update-modules/mender-update-modules.mk
delete mode 100644 package/mender/Config.in
delete mode 100644 package/mender/S42mender
delete mode 100644 package/mender/device_type
delete mode 100644 package/mender/mender-client.service
delete mode 100644 package/mender/mender.conf
delete mode 100644 package/mender/mender.hash
delete mode 100644 package/mender/mender.mk
delete mode 100644 package/mender/readme.txt
delete mode 100644 package/mender/server.crt
create mode 100644 package/mtd/0001-ubifs-utils-Don-t-compile-engine-support-if-not-avai.patch
create mode 100644 package/netsnmp/0002-libsnmp-Fix-OpenSSL-4-build.patch
create mode 100644 package/nmap/0002-Do-not-call-NSE-if-compiling-without-Lua-support.-Cl.patch
create mode 100644 package/ntp/0008-openssl4.patch
create mode 100644 package/omniorb/0001-openssl4.patch
create mode 100644 package/opensc/0001-Changes-for-OpenSSL-4.0.0.patch
create mode 100644 package/openvmtools/0001-configure.ac-disable-Werror.patch
delete mode 100644 package/openvmtools/0001-no_cflags_werror.patch
delete mode 100644 package/openvmtools/0002-dont-force-cppflags.patch
create mode 100644 package/openvmtools/0002-m4-do-not-force-I-usr-include-in-CPPFLAGS.patch
delete mode 100644 package/openvmtools/0003-Rename-poll-h-into-vm_poll-h-to-fix-build-failure-on-musl.patch
create mode 100644 package/openvmtools/0003-Rename-poll.h-into-vm_poll.h-to-fix-build-failure-on.patch
rename package/openvmtools/{0011-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch => 0009-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch} (86%)
create mode 100644 package/openvmtools/0010-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch
create mode 100644 package/openvmtools/0011-fix-initialization-discards-const-qualifier-from-poi.patch
delete mode 100644 package/openvmtools/0012-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch
rename package/openvmtools/{0015-glib_stubs-avoid-GLib-g_free-macro-redefinition-error.patch => 0012-glib_stubs-avoid-GLib-g_free-macro-redefinition-erro.patch} (84%)
delete mode 100644 package/openvmtools/0013-Properly-check-authorization-on-incoming-guestOps-re.patch
delete mode 100644 package/openvmtools/0014-CVE-2025-22247-1100-1225-VGAuth-updates.patch
create mode 100644 package/perl-net-ssleay/0002-Fix-SSLv3-in-OpenSSL-4.0.0.patch
create mode 100644 package/perl-net-ssleay/0003-OpenSSL-4.0.0-remove-support-for-some-TLS-functions.patch
create mode 100644 package/perl-net-ssleay/0004-Fix-Net-SSLeay-to-support-opaque-ASN1_STRING.patch
create mode 100644 package/perl-net-ssleay/0005-Update-tests-for-removal-of-SSLv2-Client-Hello-suppo.patch
create mode 100644 package/perl-net-ssleay/0006-Add-default-for-Net-SSLeay-OPENSSL_info-return-value.patch
create mode 100644 package/perl-net-ssleay/0007-Add-Changes-for-OPenSSL-4-support-and-update-tests.patch
create mode 100644 package/perl-net-ssleay/0008-Do-not-use-elif-but-if-with-else-to-avoid-duplicate-.patch
create mode 100644 package/pkcs11-helper/0001-crypto-openssl-use-ASN1_TIME_to_tm.patch
create mode 100644 package/python3/0011-openssl4-support.patch
create mode 100644 package/qpid-proton/0001-PROTON-2937-Add-OpenSSL-4.x-compat.patch
create mode 100644 package/qt5/qt5base/0009-openssl4.patch
create mode 100644 package/qt5/qt5base/0010-openssl4.patch
create mode 100644 package/qt5/qt5base/0011-openssl4.patch
delete mode 100644 package/qt5/qt5knx/Config.in
delete mode 100644 package/qt5/qt5knx/qt5knx.hash
delete mode 100644 package/qt5/qt5knx/qt5knx.mk
delete mode 100644 package/qt5/qt5opcua/Config.in
delete mode 100644 package/qt5/qt5opcua/qt5opcua.hash
delete mode 100644 package/qt5/qt5opcua/qt5opcua.mk
delete mode 100644 package/qt6/qt6base/0001-qtestsupport_core.cpp-remove-is_always_lock_free-sta.patch
create mode 100644 package/rauc/0001-signature-use-ASN1_STRING_get0_data-and-ASN1_STRING_.patch
create mode 100644 package/redis/0004-Remove-Werror-deprecated-declarations.patch
delete mode 100644 package/resiprocate/Config.in
delete mode 100644 package/resiprocate/resiprocate.hash
delete mode 100644 package/resiprocate/resiprocate.mk
create mode 100644 package/snort3/0001-Rename-numa.h-to-numa_snort.h.patch
create mode 100644 package/snort3/0002-ssl-fix-const-qualifiers-for-OpenSSL-4.0.patch
create mode 100644 package/socat/0002-Fix-build-with-OpenSSL-4.0-use-ASN1_STRING-accessors.patch
create mode 100644 package/sofia-sip/0001-Fix-build-error-with-OpenSSL-4.0.patch
create mode 100644 package/softhsm2/0001-Fix-the-memory-leak-in-OSSL-byteString2oid-863.patch
create mode 100644 package/softhsm2/0002-Fix-memory-leak-in-EdDSA-PrintableString-handling-85.patch
create mode 100644 package/squid/0001-Fix-OpenSSL-4.0-compatibility.patch
create mode 100644 package/sscep/0003-Fix-build-with-OpenSSL-4.x.patch
create mode 100644 package/sudo/0002-Use-accessor-for-getting-an-ASN1_STRING-s-length.patch
create mode 100644 package/thrift/0002-THRIFT-6170-transport-Make-it-compatible-with-OpenSS.patch
create mode 100644 package/thrift/0003-Replace-deprecated-OpenSSL-API-ASN1_STRING_data.patch
create mode 100644 package/tpm2-openssl/0001-Fix-ASN1_OCTET_STRING-and-X509_NAME-access-for-OpenS.patch
create mode 100644 package/trousers/0004-openssl4.patch
create mode 100644 package/turbolua/0001-turbo_ffi_wrap.c-Replace-deprecated-OpenSSL-API-ASN1.patch
create mode 100644 package/uboot-tools/0003-Add-support-for-OpenSSL-Provider-API.patch
create mode 100644 package/xmrig/0001-Fix-build-with-OpenSSL-4.0.0.patch
create mode 100644 package/znc/0001-Fix-build-error-with-OpenSSL-4-2024.patch
delete mode 100644 support/testing/tests/package/test_mender.py
delete mode 100755 support/testing/tests/package/test_mender/post-build.sh
delete mode 100644 support/testing/tests/package/test_mender/rootfs-overlay/etc/mender/artifact_info
delete mode 100755 support/testing/tests/package/test_mender/rootfs-overlay/usr/bin/fw_printenv
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 107+ messages in thread* [Buildroot] [PATCH v2 01/77] Remove mender packages 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 10:14 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 02/77] package/heirloom-mailx: remove package Bernd Kuhls ` (75 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Adam Duskett, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Building the current mender version 3.5.3 with OpenSSL 4.0.2 is broken: hostname.c: In function 'do_check_string': hostname.c:248:15: error: invalid use of incomplete typedef 'ASN1_STRING' {aka 'struct asn1_string_st'} 248 | if (!a->data || !a->length) | ^~ hostname.c:248:27: error: invalid use of incomplete typedef 'ASN1_STRING' {aka 'struct asn1_string_st'} 248 | if (!a->data || !a->length) | ^~ hostname.c:252:34: error: invalid use of incomplete typedef 'ASN1_STRING' {aka 'struct asn1_string_st'} 252 | if (cmp_type != a->type) | ^~ hostname.c:255:39: error: invalid use of incomplete typedef 'ASN1_STRING' {aka 'struct asn1_string_st'} 255 | return equal(a->data, a->length, b, blen); | ^~ hostname.c:255:48: error: invalid use of incomplete typedef 'ASN1_STRING' {aka 'struct asn1_string_st'} 255 | return equal(a->data, a->length, b, blen); | ^~ hostname.c:256:22: error: invalid use of incomplete typedef 'ASN1_STRING' {aka 'struct asn1_string_st'} 256 | if (a->length == (int)blen && !memcmp(a->data, b, blen)) | ^~ hostname.c:256:56: error: invalid use of incomplete typedef 'ASN1_STRING' {aka 'struct asn1_string_st'} 256 | if (a->length == (int)blen && !memcmp(a->data, b, blen)) | ^~ hostname.c: In function 'do_x509_check': hostname.c:338:14: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 338 | name = X509_get_subject_name(x); | ^ hostname.c:343:20: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 343 | ne = X509_NAME_get_entry(name, i); | ^ hostname.c:344:21: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 344 | str = X509_NAME_ENTRY_get_data(ne); | ^ shim.c: In function 'X_SSLv3_method': shim.c:484:16: error: implicit declaration of function 'SSLv3_method'; did you mean 'SSLv23_method'? [-Wimplicit-function-declaration] 484 | return SSLv3_method(); | ^~~~~~~~~~~~ | SSLv23_method shim.c:484:16: error: returning 'int' from a function with return type 'const SSL_METHOD *' {aka 'const struct ssl_method_st *'} makes pointer from integer without a cast [-Wint-conversion] 484 | return SSLv3_method(); | ^~~~~~~~~~~~~~ shim.c: In function 'X_TLSv1_method': shim.c:491:16: error: implicit declaration of function 'TLSv1_method'; did you mean 'X_TLSv1_method'? [-Wimplicit-function-declaration] 491 | return TLSv1_method(); | ^~~~~~~~~~~~ | X_TLSv1_method shim.c:491:16: error: returning 'int' from a function with return type 'const SSL_METHOD *' {aka 'const struct ssl_method_st *'} makes pointer from integer without a cast [-Wint-conversion] 491 | return TLSv1_method(); | ^~~~~~~~~~~~~~ shim.c: In function 'X_TLSv1_1_method': shim.c:496:16: error: implicit declaration of function 'TLSv1_1_method'; did you mean 'X_TLSv1_1_method'? [-Wimplicit-function-declaration] 496 | return TLSv1_1_method(); | ^~~~~~~~~~~~~~ | X_TLSv1_1_method shim.c:496:16: error: returning 'int' from a function with return type 'const SSL_METHOD *' {aka 'const struct ssl_method_st *'} makes pointer from integer without a cast [-Wint-conversion] 496 | return TLSv1_1_method(); | ^~~~~~~~~~~~~~~~ shim.c: In function 'X_TLSv1_2_method': shim.c:504:16: error: implicit declaration of function 'TLSv1_2_method'; did you mean 'X_TLSv1_2_method'? [-Wimplicit-function-declaration] 504 | return TLSv1_2_method(); | ^~~~~~~~~~~~~~ | X_TLSv1_2_method shim.c:504:16: error: returning 'int' from a function with return type 'const SSL_METHOD *' {aka 'const struct ssl_method_st *'} makes pointer from integer without a cast [-Wint-conversion] 504 | return TLSv1_2_method(); | ^~~~~~~~~~~~~~~~ This error blocks the update to OpenSSL 4.0.2 in buildroot. Upstream rewrote the package in c++ in version 4.0 and will not provide updates for the version used in buildroot: https://hub.mender.io/t/mender-to-rewrite-client-using-c-and-retain-go-for-its-backend/5332 https://gitlab.com/buildroot.org/buildroot/-/commit/67c6d1b12c430313c492dc66b2280d447917feb5 To not block the OpenSSL bump we remove the mender package and its dependencies. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Cc: Adam Duskett <adam.duskett@amarulasolutions.com> (see response from Adam: https://lists.buildroot.org/pipermail/buildroot/2026-September/809419.html) Cc: Angelo Compagnucci <angelo.compagnucci@gmail.com> --- .checkpackageignore | 2 - Config.in.legacy | 35 +++ DEVELOPERS | 3 - board/mender/x86_64/genimage-efi.cfg | 43 --- board/mender/x86_64/linux.config | 64 ----- board/mender/x86_64/mender_grubenv_defines | 25 -- board/mender/x86_64/overlay/etc/fstab | 7 - .../x86_64/overlay/etc/mender/mender.conf | 11 - board/mender/x86_64/post-build.sh | 48 ---- board/mender/x86_64/post-image-efi.sh | 92 ------- board/mender/x86_64/readme.txt | 69 ----- configs/mender_x86_64_efi_defconfig | 54 ---- package/Config.in | 4 - package/Config.in.host | 1 - package/mender-artifact/Config.in.host | 19 -- package/mender-artifact/mender-artifact.hash | 106 -------- package/mender-artifact/mender-artifact.mk | 118 --------- package/mender-connect/Config.in | 34 --- package/mender-connect/S43mender-connect | 53 ---- package/mender-connect/mender-connect.hash | 35 --- package/mender-connect/mender-connect.mk | 60 ----- package/mender-grubenv/Config.in | 43 --- package/mender-grubenv/mender-grubenv.hash | 3 - package/mender-grubenv/mender-grubenv.mk | 90 ------- package/mender-update-modules/Config.in | 250 ------------------ .../mender-update-modules.hash | 3 - .../mender-update-modules.mk | 77 ------ package/mender/Config.in | 45 ---- package/mender/S42mender | 44 --- package/mender/device_type | 1 - package/mender/mender-client.service | 13 - package/mender/mender.conf | 11 - package/mender/mender.hash | 47 ---- package/mender/mender.mk | 110 -------- package/mender/readme.txt | 132 --------- package/mender/server.crt | 22 -- support/testing/tests/package/test_mender.py | 72 ----- .../tests/package/test_mender/post-build.sh | 25 -- .../rootfs-overlay/etc/mender/artifact_info | 1 - .../rootfs-overlay/usr/bin/fw_printenv | 6 - 40 files changed, 35 insertions(+), 1843 deletions(-) delete mode 100644 board/mender/x86_64/genimage-efi.cfg delete mode 100644 board/mender/x86_64/linux.config delete mode 100644 board/mender/x86_64/mender_grubenv_defines delete mode 100644 board/mender/x86_64/overlay/etc/fstab delete mode 100644 board/mender/x86_64/overlay/etc/mender/mender.conf delete mode 100755 board/mender/x86_64/post-build.sh delete mode 100755 board/mender/x86_64/post-image-efi.sh delete mode 100644 board/mender/x86_64/readme.txt delete mode 100644 configs/mender_x86_64_efi_defconfig delete mode 100644 package/mender-artifact/Config.in.host delete mode 100644 package/mender-artifact/mender-artifact.hash delete mode 100644 package/mender-artifact/mender-artifact.mk delete mode 100644 package/mender-connect/Config.in delete mode 100644 package/mender-connect/S43mender-connect delete mode 100644 package/mender-connect/mender-connect.hash delete mode 100644 package/mender-connect/mender-connect.mk delete mode 100644 package/mender-grubenv/Config.in delete mode 100644 package/mender-grubenv/mender-grubenv.hash delete mode 100644 package/mender-grubenv/mender-grubenv.mk delete mode 100644 package/mender-update-modules/Config.in delete mode 100644 package/mender-update-modules/mender-update-modules.hash delete mode 100644 package/mender-update-modules/mender-update-modules.mk delete mode 100644 package/mender/Config.in delete mode 100644 package/mender/S42mender delete mode 100644 package/mender/device_type delete mode 100644 package/mender/mender-client.service delete mode 100644 package/mender/mender.conf delete mode 100644 package/mender/mender.hash delete mode 100644 package/mender/mender.mk delete mode 100644 package/mender/readme.txt delete mode 100644 package/mender/server.crt delete mode 100644 support/testing/tests/package/test_mender.py delete mode 100755 support/testing/tests/package/test_mender/post-build.sh delete mode 100644 support/testing/tests/package/test_mender/rootfs-overlay/etc/mender/artifact_info delete mode 100755 support/testing/tests/package/test_mender/rootfs-overlay/usr/bin/fw_printenv diff --git a/.checkpackageignore b/.checkpackageignore index 4868126fc7..04717ed2af 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -103,7 +103,6 @@ configs/imx6ulpico_defconfig lib_defconfig.ForceCheckHash configs/imx7dpico_defconfig lib_defconfig.ForceCheckHash configs/imx8mqevk_defconfig lib_defconfig.ForceCheckHash configs/kontron_bl_imx8mm_defconfig lib_defconfig.ForceCheckHash -configs/mender_x86_64_efi_defconfig lib_defconfig.ForceCheckHash configs/microchip_sam9x60ek_mmc_defconfig lib_defconfig.ForceCheckHash configs/microchip_sam9x60ek_mmc_dev_defconfig lib_defconfig.ForceCheckHash configs/microchip_sama5d27_wlsom1_ek_mmc_defconfig lib_defconfig.ForceCheckHash @@ -592,7 +591,6 @@ package/matchbox-startup-monitor/0001-true-false.patch lib_patch.Upstream package/matchbox/0001-defaulttheme.patch lib_patch.Upstream package/matchbox/0002-src-Fix-build-with-gcc-10.patch lib_patch.Upstream package/memstat/0001-PATH_MAX.patch lib_patch.Upstream -package/mender-connect/S43mender-connect Shellcheck package/menu-cache/0001-Support-gcc10-compilation.patch lib_patch.Upstream package/mesa3d-demos/0001-demos-makes-opengl-an-optional-component.patch lib_patch.Upstream package/meson-tools/0001-amlbootenc-gxl-remove-non-std-C-convention-in-for.patch lib_patch.Upstream diff --git a/Config.in.legacy b/Config.in.legacy index 6c222c0e57..a75343cfbe 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -146,6 +146,41 @@ endif comment "Legacy options removed in 2026.11" +config BR2_PACKAGE_MENDER + bool "mender has been removed" + select BR2_LEGACY + help + The mender packages have been removed because they are + incompatible with OpenSSL >= 4.x + +config BR2_PACKAGE_MENDER_UPDATE_MODULES + bool "mender-update-modules has been removed" + select BR2_LEGACY + help + The mender packages have been removed because they are + incompatible with OpenSSL >= 4.x + +config BR2_PACKAGE_MENDER_GRUBENV + bool "mender-grubenv has been removed" + select BR2_LEGACY + help + The mender packages have been removed because they are + incompatible with OpenSSL >= 4.x + +config BR2_PACKAGE_MENDER_CONNECT + bool "mender-connect has been removed" + select BR2_LEGACY + help + The mender packages have been removed because they are + incompatible with OpenSSL >= 4.x + +config BR2_PACKAGE_HOST_MENDER_ARTIFACT + bool "host mender-artifact has been removed" + select BR2_LEGACY + help + The mender packages have been removed because they are + incompatible with OpenSSL >= 4.x + config BR2_BINUTILS_VERSION_2_44_X bool "binutils 2.44 has been removed" select BR2_LEGACY diff --git a/DEVELOPERS b/DEVELOPERS index 51b939542d..505952b399 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -39,7 +39,6 @@ F: package/flutter-packages/flutter-rfw-local-example/ F: package/flutter-pi/ F: package/flutter-sdk-bin/ F: package/ivi-homescreen/ -F: package/mender-update-modules/ F: support/testing/tests/package/test_flutter.py N: Adam Heinrich <adam@adamh.cz> @@ -239,8 +238,6 @@ F: package/jq/ F: package/libapparmor/ F: package/libb64/ F: package/libdill/ -F: package/mender/ -F: package/mender-artifact/ F: package/mono/ F: package/mono-gtksharp3/ F: package/monolite/ diff --git a/board/mender/x86_64/genimage-efi.cfg b/board/mender/x86_64/genimage-efi.cfg deleted file mode 100644 index 9c2723d8fb..0000000000 --- a/board/mender/x86_64/genimage-efi.cfg +++ /dev/null @@ -1,43 +0,0 @@ -image efi-part.vfat { - vfat { - file EFI { - image = "efi-part/EFI" - } - file grub-mender-grubenv { - image = "efi-part/grub-mender-grubenv" - } - file bzImage { - image = "bzImage" - } - } - - size = 16M -} - -image disk.img { - hdimage { - partition-table-type = "gpt" - } - - partition boot { - partition-type-uuid = U - offset = 32K - image = "efi-part.vfat" - bootable = true - } - - partition roota { - partition-type-uuid = 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 - image = "rootfs.ext2" - } - - partition rootb { - partition-type-uuid = 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 - image = "rootfs.ext2" - } - - partition data { - partition-type-uuid = L - image = "data-part.ext4" - } -} diff --git a/board/mender/x86_64/linux.config b/board/mender/x86_64/linux.config deleted file mode 100644 index f17fc18edb..0000000000 --- a/board/mender/x86_64/linux.config +++ /dev/null @@ -1,64 +0,0 @@ -CONFIG_SYSVIPC=y -CONFIG_SMP=y -CONFIG_HYPERVISOR_GUEST=y -CONFIG_PARAVIRT=y -CONFIG_EFI=y -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_INET=y -CONFIG_NETFILTER=y -CONFIG_IP_NF_IPTABLES=y -CONFIG_IP_NF_FILTER=y -CONFIG_CFG80211=m -CONFIG_CFG80211_WEXT=y -CONFIG_MAC80211=m -CONFIG_PCI=y -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y -CONFIG_VIRTIO_BLK=y -CONFIG_BLK_DEV_SD=y -CONFIG_SCSI_VIRTIO=y -CONFIG_ATA=y -CONFIG_NETDEVICES=y -CONFIG_VIRTIO_NET=y -CONFIG_ATH9K=m -CONFIG_ATH9K_HTC=m -CONFIG_CARL9170=m -CONFIG_ATH10K=m -CONFIG_RT2X00=m -CONFIG_RT73USB=m -CONFIG_RT2800USB=m -CONFIG_RT2800USB_RT3573=y -CONFIG_RT2800USB_RT53XX=y -CONFIG_RT2800USB_RT55XX=y -# CONFIG_RTL_CARDS is not set -CONFIG_RTL8XXXU=m -CONFIG_INPUT_EVDEV=y -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_VIRTIO_CONSOLE=y -CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_DRM=y -CONFIG_DRM_VIRTIO_GPU=y -CONFIG_FB_VESA=y -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_USB=y -CONFIG_USB_XHCI_HCD=y -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_STORAGE=y -CONFIG_VIRTIO_PCI=y -CONFIG_VIRTIO_BALLOON=y -CONFIG_VIRTIO_INPUT=y -CONFIG_VIRTIO_MMIO=y -CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y -CONFIG_EXT4_FS=y -CONFIG_FUSE_FS=y -CONFIG_VFAT_FS=y -CONFIG_SQUASHFS=y -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_ISO8859_1=y -CONFIG_UNWINDER_FRAME_POINTER=y diff --git a/board/mender/x86_64/mender_grubenv_defines b/board/mender/x86_64/mender_grubenv_defines deleted file mode 100644 index 77f68fe6b2..0000000000 --- a/board/mender/x86_64/mender_grubenv_defines +++ /dev/null @@ -1,25 +0,0 @@ -################################################################################ -# Mandatory -################################################################################ -# Warning: This file is an example and should be customized to fit your needs! - -# Partition index of root filesystem A -mender_rootfsa_part=2 - -# Partition index of root filesystem B -mender_rootfsb_part=3 - -# Device file corresponding to the root filesystem partitions, without index. -mender_kernel_root_base=/dev/vda - -# Name of the storage device containing root filesystem partitions in GRUB -# format. -mender_grub_storage_device=hd0 - -# Type of kernel (bzImage or zImage) -kernel_imagetype=bzImage - -# Type of initrd image. -# Note: An initrd image is not strictly necessary, and the system will boot and -# update without a initrd image. -# initrd_imagetype=initrd.img diff --git a/board/mender/x86_64/overlay/etc/fstab b/board/mender/x86_64/overlay/etc/fstab deleted file mode 100644 index 45a7ba0260..0000000000 --- a/board/mender/x86_64/overlay/etc/fstab +++ /dev/null @@ -1,7 +0,0 @@ -# <file system> <mount pt> <type> <options> <dump> <pass> -/dev/root / ext4 rw,noauto 0 1 -/dev/vda1 /boot vfat defaults 0 0 -/dev/vda4 /var/lib/mender ext4 rw,relatime 0 0 -proc /proc proc defaults 0 0 -devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 -sysfs /sys sysfs defaults 0 0 diff --git a/board/mender/x86_64/overlay/etc/mender/mender.conf b/board/mender/x86_64/overlay/etc/mender/mender.conf deleted file mode 100644 index 5f423fb2cb..0000000000 --- a/board/mender/x86_64/overlay/etc/mender/mender.conf +++ /dev/null @@ -1,11 +0,0 @@ -{ - "InventoryPollIntervalSeconds": 1800, - "UpdatePollIntervalSeconds": 1800, - "RetryPollIntervalSeconds": 300, - "RootfsPartA": "/dev/vda2", - "RootfsPartB": "/dev/vda3", - "ServerCertificate": "/etc/mender/server.crt", - "ServerURL": "https://docker.mender.io", - "TenantToken": "dummy", - "DeviceTypeFile": "/etc/mender/device_type" -} diff --git a/board/mender/x86_64/post-build.sh b/board/mender/x86_64/post-build.sh deleted file mode 100755 index 9e909e9281..0000000000 --- a/board/mender/x86_64/post-build.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash -set -e -DEVICE_TYPE="buildroot-x86_64" - -parse_args() { - local o O opts - o='a:o:d:' - O='artifact-name:,data-part-size:,device-type:' - opts="$(getopt -o "${o}" -l "${O}" -- "${@}")" - eval set -- "${opts}" - while [ ${#} -gt 0 ]; do - case "${1}" in - (-o|--data-part-size) - # Ignored to have same options as other scripts - shift 2 - ;; - (-d|--device-type) - DEVICE_TYPE="${2}"; shift 2 - ;; - (-a|--artifact-name) - # Ignored to have same options as other scripts - shift 2 - ;; - (--) - shift; break - ;; - esac - done -} - -# Create a persistent directory to mount the data partition at. -mender_fixup() { - pushd "${TARGET_DIR}" - # The common paradigm is to have the persistent data volume at /data for mender. - if [[ ! -L data ]]; then - ln -s var/lib/mender data - fi - - popd -} - -main() { - parse_args "${@}" - mender_fixup - echo "device_type=${DEVICE_TYPE}" > "${TARGET_DIR}/etc/mender/device_type" -} - -main "${@}" diff --git a/board/mender/x86_64/post-image-efi.sh b/board/mender/x86_64/post-image-efi.sh deleted file mode 100755 index a3e262f8fe..0000000000 --- a/board/mender/x86_64/post-image-efi.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/env bash -set -e -BOARD_DIR="$(realpath "$(dirname "$0")")" -DATA_PART="${BINARIES_DIR}"/data-part -DATA_PART_SIZE="32M" -DEVICE_TYPE="buildroot-x86_64" -ARTIFACT_NAME="1.0" - -# Parse arguments. -parse_args() { - local o O opts - o='a:o:d:' - O='artifact-name:,data-part-size:,device-type:' - opts="$(getopt -o "${o}" -l "${O}" -- "${@}")" - eval set -- "${opts}" - while [ ${#} -gt 0 ]; do - case "${1}" in - (-o|--data-part-size) - DATA_PART_SIZE="${2}"; shift 2 - ;; - (-d|--device-type) - DEVICE_TYPE="${2}"; shift 2 - ;; - (-a|--artifact-name) - ARTIFACT_NAME="${2}"; shift 2 - ;; - (--) - shift; break - ;; - esac - done -} - -# Create the data partition -make_data_partition() { - "${HOST_DIR}/sbin/mkfs.ext4" \ - -d "${DATA_PART}" \ - -F \ - -r 1 \ - -N 0 \ - -m 5 \ - -L "data" \ - "${BINARIES_DIR}/data-part.ext4" "${DATA_PART_SIZE}" -} - -# Generate a mender bootstrap artifact. -# See https://github.com/mendersoftware/mender/blob/3.5.3/Documentation/automatic-bootstrap-artifact.md -generate_mender_bootstrap_artifact() { - - rm -rf "${DATA_PART}" - mkdir -p "${DATA_PART}" - img_checksum=$(sha256sum "${BINARIES_DIR}"/rootfs.ext4 |awk '{print $1}') - - "${HOST_DIR}"/bin/mender-artifact \ - write bootstrap-artifact \ - --compression none \ - --artifact-name "${ARTIFACT_NAME}" \ - --device-type "${DEVICE_TYPE}" \ - --provides "rootfs-image.version:${ARTIFACT_NAME}" \ - --provides "rootfs-image.checksum:${img_checksum}" \ - --clears-provides "rootfs-image.*" \ - --output-path "${DATA_PART}"/bootstrap.mender \ - --version 3 -} - -# Create a mender image. -generate_mender_image() { - echo "Creating ${BINARIES_DIR}/${DEVICE_TYPE}-${ARTIFACT_NAME}.mender" - "${HOST_DIR}/bin/mender-artifact" \ - write rootfs-image \ - --compression none \ - -t "${DEVICE_TYPE}" \ - -n "${BR2_VERSION}" \ - -f "${BINARIES_DIR}/rootfs.ext2" \ - -o "${BINARIES_DIR}/${DEVICE_TYPE}-${ARTIFACT_NAME}.mender" -} - -generate_image() { - support/scripts/genimage.sh -c "${BOARD_DIR}/genimage-efi.cfg" -} - -# Main function. -main() { - parse_args "${@}" - generate_mender_bootstrap_artifact - make_data_partition - generate_image - generate_mender_image - exit $? -} - -main "${@}" diff --git a/board/mender/x86_64/readme.txt b/board/mender/x86_64/readme.txt deleted file mode 100644 index 01a0254511..0000000000 --- a/board/mender/x86_64/readme.txt +++ /dev/null @@ -1,69 +0,0 @@ -Mender UEFI PC sample config -===================== - -1. Build - - $ make mender_x86_64_efi_defconfig - - Add any additional packages required. Update the files in board/mender/x86_64 - and change /dev/vda to what is relevant for your platform: typically - /dev/mmcblk0p for eMMC and /dev/sda for USB or SATA. - - $ make - -2. Write the image - - The build process will create a all-in-one image called disk.img in - output/images. - - Write the image to a pendrive: - - $ dd if=output/images/disk.img of=/dev/sdX; sync - - Once the process is complete, insert it into the target PC and boot. - - Remember that if said PC has another boot device you might need to - select this alternative for it to boot. - - You might need to disable Secure Boot from the setup as well. - -3. Enjoy - -Emulation in qemu -======================== - -Run the emulation with: - -qemu-system-x86_64 \ - -M pc \ - -drive file=output/images/disk.img,if=virtio,format=raw \ - -net nic,model=virtio \ - -net user \ - -serial stdio \ - -bios </path/to/OVMF_CODE.fd> - -Note that </path/to/OVMF.fd> needs to point to a valid x86_64 UEFI -firmware image for qemu. It may be provided by your distribution as an -edk2 or OVMF package, in a path such as /usr/share/edk2/ovmf/OVMF_CODE.fd. - -Optional arguments: - - -enable-kvm to speed up qemu. This requires a loaded kvm module on the host - system. - - Add -smp N to emulate an SMP system with N CPUs. - -The login prompt will appear in the serial window. - -Tested with QEMU 4.1.1 on Fedora 31 - -Creating a mender-artifact -======================== - -The mender artifact is created in output/images/buildroot-x86_64-1.0.mender - -You may wish to change --artifact-name=1.0 to a name that best suits your -particular needs, as this option changes the mender artifact name. - -Using mender -======================== -Please read the mender documentation at: -https://docs.mender.io diff --git a/configs/mender_x86_64_efi_defconfig b/configs/mender_x86_64_efi_defconfig deleted file mode 100644 index 219f02839c..0000000000 --- a/configs/mender_x86_64_efi_defconfig +++ /dev/null @@ -1,54 +0,0 @@ -BR2_x86_64=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y -BR2_INIT_SYSV=y -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" -BR2_ROOTFS_OVERLAY="board/mender/x86_64/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="board/mender/x86_64/post-build.sh" -BR2_ROOTFS_POST_IMAGE_SCRIPT="board/mender/x86_64/post-image-efi.sh" -BR2_ROOTFS_POST_SCRIPT_ARGS="--data-part-size=32M --device-type=buildroot-x86_64 --artifact-name=1.0" -BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.28" -BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/mender/x86_64/linux.config" -BR2_LINUX_KERNEL_INSTALL_TARGET=y -BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y -BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y -BR2_PACKAGE_LINUX_FIRMWARE=y -BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y -BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y -BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y -BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y -BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y -BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y -BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y -BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y -BR2_PACKAGE_ACPID=y -BR2_PACKAGE_CONNMAN=y -BR2_PACKAGE_CONNMAN_WIFI=y -BR2_PACKAGE_CONNMAN_CLIENT=y -BR2_PACKAGE_MENDER=y -BR2_PACKAGE_MENDER_GRUBENV=y -BR2_PACKAGE_MENDER_GRUBENV_DEFINES="board/mender/x86_64/mender_grubenv_defines" -BR2_TARGET_ROOTFS_EXT2=y -BR2_TARGET_ROOTFS_EXT2_4=y -BR2_TARGET_ROOTFS_EXT2_SIZE="128M" -# BR2_TARGET_ROOTFS_TAR is not set -BR2_TARGET_GRUB2=y -BR2_TARGET_GRUB2_X86_64_EFI=y -BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop loadenv hashsum echo halt gcry_sha256 test regexp sleep" -BR2_TARGET_GRUB2_INSTALL_TOOLS=y -BR2_PACKAGE_HOST_DOSFSTOOLS=y -BR2_PACKAGE_HOST_GENIMAGE=y -BR2_PACKAGE_HOST_MENDER_ARTIFACT=y -BR2_PACKAGE_HOST_MTOOLS=y diff --git a/package/Config.in b/package/Config.in index 243b390d1c..f2d5c4a5cb 100644 --- a/package/Config.in +++ b/package/Config.in @@ -2850,10 +2850,6 @@ menu "System tools" source "package/libvirt/Config.in" source "package/lxc/Config.in" source "package/makedumpfile/Config.in" - source "package/mender/Config.in" - source "package/mender-connect/Config.in" - source "package/mender-grubenv/Config.in" - source "package/mender-update-modules/Config.in" source "package/mfoc/Config.in" source "package/moby-buildkit/Config.in" source "package/mokutil/Config.in" diff --git a/package/Config.in.host b/package/Config.in.host index 595caf9e7f..dfd9317e8a 100644 --- a/package/Config.in.host +++ b/package/Config.in.host @@ -66,7 +66,6 @@ menu "Host utilities" source "package/lpc3250loader/Config.in.host" source "package/lttng-babeltrace/Config.in.host" source "package/lzma-alone/Config.in.host" - source "package/mender-artifact/Config.in.host" source "package/meson-tools/Config.in.host" source "package/mfgtools/Config.in.host" source "package/microchip-hss-payload-generator/Config.in.host" diff --git a/package/mender-artifact/Config.in.host b/package/mender-artifact/Config.in.host deleted file mode 100644 index 39353b23e7..0000000000 --- a/package/mender-artifact/Config.in.host +++ /dev/null @@ -1,19 +0,0 @@ -config BR2_PACKAGE_HOST_MENDER_ARTIFACT - bool "host mender-artifact" - depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS - select BR2_PACKAGE_HOST_GO - help - The mender-artifact tool is a CLI implementation of the - Mender artifacts library. - - A Mender artifact can be recognized by its .mender suffix. - Mender artifacts can contain binaries, metadata, checksums, - signatures and scripts that are used during a deployment. - The artifact format acts as a wrapper, and uses the tar - format to bundle several files into one. - - In its simplest form, an artifact contains just a rootfs - image, along with its checksum, id and device type - compatibility. - - https://github.com/mendersoftware/mender-artifact diff --git a/package/mender-artifact/mender-artifact.hash b/package/mender-artifact/mender-artifact.hash deleted file mode 100644 index 5dffdbb7df..0000000000 --- a/package/mender-artifact/mender-artifact.hash +++ /dev/null @@ -1,106 +0,0 @@ -# Locally computed: -sha256 c7002052028496f230c34ef6f0488bf5e8ca32b075b7a96555532fe928aed984 mender-artifact-4.4.1-go2.tar.gz -sha256 0e7c48f6471ca81a2fce9e3f605dffeb0385afd4dc3b5eb7f4e86ece4aa9b068 LIC_FILES_CHKSUM.sha256 - -# License hash extracted from LIC_FILES_CHKSUM.sha256 using the -# following command: -# -# sed '/^[A-Za-z0-9_]/s/^/sha256 /' LIC_FILES_CHKSUM.sha256 - -# Apache 2.0 licenses. -sha256 d7e8fd4ad05371007d60285c309ba7a7ce3e61029b843f949fbb9ec79dc9eb47 LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/github.com/minio/sha256-simd/LICENSE -sha256 132fb47b89947cd5f98e380186bc412af5561c70669d37d3a83b36f03a0ddae5 vendor/github.com/mendersoftware/progressbar/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/google.golang.org/genproto/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/google.golang.org/genproto/googleapis/api/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/google.golang.org/grpc/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/cloud.google.com/go/kms/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/cloud.google.com/go/iam/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/cloud.google.com/go/compute/metadata/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/cloud.google.com/go/auth/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/cloud.google.com/go/auth/oauth2adapt/LICENSE -sha256 73ba74dfaa520b49a401b5d21459a8523a146f3b7518a833eea5efa85130bf68 vendor/github.com/mendersoftware/openssl/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/github.com/googleapis/enterprise-certificate-proxy/LICENSE -sha256 dd26a7abddd02e2d0aba97805b31f248ef7835d9e10da289b22e3b8ab78b324d vendor/github.com/go-jose/go-jose/v3/json/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/github.com/go-jose/go-jose/v3/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/github.com/google/s2a-go/LICENSE.md -sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 vendor/github.com/Keyfactor/signserver-go-client-sdk/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/github.com/kylelemons/godebug/LICENSE -sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 vendor/go.opentelemetry.io/otel/trace/LICENSE -sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 vendor/go.opentelemetry.io/otel/LICENSE -sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 vendor/go.opentelemetry.io/otel/metric/LICENSE -sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/LICENSE -sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/LICENSE -sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 vendor/go.opentelemetry.io/auto/sdk/LICENSE -sha256 b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1 vendor/github.com/go-logr/logr/LICENSE -sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 vendor/github.com/go-logr/stdr/LICENSE -# -# BSD 2 Clause licenses. -sha256 8d427fd87bc9579ea368fde3d49f9ca22eac857f91a9dec7e3004bdfab7dee86 vendor/github.com/pkg/errors/LICENSE -sha256 4801bb0c5d70b980b3e1f63d1d2df8d84fec22548e3d73f03a68df1fb808791f vendor/github.com/pkg/browser/LICENSE -# -# BSD 3 Clause licenses. -sha256 2eb550be6801c1ea434feba53bf6d12e7c71c90253e0a9de4a4f46cf88b56477 vendor/github.com/pmezard/go-difflib/LICENSE -sha256 911f8f5782931320f5b8d1160a76365b83aea6447ee6c04fa6d5591467db9dad vendor/golang.org/x/sys/LICENSE -sha256 0d9e582ee4bff57bf1189c9e514e6da7ce277f9cd3bc2d488b22fbb39a6d87cf vendor/github.com/klauspost/compress/LICENSE -sha256 75e1ca97a84a9da6051dee0114333388216f2c4a5a028296b882ff3d57274735 vendor/github.com/russross/blackfriday/v2/LICENSE.txt -sha256 911f8f5782931320f5b8d1160a76365b83aea6447ee6c04fa6d5591467db9dad vendor/golang.org/x/net/LICENSE -sha256 911f8f5782931320f5b8d1160a76365b83aea6447ee6c04fa6d5591467db9dad vendor/golang.org/x/oauth2/LICENSE -sha256 911f8f5782931320f5b8d1160a76365b83aea6447ee6c04fa6d5591467db9dad vendor/golang.org/x/text/LICENSE -sha256 911f8f5782931320f5b8d1160a76365b83aea6447ee6c04fa6d5591467db9dad vendor/golang.org/x/crypto/LICENSE -sha256 911f8f5782931320f5b8d1160a76365b83aea6447ee6c04fa6d5591467db9dad vendor/golang.org/x/time/LICENSE -sha256 911f8f5782931320f5b8d1160a76365b83aea6447ee6c04fa6d5591467db9dad vendor/golang.org/x/sync/LICENSE -sha256 110244b02140866ee37d17fa7449436a377ec3b85a481fbb208f4c87964382de vendor/google.golang.org/api/LICENSE -sha256 fc0a2f71df4e8f047902da53d1f85301be43e0f360fc167057a2d04658ed2ba9 vendor/google.golang.org/api/internal/third_party/uritemplates/LICENSE -sha256 4835612df0098ca95f8e7d9e3bffcb02358d435dbb38057c844c99d7f725eb20 vendor/google.golang.org/protobuf/LICENSE -sha256 b95218cd9607855a6536384c0262922b30a0c2bf56e4ced790240f3a3bac4722 vendor/github.com/googleapis/gax-go/v2/LICENSE -sha256 f69f157b0be75da373605dbc8bbf142e8924ee82d8f44f11bcaf351335bf98cf vendor/github.com/klauspost/compress/internal/snapref/LICENSE -sha256 701cbcc144a7c865b072f27547e66ddbf17ac44a3bd21f71149ace02518f107c vendor/github.com/ulikunitz/xz/LICENSE -sha256 0a8d61ed3cbfd5312326e8126c31ce9c627a283adc99131b56896d29ada04b2d vendor/github.com/google/uuid/LICENSE -# -# ISC licenses. -sha256 1b93a317849ee09d3d7e4f1d20c2b78ddb230b4becb12d7c224c927b9d470251 vendor/github.com/davecgh/go-spew/LICENSE -sha256 480be5fb1be03ff19fd71d863f453f16262e98d4e568f5bccfcb7aa3ccf8cf0d vendor/github.com/decred/dcrd/dcrec/secp256k1/v4/LICENSE -# -# MIT licenses. -sha256 f8e536c1c7b695810427095dc85f5f80d44ff7c10535e8a9486cf393e2599189 vendor/github.com/stretchr/testify/LICENSE -sha256 2be6c75f36f3022ea015fea7b1b7135ce67d477ee721d0fc6c98678badb13b8b vendor/github.com/urfave/cli/LICENSE -sha256 51a0c9ec7f8b7634181b8d4c03e5b5d204ac21d6e72f46c313973424664b2e6b vendor/github.com/sirupsen/logrus/LICENSE -sha256 7709cc030f078b17809884f92f33a2016944e1180312dc3f1371b02313d313ed vendor/github.com/klauspost/pgzip/LICENSE -sha256 a55959c4e3e8917bfa857359bb641115336276a6cc97408fd8197e079fb18470 vendor/github.com/cpuguy83/go-md2man/v2/LICENSE.md -sha256 d18f6323b71b0b768bb5e9616e36da390fbd39369a81807cca352de4e4e6aa0b vendor/gopkg.in/yaml.v3/LICENSE -sha256 08eab1118c80885fa1fa6a6dd7303f65a379fcb3733e063d20d1bbc2c76e6fa1 vendor/github.com/mattn/go-isatty/LICENSE -sha256 5d966570d7a442d4e969892860a914e542c97f262c873baee8f0aa48e1f40212 vendor/github.com/klauspost/cpuid/v2/LICENSE -sha256 22adc4abdece712a737573672f082fd61ac2b21df878efb87ffcff4354a07f26 vendor/github.com/mitchellh/go-homedir/LICENSE -sha256 22adc4abdece712a737573672f082fd61ac2b21df878efb87ffcff4354a07f26 vendor/github.com/mitchellh/mapstructure/LICENSE -sha256 38049e50b486f5394e40b786388f4a006401996e46c7c1cd18925afe7c3b4e34 vendor/github.com/ryanuber/go-glob/LICENSE -sha256 5c0476add4c38b55d0ed5ac11b85e00c38f26e1caee20dfe3ab58190103d1fbc vendor/github.com/cenkalti/backoff/v3/LICENSE -sha256 f566a9f97bacdaf00d9f21dd991e81dc11201c4e016c86b470799429a1c9a79c vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt -sha256 646f8936b8ddcd14e13e578ff6857e368780b0d1a4f6066bee89211923a373e2 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/LICENSE.txt -sha256 646f8936b8ddcd14e13e578ff6857e368780b0d1a4f6066bee89211923a373e2 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/LICENSE.txt -sha256 a096a435e19bb6b631da46992c011a39be563e97ce7366879ad516c772904632 vendor/github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal/LICENSE.txt -sha256 a096a435e19bb6b631da46992c011a39be563e97ce7366879ad516c772904632 vendor/github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys/LICENSE.txt -sha256 646f8936b8ddcd14e13e578ff6857e368780b0d1a4f6066bee89211923a373e2 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/LICENSE.txt -sha256 9906940f61b1f0b533fa7d99baf55178b2808fbe113ea51dfbfad8572ccd5f2b vendor/github.com/AzureAD/microsoft-authentication-library-for-go/LICENSE -sha256 a707cd425201945d57500566c47c74dc9fb8cd02ef91b9a761abddeb2401e6a7 vendor/github.com/goccy/go-json/LICENSE -sha256 fe26ca41577b9b2b4448050a24b25e5753af66b5d5945d5d36094e7790bfcb2f vendor/github.com/golang-jwt/jwt/v5/LICENSE -sha256 d5c8d4935994cfcfbc53d12fe756b28316858736d6e0a61acaff5fe4a84fca12 vendor/github.com/lestrrat-go/iter/LICENSE -sha256 b9b5b03485eb7446da7ecad22178664a53c7fcecceb74d69f905819a807d710e vendor/github.com/lestrrat-go/blackmagic/LICENSE -sha256 e148deed982672627e875fe0cb03b9aa0d3e315e0f59992973c3c34dbcf5f322 vendor/github.com/lestrrat-go/backoff/v2/LICENSE -sha256 d5c8d4935994cfcfbc53d12fe756b28316858736d6e0a61acaff5fe4a84fca12 vendor/github.com/lestrrat-go/httpcc/LICENSE -sha256 b9b5b03485eb7446da7ecad22178664a53c7fcecceb74d69f905819a807d710e vendor/github.com/lestrrat-go/option/LICENSE -sha256 0c4868a07b1c2dbb67c75767b4f1b2936c392d02ca2c7ee9827cac1a9d60ab1d vendor/github.com/lestrrat-go/jwx/LICENSE -# -# MPL-2.0 licenses. -sha256 60222c28c1a7f6a92c7df98e5c5f4459e624e6e285e0b9b94467af5f6ab3343d vendor/github.com/hashicorp/go-secure-stdlib/strutil/LICENSE -sha256 60222c28c1a7f6a92c7df98e5c5f4459e624e6e285e0b9b94467af5f6ab3343d vendor/github.com/hashicorp/go-secure-stdlib/parseutil/LICENSE -sha256 bef1747eda88b9ed46e94830b0d978c3499dad5dfe38d364971760881901dadd vendor/github.com/hashicorp/errwrap/LICENSE -sha256 bef1747eda88b9ed46e94830b0d978c3499dad5dfe38d364971760881901dadd vendor/github.com/hashicorp/hcl/LICENSE -sha256 60222c28c1a7f6a92c7df98e5c5f4459e624e6e285e0b9b94467af5f6ab3343d vendor/github.com/hashicorp/go-cleanhttp/LICENSE -sha256 60222c28c1a7f6a92c7df98e5c5f4459e624e6e285e0b9b94467af5f6ab3343d vendor/github.com/hashicorp/go-rootcerts/LICENSE -sha256 d6b1a865f1c8c697d343bd4e0ce61025f91898486a1f00d727f32e8644af77d3 vendor/github.com/hashicorp/go-retryablehttp/LICENSE -sha256 1f256ecad192880510e84ad60474eab7589218784b9a50bc7ceee34c2b91f1d5 vendor/github.com/hashicorp/go-sockaddr/LICENSE -sha256 d6b1a865f1c8c697d343bd4e0ce61025f91898486a1f00d727f32e8644af77d3 vendor/github.com/hashicorp/vault/api/LICENSE -sha256 a830016911a348a54e89bd54f2f8b0d8fffdeac20aecfba8e36ebbf38a03f5ff vendor/github.com/hashicorp/go-multierror/LICENSE -sha256 8108e14b5cb2b6bcd51583d3849ef0c2b5c4de61758256c20308bc70d1775dbb vendor/github.com/felixge/httpsnoop/LICENSE.txt diff --git a/package/mender-artifact/mender-artifact.mk b/package/mender-artifact/mender-artifact.mk deleted file mode 100644 index 9f235b55bd..0000000000 --- a/package/mender-artifact/mender-artifact.mk +++ /dev/null @@ -1,118 +0,0 @@ -################################################################################ -# -# host-mender-artifact -# -################################################################################ - -HOST_MENDER_ARTIFACT_VERSION = 4.4.1 -HOST_MENDER_ARTIFACT_SITE = $(call github,mendersoftware,mender-artifact,$(HOST_MENDER_ARTIFACT_VERSION)) -HOST_MENDER_ARTIFACT_LICENSE = Apache2.0, BSD-2-Clause, BSD-3-Clause, ISC, MIT, MPL-2.0 -# Vendor license paths generated with: -# awk '{print $2}' LIC_FILES_CHKSUM.sha256 | grep vendor -HOST_MENDER_ARTIFACT_LICENSE_FILES = \ - LICENSE \ - LIC_FILES_CHKSUM.sha256 \ - vendor/github.com/minio/sha256-simd/LICENSE \ - vendor/github.com/mendersoftware/progressbar/LICENSE \ - vendor/google.golang.org/genproto/LICENSE \ - vendor/google.golang.org/genproto/googleapis/api/LICENSE \ - vendor/google.golang.org/genproto/googleapis/rpc/LICENSE \ - vendor/google.golang.org/grpc/LICENSE \ - vendor/cloud.google.com/go/kms/LICENSE \ - vendor/cloud.google.com/go/iam/LICENSE \ - vendor/cloud.google.com/go/compute/metadata/LICENSE \ - vendor/cloud.google.com/go/auth/LICENSE \ - vendor/cloud.google.com/go/auth/oauth2adapt/LICENSE \ - vendor/github.com/mendersoftware/openssl/LICENSE \ - vendor/github.com/googleapis/enterprise-certificate-proxy/LICENSE \ - vendor/github.com/go-jose/go-jose/v3/json/LICENSE \ - vendor/github.com/go-jose/go-jose/v3/LICENSE \ - vendor/github.com/google/s2a-go/LICENSE.md \ - vendor/github.com/Keyfactor/signserver-go-client-sdk/LICENSE \ - vendor/github.com/kylelemons/godebug/LICENSE \ - vendor/go.opentelemetry.io/otel/trace/LICENSE \ - vendor/go.opentelemetry.io/otel/LICENSE \ - vendor/go.opentelemetry.io/otel/metric/LICENSE \ - vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/LICENSE \ - vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/LICENSE \ - vendor/go.opentelemetry.io/auto/sdk/LICENSE \ - vendor/github.com/go-logr/logr/LICENSE \ - vendor/github.com/go-logr/stdr/LICENSE \ - vendor/github.com/pkg/errors/LICENSE \ - vendor/github.com/pkg/browser/LICENSE \ - vendor/github.com/pmezard/go-difflib/LICENSE \ - vendor/golang.org/x/sys/LICENSE \ - vendor/github.com/klauspost/compress/LICENSE \ - vendor/github.com/russross/blackfriday/v2/LICENSE.txt \ - vendor/golang.org/x/net/LICENSE \ - vendor/golang.org/x/oauth2/LICENSE \ - vendor/golang.org/x/text/LICENSE \ - vendor/golang.org/x/crypto/LICENSE \ - vendor/golang.org/x/time/LICENSE \ - vendor/golang.org/x/sync/LICENSE \ - vendor/google.golang.org/api/LICENSE \ - vendor/google.golang.org/api/internal/third_party/uritemplates/LICENSE \ - vendor/google.golang.org/protobuf/LICENSE \ - vendor/github.com/googleapis/gax-go/v2/LICENSE \ - vendor/github.com/klauspost/compress/internal/snapref/LICENSE \ - vendor/github.com/ulikunitz/xz/LICENSE \ - vendor/github.com/google/uuid/LICENSE \ - vendor/github.com/davecgh/go-spew/LICENSE \ - vendor/github.com/decred/dcrd/dcrec/secp256k1/v4/LICENSE \ - vendor/github.com/stretchr/testify/LICENSE \ - vendor/github.com/urfave/cli/LICENSE \ - vendor/github.com/sirupsen/logrus/LICENSE \ - vendor/github.com/klauspost/pgzip/LICENSE \ - vendor/github.com/cpuguy83/go-md2man/v2/LICENSE.md \ - vendor/gopkg.in/yaml.v3/LICENSE \ - vendor/github.com/mattn/go-isatty/LICENSE \ - vendor/github.com/klauspost/cpuid/v2/LICENSE \ - vendor/github.com/mitchellh/go-homedir/LICENSE \ - vendor/github.com/mitchellh/mapstructure/LICENSE \ - vendor/github.com/ryanuber/go-glob/LICENSE \ - vendor/github.com/cenkalti/backoff/v3/LICENSE \ - vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt \ - vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/LICENSE.txt \ - vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/LICENSE.txt \ - vendor/github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal/LICENSE.txt \ - vendor/github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys/LICENSE.txt \ - vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/LICENSE.txt \ - vendor/github.com/AzureAD/microsoft-authentication-library-for-go/LICENSE \ - vendor/github.com/goccy/go-json/LICENSE \ - vendor/github.com/golang-jwt/jwt/v5/LICENSE \ - vendor/github.com/lestrrat-go/iter/LICENSE \ - vendor/github.com/lestrrat-go/blackmagic/LICENSE \ - vendor/github.com/lestrrat-go/backoff/v2/LICENSE \ - vendor/github.com/lestrrat-go/httpcc/LICENSE \ - vendor/github.com/lestrrat-go/option/LICENSE \ - vendor/github.com/lestrrat-go/jwx/LICENSE \ - vendor/github.com/hashicorp/go-secure-stdlib/strutil/LICENSE \ - vendor/github.com/hashicorp/go-secure-stdlib/parseutil/LICENSE \ - vendor/github.com/hashicorp/errwrap/LICENSE \ - vendor/github.com/hashicorp/hcl/LICENSE \ - vendor/github.com/hashicorp/go-cleanhttp/LICENSE \ - vendor/github.com/hashicorp/go-rootcerts/LICENSE \ - vendor/github.com/hashicorp/go-retryablehttp/LICENSE \ - vendor/github.com/hashicorp/go-sockaddr/LICENSE \ - vendor/github.com/hashicorp/vault/api/LICENSE \ - vendor/github.com/hashicorp/go-multierror/LICENSE \ - vendor/github.com/felixge/httpsnoop/LICENSE.txt - -HOST_MENDER_ARTIFACT_DEPENDENCIES = host-pkgconf host-openssl host-xz - -ifeq ($(BR2_PACKAGE_HOST_ZSTD),y) -HOST_MENDER_ARTIFACT_DEPENDENCIES += host-zstd -endif - -HOST_MENDER_ARTIFACT_GO_ENV += \ - PATH=$(BR_PATH) \ - PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ - PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ - PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \ - PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig" \ - PKG_CONFIG_PATH="$(HOST_DIR)/lib/pkgconfig" \ - PKG_CONFIG_SYSROOT_DIR="/" - -HOST_MENDER_ARTIFACT_LDFLAGS = -X github.com/mendersoftware/mender-artifact/cli.Version=$(HOST_MENDER_ARTIFACT_VERSION) - -$(eval $(host-golang-package)) diff --git a/package/mender-connect/Config.in b/package/mender-connect/Config.in deleted file mode 100644 index d478e468c2..0000000000 --- a/package/mender-connect/Config.in +++ /dev/null @@ -1,34 +0,0 @@ -config BR2_PACKAGE_MENDER_CONNECT - bool "mender-connect" - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS - depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, mender - depends on BR2_USE_WCHAR # libglib2 -> gettext - depends on BR2_USE_MMU # dbus -> fork() - select BR2_PACKAGE_DBUS # runtime - select BR2_PACKAGE_HOST_GO - select BR2_PACKAGE_LIBGLIB2 - select BR2_PACKAGE_MENDER # runtime - select BR2_PACKAGE_OPENSSL - help - mender-connect is a daemon responsible for handling - bidirectional (websocket) communication with the Mender - server. The daemon is responsible for implementing a range of - troubleshooting features to the device as well as several - enhancement to the mender-client. - - Mender Connect is loosely coupled with the Mender Client. The - main information passed between mender-client and - mender-connect is the device authorization status. Since only - accepted devices can interact with the Mender Server, the - Mender Client passes over DBus the authorization token which - Mender Connect uses to establish a Websocket connection to the - server. - - https://github.com/mendersoftware/mender-connect - -comment "mender-connect needs a toolchain w/ threads, wchar" - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS - depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR diff --git a/package/mender-connect/S43mender-connect b/package/mender-connect/S43mender-connect deleted file mode 100644 index 4cc21510c4..0000000000 --- a/package/mender-connect/S43mender-connect +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -DAEMON="mender-connect" -DAEMON_PATH="/usr/bin/mender-connect" -PIDFILE="/var/run/${DAEMON}.pid" - -MENDER_CONNECT_ARGS="" - -# shellcheck source=/dev/null -[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" - -start() { - printf 'Starting %s: ' "${DAEMON}" - umask 077 - # shellcheck disable=SC2086 # we need the word splitting - start-stop-daemon -bmSqp "$PIDFILE" -x ${DAEMON_PATH} \ - -- -daemon ${DAEMON_ARGS} - status=$? - if [ "$status" -eq 0 ]; then - echo "OK" - else - echo "FAIL" - fi - return "$status" -} - -stop() { - printf 'Stopping %s: ' "${DAEMON}" - start-stop-daemon -K -q -p "$PIDFILE" - status=$? - if [ "$status" -eq 0 ]; then - echo "OK" - else - echo "FAIL" - fi - return "$status" -} - -restart() { - stop - sleep 1 - start -} - -case "$1" in - start|stop|restart) - "$1";; - reload) - # Restart, since there is no true "reload" feature. - restart;; - *) - echo "Usage: $0 {start|stop|restart|reload}" - exit 1 -esac diff --git a/package/mender-connect/mender-connect.hash b/package/mender-connect/mender-connect.hash deleted file mode 100644 index 2872bb467c..0000000000 --- a/package/mender-connect/mender-connect.hash +++ /dev/null @@ -1,35 +0,0 @@ -# Locally computed: -sha256 b04331f447b9d21c5962d5aef2670f1de861e3065522a1b298af0904a8ee6400 mender-connect-3.0.0-go2.tar.gz -sha256 420fd444caf5a39bc2db0ae2202c71451a8ea3900011547bd0fb22678aaa4ef6 LIC_FILES_CHKSUM.sha256 - -# Vendor licenses -# Generated with sed '/^[A-Za-z0-9_]/s/^/sha256 /' LIC_FILES_CHKSUM.sha256 - -# -# Apache-2.0 -sha256 d7e8fd4ad05371007d60285c309ba7a7ce3e61029b843f949fbb9ec79dc9eb47 LICENSE -sha256 a4e99d13c6cd0e4faf3867ae5c9815ff88cab3cefdefe0dc1ec9ac28b1152944 vendor/github.com/mendersoftware/go-lib-micro/LICENSE -# -# BSD-2-Clause -sha256 8d427fd87bc9579ea368fde3d49f9ca22eac857f91a9dec7e3004bdfab7dee86 vendor/github.com/pkg/errors/LICENSE -sha256 1530185dd39cdde7cb2f786a7a5fcf8bc34368b6ae73c15e72bafe88fd80b9a2 vendor/github.com/vmihailenco/msgpack/v5/LICENSE -sha256 0f02aac22084ef463aa5f42f566feeec6aa4c99653519744a8c25cb079da5b5d vendor/github.com/vmihailenco/tagparser/v2/LICENSE -# -# BSD-3-Clause -sha256 2eb550be6801c1ea434feba53bf6d12e7c71c90253e0a9de4a4f46cf88b56477 vendor/github.com/pmezard/go-difflib/LICENSE -sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/golang.org/x/sys/LICENSE -sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/golang.org/x/net/LICENSE -sha256 0b77fdea862f869ef4f201ac5649bdbd38ccb055c7f6454dffae9e2adb4941c1 vendor/github.com/gorilla/websocket/LICENSE -# -# ISC -sha256 1b93a317849ee09d3d7e4f1d20c2b78ddb230b4becb12d7c224c927b9d470251 vendor/github.com/davecgh/go-spew/LICENSE -# -# MIT -sha256 a2a1cea59d9c2d71908082f516f86bb560abf857646ecf69d70c121ead14aef4 vendor/github.com/creack/pty/LICENSE -sha256 caa932df46551b53643952fe03b351d55db97be73b5393b986dcf6b05d3c416a vendor/github.com/go-ozzo/ozzo-validation/v4/LICENSE -sha256 92a328e1d5f3269b42e2ce32b4494eafdb3132f204a911c5c95cf3d8465490e4 vendor/github.com/satori/go.uuid/LICENSE -sha256 51a0c9ec7f8b7634181b8d4c03e5b5d204ac21d6e72f46c313973424664b2e6b vendor/github.com/sirupsen/logrus/LICENSE -sha256 b2663894033a05fd80261176cd8da1d72546e25842d5c1abcc852ca23b6b61b0 vendor/github.com/stretchr/objx/LICENSE -sha256 f8e536c1c7b695810427095dc85f5f80d44ff7c10535e8a9486cf393e2599189 vendor/github.com/stretchr/testify/LICENSE -sha256 da277af11b85227490377fbcac6afccc68be560c4fff36ac05ca62de55345fd7 vendor/github.com/urfave/cli/v2/LICENSE -sha256 d18f6323b71b0b768bb5e9616e36da390fbd39369a81807cca352de4e4e6aa0b vendor/gopkg.in/yaml.v3/LICENSE diff --git a/package/mender-connect/mender-connect.mk b/package/mender-connect/mender-connect.mk deleted file mode 100644 index 98fdfe16df..0000000000 --- a/package/mender-connect/mender-connect.mk +++ /dev/null @@ -1,60 +0,0 @@ -################################################################################ -# -# mender-connect -# -################################################################################ - -MENDER_CONNECT_VERSION = 3.0.0 -MENDER_CONNECT_SITE = $(call github,mendersoftware,mender-connect,$(MENDER_CONNECT_VERSION)) -MENDER_CONNECT_LICENSE = Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MIT - -# Vendor license paths generated with: -# awk '{print $2}' LIC_FILES_CHKSUM.sha256 | grep vendor -MENDER_CONNECT_LICENSE_FILES = \ - LIC_FILES_CHKSUM.sha256 \ - LICENSE \ - vendor/github.com/mendersoftware/go-lib-micro/LICENSE \ - vendor/github.com/pkg/errors/LICENSE \ - vendor/github.com/vmihailenco/msgpack/v5/LICENSE \ - vendor/github.com/vmihailenco/tagparser/v2/LICENSE \ - vendor/github.com/pmezard/go-difflib/LICENSE \ - vendor/golang.org/x/sys/LICENSE \ - vendor/golang.org/x/net/LICENSE \ - vendor/github.com/gorilla/websocket/LICENSE \ - vendor/github.com/davecgh/go-spew/LICENSE \ - vendor/github.com/creack/pty/LICENSE \ - vendor/github.com/go-ozzo/ozzo-validation/v4/LICENSE \ - vendor/github.com/satori/go.uuid/LICENSE \ - vendor/github.com/sirupsen/logrus/LICENSE \ - vendor/github.com/stretchr/objx/LICENSE \ - vendor/github.com/stretchr/testify/LICENSE \ - vendor/github.com/urfave/cli/v2/LICENSE \ - vendor/gopkg.in/yaml.v3/LICENSE - -MENDER_CONNECT_DEPENDENCIES = \ - dbus \ - libglib2 \ - mender \ - openssl - -MENDER_CONNECT_LDFLAGS = -X github.com/mendersoftware/mender-connect/config.Version=$(MENDER_CONNECT_VERSION) - -define MENDER_CONNECT_INSTALL_CONFIG_FILES - $(INSTALL) -d -m 755 $(TARGET_DIR)/etc/mender - - $(INSTALL) -D -m 0644 $(@D)/examples/mender-connect.conf \ - $(TARGET_DIR)/etc/mender/mender-connect.conf -endef -MENDER_CONNECT_POST_INSTALL_TARGET_HOOKS += MENDER_CONNECT_INSTALL_CONFIG_FILES - -define MENDER_CONNECT_INSTALL_INIT_SYSTEMD - $(INSTALL) -D -m 0644 $(@D)/support/mender-connect.service \ - $(TARGET_DIR)/usr/lib/systemd/system/mender-connect.service -endef - -define MENDER_CONNECT_INSTALL_INIT_SYSV - $(INSTALL) -D -m 0755 $(MENDER_CONNECT_PKGDIR)/S43mender-connect \ - $(TARGET_DIR)/etc/init.d/S43mender-connect -endef - -$(eval $(golang-package)) diff --git a/package/mender-grubenv/Config.in b/package/mender-grubenv/Config.in deleted file mode 100644 index 8505458793..0000000000 --- a/package/mender-grubenv/Config.in +++ /dev/null @@ -1,43 +0,0 @@ -config BR2_PACKAGE_MENDER_GRUBENV - bool "mender-grubenv" - depends on BR2_TARGET_GRUB2_ARCH_SUPPORTS - depends on BR2_PACKAGE_MENDER # runtime - depends on BR2_TARGET_GRUB2 - depends on !(BR2_TARGET_GRUB2_HAS_LEGACY_BOOT && BR2_TARGET_GRUB2_HAS_EFI_BOOT) - select BR2_PACKAGE_UTIL_LINUX - select BR2_PACKAGE_UTIL_LINUX_BINARIES # flock -w - help - Contains the boot scripts and tools used by Mender to - integrate with the GRUB bootloader. - - The following Grub modules must be selected for this package: - loadenv hashsum echo halt gcry_sha256 test regexp - - https://github.com/mendersoftware/grub-mender-grubenv - -if BR2_PACKAGE_MENDER_GRUBENV - -config BR2_PACKAGE_MENDER_GRUBENV_DEFINES - string "path to grubenv defines" - help - Specify a path to the mender grubenv defines file. - If no path is specified, the example file in the source - directory will be used. - - The example file in the source directory sets the following: - mender_rootfsa_part=2 - mender_rootfsb_part=3 - mender_kernel_root_base=/dev/mmcblk0p - mender_grub_storage_device=hd0 - kernel_imagetype=bzImage - -endif - -comment "mender-grubenv needs a grub2 bootloader" - depends on BR2_TARGET_GRUB2_ARCH_SUPPORTS - depends on BR2_PACKAGE_MENDER - depends on !BR2_TARGET_GRUB2 - -comment "mender-grubenv does not support both legacy and EFI grub2 bootloaders at the same time" - depends on BR2_PACKAGE_MENDER - depends on BR2_TARGET_GRUB2_HAS_LEGACY_BOOT && BR2_TARGET_GRUB2_HAS_EFI_BOOT diff --git a/package/mender-grubenv/mender-grubenv.hash b/package/mender-grubenv/mender-grubenv.hash deleted file mode 100644 index 06456f6818..0000000000 --- a/package/mender-grubenv/mender-grubenv.hash +++ /dev/null @@ -1,3 +0,0 @@ -# Locally computed -sha256 9200dfc8ce8d9e5fae13947857fec44961df87c5bee92f90e37049279a94fb6f mender-grubenv-ddbc5cb054c7a8245c2d6c79eb4cb60ed0ec27e4.tar.gz -sha256 d7e8fd4ad05371007d60285c309ba7a7ce3e61029b843f949fbb9ec79dc9eb47 LICENSE diff --git a/package/mender-grubenv/mender-grubenv.mk b/package/mender-grubenv/mender-grubenv.mk deleted file mode 100644 index d93159802d..0000000000 --- a/package/mender-grubenv/mender-grubenv.mk +++ /dev/null @@ -1,90 +0,0 @@ -################################################################################ -# -# mender-grubenv -# -################################################################################ - -MENDER_GRUBENV_VERSION = ddbc5cb054c7a8245c2d6c79eb4cb60ed0ec27e4 -MENDER_GRUBENV_SITE = $(call github,mendersoftware,grub-mender-grubenv,$(MENDER_GRUBENV_VERSION)) -MENDER_GRUBENV_LICENSE = Apache-2.0 -MENDER_GRUBENV_LICENSE_FILES = LICENSE -# Grub2 must be built first so this package can overwrite the config files -# provided by grub. -MENDER_GRUBENV_DEPENDENCIES = grub2 util-linux - -MENDER_GRUBENV_MAKE_ENV = \ - $(TARGET_CONFIGURE_OPTS) \ - $(TARGET_MAKE_ENV) - -MENDER_GRUBENV_DEFINES = \ - $(or $(call qstrip,$(BR2_PACKAGE_MENDER_GRUBENV_DEFINES)),\ - $(@D)/mender_grubenv_defines.example) - -# These grub modules must be built in for the grub scripts to work properly. -# Without them, the system will not boot. -MENDER_GRUBENV_MANDATORY_MODULES = loadenv hashsum echo halt gcry_sha256 test regexp - -ifeq ($(BR2_TARGET_GRUB2_HAS_LEGACY_BOOT),y) -MENDER_GRUBENV_MODULES_MISSING_PC = \ - $(filter-out $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES_PC)),\ - $(MENDER_GRUBENV_MANDATORY_MODULES)) - -MENDER_GRUBENV_MAKE_ENV += BOOT_DIR=/boot - -define MENDER_GRUBENV_INSTALL_I386_CFG - mkdir -p $(BINARIES_DIR)/boot-part/grub - cp -dpfr $(MENDER_GRUBENV_BUILDDIR)/mender_grub.cfg \ - $(TARGET_DIR)/boot/grub/grub.cfg - cp -dpfr $(TARGET_DIR)/boot/grub/grub.cfg \ - $(TARGET_DIR)/boot/grub-mender-grubenv \ - $(BINARIES_DIR)/boot-part/ -endef -MENDER_GRUBENV_TARGET_FINALIZE_HOOKS += MENDER_GRUBENV_INSTALL_I386_CFG -endif # BR2_TARGET_GRUB2_HAS_LEGACY_BOOT - -ifeq ($(BR2_TARGET_GRUB2_HAS_EFI_BOOT),y) -MENDER_GRUBENV_MODULES_MISSING_EFI = \ - $(filter-out $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI)),\ - $(MENDER_GRUBENV_MANDATORY_MODULES)) - -MENDER_GRUBENV_MAKE_ENV += BOOT_DIR=/boot/EFI/BOOT - -define MENDER_GRUBENV_INSTALL_EFI_CFG - mkdir -p $(BINARIES_DIR)/efi-part/EFI/BOOT - cp -dpfr $(MENDER_GRUBENV_BUILDDIR)/mender_grub.cfg \ - $(TARGET_DIR)/boot/EFI/BOOT/grub.cfg - cp -dpfr $(TARGET_DIR)/boot/EFI/BOOT/grub.cfg \ - $(BINARIES_DIR)/efi-part/EFI/BOOT - cp -dpfr $(TARGET_DIR)/boot/EFI/BOOT/grub-mender-grubenv \ - $(BINARIES_DIR)/efi-part/ -endef -MENDER_GRUBENV_TARGET_FINALIZE_HOOKS += MENDER_GRUBENV_INSTALL_EFI_CFG -endif # BR2_TARGET_GRUB2_HAS_EFI_BOOT - -ifeq ($(BR2_PACKAGE_MENDER_GRUBENV)$(BR_BUILDING),yy) -ifneq ($(MENDER_GRUBENV_MODULES_MISSING_EFI),) -$(error The following missing grub2 efi modules must be enabled for mender-grubenv \ - to work: $(MENDER_GRUBENV_MODULES_MISSING_EFI)) -endif -ifneq ($(MENDER_GRUBENV_MODULES_MISSING_PC),) -$(error The following missing grub2 pc modules must be enabled for mender-grubenv \ - to work: $(MENDER_GRUBENV_MODULES_MISSING_PC)) -endif -endif - -define MENDER_GRUBENV_CONFIGURE_CMDS - $(INSTALL) -m 0644 $(MENDER_GRUBENV_DEFINES) $(@D)/mender_grubenv_defines -endef - -define MENDER_GRUBENV_BUILD_CMDS - $(MENDER_GRUBENV_MAKE_ENV) $(MAKE) -C $(@D) -endef - -define MENDER_GRUBENV_INSTALL_TARGET_CMDS - $(MENDER_GRUBENV_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) \ - install install-boot-env - # The grub-mender-grubenv-* utilities use this file to function. - echo 'ENV_DIR=/boot/grub-mender-grubenv' > $(TARGET_DIR)/etc/mender_grubenv.config -endef - -$(eval $(generic-package)) diff --git a/package/mender-update-modules/Config.in b/package/mender-update-modules/Config.in deleted file mode 100644 index 88e0805976..0000000000 --- a/package/mender-update-modules/Config.in +++ /dev/null @@ -1,250 +0,0 @@ -config BR2_PACKAGE_MENDER_UPDATE_MODULES - bool "mender-update-modules" - depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS - depends on BR2_PACKAGE_MENDER - select BR2_PACKAGE_HOST_MENDER_ARTIFACT - help - community supported Update Modules. An Update Module is an - extension to the Mender client for supporting a new type of - software update, such as a package manager, container, - bootloader or even updates of nearby microcontrollers. - An Update Module can be tailored to a specific device or - environment (e.g. update a proprietary bootloader), or be - more general-purpose (e.g. install a set of .deb packages.). - - https://github.com/mendersoftware/mender-update-modules - -if BR2_PACKAGE_MENDER_UPDATE_MODULES - -config BR2_PACKAGE_MENDER_UPDATE_MODULES_DFU - bool "DFU" - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb - select BR2_PACKAGE_DFU_UTIL - help - The DFU Update Module is able to update peripheral devices - connected to the device running Mender. - Example use-cases: - - Deploy firmware updates to peripheral devices using the - USB Device Firmware Update (DFU) protocol - - https://github.com/mendersoftware/mender-update-modules/tree/master/dfu - -config BR2_PACKAGE_MENDER_UPDATE_MODULES_DIR_OVERLAY - bool "dir-overlay" - help - The Directory Overlay Update Module installs a user defined - file tree structure into a given destination directory in the - target. - - Before the deploy into the destination folder on the device, - the Update Module will take a backup copy of the current - contents, allowing restore of it using the rollback mechanism - of the Mender client if something goes wrong. The Update - Module will also delete the current installed content that was - previously installed using the same module, this means that - each deployment is self contained and there is no residues - left on the system from the previous deployment. - - Example use-cases: - - Deploy root filesystem overlays - - https://github.com/mendersoftware/mender-update-modules/tree/master/dir-overlay - -config BR2_PACKAGE_MENDER_UPDATE_MODULES_DIRTY - bool "dirty" - help - The dirty Update Module: modify your device state without - installing an artifact - Example use-cases: - - You have a specific action on the device that you want to - run multiple times - - - You want to avoid re-creating artifacts just for the sake - of a new version/name - - - You don't want the artifact the show up in the list of - installed artifacts - - - The module will always fail the update process, which - means it can never be marked as installed. So it can be - attempted any number of times without having to recreate - newly versioned artifacts. - - https://github.com/mendersoftware/mender-update-modules/tree/master/dirty - -config BR2_PACKAGE_MENDER_UPDATE_MODULES_DOCKER - bool "docker" - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS # docker-engine, docker-cli - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS # docker-engine, docker-cli - depends on BR2_TOOLCHAIN_HAS_THREADS # docker-engine, docker-cli - depends on !BR2_TOOLCHAIN_USES_UCLIBC # containerd -> runc - depends on BR2_USE_MMU # containerd - depends on !BR2_PACKAGE_CGROUPFS_MOUNT # docker-engine - depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS # libseccomp - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2 # docker-engine - select BR2_PACKAGE_DOCKER_ENGINE - select BR2_PACKAGE_DOCKER_CLI - select BR2_PACKAGE_JQ # runtime - help - The Docker Update Module handles the Docker images that shall - be running in the device. A deployment with this module will - stop all currently running Docker containers in the device, - and start new containers with the provided list of Docker - images in the Mender Artifact. - - In case of an unforeseen error during the process, the module - will use the rollback mechanism of the Mender client to - restore the previously running Docker containers. - - https://github.com/mendersoftware/mender-update-modules/tree/master/docker - -comment "docker support needs a glibc or musl toolchain w/ threads, headers >= 5.2" - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS - depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS - depends on !BR2_TOOLCHAIN_HAS_THREADS || \ - BR2_TOOLCHAIN_USES_UCLIBC || \ - !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2 - depends on BR2_USE_MMU - -config BR2_PACKAGE_MENDER_UPDATE_MODULES_IPK - bool "ipk" - depends on BR2_USE_MMU # opkg - depends on BR2_USE_WCHAR # opkg -> libarchive - select BR2_PACKAGE_OPKG - help - The IPK Update Module allows opkg-based packages to be - installed on a device - - Example use-cases: - - Deploy any ipk package - - https://github.com/mendersoftware/mender-update-modules/tree/master/ipk - -comment "ipk support needs a toolchain w/ wchar" - depends on BR2_USE_MMU - depends on !BR2_USE_WCHAR - -config BR2_PACKAGE_MENDER_UPDATE_MODULES_PODMAN - bool "podman" - depends on BR2_USE_MMU # podman - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS # podman - depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # podman - depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # podman - depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS # podman - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 # podman - depends on BR2_TOOLCHAIN_HAS_THREADS # podman - depends on BR2_USE_WCHAR # podman - select BR2_PACKAGE_JQ # runtime - select BR2_PACKAGE_PODMAN - help - The Podman Update Module handles the Podman container images - that shall be running on the target device. A deployment with - this module will stop all currently running Podman containers - on the device and start new containers based on the list of - Podman images provided in the Mender Artifact. - - In case of any unforeseen error during the process, the module - will trigger the rollback mechanism of the Mender client to - restore the previously running Podman containers. - - https://github.com/mendersoftware/mender-update-modules/tree/master/podman - -comment "podman support needs a toolchain w/ headers >= 4.14, threads, wchar" - depends on BR2_USE_MMU - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS - depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS - depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 \ - || !BR2_TOOLCHAIN_HAS_THREADS \ - || !BR2_USE_WCHAR - -config BR2_PACKAGE_MENDER_UPDATE_MODULES_REBOOT - bool "reboot" - help - The reboot Update Module: reboot your device remotely. - - Example use-cases: - - Something went wrong and you have to reboot your device - remotely, and all access to the device you have is Mender. - - https://github.com/mendersoftware/mender-update-modules/tree/master/reboot - -config BR2_PACKAGE_MENDER_UPDATE_MODULES_ROOTFS_VERSION_CHECK - bool "rootfs version check" - depends on BR2_USE_WCHAR # python3 - depends on BR2_USE_MMU # python3 - depends on BR2_TOOLCHAIN_HAS_THREADS # python3 - depends on !BR2_STATIC_LIBS # python3 - select BR2_PACKAGE_PYTHON3 # runtime - help - The rootfs-version-check Update Module implements a full image - update with additional checks to protect against replay - attacks. - - This is functionally equivalent to the built-in full image - update with an extra check to ensure the artifact name - follows a specific format and that installing "older" images - is rejected. For this reference implementaton, we simply use - a numeric identifier and ensure that it is larger than the - version installed. For actual device fleet use, you may need - to customize this based on your artifact naming scheme. - - Example use-cases: - - Deploy root filesystem updates and ensure only newer - artifacts are installed - - https://github.com/mendersoftware/mender-update-modules/tree/master/rootfs-version-check - -comment "rootfs version check needs a toolchain w/ threads, dynamic library, wchar" - depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ - !BR2_USE_WCHAR - -config BR2_PACKAGE_MENDER_UPDATE_MODULES_RPM - bool "rpm" - depends on !BR2_STATIC_LIBS # dlfcn.h - depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS - depends on BR2_PACKAGE_LUA && !BR2_PACKAGE_LUA_5_1 - depends on BR2_TOOLCHAIN_HAS_THREADS - select BR2_PACKAGE_RPM - help - The Rpm Update Module updates software on the device using - the native local package manager. - - A Mender Artifact containing one or more software packages - is sent to the device, where the Update Module will call - the package manager to install them in alphabetical order. - - https://github.com/mendersoftware/mender-update-modules/tree/master/rpm - -comment "rpm needs a toolchain w/ dynamic library, threads and lua >= 5.3" - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \ - || !BR2_PACKAGE_LUA || BR2_PACKAGE_LUA_5_1 - depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS - -config BR2_PACKAGE_MENDER_UPDATE_MODULES_SWU - bool "swupdate" - depends on !BR2_STATIC_LIBS - depends on BR2_TOOLCHAIN_HAS_SYNC_4 # swupdate - select BR2_PACKAGE_JQ # runtime - select BR2_PACKAGE_SWUPDATE - help - The SWU Update Module allows deploying an SWUpdate-based - artifact to the device. - - Example use-cases: - - Extend an existing platform using SWUpdate with OTA. - - https://github.com/mendersoftware/mender-update-modules/tree/master/swu - -comment "swupdate support needs a toolchain w/ dynamic library" - depends on BR2_TOOLCHAIN_HAS_SYNC_4 - depends on BR2_STATIC_LIBS - -endif - -comment "mender-update-modules needs mender" - depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS - depends on !BR2_PACKAGE_MENDER diff --git a/package/mender-update-modules/mender-update-modules.hash b/package/mender-update-modules/mender-update-modules.hash deleted file mode 100644 index ec879f46a1..0000000000 --- a/package/mender-update-modules/mender-update-modules.hash +++ /dev/null @@ -1,3 +0,0 @@ -# Locally calculated -sha256 4846f39abc254ad2ae2a9f3d5479b064bc1bae5034b9d276ebdb09d8c60f4541 mender-update-modules-d8c4683e6660af6c65069e10ee4b8ee50ec1af46.tar.gz -sha256 d0f406b04e7901e6b4076bdf5fd20f9d7f04fc41681069fd8954413ac6295688 LICENSE diff --git a/package/mender-update-modules/mender-update-modules.mk b/package/mender-update-modules/mender-update-modules.mk deleted file mode 100644 index 0024acc189..0000000000 --- a/package/mender-update-modules/mender-update-modules.mk +++ /dev/null @@ -1,77 +0,0 @@ -################################################################################ -# -# mender-update-modules -# -################################################################################ - -MENDER_UPDATE_MODULES_VERSION = d8c4683e6660af6c65069e10ee4b8ee50ec1af46 -MENDER_UPDATE_MODULES_SITE = $(call github,mendersoftware,mender-update-modules,$(MENDER_UPDATE_MODULES_VERSION)) -MENDER_UPDATE_MODULES_LICENSE = Apache-2.0 -MENDER_UPDATE_MODULES_LICENSE_FILES = LICENSE -MENDER_UPDATE_MODULES_DEPENDENCIES = host-mender-artifact mender - -MENDER_UPDATE_MODULES_MODULES = script - -ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_DFU),y) -MENDER_UPDATE_MODULES_MODULES += dfu -endif - -ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_DIR_OVERLAY),y) -MENDER_UPDATE_MODULES_MODULES += dir-overlay -endif - -ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_DIRTY),y) -MENDER_UPDATE_MODULES_MODULES += dirty -endif - -ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_DOCKER),y) -MENDER_UPDATE_MODULES_MODULES += docker -endif - -ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_IPK),y) -MENDER_UPDATE_MODULES_MODULES += ipk -endif - -ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_PODMAN),y) -MENDER_UPDATE_MODULES_MODULES += podman -endif - -ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_REBOOT),y) -MENDER_UPDATE_MODULES_MODULES += reboot -define MENDER_UPDATE_MODULES_INSTALL_MENDER_REBOOT_GEN - $(INSTALL) -D -m 0755 $(@D)/reboot/reboot-gen \ - $(HOST_DIR)/bin/reboot-artifact-gen -endef -MENDER_UPDATE_MODULES_POST_INSTALL_TARGET_HOOKS += MENDER_UPDATE_MODULES_INSTALL_MENDER_REBOOT_GEN -endif - -ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_ROOTFS_VERSION_CHECK),y) -MENDER_UPDATE_MODULES_DEPENDENCIES += python3 -MENDER_UPDATE_MODULES_MODULES += rootfs-version-check -define MENDER_UPDATE_MODULES_INSTALL_MENDER_COMPARE_VERSIONS - $(INSTALL) -D -m 0755 $(@D)/rootfs-version-check/mender-compare-versions \ - $(TARGET_DIR)/usr/bin/mender-compare-versions -endef -MENDER_UPDATE_MODULES_POST_INSTALL_TARGET_HOOKS += MENDER_UPDATE_MODULES_INSTALL_MENDER_COMPARE_VERSIONS -endif - -ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_RPM),y) -MENDER_UPDATE_MODULES_MODULES += rpm -endif - -ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_SWU),y) -MENDER_UPDATE_MODULES_MODULES += swu -endif - -define MENDER_UPDATE_MODULES_INSTALL_TARGET_CMDS - $(foreach f,$(MENDER_UPDATE_MODULES_MODULES), \ - $(INSTALL) -D -m 0775 $(@D)/$(f)/module/$(f) \ - $(TARGET_DIR)/usr/share/mender/modules/v3/$(f); \ - if [ -d $(@D)/$(f)/module-artifact-gen ]; then \ - $(INSTALL) -D -m 0775 $(@D)/$(f)/module-artifact-gen/$(f)-artifact-gen \ - $(HOST_DIR)/bin/$(f)-artifact-gen; \ - fi; \ - ) -endef - -$(eval $(generic-package)) diff --git a/package/mender/Config.in b/package/mender/Config.in deleted file mode 100644 index c9b9d0b757..0000000000 --- a/package/mender/Config.in +++ /dev/null @@ -1,45 +0,0 @@ -config BR2_PACKAGE_MENDER - bool "mender" - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS - depends on BR2_TOOLCHAIN_HAS_THREADS - select BR2_PACKAGE_HOST_GO - select BR2_PACKAGE_OPENSSL - select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL - select BR2_PACKAGE_LIBOPENSSL_ENGINES - select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 - select BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160 - help - Mender is an open source over-the-air (OTA) software updater - for embedded Linux devices. Mender comprises a client - running at the embedded device, as well as a server that - manages deployments across many devices. - - Notes: - For systems using uboot as the bootloader: - - uboot must have the mender uboot patches applied. - - uboot-tools must be selected. - - fw_printenv must be functional on the device. - The Mender Uboot patches are at: - https://github.com/mendersoftware/meta-mender/ - - For more information on Manual U-Boot integration, see: - https://docs.mender.io/2.6/system-updates-yocto-project/board-integration/bootloader-support/u-boot/manual-u-boot-integration - - For systems using Grub2 as the bootloader: - - Mender depends on the mender-grubenv package. - - The mender-grubenv package provides a fw_printenv script, - which is not compatible with the uboot-tools fw_printenv - script. - - The mender project recommends using uboot to load Grub2 as a - secondary bootloader whenever possible. Using Grub2 as a - secondary bootloader prevents users from porting the patches - for uboot to each new device. - - https://github.com/mendersoftware/mender - -comment "mender needs a toolchain w/ threads" - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS - depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/mender/S42mender b/package/mender/S42mender deleted file mode 100644 index 70116ed4eb..0000000000 --- a/package/mender/S42mender +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# -# Starts mender service. -# -DAEMON="mender" -DAEMON_PATH="/usr/bin/mender" -PIDFILE="/var/run/${DAEMON}.pid" -DAEMON_ARGS="daemon" - -start() { - printf "Starting mender service: " - umask 077 - start-stop-daemon -bmSqp "$PIDFILE" -x ${DAEMON_PATH} -- ${DAEMON_ARGS} - status=$? - [ "${status}" = 0 ] && echo "OK" || echo "FAIL" -} - -stop() { - printf "Stopping mender service: " - start-stop-daemon -Kqp "$PIDFILE" - status=$? - [ "${status}" = 0 ] && echo "OK" || echo "FAIL" -} -restart() { - stop - start -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart|reload) - restart - ;; - *) - echo "Usage: $0 {start|stop|reload|restart}" - exit 1 -esac - -exit $? diff --git a/package/mender/device_type b/package/mender/device_type deleted file mode 100644 index a097ef2b3a..0000000000 --- a/package/mender/device_type +++ /dev/null @@ -1 +0,0 @@ -device_type=BUILDROOT_DEVICE diff --git a/package/mender/mender-client.service b/package/mender/mender-client.service deleted file mode 100644 index 47e439993c..0000000000 --- a/package/mender/mender-client.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Mender OTA update service -After=systemd-resolved.service - -[Service] -Type=idle -User=root -Group=root -ExecStart=/usr/bin/mender daemon -Restart=on-abort - -[Install] -WantedBy=multi-user.target diff --git a/package/mender/mender.conf b/package/mender/mender.conf deleted file mode 100644 index 2393948f8e..0000000000 --- a/package/mender/mender.conf +++ /dev/null @@ -1,11 +0,0 @@ -{ - "InventoryPollIntervalSeconds": 1800, - "UpdatePollIntervalSeconds": 1800, - "RetryPollIntervalSeconds": 300, - "RootfsPartA": "/dev/mmcblk0p2", - "RootfsPartB": "/dev/mmcblk0p3", - "DeviceTypeFile": "/var/lib/mender/device_type", - "ServerCertificate": "/etc/mender/server.crt", - "ServerURL": "https://docker.mender.io", - "TenantToken": "dummy" -} diff --git a/package/mender/mender.hash b/package/mender/mender.hash deleted file mode 100644 index 17fe08c827..0000000000 --- a/package/mender/mender.hash +++ /dev/null @@ -1,47 +0,0 @@ -# Locally computed: -sha256 35e369759b8d4f012153e538b5daf1e0cebe842205811e708332c5a092270ac5 mender-3.5.3-go2.tar.gz - -# Vendor licenses -# Generated with sed '/^[A-Za-z0-9_]/s/^/sha256 /' LIC_FILES_CHKSUM.sha256 - -# Apache-2.0 license. -sha256 d0f406b04e7901e6b4076bdf5fd20f9d7f04fc41681069fd8954413ac6295688 LICENSE -sha256 52b2497ce07650b825015e80ca7a5d40c360c04c530234ca6d950b0f98bca23a vendor/github.com/mendersoftware/mender-artifact/LICENSE -sha256 73ba74dfaa520b49a401b5d21459a8523a146f3b7518a833eea5efa85130bf68 vendor/github.com/mendersoftware/openssl/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/github.com/minio/sha256-simd/LICENSE -sha256 8f5d89b47d7a05a199b77b7e0f362dad391d451ebda4ef48ba11c50c071564c7 vendor/github.com/mendersoftware/progressbar/LICENSE -# -# BSD 2 Clause license. -sha256 8d427fd87bc9579ea368fde3d49f9ca22eac857f91a9dec7e3004bdfab7dee86 vendor/github.com/pkg/errors/LICENSE -sha256 e4646a82a976369d7ae8f6ed5c11d35dc0af18433a8ccc24c85b459ad8b95128 vendor/github.com/godbus/dbus/LICENSE -sha256 2be1b548b0387ca8948e1bb9434e709126904d15f622cc2d0d8e7f186e4d122d vendor/github.com/gorilla/websocket/LICENSE -# -# BSD 3 Clause license. -sha256 0d9e582ee4bff57bf1189c9e514e6da7ce277f9cd3bc2d488b22fbb39a6d87cf vendor/github.com/klauspost/compress/LICENSE -sha256 2eb550be6801c1ea434feba53bf6d12e7c71c90253e0a9de4a4f46cf88b56477 vendor/github.com/pmezard/go-difflib/LICENSE -sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/golang.org/x/sys/LICENSE -sha256 0634b008cee55ca01f0888d2f5aba2d34e66c3f52c31a4e16a5d5d33d0c2a03e vendor/github.com/bmatsuo/lmdb-go/LICENSE.md -sha256 87640bc4df2ceb1559f268a3db1ba859ab780f7ba5b1b4545173d4680a3d918b vendor/github.com/remyoudompheng/go-liblzma/LICENSE -sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/golang.org/x/term/LICENSE -# -# ISC license. -sha256 1b93a317849ee09d3d7e4f1d20c2b78ddb230b4becb12d7c224c927b9d470251 vendor/github.com/davecgh/go-spew/LICENSE -# -# MIT license. -sha256 6d2de1cde19c4d2bd8bcd9aaa1d581f4cfa3db9cf71896140330eaa2f2687685 vendor/github.com/klauspost/pgzip/LICENSE -sha256 f69f157b0be75da373605dbc8bbf142e8924ee82d8f44f11bcaf351335bf98cf vendor/github.com/klauspost/compress/internal/snapref/LICENSE -sha256 f566a9f97bacdaf00d9f21dd991e81dc11201c4e016c86b470799429a1c9a79c vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt -sha256 5d966570d7a442d4e969892860a914e542c97f262c873baee8f0aa48e1f40212 vendor/github.com/klauspost/cpuid/v2/LICENSE -sha256 51a0c9ec7f8b7634181b8d4c03e5b5d204ac21d6e72f46c313973424664b2e6b vendor/github.com/sirupsen/logrus/LICENSE -sha256 f8e536c1c7b695810427095dc85f5f80d44ff7c10535e8a9486cf393e2599189 vendor/github.com/stretchr/testify/LICENSE -sha256 ffa15bdce332058a03a1d923910864fb6e58bf6df66a0e3914284725b327183e vendor/github.com/ungerik/go-sysfs/LICENSE -sha256 da277af11b85227490377fbcac6afccc68be560c4fff36ac05ca62de55345fd7 vendor/github.com/urfave/cli/v2/LICENSE -sha256 b2663894033a05fd80261176cd8da1d72546e25842d5c1abcc852ca23b6b61b0 vendor/github.com/stretchr/objx/LICENSE -sha256 d18f6323b71b0b768bb5e9616e36da390fbd39369a81807cca352de4e4e6aa0b vendor/gopkg.in/yaml.v3/LICENSE -sha256 08eab1118c80885fa1fa6a6dd7303f65a379fcb3733e063d20d1bbc2c76e6fa1 vendor/github.com/mattn/go-isatty/LICENSE -# -# OpenLDAP Public License -sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 vendor/github.com/bmatsuo/lmdb-go/LICENSE.mdb.md - -# sha256 of all the vendor licenses combined -sha256 86407bd98d5ea7fb0f09ab771c3333e975d06565b809a2dd95f864dc1e3a09b3 LIC_FILES_CHKSUM.sha256 diff --git a/package/mender/mender.mk b/package/mender/mender.mk deleted file mode 100644 index 76dc28d547..0000000000 --- a/package/mender/mender.mk +++ /dev/null @@ -1,110 +0,0 @@ -################################################################################ -# -# mender -# -################################################################################ - -MENDER_VERSION = 3.5.3 -MENDER_SITE = $(call github,mendersoftware,mender,$(MENDER_VERSION)) -MENDER_LICENSE = Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MIT, OLDAP-2.8 -MENDER_CPE_ID_VENDOR = northern.tech -# CVE-2024-46948 only affects mender-server -MENDER_IGNORE_CVES = CVE-2024-46948 - -# Vendor license paths generated with: -# awk '{print $2}' LIC_FILES_CHKSUM.sha256 | grep vendor -MENDER_LICENSE_FILES = \ - LICENSE \ - LIC_FILES_CHKSUM.sha256 \ - vendor/github.com/mendersoftware/mender-artifact/LICENSE \ - vendor/github.com/mendersoftware/openssl/LICENSE \ - vendor/github.com/minio/sha256-simd/LICENSE \ - vendor/github.com/mendersoftware/progressbar/LICENSE \ - vendor/github.com/pkg/errors/LICENSE \ - vendor/github.com/godbus/dbus/LICENSE \ - vendor/github.com/gorilla/websocket/LICENSE \ - vendor/github.com/klauspost/compress/LICENSE \ - vendor/github.com/pmezard/go-difflib/LICENSE \ - vendor/golang.org/x/sys/LICENSE \ - vendor/github.com/bmatsuo/lmdb-go/LICENSE.md \ - vendor/github.com/remyoudompheng/go-liblzma/LICENSE \ - vendor/golang.org/x/term/LICENSE \ - vendor/github.com/davecgh/go-spew/LICENSE \ - vendor/github.com/klauspost/pgzip/LICENSE \ - vendor/github.com/klauspost/compress/internal/snapref/LICENSE \ - vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt \ - vendor/github.com/klauspost/cpuid/v2/LICENSE \ - vendor/github.com/sirupsen/logrus/LICENSE \ - vendor/github.com/stretchr/testify/LICENSE \ - vendor/github.com/ungerik/go-sysfs/LICENSE \ - vendor/github.com/urfave/cli/v2/LICENSE \ - vendor/github.com/stretchr/objx/LICENSE \ - vendor/gopkg.in/yaml.v3/LICENSE \ - vendor/github.com/mattn/go-isatty/LICENSE \ - vendor/github.com/bmatsuo/lmdb-go/LICENSE.mdb.md - -MENDER_DEPENDENCIES = host-pkgconf openssl - -MENDER_LDFLAGS = -X github.com/mendersoftware/mender/conf.Version=$(MENDER_VERSION) - -MENDER_UPDATE_MODULES_FILES = directory single-file - -define MENDER_INSTALL_CONFIG_FILES - $(INSTALL) -d -m 755 $(TARGET_DIR)/etc/mender/scripts - echo -n "3" > $(TARGET_DIR)/etc/mender/scripts/version - - $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/mender.conf \ - $(TARGET_DIR)/etc/mender/mender.conf - $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/server.crt \ - $(TARGET_DIR)/etc/mender/server.crt - - $(INSTALL) -D -m 0755 $(@D)/support/mender-device-identity \ - $(TARGET_DIR)/usr/share/mender/identity/mender-device-identity - $(foreach f,bootloader-integration hostinfo network os rootfs-type, \ - $(INSTALL) -D -m 0755 $(@D)/support/mender-inventory-$(f) \ - $(TARGET_DIR)/usr/share/mender/inventory/mender-inventory-$(f) - ) - - $(INSTALL) -D -m 0755 $(MENDER_PKGDIR)/device_type \ - $(TARGET_DIR)/etc/mender/device_type - - mkdir -p $(TARGET_DIR)/var/lib/mender - $(foreach f,$(MENDER_UPDATE_MODULES_FILES), \ - $(INSTALL) -D -m 0755 $(@D)/support/modules/$(notdir $(f)) \ - $(TARGET_DIR)/usr/share/mender/modules/v3/$(notdir $(f)) - ) -endef - -MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_CONFIG_FILES - -ifeq ($(BR2_PACKAGE_XZ),y) -MENDER_DEPENDENCIES += xz -else -MENDER_TAGS += nolzma -endif - -ifeq ($(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_LIBGLIB2),yy) -MENDER_DEPENDENCIES += libglib2 -define MENDER_INSTALL_DBUS_AUTHENTICATION_MANAGER_CONF - $(INSTALL) -D -m 0755 $(@D)/support/dbus/io.mender.AuthenticationManager.conf \ - $(TARGET_DIR)/etc/dbus-1/system.d/io.mender.AuthenticationManager.conf - - $(INSTALL) -D -m 0755 $(@D)/support/dbus/io.mender.UpdateManager.conf \ - $(TARGET_DIR)/etc/dbus-1/system.d/io.mender.UpdateManager.conf -endef -MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_DBUS_AUTHENTICATION_MANAGER_CONF -else -MENDER_TAGS += nodbus -endif - -define MENDER_INSTALL_INIT_SYSTEMD - $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/mender-client.service \ - $(TARGET_DIR)/usr/lib/systemd/system/mender-client.service -endef - -define MENDER_INSTALL_INIT_SYSV - $(INSTALL) -D -m 755 $(MENDER_PKGDIR)/S42mender \ - $(TARGET_DIR)/etc/init.d/S42mender -endef - -$(eval $(golang-package)) diff --git a/package/mender/readme.txt b/package/mender/readme.txt deleted file mode 100644 index 56d6204583..0000000000 --- a/package/mender/readme.txt +++ /dev/null @@ -1,132 +0,0 @@ -=== Notes on using Mender on Buildroot -====================================== - -Mender is an open source over-the-air (OTA) software updater for -embedded Linux devices. Mender comprises a client running at the -embedded device, as well as a server that manages deployments across -many devices. There is also various tooling around the Mender project, -such as 'mender-artifact' which is used to create Mender Artifacts -that are compatible with the Mender client and server. - -Mender aims to address this challenge with a robust and easy to use -updater for embedded Linux devices, which is open source and available -to anyone. - -Robustness is ensured with atomic image-based deployments using a dual -A/B rootfs partition layout. This makes it always possible to roll -back to a working state, even when losing power at any time during the -update process. - -The official documentation is a good resource to get an in depth -understanding of how Mender works: - - https://docs.mender.io - -In Buildroot the following packages are provided: - -- BR2_PACKAGE_MENDER - - This will install the client on target rootfs -- BR2_PACKAGE_HOST_MENDER_ARTIFACT - - This will install the 'mender-artifact' tool in host rootfs. -- BR2_PACKAGE_MENDER_CONNECT - - This installs a client that allows for remote terminal access - to mender clients registered on a mender server. -- BR2_PACKAGE_MENDER_GRUBENV - - This package provides boot scripts to integrate mender into grub. - Mender recommends every client to use this package, including boards - using uboot as the primary bootloader. - -To fully utilize atomic image-based deployments using the A/B update -strategy, additional integration is required in the bootloader. This -integration is board specific. - -Currently supported bootloaders are GRUB and U-boot. Buildroot provides -a reference integration at board/mender/x86_64/ using the -mender_x86_64_efi_defconfig file. - -Additional support and integrations are found at: - - https://github.com/mendersoftware/buildroot-mender - -Default configurations files ----------------------------- - -Buildroot comes with a default configuration and there a couple of -files that need your attention: - -- /etc/mender/mender.conf - - main configuration file for the Mender client - - https://docs.mender.io/client-installation/configuration/configuration-options - -- /var/lib/mender/device_type - - A string that defines the type of device - -Mender server configuration ---------------------------- - -The Mender server can be setup in different ways, and how you -configure the Mender client differs slightly depending on which server -environment is used. - -- Mender demo environment - -This is if you have followed the Getting started documentation where -you launch a Mender server locally and to configure your environment -to connect to this local server you need to provide the IP address of -the server on the local network. - -By default the demo environment will connect to 'docker.mender.io' and -'s3.docker.mender.io' and we need to make sure that these are resolved -to the local IP address of the running server by adding the following -entry to '/etc/hosts' - - <ip address of demo environment> docker.mender.io s3.docker.mender.io - -This is required because the communication between client and server -is utilizing TLS and the provided demo server certificate (server.crt) -is only valid for 'docker.mender.io' and 's3.docker.mender.io' -domains. - -- Hosted Mender - -To authenticate the Mender client with the Hosted Mender server you -need a tenant token. - -To get your tenant token: - -- log in to https://hosted.mender.io -- click your email at the top right and then “My organization” -- press the “COPY TO CLIPBOARD” -- assign content of clipboard to TenantToken - -Example mender.conf options for Hosted Mender: - - { - ... - "ServerURL": "https://hosted.mender.io", - "TenantToken": "<paste tenant token here>" - ... - } - - -Creating Mender Artifacts -------------------------- - -To create Mender Artifacts based on Buildroot build output you must -include BR2_PACKAGE_HOST_MENDER_ARTIFACT in your configuration, and -then you would typically create the Mender Artifact in a post image -script (BR2_ROOTFS_POST_IMAGE_SCRIPT). See the generate_mender_image -method in board/mender/x86_64/post-image-efi.sh for a working example. - -Additionally, mender requires a bootstrap.mender file which is also -generated using the host-mender-artifact package. See the -generate_mender_bootstrap_artifact method in -board/mender/x86_64/post-image-efi.sh for an example - -Configuring Mender with certificates ------------------------------------- - -Mender uses TLS to communicate with the management server, and if you -use a CA-signed certificate on the server, you must include -BR2_PACKAGE_CA_CERTIFICATES in your configuration to authenticate TLS -connections. diff --git a/package/mender/server.crt b/package/mender/server.crt deleted file mode 100644 index 79a57e15e7..0000000000 --- a/package/mender/server.crt +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBfTCCASOgAwIBAgIJAJOS76a0qWuZMAoGCCqGSM49BAMCMBsxGTAXBgNVBAMM -EGRvY2tlci5tZW5kZXIuaW8wHhcNMTYxMjE0MTk1MjQ2WhcNMjYxMjEyMTk1MjQ2 -WjAbMRkwFwYDVQQDDBBkb2NrZXIubWVuZGVyLmlvMFkwEwYHKoZIzj0CAQYIKoZI -zj0DAQcDQgAE7AVYis6MWGPGQYU1/tlLEnskRifDIhvkRb8Y4nQPekRkLkiBYYT3 -iJ46wHrnejbHaLstU9GRdKWOmOuU6HGdO6NQME4wHQYDVR0OBBYEFGOIU4q++Vz8 -9HuT1jg9V+wFeJcyMB8GA1UdIwQYMBaAFGOIU4q++Vz89HuT1jg9V+wFeJcyMAwG -A1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIhAPLnEeWPNeN7eDCEYRitBfyO -X1yf2kzOm4ohBE5GY9gzAiBCq7HOSkzQDkelmQCCCpGXf/UwYNgQJjSoeGfk0j1a -TQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIBhDCCASmgAwIBAgIJALQrf4QDot4IMAoGCCqGSM49BAMCMB4xHDAaBgNVBAMM -E3MzLmRvY2tlci5tZW5kZXIuaW8wHhcNMTYxMjE0MTk1MjQ2WhcNMjYxMjEyMTk1 -MjQ2WjAeMRwwGgYDVQQDDBNzMy5kb2NrZXIubWVuZGVyLmlvMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAEEc/Y3T+l3DvINePkpvVZORMIdHVs29jgsl48ia7z/NRX -HlKtKxVGJyFN5Y7sBZeLgBYH3F4Bo3KfmxI7ad0tI6NQME4wHQYDVR0OBBYEFIUm -cip00QZYpe4ULflbGNJan+Y9MB8GA1UdIwQYMBaAFIUmcip00QZYpe4ULflbGNJa -n+Y9MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhANHij9VZBDHOUPaC -pFiagnWnYL2HBR72W1xTKQbrLLTXAiEAvpwA4HzSnGmLd3010+jqQuMRHArN5WaX -h0fy7niBbIQ= ------END CERTIFICATE----- diff --git a/support/testing/tests/package/test_mender.py b/support/testing/tests/package/test_mender.py deleted file mode 100644 index 14440c9527..0000000000 --- a/support/testing/tests/package/test_mender.py +++ /dev/null @@ -1,72 +0,0 @@ -import os - -import infra.basetest - - -class TestMenderInfra(infra.basetest.BRTest): - config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ - """ - BR2_PACKAGE_MENDER=y - BR2_PACKAGE_HOST_MENDER_ARTIFACT=y - BR2_TARGET_ROOTFS_CPIO=y - BR2_ROOTFS_POST_BUILD_SCRIPT="{}" - BR2_ROOTFS_OVERLAY="{}" - """.format( - infra.filepath("tests/package/test_mender/post-build.sh"), - # overlay to add a fake 'fw_printenv', used by Mender - infra.filepath("tests/package/test_mender/rootfs-overlay")) - - def base_test_run(self): - cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") - self.emulator.boot(arch="armv5", kernel="builtin", - options=["-initrd", cpio_file]) - self.emulator.login() - - def run_mender_test(self): - self.assertRunOk("ps aux | egrep [m]ender") - - # Check if a simple Mender command is correctly executed - self.assertRunOk("mender -log-level debug show-artifact") - self.assertRunOk("mender -log-level debug show-artifact | grep 'RUNTIME_TEST_ARTIFACT_NAME'") - cmd = "mender show-artifact 2>&1 | grep -i 'err'" # Check if no 'error' among the traces - _, exit_code = self.emulator.run(cmd) - self.assertEqual(exit_code, 1) - - -class TestMenderRW(TestMenderInfra): - def test_run(self): - TestMenderInfra.base_test_run(self) - - # Check if the Daemon is running - self.assertRunOk("ls /var/run/mender.pid") - self.run_mender_test() - - -class TestMenderRO(TestMenderInfra): - config = \ - """ - {} - # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set - """.format(TestMenderInfra.config) - - def test_run(self): - TestMenderInfra.base_test_run(self) - - # Check if the Daemon is running - self.assertRunOk("ls /var/run/mender.pid") - self.run_mender_test() - - -# gitlab-runner: large -class TestMenderSystemd(TestMenderInfra): - config = \ - """ - {} - BR2_INIT_SYSTEMD=y - """.format(TestMenderInfra.config) - - def test_run(self): - TestMenderInfra.base_test_run(self) - output, _ = self.emulator.run("systemctl is-active mender-client") - self.assertEqual(output[0], "active") - self.run_mender_test() diff --git a/support/testing/tests/package/test_mender/post-build.sh b/support/testing/tests/package/test_mender/post-build.sh deleted file mode 100755 index 1afa231082..0000000000 --- a/support/testing/tests/package/test_mender/post-build.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -set -e -DEVICE_TYPE="buildroot-arm" -ARTIFACT_NAME="RUNTIME_TEST_ARTIFACT_NAME" - -generate_mender_bootstrap_artifact() { - "${HOST_DIR}"/bin/mender-artifact \ - write bootstrap-artifact \ - --artifact-name "${ARTIFACT_NAME}" \ - --device-type "${DEVICE_TYPE}" \ - --provides "rootfs-image.version:${ARTIFACT_NAME}" \ - --clears-provides "rootfs-image.*" \ - --output-path "${TARGET_DIR}"/var/lib/mender/bootstrap.mender \ - --version 3 -} - -function mender_fixup() { - rm -rf "${TARGET_DIR}"/var/lib/mender - mkdir -p "${TARGET_DIR}"/var/lib/mender - echo "device_type=${DEVICE_TYPE}" > "${TARGET_DIR}"/var/lib/mender/device_type - -} - -mender_fixup -generate_mender_bootstrap_artifact diff --git a/support/testing/tests/package/test_mender/rootfs-overlay/etc/mender/artifact_info b/support/testing/tests/package/test_mender/rootfs-overlay/etc/mender/artifact_info deleted file mode 100644 index 4d54b8f89c..0000000000 --- a/support/testing/tests/package/test_mender/rootfs-overlay/etc/mender/artifact_info +++ /dev/null @@ -1 +0,0 @@ -artifact_name=RUNTIME_TEST_ARTIFACT_NAME diff --git a/support/testing/tests/package/test_mender/rootfs-overlay/usr/bin/fw_printenv b/support/testing/tests/package/test_mender/rootfs-overlay/usr/bin/fw_printenv deleted file mode 100755 index c002a0f2b8..0000000000 --- a/support/testing/tests/package/test_mender/rootfs-overlay/usr/bin/fw_printenv +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -# Fake 'fw_printenv' because UBoot is not installed: print some plausible 'key-value' -echo "bootcount=0" -echo "mender_boot_part=rootfs" -echo "upgrade_available=0" -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 01/77] Remove mender packages 2026-09-19 15:57 ` [Buildroot] [PATCH v2 01/77] Remove mender packages Bernd Kuhls @ 2026-09-20 10:14 ` Thomas Petazzoni via buildroot 2026-09-20 10:33 ` Adam Duskett 0 siblings, 1 reply; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 10:14 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Adam Duskett, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Hello Bernd, On Sat, Sep 19, 2026 at 05:57:26PM +0200, Bernd Kuhls wrote: > Building the current mender version 3.5.3 with OpenSSL 4.0.2 is broken: FYI, I am not a big fan of removing Mender. It is a widely used and modern OTA solution, and it makes a lot of sense to have it packaged in Buildroot. We have not been the best at merging the patches from Adam Duskett keep the Mender packaging up-to-date, but I still believe Mender is very valuable to have in Buildroot. Its rewrite in C++ in its v4 makes Mender even more relevant I believe. Best regards, Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 01/77] Remove mender packages 2026-09-20 10:14 ` Thomas Petazzoni via buildroot @ 2026-09-20 10:33 ` Adam Duskett 2026-09-20 10:48 ` Adam Duskett 2026-09-21 16:38 ` Thomas Petazzoni via buildroot 0 siblings, 2 replies; 107+ messages in thread From: Adam Duskett @ 2026-09-20 10:33 UTC (permalink / raw) To: Thomas Petazzoni Cc: Bernd Kuhls, buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Adam Duskett, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark [-- Attachment #1.1: Type: text/plain, Size: 1345 bytes --] Hi Thomas; On Sun, 20 Sept 2026, 12:17 Thomas Petazzoni via buildroot, < buildroot@buildroot.org> wrote: > Hello Bernd, > > On Sat, Sep 19, 2026 at 05:57:26PM +0200, Bernd Kuhls wrote: > > Building the current mender version 3.5.3 with OpenSSL 4.0.2 is broken: > > FYI, I am not a big fan of removing Mender. It is a widely used and > modern OTA solution, and it makes a lot of sense to have it packaged > in Buildroot. > > We have not been the best at merging the patches from Adam Duskett to > keep the Mender packaging up-to-date, but I still believe Mender is > very valuable to have in Buildroot. I feel like this is an understatement. It's better to say completely ignored, including my emails to the original RFC for this patch series. Is it worth even keeping these packages in Buildroot when an external tree that is actively maintained is available if the maintainers of Buildroot refuse to even look at patches to keep mender up to date? Its rewrite in C++ in its v4 makes Mender even more relevant I > believe. > > Best regards, > > Thomas > -- > Thomas Petazzoni, co-owner and CEO, Bootlin > Embedded Linux and Kernel engineering and training > https://bootlin.com > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot > [-- Attachment #1.2: Type: text/html, Size: 2546 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 01/77] Remove mender packages 2026-09-20 10:33 ` Adam Duskett @ 2026-09-20 10:48 ` Adam Duskett 2026-09-21 16:38 ` Thomas Petazzoni via buildroot 1 sibling, 0 replies; 107+ messages in thread From: Adam Duskett @ 2026-09-20 10:48 UTC (permalink / raw) To: Thomas Petazzoni Cc: Bernd Kuhls, buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Adam Duskett, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark [-- Attachment #1.1: Type: text/plain, Size: 2385 bytes --] Again, I want to reiterate, that I have a patch series that gets Buildroot ready for mender 5.1.0 here: :// patchwork.buildroot.org/project/buildroot/list/?submitter=43 With zero feedback for over a month. One of them is a simple one line hash change to a license. Another is to prevent a warning when sync is called. Why would anyone continue to try and send patches when the response is.... Nothing. No rejection, no comments, no feedback of any sort. Hours of work and testing only to be ignored is a far worse feeling and more frustrating than being outright rejected. Not only on the mailing list but also IRC. So again, it's better to remove the packages completely as the maintainers have repeatedly made it clear they do not want to even look at patches to maintain these package, let alone respond to me. That way I no longer have to patch Buildroot in the external tree, but just provide the packages. On Sun, 20 Sept 2026, 12:33 Adam Duskett, <aduskett@gmail.com> wrote: > Hi Thomas; > > On Sun, 20 Sept 2026, 12:17 Thomas Petazzoni via buildroot, < > buildroot@buildroot.org> wrote: > >> Hello Bernd, >> >> On Sat, Sep 19, 2026 at 05:57:26PM +0200, Bernd Kuhls wrote: >> > Building the current mender version 3.5.3 with OpenSSL 4.0.2 is broken: >> >> FYI, I am not a big fan of removing Mender. It is a widely used and >> modern OTA solution, and it makes a lot of sense to have it packaged >> in Buildroot. >> >> We have not been the best at merging the patches from Adam Duskett to >> keep the Mender packaging up-to-date, but I still believe Mender is >> very valuable to have in Buildroot. > > > I feel like this is an understatement. It's better to say completely > ignored, including my emails to the original RFC for this patch series. Is > it worth even keeping these packages in Buildroot when an external tree > that is actively maintained is available if the maintainers of Buildroot > refuse to even look at patches to keep mender up to date? > > > > Its rewrite in C++ in its v4 makes Mender even more relevant I >> believe. >> >> Best regards, >> >> Thomas >> -- >> Thomas Petazzoni, co-owner and CEO, Bootlin >> Embedded Linux and Kernel engineering and training >> https://bootlin.com >> _______________________________________________ >> buildroot mailing list >> buildroot@buildroot.org >> https://lists.buildroot.org/mailman/listinfo/buildroot >> > [-- Attachment #1.2: Type: text/html, Size: 4092 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 01/77] Remove mender packages 2026-09-20 10:33 ` Adam Duskett 2026-09-20 10:48 ` Adam Duskett @ 2026-09-21 16:38 ` Thomas Petazzoni via buildroot 2026-09-21 18:04 ` Adam Duskett 1 sibling, 1 reply; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-21 16:38 UTC (permalink / raw) To: Adam Duskett Cc: Bernd Kuhls, buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Adam Duskett, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Hello Adam, On Sun, Sep 20, 2026 at 12:33:08PM +0200, Adam Duskett wrote: > I feel like this is an understatement. It's better to say completely ignored, > including my emails to the original RFC for this patch series. Is it worth even > keeping these packages in Buildroot when an external tree that is actively > maintained is available if the maintainers of Buildroot refuse to even look at > patches to keep mender up to date? Thanks for your feedback. Based on how you phrase your feedback, it seems like you're somehow taking it personally, as if it was specifically your contributions that were being ignored. In case this wasn't already obvious: there is nothing wrong specifically about your contributions. We currently have a backlog of 700-750 patches, some of them much much older than yours. While I understand the frustration that it may cause, simply being "grumpy" is not going to help in any way. What would help is having more contributors involved in the review of patches from others. Some Linux kernel subsystems now have a policy that if you want to get your patches merged, you need to help the community by reviewing patches from other developers. Regarding the idea of external trees vs. upstream: it is very much the same discussion/argument as with out-of-tree kernel drivers vs. upstream drivers. Yes, anyone can throw out-of-tree kernel drivers on any random Github repo, and yes getting the same drivers accepted upstream is going to take more effort and more time. But still, people (including you I'm pretty sure?) prefer to use upstream Linux kernel drivers, because of the community review that provides higher quality and consistency, and the long-term maintainability. Can I ask that rather than just looking at your own patches for your own specific topic, you take a look at the bigger picture, hopefully turning your "grumpiness" into more productive help/participation to the Buildroot community? This is going to be a LOT more useful. And I restate: Mender is an important piece of software of the embedded Linux ecosystem, and it makes complete sense to have good support for it in upstream Buildroot. Best regards, Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 01/77] Remove mender packages 2026-09-21 16:38 ` Thomas Petazzoni via buildroot @ 2026-09-21 18:04 ` Adam Duskett 2026-09-21 18:09 ` James Hilliard 2026-09-22 6:42 ` Thomas Petazzoni via buildroot 0 siblings, 2 replies; 107+ messages in thread From: Adam Duskett @ 2026-09-21 18:04 UTC (permalink / raw) To: Thomas Petazzoni Cc: Bernd Kuhls, buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Adam Duskett, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark [-- Attachment #1.1: Type: text/plain, Size: 3505 bytes --] Hello Thomas; On Mon, 21 Sept 2026, 18:38 Thomas Petazzoni, <thomas.petazzoni@bootlin.com> wrote: > Hello Adam, > > On Sun, Sep 20, 2026 at 12:33:08PM +0200, Adam Duskett wrote: > > > I feel like this is an understatement. It's better to say completely > ignored, > > including my emails to the original RFC for this patch series. Is it > worth even > > keeping these packages in Buildroot when an external tree that is > actively > > maintained is available if the maintainers of Buildroot refuse to even > look at > > patches to keep mender up to date? > > Thanks for your feedback. Based on how you phrase your feedback, it > seems like you're somehow taking it personally, as if it was > specifically your contributions that were being ignored. > Nope. Other patches not from me such as the qmake QT6 series is also ignored. > > > In case this wasn't already obvious: there is nothing wrong > specifically about your contributions. We currently have a backlog of > 700-750 patches, some of them much much older than yours. > Which proves my point entirely. The current system does not work. The exact same problems from over a decade ago are the exact same problems today. https://lists.buildroot.org/pipermail/buildroot/2015-March/108783.html > > While I understand the frustration that it may cause, simply being > "grumpy" is not going to help in any way. What would help is having more contributors involved in the review of patches from others. Don't be condescending. This is the same line that has been used for over a decade. Reviews are also ignored and maintainers insist on nit picking every single patch. > Some > Linux kernel subsystems now have a policy that if you want to get your > patches merged, you need to help the community by reviewing patches > from other developers. > Regarding the idea of external trees vs. upstream: it is very much the > same discussion/argument as with out-of-tree kernel drivers > vs. upstream drivers. Yes, anyone can throw out-of-tree kernel drivers > on any random Github repo, and yes getting the same drivers accepted > upstream is going to take more effort and more time. But still, people > (including you I'm pretty sure?) prefer to use upstream Linux kernel > drivers, because of the community review that provides higher quality > and consistency, and the long-term maintainability. > > Can I ask that rather than just looking at your own patches for your > own specific topic, you take a look at the bigger picture, hopefully > turning your "grumpiness" into more productive help/participation to > the Buildroot community? This is going to be a LOT more useful. > Again, don't be condescending. I was CCed on a patch series, I put in my two cents. If my opinion wasn't wanted then don't include me on the email. > > > And I restate: Mender is an important piece of software of the > embedded Linux ecosystem, and it makes complete sense to have good > support for it in upstream Buildroot. > Then perhaps one of the maintainers can step up and update the package? I wasn't being "grumpy" as you put it when I said an external tree is easier for me to maintain. I choose not to deal with the endless nitpicking fand bikeshedding rom the maintainers, as I have voiced my frustrations with the maintainers and developers for more than a decade and nothing has changed. Adam > > Best regards, > > Thomas > -- > Thomas Petazzoni, co-owner and CEO, Bootlin > Embedded Linux and Kernel engineering and training > https://bootlin.com > [-- Attachment #1.2: Type: text/html, Size: 5680 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 01/77] Remove mender packages 2026-09-21 18:04 ` Adam Duskett @ 2026-09-21 18:09 ` James Hilliard 2026-09-22 6:48 ` Thomas Petazzoni via buildroot 2026-09-22 6:42 ` Thomas Petazzoni via buildroot 1 sibling, 1 reply; 107+ messages in thread From: James Hilliard @ 2026-09-21 18:09 UTC (permalink / raw) To: Adam Duskett Cc: Thomas Petazzoni, Bernd Kuhls, buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Adam Duskett, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, Giulio Benetti, Karoly Kasza, Martin Bark On Mon, Sep 21, 2026 at 12:04 PM Adam Duskett <aduskett@gmail.com> wrote: > > Hello Thomas; > > On Mon, 21 Sept 2026, 18:38 Thomas Petazzoni, <thomas.petazzoni@bootlin.com> wrote: >> >> Hello Adam, >> >> On Sun, Sep 20, 2026 at 12:33:08PM +0200, Adam Duskett wrote: >> >> > I feel like this is an understatement. It's better to say completely ignored, >> > including my emails to the original RFC for this patch series. Is it worth even >> > keeping these packages in Buildroot when an external tree that is actively >> > maintained is available if the maintainers of Buildroot refuse to even look at >> > patches to keep mender up to date? >> >> Thanks for your feedback. Based on how you phrase your feedback, it >> seems like you're somehow taking it personally, as if it was >> specifically your contributions that were being ignored. > > Nope. Other patches not from me such as the qmake QT6 series is also ignored. >> >> >> >> In case this wasn't already obvious: there is nothing wrong >> specifically about your contributions. We currently have a backlog of >> 700-750 patches, some of them much much older than yours. > > Which proves my point entirely. The current system does not work. The exact same problems from over a decade ago are the exact same problems today. https://lists.buildroot.org/pipermail/buildroot/2015-March/108783.html Maybe we should see if it's possible to enable sashiko reviews for buildroot?: https://github.com/sashiko-dev/sashiko >> >> >> While I understand the frustration that it may cause, simply being >> "grumpy" is not going to help in any way. What would help is having >> >> more contributors involved in the review of patches from others. > > Don't be condescending. This is the same line that has been used for over a decade. Reviews are also ignored and maintainers insist on nit picking every single patch. >> >> Some >> Linux kernel subsystems now have a policy that if you want to get your >> patches merged, you need to help the community by reviewing patches >> from other developers. >> >> >> Regarding the idea of external trees vs. upstream: it is very much the >> same discussion/argument as with out-of-tree kernel drivers >> vs. upstream drivers. Yes, anyone can throw out-of-tree kernel drivers >> on any random Github repo, and yes getting the same drivers accepted >> upstream is going to take more effort and more time. But still, people >> (including you I'm pretty sure?) prefer to use upstream Linux kernel >> drivers, because of the community review that provides higher quality >> and consistency, and the long-term maintainability. >> >> Can I ask that rather than just looking at your own patches for your >> own specific topic, you take a look at the bigger picture, hopefully >> turning your "grumpiness" into more productive help/participation to >> the Buildroot community? This is going to be a LOT more useful. > > Again, don't be condescending. I was CCed on a patch series, I put in my two cents. If my opinion wasn't wanted then don't include me on the email. >> >> >> >> And I restate: Mender is an important piece of software of the >> embedded Linux ecosystem, and it makes complete sense to have good >> support for it in upstream Buildroot. > > Then perhaps one of the maintainers can step up and update the package? I wasn't being "grumpy" as you put it when I said an external tree is easier for me to maintain. I choose not to deal with the endless nitpicking fand bikeshedding rom the maintainers, as I have voiced my frustrations with the maintainers and developers for more than a decade and nothing has changed. > > Adam >> >> >> Best regards, >> >> Thomas >> -- >> Thomas Petazzoni, co-owner and CEO, Bootlin >> Embedded Linux and Kernel engineering and training >> https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 01/77] Remove mender packages 2026-09-21 18:09 ` James Hilliard @ 2026-09-22 6:48 ` Thomas Petazzoni via buildroot 2026-09-22 7:08 ` Koen Martens 0 siblings, 1 reply; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-22 6:48 UTC (permalink / raw) To: James Hilliard Cc: Adam Duskett, Bernd Kuhls, buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Adam Duskett, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, Giulio Benetti, Karoly Kasza, Martin Bark On Mon, Sep 21, 2026 at 12:09:07PM -0600, James Hilliard wrote: > > Which proves my point entirely. The current system does not > > work. The exact same problems from over a decade ago are the exact > > same problems > > today. https://lists.buildroot.org/pipermail/buildroot/2015-March/108783.html > > > Maybe we should see if it's possible to enable sashiko reviews for buildroot?: > https://github.com/sashiko-dev/sashiko On this topic: Dowan, an intern from Romain Naour at Smile, has worked on enabling AI-assisted review of Buildroot, see: https://github.com/Dowan35/BRAssistant Dowan did send a few e-mail reviews based on the result of this tool, and the review comments that it gave were correct and relevant. But overall, yes, AI-assisted review would definitely be welcome. A large majority of the reviews point out the same problems over and over again, so it shouldn't be too difficult for an AI to learn from this. Best regards, Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 01/77] Remove mender packages 2026-09-22 6:48 ` Thomas Petazzoni via buildroot @ 2026-09-22 7:08 ` Koen Martens 0 siblings, 0 replies; 107+ messages in thread From: Koen Martens @ 2026-09-22 7:08 UTC (permalink / raw) To: Thomas Petazzoni, James Hilliard Cc: Adam Duskett, Bernd Kuhls, buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Adam Duskett, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, Giulio Benetti, Karoly Kasza, Martin Bark [-- Attachment #1.1: Type: text/plain, Size: 418 bytes --] tis 2026-09-22 klockan 08:48 +0200 skrev Thomas Petazzoni: > But overall, yes, AI-assisted review would definitely be welcome. A > large majority of the reviews point out the same problems over and > over again, so it shouldn't be too difficult for an AI to learn from > this. Please remove me from further discussion on this topic. I shall also remove myself from the DEVELOPERS list. Thanks, Koen [-- Attachment #1.2: Type: text/html, Size: 1256 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 01/77] Remove mender packages 2026-09-21 18:04 ` Adam Duskett 2026-09-21 18:09 ` James Hilliard @ 2026-09-22 6:42 ` Thomas Petazzoni via buildroot 1 sibling, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-22 6:42 UTC (permalink / raw) To: Adam Duskett Cc: Bernd Kuhls, buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Adam Duskett, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Hello Adam, On Mon, Sep 21, 2026 at 08:04:10PM +0200, Adam Duskett wrote: > Thanks for your feedback. Based on how you phrase your feedback, it > seems like you're somehow taking it personally, as if it was > specifically your contributions that were being ignored. > > Nope. Other patches not from me such as the qmake QT6 series is also ignored. Indeed, that's a global problem and there is nothing personal about you or your contributions. > While I understand the frustration that it may cause, simply being > "grumpy" is not going to help in any way. What would help is having > more contributors involved in the review of patches from others. > > Don't be condescending. This is the same line that has been used for over a > decade. Reviews are also ignored and maintainers insist on nit picking every > single patch. Please do not over-interpret my words: keep in mind that I am not a native speaker, and in this sort of complex written conversation, it is difficult to convey my exact state of mind. I am not condescending at all. > Can I ask that rather than just looking at your own patches for your > own specific topic, you take a look at the bigger picture, hopefully > turning your "grumpiness" into more productive help/participation to > the Buildroot community? This is going to be a LOT more useful. > > Again, don't be condescending. I was CCed on a patch series, I put in my two > cents. If my opinion wasn't wanted then don't include me on the email. Your opinion is wanted. > And I restate: Mender is an important piece of software of the > embedded Linux ecosystem, and it makes complete sense to have good > support for it in upstream Buildroot. > > Then perhaps one of the maintainers can step up and update the package? I > wasn't being "grumpy" as you put it when I said an external tree is easier for > me to maintain. I choose not to deal with the endless nitpicking fand > bikeshedding rom the maintainers, as I have voiced my frustrations with the > maintainers and developers for more than a decade and nothing has changed. We are not bikeshedding, we are ensuring a proper consistency and quality level. Just like what happens in every open-source project that is properly maintained. Before Peter Korsgaard took over the maintenance of Buildroot in 2008-2009, multiple people not coordinating with each other and not having a solid idea of how things should be done had commit access. And trust me, the result was atrocious. Every problem was solved in a different way in different places, the code had no consistency. It was very very difficult to work with. So what you (hopefully?) like in Buildroot today is in large part due to what you call "endless nitpicking and bikeshedding from the maintainers". Best regards, Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 02/77] package/heirloom-mailx: remove package 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 01/77] Remove mender packages Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 12:33 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 03/77] package/qt5/qt5opcua: " Bernd Kuhls ` (74 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Building the package with OpenSSL 4.0.2 is broken: openssl.c: In function 'ssl_select_method': openssl.c:223:34: error: implicit declaration of function 'SSLv3_client_method'; did you mean 'SSLv23_client_method'? [-Wimplicit-function-declaration] 223 | method = SSLv3_client_method(); | ^~~~~~~~~~~~~~~~~~~ | SSLv23_client_method openssl.c:223:32: error: assignment to 'const SSL_METHOD *' {aka 'const struct ssl_method_st *'} from 'int' makes pointer from integer without a cast [-Wint-conversion] 223 | method = SSLv3_client_method(); | ^ openssl.c:225:34: error: implicit declaration of function 'TLSv1_client_method'; did you mean 'TLS_client_method'? [-Wimplicit-function-declaration] 225 | method = TLSv1_client_method(); | ^~~~~~~~~~~~~~~~~~~ | TLS_client_method openssl.c:225:32: error: assignment to 'const SSL_METHOD *' {aka 'const struct ssl_method_st *'} from 'int' makes pointer from integer without a cast [-Wint-conversion] 225 | method = TLSv1_client_method(); | ^ openssl.c: In function 'ssl_check_host': openssl.c:342:59: error: invalid use of incomplete typedef 'ASN1_IA5STRING' {aka 'struct asn1_string_st'} 342 | gen->d.ia5->data); | ^~ openssl.c:344:67: error: invalid use of incomplete typedef 'ASN1_IA5STRING' {aka 'struct asn1_string_st'} 344 | (char *)gen->d.ia5->data) openssl.c: In function 'smime_verify': openssl.c:610:67: error: invalid use of incomplete typedef 'ASN1_IA5STRING' {aka 'struct asn1_string_st'} 610 | gen->d.ia5->data, Debian removed the package in 2015: https://tracker.debian.org/news/727466/heirloom-mailx-removed-from-testing/ The last upstream release dates back to 2005: https://sourceforge.net/projects/nail/files/nail/ Dropped BR2_TOOLCHAIN_HAS_GCC_BUG_101916 because no other uses this option after the removal of heirloom-mailx. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> --- Config.in.legacy | 7 ++ DEVELOPERS | 1 - package/Config.in | 1 - ...k-symbol-optopt-to-fix-FTBFS-on-mips.patch | 57 --------- ...-support-since-it-is-no-longer-suppo.patch | 39 ------ ...-warning-warning-macro-N-not-defined.patch | 23 ---- ...0011-outof-Introduce-expandaddr-flag.patch | 69 ----------- ...ption-processing-for-email-addresses.patch | 77 ------------ ...onditionally-require-wordexp-support.patch | 111 ------------------ ...bname-Invoke-wordexp-with-WRDE_NOCMD.patch | 29 ----- .../0015-usr-sbin-sendmail.patch | 36 ------ .../0101-fix-libressl-support.patch | 55 --------- package/heirloom-mailx/Config.in | 22 ---- package/heirloom-mailx/heirloom-mailx.hash | 5 - package/heirloom-mailx/heirloom-mailx.mk | 51 -------- toolchain/Config.in | 7 -- 16 files changed, 7 insertions(+), 583 deletions(-) delete mode 100644 package/heirloom-mailx/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch delete mode 100644 package/heirloom-mailx/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch delete mode 100644 package/heirloom-mailx/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch delete mode 100644 package/heirloom-mailx/0011-outof-Introduce-expandaddr-flag.patch delete mode 100644 package/heirloom-mailx/0012-unpack-Disable-option-processing-for-email-addresses.patch delete mode 100644 package/heirloom-mailx/0013-fio.c-Unconditionally-require-wordexp-support.patch delete mode 100644 package/heirloom-mailx/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch delete mode 100644 package/heirloom-mailx/0015-usr-sbin-sendmail.patch delete mode 100644 package/heirloom-mailx/0101-fix-libressl-support.patch delete mode 100644 package/heirloom-mailx/Config.in delete mode 100644 package/heirloom-mailx/heirloom-mailx.hash delete mode 100644 package/heirloom-mailx/heirloom-mailx.mk diff --git a/Config.in.legacy b/Config.in.legacy index a75343cfbe..e20e564af5 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -146,6 +146,13 @@ endif comment "Legacy options removed in 2026.11" +config BR2_PACKAGE_HEIRLOOM_MAILX + bool "heirloom-mailx has been removed" + select BR2_LEGACY + help + The heirloom-mailx package has been removed because it is + incompatible with OpenSSL >= 4.x + config BR2_PACKAGE_MENDER bool "mender has been removed" select BR2_LEGACY diff --git a/DEVELOPERS b/DEVELOPERS index 505952b399..b7c354245a 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -3255,7 +3255,6 @@ F: package/gcc/ F: package/genext2fs/ F: package/getent/ F: package/gnu-efi/ -F: package/heirloom-mailx/ F: package/igh-ethercat/ F: package/intltool/ F: package/jh71xx-tools/ diff --git a/package/Config.in b/package/Config.in index f2d5c4a5cb..d556128ce7 100644 --- a/package/Config.in +++ b/package/Config.in @@ -2362,7 +2362,6 @@ menu "Mail" source "package/dovecot/Config.in" source "package/exim/Config.in" source "package/fetchmail/Config.in" - source "package/heirloom-mailx/Config.in" source "package/libesmtp/Config.in" source "package/msmtp/Config.in" source "package/mutt/Config.in" diff --git a/package/heirloom-mailx/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch b/package/heirloom-mailx/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch deleted file mode 100644 index 967344159e..0000000000 --- a/package/heirloom-mailx/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch +++ /dev/null @@ -1,57 +0,0 @@ -From: Luk Claes <luk@debian.org> -Date: Sat, 4 Jul 2009 10:54:53 +0200 -Subject: Don't reuse weak symbol optopt to fix FTBFS on mips* - -Upstream: https://sources.debian.org/patches/heirloom-mailx/12.5-4/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch/ -Signed-off-by: Thomas Perale <thomas.perale@mind.be> ---- - getopt.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/getopt.c b/getopt.c -index 83ce628..82e983c 100644 ---- a/getopt.c -+++ b/getopt.c -@@ -43,7 +43,7 @@ typedef int ssize_t; - char *optarg; - int optind = 1; - int opterr = 1; --int optopt; -+int optoptc; - - static void - error(const char *s, int c) -@@ -69,7 +69,7 @@ error(const char *s, int c) - *bp++ = *s++; - while (*msg) - *bp++ = *msg++; -- *bp++ = optopt; -+ *bp++ = optoptc; - *bp++ = '\n'; - write(2, buf, bp - buf); - ac_free(buf); -@@ -101,13 +101,13 @@ getopt(int argc, char *const argv[], const char *optstring) - } - curp = &argv[optind][1]; - } -- optopt = curp[0] & 0377; -+ optoptc = curp[0] & 0377; - while (optstring[0]) { - if (optstring[0] == ':') { - optstring++; - continue; - } -- if ((optstring[0] & 0377) == optopt) { -+ if ((optstring[0] & 0377) == optoptc) { - if (optstring[1] == ':') { - if (curp[1] != '\0') { - optarg = (char *)&curp[1]; -@@ -127,7 +127,7 @@ getopt(int argc, char *const argv[], const char *optstring) - optind++; - optarg = 0; - } -- return optopt; -+ return optoptc; - } - optstring++; - } diff --git a/package/heirloom-mailx/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch b/package/heirloom-mailx/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch deleted file mode 100644 index 156aea7a37..0000000000 --- a/package/heirloom-mailx/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch +++ /dev/null @@ -1,39 +0,0 @@ -From: Hilko Bengen <bengen@debian.org> -Date: Wed, 27 Apr 2011 00:18:42 +0200 -Subject: Patched out SSL2 support since it is no longer supported by OpenSSL. - -Upstream: https://sources.debian.org/patches/heirloom-mailx/12.5-4/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch/ -Signed-off-by: Thomas Perale <thomas.perale@mind.be> ---- - mailx.1 | 2 +- - openssl.c | 4 +--- - 2 files changed, 2 insertions(+), 4 deletions(-) - -diff --git a/mailx.1 b/mailx.1 -index 417ea04..a02e430 100644 ---- a/mailx.1 -+++ b/mailx.1 -@@ -3575,7 +3575,7 @@ Only applicable if SSL/TLS support is built using OpenSSL. - .TP - .B ssl-method - Selects a SSL/TLS protocol version; --valid values are `ssl2', `ssl3', and `tls1'. -+valid values are `ssl3', and `tls1'. - If unset, the method is selected automatically, - if possible. - .TP -diff --git a/openssl.c b/openssl.c -index b4e33fc..44fe4e5 100644 ---- a/openssl.c -+++ b/openssl.c -@@ -216,9 +216,7 @@ ssl_select_method(const char *uhp) - - cp = ssl_method_string(uhp); - if (cp != NULL) { -- if (equal(cp, "ssl2")) -- method = SSLv2_client_method(); -- else if (equal(cp, "ssl3")) -+ if (equal(cp, "ssl3")) - method = SSLv3_client_method(); - else if (equal(cp, "tls1")) - method = TLSv1_client_method(); diff --git a/package/heirloom-mailx/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch b/package/heirloom-mailx/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch deleted file mode 100644 index 724f7c8b81..0000000000 --- a/package/heirloom-mailx/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch +++ /dev/null @@ -1,23 +0,0 @@ -From: Hilko Bengen <bengen@debian.org> -Date: Sat, 14 Apr 2012 20:22:43 +0200 -Subject: Fixed Lintian warning (warning: macro `N' not defined) - -Upstream: https://sources.debian.org/patches/heirloom-mailx/12.5-4/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch/ -Signed-off-by: Thomas Perale <thomas.perale@mind.be> ---- - mailx.1 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mailx.1 b/mailx.1 -index a02e430..b0723bd 100644 ---- a/mailx.1 -+++ b/mailx.1 -@@ -3781,7 +3781,7 @@ you could examine the first message by giving the command: - .sp - .fi - which might cause --.N mailx -+.I mailx - to respond with, for example: - .nf - .sp diff --git a/package/heirloom-mailx/0011-outof-Introduce-expandaddr-flag.patch b/package/heirloom-mailx/0011-outof-Introduce-expandaddr-flag.patch deleted file mode 100644 index 7825b788bc..0000000000 --- a/package/heirloom-mailx/0011-outof-Introduce-expandaddr-flag.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 9984ae5cb0ea0d61df1612b06952a61323c083d9 Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fweimer@redhat.com> -Date: Mon, 17 Nov 2014 11:13:38 +0100 -Subject: [PATCH] outof: Introduce expandaddr flag - -Document that address expansion is disabled unless the expandaddr -binary option is set. - -This has been assigned CVE-2014-7844 for BSD mailx, but it is not -a vulnerability in Heirloom mailx because this feature was documented. - -CVE: CVE-2014-7844 -Upstream: https://sources.debian.org/patches/heirloom-mailx/12.5-4/0011-outof-Introduce-expandaddr-flag.patch/ -Signed-off-by: Thomas Perale <thomas.perale@mind.be> ---- - mailx.1 | 14 ++++++++++++++ - names.c | 3 +++ - 2 files changed, 17 insertions(+) - -diff --git a/mailx.1 b/mailx.1 -index 70a7859..22a171b 100644 ---- a/mailx.1 -+++ b/mailx.1 -@@ -656,6 +656,14 @@ but any reply returned to the machine - will have the system wide alias expanded - as all mail goes through sendmail. - .SS "Recipient address specifications" -+If the -+.I expandaddr -+option is not set (the default), recipient addresses must be names of -+local mailboxes or Internet mail addresses. -+.PP -+If the -+.I expandaddr -+option is set, the following rules apply: - When an address is used to name a recipient - (in any of To, Cc, or Bcc), - names of local mail folders -@@ -2391,6 +2399,12 @@ and exits immediately. - If this option is set, - \fImailx\fR starts even with an empty mailbox. - .TP -+.B expandaddr -+Causes -+.I mailx -+to expand message recipient addresses, as explained in the section, -+Recipient address specifications. -+.TP - .B flipr - Exchanges the - .I Respond -diff --git a/names.c b/names.c -index 66e976b..c69560f 100644 ---- a/names.c -+++ b/names.c -@@ -268,6 +268,9 @@ outof(struct name *names, FILE *fo, struct header *hp) - FILE *fout, *fin; - int ispipe; - -+ if (value("expandaddr") == NULL) -+ return names; -+ - top = names; - np = names; - time(&now); --- -1.9.3 - - diff --git a/package/heirloom-mailx/0012-unpack-Disable-option-processing-for-email-addresses.patch b/package/heirloom-mailx/0012-unpack-Disable-option-processing-for-email-addresses.patch deleted file mode 100644 index 64a1e7f246..0000000000 --- a/package/heirloom-mailx/0012-unpack-Disable-option-processing-for-email-addresses.patch +++ /dev/null @@ -1,77 +0,0 @@ -From e34e2ac67b80497080ebecccec40c3b61456167d Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fweimer@redhat.com> -Date: Mon, 17 Nov 2014 11:14:06 +0100 -Subject: [PATCH] unpack: Disable option processing for email addresses - when calling sendmail - -Upstream: https://sources.debian.org/patches/heirloom-mailx/12.5-4/0012-unpack-Disable-option-processing-for-email-addresses.patch/ -Signed-off-by: Thomas Perale <thomas.perale@mind.be> ---- - extern.h | 2 +- - names.c | 8 ++++++-- - sendout.c | 2 +- - 3 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/extern.h b/extern.h -index 6b85ba0..8873fe8 100644 ---- a/extern.h -+++ b/extern.h -@@ -396,7 +396,7 @@ struct name *outof(struct name *names, FILE *fo, struct header *hp); - int is_fileaddr(char *name); - struct name *usermap(struct name *names); - struct name *cat(struct name *n1, struct name *n2); --char **unpack(struct name *np); -+char **unpack(struct name *smopts, struct name *np); - struct name *elide(struct name *names); - int count(struct name *np); - struct name *delete_alternates(struct name *np); -diff --git a/names.c b/names.c -index c69560f..45bbaed 100644 ---- a/names.c -+++ b/names.c -@@ -549,7 +549,7 @@ cat(struct name *n1, struct name *n2) - * Return an error if the name list won't fit. - */ - char ** --unpack(struct name *np) -+unpack(struct name *smopts, struct name *np) - { - char **ap, **top; - struct name *n; -@@ -564,7 +564,7 @@ unpack(struct name *np) - * the terminating 0 pointer. Additional spots may be needed - * to pass along -f to the host mailer. - */ -- extra = 2; -+ extra = 3 + count(smopts); - extra++; - metoo = value("metoo") != NULL; - if (metoo) -@@ -581,6 +581,10 @@ unpack(struct name *np) - *ap++ = "-m"; - if (verbose) - *ap++ = "-v"; -+ for (; smopts != NULL; smopts = smopts->n_flink) -+ if ((smopts->n_type & GDEL) == 0) -+ *ap++ = smopts->n_name; -+ *ap++ = "--"; - for (; n != NULL; n = n->n_flink) - if ((n->n_type & GDEL) == 0) - *ap++ = n->n_name; -diff --git a/sendout.c b/sendout.c -index 7b7f2eb..c52f15d 100644 ---- a/sendout.c -+++ b/sendout.c -@@ -835,7 +835,7 @@ start_mta(struct name *to, struct name *mailargs, FILE *input, - #endif /* HAVE_SOCKETS */ - - if ((smtp = value("smtp")) == NULL) { -- args = unpack(cat(mailargs, to)); -+ args = unpack(mailargs, to); - if (debug || value("debug")) { - printf(catgets(catd, CATSET, 181, - "Sendmail arguments:")); --- -1.9.3 - - diff --git a/package/heirloom-mailx/0013-fio.c-Unconditionally-require-wordexp-support.patch b/package/heirloom-mailx/0013-fio.c-Unconditionally-require-wordexp-support.patch deleted file mode 100644 index 6938daec12..0000000000 --- a/package/heirloom-mailx/0013-fio.c-Unconditionally-require-wordexp-support.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 2bae8ecf04ec2ba6bb9f0af5b80485dd0edb427d Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fweimer@redhat.com> -Date: Mon, 17 Nov 2014 12:48:25 +0100 -Subject: [PATCH] fio.c: Unconditionally require wordexp support - -Upstream: https://sources.debian.org/patches/heirloom-mailx/12.5-4/0013-fio.c-Unconditionally-require-wordexp-support.patch/ -Signed-off-by: Thomas Perale <thomas.perale@mind.be> ---- - fio.c | 67 +++++-------------------------------------------------------------- - 1 file changed, 5 insertions(+), 62 deletions(-) - -diff --git a/fio.c b/fio.c -index 65e8f10..1529236 100644 ---- a/fio.c -+++ b/fio.c -@@ -43,12 +43,15 @@ static char sccsid[] = "@(#)fio.c 2.76 (gritter) 9/16/09"; - #endif /* not lint */ - - #include "rcv.h" -+ -+#ifndef HAVE_WORDEXP -+#error wordexp support is required -+#endif -+ - #include <sys/stat.h> - #include <sys/file.h> - #include <sys/wait.h> --#ifdef HAVE_WORDEXP - #include <wordexp.h> --#endif /* HAVE_WORDEXP */ - #include <unistd.h> - - #if defined (USE_NSS) -@@ -481,7 +484,6 @@ next: - static char * - globname(char *name) - { --#ifdef HAVE_WORDEXP - wordexp_t we; - char *cp; - sigset_t nset; -@@ -527,65 +529,6 @@ globname(char *name) - } - wordfree(&we); - return cp; --#else /* !HAVE_WORDEXP */ -- char xname[PATHSIZE]; -- char cmdbuf[PATHSIZE]; /* also used for file names */ -- int pid, l; -- char *cp, *shell; -- int pivec[2]; -- extern int wait_status; -- struct stat sbuf; -- -- if (pipe(pivec) < 0) { -- perror("pipe"); -- return name; -- } -- snprintf(cmdbuf, sizeof cmdbuf, "echo %s", name); -- if ((shell = value("SHELL")) == NULL) -- shell = SHELL; -- pid = start_command(shell, 0, -1, pivec[1], "-c", cmdbuf, NULL); -- if (pid < 0) { -- close(pivec[0]); -- close(pivec[1]); -- return NULL; -- } -- close(pivec[1]); --again: -- l = read(pivec[0], xname, sizeof xname); -- if (l < 0) { -- if (errno == EINTR) -- goto again; -- perror("read"); -- close(pivec[0]); -- return NULL; -- } -- close(pivec[0]); -- if (wait_child(pid) < 0 && WTERMSIG(wait_status) != SIGPIPE) { -- fprintf(stderr, catgets(catd, CATSET, 81, -- "\"%s\": Expansion failed.\n"), name); -- return NULL; -- } -- if (l == 0) { -- fprintf(stderr, catgets(catd, CATSET, 82, -- "\"%s\": No match.\n"), name); -- return NULL; -- } -- if (l == sizeof xname) { -- fprintf(stderr, catgets(catd, CATSET, 83, -- "\"%s\": Expansion buffer overflow.\n"), name); -- return NULL; -- } -- xname[l] = 0; -- for (cp = &xname[l-1]; *cp == '\n' && cp > xname; cp--) -- ; -- cp[1] = '\0'; -- if (strchr(xname, ' ') && stat(xname, &sbuf) < 0) { -- fprintf(stderr, catgets(catd, CATSET, 84, -- "\"%s\": Ambiguous.\n"), name); -- return NULL; -- } -- return savestr(xname); --#endif /* !HAVE_WORDEXP */ - } - - /* --- -1.9.3 - - diff --git a/package/heirloom-mailx/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch b/package/heirloom-mailx/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch deleted file mode 100644 index 378b157d8a..0000000000 --- a/package/heirloom-mailx/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 73fefa0c1ac70043ec84f2d8b8f9f683213f168d Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fweimer@redhat.com> -Date: Mon, 17 Nov 2014 13:11:32 +0100 -Subject: [PATCH] globname: Invoke wordexp with WRDE_NOCMD (CVE-2004-2771) - -CVE: CVE-2004-2771 -Upstream: https://sources.debian.org/patches/heirloom-mailx/12.5-4/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch/ -Signed-off-by: Thomas Perale <thomas.perale@mind.be> ---- - fio.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fio.c b/fio.c -index 1529236..774a204 100644 ---- a/fio.c -+++ b/fio.c -@@ -497,7 +497,7 @@ globname(char *name) - sigemptyset(&nset); - sigaddset(&nset, SIGCHLD); - sigprocmask(SIG_BLOCK, &nset, NULL); -- i = wordexp(name, &we, 0); -+ i = wordexp(name, &we, WRDE_NOCMD); - sigprocmask(SIG_UNBLOCK, &nset, NULL); - switch (i) { - case 0: --- -1.9.3 - - diff --git a/package/heirloom-mailx/0015-usr-sbin-sendmail.patch b/package/heirloom-mailx/0015-usr-sbin-sendmail.patch deleted file mode 100644 index 195b606c01..0000000000 --- a/package/heirloom-mailx/0015-usr-sbin-sendmail.patch +++ /dev/null @@ -1,36 +0,0 @@ -Description: Sendmail is at /usr/sbin/sendmail - As per Debian Policy §11.6 -Author: Ryan Kavanagh <rak@debian.org> -Origin: Debian -Forwarded: no - -Upstream: https://sources.debian.org/patches/heirloom-mailx/12.5-4/0015-usr-sbin-sendmail.patch/ -Signed-off-by: Thomas Perale <thomas.perale@mind.be> ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ -Index: heirloom-mailx-12.5/Makefile -=================================================================== ---- heirloom-mailx-12.5.orig/Makefile 2011-04-26 17:23:22.000000000 -0400 -+++ heirloom-mailx-12.5/Makefile 2015-01-27 13:20:04.733542801 -0500 -@@ -13,7 +13,7 @@ - - MAILRC = $(SYSCONFDIR)/nail.rc - MAILSPOOL = /var/mail --SENDMAIL = /usr/lib/sendmail -+SENDMAIL = /usr/sbin/sendmail - - DESTDIR = - -Index: heirloom-mailx-12.5/mailx.1 -=================================================================== ---- heirloom-mailx-12.5.orig/mailx.1 2015-01-27 13:18:49.000000000 -0500 -+++ heirloom-mailx-12.5/mailx.1 2015-01-27 13:20:32.382336867 -0500 -@@ -4922,7 +4922,7 @@ - which just acts as a proxy. - .PP - \fIMailx\fR immediately contacts the SMTP server (or --.IR \%/usr/lib/sendmail ) -+.IR \%/usr/sbin/sendmail ) - even when operating in - .I disconnected - mode. diff --git a/package/heirloom-mailx/0101-fix-libressl-support.patch b/package/heirloom-mailx/0101-fix-libressl-support.patch deleted file mode 100644 index 25cc92d580..0000000000 --- a/package/heirloom-mailx/0101-fix-libressl-support.patch +++ /dev/null @@ -1,55 +0,0 @@ -From aad28d30af6c3a74c522dd61943788e908860c84 Mon Sep 17 00:00:00 2001 -From: Adam Duskett <aduskett@gmail.com> -Date: Fri, 4 Aug 2017 07:22:47 -0400 -Subject: [PATCH] fix libressl support - -heirloom-mailx has two small issues when compiling against LibreSSL: - - RAND_egd is used (LibreSSL does not support RAND_egd) - Solution: "Guard" the code calling RAND_egd - - - SSLv3_client_method function is used (LibreSSL does not support SSLv3) - Solution: "Guard" the code with #ifndef OPENSSL_NO_SSL3 - -Upstream: N/A -Signed-off-by: Adam Duskett <aduskett@gmail.com> ---- - openssl.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/openssl.c b/openssl.c -index 44fe4e5..c4a1bb7 100644 ---- a/openssl.c -+++ b/openssl.c -@@ -137,11 +137,13 @@ ssl_rand_init(void) - - if ((cp = value("ssl-rand-egd")) != NULL) { - cp = expand(cp); -+#ifndef OPENSSL_NO_EGD - if (RAND_egd(cp) == -1) { - fprintf(stderr, catgets(catd, CATSET, 245, - "entropy daemon at \"%s\" not available\n"), - cp); - } else -+#endif - state = 1; - } else if ((cp = value("ssl-rand-file")) != NULL) { - cp = expand(cp); -@@ -216,10 +218,15 @@ ssl_select_method(const char *uhp) - - cp = ssl_method_string(uhp); - if (cp != NULL) { -+ #ifndef OPENSSL_NO_SSL3 - if (equal(cp, "ssl3")) - method = SSLv3_client_method(); - else if (equal(cp, "tls1")) - method = TLSv1_client_method(); -+ #else -+ if (equal(cp, "tls1")) -+ method = TLSv1_client_method(); -+ #endif - else { - fprintf(stderr, catgets(catd, CATSET, 244, - "Invalid SSL method \"%s\"\n"), cp); --- -2.13.3 - diff --git a/package/heirloom-mailx/Config.in b/package/heirloom-mailx/Config.in deleted file mode 100644 index ed2a519436..0000000000 --- a/package/heirloom-mailx/Config.in +++ /dev/null @@ -1,22 +0,0 @@ -config BR2_PACKAGE_HEIRLOOM_MAILX - bool "heirloom-mailx" - # uses fork() - depends on BR2_USE_MMU - depends on !BR2_STATIC_LIBS - select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL - select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC2 if BR2_PACKAGE_LIBOPENSSL - help - Heirloom mailx (previously known as nail) is a mail user - agent for Unix systems. - - It can be used as a command-line mail reader, but also more - importantly on embedded systems, as a mail composition - program and SMTP client, in order to send e-mail from shell - scripts. It supports SMTP authentication (login, plain, - cram-md5), SMTPS, MIME encoding of attachments, and more. - - http://heirloom.sourceforge.net/mailx.html - -comment "heirloom-mailx needs a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS - depends on BR2_USE_MMU diff --git a/package/heirloom-mailx/heirloom-mailx.hash b/package/heirloom-mailx/heirloom-mailx.hash deleted file mode 100644 index c42f9b6de7..0000000000 --- a/package/heirloom-mailx/heirloom-mailx.hash +++ /dev/null @@ -1,5 +0,0 @@ -# From http://snapshot.debian.org/archive/debian/20150815T155609Z/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.dsc -sha256 015ba4209135867f37a0245d22235a392b8bbed956913286b887c2e2a9a421ad heirloom-mailx_12.5.orig.tar.gz -sha256 0140cef831f966cf65a0a6ba2ed4eef4f2bfb402b7b18db7307bc42e63328ce6 heirloom-mailx_12.5-5.debian.tar.xz -# Locally computed -sha256 5ddc00aed98a0cf75fc7edfd9f3aeb1e919ae0ad5e9ff55d61f643d62d802b07 COPYING diff --git a/package/heirloom-mailx/heirloom-mailx.mk b/package/heirloom-mailx/heirloom-mailx.mk deleted file mode 100644 index 075b5f6a59..0000000000 --- a/package/heirloom-mailx/heirloom-mailx.mk +++ /dev/null @@ -1,51 +0,0 @@ -################################################################################ -# -# heirloom-mailx -# -################################################################################ - -HEIRLOOM_MAILX_VERSION = 12.5 -HEIRLOOM_MAILX_SOURCE = heirloom-mailx_$(HEIRLOOM_MAILX_VERSION).orig.tar.gz -HEIRLOOM_MAILX_SITE = http://snapshot.debian.org/archive/debian/20150815T155609Z/pool/main/h/heirloom-mailx -HEIRLOOM_MAILX_LICENSE = BSD-4-Clause, Bellcore (base64), OpenVision (imap_gssapi), RSA Data Security (md5), Network Working Group (hmac), MPL-1.1 (nss) -HEIRLOOM_MAILX_LICENSE_FILES = COPYING -HEIRLOOM_MAILX_CPE_ID_VENDOR = heirloom -HEIRLOOM_MAILX_CPE_ID_PRODUCT = mailx -# 0011-outof-Introduce-expandaddr-flag.patch -HEIRLOOM_MAILX_IGNORE_CVES += CVE-2014-7844 -# 0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch -HEIRLOOM_MAILX_IGNORE_CVES += CVE-2004-2771 - -ifeq ($(BR2_PACKAGE_OPENSSL),y) -HEIRLOOM_MAILX_DEPENDENCIES += openssl -endif - -define HEIRLOOM_MAILX_CONFIGURE_CMDS - (cd $(@D); $(TARGET_CONFIGURE_OPTS) $(SHELL) ./makeconfig) -endef - -HEIRLOOM_MAILX_CFLAGS = $(TARGET_CFLAGS) - -# -fPIC is needed to build with NIOS2 toolchains. -HEIRLOOM_MAILX_CFLAGS += -fPIC - -ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_101916),y) -HEIRLOOM_MAILX_CFLAGS += -O0 -endif - -define HEIRLOOM_MAILX_BUILD_CMDS - $(TARGET_CONFIGURE_OPTS) $(MAKE) \ - CFLAGS="$(HEIRLOOM_MAILX_CFLAGS)" \ - -C $(@D) -endef - -define HEIRLOOM_MAILX_INSTALL_TARGET_CMDS - $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ - PREFIX=/usr \ - UCBINSTALL=$(INSTALL) \ - STRIP=/bin/true \ - DESTDIR=$(TARGET_DIR) \ - install -endef - -$(eval $(generic-package)) diff --git a/toolchain/Config.in b/toolchain/Config.in index ad73204b14..7452d96122 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -196,13 +196,6 @@ config BR2_TOOLCHAIN_HAS_GCC_BUG_101915 bool default y if BR2_microblaze -# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101916 -# ICE: on SH4: Segmentation fault signal terminated program cc1. -# This bug still exists in gcc = 11.1.0 -config BR2_TOOLCHAIN_HAS_GCC_BUG_101916 - bool - default y if BR2_sh4 - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101952 # ICE: on SH4: unaligned opcodes detected in executable segment. # This bug still exists in gcc = 11.1.0 -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 02/77] package/heirloom-mailx: remove package 2026-09-19 15:57 ` [Buildroot] [PATCH v2 02/77] package/heirloom-mailx: remove package Bernd Kuhls @ 2026-09-20 12:33 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 12:33 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:27PM +0200, Bernd Kuhls wrote: > Building the package with OpenSSL 4.0.2 is broken: Thanks, patch applied. Last month, I was looking at updating heirloom-mailx by replacing it with snail which is what Debian has chosen to replace it. My WIP work is at: https://gitlab.com/tpetazzoni/buildroot/-/commit/72d6498f9531234f51e0a03eaaf3d9e3799dfd2c I don't remember in what state I stopped :) Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 03/77] package/qt5/qt5opcua: remove package 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 01/77] Remove mender packages Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 02/77] package/heirloom-mailx: remove package Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 04/77] package/qt5/qt5knx: " Bernd Kuhls ` (73 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Build is broken with the upcoming bump of OpenSSL to 4.0.2: x509/openssl_symbols.cpp: In function 'QDateTime q_getTimeFromASN1(const ASN1_TIME*)': x509/openssl_symbols.cpp:1244:31: error: invalid use of incomplete type 'const ASN1_TIME' {aka 'const struct asn1_string_st'} 1244 | size_t lTimeLength = aTime->length; x509/openssl_symbols.cpp:1245:35: error: invalid use of incomplete type 'const ASN1_TIME' {aka 'const struct asn1_string_st'} 1245 | char *pString = (char *) aTime->data; x509/openssl_symbols.cpp:1247:14: error: invalid use of incomplete type 'const ASN1_TIME' {aka 'const struct asn1_string_st'} 1247 | if (aTime->type == V_ASN1_UTCTIME) { x509/openssl_symbols.cpp:1307:21: error: invalid use of incomplete type 'const ASN1_TIME' {aka 'const struct asn1_string_st'} 1307 | } else if (aTime->type == V_ASN1_GENERALIZEDTIME) { and mbed TLS since it was bumped from 2.28.10 to 3.6.3.1 with buildroot commit 3481a9643fc7223e400ed877f08ade34d44e6b78 as seen by the autobuilders. The last release of the 5.x series dates back to 2020: https://github.com/qt/qtopcua/releases/tag/v5.15.2 Fixes: https://autobuild.buildroot.net/results/1f0/1f06b1efdde65fcd99ff79a63ed01b749788dec8/ Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Cc: Andreas Naumann <dev@andin.de> --- Config.in.legacy | 7 +++++++ DEVELOPERS | 1 - package/qt5/Config.in | 1 - package/qt5/qt5opcua/Config.in | 9 --------- package/qt5/qt5opcua/qt5opcua.hash | 10 ---------- package/qt5/qt5opcua/qt5opcua.mk | 19 ------------------- 6 files changed, 7 insertions(+), 40 deletions(-) delete mode 100644 package/qt5/qt5opcua/Config.in delete mode 100644 package/qt5/qt5opcua/qt5opcua.hash delete mode 100644 package/qt5/qt5opcua/qt5opcua.mk diff --git a/Config.in.legacy b/Config.in.legacy index e20e564af5..06d06110cc 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -146,6 +146,13 @@ endif comment "Legacy options removed in 2026.11" +config BR2_PACKAGE_QT5OPCUA + bool "qt5opcua has been removed" + select BR2_LEGACY + help + The qt5opcua package has been removed because it is + incompatible with OpenSSL >= 4.x and mbed TLS 3.x + config BR2_PACKAGE_HEIRLOOM_MAILX bool "heirloom-mailx has been removed" select BR2_LEGACY diff --git a/DEVELOPERS b/DEVELOPERS index b7c354245a..8aacdb639a 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -201,7 +201,6 @@ N: Andreas Naumann <dev@andin.de> F: package/evemu/ F: package/libevdev/ F: package/pkg-qmake.mk -F: package/qt5/qt5opcua/ F: package/qt6/qt6opcua/ N: Andreas Ziegler <br025@umbiko.net> diff --git a/package/qt5/Config.in b/package/qt5/Config.in index f1b16ff39b..f5245e723a 100644 --- a/package/qt5/Config.in +++ b/package/qt5/Config.in @@ -49,7 +49,6 @@ source "package/qt5/qt5location/Config.in" source "package/qt5/qt5lottie/Config.in" source "package/qt5/qt5mqtt/Config.in" source "package/qt5/qt5multimedia/Config.in" -source "package/qt5/qt5opcua/Config.in" source "package/qt5/qt5quickcontrols/Config.in" source "package/qt5/qt5quickcontrols2/Config.in" source "package/qt5/qt5quicktimeline/Config.in" diff --git a/package/qt5/qt5opcua/Config.in b/package/qt5/qt5opcua/Config.in deleted file mode 100644 index 2b0ba37af3..0000000000 --- a/package/qt5/qt5opcua/Config.in +++ /dev/null @@ -1,9 +0,0 @@ -config BR2_PACKAGE_QT5OPCUA - bool "qt5opcua" - depends on BR2_PACKAGE_QT5 - help - Qt is a cross-platform application and UI framework for - developers using C++. - - The Qt OPC UA module implements a Qt API to interact with - OPC UA on top of a 3rd party OPC UA stack. diff --git a/package/qt5/qt5opcua/qt5opcua.hash b/package/qt5/qt5opcua/qt5opcua.hash deleted file mode 100644 index a325653f80..0000000000 --- a/package/qt5/qt5opcua/qt5opcua.hash +++ /dev/null @@ -1,10 +0,0 @@ -# Hash locally calculated -sha256 fa8e0e87aae6f321aecac2605e6ac1b858ba1ed4db3c4a78a193eb7b547ab224 qt5opcua-5.15.2-git4.tar.gz - -# Hashes for license files: -sha256 d93cc415382f0013088fa276d9cf82373badf244c78220a926f15ee46f0fe3c4 LICENSE-CC0 -sha256 f827ad079686ba92cc94811e35492d0e8966f704008b6da9eeda0b659fb58a8d LICENSE.FDL -sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 -sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT -sha256 6c3f3c31b93985f1b93bfbb35fb609d37281697d0efc220c9f91cf4b59eaabde LICENSE.GPLv2 -sha256 75d800e60c8d58c2e7f0338e8552ea6123a9ce7e5dd8e1cdf2095e013b737488 LICENSE.LGPLv3 diff --git a/package/qt5/qt5opcua/qt5opcua.mk b/package/qt5/qt5opcua/qt5opcua.mk deleted file mode 100644 index ef51abddf8..0000000000 --- a/package/qt5/qt5opcua/qt5opcua.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# -# qt5opcua -# -################################################################################ - -QT5OPCUA_VERSION = 5.15.2 -QT5OPCUA_SITE = https://code.qt.io/qt/qtopcua.git -QT5OPCUA_SITE_METHOD = git -QT5OPCUA_INSTALL_STAGING = YES -QT5OPCUA_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs) CC0-1.0 -QT5OPCUA_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPLv3 LICENSE.FDL LICENSE-CC0 -QT5OPCUA_SYNC_QT_HEADERS = YES - -ifeq ($(BR2_PACKAGE_MBEDTLS),y) -QT5OPCUA_DEPENDENCIES += mbedtls -endif - -$(eval $(qmake-package)) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 04/77] package/qt5/qt5knx: remove package 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (2 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 03/77] package/qt5/qt5opcua: " Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 05/77] package/resiprocate: " Bernd Kuhls ` (72 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Angelo Compagnucci, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Build is broken with the upcoming bump of OpenSSL to 4.0.2: ssl/qsslsocket_openssl_symbols.cpp: In function 'QDateTime QKnxPrivate::q_getTimeFromASN1(const ASN1_TIME*)': ssl/qsslsocket_openssl_symbols.cpp:1352:31: error: invalid use of incomplete type 'const ASN1_TIME' {aka 'const struct asn1_string_st'} 1352 | size_t lTimeLength = aTime->length; ssl/qsslsocket_openssl_symbols.cpp:1353:35: error: invalid use of incomplete type 'const ASN1_TIME' {aka 'const struct asn1_string_st'} 1353 | char *pString = (char *) aTime->data; ssl/qsslsocket_openssl_symbols.cpp:1355:14: error: invalid use of incomplete type 'const ASN1_TIME' {aka 'const struct asn1_string_st'} 1355 | if (aTime->type == V_ASN1_UTCTIME) { ssl/qsslsocket_openssl_symbols.cpp:1415:21: error: invalid use of incomplete type 'const ASN1_TIME' {aka 'const struct asn1_string_st'} 1415 | } else if (aTime->type == V_ASN1_GENERALIZEDTIME) { Last update of the package dates back to 2020: https://github.com/qt/qtknx/branches/all Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Cc: Angelo Compagnucci <angelo.compagnucci@gmail.com> --- Config.in.legacy | 7 +++++++ DEVELOPERS | 1 - package/qt5/Config.in | 1 - package/qt5/qt5knx/Config.in | 12 ------------ package/qt5/qt5knx/qt5knx.hash | 6 ------ package/qt5/qt5knx/qt5knx.mk | 15 --------------- 6 files changed, 7 insertions(+), 35 deletions(-) delete mode 100644 package/qt5/qt5knx/Config.in delete mode 100644 package/qt5/qt5knx/qt5knx.hash delete mode 100644 package/qt5/qt5knx/qt5knx.mk diff --git a/Config.in.legacy b/Config.in.legacy index 06d06110cc..e6c4361bb9 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -146,6 +146,13 @@ endif comment "Legacy options removed in 2026.11" +config BR2_PACKAGE_QT5KNX + bool "qt5knx has been removed" + select BR2_LEGACY + help + The qt5knx package has been removed because it is + incompatible with OpenSSL >= 4.x + config BR2_PACKAGE_QT5OPCUA bool "qt5opcua has been removed" select BR2_LEGACY diff --git a/DEVELOPERS b/DEVELOPERS index 8aacdb639a..d15fffea27 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -249,7 +249,6 @@ F: package/python-spidev/ F: package/python-web2py/ F: package/qpdf/ F: package/qt5/qt5coap/ -F: package/qt5/qt5knx/ F: package/qt5/qt5mqtt/ F: package/rtl8723ds/ F: package/rtl8723ds-bt/ diff --git a/package/qt5/Config.in b/package/qt5/Config.in index f5245e723a..8b4903a5ab 100644 --- a/package/qt5/Config.in +++ b/package/qt5/Config.in @@ -44,7 +44,6 @@ source "package/qt5/qt5doc/Config.in" source "package/qt5/qt5enginio/Config.in" source "package/qt5/qt5graphicaleffects/Config.in" source "package/qt5/qt5imageformats/Config.in" -source "package/qt5/qt5knx/Config.in" source "package/qt5/qt5location/Config.in" source "package/qt5/qt5lottie/Config.in" source "package/qt5/qt5mqtt/Config.in" diff --git a/package/qt5/qt5knx/Config.in b/package/qt5/qt5knx/Config.in deleted file mode 100644 index 991e93c8cb..0000000000 --- a/package/qt5/qt5knx/Config.in +++ /dev/null @@ -1,12 +0,0 @@ -config BR2_PACKAGE_QT5KNX - bool "qt5knx" - help - Qt is a cross-platform application and UI framework for - developers using C++. - - The Qt KNX module implements the client side of a connection - between a client and a KNXnet/IP server. This connection - can be used to send messages to the KNX bus and to control - the functionalities of the KNX devices. - - https://doc.qt.io/QtKNX/index.html diff --git a/package/qt5/qt5knx/qt5knx.hash b/package/qt5/qt5knx/qt5knx.hash deleted file mode 100644 index 2600a739bc..0000000000 --- a/package/qt5/qt5knx/qt5knx.hash +++ /dev/null @@ -1,6 +0,0 @@ -# Hash locally calculated -sha256 1648bd6d7e5d8fc91aaa6db1bf9d2744d0385a087ba78a00080f99f1d5027c8b qt5knx-5.15.2-git4.tar.gz - -# Hashes for license files: -sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3 -sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT diff --git a/package/qt5/qt5knx/qt5knx.mk b/package/qt5/qt5knx/qt5knx.mk deleted file mode 100644 index 91b99aaa87..0000000000 --- a/package/qt5/qt5knx/qt5knx.mk +++ /dev/null @@ -1,15 +0,0 @@ -################################################################################ -# -# qt5knx -# -################################################################################ - -QT5KNX_VERSION = 5.15.2 -QT5KNX_SITE = https://code.qt.io/qt/qtknx.git -QT5KNX_SITE_METHOD = git -QT5KNX_INSTALL_STAGING = YES -QT5KNX_LICENSE = GPL-3.0 with exception -QT5KNX_LICENSE_FILES = LICENSE.GPL3 LICENSE.GPL3-EXCEPT -QT5KNX_SYNC_QT_HEADERS = YES - -$(eval $(qmake-package)) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 05/77] package/resiprocate: remove package 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (3 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 04/77] package/qt5/qt5knx: " Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 12:35 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 06/77] package/libcpprestsdk: " Bernd Kuhls ` (71 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Build is broken with the upcoming bump of OpenSSL to 4.0.2: ssl/Security.cxx:2360:29: error: invalid use of incomplete type 'ASN1_IA5STRING' {aka 'struct asn1_string_st'} 2360 | Data name(uri->data, uri->length); ssl/Security.cxx: In static member function 'static void resip::BaseSecurity::getCertNames(X509*, std::__cxx11::list<PeerName>&, bool)': ssl/Security.cxx:2556:46: error: invalid conversion from 'const X509_NAME*' {aka 'const X509_name_st*'} to 'X509_NAME*' {aka 'X509_name_st*'} [-fpermissive] 2556 | X509_NAME* subject = X509_get_subject_name(cert); ssl/Security.cxx:2572:51: error: invalid conversion from 'const X509_NAME_ENTRY*' {aka 'const X509_name_entry_st*'} to 'X509_NAME_ENTRY*' {aka 'X509_name_entry_st*'} [-fpermissive] 2572 | X509_NAME_ENTRY* entry = X509_NAME_get_entry(subject,i); ssl/Security.cxx:2575:53: error: invalid conversion from 'const ASN1_STRING*' {aka 'const asn1_string_st*'} to 'ASN1_STRING*' {aka 'asn1_string_st*'} [-fpermissive] 2575 | ASN1_STRING* s = X509_NAME_ENTRY_get_data(entry); Disabling OpenSSL support via configure option -DWITH_SSL=OFF still produces a broken build: SipStack.cxx:450:29: error: expected type-specifier before 'DtlsTransport' 450 | transport = new DtlsTransport(stateMacFifo, Bug report sent upstream: https://github.com/resiprocate/resiprocate/issues/489 No other package depends on resiprocate, no developer registered in DEVELOPERS. To not block the bump of OpenSSL we remove this package. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- Config.in.legacy | 7 ++++ package/Config.in | 1 - package/resiprocate/Config.in | 43 -------------------- package/resiprocate/resiprocate.hash | 3 -- package/resiprocate/resiprocate.mk | 60 ---------------------------- 5 files changed, 7 insertions(+), 107 deletions(-) delete mode 100644 package/resiprocate/Config.in delete mode 100644 package/resiprocate/resiprocate.hash delete mode 100644 package/resiprocate/resiprocate.mk diff --git a/Config.in.legacy b/Config.in.legacy index e6c4361bb9..f1b995b486 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -146,6 +146,13 @@ endif comment "Legacy options removed in 2026.11" +config BR2_PACKAGE_RESIPROCATE + bool "resiprocate has been removed" + select BR2_LEGACY + help + The resiprocate package has been removed because it is + incompatible with OpenSSL >= 4.x + config BR2_PACKAGE_QT5KNX bool "qt5knx has been removed" select BR2_LEGACY diff --git a/package/Config.in b/package/Config.in index d556128ce7..d2c2c210d9 100644 --- a/package/Config.in +++ b/package/Config.in @@ -2116,7 +2116,6 @@ menu "Networking" source "package/qdecoder/Config.in" source "package/qpid-proton/Config.in" source "package/rabbitmq-c/Config.in" - source "package/resiprocate/Config.in" source "package/restclient-cpp/Config.in" source "package/rtmpdump/Config.in" source "package/siproxd/Config.in" diff --git a/package/resiprocate/Config.in b/package/resiprocate/Config.in deleted file mode 100644 index ba68ad8e59..0000000000 --- a/package/resiprocate/Config.in +++ /dev/null @@ -1,43 +0,0 @@ -comment "resiprocate needs a toolchain w/ C++, threads, wchar" - depends on BR2_USE_MMU - depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR - -config BR2_PACKAGE_RESIPROCATE - bool "resiprocate" - depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_USE_WCHAR - depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_C_ARES - select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL - help - reSIProcate is a framework that aims to fully implement the - SIP protocol in first class C++. It is intended for use in - other applications, such as the repro SIP proxy. - - By default this package provides the core libraries: librutil - (utilities), libresip (SIP stack/RFC compliant message - parsing) and libdum (SIP Dialog Usage Manager, a state - machine for SIP dialogs). - - https://github.com/resiprocate/resiprocate - -if BR2_PACKAGE_RESIPROCATE - -config BR2_PACKAGE_RESIPROCATE_DTLS_SUPPORT - bool "DTLS support" - select BR2_PACKAGE_OPENSSL - help - Enable DTLS support (requires OpenSSL) - -config BR2_PACKAGE_RESIPROCATE_REND - bool "resiprocate-rend" - select BR2_PACKAGE_BOOST - select BR2_PACKAGE_BOOST_SYSTEM - select BR2_PACKAGE_OPENSSL - select BR2_PACKAGE_POPT - help - Rend is tool that is was created specifically to load test - gtSIP based presence servers. - -endif # BR2_PACKAGE_RESIPROCATE diff --git a/package/resiprocate/resiprocate.hash b/package/resiprocate/resiprocate.hash deleted file mode 100644 index 93a7131141..0000000000 --- a/package/resiprocate/resiprocate.hash +++ /dev/null @@ -1,3 +0,0 @@ -# Locally Computed -sha256 059fda8f63c456fd61130d468a67655cfeafb5ba8ff5c1d0a55dc383f83e4fba resiprocate-1.13.2.tar.gz -sha256 8c93f7d6085486e9d24b7c6f9c662d92e0b65571003ad15d0827bb99fd924261 LICENSE.md diff --git a/package/resiprocate/resiprocate.mk b/package/resiprocate/resiprocate.mk deleted file mode 100644 index ab8299302a..0000000000 --- a/package/resiprocate/resiprocate.mk +++ /dev/null @@ -1,60 +0,0 @@ -################################################################################ -# -# resiprocate -# -################################################################################ - -RESIPROCATE_VERSION = 1.13.2 -RESIPROCATE_SITE = $(call github,resiprocate,resiprocate,resiprocate-$(RESIPROCATE_VERSION)) -RESIPROCATE_LICENSE = VSL-1.0, BSD-3-Clause -RESIPROCATE_LICENSE_FILES = LICENSE.md -RESIPROCATE_CPE_ID_VENDOR = resiprocate -RESIPROCATE_INSTALL_STAGING = YES - -RESIPROCATE_CONF_OPTS = -DWITH_C_ARES=ON -RESIPROCATE_DEPENDENCIES = c-ares - -RESIPROCATE_CONF_OPTS += \ - -DBUILD_QPID_PROTON=OFF \ - -DBUILD_RECON=OFF \ - -DBUILD_REFLOW=OFF \ - -DBUILD_REPRO=OFF \ - -DBUILD_RETURN=OFF \ - -DBUILD_TFM=OFF \ - -DHAVE_CLOCK_GETTIME_MONOTONIC_EXITCODE=0 - -ifeq ($(BR2_PACKAGE_GEOIP),y) -RESIPROCATE_CONF_OPTS += -DUSE_MAXMIND_GEOIP=ON -RESIPROCATE_DEPENDENCIES += geoip -else -RESIPROCATE_CONF_OPTS += -DUSE_MAXMIND_GEOIP=OFF -endif - -ifeq ($(BR2_PACKAGE_OPENSSL),y) -RESIPROCATE_CONF_OPTS += -DWITH_SSL=ON -RESIPROCATE_DEPENDENCIES += openssl host-pkgconf -else -RESIPROCATE_CONF_OPTS += -DWITH_SSL=OFF -endif - -ifeq ($(BR2_PACKAGE_POPT),y) -RESIPROCATE_CONF_OPTS += -DUSE_POPT=ON -RESIPROCATE_DEPENDENCIES += popt -else -RESIPROCATE_CONF_OPTS += -DUSE_POPT=OFF -endif - -ifeq ($(BR2_PACKAGE_RESIPROCATE_DTLS_SUPPORT),y) -RESIPROCATE_CONF_OPTS += -DUSE_DTLS=ON -else -RESIPROCATE_CONF_OPTS += -DUSE_DTLS=OFF -endif - -ifeq ($(BR2_PACKAGE_RESIPROCATE_REND),y) -RESIPROCATE_CONF_OPTS += -DBUILD_REND=ON -RESIPROCATE_DEPENDENCIES += boost -else -RESIPROCATE_CONF_OPTS += -DBUILD_REND=OFF -endif - -$(eval $(cmake-package)) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 05/77] package/resiprocate: remove package 2026-09-19 15:57 ` [Buildroot] [PATCH v2 05/77] package/resiprocate: " Bernd Kuhls @ 2026-09-20 12:35 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 12:35 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:30PM +0200, Bernd Kuhls wrote: > Build is broken with the upcoming bump of OpenSSL to 4.0.2: I don't use this package myself, but upstream seems to still be active. They even pushed some OpenSSL related fixes two days ago: https://github.com/resiprocate/resiprocate/commit/10cfb3678293b3485dc73d781428da0205b11144 Maybe it fixes the OpenSSL 4.x issues? Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 06/77] package/libcpprestsdk: remove package 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (4 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 05/77] package/resiprocate: " Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 12:40 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 07/77] package/cc-tool: Fix build with Boost >= 1.89 Bernd Kuhls ` (70 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Quote from Github site https://github.com/microsoft/cpprestsdk "This repository was archived by the owner on Jun 1, 2026. It is now read-only." Building the package with boost >= 1.89 and OpenSSL >= 4.x is broken. To not block these version bumps we remove this package. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- Config.in.legacy | 6 +++ package/Config.in | 1 - package/libcpprestsdk/Config.in | 34 --------------- package/libcpprestsdk/libcpprestsdk.hash | 3 -- package/libcpprestsdk/libcpprestsdk.mk | 55 ------------------------ 5 files changed, 6 insertions(+), 93 deletions(-) delete mode 100644 package/libcpprestsdk/Config.in delete mode 100644 package/libcpprestsdk/libcpprestsdk.hash delete mode 100644 package/libcpprestsdk/libcpprestsdk.mk diff --git a/Config.in.legacy b/Config.in.legacy index f1b995b486..2b77f7316e 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -146,6 +146,12 @@ endif comment "Legacy options removed in 2026.11" +config BR2_PACKAGE_LIBCPPRESTSDK + bool "libcpprestsdk has been removed" + select BR2_LEGACY + help + libcpprestsdk is unmaintained and has been removed + config BR2_PACKAGE_RESIPROCATE bool "resiprocate has been removed" select BR2_LEGACY diff --git a/package/Config.in b/package/Config.in index d2c2c210d9..968ad126bc 100644 --- a/package/Config.in +++ b/package/Config.in @@ -2020,7 +2020,6 @@ menu "Networking" source "package/libcgicc/Config.in" source "package/libcoap/Config.in" source "package/libcppconnman/Config.in" - source "package/libcpprestsdk/Config.in" source "package/libcurl/Config.in" source "package/libdnet/Config.in" source "package/libeXosip2/Config.in" diff --git a/package/libcpprestsdk/Config.in b/package/libcpprestsdk/Config.in deleted file mode 100644 index 7688021ed0..0000000000 --- a/package/libcpprestsdk/Config.in +++ /dev/null @@ -1,34 +0,0 @@ -config BR2_PACKAGE_LIBCPPRESTSDK - bool "libcpprestsdk" - depends on BR2_ENABLE_LOCALE - depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_USE_WCHAR # boost - depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic, boost-filesystem - depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr - depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL - select BR2_PACKAGE_BOOST - select BR2_PACKAGE_BOOST_ATOMIC - select BR2_PACKAGE_BOOST_CHRONO - select BR2_PACKAGE_BOOST_DATE_TIME - select BR2_PACKAGE_BOOST_FILESYSTEM - select BR2_PACKAGE_BOOST_RANDOM - select BR2_PACKAGE_BOOST_REGEX - select BR2_PACKAGE_BOOST_SYSTEM - select BR2_PACKAGE_BOOST_THREAD - select BR2_PACKAGE_OPENSSL - help - The C++ REST SDK is a Microsoft project for cloud-based - client-server communication in native code using a modern - asynchronous C++ API design. This project aims to help C++ - developers connect to and interact with services. - - https://github.com/Microsoft/cpprestsdk - -comment "libcpprestsdk needs a toolchain w/ NPTL, C++, wchar, locale" - depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS - depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ - !BR2_INSTALL_LIBSTDCPP || \ - !BR2_USE_WCHAR || !BR2_ENABLE_LOCALE - -comment "libcpprestsdk needs exception_ptr" - depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 diff --git a/package/libcpprestsdk/libcpprestsdk.hash b/package/libcpprestsdk/libcpprestsdk.hash deleted file mode 100644 index 8e398d0c54..0000000000 --- a/package/libcpprestsdk/libcpprestsdk.hash +++ /dev/null @@ -1,3 +0,0 @@ -# Locally calculated -sha256 6bd74a637ff182144b6a4271227ea8b6b3ea92389f88b25b215e6f94fd4d41cb libcpprestsdk-2.10.18.tar.gz -sha256 5c191789f502ac87df83b57008d2fc3e47fbf31315381b5bc4309f6602d0fe97 license.txt diff --git a/package/libcpprestsdk/libcpprestsdk.mk b/package/libcpprestsdk/libcpprestsdk.mk deleted file mode 100644 index 68d4cf68c1..0000000000 --- a/package/libcpprestsdk/libcpprestsdk.mk +++ /dev/null @@ -1,55 +0,0 @@ -################################################################################ -# -# libcpprestsdk -# -################################################################################ - -LIBCPPRESTSDK_VERSION = 2.10.18 -LIBCPPRESTSDK_SITE = $(call github,Microsoft,cpprestsdk,$(LIBCPPRESTSDK_VERSION)) -LIBCPPRESTSDK_LICENSE = MIT -LIBCPPRESTSDK_LICENSE_FILES = license.txt -LIBCPPRESTSDK_SUBDIR = Release -LIBCPPRESTSDK_INSTALL_STAGING = YES -LIBCPPRESTSDK_DEPENDENCIES += host-pkgconf boost openssl -LIBCPPRESTSDK_CONF_OPTS = -DWERROR=OFF -DBUILD_SAMPLES=OFF - -ifeq ($(BR2_STATIC_LIBS),y) -LIBCPPRESTSDK_CONF_OPTS += \ - -DBoost_USE_STATIC_LIBS=ON \ - -DBoost_USE_STATIC_RUNTIME=ON -endif - -LIBCPPRESTSDK_CXXFLAGS = $(TARGET_CXXFLAGS) - -ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) -LIBCPPRESTSDK_CXXFLAGS += -latomic -endif - -ifeq ($(BR2_PACKAGE_ZLIB),y) -LIBCPPRESTSDK_DEPENDENCIES += zlib -LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_COMPRESSION=OFF -# brotli needs compression -ifeq ($(BR2_PACKAGE_BROTLI),y) -LIBCPPRESTSDK_DEPENDENCIES += brotli -LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_BROTLI=OFF -else -LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_BROTLI=ON -endif -else -LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_COMPRESSION=ON -endif - -ifeq ($(BR2_PACKAGE_WEBSOCKETPP),y) -LIBCPPRESTSDK_DEPENDENCIES += websocketpp -LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_WEBSOCKETS=OFF -else -LIBCPPRESTSDK_CONF_OPTS += -DCPPREST_EXCLUDE_WEBSOCKETS=ON -endif - -ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) -LIBCPPRESTSDK_CXXFLAGS += -O0 -endif - -LIBCPPRESTSDK_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(LIBCPPRESTSDK_CXXFLAGS)" - -$(eval $(cmake-package)) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 06/77] package/libcpprestsdk: remove package 2026-09-19 15:57 ` [Buildroot] [PATCH v2 06/77] package/libcpprestsdk: " Bernd Kuhls @ 2026-09-20 12:40 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 12:40 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:31PM +0200, Bernd Kuhls wrote: > Quote from Github site https://github.com/microsoft/cpprestsdk > "This repository was archived by the owner on Jun 1, 2026. It is now > read-only." > > Building the package with boost >= 1.89 and OpenSSL >= 4.x is broken. > To not block these version bumps we remove this package. > > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to master, thanks! Best regards, Thomas Petazzoni -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 07/77] package/cc-tool: Fix build with Boost >= 1.89 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (5 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 06/77] package/libcpprestsdk: " Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 12:42 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 08/77] package/jwt-cpp: new package Bernd Kuhls ` (69 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0001-Fix-build-with-Boost-1.89-32.patch | 1029 +++++++++++++++++ 1 file changed, 1029 insertions(+) create mode 100644 package/cc-tool/0001-Fix-build-with-Boost-1.89-32.patch diff --git a/package/cc-tool/0001-Fix-build-with-Boost-1.89-32.patch b/package/cc-tool/0001-Fix-build-with-Boost-1.89-32.patch new file mode 100644 index 0000000000..0381b766a3 --- /dev/null +++ b/package/cc-tool/0001-Fix-build-with-Boost-1.89-32.patch @@ -0,0 +1,1029 @@ +From 0d84df329e343e2ea5a960c04a3d4478ee039aa0 Mon Sep 17 00:00:00 2001 +From: Arjen de Korte <build+github@de-korte.org> +Date: Fri, 17 Oct 2025 10:45:33 +0200 +Subject: [PATCH] Fix build with Boost >= 1.89 (#32) + +From upstream https://github.com/tsuna/boost.m4/blob/master/build-aux/boost.m4 + +Upstream: https://github.com/dashesy/cc-tool/commit/0d84df329e343e2ea5a960c04a3d4478ee039aa0 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + m4/boost.m4 | 570 +++++++++++++++++++++++++++++++++++++++++++--------- + 1 file changed, 479 insertions(+), 91 deletions(-) + +diff --git a/m4/boost.m4 b/m4/boost.m4 +index a667137..342516e 100644 +--- a/m4/boost.m4 ++++ b/m4/boost.m4 +@@ -22,7 +22,7 @@ + # along with this program. If not, see <http://www.gnu.org/licenses/>. + + m4_define([_BOOST_SERIAL], [m4_translit([ +-# serial 25 ++# serial 39 + ], [# + ], [])]) + +@@ -86,9 +86,10 @@ dnl boost-lib-version = + dnl # 2 "conftest.cc" 3 + dnl "1_56" + dnl +-dnl So get rid of the # lines, and glue the remaining ones together. ++dnl So get rid of the # and empty lines, and glue the remaining ones together. + (eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | + grep -v '#' | ++ grep -v '^[[[:space:]]]*$' | + tr -d '\r' | + tr -s '\n' ' ' | + $SED -n -e "$1" >conftest.i 2>&1], +@@ -225,7 +226,7 @@ AC_LANG_POP([C++])dnl + AC_CACHE_CHECK([for Boost's header version], + [boost_cv_lib_version], + [m4_pattern_allow([^BOOST_LIB_VERSION$])dnl +- _BOOST_SED_CPP([[/^boost-lib-version = /{s///;s/[\" ]//g;p;q;}]], ++ _BOOST_SED_CPP([[/^.*boost-lib-version = /{s///;s/[\" ]//g;p;q;}]], + [#include <boost/version.hpp> + boost-lib-version = BOOST_LIB_VERSION], + [boost_cv_lib_version=`cat conftest.i`])]) +@@ -287,14 +288,17 @@ fi + + # BOOST_FIND_LIBS([COMPONENT-NAME], [CANDIDATE-LIB-NAMES], + # [PREFERRED-RT-OPT], [HEADER-NAME], [CXX-TEST], +-# [CXX-PROLOGUE]) ++# [CXX-PROLOGUE], [CXX-POST-INCLUDE-PROLOGUE], ++# [ERROR_ON_UNUSABLE]) + # -------------------------------------------------------------- + # Look for the Boost library COMPONENT-NAME (e.g., `thread', for + # libboost_thread) under the possible CANDIDATE-LIB-NAMES (e.g., + # "thread_win32 thread"). Check that HEADER-NAME works and check that + # libboost_LIB-NAME can link with the code CXX-TEST. The optional + # argument CXX-PROLOGUE can be used to include some C++ code before +-# the `main' function. ++# the `main' function. The CXX-POST-INCLUDE-PROLOGUE can be used to ++# include some code before the `main' function, but after the ++# `#include <HEADER-NAME>'. + # + # Invokes BOOST_FIND_HEADER([HEADER-NAME]) (see above). + # +@@ -308,6 +312,9 @@ fi + # builds. Some sample values for PREFERRED-RT-OPT: (nothing), mt, d, mt-d, gdp + # ... If you want to make sure you have a specific version of Boost + # (eg, >= 1.33) you *must* invoke BOOST_REQUIRE before this macro. ++# ++# ERROR_ON_UNUSABLE can be set to "no" if the caller does not want their ++# configure to fail + AC_DEFUN([BOOST_FIND_LIBS], + [AC_REQUIRE([BOOST_REQUIRE])dnl + AC_REQUIRE([_BOOST_FIND_COMPILER_TAG])dnl +@@ -316,26 +323,32 @@ AC_REQUIRE([_BOOST_GUESS_WHETHER_TO_USE_MT])dnl + if test x"$boost_cv_inc_path" = xno; then + AC_MSG_NOTICE([Boost not available, not searching for the Boost $1 library]) + else +-dnl The else branch is huge and wasn't intended on purpose. ++dnl The else branch is huge and wasn't indented on purpose. + AC_LANG_PUSH([C++])dnl + AS_VAR_PUSHDEF([Boost_lib], [boost_cv_lib_$1])dnl + AS_VAR_PUSHDEF([Boost_lib_LDFLAGS], [boost_cv_lib_$1_LDFLAGS])dnl + AS_VAR_PUSHDEF([Boost_lib_LDPATH], [boost_cv_lib_$1_LDPATH])dnl + AS_VAR_PUSHDEF([Boost_lib_LIBS], [boost_cv_lib_$1_LIBS])dnl +-BOOST_FIND_HEADER([$4]) ++AS_IF([test x"$8" = "xno"], [not_found_header='true']) ++BOOST_FIND_HEADER([$4], [$not_found_header]) + boost_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" + AC_CACHE_CHECK([for the Boost $1 library], [Boost_lib], + [_BOOST_FIND_LIBS($@)]) + case $Boost_lib in #( ++ (yes) _AC_MSG_LOG_CONFTEST ++ AC_DEFINE(AS_TR_CPP([HAVE_BOOST_$1]), [1], [Defined if the Boost $1 library is available])dnl ++ AC_SUBST(AS_TR_CPP([BOOST_$1_LDFLAGS]), [$Boost_lib_LDFLAGS])dnl ++ AC_SUBST(AS_TR_CPP([BOOST_$1_LDPATH]), [$Boost_lib_LDPATH])dnl ++ AC_SUBST([BOOST_LDPATH], [$Boost_lib_LDPATH])dnl ++ AC_SUBST(AS_TR_CPP([BOOST_$1_LIBS]), [$Boost_lib_LIBS])dnl ++ ;; + (no) _AC_MSG_LOG_CONFTEST +- AC_MSG_ERROR([cannot find the flags to link with Boost $1]) ++ AS_IF([test x"$8" != "xno"], [ ++ AC_MSG_ERROR([cannot find flags to link with the Boost $1 library (libboost-$1)]) ++ ]) + ;; + esac +-AC_SUBST(AS_TR_CPP([BOOST_$1_LDFLAGS]), [$Boost_lib_LDFLAGS])dnl +-AC_SUBST(AS_TR_CPP([BOOST_$1_LDPATH]), [$Boost_lib_LDPATH])dnl +-AC_SUBST([BOOST_LDPATH], [$Boost_lib_LDPATH])dnl +-AC_SUBST(AS_TR_CPP([BOOST_$1_LIBS]), [$Boost_lib_LIBS])dnl + CPPFLAGS=$boost_save_CPPFLAGS + AS_VAR_POPDEF([Boost_lib])dnl + AS_VAR_POPDEF([Boost_lib_LDFLAGS])dnl +@@ -348,16 +361,20 @@ fi + + # BOOST_FIND_LIB([LIB-NAME], + # [PREFERRED-RT-OPT], [HEADER-NAME], [CXX-TEST], +-# [CXX-PROLOGUE]) ++# [CXX-PROLOGUE], [CXX-POST-INCLUDE-PROLOGUE], ++# [ERROR_ON_UNUSABLE]) + # -------------------------------------------------------------- + # Backward compatibility wrapper for BOOST_FIND_LIBS. ++# ERROR_ON_UNUSABLE can be set to "no" if the caller does not want their ++# configure to fail + AC_DEFUN([BOOST_FIND_LIB], + [BOOST_FIND_LIBS([$1], $@)]) + + + # _BOOST_FIND_LIBS([LIB-NAME], [CANDIDATE-LIB-NAMES], + # [PREFERRED-RT-OPT], [HEADER-NAME], [CXX-TEST], +-# [CXX-PROLOGUE]) ++# [CXX-PROLOGUE], [CXX-POST-INCLUDE-PROLOGUE], ++# [ERROR_ON_UNUSABLE]) + # -------------------------------------------------------------- + # Real implementation of BOOST_FIND_LIBS: rely on these local macros: + # Boost_lib, Boost_lib_LDFLAGS, Boost_lib_LDPATH, Boost_lib_LIBS +@@ -369,6 +386,9 @@ AC_DEFUN([BOOST_FIND_LIB], + # usually installed. If we can't find the standard variants, we try + # to enforce -mt (for instance on MacOSX, libboost_thread.dylib + # doesn't exist but there's -obviously- libboost_thread-mt.dylib). ++# ++# ERROR_ON_UNUSABLE can be set to "no" if the caller does not want their ++# configure to fail + AC_DEFUN([_BOOST_FIND_LIBS], + [Boost_lib=no + case "$3" in #( +@@ -395,7 +415,8 @@ AC_DEFUN([_BOOST_FIND_LIBS], + AC_MSG_ERROR([the libext variable is empty, did you invoke Libtool?]) + boost_save_ac_objext=$ac_objext + # Generate the test file. +- AC_LANG_CONFTEST([AC_LANG_PROGRAM([#include <$4> ++ AC_LANG_CONFTEST([AC_LANG_PROGRAM([$7 ++#include <$4> + $6], [$5])]) + dnl Optimization hacks: compiling C++ is slow, especially with Boost. What + dnl we're trying to do here is guess the right combination of link flags +@@ -415,7 +436,10 @@ dnl empty because the test file is generated only once above (before we + dnl start the for loops). + AC_COMPILE_IFELSE([], + [ac_objext=do_not_rm_me_plz], +- [AC_MSG_ERROR([cannot compile a test that uses Boost $1])]) ++ [AS_IF([test x"$8" != x"no"], [ ++ AC_MSG_ERROR([cannot compile a test that uses Boost $1]) ++ ]) ++ ]) + ac_objext=$boost_save_ac_objext + boost_failed_libs= + # Don't bother to ident the following nested for loops, only the 2 +@@ -425,12 +449,15 @@ for boost_tag_ in -$boost_cv_lib_tag ''; do + for boost_ver_ in -$boost_cv_lib_version ''; do + for boost_mt_ in $boost_mt -mt ''; do + for boost_rtopt_ in $boost_rtopt '' -d; do +- for boost_lib in \ +- boost_$boost_lib_$boost_tag_$boost_mt_$boost_rtopt_$boost_ver_ \ +- boost_$boost_lib_$boost_tag_$boost_rtopt_$boost_ver_ \ +- boost_$boost_lib_$boost_tag_$boost_mt_$boost_ver_ \ +- boost_$boost_lib_$boost_tag_$boost_ver_ ++ for boost_full_suffix in \ ++ $boost_last_suffix \ ++ x$boost_tag_$boost_mt_$boost_rtopt_$boost_ver_ \ ++ x$boost_tag_$boost_rtopt_$boost_ver_ \ ++ x$boost_tag_$boost_mt_$boost_ver_ \ ++ x$boost_tag_$boost_ver_ + do ++ boost_real_suffix=`echo "$boost_full_suffix" | sed 's/^x//'` ++ boost_lib="boost_$boost_lib_$boost_real_suffix" + # Avoid testing twice the same lib + case $boost_failed_libs in #( + (*@$boost_lib@*) continue;; +@@ -495,6 +522,7 @@ dnl generated only once above (before we start the for loops). + test x"$boost_ldpath" != x && + Boost_lib_LDFLAGS="-L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" + Boost_lib_LDPATH="$boost_ldpath" ++ boost_last_suffix="$boost_full_suffix" + break 7 + else + boost_failed_libs="$boost_failed_libs@$boost_lib@" +@@ -533,6 +561,14 @@ m4_popdef([BOOST_Library])dnl + ]) + ]) + ++ ++# BOOST_ANY() ++# ------------ ++# Look for Boost.Any ++BOOST_DEFUN([Any], ++[BOOST_FIND_HEADER([boost/any.hpp])]) ++ ++ + # BOOST_ARRAY() + # ------------- + # Look for Boost.Array +@@ -547,6 +583,37 @@ BOOST_DEFUN([Asio], + [AC_REQUIRE([BOOST_SYSTEM])dnl + BOOST_FIND_HEADER([boost/asio.hpp])]) + ++# BOOST_BIMAP() ++# ------------ ++# Look for Boost.Bimap ++BOOST_DEFUN([Bimap], ++[BOOST_FIND_HEADER([boost/bimap.hpp])]) ++ ++ ++# BOOST_ASSIGN() ++# ------------- ++# Look for Boost.Assign ++BOOST_DEFUN([Assign], ++[BOOST_FIND_HEADER([boost/assign.hpp])]) ++ ++ ++# BOOST_ATOMIC([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) ++# ------------------------------- ++# Look for Boost.Atomic. For the documentation of PREFERRED-RT-OPT, see the ++# documentation of BOOST_FIND_LIB above. ++BOOST_DEFUN([Atomic], ++[BOOST_FIND_LIB([atomic], [$1], ++ [boost/atomic.hpp], ++ [boost::atomic<int> a;], ++ [ ], ++ [#ifdef HAVE_UNISTD_H ++#include <unistd.h> ++#endif ++#ifdef HAVE_STDINT_H ++#include <stdint.h> ++#endif], [$2]) ++])# BOOST_ATOMIC ++ + + # BOOST_BIND() + # ------------ +@@ -555,7 +622,14 @@ BOOST_DEFUN([Bind], + [BOOST_FIND_HEADER([boost/bind.hpp])]) + + +-# BOOST_CHRONO() ++# BOOST_CAST() ++# ------------ ++# Look for Boost.Cast ++BOOST_DEFUN([Cast], ++[BOOST_FIND_HEADER([boost/cast.hpp])]) ++ ++ ++# BOOST_CHRONO([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # -------------- + # Look for Boost.Chrono. + BOOST_DEFUN([Chrono], +@@ -563,7 +637,7 @@ BOOST_DEFUN([Chrono], + # added as of 1.35.0. If we have a version <1.35, we must not attempt to + # find Boost.System as it didn't exist by then. + if test $boost_major_version -ge 135; then +- BOOST_SYSTEM([$1]) ++ BOOST_SYSTEM([$1], [$2]) + fi # end of the Boost.System check. + boost_filesystem_save_LIBS=$LIBS + boost_filesystem_save_LDFLAGS=$LDFLAGS +@@ -572,7 +646,7 @@ LIBS="$LIBS $BOOST_SYSTEM_LIBS" + LDFLAGS="$LDFLAGS $BOOST_SYSTEM_LDFLAGS" + BOOST_FIND_LIB([chrono], [$1], + [boost/chrono.hpp], +- [boost::chrono::thread_clock d;]) ++ [boost::chrono::thread_clock d;], [], [], [$2]) + if test $enable_static_boost = yes && test $boost_major_version -ge 135; then + BOOST_CHRONO_LIBS="$BOOST_CHRONO_LIBS $BOOST_SYSTEM_LIBS" + fi +@@ -581,30 +655,144 @@ LDFLAGS=$boost_filesystem_save_LDFLAGS + ])# BOOST_CHRONO + + +-# BOOST_CONTEXT([PREFERRED-RT-OPT]) ++# BOOST_CONTEXT([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ----------------------------------- + # Look for Boost.Context. For the documentation of PREFERRED-RT-OPT, see the +-# documentation of BOOST_FIND_LIB above. This library was introduced in Boost +-# 1.51.0 ++# documentation of BOOST_FIND_LIB above. ++# ++# * This library was introduced in Boost 1.51.0 ++# * The signatures of make_fcontext() and jump_fcontext were changed in 1.56.0 ++# * A dependency on boost_thread appears in 1.57.0 ++# * The implementation details were moved to boost::context::detail in 1.61.0 ++# * 1.61 also introduces execution_context_v2, which is the "lowest common ++# denominator" for boost::context presence since then. ++# * boost::context::fiber was introduced in 1.69 and execution_context_v2 was ++# removed in 1.72 + BOOST_DEFUN([Context], +-[BOOST_FIND_LIB([context], [$1], +- [boost/context/all.hpp],[[ ++[boost_context_save_LIBS=$LIBS ++ boost_context_save_LDFLAGS=$LDFLAGS ++if test $boost_major_version -ge 157; then ++ BOOST_THREAD([$1], [$2]) ++ m4_pattern_allow([^BOOST_THREAD_(LIBS|LDFLAGS)$])dnl ++ LIBS="$LIBS $BOOST_THREAD_LIBS" ++ LDFLAGS="$LDFLAGS $BOOST_THREAD_LDFLAGS" ++fi ++ ++if test $boost_major_version -ge 169; then ++ ++BOOST_FIND_LIB([context], [$1], ++ [boost/context/fiber.hpp], [[ ++namespace ctx=boost::context; ++int a; ++ctx::fiber source{[&a](ctx::fiber&& sink){ ++ a=0; ++ int b=1; ++ for(;;){ ++ sink=std::move(sink).resume(); ++ int next=a+b; ++ a=b; ++ b=next; ++ } ++ return std::move(sink); ++}}; ++for (int j=0;j<10;++j) { ++ source=std::move(source).resume(); ++} ++return a == 34; ++]], [], [], [$2]) ++ ++elif test $boost_major_version -ge 161; then ++ ++BOOST_FIND_LIB([context], [$1], ++ [boost/context/execution_context_v2.hpp], [[ ++namespace ctx=boost::context; ++int res=0; ++int n=35; ++ctx::execution_context<int> source( ++ [n, &res](ctx::execution_context<int> sink, int) mutable { ++ int a=0; ++ int b=1; ++ while(n-->0){ ++ auto result=sink(a); ++ sink=std::move(std::get<0>(result)); ++ auto next=a+b; ++ a=b; ++ b=next; ++ } ++ return sink; ++ }); ++for(int i=0;i<10;++i){ ++ auto result=source(i); ++ source=std::move(std::get<0>(result)); ++ res = std::get<1>(result); ++} ++return res == 34; ++]], [], [], [$2]) ++ ++else ++ ++BOOST_FIND_LIB([context], [$1], ++ [boost/context/fcontext.hpp],[[ ++ + // creates a stack + void * stack_pointer = new void*[4096]; + std::size_t const size = sizeof(void*[4096]); + +-// context fc uses f() as context function +-// fcontext_t is placed on top of context stack +-// a pointer to fcontext_t is returned ++#if BOOST_VERSION <= 105100 ++ctx::make_fcontext(&fc, f); ++return ctx::jump_fcontext(&fcm, &fc, 3) == 6; ++ ++#else ++ + fc = ctx::make_fcontext(stack_pointer, size, f); +-return ctx::jump_fcontext(&fcm, fc, 3) == 6;]],[dnl ++return ctx::jump_fcontext(&fcm, fc, 3) == 6; ++ ++#endif ++ ++ ++]],[dnl ++ ++#include <boost/version.hpp> ++#if BOOST_VERSION <= 105100 ++ ++namespace ctx = boost::ctx; ++ ++static ctx::fcontext_t fcm, fc; ++ ++static void f(intptr_t i) { ++ ctx::jump_fcontext(&fc, &fcm, i * 2); ++} ++ ++#elif BOOST_VERSION <= 105500 ++ + namespace ctx = boost::context; ++ + // context + static ctx::fcontext_t fcm, *fc; ++ + // context-function + static void f(intptr_t i) { + ctx::jump_fcontext(fc, &fcm, i * 2); +-}]) ++} ++ ++#else ++ ++namespace ctx = boost::context; ++ ++// context ++static ctx::fcontext_t fcm, fc; ++ ++// context-function ++static void f(intptr_t i) { ++ ctx::jump_fcontext(&fc, fcm, i * 2); ++} ++#endif ++], [], [], [$2]) ++ ++fi ++ ++LIBS=$boost_context_save_LIBS ++LDFLAGS=$boost_context_save_LDFLAGS + ])# BOOST_CONTEXT + + +@@ -617,7 +805,7 @@ BOOST_FIND_HEADER([boost/lexical_cast.hpp]) + ])# BOOST_CONVERSION + + +-# BOOST_COROUTINE([PREFERRED-RT-OPT]) ++# BOOST_COROUTINE([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ----------------------------------- + # Look for Boost.Coroutine. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. This library was introduced in Boost +@@ -627,19 +815,31 @@ BOOST_DEFUN([Coroutine], + boost_coroutine_save_LIBS=$LIBS + boost_coroutine_save_LDFLAGS=$LDFLAGS + # Link-time dependency from coroutine to context +-BOOST_CONTEXT([$1]) ++BOOST_CONTEXT([$1], [$2]) + # Starting from Boost 1.55 a dependency on Boost.System is added + if test $boost_major_version -ge 155; then +- BOOST_SYSTEM([$1]) ++ BOOST_SYSTEM([$1], [$2]) + fi + m4_pattern_allow([^BOOST_(CONTEXT|SYSTEM)_(LIBS|LDFLAGS)]) + LIBS="$LIBS $BOOST_CONTEXT_LIBS $BOOST_SYSTEM_LIBS" + LDFLAGS="$LDFLAGS $BOOST_CONTEXT_LDFLAGS" + +-BOOST_FIND_LIB([coroutine], [$1], +- [boost/coroutine/coroutine.hpp], +- [boost::coroutines::coroutine< int(int) > coro; coro.empty();]) +- ++# in 1.53 coroutine was a header only library ++if test $boost_major_version -eq 153; then ++ AS_IF([test x"$2" = "xno"], [not_found_header='true']) ++ BOOST_FIND_HEADER([boost/coroutine/coroutine.hpp], [$not_found_header]) ++else ++ BOOST_FIND_LIB([coroutine], [$1], ++ [boost/coroutine/coroutine.hpp], ++ [ ++ #include <boost/version.hpp> ++ #if BOOST_VERSION <= 105500 ++ boost::coroutines::coroutine<int(int)> coro; coro.get(); ++ #else ++ boost::coroutines::asymmetric_coroutine<int>::pull_type coro; coro.get(); ++ #endif ++ ], [], [], [$2]) ++fi + # Link-time dependency from coroutine to context, existed only in 1.53, in 1.54 + # coroutine doesn't use context from its headers but from its library. + if test $boost_major_version -eq 153 || test $enable_static_boost = yes && test $boost_major_version -ge 154; then +@@ -663,18 +863,25 @@ BOOST_DEFUN([CRC], + ])# BOOST_CRC + + +-# BOOST_DATE_TIME([PREFERRED-RT-OPT]) ++# BOOST_DATE_TIME([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ----------------------------------- + # Look for Boost.Date_Time. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. + BOOST_DEFUN([Date_Time], + [BOOST_FIND_LIB([date_time], [$1], + [boost/date_time/posix_time/posix_time.hpp], +- [boost::posix_time::ptime t;]) ++ [boost::posix_time::ptime t;], [], [], [$2]) + ])# BOOST_DATE_TIME + + +-# BOOST_FILESYSTEM([PREFERRED-RT-OPT]) ++# BOOST_EXCEPTION() ++# ------------ ++# Look for Boost.Exception ++BOOST_DEFUN([Exception], ++[BOOST_FIND_HEADER([boost/exception/all.hpp])]) ++ ++ ++# BOOST_FILESYSTEM([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ------------------------------------ + # Look for Boost.Filesystem. For the documentation of PREFERRED-RT-OPT, see + # the documentation of BOOST_FIND_LIB above. +@@ -685,7 +892,7 @@ BOOST_DEFUN([Filesystem], + # added as of 1.35.0. If we have a version <1.35, we must not attempt to + # find Boost.System as it didn't exist by then. + if test $boost_major_version -ge 135; then +- BOOST_SYSTEM([$1]) ++ BOOST_SYSTEM([$1], [$2]) + fi # end of the Boost.System check. + boost_filesystem_save_LIBS=$LIBS + boost_filesystem_save_LDFLAGS=$LDFLAGS +@@ -693,7 +900,8 @@ m4_pattern_allow([^BOOST_SYSTEM_(LIBS|LDFLAGS)$])dnl + LIBS="$LIBS $BOOST_SYSTEM_LIBS" + LDFLAGS="$LDFLAGS $BOOST_SYSTEM_LDFLAGS" + BOOST_FIND_LIB([filesystem], [$1], +- [boost/filesystem/path.hpp], [boost::filesystem::path p;]) ++ [boost/filesystem/path.hpp], [boost::filesystem::path p;], ++ [], [], [$2]) + if test $enable_static_boost = yes && test $boost_major_version -ge 135; then + BOOST_FILESYSTEM_LIBS="$BOOST_FILESYSTEM_LIBS $BOOST_SYSTEM_LIBS" + fi +@@ -738,6 +946,13 @@ BOOST_DEFUN([Function], + [BOOST_FIND_HEADER([boost/function.hpp])]) + + ++# BOOST_FUSION() ++# ----------------- ++# Look for Boost.Fusion ++BOOST_DEFUN([Fusion], ++[BOOST_FIND_HEADER([boost/fusion/sequence.hpp])]) ++ ++ + # BOOST_GEOMETRY() + # ---------------- + # Look for Boost.Geometry (new since 1.47.0). +@@ -746,32 +961,52 @@ BOOST_DEFUN([Geometry], + ])# BOOST_GEOMETRY + + +-# BOOST_GRAPH([PREFERRED-RT-OPT]) ++# BOOST_GRAPH([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ------------------------------- + # Look for Boost.Graphs. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. + BOOST_DEFUN([Graph], +-[BOOST_FIND_LIB([graph], [$1], +- [boost/graph/adjacency_list.hpp], [boost::adjacency_list<> g;]) ++[boost_graph_save_LIBS=$LIBS ++boost_graph_save_LDFLAGS=$LDFLAGS ++# Link-time dependency from graph to regex was added as of 1.40.0. ++if test $boost_major_version -ge 140; then ++ BOOST_REGEX([$1], [$2]) ++ m4_pattern_allow([^BOOST_REGEX_(LIBS|LDFLAGS)$])dnl ++ LIBS="$LIBS $BOOST_REGEX_LIBS" ++ LDFLAGS="$LDFLAGS $BOOST_REGEX_LDFLAGS" ++fi ++BOOST_FIND_LIB([graph], [$1], ++ [boost/graph/adjacency_list.hpp], [boost::adjacency_list<> g;], ++ [], [], [$2]) ++LIBS=$boost_graph_save_LIBS ++LDFLAGS=$boost_graph_save_LDFLAGS + ])# BOOST_GRAPH + + +-# BOOST_IOSTREAMS([PREFERRED-RT-OPT]) ++# BOOST_HASH() ++# ------------ ++# Look for Boost.Functional/Hash ++BOOST_DEFUN([Hash], ++[BOOST_FIND_HEADER([boost/functional/hash.hpp])]) ++ ++ ++# BOOST_IOSTREAMS([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ----------------------------------- + # Look for Boost.IOStreams. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. + BOOST_DEFUN([IOStreams], + [BOOST_FIND_LIB([iostreams], [$1], + [boost/iostreams/device/file_descriptor.hpp], +- [boost::iostreams::file_descriptor fd; fd.close();]) ++ [boost::iostreams::file_descriptor fd; fd.close();], ++ [], [], [$2]) + ])# BOOST_IOSTREAMS + + +-# BOOST_HASH() ++# BOOST_ITERATOR() + # ------------ +-# Look for Boost.Functional/Hash +-BOOST_DEFUN([Hash], +-[BOOST_FIND_HEADER([boost/functional/hash.hpp])]) ++# Look for Boost.Iterator ++BOOST_DEFUN([Iterator], ++[BOOST_FIND_HEADER([boost/iterator/iterator_adaptor.hpp])]) + + + # BOOST_LAMBDA() +@@ -781,35 +1016,64 @@ BOOST_DEFUN([Lambda], + [BOOST_FIND_HEADER([boost/lambda/lambda.hpp])]) + + +-# BOOST_LOCALE() ++# BOOST_LOCALE([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # -------------- + # Look for Boost.Locale + BOOST_DEFUN([Locale], +-[BOOST_FIND_LIB([locale], [$1], ++[ ++boost_locale_save_LIBS=$LIBS ++boost_locale_save_LDFLAGS=$LDFLAGS ++# require SYSTEM for boost-1.50.0 and up ++if test $boost_major_version -ge 150; then ++ BOOST_SYSTEM([$1], [$2]) ++ m4_pattern_allow([^BOOST_SYSTEM_(LIBS|LDFLAGS)$])dnl ++ LIBS="$LIBS $BOOST_SYSTEM_LIBS" ++ LDFLAGS="$LDFLAGS $BOOST_SYSTEM_LDFLAGS" ++fi # end of the Boost.System check. ++BOOST_FIND_LIB([locale], [$1], + [boost/locale.hpp], +- [[boost::locale::generator gen; std::locale::global(gen(""));]]) ++ [[boost::locale::generator gen; std::locale::global(gen(""));]], [], [], [$2]) ++LIBS=$boost_locale_save_LIBS ++LDFLAGS=$boost_locale_save_LDFLAGS + ])# BOOST_LOCALE + +-# BOOST_LOG([PREFERRED-RT-OPT]) ++# BOOST_LOG([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ----------------------------- + # Look for Boost.Log. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. + BOOST_DEFUN([Log], +-[BOOST_FIND_LIB([log], [$1], ++[boost_log_save_LIBS=$LIBS ++boost_log_save_LDFLAGS=$LDFLAGS ++BOOST_SYSTEM([$1], [$2]) ++BOOST_FILESYSTEM([$1], [$2]) ++BOOST_DATE_TIME([$1], [$2]) ++m4_pattern_allow([^BOOST_(SYSTEM|FILESYSTEM|DATE_TIME)_(LIBS|LDFLAGS)$])dnl ++LIBS="$LIBS $BOOST_DATE_TIME_LIBS $BOOST_FILESYSTEM_LIBS $BOOST_SYSTEM_LIBS" ++LDFLAGS="$LDFLAGS $BOOST_DATE_TIME_LDFLAGS $BOOST_FILESYSTEM_LDFLAGS $BOOST_SYSTEM_LDFLAGS" ++BOOST_FIND_LIB([log], [$1], + [boost/log/core/core.hpp], +- [boost::log::attribute a; a.get_value();]) ++ [boost::log::attribute a; a.get_value();], [], [], [$2]) ++LIBS=$boost_log_save_LIBS ++LDFLAGS=$boost_log_save_LDFLAGS + ])# BOOST_LOG + + +-# BOOST_LOG_SETUP([PREFERRED-RT-OPT]) ++# BOOST_LOG_SETUP([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ----------------------------------- + # Look for Boost.Log. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. + BOOST_DEFUN([Log_Setup], +-[AC_REQUIRE([BOOST_LOG])dnl ++[boost_log_setup_save_LIBS=$LIBS ++boost_log_setup_save_LDFLAGS=$LDFLAGS ++BOOST_LOG([$1]) ++m4_pattern_allow([^BOOST_LOG_(LIBS|LDFLAGS)$])dnl ++LIBS="$LIBS $BOOST_LOG_LIBS" ++LDFLAGS="$LDFLAGS $BOOST_LOG_LDFLAGS" + BOOST_FIND_LIB([log_setup], [$1], + [boost/log/utility/setup/from_settings.hpp], +- [boost::log::basic_settings<char> bs; bs.empty();]) ++ [boost::log::basic_settings<char> bs; bs.empty();], [], [], [$2]) ++LIBS=$boost_log_setup_save_LIBS ++LDFLAGS=$boost_log_setup_save_LDFLAGS + ])# BOOST_LOG_SETUP + + +@@ -825,7 +1089,7 @@ BOOST_DEFUN([Math], + [BOOST_FIND_HEADER([boost/math/special_functions.hpp])]) + + +-# BOOST_MPI([PREFERRED-RT-OPT]) ++# BOOST_MPI([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ------------------------------- + # Look for Boost MPI. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. Uses MPICXX variable if it is +@@ -842,12 +1106,20 @@ BOOST_FIND_LIB([mpi], [$1], + [boost/mpi.hpp], + [int argc = 0; + char **argv = 0; +- boost::mpi::environment env(argc,argv);]) ++ boost::mpi::environment env(argc,argv);], ++ [], [], [$2]) + CXX=${boost_save_CXX} + CXXCPP=${boost_save_CXXCPP} + ])# BOOST_MPI + + ++# BOOST_MPL() ++# ------------------ ++# Look for Boost.MPL ++BOOST_DEFUN([MPL], ++[BOOST_FIND_HEADER([boost/mpl/for_each.hpp])]) ++ ++ + # BOOST_MULTIARRAY() + # ------------------ + # Look for Boost.MultiArray +@@ -855,6 +1127,13 @@ BOOST_DEFUN([MultiArray], + [BOOST_FIND_HEADER([boost/multi_array.hpp])]) + + ++# BOOST_MULTIINDEXCCONTAINER() ++# ------------------ ++# Look for Boost.MultiIndexContainer ++BOOST_DEFUN([MultiIndexContainer], ++[BOOST_FIND_HEADER([boost/multi_index_container.hpp])]) ++ ++ + # BOOST_NUMERIC_UBLAS() + # -------------------------- + # Look for Boost.NumericUblas (Basic Linear Algebra) +@@ -885,6 +1164,25 @@ BOOST_DEFUN([Preprocessor], + [BOOST_FIND_HEADER([boost/preprocessor/repeat.hpp])]) + + ++# BOOST_PROPERTY_TREE([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) ++# ----------------------------------------- ++# Look for Boost.Property_Tree. For the documentation of PREFERRED-RT-OPT, ++# see the documentation of BOOST_FIND_LIB above. ++BOOST_DEFUN([Property_Tree], ++[BOOST_FIND_LIB([property_tree], [$1], ++ [boost/property_tree/ptree.hpp], ++ [boost::property_tree::ptree pt; boost::property_tree::read_xml d("test", pt);], ++ [], [], [$2]) ++])# BOOST_PROPERTY_TREE ++ ++ ++# BOOST_RANDOM() ++# -------------------- ++# Look for Boost.Random ++BOOST_DEFUN([Random], ++[BOOST_FIND_HEADER([boost/random/random_number_generator.hpp])]) ++ ++ + # BOOST_RANGE() + # -------------------- + # Look for Boost.Range +@@ -905,14 +1203,15 @@ BOOST_DEFUN([Uuid], + [BOOST_FIND_HEADER([boost/uuid/uuid.hpp])]) + + +-# BOOST_PROGRAM_OPTIONS([PREFERRED-RT-OPT]) ++# BOOST_PROGRAM_OPTIONS([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ----------------------------------------- + # Look for Boost.Program_options. For the documentation of PREFERRED-RT-OPT, + # see the documentation of BOOST_FIND_LIB above. + BOOST_DEFUN([Program_Options], + [BOOST_FIND_LIB([program_options], [$1], + [boost/program_options.hpp], +- [boost::program_options::options_description d("test");]) ++ [boost::program_options::options_description d("test");], ++ [], [], [$2]) + ])# BOOST_PROGRAM_OPTIONS + + +@@ -928,7 +1227,7 @@ boost_python_save_$1=$$1 + $1="$$1 $BOOST_PYTHON_$1"]) + + +-# BOOST_PYTHON([PREFERRED-RT-OPT]) ++# BOOST_PYTHON([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # -------------------------------- + # Look for Boost.Python. For the documentation of PREFERRED-RT-OPT, + # see the documentation of BOOST_FIND_LIB above. +@@ -939,7 +1238,7 @@ _BOOST_PYTHON_CONFIG([LIBS], [libs]) + m4_pattern_allow([^BOOST_PYTHON_MODULE$])dnl + BOOST_FIND_LIBS([python], [python python3], [$1], + [boost/python.hpp], +- [], [BOOST_PYTHON_MODULE(empty) {}]) ++ [], [BOOST_PYTHON_MODULE(empty) {}], [], [$2]) + CPPFLAGS=$boost_python_save_CPPFLAGS + LDFLAGS=$boost_python_save_LDFLAGS + LIBS=$boost_python_save_LIBS +@@ -953,18 +1252,26 @@ BOOST_DEFUN([Ref], + [BOOST_FIND_HEADER([boost/ref.hpp])]) + + +-# BOOST_REGEX([PREFERRED-RT-OPT]) ++# BOOST_REGEX([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ------------------------------- + # Look for Boost.Regex. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. + BOOST_DEFUN([Regex], + [BOOST_FIND_LIB([regex], [$1], + [boost/regex.hpp], +- [boost::regex exp("*"); boost::regex_match("foo", exp);]) ++ [boost::regex exp("*"); boost::regex_match("foo", exp);], ++ [], [], [$2]) + ])# BOOST_REGEX + + +-# BOOST_SERIALIZATION([PREFERRED-RT-OPT]) ++# BOOST_SCOPE_EXIT() ++# ------------ ++# Look for Boost.ScopeExit. ++BOOST_DEFUN([SCOPE_EXIT], ++[BOOST_FIND_HEADER([boost/scope_exit.hpp])]) ++ ++ ++# BOOST_SERIALIZATION([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # --------------------------------------- + # Look for Boost.Serialization. For the documentation of PREFERRED-RT-OPT, see + # the documentation of BOOST_FIND_LIB above. +@@ -972,18 +1279,20 @@ BOOST_DEFUN([Serialization], + [BOOST_FIND_LIB([serialization], [$1], + [boost/archive/text_oarchive.hpp], + [std::ostream* o = 0; // Cheap way to get an ostream... +- boost::archive::text_oarchive t(*o);]) ++ boost::archive::text_oarchive t(*o);], ++ [], [], [$2]) + ])# BOOST_SERIALIZATION + + +-# BOOST_SIGNALS([PREFERRED-RT-OPT]) ++# BOOST_SIGNALS([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # --------------------------------- + # Look for Boost.Signals. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. + BOOST_DEFUN([Signals], + [BOOST_FIND_LIB([signals], [$1], + [boost/signal.hpp], +- [boost::signal<void ()> s;]) ++ [boost::signal<void ()> s;], ++ [], [], [$2]) + ])# BOOST_SIGNALS + + +@@ -1019,19 +1328,24 @@ BOOST_DEFUN([String_Algo], + ]) + + +-# BOOST_SYSTEM([PREFERRED-RT-OPT]) ++# BOOST_SYSTEM([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # -------------------------------- + # Look for Boost.System. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. This library was introduced in Boost +-# 1.35.0. ++# 1.35.0 and is header only since 1.70. + BOOST_DEFUN([System], +-[BOOST_FIND_LIB([system], [$1], ++[ ++if test $boost_major_version -ge 170; then ++ BOOST_FIND_HEADER([boost/system/error_code.hpp]) ++else ++ BOOST_FIND_LIB([system], [$1], + [boost/system/error_code.hpp], +- [boost::system::error_code e; e.clear();]) ++ [boost::system::error_code e; e.clear();], [], [], [$2]) ++fi + ])# BOOST_SYSTEM + + +-# BOOST_TEST([PREFERRED-RT-OPT]) ++# BOOST_TEST([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ------------------------------ + # Look for Boost.Test. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. +@@ -1041,11 +1355,11 @@ BOOST_FIND_LIB([unit_test_framework], [$1], + [boost/test/unit_test.hpp], [BOOST_CHECK(2 == 2);], + [using boost::unit_test::test_suite; + test_suite* init_unit_test_suite(int argc, char ** argv) +- { return NULL; }]) ++ { return NULL; }], [], [$2]) + ])# BOOST_TEST + + +-# BOOST_THREAD([PREFERRED-RT-OPT]) ++# BOOST_THREAD([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # --------------------------------- + # Look for Boost.Thread. For the documentation of PREFERRED-RT-OPT, see the + # documentation of BOOST_FIND_LIB above. +@@ -1059,7 +1373,7 @@ boost_thread_save_LDFLAGS=$LDFLAGS + boost_thread_save_CPPFLAGS=$CPPFLAGS + # Link-time dependency from thread to system was added as of 1.49.0. + if test $boost_major_version -ge 149; then +-BOOST_SYSTEM([$1]) ++BOOST_SYSTEM([$1], [$2]) + fi # end of the Boost.System check. + m4_pattern_allow([^BOOST_SYSTEM_(LIBS|LDFLAGS)$])dnl + LIBS="$LIBS $BOOST_SYSTEM_LIBS $boost_cv_pthread_flag" +@@ -1078,7 +1392,7 @@ if test $boost_major_version -lt 148; then + fi + BOOST_FIND_LIBS([thread], [thread$boost_thread_lib_ext], + [$1], +- [boost/thread.hpp], [boost::thread t; boost::mutex m;]) ++ [boost/thread.hpp], [boost::thread t; boost::mutex m;], [], [], [$2]) + + case $host_os in + (*mingw*) boost_thread_w32_socket_link=-lws2_32;; +@@ -1154,7 +1468,7 @@ BOOST_FIND_HEADER([boost/ptr_container/ptr_map.hpp]) + ])# BOOST_POINTER_CONTAINER + + +-# BOOST_WAVE([PREFERRED-RT-OPT]) ++# BOOST_WAVE([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE]) + # ------------------------------ + # NOTE: If you intend to use Wave/Spirit with thread support, make sure you + # call BOOST_THREAD first. +@@ -1172,7 +1486,7 @@ LDFLAGS="$LDFLAGS $BOOST_SYSTEM_LDFLAGS $BOOST_FILESYSTEM_LDFLAGS \ + $BOOST_DATE_TIME_LDFLAGS $BOOST_THREAD_LDFLAGS" + BOOST_FIND_LIB([wave], [$1], + [boost/wave.hpp], +- [boost::wave::token_id id; get_token_name(id);]) ++ [boost::wave::token_id id; get_token_name(id);], [], [], [$2]) + LIBS=$boost_wave_save_LIBS + LDFLAGS=$boost_wave_save_LDFLAGS + ])# BOOST_WAVE +@@ -1240,10 +1554,11 @@ AC_CACHE_CHECK([for the flags needed to use pthreads], [boost_cv_pthread_flag], + -pthreads -mthreads -lpthread --thread-safe -mt";; + esac + # Generate the test file. +- AC_LANG_CONFTEST([AC_LANG_PROGRAM([#include <pthread.h>], +- [pthread_t th; pthread_join(th, 0); +- pthread_attr_init(0); pthread_cleanup_push(0, 0); +- pthread_create(0,0,0,0); pthread_cleanup_pop(0);])]) ++ AC_LANG_CONFTEST([AC_LANG_PROGRAM([#include <pthread.h> ++ void *f(void*){ return 0; }], ++ [pthread_t th; pthread_create(&th,0,f,0); pthread_join(th,0); ++ pthread_attr_t attr; pthread_attr_init(&attr); pthread_cleanup_push(0, 0); ++ pthread_cleanup_pop(0);])]) + for boost_pthread_flag in '' $boost_pthread_flags; do + boost_pthread_ok=false + dnl Re-use the test file already generated. +@@ -1305,6 +1620,79 @@ if test x$boost_cv_inc_path != xno; then + # I'm not sure about my test for `il' (be careful: Intel's ICC pre-defines + # the same defines as GCC's). + for i in \ ++ "defined __clang__ && __clang_major__ == 14 && __clang_minor__ == 0 @ clang140" \ ++ "defined __clang__ && __clang_major__ == 13 && __clang_minor__ == 0 @ clang130" \ ++ "defined __clang__ && __clang_major__ == 12 && __clang_minor__ == 0 @ clang120" \ ++ "defined __clang__ && __clang_major__ == 11 && __clang_minor__ == 1 @ clang111" \ ++ "defined __clang__ && __clang_major__ == 11 && __clang_minor__ == 0 @ clang110" \ ++ "defined __clang__ && __clang_major__ == 10 && __clang_minor__ == 0 @ clang100" \ ++ "defined __clang__ && __clang_major__ == 9 && __clang_minor__ == 0 @ clang90" \ ++ "defined __clang__ && __clang_major__ == 8 && __clang_minor__ == 0 @ clang80" \ ++ "defined __clang__ && __clang_major__ == 7 && __clang_minor__ == 0 @ clang70" \ ++ "defined __clang__ && __clang_major__ == 6 && __clang_minor__ == 0 @ clang60" \ ++ "defined __clang__ && __clang_major__ == 5 && __clang_minor__ == 0 @ clang50" \ ++ "defined __clang__ && __clang_major__ == 4 && __clang_minor__ == 0 @ clang40" \ ++ "defined __clang__ && __clang_major__ == 3 && __clang_minor__ == 9 @ clang39" \ ++ "defined __clang__ && __clang_major__ == 3 && __clang_minor__ == 8 @ clang38" \ ++ "defined __clang__ && __clang_major__ == 3 && __clang_minor__ == 7 @ clang37" \ ++ _BOOST_mingw_test(11, 2) \ ++ _BOOST_gcc_test(11, 2) \ ++ _BOOST_mingw_test(11, 1) \ ++ _BOOST_gcc_test(11, 1) \ ++ _BOOST_mingw_test(10, 3) \ ++ _BOOST_gcc_test(10, 3) \ ++ _BOOST_mingw_test(10, 2) \ ++ _BOOST_gcc_test(10, 2) \ ++ _BOOST_mingw_test(10, 1) \ ++ _BOOST_gcc_test(10, 1) \ ++ _BOOST_mingw_test(9, 3) \ ++ _BOOST_gcc_test(9, 3) \ ++ _BOOST_mingw_test(9, 2) \ ++ _BOOST_gcc_test(9, 2) \ ++ _BOOST_mingw_test(9, 1) \ ++ _BOOST_gcc_test(9, 1) \ ++ _BOOST_mingw_test(9, 0) \ ++ _BOOST_gcc_test(9, 0) \ ++ _BOOST_mingw_test(8, 5) \ ++ _BOOST_gcc_test(8, 5) \ ++ _BOOST_mingw_test(8, 4) \ ++ _BOOST_gcc_test(8, 4) \ ++ _BOOST_mingw_test(8, 3) \ ++ _BOOST_gcc_test(8, 3) \ ++ _BOOST_mingw_test(8, 2) \ ++ _BOOST_gcc_test(8, 2) \ ++ _BOOST_mingw_test(8, 1) \ ++ _BOOST_gcc_test(8, 1) \ ++ _BOOST_mingw_test(8, 0) \ ++ _BOOST_gcc_test(8, 0) \ ++ _BOOST_mingw_test(7, 4) \ ++ _BOOST_gcc_test(7, 4) \ ++ _BOOST_mingw_test(7, 3) \ ++ _BOOST_gcc_test(7, 3) \ ++ _BOOST_mingw_test(7, 2) \ ++ _BOOST_gcc_test(7, 2) \ ++ _BOOST_mingw_test(7, 1) \ ++ _BOOST_gcc_test(7, 1) \ ++ _BOOST_mingw_test(7, 0) \ ++ _BOOST_gcc_test(7, 0) \ ++ _BOOST_mingw_test(6, 5) \ ++ _BOOST_gcc_test(6, 5) \ ++ _BOOST_mingw_test(6, 4) \ ++ _BOOST_gcc_test(6, 4) \ ++ _BOOST_mingw_test(6, 3) \ ++ _BOOST_gcc_test(6, 3) \ ++ _BOOST_mingw_test(6, 2) \ ++ _BOOST_gcc_test(6, 2) \ ++ _BOOST_mingw_test(6, 1) \ ++ _BOOST_gcc_test(6, 1) \ ++ _BOOST_mingw_test(6, 0) \ ++ _BOOST_gcc_test(6, 0) \ ++ _BOOST_mingw_test(5, 5) \ ++ _BOOST_gcc_test(5, 5) \ ++ _BOOST_mingw_test(5, 4) \ ++ _BOOST_gcc_test(5, 4) \ ++ _BOOST_mingw_test(5, 3) \ ++ _BOOST_gcc_test(5, 3) \ + _BOOST_mingw_test(5, 2) \ + _BOOST_gcc_test(5, 2) \ + _BOOST_mingw_test(5, 1) \ +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 07/77] package/cc-tool: Fix build with Boost >= 1.89 2026-09-19 15:57 ` [Buildroot] [PATCH v2 07/77] package/cc-tool: Fix build with Boost >= 1.89 Bernd Kuhls @ 2026-09-20 12:42 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 12:42 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:32PM +0200, Bernd Kuhls wrote: > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to master, thanks! Best regards, Thomas Petazzoni -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 08/77] package/jwt-cpp: new package 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (6 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 07/77] package/cc-tool: Fix build with Boost >= 1.89 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 12:56 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 09/77] package/domoticz: bump version to 2026.3 Bernd Kuhls ` (68 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Needed for domoticz >= 2025.1: https://github.com/domoticz/domoticz/commit/b30d9e9436ad428a2cbfd1fbb273461bdbf50a82 Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- DEVELOPERS | 1 + package/Config.in | 1 + package/jwt-cpp/Config.in | 12 ++++++++++++ package/jwt-cpp/jwt-cpp.hash | 4 ++++ package/jwt-cpp/jwt-cpp.mk | 18 ++++++++++++++++++ 5 files changed, 36 insertions(+) create mode 100644 package/jwt-cpp/Config.in create mode 100644 package/jwt-cpp/jwt-cpp.hash create mode 100644 package/jwt-cpp/jwt-cpp.mk diff --git a/DEVELOPERS b/DEVELOPERS index d15fffea27..9963b77dd9 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -405,6 +405,7 @@ F: package/intel-mediasdk/ F: package/intel-microcode/ F: package/intel-vpl-gpu-rt/ F: package/jsoncpp/ +F: package/jwt-cpp/ F: package/kodi* F: package/lame/ F: package/lcms2/ diff --git a/package/Config.in b/package/Config.in index 968ad126bc..8dd0560a2e 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1908,6 +1908,7 @@ menu "JSON/XML" source "package/json-for-modern-cpp/Config.in" source "package/json-glib/Config.in" source "package/jsoncpp/Config.in" + source "package/jwt-cpp/Config.in" source "package/libfastjson/Config.in" source "package/libjson/Config.in" source "package/libroxml/Config.in" diff --git a/package/jwt-cpp/Config.in b/package/jwt-cpp/Config.in new file mode 100644 index 0000000000..3feadfe3ec --- /dev/null +++ b/package/jwt-cpp/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_JWT_CPP + bool "jwt-cpp" + depends on BR2_INSTALL_LIBSTDCPP + select BR2_PACKAGE_OPENSSL + help + A header only library for creating and validating json web + tokens in c++ + + https://thalhammer.github.io/jwt-cpp/ + +comment "jwt-cpp needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/package/jwt-cpp/jwt-cpp.hash b/package/jwt-cpp/jwt-cpp.hash new file mode 100644 index 0000000000..38df18ced7 --- /dev/null +++ b/package/jwt-cpp/jwt-cpp.hash @@ -0,0 +1,4 @@ +# From https://github.com/Thalhammer/jwt-cpp/releases/tag/v0.7.2 +sha256 7c1b4f767bdd14f727f6114d9e35b761f10d00d6a27ef7650ee8c628f08df27c jwt-cpp-v0.7.2.tar.gz +# Locally calculated +sha256 35c2d7d6824a1e1ed2b266ec334b7862726ae593855c3cfa68b952bb75f082c4 LICENSE diff --git a/package/jwt-cpp/jwt-cpp.mk b/package/jwt-cpp/jwt-cpp.mk new file mode 100644 index 0000000000..27e7d23691 --- /dev/null +++ b/package/jwt-cpp/jwt-cpp.mk @@ -0,0 +1,18 @@ +################################################################################ +# +# jwt-cpp +# +################################################################################ + +JWT_CPP_VERSION = 0.7.2 +JWT_CPP_SITE = https://github.com/Thalhammer/jwt-cpp/releases/download/v$(JWT_CPP_VERSION) +JWT_CPP_SOURCE = jwt-cpp-v$(JWT_CPP_VERSION).tar.gz +JWT_CPP_LICENSE = MIT +JWT_CPP_LICENSE_FILES = LICENSE +JWT_CPP_INSTALL_STAGING = YES +JWT_CPP_DEPENDENCIES = openssl +JWT_CPP_CONF_OPTS = \ + -DJWT_BUILD_EXAMPLES=OFF \ + -DJWT_BUILD_TESTS=OFF + +$(eval $(cmake-package)) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 08/77] package/jwt-cpp: new package 2026-09-19 15:57 ` [Buildroot] [PATCH v2 08/77] package/jwt-cpp: new package Bernd Kuhls @ 2026-09-20 12:56 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 12:56 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:33PM +0200, Bernd Kuhls wrote: > Needed for domoticz >= 2025.1: > https://github.com/domoticz/domoticz/commit/b30d9e9436ad428a2cbfd1fbb273461bdbf50a82 > > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Thanks, applied, after: - Adding a gcc >= 4.8 dependency since this package uses C++11 (at least according to its homepage)² - Adding an entry in the DEVELOPERS file, assigned to Fabrice, since he is listed as the maintainer for domoticz. Best regards, Thomas Petazzoni -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 09/77] package/domoticz: bump version to 2026.3 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (7 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 08/77] package/jwt-cpp: new package Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 12:58 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 10/77] package/libtorrent-rasterbar: bump version to 2.1.1 Bernd Kuhls ` (67 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Added new dependency jwt-cpp needed since 2025.1: https://github.com/domoticz/domoticz/commit/b30d9e9436ad428a2cbfd1fbb273461bdbf50a82 Added _EXTRA_DOWNLOAD for libwebem after its split from domoticz: https://github.com/domoticz/domoticz/commit/7de4834e9959e8a9a21a2b82bb7700ea5af6e618 to avoid fetching git submodules. Use version number from upstream repo: https://github.com/domoticz/domoticz/tree/2026.3/extern Raise minimum gcc version because libwebem depends on c++17: https://github.com/domoticz/libwebem/blob/master/README.md Removed configure option USE_BUILTIN_MQTT due to its upstream removal: https://github.com/domoticz/domoticz/commit/be95eec094bf524c1ab011eebcd797d3b19b17fc Link to libatomic to fix a build error output/per-package/domoticz/host/opt/ext-toolchain/bin/../lib/gcc/arc-buildroot-linux-uclibc/15.3.0/../../../../arc-buildroot-linux-uclibc/bin/ld: CMakeFiles/domoticz.dir/hardware/Matter.cpp.o: undefined reference to symbol '__atomic_load_8@@LIBATOMIC_1.0' detected by the Gitlab pipelines which is introduced by upstream commit https://github.com/domoticz/domoticz/commit/ec5488a7df963af4b260a92bfecea53edc20b136 that added hardware/Matter.cpp in version 2026.2. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/domoticz/Config.in | 7 ++++--- package/domoticz/domoticz.hash | 3 ++- package/domoticz/domoticz.mk | 27 +++++++++++++++++++++++---- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/package/domoticz/Config.in b/package/domoticz/Config.in index a0e69a7601..2af63baecf 100644 --- a/package/domoticz/Config.in +++ b/package/domoticz/Config.in @@ -2,7 +2,7 @@ config BR2_PACKAGE_DOMOTICZ bool "domoticz" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_6 # C++14 + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 # pthread_condattr_setclock depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # mosquitto depends on BR2_INSTALL_LIBSTDCPP @@ -17,6 +17,7 @@ config BR2_PACKAGE_DOMOTICZ select BR2_PACKAGE_BOOST_THREAD select BR2_PACKAGE_CEREAL select BR2_PACKAGE_JSONCPP + select BR2_PACKAGE_JWT_CPP select BR2_PACKAGE_LIBCURL select BR2_PACKAGE_MINIZIP_ZLIB select BR2_PACKAGE_MOSQUITTO @@ -32,11 +33,11 @@ config BR2_PACKAGE_DOMOTICZ http://domoticz.com -comment "domoticz needs lua 5.3 and a toolchain w/ C++, gcc >= 6, NPTL, wchar, dynamic library" +comment "domoticz needs lua 5.3 and a toolchain w/ C++, gcc >= 7, NPTL, wchar, dynamic library" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_INSTALL_LIBSTDCPP || \ - !BR2_TOOLCHAIN_GCC_AT_LEAST_6 || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ !BR2_USE_WCHAR || BR2_STATIC_LIBS || \ !BR2_PACKAGE_LUA_5_3 diff --git a/package/domoticz/domoticz.hash b/package/domoticz/domoticz.hash index ae86a67b79..fc3904ade7 100644 --- a/package/domoticz/domoticz.hash +++ b/package/domoticz/domoticz.hash @@ -1,3 +1,4 @@ # Locally computed: -sha256 d87113d7cacd0b52b9126fcc1ef24e140a4f7042d5bc6262e86e4b4752f5cf38 domoticz-2024.4.tar.gz +sha256 10053191b4f6becdf244d2a416b9e655c91d357b51dd8280832c6e36f7d5d5c7 domoticz-2026.3.tar.gz +sha256 937e31bfb4b414bb33e70cad1403afd023dfff6cebba3213ec62a9c91525dcab libwebem-9126af0ce3456c24b936dfb20d1b5a8bdb797104.tar.gz sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 License.txt diff --git a/package/domoticz/domoticz.mk b/package/domoticz/domoticz.mk index 95d3335adb..5387076b97 100644 --- a/package/domoticz/domoticz.mk +++ b/package/domoticz/domoticz.mk @@ -4,16 +4,30 @@ # ################################################################################ -DOMOTICZ_VERSION = 2024.4 +DOMOTICZ_VERSION = 2026.3 DOMOTICZ_SITE = $(call github,domoticz,domoticz,$(DOMOTICZ_VERSION)) DOMOTICZ_LICENSE = GPL-3.0 DOMOTICZ_LICENSE_FILES = License.txt DOMOTICZ_CPE_ID_VENDOR = domoticz + +DOMOTICZ_LIBWEBEM_VERSION = 9126af0ce3456c24b936dfb20d1b5a8bdb797104 +DOMOTICZ_EXTRA_DOWNLOADS = \ + $(call github,domoticz,libwebem,$(DOMOTICZ_LIBWEBEM_VERSION))/libwebem-$(DOMOTICZ_LIBWEBEM_VERSION).tar.gz + +define DOMOTICZ_INSTALL_SUBPROJECTS + rm -rf $(@D)/extern/libwebem + mkdir -p $(@D)/extern/libwebem + $(TAR) --strip-components=1 -C $(@D)/extern/libwebem \ + -xf $(DOMOTICZ_DL_DIR)/libwebem-$(DOMOTICZ_LIBWEBEM_VERSION).tar.gz +endef +DOMOTICZ_POST_EXTRACT_HOOKS += DOMOTICZ_INSTALL_SUBPROJECTS + DOMOTICZ_DEPENDENCIES = \ boost \ cereal \ host-pkgconf \ jsoncpp \ + jwt-cpp \ libcurl \ lua \ minizip-zlib \ @@ -25,6 +39,11 @@ DOMOTICZ_DEPENDENCIES = \ # Disable precompiled header as it needs cmake >= 3.16 DOMOTICZ_CONF_OPTS = -DUSE_PRECOMPILED_HEADER=OFF +# Uses __atomic_load_8 +ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) +DOMOTICZ_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic +endif + # Due to the dependency on mosquitto, domoticz depends on # !BR2_STATIC_LIBS so set USE_STATIC_BOOST and USE_OPENSSL_STATIC to OFF DOMOTICZ_CONF_OPTS += \ @@ -32,12 +51,12 @@ DOMOTICZ_CONF_OPTS += \ -DUSE_OPENSSL_STATIC=OFF # Do not use any built-in libraries which are enabled by default for -# jsoncpp, fmt, minizip, sqlite and mqtt +# jsoncpp, jwt-cpp, minizip and sqlite DOMOTICZ_CONF_OPTS += \ -DUSE_BUILTIN_JSONCPP=OFF \ + -DUSE_BUILTIN_JWTCPP=OFF \ -DUSE_BUILTIN_MINIZIP=OFF \ - -DUSE_BUILTIN_SQLITE=OFF \ - -DUSE_BUILTIN_MQTT=OFF + -DUSE_BUILTIN_SQLITE=OFF ifeq ($(BR2_PACKAGE_LIBEXECINFO),y) DOMOTICZ_DEPENDENCIES += libexecinfo -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 09/77] package/domoticz: bump version to 2026.3 2026-09-19 15:57 ` [Buildroot] [PATCH v2 09/77] package/domoticz: bump version to 2026.3 Bernd Kuhls @ 2026-09-20 12:58 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 12:58 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:34PM +0200, Bernd Kuhls wrote: > Removed configure option USE_BUILTIN_MQTT due to its upstream removal: > https://github.com/domoticz/domoticz/commit/be95eec094bf524c1ab011eebcd797d3b19b17fc But then, is mosquitto still needed as a dependency? (The rest of the patch looks good, this is the only thing that I noticed during the review) Thanks! Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 10/77] package/libtorrent-rasterbar: bump version to 2.1.1 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (8 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 09/77] package/domoticz: bump version to 2026.3 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 13:01 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 11/77] package/boost: remove dependencies on Boost.DateTime Bernd Kuhls ` (66 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark https://github.com/arvidn/libtorrent/blob/v2.1.1/ChangeLog Switched to sha256 tarball hash provided by upstream. Updated license hash due to copyright year bumps: https://github.com/arvidn/libtorrent/commit/d3f7a363c2a413f4b3b4ddfd6cbe5a3208016b1c https://github.com/arvidn/libtorrent/commit/fb2ab9946a130df7b5ee290ec363aa2214256e00 Added patch 0001 to fix a build error with gcc-9.3.0 detected by the Gitlab pipelines which would be introduced by this bump. Raised minimum gcc version to 8 to fix a build error detected by the Gitlab pipelines which would be introduced by this bump: /builds/bkuhls/buildroot/br-test-pkg/bootlin-aarch64-glibc-old/build/libtorrent-rasterbar-2.1.1/include/libtorrent/string_view.hpp:13:23: fatal error: string_view: No such file or directory Added dependency to BR2_USE_MMU to fix a build error detected by the Gitlab pipelines which would be introduced by this bump: /builds/bkuhls/buildroot/br-test-pkg/bootlin-armv7m-uclibc/build/libtorrent-rasterbar-2.1.1/src/mmap.cpp:283:19: error: ‘::madvise’ has not been declared; did you mean ‘advise’? Switched build system to cmake due to upstream removal of autotools: https://github.com/arvidn/libtorrent/commit/d7db28663d3b6827c2fa8d5a44fad7c73828108a Added new configure option webtorrent https://github.com/arvidn/libtorrent/commit/4ef8be818fea440c921c39e5f90e5818a4749086 to disable the dependency to OpenSSL for libdatachannel: https://github.com/paullouisageneau/libdatachannel/blob/a02b751917ac8afc8c58dc6f4461d25ff9465d48/CMakeLists.txt#L452 which was added to libtorrent-rasterbar in version 2.1.0: https://github.com/arvidn/libtorrent/commit/8d7d82b0330f16297b21e77a5d7c355813687e16 Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0001-fix-more-c-17-that-made-it-in.patch | 53 +++++++++++++++++++ package/libtorrent-rasterbar/Config.in | 8 +-- .../libtorrent-rasterbar.hash | 5 +- .../libtorrent-rasterbar.mk | 22 +++----- 4 files changed, 67 insertions(+), 21 deletions(-) create mode 100644 package/libtorrent-rasterbar/0001-fix-more-c-17-that-made-it-in.patch diff --git a/package/libtorrent-rasterbar/0001-fix-more-c-17-that-made-it-in.patch b/package/libtorrent-rasterbar/0001-fix-more-c-17-that-made-it-in.patch new file mode 100644 index 0000000000..afce75b9ff --- /dev/null +++ b/package/libtorrent-rasterbar/0001-fix-more-c-17-that-made-it-in.patch @@ -0,0 +1,53 @@ +From 2638789b7048e17aba7cc8674305f36bd349c795 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Mon, 14 Sep 2026 17:31:24 +0200 +Subject: [PATCH] fix more c++17 that made it in +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Patch was inspired by https://github.com/arvidn/libtorrent/pull/4805 +and fixes a build error with gcc-9.3.0 + +buildroot/output/build/libtorrent-rasterbar-2.1.1/src/torrent_info.cpp:855:16: + error: function ‘libtorrent::torrent_info& libtorrent::torrent_info::operator=(libtorrent::torrent_info&&)’ + defaulted on its redeclaration with an exception-specification that + differs from the implicit exception-specification ‘’ + +Upstream: https://github.com/arvidn/libtorrent/pull/8869 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + include/libtorrent/torrent_info.hpp | 2 +- + src/torrent_info.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/libtorrent/torrent_info.hpp b/include/libtorrent/torrent_info.hpp +index 8843179a2..add61c2d7 100644 +--- a/include/libtorrent/torrent_info.hpp ++++ b/include/libtorrent/torrent_info.hpp +@@ -213,7 +213,7 @@ TORRENT_VERSION_NAMESPACE_4 + + // hidden + torrent_info& operator=(torrent_info const&) = delete; +- torrent_info& operator=(torrent_info&&) noexcept; ++ torrent_info& operator=(torrent_info&&); + + // The file_storage object contains the information on how to map the + // pieces to files. It is separated from the torrent_info object as the +diff --git a/src/torrent_info.cpp b/src/torrent_info.cpp +index 0a4b90b04..6fe584c39 100644 +--- a/src/torrent_info.cpp ++++ b/src/torrent_info.cpp +@@ -856,7 +856,7 @@ namespace { + TORRENT_VERSION_NAMESPACE_4 + + torrent_info::torrent_info(torrent_info const&) = default; +- torrent_info& torrent_info::operator=(torrent_info&&) noexcept = default; ++ torrent_info& torrent_info::operator=(torrent_info&&) = default; + + #if TORRENT_ABI_VERSION < 4 + void torrent_info::remap_files(file_storage const& f) +-- +2.47.3 + diff --git a/package/libtorrent-rasterbar/Config.in b/package/libtorrent-rasterbar/Config.in index 459edc1be5..d78f9ac206 100644 --- a/package/libtorrent-rasterbar/Config.in +++ b/package/libtorrent-rasterbar/Config.in @@ -1,8 +1,9 @@ -comment "libtorrent-rasterbar needs a toolchain w/ C++, threads, wchar, gcc >= 4.9" +comment "libtorrent-rasterbar needs a toolchain w/ C++, threads, wchar, gcc >= 8" depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 + depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ - !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_8 comment "libtorrent-rasterbar needs exception_ptr" depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK @@ -11,9 +12,10 @@ comment "libtorrent-rasterbar needs exception_ptr" config BR2_PACKAGE_LIBTORRENT_RASTERBAR bool "libtorrent-rasterbar" depends on BR2_INSTALL_LIBSTDCPP # boost - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11 + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # string_view depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK + depends on BR2_USE_MMU # madvise() depends on BR2_USE_WCHAR # boost depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr select BR2_PACKAGE_BOOST diff --git a/package/libtorrent-rasterbar/libtorrent-rasterbar.hash b/package/libtorrent-rasterbar/libtorrent-rasterbar.hash index 6b6175d9de..19f11665e6 100644 --- a/package/libtorrent-rasterbar/libtorrent-rasterbar.hash +++ b/package/libtorrent-rasterbar/libtorrent-rasterbar.hash @@ -1,3 +1,4 @@ +# From https://github.com/arvidn/libtorrent/releases/tag/v2.1.1 +sha256 0f163516ecef2e3331500266751de3098835a3c3ae0c2290448046c632bc0e93 libtorrent-rasterbar-2.1.1.tar.gz # Locally calculated -sha256 ccbf8e8c21dc81635de95166b498922b4725f9725a23b2cfe2a6b2fead6fb9fc libtorrent-rasterbar-1.2.20.tar.gz -sha256 f3a5dd1558cce616b12edad521427ec8976ce2bb0af33f7f359cfa648bf55ad8 COPYING +sha256 f4b492afbde73d2f4e051050a619622876a13b77e7b8b6ea3ec2868a6929b31b COPYING diff --git a/package/libtorrent-rasterbar/libtorrent-rasterbar.mk b/package/libtorrent-rasterbar/libtorrent-rasterbar.mk index 2cc24c487a..d71907b1be 100644 --- a/package/libtorrent-rasterbar/libtorrent-rasterbar.mk +++ b/package/libtorrent-rasterbar/libtorrent-rasterbar.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBTORRENT_RASTERBAR_VERSION = 1.2.20 +LIBTORRENT_RASTERBAR_VERSION = 2.1.1 LIBTORRENT_RASTERBAR_SITE = \ https://github.com/arvidn/libtorrent/releases/download/v$(LIBTORRENT_RASTERBAR_VERSION) LIBTORRENT_RASTERBAR_LICENSE = BSD-3-Clause @@ -13,10 +13,7 @@ LIBTORRENT_RASTERBAR_CPE_ID_VENDOR = libtorrent LIBTORRENT_RASTERBAR_CPE_ID_PRODUCT = libtorrent LIBTORRENT_RASTERBAR_DEPENDENCIES = host-pkgconf boost LIBTORRENT_RASTERBAR_INSTALL_STAGING = YES -LIBTORRENT_RASTERBAR_CONF_OPTS = \ - --with-boost-libdir=$(STAGING_DIR)/usr/lib \ - --disable-invariant-checks -LIBTORRENT_RASTERBAR_CXXFLAGS = $(TARGET_CXXFLAGS) -std=c++11 +LIBTORRENT_RASTERBAR_CXXFLAGS = $(TARGET_CXXFLAGS) # Internal error, aborting at dwarf2cfi.c:2802 in connect_traces # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58864 @@ -28,20 +25,13 @@ ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) LIBTORRENT_RASTERBAR_CXXFLAGS += -O0 endif -LIBTORRENT_RASTERBAR_CONF_OPTS += CXXFLAGS="$(LIBTORRENT_RASTERBAR_CXXFLAGS)" - -ifeq ($(BR2_ENABLE_LOCALE)$(BR2_PACKAGE_LIBICONV),y) -LIBTORRENT_RASTERBAR_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv) -LIBTORRENT_RASTERBAR_CONF_OPTS += --with-libiconv -else -LIBTORRENT_RASTERBAR_CONF_OPTS += --without-libiconv -endif +LIBTORRENT_RASTERBAR_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(LIBTORRENT_RASTERBAR_CXXFLAGS)" ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBTORRENT_RASTERBAR_DEPENDENCIES += openssl -LIBTORRENT_RASTERBAR_CONF_OPTS += --enable-encryption +LIBTORRENT_RASTERBAR_CONF_OPTS += -Dencryption=ON -Dwebtorrent=ON else -LIBTORRENT_RASTERBAR_CONF_OPTS += --disable-encryption +LIBTORRENT_RASTERBAR_CONF_OPTS += -Dencryption=OFF -Dwebtorrent=OFF endif -$(eval $(autotools-package)) +$(eval $(cmake-package)) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 10/77] package/libtorrent-rasterbar: bump version to 2.1.1 2026-09-19 15:57 ` [Buildroot] [PATCH v2 10/77] package/libtorrent-rasterbar: bump version to 2.1.1 Bernd Kuhls @ 2026-09-20 13:01 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 13:01 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:35PM +0200, Bernd Kuhls wrote: > diff --git a/package/libtorrent-rasterbar/0001-fix-more-c-17-that-made-it-in.patch b/package/libtorrent-rasterbar/0001-fix-more-c-17-that-made-it-in.patch > new file mode 100644 > index 0000000000..afce75b9ff > --- /dev/null > +++ b/package/libtorrent-rasterbar/0001-fix-more-c-17-that-made-it-in.patch > @@ -0,0 +1,53 @@ > +From 2638789b7048e17aba7cc8674305f36bd349c795 Mon Sep 17 00:00:00 2001 > +From: Bernd Kuhls <bernd@kuhls.net> > +Date: Mon, 14 Sep 2026 17:31:24 +0200 > +Subject: [PATCH] fix more c++17 that made it in > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +Patch was inspired by https://github.com/arvidn/libtorrent/pull/4805 > +and fixes a build error with gcc-9.3.0 > + > +buildroot/output/build/libtorrent-rasterbar-2.1.1/src/torrent_info.cpp:855:16: > + error: function ‘libtorrent::torrent_info& libtorrent::torrent_info::operator=(libtorrent::torrent_info&&)’ > + defaulted on its redeclaration with an exception-specification that > + differs from the implicit exception-specification ‘’ > + > +Upstream: https://github.com/arvidn/libtorrent/pull/8869 Upstream is apparently not happy with the proposed change. Maybe you can provide feedback on the gcc version that was tested (gcc 9.x) and see what they say? Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 11/77] package/boost: remove dependencies on Boost.DateTime 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (9 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 10/77] package/libtorrent-rasterbar: bump version to 2.1.1 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 13:02 ` Thomas Petazzoni via buildroot 2026-09-25 14:47 ` Raphaël Mélotte via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 12/77] package/boost: bump version to 1.92.0 Bernd Kuhls ` (65 subsequent siblings) 76 siblings, 2 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark From: Michael Nosthoff <buildroot@heine.tech> Boost.DateTime is header-only since 1.77.0 The Boost Release Notes[0] didn't mention it but it was introduced in the documentation of DateTime in this commit: [1] This was bumped in buildroot in d39d8f7cee9b4634e6f490020204f63fae419e8e So analog to the "header-only" move of Boost.System we have now to gradually phase out the dependencies on this library. Ideally before the stub is removed as it now happened for Boost.System in 1.89.0. [0] https://www.boost.org/releases/1.77.0/ [1] https://github.com/boostorg/date_time/commit/33dc6136f193a100c753c819694d6d11e9ab4123 Signed-off-by: Michael Nosthoff <buildroot@heine.tech> Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/boost/Config.in | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package/boost/Config.in b/package/boost/Config.in index a9ab4836b5..7b78345798 100644 --- a/package/boost/Config.in +++ b/package/boost/Config.in @@ -95,6 +95,9 @@ config BR2_PACKAGE_BOOST_DATE_TIME A set of date-time libraries based on generic programming concepts. + This library is header only since boost 1.77.0. Building a + stub library is still supported for backward compatibility. + config BR2_PACKAGE_BOOST_EXCEPTION bool "boost-exception" help @@ -200,7 +203,6 @@ config BR2_PACKAGE_BOOST_LOG depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread select BR2_PACKAGE_BOOST_ATOMIC - select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_REGEX select BR2_PACKAGE_BOOST_THREAD @@ -359,7 +361,6 @@ config BR2_PACKAGE_BOOST_WAVE depends on !BR2_m68k_cf depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread - select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_THREAD help -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 11/77] package/boost: remove dependencies on Boost.DateTime 2026-09-19 15:57 ` [Buildroot] [PATCH v2 11/77] package/boost: remove dependencies on Boost.DateTime Bernd Kuhls @ 2026-09-20 13:02 ` Thomas Petazzoni via buildroot 2026-09-25 14:47 ` Raphaël Mélotte via buildroot 1 sibling, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 13:02 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:36PM +0200, Bernd Kuhls wrote: > From: Michael Nosthoff <buildroot@heine.tech> > > Boost.DateTime is header-only since 1.77.0 > The Boost Release Notes[0] didn't mention it but it was introduced in > the documentation of DateTime in this commit: [1] > > This was bumped in buildroot in d39d8f7cee9b4634e6f490020204f63fae419e8e > > So analog to the "header-only" move of Boost.System we have now to > gradually phase out the dependencies on this library. Ideally before > the stub is removed as it now happened for Boost.System in 1.89.0. > > [0] https://www.boost.org/releases/1.77.0/ > [1] https://github.com/boostorg/date_time/commit/33dc6136f193a100c753c819694d6d11e9ab4123 > > Signed-off-by: Michael Nosthoff <buildroot@heine.tech> > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to master, thanks! Best regards, Thomas Petazzoni -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 11/77] package/boost: remove dependencies on Boost.DateTime 2026-09-19 15:57 ` [Buildroot] [PATCH v2 11/77] package/boost: remove dependencies on Boost.DateTime Bernd Kuhls 2026-09-20 13:02 ` Thomas Petazzoni via buildroot @ 2026-09-25 14:47 ` Raphaël Mélotte via buildroot 1 sibling, 0 replies; 107+ messages in thread From: Raphaël Mélotte via buildroot @ 2026-09-25 14:47 UTC (permalink / raw) To: buildroot, Bernd Kuhls; +Cc: Raphaël Mélotte In reply of: > Boost.DateTime is header-only since 1.77.0 > The Boost Release Notes[0] didn't mention it but it was introduced in > the documentation of DateTime in this commit: [1] > > This was bumped in buildroot in d39d8f7cee9b4634e6f490020204f63fae419e8e > > So analog to the "header-only" move of Boost.System we have now to > gradually phase out the dependencies on this library. Ideally before > the stub is removed as it now happened for Boost.System in 1.89.0. > > [0] https://www.boost.org/releases/1.77.0/ > [1] https://github.com/boostorg/date_time/commit/33dc6136f193a100c753c819694d6d11e9ab4123 > > Signed-off-by: Michael Nosthoff <buildroot@heine.tech> > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to 2025.02.x, 2026.08.x. Thanks > --- > package/boost/Config.in | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/package/boost/Config.in b/package/boost/Config.in > index a9ab4836b5..7b78345798 100644 > --- a/package/boost/Config.in > +++ b/package/boost/Config.in > @@ -95,6 +95,9 @@ config BR2_PACKAGE_BOOST_DATE_TIME > A set of date-time libraries based on generic programming > concepts. > > + This library is header only since boost 1.77.0. Building a > + stub library is still supported for backward compatibility. > + > config BR2_PACKAGE_BOOST_EXCEPTION > bool "boost-exception" > help > @@ -200,7 +203,6 @@ config BR2_PACKAGE_BOOST_LOG > depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic > depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread > select BR2_PACKAGE_BOOST_ATOMIC > - select BR2_PACKAGE_BOOST_DATE_TIME > select BR2_PACKAGE_BOOST_FILESYSTEM > select BR2_PACKAGE_BOOST_REGEX > select BR2_PACKAGE_BOOST_THREAD > @@ -359,7 +361,6 @@ config BR2_PACKAGE_BOOST_WAVE > depends on !BR2_m68k_cf > depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread > depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread > - select BR2_PACKAGE_BOOST_DATE_TIME > select BR2_PACKAGE_BOOST_FILESYSTEM > select BR2_PACKAGE_BOOST_THREAD > help _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 12/77] package/boost: bump version to 1.92.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (10 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 11/77] package/boost: remove dependencies on Boost.DateTime Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 13/77] package/libpjsip: Add support for OpenSSL 4.0.0 Bernd Kuhls ` (64 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark https://www.boost.org/releases/1.92.0/ https://www.boost.org/releases/1.91.0/ https://www.boost.org/releases/1.90.0/ https://www.boost.org/releases/1.89.0/ https://www.boost.org/releases/1.88.0/ https://www.boost.org/releases/1.87.0/ https://www.boost.org/releases/1.86.0/ https://www.boost.org/releases/1.85.0/ https://www.boost.org/releases/1.84.0/ Removed patch which is included in this release. Added patch 0001 to fix a build error introduced by upstream commit https://github.com/boostorg/process/commit/406cd3ecf36c19b94b4376241a4b3b43d1eae308 first included in version 1.85.0. Added patches 0002-0004 to fix more build errors detected by the Gitlab pipelines. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...xit_code-guard-static_asserts-on-MIP.patch | 59 +++++++++++++++++++ .../0001-unordered-fix-copy-assign.patch | 22 ------- ...-for-duplicate-definition-of-SIGLOST.patch | 30 ++++++++++ package/boost/0003-Fix-build.patch | 39 ++++++++++++ ...-types-between-declaration-and-defin.patch | 53 +++++++++++++++++ package/boost/Config.in | 12 ++-- package/boost/boost.hash | 4 +- package/boost/boost.mk | 2 +- 8 files changed, 191 insertions(+), 30 deletions(-) create mode 100644 package/boost/0001-fix-process-v2-exit_code-guard-static_asserts-on-MIP.patch delete mode 100644 package/boost/0001-unordered-fix-copy-assign.patch create mode 100644 package/boost/0002-Add-check-for-duplicate-definition-of-SIGLOST.patch create mode 100644 package/boost/0003-Fix-build.patch create mode 100644 package/boost/0004-fix-inconsistent-types-between-declaration-and-defin.patch diff --git a/package/boost/0001-fix-process-v2-exit_code-guard-static_asserts-on-MIP.patch b/package/boost/0001-fix-process-v2-exit_code-guard-static_asserts-on-MIP.patch new file mode 100644 index 0000000000..3f96580e4e --- /dev/null +++ b/package/boost/0001-fix-process-v2-exit_code-guard-static_asserts-on-MIP.patch @@ -0,0 +1,59 @@ +From 670ad64ea1f012bc06ed4d657e6b8a4b530abd82 Mon Sep 17 00:00:00 2001 +From: WXbet <57314510+WXbet@users.noreply.github.com> +Date: Sat, 1 Aug 2026 17:01:19 +0200 +Subject: [PATCH] fix: process/v2/exit_code: guard static_asserts on MIPS + +glibc 2.44 added sysdeps/unix/sysv/linux/mips/bits/waitstatus.h +(commit c19cdbf66ff62a4578ac2117d43ebb306ae36aeb) which defines +WIFSTOPPED and WIFSIGNALED as `static inline int` functions rather +than macros so that MIPS's SIGRTMAX=127 special-case (status 0x7f) +can be handled. Since those inline functions are not constexpr, the +four static_assert lines guarding still_active fail to compile on +MIPS with + + error: non-constant condition for static assertion + error: call to non-'constexpr' function 'int __WIFSTOPPED(int)' + +whenever env.cpp (or any other TU pulling exit_code.hpp) is compiled. + +Earlier glibc versions used the generic macro-based header on MIPS +too and Boost.Process compiled fine there. musl has taken the same +approach for MIPS since 2018 (musl commit 41c632824c...); this is the +same class of problem previously reported for is_running.hpp / musl +in issue #48, which was fixed by the v1 rewrite but resurfaced in +v2's exit_code.hpp. + +The asserts are compile-time sanity checks on Boost's own still_active +constant (0x17f); the semantics on MIPS are unchanged (WIFSTOPPED +returns true, the other three return false, as intended). Guard the +block with `#ifndef __mips__` so the checks keep firing on every port +where they can, and are skipped only on the one arch where glibc +implements the underlying primitives as inline functions. + +Upstream: https://github.com/boostorg/process/pull/565 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + boost/process/v2/exit_code.hpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/boost/process/v2/exit_code.hpp b/boost/process/v2/exit_code.hpp +index 24e51fa..b87c544 100644 +--- a/boost/process/v2/exit_code.hpp ++++ b/boost/process/v2/exit_code.hpp +@@ -73,10 +73,12 @@ typedef int native_exit_code_type; + namespace detail + { + constexpr native_exit_code_type still_active = 0x17f; ++#ifndef __mips__ + static_assert(WIFSTOPPED(still_active), "Expected still_active to indicate WIFSTOPPED"); + static_assert(!WIFEXITED(still_active), "Expected still_active to not indicate WIFEXITED"); + static_assert(!WIFSIGNALED(still_active), "Expected still_active to not indicate WIFSIGNALED"); + static_assert(!WIFCONTINUED(still_active), "Expected still_active to not indicate WIFCONTINUED"); ++#endif + } + + inline bool process_is_running(int code) +-- +2.47.3 + diff --git a/package/boost/0001-unordered-fix-copy-assign.patch b/package/boost/0001-unordered-fix-copy-assign.patch deleted file mode 100644 index 670552535a..0000000000 --- a/package/boost/0001-unordered-fix-copy-assign.patch +++ /dev/null @@ -1,22 +0,0 @@ -Upstream Patch for Unordered - -Prevent erroneous copying of groups data, update max load to properly propagate - -Signed-off-by: Michael Nosthoff <buildroot@heine.tech> -Upstream: https://github.com/boostorg/unordered/commit/067884a4e213352e7c81c441f1453c54735c39f3 -diff --git a/include/boost/unordered/detail/foa/core.hpp b/include/boost/unordered/detail/foa/core.hpp -index 239d05d3..7ae9f2c8 100644 ---- a/boost/unordered/detail/foa/core.hpp -+++ b/boost/unordered/detail/foa/core.hpp -@@ -1870,9 +1870,10 @@ private: - - void fast_copy_elements_from(const table_core& x) - { -- if(arrays.elements){ -+ if(arrays.elements&&x.arrays.elements){ - copy_elements_array_from(x); - copy_groups_array_from(x); -+ size_ctrl.ml=std::size_t(x.size_ctrl.ml); - size_ctrl.size=std::size_t(x.size_ctrl.size); - } - } diff --git a/package/boost/0002-Add-check-for-duplicate-definition-of-SIGLOST.patch b/package/boost/0002-Add-check-for-duplicate-definition-of-SIGLOST.patch new file mode 100644 index 0000000000..56bb9cacb1 --- /dev/null +++ b/package/boost/0002-Add-check-for-duplicate-definition-of-SIGLOST.patch @@ -0,0 +1,30 @@ +From ea71ce1995ca861b1bbfacf01ed0d2e5fea50237 Mon Sep 17 00:00:00 2001 +From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> +Date: Tue, 17 Feb 2026 09:35:57 +0100 +Subject: [PATCH] Add check for duplicate definition of SIGLOST + +Closes #545 + +Upstream: https://github.com/boostorg/process/commit/ea71ce1995ca861b1bbfacf01ed0d2e5fea50237 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + libs/process/src/error.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libs/process/src/error.cpp b/libs/process/src/error.cpp +index 3427072..0c93fb3 100644 +--- a/libs/process/src/error.cpp ++++ b/libs/process/src/error.cpp +@@ -112,7 +112,7 @@ struct exit_code_category final : public error_category + # if defined(SIGKILL) + case SIGKILL: return "SIGKILL: Kill signal"; + # endif +-# if defined(SIGLOST) ++# if defined(SIGLOST) && SIGLOST != SIGPWR + case SIGLOST: return "SIGLOST: File lock lost (unused)"; + # endif + # if defined(SIGPIPE) +-- +2.47.3 + diff --git a/package/boost/0003-Fix-build.patch b/package/boost/0003-Fix-build.patch new file mode 100644 index 0000000000..10d81538f9 --- /dev/null +++ b/package/boost/0003-Fix-build.patch @@ -0,0 +1,39 @@ +From 22d487b7c02fab4e9633b8d9d3fada15c9ca70d0 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Sun, 13 Sep 2026 23:53:34 +0200 +Subject: [PATCH] Fix build +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In file included from ./boost/charconv/detail/fast_float/fast_float.hpp:11, + from output/build/boost-1.92.0/libs/charconv/build/../src/from_chars.cpp:16: +./boost/charconv/detail/fast_float/float_common.hpp:349:20: error: conflicting declaration ‘constexpr const boost::uint64_t boost::charconv::detail::fast_float::binary_format_lookup_tables<double, U>::max_mantissa []’ [-Wtemplate-body] + 349 | constexpr uint64_t binary_format_lookup_tables<double, U>::max_mantissa[]; + +./boost/charconv/detail/fast_float/float_common.hpp:318:34: note: previous declaration as ‘constexpr const uint64_t boost::charconv::detail::fast_float::binary_format_lookup_tables<double, U>::max_mantissa [24]’ + 318 | static constexpr std::uint64_t max_mantissa[] = { + +Upstream: https://github.com/boostorg/charconv/pull/307 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + boost/charconv/detail/fast_float/float_common.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/boost/charconv/detail/fast_float/float_common.hpp b/boost/charconv/detail/fast_float/float_common.hpp +index 0b9d3ae..627f97f 100644 +--- a/boost/charconv/detail/fast_float/float_common.hpp ++++ b/boost/charconv/detail/fast_float/float_common.hpp +@@ -315,7 +315,7 @@ struct binary_format_lookup_tables<double, U> { + + // Largest integer value v so that (5**index * v) <= 1<<53. + // 0x10000000000000 == 1 << 53 +- static constexpr std::uint64_t max_mantissa[] = { ++ static constexpr uint64_t max_mantissa[] = { + UINT64_C(0x10000000000000), + UINT64_C(0x10000000000000) / UINT64_C(5), + UINT64_C(0x10000000000000) / (UINT64_C(5) * UINT64_C(5)), +-- +2.47.3 + diff --git a/package/boost/0004-fix-inconsistent-types-between-declaration-and-defin.patch b/package/boost/0004-fix-inconsistent-types-between-declaration-and-defin.patch new file mode 100644 index 0000000000..9a41df4c1b --- /dev/null +++ b/package/boost/0004-fix-inconsistent-types-between-declaration-and-defin.patch @@ -0,0 +1,53 @@ +From 3c1b51b2e5697e2ef69a0f2326450a604cfd8356 Mon Sep 17 00:00:00 2001 +From: bkuhls <bkuhls@users.noreply.github.com> +Date: Thu, 17 Sep 2026 16:23:15 +0200 +Subject: [PATCH] fix inconsistent types between declaration and definition + +Some libc implementations do differentiate between e.g. ::uint64_t and std::uint64_t. + +Upstream: https://github.com/boostorg/json/commit/3c1b51b2e5697e2ef69a0f2326450a604cfd8356 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + boost/json/detail/charconv/detail/fast_float/float_common.hpp | 2 +- + boost/json/impl/value_stack.ipp | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/boost/json/detail/charconv/detail/fast_float/float_common.hpp b/boost/json/detail/charconv/detail/fast_float/float_common.hpp +index ef31140..a280095 100644 +--- a/boost/json/detail/charconv/detail/fast_float/float_common.hpp ++++ b/boost/json/detail/charconv/detail/fast_float/float_common.hpp +@@ -273,7 +273,7 @@ struct binary_format_lookup_tables<double, U> { + + // Largest integer value v so that (5**index * v) <= 1<<53. + // 0x10000000000000 == 1 << 53 +- static constexpr std::uint64_t max_mantissa[] = { ++ static constexpr uint64_t max_mantissa[] = { + UINT64_C(0x10000000000000), + UINT64_C(0x10000000000000) / UINT64_C(5), + UINT64_C(0x10000000000000) / (UINT64_C(5) * UINT64_C(5)), +diff --git a/boost/json/impl/value_stack.ipp b/boost/json/impl/value_stack.ipp +index af1b107..4c3dbac 100644 +--- a/boost/json/impl/value_stack.ipp ++++ b/boost/json/impl/value_stack.ipp +@@ -434,7 +434,7 @@ push_string( + void + value_stack:: + push_int64( +- int64_t i) ++ std::int64_t i) + { + st_.push(i, sp_); + } +@@ -442,7 +442,7 @@ push_int64( + void + value_stack:: + push_uint64( +- uint64_t u) ++ std::uint64_t u) + { + st_.push(u, sp_); + } +-- +2.47.3 + diff --git a/package/boost/Config.in b/package/boost/Config.in index 7b78345798..da213dd2d3 100644 --- a/package/boost/Config.in +++ b/package/boost/Config.in @@ -41,9 +41,11 @@ config BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS default y if ((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM) default y if (BR2_aarch64 || BR2_aarch64_be) default y if BR2_i386 + default y if BR2_loongarch64 default y if BR2_mips default y if BR2_mipsel default y if BR2_powerpc + default y if BR2_sparc64 default y if BR2_x86_64 config BR2_PACKAGE_BOOST_CONTEXT @@ -73,9 +75,7 @@ config BR2_PACKAGE_BOOST_COROUTINE depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # boost-context depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context, boost-thread - select BR2_PACKAGE_BOOST_CHRONO select BR2_PACKAGE_BOOST_CONTEXT - select BR2_PACKAGE_BOOST_THREAD help deprecated coroutine library, the non-deprecated coroutine2 library is a header-only library and does not need to be @@ -154,6 +154,8 @@ config BR2_PACKAGE_BOOST_IOSTREAMS bool "boost-iostreams" select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_ZLIB + select BR2_PACKAGE_BOOST_RANDOM + select BR2_PACKAGE_BOOST_REGEX help Boost.IOStreams provides a framework for defining streams, stream buffers and i/o filters. @@ -219,6 +221,7 @@ comment "boost-log needs a toolchain not affected by GCC bug 64735" config BR2_PACKAGE_BOOST_MATH bool "boost-math" depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14 + select BR2_PACKAGE_BOOST_RANDOM help Boost.Math includes several contributions in the domain of mathematics: @@ -266,6 +269,7 @@ config BR2_PACKAGE_BOOST_PROGRAM_OPTIONS config BR2_PACKAGE_BOOST_PYTHON bool "boost-python" depends on BR2_PACKAGE_PYTHON3 + select BR2_PACKAGE_BOOST_GRAPH help The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ @@ -308,7 +312,6 @@ config BR2_PACKAGE_BOOST_SYSTEM config BR2_PACKAGE_BOOST_TEST bool "boost-test" depends on BR2_USE_MMU # fork() - select BR2_PACKAGE_BOOST_TIMER help Support for simple program testing, full unit testing, and for program execution monitoring. @@ -326,7 +329,6 @@ comment "boost-thread needs a toolchain not affected by GCC bug 64735" config BR2_PACKAGE_BOOST_TIMER bool "boost-timer" - select BR2_PACKAGE_BOOST_CHRONO help Event timer, progress timer, and progress display classes. @@ -362,7 +364,7 @@ config BR2_PACKAGE_BOOST_WAVE depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread select BR2_PACKAGE_BOOST_FILESYSTEM - select BR2_PACKAGE_BOOST_THREAD + select BR2_PACKAGE_BOOST_SERIALIZATION help The Boost.Wave library is a Standards conformant, and highly configurable implementation of the mandated C99/C++ diff --git a/package/boost/boost.hash b/package/boost/boost.hash index 14403758ac..baf5fbd618 100644 --- a/package/boost/boost.hash +++ b/package/boost/boost.hash @@ -1,5 +1,5 @@ -# From https://www.boost.org/users/history/version_1_83_0.html -sha256 6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e boost_1_83_0.tar.bz2 +# From https://www.boost.org/releases/1.92.0/ +sha256 5c1d40cb8e19adbf740a4ec2da35b3e58f3f5804b1dce44deb53df72193cbc6c boost_1_92_0.tar.bz2 # Locally computed sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE_1_0.txt diff --git a/package/boost/boost.mk b/package/boost/boost.mk index 1dcc4a4b3a..ed63a608ac 100644 --- a/package/boost/boost.mk +++ b/package/boost/boost.mk @@ -4,7 +4,7 @@ # ################################################################################ -BOOST_VERSION = 1.83.0 +BOOST_VERSION = 1.92.0 BOOST_SOURCE = boost_$(subst .,_,$(BOOST_VERSION)).tar.bz2 BOOST_SITE = https://archives.boost.io/release/$(BOOST_VERSION)/source BOOST_INSTALL_STAGING = YES -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 13/77] package/libpjsip: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (11 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 12/77] package/boost: bump version to 1.92.0 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 13:04 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 14/77] package/asterisk: bump bundled pjsip to 2.17 Bernd Kuhls ` (63 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...l-fix-OpenSSL-4.0-compatibility-5036.patch | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 package/libpjsip/0001-ssl_sock_ossl-fix-OpenSSL-4.0-compatibility-5036.patch diff --git a/package/libpjsip/0001-ssl_sock_ossl-fix-OpenSSL-4.0-compatibility-5036.patch b/package/libpjsip/0001-ssl_sock_ossl-fix-OpenSSL-4.0-compatibility-5036.patch new file mode 100644 index 0000000000..4d8f0d3c37 --- /dev/null +++ b/package/libpjsip/0001-ssl_sock_ossl-fix-OpenSSL-4.0-compatibility-5036.patch @@ -0,0 +1,44 @@ +From 3923fad2e4f6f3403c3d6f1176b113c1c1b91066 Mon Sep 17 00:00:00 2001 +From: Ravi Kant Sharma <rks1986@gmail.com> +Date: Wed, 24 Jun 2026 11:30:40 +0200 +Subject: [PATCH] ssl_sock_ossl: fix OpenSSL 4.0 compatibility (#5036) + +Upstream: https://github.com/pjsip/pjproject/commit/3923fad2e4f6f3403c3d6f1176b113c1c1b91066 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + pjlib/src/pj/ssl_sock_ossl.c | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c +index 000aabad6..93fcf10f1 100644 +--- a/pjlib/src/pj/ssl_sock_ossl.c ++++ b/pjlib/src/pj/ssl_sock_ossl.c +@@ -1645,10 +1645,7 @@ static pj_status_t init_ossl_ctx(pj_ssl_sock_t *ssock) + if (PEM_read_bio_X509(new_bio, &x, NULL, NULL) == NULL) + break; + +- if ((xn = X509_get_subject_name(x)) == NULL) +- break; +- +- if ((xn = X509_NAME_dup(xn)) == NULL ) ++ if ((xn = X509_NAME_dup(X509_get_subject_name(x))) == NULL ) + break; + + #if !USING_BORINGSSL +@@ -2105,9 +2102,9 @@ static pj_bool_t parse_ossl_asn1_time(pj_time_val *tv, pj_bool_t *gmt, + pj_parsed_time pt; + int i; + +- utc = tm->type == V_ASN1_UTCTIME; +- p = (char*)tm->data; +- len = tm->length; ++ utc = ASN1_STRING_type(tm) == V_ASN1_UTCTIME; ++ p = (char*)M_ASN1_STRING_data(tm); ++ len = M_ASN1_STRING_length(tm); + end = p + len - 1; + + /* GMT */ +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 13/77] package/libpjsip: Add support for OpenSSL 4.0.0 2026-09-19 15:57 ` [Buildroot] [PATCH v2 13/77] package/libpjsip: Add support for OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-20 13:04 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 13:04 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:38PM +0200, Bernd Kuhls wrote: > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to master, thanks! Best regards, Thomas Petazzoni -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 14/77] package/asterisk: bump bundled pjsip to 2.17 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (12 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 13/77] package/libpjsip: Add support for OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 13:06 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 15/77] package/asterisk: bump version to 22.11.0 Bernd Kuhls ` (62 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Buildroot commit 7f48325de69ddaed921572edad875694a8154419 bumped the asterisk package from 22.9.0 to 22.10.1. This bump includes upstream commit https://github.com/asterisk/asterisk/commit/5d543ad80ce6ad8a697cbd6c1938565047d26a99 which bumped the bundled pjsip package to 2.17. To allow offline builds we download the pjsip tarball so we need to keep the version numbers in sync. The autobuilders logs show a download process: https://autobuild.buildroot.net/results/400/400e53158f11926446c11d22681eb8a9430caf1d/build-end.log checking for embedded pjproject (may have to download)... configuring [pjproject] Downloading https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.17/pjproject-2.17.tar.bz2 to /home/autobuild/autobuild/instance-3/dl/asterisk/pjproject-2.17.tar.bz2 [pjproject] Verifying /home/autobuild/autobuild/instance-3/dl/asterisk/pjproject-2.17.tar.bz2 where the tarball was once stored in the configured download directory: --with-download-cache=$(ASTERISK_DL_DIR) to be used during later autobuilder runs. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/asterisk/asterisk.hash | 2 +- package/asterisk/asterisk.mk | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/asterisk/asterisk.hash b/package/asterisk/asterisk.hash index 35aa1282e8..1bd76ef865 100644 --- a/package/asterisk/asterisk.hash +++ b/package/asterisk/asterisk.hash @@ -2,7 +2,7 @@ sha256 373c98f4d4a1b923b42def0aee03f4e36aca9d1c244a8eeda646da8a97f89663 asterisk-22.10.1.tar.gz # Locally computed -sha256 633c3dc34ffb21af8ac9ee160245c9c174379391e35cace1b6c9f516a260f683 pjproject-2.16.tar.bz2 +sha256 04b2eb1f0f01aa0ad1945b167171843448a51aa6b7c3e806496d434f13a112b7 pjproject-2.17.tar.bz2 sha256 6775095bcd417d375faddc1f17cdd7706ad8aa9b9b02404990c4b0ee218ee379 libjwt-1.15.3.tar.gz # sha1 from: http://downloads.asterisk.org/pub/telephony/sounds/releases diff --git a/package/asterisk/asterisk.mk b/package/asterisk/asterisk.mk index b6b40645ee..8d03f2bdde 100644 --- a/package/asterisk/asterisk.mk +++ b/package/asterisk/asterisk.mk @@ -12,13 +12,13 @@ ASTERISK_SITE = $(call github,asterisk,asterisk,$(ASTERISK_VERSION)) # compilation with the external pjsip produces a non-working asterisk, which # segfaults. The reason behind this is unclear. # https://github.com/asterisk/asterisk/issues/671 -ASTERISK_PJSIP_URL = https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.16/ +ASTERISK_PJSIP_URL = https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.17/ ASTERISK_LIBJWT_URL = https://raw.githubusercontent.com/asterisk/third-party/master/libjwt/1.15.3/ ASTERISK_SOUNDS_BASE_URL = http://downloads.asterisk.org/pub/telephony/sounds/releases ASTERISK_EXTRA_DOWNLOADS = \ $(ASTERISK_SOUNDS_BASE_URL)/asterisk-core-sounds-en-gsm-1.6.1.tar.gz \ $(ASTERISK_SOUNDS_BASE_URL)/asterisk-moh-opsound-wav-2.03.tar.gz \ - $(ASTERISK_PJSIP_URL)/pjproject-2.16.tar.bz2 \ + $(ASTERISK_PJSIP_URL)/pjproject-2.17.tar.bz2 \ $(ASTERISK_LIBJWT_URL)/libjwt-1.15.3.tar.gz ASTERISK_LICENSE = GPL-2.0, BSD-3-Clause (SHA1, resample), BSD-4-Clause (db1-ast) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 14/77] package/asterisk: bump bundled pjsip to 2.17 2026-09-19 15:57 ` [Buildroot] [PATCH v2 14/77] package/asterisk: bump bundled pjsip to 2.17 Bernd Kuhls @ 2026-09-20 13:06 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 13:06 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:39PM +0200, Bernd Kuhls wrote: > Buildroot commit 7f48325de69ddaed921572edad875694a8154419 bumped the > asterisk package from 22.9.0 to 22.10.1. > > This bump includes upstream commit > https://github.com/asterisk/asterisk/commit/5d543ad80ce6ad8a697cbd6c1938565047d26a99 > which bumped the bundled pjsip package to 2.17. > > To allow offline builds we download the pjsip tarball so we need to keep > the version numbers in sync. > > The autobuilders logs show a download process: > https://autobuild.buildroot.net/results/400/400e53158f11926446c11d22681eb8a9430caf1d/build-end.log > > checking for embedded pjproject (may have to download)... configuring > [pjproject] Downloading https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.17/pjproject-2.17.tar.bz2 to > /home/autobuild/autobuild/instance-3/dl/asterisk/pjproject-2.17.tar.bz2 > [pjproject] Verifying /home/autobuild/autobuild/instance-3/dl/asterisk/pjproject-2.17.tar.bz2 > > where the tarball was once stored in the configured download directory: > > --with-download-cache=$(ASTERISK_DL_DIR) > > to be used during later autobuilder runs. I am not sure to understand what you are trying to say here. Are you trying to say "Because the libpjsip version we pre-download doesn't match the one expected by asterisk, asterisk downloads the necessary version during the configure step, which is not correct as it breaks offline builds" ? Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 15/77] package/asterisk: bump version to 22.11.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (13 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 14/77] package/asterisk: bump bundled pjsip to 2.17 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 16/77] package/asterisk: Fix build with OpenSSL 4.0.0 Bernd Kuhls ` (61 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark https://community.asterisk.org/t/asterisk-release-22-11-0/114073 https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.11.0.html Security Advisories Resolved: 0 Switched to tarball provided by upstream. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/asterisk/asterisk.hash | 4 ++-- package/asterisk/asterisk.mk | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package/asterisk/asterisk.hash b/package/asterisk/asterisk.hash index 1bd76ef865..de4da24559 100644 --- a/package/asterisk/asterisk.hash +++ b/package/asterisk/asterisk.hash @@ -1,5 +1,5 @@ -# Locally computed -sha256 373c98f4d4a1b923b42def0aee03f4e36aca9d1c244a8eeda646da8a97f89663 asterisk-22.10.1.tar.gz +# From https://github.com/asterisk/asterisk/releases/download/22.11.0/asterisk-22.11.0.sha256 +sha256 3bd5ee040509a3d3cd9b1ba9520c18e6ec0a7e7981ca68c457dcd36ba3c54d94 asterisk-22.11.0.tar.gz # Locally computed sha256 04b2eb1f0f01aa0ad1945b167171843448a51aa6b7c3e806496d434f13a112b7 pjproject-2.17.tar.bz2 diff --git a/package/asterisk/asterisk.mk b/package/asterisk/asterisk.mk index 8d03f2bdde..7c5fdbaaa4 100644 --- a/package/asterisk/asterisk.mk +++ b/package/asterisk/asterisk.mk @@ -4,10 +4,10 @@ # ################################################################################ -ASTERISK_VERSION = 22.10.1 +ASTERISK_VERSION = 22.11.0 # Use the github mirror: it's an official mirror maintained by Digium, and # provides tarballs, which the main Asterisk git tree (behind Gerrit) does not. -ASTERISK_SITE = $(call github,asterisk,asterisk,$(ASTERISK_VERSION)) +ASTERISK_SITE = https://github.com/asterisk/asterisk/releases/download/$(ASTERISK_VERSION) # compilation with the external pjsip produces a non-working asterisk, which # segfaults. The reason behind this is unclear. -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 16/77] package/asterisk: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (14 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 15/77] package/asterisk: bump version to 22.11.0 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 17/77] package/dovecot{-pigeonhole}: security bump version to 2.4.5 Bernd Kuhls ` (60 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...of-bundled-libpjsip-with-OpenSSL-4.x.patch | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 package/asterisk/0006-Fix-build-of-bundled-libpjsip-with-OpenSSL-4.x.patch diff --git a/package/asterisk/0006-Fix-build-of-bundled-libpjsip-with-OpenSSL-4.x.patch b/package/asterisk/0006-Fix-build-of-bundled-libpjsip-with-OpenSSL-4.x.patch new file mode 100644 index 0000000000..28f9d4f281 --- /dev/null +++ b/package/asterisk/0006-Fix-build-of-bundled-libpjsip-with-OpenSSL-4.x.patch @@ -0,0 +1,63 @@ +From 520061e78d1ec24d0d4b97555e11de01f4db8c2a Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Sun, 13 Sep 2026 13:08:28 +0200 +Subject: [PATCH] Fix build of bundled libpjsip with OpenSSL 4.x + +Source of the patch: +https://github.com/pjsip/pjproject/commit/3923fad2e4f6f3403c3d6f1176b113c1c1b91066 + +Upstream: https://github.com/asterisk/asterisk/pull/2162 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + .../pjproject/patches/0030-openssl4.patch | 38 +++++++++++++++++++ + 1 file changed, 38 insertions(+) + create mode 100644 third-party/pjproject/patches/0030-openssl4.patch + +diff --git a/third-party/pjproject/patches/0030-openssl4.patch b/third-party/pjproject/patches/0030-openssl4.patch +new file mode 100644 +index 0000000000..bfeefa2677 +--- /dev/null ++++ b/third-party/pjproject/patches/0030-openssl4.patch +@@ -0,0 +1,38 @@ ++From 3923fad2e4f6f3403c3d6f1176b113c1c1b91066 Mon Sep 17 00:00:00 2001 ++From: Ravi Kant Sharma <rks1986@gmail.com> ++Date: Wed, 24 Jun 2026 11:30:40 +0200 ++Subject: [PATCH] ssl_sock_ossl: fix OpenSSL 4.0 compatibility (#5036) ++ ++--- ++ pjlib/src/pj/ssl_sock_ossl.c | 11 ++++------- ++ 1 file changed, 4 insertions(+), 7 deletions(-) ++ ++diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c ++index 000aabad61..93fcf10f14 100644 ++--- a/pjlib/src/pj/ssl_sock_ossl.c +++++ b/pjlib/src/pj/ssl_sock_ossl.c ++@@ -1645,10 +1645,7 @@ static pj_status_t init_ossl_ctx(pj_ssl_sock_t *ssock) ++ if (PEM_read_bio_X509(new_bio, &x, NULL, NULL) == NULL) ++ break; ++ ++- if ((xn = X509_get_subject_name(x)) == NULL) ++- break; ++- ++- if ((xn = X509_NAME_dup(xn)) == NULL ) +++ if ((xn = X509_NAME_dup(X509_get_subject_name(x))) == NULL ) ++ break; ++ ++ #if !USING_BORINGSSL ++@@ -2105,9 +2102,9 @@ static pj_bool_t parse_ossl_asn1_time(pj_time_val *tv, pj_bool_t *gmt, ++ pj_parsed_time pt; ++ int i; ++ ++- utc = tm->type == V_ASN1_UTCTIME; ++- p = (char*)tm->data; ++- len = tm->length; +++ utc = ASN1_STRING_type(tm) == V_ASN1_UTCTIME; +++ p = (char*)M_ASN1_STRING_data(tm); +++ len = M_ASN1_STRING_length(tm); ++ end = p + len - 1; ++ ++ /* GMT */ +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 17/77] package/dovecot{-pigeonhole}: security bump version to 2.4.5 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (15 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 16/77] package/asterisk: Fix build with OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 13:15 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 18/77] package/ibrcommon: update patches Bernd Kuhls ` (59 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark 2.4.0: https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/UYNR6GBP25XEGFCS633SWPR4HXV3NSS3/ "Pigeonhole versioning has been changed to match Dovecot versioning." "New 2.4 packages are not compatible with old 2.3 configuration, please carefully review https://doc.dovecot.org/2.4.0/installation/upgrade/2.3-to-2.4.html before installing the new packages." 2.4.1: https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/XPT6TA7Y4B4QZZQ2XUE46Z35BDR2X2AA/ 2.4.2: https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/XTMMPVQ3QKQMYDZ3CZZCXPNHN7OXKS3L/ Fixes CVE-2025-30189: https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/G3K5HMBKW6XOYNBXYV5GUM2GR6WPUD4M/ 2.4.3: https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/IKIHZX77IPTGSP5WBIPJUOFBUQFKVPE7/ Fixes various CVEs: https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/I4KFFV4IKP6M5MS67SWYHKDSDMSNILQG/ * CVE-2025-59028: Invalid base64 authentication can cause DoS for other logins. * CVE-2025-59031: decode2text.sh OOXML extraction may follow symlinks and read unintended files during indexing. Fixed by dropping the script. * CVE-2026-24031: SQL injection possible if auth_username_chars is configured empty. Fixed escaping to always happen. v2.4 regression. * CVE-2026-27859: Excessive RFC 2231 MIME parameters in email would cause excessive CPU usage. Fixed by limiting number of parameters to process. * CVE-2026-27860: LDAP query injection possible if auth_username_chars is configured empty. Fixed escaping to always happen. v2.4 regression. * CVE-2026-27857: Sending excessive parenthesis causes imap-login to use excessive memory. * CVE-2026-27856: Doveadm credentials were not checked using timing-safe checking function. * CVE-2026-27855: OTP driver vulnerable to replay attack. * CVE-2026-27858: managesieve-login can allocate large amount of memory during authentication. * CVE-2025-59032: ManageSieve panic occurs with sieve-connect as a client. 2.4.4: https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/YW7GVOH3VVLNAYW2C4TEBTGJW52J7F6H/ Fixes various CVEs: https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/YQYBB3NJPNFFJ4SHDU7PLXLRRGHBJKSK/ * CVE-2026-27851: lib-var-expand: Safe filter marks all following pipelines safe. * CVE-2026-33603: auth: CRAM-SHA-*-PLUS channel binding could be faked. MITM attacker with a certificate trusted by the client could have bypassed the requirement for channel binding. * CVE-2026-40020: IMAP folders can be shared-spammed to everyone. * CVE-2026-42006: An attacker can cause uncontrolled memory usage with excessive bracing over IMAP. The fix in CVE-2026-27857 was incomplete. * CVE-2026-40016: sieve :contains and :matches operators could have been using excessive amount of CPU. Limit the CPU to sieve_max_cpu_time. 2.4.5: https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/D7FJQODYCY23BG3FWUZXCJRCLCPT7RZT/ Fixes various CVEs: https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/WT4USR35HN43TGQGVDXPDAMCUTGLVMET/ * CVE-2026-27852: Messages with a huge number of From/To/Cc/etc email addresses could result in excessive memory usage. * CVE-2026-33263: Submission: Login service crashes with panic once mail_max_userip_connections limit is reached. * CVE-2026-33604: The SMTP outbound dot-stuffing mechanism does not properly escape dots following a bare \r in message bodies, potentially allowing spoofed emails via malicious end-of-DATA injection. * CVE-2026-33606: Mail content stored by a user can be crafted so that it is interpreted as dsync protocol commands when an administrator later runs dsync with the stream protocol, for example during a migration. * CVE-2026-33607: IMAP LIST command could be used to cause excessive CPU usage. * CVE-2026-40014: IMAP THREAD command could have used excessive amount of CPU processing a single email with a massive number of Message-IDs in References header. * CVE-2026-40015: Invalid IMAP command sent to imap-hibernate process might crash it. * CVE-2026-40017: IMAP THREAD command could have used excessive amount of CPU processing emails with a large number of specially crafted Message-IDs in References header. The fix requires a new dovecot.index.thread file format, which is enabled only after setting dovecot_storage_version or newer. This rebuilds the index, so it will cause some extra CPU usage and extra metacache disk IO usage. It shouldn't cause (much) extra object storage IO, because all the fields should be coming from dovecot.index.cache. * CVE-2026-40203: When IMAP COMPRESS=DEFLATE was enabled, an attacker could send mails into a victim's mailbox and observe network traffic to determine whether a secret message matched a known string by comparing compressed response sizes (a CRIME-style attack). The fix resets the compression dictionary after each IMAP command, preventing information from leaking between commands. * CVE-2026-40205: If multiple OAUTH scopes were required, then this could have been only partially enforced with certain configurations. * CVE-2026-4200: XCLIENT FORWARD allows to forward key only passdb fields without the "forward_" prefix which allows connections from trusted networks to set nopasswd field which allows to skip the authentication. * CVE-2026-42391: Pre-login IMAP ID command could have used excessive amount of memory, causing the process to become killed and disconnecting all the other IMAP connections being proxied by the process. Or alternatively it could have caused excessive CPU usage, slowing down all the other IMAP connections being proxied by the process. * CVE-2026-42392: If URLAUTH is enabled, sending an invalid IMAP URLFETCH can result in an untagged NO response containing uninitialized memory, potentially leaking sensitive data. * CVE-2026-42393: Doveadm password length or API key length could still be determined via timing based attacks. * CVE-2026-42395: XCLIENT FORWARD command from login_trusted_networks could have been used to cause login processes to crash. * CVE-2026-52681: Sieve resource usage (sieve_max_cpu_time) was tracked in the active Sieve binary. Switching to a different active binary could have been used to reset (bypass) the resource usage. * CVE-2026-52687: Using IMAP COMPRESS ZSTD command can cause excessive memory usage in imap-login process, possibly making it reach vsz_limit and kill all the connections being served by the process. Fixed by disabling COMPRESS command with all other compression algorithms than the standard DEFLATE. * CVE-2026-73208: In oauth2, scope/aud checking was done with JWT tokens. Now it requires all scopes. * CVE-2026-73209: Sending IMAP COMPRESS package containing zero-length frames crashes imap or imap-login process. * CVE-2026-33605: managesieve-login: Pre-auth crash. An unauthenticated attacker can crash the ManageSieve login process by sending a small malformed command before authenticating. * CVE-2026-40019: v2.4.3 regression: managesieve-login pre-auth infinite loop. An unauthenticated attacker can send a truncated quoted argument to the ManageSieve login process, which makes it spin in an infinite loop consuming CPU. * CVE-2026-42007: sieve-editheader: An attacker that has valid credentials can use a Sieve script with the editheader extension to trigger a use-after-free in the mail editing code, and to write memory contents beyond the intended buffer in the delivered mail. Removed patches which are included in this release. Added patch 0001 to revert upstream commit which breaks the build: CCLD test-var-expand-crypt output/per-package/dovecot/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: attempted static link of dynamic object `./.libs/var_expand_crypt.so' Select libiconv when needed, upstream removed the optional support in verion 2.4.2: https://github.com/dovecot/core/commit/8dd2ec82f63ba1bf9ddf1b74243e00185ebba9b1 Added optional dependency to pcre2 available since version 2.4.2: https://github.com/dovecot/core/commit/38fc1545fe8cf8b97ff3b23f4a4279a0eb344881 which needs BR2_PACKAGE_PCRE2_32: https://github.com/dovecot/core/blob/2.4.5/m4/want_pcre.m4#L9 Ported path fixup for Makefile from dovecot to dovecot-pigeonhole to fix build error: make[6]: *** No rule to make target '/usr/libexec/dovecot/settings-history.py', needed by 'settings-history-pigeonhole.h'. Stop. Updated license hashes due to upstream commits: https://github.com/dovecot/core/commit/8de4423b61320d93acce56a31844219c3317d43e https://github.com/dovecot/core/commit/2a5809c115ed270c26fdca5c9b0c29a369706210 https://github.com/dovecot/pigeonhole/commit/8020ac138000e7e45f85f352eb15b66fa246f7a2 Added optional support for libkrb5, openldap, postgresql and zstd. Removed optional support for xz due to its upstream removal: https://github.com/dovecot/core/commit/3e44364d4a030159e21d3758bab04ebdb09ef27b Removed configure option --with-ssl (openssl is already a dependency): https://github.com/dovecot/core/commit/6b0b7141a8a50ffc99ad51b4f27c75f876e58616 Removed configure options for zlib (zlib is already a dependency): https://github.com/dovecot/core/commit/d666521754b024ce4f1cfee322fcc492673c00a5 Renamed RPCGEN value in _CONF_ENV to silence configure warning: ./configure: line 34595: __disable_RPCGEN_rquota: command not found Removed various _CONF_ENV variables due to their upstream removal: i_cv_inotify_works: https://github.com/dovecot/core/pull/107#issuecomment-560056967 i_cv_signed_size_t: https://github.com/dovecot/core/commit/52d322449d236d9ac885130abdc024c5549e109c i_cv_signed_time_t: https://github.com/dovecot/core/commit/7cedd93c4ed18344940cb327fce12bd90d83d83b i_cv_c99_vsnprintf: https://github.com/dovecot/core/commit/5dc503907d7ef65293e441603ad80060c34ad502 Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .checkpackageignore | 1 - docs/manual/migrating.adoc | 6 + .../dovecot-pigeonhole.hash | 4 +- .../dovecot-pigeonhole/dovecot-pigeonhole.mk | 12 +- ...xpand-crypt-Link-test-binary-statica.patch | 32 ++++ ...g-passdbs-with-identical-driver-args.patch | 137 ------------------ ...onfigure-Explicitly-check-for-icu-uc.patch | 28 ---- package/dovecot/Config.in | 20 +++ package/dovecot/dovecot.hash | 4 +- package/dovecot/dovecot.mk | 68 +++++---- 10 files changed, 113 insertions(+), 199 deletions(-) create mode 100644 package/dovecot/0001-Revert-lib-var-expand-crypt-Link-test-binary-statica.patch delete mode 100644 package/dovecot/0001-auth-Fix-handling-passdbs-with-identical-driver-args.patch delete mode 100644 package/dovecot/0002-configure-Explicitly-check-for-icu-uc.patch diff --git a/.checkpackageignore b/.checkpackageignore index 04717ed2af..7e5d774821 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -280,7 +280,6 @@ package/dmalloc/0004-Makefile-use-the-configure-detected-or-user-supplied.patch package/dmalloc/0005-configure-use-LD-instead-of-hard-coding-ld.patch lib_patch.Upstream package/docopt-cpp/0001-only-build-one-target-use-BUILD_SHARED_LIBS-where-appropriate.patch lib_patch.Upstream package/domoticz/S99domoticz Shellcheck -package/dovecot/0001-auth-Fix-handling-passdbs-with-identical-driver-args.patch lib_patch.Upstream package/dracut/merged-usr-module-setup.sh Shellcheck package/dropbear/S50dropbear Shellcheck lib_sysv.Indent lib_sysv.Variables package/dt/0001-adjust-os-symlink.patch lib_patch.Upstream diff --git a/docs/manual/migrating.adoc b/docs/manual/migrating.adoc index 68f09e1bae..86b040a19c 100644 --- a/docs/manual/migrating.adoc +++ b/docs/manual/migrating.adoc @@ -264,3 +264,9 @@ added to .cargo-checksum.json to clarify that this file is not a security mechanism. Tarballs generated by Cargo-fetched packages have changed, therefore the suffix of such tarballs has been changed from +-cargo5+ to +-cargo6+. + +[[migrating-to-2026-11]] +=== Migration to 2026.11 + +Due to the update of Dovecot to version 2.4.x the runtime configuration +files need to be updated. diff --git a/package/dovecot-pigeonhole/dovecot-pigeonhole.hash b/package/dovecot-pigeonhole/dovecot-pigeonhole.hash index 247f74fdba..96bf279e24 100644 --- a/package/dovecot-pigeonhole/dovecot-pigeonhole.hash +++ b/package/dovecot-pigeonhole/dovecot-pigeonhole.hash @@ -1,3 +1,3 @@ # Locally computed after checking signature -sha256 0377db284b620723de060431115fb2e7791e1df4321411af718201d6925c4692 dovecot-2.3-pigeonhole-0.5.21.1.tar.gz -sha256 fc9e9522216f2a9a28b31300e3c73c1df56acc27dfae951bf516e7995366b51a COPYING +sha256 ad7c478cb3aaa76c5f81f86727a3e6843645b0a1253f5684fb8a0beec0d22925 dovecot-pigeonhole-2.4.5.tar.gz +sha256 1fc821d394719d8b5337223c1f4bd898a231f2fb559f2cf3ebeda97be8362d6d COPYING diff --git a/package/dovecot-pigeonhole/dovecot-pigeonhole.mk b/package/dovecot-pigeonhole/dovecot-pigeonhole.mk index 4d21ebd395..17ffc1d7cf 100644 --- a/package/dovecot-pigeonhole/dovecot-pigeonhole.mk +++ b/package/dovecot-pigeonhole/dovecot-pigeonhole.mk @@ -4,9 +4,9 @@ # ################################################################################ -DOVECOT_PIGEONHOLE_VERSION = 0.5.21.1 -DOVECOT_PIGEONHOLE_SOURCE = dovecot-2.3-pigeonhole-$(DOVECOT_PIGEONHOLE_VERSION).tar.gz -DOVECOT_PIGEONHOLE_SITE = https://pigeonhole.dovecot.org/releases/2.3 +DOVECOT_PIGEONHOLE_VERSION_MAJOR = 2.4 +DOVECOT_PIGEONHOLE_VERSION = $(DOVECOT_PIGEONHOLE_VERSION_MAJOR).5 +DOVECOT_PIGEONHOLE_SITE = https://pigeonhole.dovecot.org/releases/$(DOVECOT_PIGEONHOLE_VERSION_MAJOR) DOVECOT_PIGEONHOLE_LICENSE = LGPL-2.1 DOVECOT_PIGEONHOLE_LICENSE_FILES = COPYING DOVECOT_PIGEONHOLE_CPE_ID_VENDOR = dovecot @@ -15,4 +15,10 @@ DOVECOT_PIGEONHOLE_DEPENDENCIES = dovecot DOVECOT_PIGEONHOLE_CONF_OPTS = --with-dovecot=$(STAGING_DIR)/usr/lib +# fix path to avoid using /usr/lib/dovecot +define DOVECOT_PIGEONHOLE_POST_CONFIGURE + $(SED) 's%^dovecot_pkglibexecdir =.*%dovecot_pkglibexecdir = $(STAGING_DIR)/usr/libexec%' $(@D)/src/plugins/settings/Makefile +endef +DOVECOT_PIGEONHOLE_POST_CONFIGURE_HOOKS += DOVECOT_PIGEONHOLE_POST_CONFIGURE + $(eval $(autotools-package)) diff --git a/package/dovecot/0001-Revert-lib-var-expand-crypt-Link-test-binary-statica.patch b/package/dovecot/0001-Revert-lib-var-expand-crypt-Link-test-binary-statica.patch new file mode 100644 index 0000000000..83ba1168ce --- /dev/null +++ b/package/dovecot/0001-Revert-lib-var-expand-crypt-Link-test-binary-statica.patch @@ -0,0 +1,32 @@ +From 08a6ca5cfb9d4148d5dedabd0660e06fd3081606 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Tue, 25 Aug 2026 21:17:48 +0200 +Subject: [PATCH] Revert "lib-var-expand-crypt: Link test binary statically" + +This reverts commit 1c6b67195d279836d94e141215c626c20af93af6. + +Upstream: n/a (buildroot specific) + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/lib-var-expand-crypt/Makefile.am | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/lib-var-expand-crypt/Makefile.am b/src/lib-var-expand-crypt/Makefile.am +index aa6a3b9b81..12d424a845 100644 +--- a/src/lib-var-expand-crypt/Makefile.am ++++ b/src/lib-var-expand-crypt/Makefile.am +@@ -35,9 +35,8 @@ test_libs = \ + test_var_expand_crypt_SOURCES = test-var-expand-crypt.c + test_var_expand_crypt_LDADD = $(test_libs) $(SSL_LIBS) $(LIBDOVECOT_TEST_LIBS) + test_var_expand_crypt_DEPENDENCIES = $(module_LTLIBRARIES) +-test_var_expand_crypt_LDFLAGS = -static + if HAVE_WHOLE_ARCHIVE +-test_var_expand_crypt_LDFLAGS += -export-dynamic -Wl,$(LD_WHOLE_ARCHIVE),../lib/.libs/liblib.a,../lib-json/.libs/libjson.a,../lib-ssl-iostream/.libs/libssl_iostream.a,$(LD_NO_WHOLE_ARCHIVE) ++test_var_expand_crypt_LDFLAGS = -export-dynamic -Wl,$(LD_WHOLE_ARCHIVE),../lib/.libs/liblib.a,../lib-json/.libs/libjson.a,../lib-ssl-iostream/.libs/libssl_iostream.a,$(LD_NO_WHOLE_ARCHIVE) + endif + + test_var_expand_crypt_CFLAGS = $(AM_CFLAGS) \ +-- +2.47.3 + diff --git a/package/dovecot/0001-auth-Fix-handling-passdbs-with-identical-driver-args.patch b/package/dovecot/0001-auth-Fix-handling-passdbs-with-identical-driver-args.patch deleted file mode 100644 index 99a2b83563..0000000000 --- a/package/dovecot/0001-auth-Fix-handling-passdbs-with-identical-driver-args.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 7bad6a24160e34bce8f10e73dbbf9e5fbbcd1904 Mon Sep 17 00:00:00 2001 -From: Timo Sirainen <timo.sirainen@open-xchange.com> -Date: Mon, 9 May 2022 15:23:33 +0300 -Subject: [PATCH] auth: Fix handling passdbs with identical driver/args but - different mechanisms/username_filter - -The passdb was wrongly deduplicated in this situation, causing wrong -mechanisms or username_filter setting to be used. This would be a rather -unlikely configuration though. - -Fixed by moving mechanisms and username_filter from struct passdb_module -to struct auth_passdb, which is where they should have been in the first -place. - -CVE: CVE-2022-30550 -Signed-off-by: Peter Korsgaard <peter@korsgaard.com> ---- - src/auth/auth-request.c | 6 +++--- - src/auth/auth.c | 18 ++++++++++++++++++ - src/auth/auth.h | 5 +++++ - src/auth/passdb.c | 15 ++------------- - src/auth/passdb.h | 4 ---- - 5 files changed, 28 insertions(+), 20 deletions(-) - -diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c -index cd08b1fa02..0ca29f3674 100644 ---- a/src/auth/auth-request.c -+++ b/src/auth/auth-request.c -@@ -534,8 +534,8 @@ auth_request_want_skip_passdb(struct auth_request *request, - struct auth_passdb *passdb) - { - /* if mechanism is not supported, skip */ -- const char *const *mechs = passdb->passdb->mechanisms; -- const char *const *username_filter = passdb->passdb->username_filter; -+ const char *const *mechs = passdb->mechanisms; -+ const char *const *username_filter = passdb->username_filter; - const char *username; - - username = request->fields.user; -@@ -548,7 +548,7 @@ auth_request_want_skip_passdb(struct auth_request *request, - return TRUE; - } - -- if (passdb->passdb->username_filter != NULL && -+ if (passdb->username_filter != NULL && - !auth_request_username_accepted(username_filter, username)) { - auth_request_log_debug(request, - request->mech != NULL ? AUTH_SUBSYS_MECH -diff --git a/src/auth/auth.c b/src/auth/auth.c -index f2f3fda20c..9f6c4ba60c 100644 ---- a/src/auth/auth.c -+++ b/src/auth/auth.c -@@ -99,6 +99,24 @@ auth_passdb_preinit(struct auth *auth, const struct auth_passdb_settings *set, - auth_passdb->override_fields_tmpl = - passdb_template_build(auth->pool, set->override_fields); - -+ if (*set->mechanisms == '\0') { -+ auth_passdb->mechanisms = NULL; -+ } else if (strcasecmp(set->mechanisms, "none") == 0) { -+ auth_passdb->mechanisms = (const char *const[]){ NULL }; -+ } else { -+ auth_passdb->mechanisms = -+ (const char *const *)p_strsplit_spaces(auth->pool, -+ set->mechanisms, " ,"); -+ } -+ -+ if (*set->username_filter == '\0') { -+ auth_passdb->username_filter = NULL; -+ } else { -+ auth_passdb->username_filter = -+ (const char *const *)p_strsplit_spaces(auth->pool, -+ set->username_filter, " ,"); -+ } -+ - /* for backwards compatibility: */ - if (set->pass) - auth_passdb->result_success = AUTH_DB_RULE_CONTINUE; -diff --git a/src/auth/auth.h b/src/auth/auth.h -index f700e29d5c..460a179765 100644 ---- a/src/auth/auth.h -+++ b/src/auth/auth.h -@@ -41,6 +41,11 @@ struct auth_passdb { - struct passdb_template *default_fields_tmpl; - struct passdb_template *override_fields_tmpl; - -+ /* Supported authentication mechanisms, NULL is all, {NULL} is none */ -+ const char *const *mechanisms; -+ /* Username filter, NULL is no filter */ -+ const char *const *username_filter; -+ - enum auth_passdb_skip skip; - enum auth_db_rule result_success; - enum auth_db_rule result_failure; -diff --git a/src/auth/passdb.c b/src/auth/passdb.c -index eb4ac8ae82..f5eed1af4f 100644 ---- a/src/auth/passdb.c -+++ b/src/auth/passdb.c -@@ -224,19 +224,8 @@ passdb_preinit(pool_t pool, const struct auth_passdb_settings *set) - passdb->id = ++auth_passdb_id; - passdb->iface = *iface; - passdb->args = p_strdup(pool, set->args); -- if (*set->mechanisms == '\0') { -- passdb->mechanisms = NULL; -- } else if (strcasecmp(set->mechanisms, "none") == 0) { -- passdb->mechanisms = (const char *const[]){NULL}; -- } else { -- passdb->mechanisms = (const char* const*)p_strsplit_spaces(pool, set->mechanisms, " ,"); -- } -- -- if (*set->username_filter == '\0') { -- passdb->username_filter = NULL; -- } else { -- passdb->username_filter = (const char* const*)p_strsplit_spaces(pool, set->username_filter, " ,"); -- } -+ /* NOTE: if anything else than driver & args are added here, -+ passdb_find() also needs to be updated. */ - array_push_back(&passdb_modules, &passdb); - return passdb; - } -diff --git a/src/auth/passdb.h b/src/auth/passdb.h -index 2e95328e5c..e466a9fdb6 100644 ---- a/src/auth/passdb.h -+++ b/src/auth/passdb.h -@@ -63,10 +63,6 @@ struct passdb_module { - /* Default password scheme for this module. - If default_cache_key is set, must not be NULL. */ - const char *default_pass_scheme; -- /* Supported authentication mechanisms, NULL is all, [NULL] is none*/ -- const char *const *mechanisms; -- /* Username filter, NULL is no filter */ -- const char *const *username_filter; - - /* If blocking is set to TRUE, use child processes to access - this passdb. */ --- -2.30.2 - diff --git a/package/dovecot/0002-configure-Explicitly-check-for-icu-uc.patch b/package/dovecot/0002-configure-Explicitly-check-for-icu-uc.patch deleted file mode 100644 index ea9aecebde..0000000000 --- a/package/dovecot/0002-configure-Explicitly-check-for-icu-uc.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 1ccd5b54a408d12fce0c94ab0bbaedbb5ef69830 Mon Sep 17 00:00:00 2001 -From: fundawang <fundawang@yeah.net> -Date: Sun, 27 Oct 2024 22:11:21 +0800 -Subject: [PATCH] configure: Explicitly check for icu-uc - -Ensure we link against libicu-uc when it's split in v76. - -Upstream: https://github.com/dovecot/core/commit/1ccd5b54a408d12fce0c94ab0bbaedbb5ef69830 - -Signed-off-by: Bernd Kuhls <bernd@kuhls.net> -[Bernd: backported to version 2.3.21.1] ---- - m4/want_icu.m4 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/m4/want_icu.m4 b/m4/want_icu.m4 -index b656ef9f479..405a73b361f 100644 ---- a/m4/want_icu.m4 -+++ b/m4/want_icu.m4 -@@ -1,7 +1,7 @@ - AC_DEFUN([DOVECOT_WANT_ICU], [ - if test "$want_icu" != "no"; then - if test "$PKG_CONFIG" != "" && $PKG_CONFIG --exists icu-i18n 2>/dev/null; then -- PKG_CHECK_MODULES(LIBICU, icu-i18n) -+ PKG_CHECK_MODULES(LIBICU, icu-i18n icu-uc) - have_icu=yes - AC_DEFINE(HAVE_LIBICU,, [Define if you want ICU normalization support for FTS]) - elif test "$want_icu" = "yes"; then diff --git a/package/dovecot/Config.in b/package/dovecot/Config.in index e109ce6be8..6753160c27 100644 --- a/package/dovecot/Config.in +++ b/package/dovecot/Config.in @@ -2,8 +2,10 @@ config BR2_PACKAGE_DOVECOT bool "dovecot" depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # fork() + select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBOPENSSL_ENGINES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC + select BR2_PACKAGE_PCRE2_32 if BR2_PACKAGE_PCRE2 select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB help @@ -32,6 +34,24 @@ comment "mysql support needs a toolchain w/ C++, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_USE_WCHAR +config BR2_PACKAGE_DOVECOT_POSTGRESQL + bool "postgresql support" + depends on !BR2_sparc # postgresql + depends on BR2_USE_WCHAR # postgresql + depends on BR2_ENABLE_LOCALE # postgresql + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # postgresql + depends on !BR2_OPTIMIZE_FAST # postgresql + select BR2_PACKAGE_POSTGRESQL + help + Enable PostgreSQL support. + +comment "postgresql needs a toolchain w/ wchar, NPTL, locale" + depends on !BR2_sparc + depends on !BR2_USE_WCHAR + depends on !BR2_ENABLE_LOCALE + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL + depends on BR2_OPTIMIZE_FAST + config BR2_PACKAGE_DOVECOT_SQLITE bool "sqlite support" select BR2_PACKAGE_SQLITE diff --git a/package/dovecot/dovecot.hash b/package/dovecot/dovecot.hash index fde96f32a5..f29eccb319 100644 --- a/package/dovecot/dovecot.hash +++ b/package/dovecot/dovecot.hash @@ -1,5 +1,5 @@ # Locally computed after checking signature -sha256 2d90a178c4297611088bf7daae5492a3bc3d5ab6328c3a032eb425d2c249097e dovecot-2.3.21.1.tar.gz -sha256 319a9830aab406109cd67cb45496587566a8123203d66d037b209ca3e13de02a COPYING +sha256 868c2686a61b5f8e00a3e4721789b1ab46e6528fd773a5fbed07a6ecba7731e6 dovecot-2.4.5.tar.gz +sha256 4825bf42bebc624c4ce283bd6147daa1aa2c874a12af6f7fb7b07a2c793cc131 COPYING sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL sha256 52b8c95fabb19575281874b661ef7968ea47e8f5d74ba0dd40ce512e52b3fc97 COPYING.MIT diff --git a/package/dovecot/dovecot.mk b/package/dovecot/dovecot.mk index a4c799221c..74cacc3200 100644 --- a/package/dovecot/dovecot.mk +++ b/package/dovecot/dovecot.mk @@ -4,14 +4,16 @@ # ################################################################################ -DOVECOT_VERSION_MAJOR = 2.3 -DOVECOT_VERSION = $(DOVECOT_VERSION_MAJOR).21.1 +DOVECOT_VERSION_MAJOR = 2.4 +DOVECOT_VERSION = $(DOVECOT_VERSION_MAJOR).5 DOVECOT_SITE = https://dovecot.org/releases/$(DOVECOT_VERSION_MAJOR) DOVECOT_INSTALL_STAGING = YES DOVECOT_LICENSE = LGPL-2.1, MIT, Public Domain, BSD-3-Clause, Unicode-DFS-2015 DOVECOT_LICENSE_FILES = COPYING COPYING.LGPL COPYING.MIT DOVECOT_CPE_ID_VENDOR = dovecot DOVECOT_SELINUX_MODULES = dovecot + +# 0001-Revert-lib-var-expand-crypt-Link-test-binary-statica.patch DOVECOT_AUTORECONF = YES # add host-gettext for AM_ICONV macro needed for autoreconf @@ -19,30 +21,22 @@ DOVECOT_DEPENDENCIES = \ host-gettext \ host-pkgconf \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ - openssl - -# 0001-auth-Fix-handling-passdbs-with-identical-driver-args.patch -# Note: this ignore CVE entry is reported as stale by pkg-stats, but -# the NVD database is incorrect: -# https://lore.kernel.org/buildroot/20250517181815.02ce0393@windsurf/ -DOVECOT_IGNORE_CVES += CVE-2022-30550 + openssl \ + zlib DOVECOT_CONF_ENV = \ - RPCGEN=__disable_RPCGEN_rquota \ + RPCGEN=false \ i_cv_epoll_works=yes \ - i_cv_inotify_works=yes \ + i_cv_gssapi_spnego=yes \ i_cv_posix_fallocate_works=no \ - i_cv_signed_size_t=no \ i_cv_gmtime_max_time_t=32 \ - i_cv_signed_time_t=yes \ i_cv_mmap_plays_with_write=yes \ i_cv_fd_passing=yes \ - i_cv_c99_vsnprintf=yes \ lib_cv_va_copy=yes \ lib_cv___va_copy=yes \ lib_cv_va_val_copy=yes -DOVECOT_CONF_OPTS = --without-docs --with-ssl=openssl +DOVECOT_CONF_OPTS = --without-docs ifeq ($(BR2_PACKAGE_DOVECOT_MYSQL)$(BR2_PACKAGE_DOVECOT_SQLITE),) DOVECOT_CONF_OPTS += --without-sql @@ -69,6 +63,14 @@ else DOVECOT_CONF_OPTS += --without-libcap endif +ifeq ($(BR2_PACKAGE_LIBKRB5),y) +DOVECOT_CONF_ENV += KRB5CONFIG="$(STAGING_DIR)/usr/bin/krb5-config" +DOVECOT_CONF_OPTS += --with-gssapi=yes +DOVECOT_DEPENDENCIES += libkrb5 +else +DOVECOT_CONF_OPTS += --without-gssapi +endif + ifeq ($(BR2_PACKAGE_LIBSODIUM),y) DOVECOT_CONF_OPTS += --with-sodium DOVECOT_DEPENDENCIES += libsodium @@ -87,6 +89,20 @@ else DOVECOT_CONF_OPTS += --without-pam endif +ifeq ($(BR2_PACKAGE_OPENLDAP),y) +DOVECOT_CONF_OPTS += --with-ldap=yes +DOVECOT_DEPENDENCIES += openldap +else +DOVECOT_CONF_OPTS += --without-ldap +endif + +ifeq ($(BR2_PACKAGE_PCRE2),y) +DOVECOT_CONF_OPTS += --with-pcre2 +DOVECOT_DEPENDENCIES += pcre2 +else +DOVECOT_CONF_OPTS += --without-pcre2 +endif + ifeq ($(BR2_PACKAGE_DOVECOT_MYSQL),y) DOVECOT_CONF_ENV += MYSQL_CONFIG="$(STAGING_DIR)/usr/bin/mysql_config" DOVECOT_CONF_OPTS += --with-mysql @@ -95,6 +111,13 @@ else DOVECOT_CONF_OPTS += --without-mysql endif +ifeq ($(BR2_PACKAGE_DOVECOT_POSTGRESQL),y) +DOVECOT_CONF_OPTS += --with-pgsql +DOVECOT_DEPENDENCIES += postgresql +else +DOVECOT_CONF_OPTS += --without-pgsql +endif + ifeq ($(BR2_PACKAGE_DOVECOT_SQLITE),y) DOVECOT_CONF_OPTS += --with-sqlite DOVECOT_DEPENDENCIES += sqlite @@ -109,18 +132,11 @@ else DOVECOT_CONF_OPTS += --without-lz4 endif -ifeq ($(BR2_PACKAGE_XZ),y) -DOVECOT_CONF_OPTS += --with-lzma -DOVECOT_DEPENDENCIES += xz -else -DOVECOT_CONF_OPTS += --without-lzma -endif - -ifeq ($(BR2_PACKAGE_ZLIB),y) -DOVECOT_CONF_OPTS += --with-zlib -DOVECOT_DEPENDENCIES += zlib +ifeq ($(BR2_PACKAGE_ZSTD),y) +DOVECOT_CONF_OPTS += --with-zstd +DOVECOT_DEPENDENCIES += zstd else -DOVECOT_CONF_OPTS += --without-zlib +DOVECOT_CONF_OPTS += --without-zstd endif # fix paths to avoid using /usr/lib/dovecot -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 17/77] package/dovecot{-pigeonhole}: security bump version to 2.4.5 2026-09-19 15:57 ` [Buildroot] [PATCH v2 17/77] package/dovecot{-pigeonhole}: security bump version to 2.4.5 Bernd Kuhls @ 2026-09-20 13:15 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 13:15 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Hello Bernd, Thanks for working on this, and for writing a detailed commit log about the packaging changes. I have a few questions, below. On Sat, Sep 19, 2026 at 05:57:42PM +0200, Bernd Kuhls wrote: > Added patch 0001 to revert upstream commit which breaks the build: > > CCLD test-var-expand-crypt > output/per-package/dovecot/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: > attempted static link of dynamic object `./.libs/var_expand_crypt.so' Did you report the issue upstream? Having this patch with "Upstream: n/a" isn't exactly great. > Added optional support for libkrb5, openldap, postgresql and zstd. Why did you decide to handle libkrb5, openldap and zstd as automatic optional dependencies (i.e dovecot.mk checks the availability of the dependency to decide it can be used or not), but for postgresql you decided to add an explicit Config.in sub-option? > Removed configure option --with-ssl (openssl is already a dependency): > https://github.com/dovecot/core/commit/6b0b7141a8a50ffc99ad51b4f27c75f876e58616 > > Removed configure options for zlib (zlib is already a dependency): > https://github.com/dovecot/core/commit/d666521754b024ce4f1cfee322fcc492673c00a5 But are they really mandatory dependencies then? I mean if the upstream build system has --with/--without options, why don't we use them to make those dependencies optional? Thanks! Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 18/77] package/ibrcommon: update patches 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (16 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 17/77] package/dovecot{-pigeonhole}: security bump version to 2.4.5 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 13:18 ` Thomas Petazzoni via buildroot 2026-09-25 14:47 ` Raphaël Mélotte via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 19/77] package/ibrcommon: Fix build with OpenSSL 4.0.0 Bernd Kuhls ` (58 subsequent siblings) 76 siblings, 2 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Replaced patch 0001 with an upstream commit. Added Upstream: tags to patches 0002 & 0003. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .checkpackageignore | 3 - ...mplyfied-POSIX-method-to-get-the-bas.patch | 46 ++++++++++++++++ ...File.cpp-support-POSIX-basename-call.patch | 55 ------------------- ...-added-openssl-1.1-compatibility-264.patch | 3 +- ...sl-gcm-fix-static-build-with-openssl.patch | 3 +- 5 files changed, 49 insertions(+), 61 deletions(-) create mode 100644 package/ibrcommon/0001-ibrcommon-Use-simplyfied-POSIX-method-to-get-the-bas.patch delete mode 100644 package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch diff --git a/.checkpackageignore b/.checkpackageignore index 7e5d774821..50c1631df3 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -400,9 +400,6 @@ package/hplip/0001-build-use-pkg-config-to-discover-libusb.patch lib_patch.Upstr package/hplip/0002-configure.in-fix-AM_INIT_AUTOMAKE-call.patch lib_patch.Upstream package/i2pd/S99i2pd Shellcheck lib_sysv.Indent lib_sysv.Variables package/i7z/0001-fix-build-with-gcc-10.patch lib_patch.Upstream -package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch lib_patch.Upstream -package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch lib_patch.Upstream -package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch lib_patch.Upstream package/icu/0001-dont-build-static-dynamic-twice.patch lib_patch.Upstream package/icu/0002-link-icudata-as-data-only.patch lib_patch.Upstream package/icu/0003-fix-static-linking-with-icu-uc.patch lib_patch.Upstream diff --git a/package/ibrcommon/0001-ibrcommon-Use-simplyfied-POSIX-method-to-get-the-bas.patch b/package/ibrcommon/0001-ibrcommon-Use-simplyfied-POSIX-method-to-get-the-bas.patch new file mode 100644 index 0000000000..e52981b38b --- /dev/null +++ b/package/ibrcommon/0001-ibrcommon-Use-simplyfied-POSIX-method-to-get-the-bas.patch @@ -0,0 +1,46 @@ +From fcea9d27f5153c8da77ebab956f75eaa1fd48836 Mon Sep 17 00:00:00 2001 +From: Johannes Morgenroth <jm@m-network.de> +Date: Sun, 20 Dec 2015 12:51:53 +0100 +Subject: [PATCH] ibrcommon: Use simplyfied POSIX method to get the basename + +Upstream: https://github.com/ibrdtn/ibrdtn/commit/fcea9d27f5153c8da77ebab956f75eaa1fd48836 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + ibrcommon/data/File.cpp | 12 +----------- + 1 file changed, 1 insertion(+), 11 deletions(-) + +diff --git a/ibrcommon/data/File.cpp b/ibrcommon/data/File.cpp +index 31af4ae7..5f8e24e3 100644 +--- a/ibrcommon/data/File.cpp ++++ b/ibrcommon/data/File.cpp +@@ -34,10 +34,7 @@ + #include <cstring> + #include <cerrno> + #include <fstream> +- +-#if !defined(HAVE_FEATURES_H) || defined(ANDROID) + #include <libgen.h> +-#endif + + #ifdef __WIN32__ + #include <io.h> +@@ -225,14 +222,7 @@ namespace ibrcommon + + std::string File::getBasename() const + { +-#if !defined(ANDROID) && defined(HAVE_FEATURES_H) +- return std::string(basename(_path.c_str())); +-#else +- char path[_path.length()+1]; +- ::memcpy(&path, _path.c_str(), _path.length()+1); +- +- return std::string(basename(path)); +-#endif ++ return std::string(basename((char*)_path.c_str())); + } + + File File::get(const std::string &filename) const +-- +2.47.3 + diff --git a/package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch b/package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch deleted file mode 100644 index 5cd302c979..0000000000 --- a/package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch +++ /dev/null @@ -1,55 +0,0 @@ -From d667b13a87cf3207599a19eb981a893a1d7a67ee Mon Sep 17 00:00:00 2001 -From: Brendan Heading <brendanheading@gmail.com> -Date: Mon, 14 Sep 2015 23:25:52 +0100 -Subject: [PATCH] ibrcommon/data/File.cpp: support POSIX basename call - -Firstly, and somewhat strangely, musl chooses not to provide a basename(3) -prototype within <string.h> whenever __cplusplus is defined. This can be -solved by including the <libgen.h> header defined by POSIX 1003.1 whenever -__GLIBC__ is not defined. - -However, this leads to a second problem. POSIX defines the function as -char* basename(char*) and this is the only version supported by musl. -However, the std::string.cstr() method returns a const char*. - -POSIX says that the string parameter can be modified. However the GNU -implementation never modifies it. glibc therefore supports an extension -when compiling under C++ by also supplying -const char* basename(const char*). This extension is not present on musl -which is the cause of the failure. - -The solution is reasonably straightforward; test if __GLIBC__ is defined -before calling basename. If not, use the fallback already provided for -other platforms whereby basename() is called on a temporary copy. - -Signed-off-by: Brendan Heading <brendanheading@gmail.com> -Upstream-status: pending ---- - ibrcommon/data/File.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ibrcommon/data/File.cpp b/ibrcommon/data/File.cpp -index 31af4ae..68e9b4f 100644 ---- a/ibrcommon/data/File.cpp -+++ b/ibrcommon/data/File.cpp -@@ -35,7 +35,7 @@ - #include <cerrno> - #include <fstream> - --#if !defined(HAVE_FEATURES_H) || defined(ANDROID) -+#if !defined(HAVE_FEATURES_H) || !defined(__GLIBC__) || defined(ANDROID) - #include <libgen.h> - #endif - -@@ -225,7 +225,7 @@ namespace ibrcommon - - std::string File::getBasename() const - { --#if !defined(ANDROID) && defined(HAVE_FEATURES_H) -+#if !defined(ANDROID) && defined(HAVE_FEATURES_H) && defined(__GLIBC__) - return std::string(basename(_path.c_str())); - #else - char path[_path.length()+1]; --- -2.4.3 - diff --git a/package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch b/package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch index 90e5147f54..8e890de965 100644 --- a/package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch +++ b/package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch @@ -5,8 +5,7 @@ Subject: [PATCH] ibrcommon: added openssl 1.1 compatibility (#264) This patch adds compatibility to openssl 1.1.0. -Backported from master branch: -https://github.com/ibrdtn/ibrdtn/commit/a801d10a081e3130e24042256a43190c9eb6c112 +Upstream: https://github.com/ibrdtn/ibrdtn/commit/a801d10a081e3130e24042256a43190c9eb6c112 Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> diff --git a/package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch b/package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch index c55b227c0c..2045b8cbab 100644 --- a/package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch +++ b/package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch @@ -15,8 +15,9 @@ Makefile:560: recipe for target 'dtnd' failed Fixes: - http://autobuild.buildroot.org/results/1d3b4b6cf043a3e185ce758b617a0a18c3d36cdb +Upstream: https://github.com/ibrdtn/ibrdtn/commit/103bab3d4759e56b7e46cb9848e64037cd666911 + Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> -[Upstream status: https://github.com/ibrdtn/ibrdtn/pull/269] --- ibrcommon/ibrcommon/ssl/gcm/gcm.cpp | 10 +++++----- ibrcommon/ibrcommon/ssl/gcm/gf128mul.cpp | 2 +- -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 18/77] package/ibrcommon: update patches 2026-09-19 15:57 ` [Buildroot] [PATCH v2 18/77] package/ibrcommon: update patches Bernd Kuhls @ 2026-09-20 13:18 ` Thomas Petazzoni via buildroot 2026-09-25 14:47 ` Raphaël Mélotte via buildroot 1 sibling, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 13:18 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:43PM +0200, Bernd Kuhls wrote: > Replaced patch 0001 with an upstream commit. > > Added Upstream: tags to patches 0002 & 0003. > > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to master, thanks! Best regards, Thomas Petazzoni -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 18/77] package/ibrcommon: update patches 2026-09-19 15:57 ` [Buildroot] [PATCH v2 18/77] package/ibrcommon: update patches Bernd Kuhls 2026-09-20 13:18 ` Thomas Petazzoni via buildroot @ 2026-09-25 14:47 ` Raphaël Mélotte via buildroot 1 sibling, 0 replies; 107+ messages in thread From: Raphaël Mélotte via buildroot @ 2026-09-25 14:47 UTC (permalink / raw) To: buildroot, Bernd Kuhls; +Cc: Raphaël Mélotte In reply of: > Replaced patch 0001 with an upstream commit. > > Added Upstream: tags to patches 0002 & 0003. > > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to 2025.02.x, 2026.08.x. Thanks > --- > .checkpackageignore | 3 - > ...mplyfied-POSIX-method-to-get-the-bas.patch | 46 ++++++++++++++++ > ...File.cpp-support-POSIX-basename-call.patch | 55 ------------------- > ...-added-openssl-1.1-compatibility-264.patch | 3 +- > ...sl-gcm-fix-static-build-with-openssl.patch | 3 +- > 5 files changed, 49 insertions(+), 61 deletions(-) > create mode 100644 package/ibrcommon/0001-ibrcommon-Use-simplyfied-POSIX-method-to-get-the-bas.patch > delete mode 100644 package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch > > diff --git a/.checkpackageignore b/.checkpackageignore > index 7e5d774821..50c1631df3 100644 > --- a/.checkpackageignore > +++ b/.checkpackageignore > @@ -400,9 +400,6 @@ package/hplip/0001-build-use-pkg-config-to-discover-libusb.patch lib_patch.Upstr > package/hplip/0002-configure.in-fix-AM_INIT_AUTOMAKE-call.patch lib_patch.Upstream > package/i2pd/S99i2pd Shellcheck lib_sysv.Indent lib_sysv.Variables > package/i7z/0001-fix-build-with-gcc-10.patch lib_patch.Upstream > -package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch lib_patch.Upstream > -package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch lib_patch.Upstream > -package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch lib_patch.Upstream > package/icu/0001-dont-build-static-dynamic-twice.patch lib_patch.Upstream > package/icu/0002-link-icudata-as-data-only.patch lib_patch.Upstream > package/icu/0003-fix-static-linking-with-icu-uc.patch lib_patch.Upstream > diff --git a/package/ibrcommon/0001-ibrcommon-Use-simplyfied-POSIX-method-to-get-the-bas.patch b/package/ibrcommon/0001-ibrcommon-Use-simplyfied-POSIX-method-to-get-the-bas.patch > new file mode 100644 > index 0000000000..e52981b38b > --- /dev/null > +++ b/package/ibrcommon/0001-ibrcommon-Use-simplyfied-POSIX-method-to-get-the-bas.patch > @@ -0,0 +1,46 @@ > +From fcea9d27f5153c8da77ebab956f75eaa1fd48836 Mon Sep 17 00:00:00 2001 > +From: Johannes Morgenroth <jm@m-network.de> > +Date: Sun, 20 Dec 2015 12:51:53 +0100 > +Subject: [PATCH] ibrcommon: Use simplyfied POSIX method to get the basename > + > +Upstream: https://github.com/ibrdtn/ibrdtn/commit/fcea9d27f5153c8da77ebab956f75eaa1fd48836 > + > +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> > +--- > + ibrcommon/data/File.cpp | 12 +----------- > + 1 file changed, 1 insertion(+), 11 deletions(-) > + > +diff --git a/ibrcommon/data/File.cpp b/ibrcommon/data/File.cpp > +index 31af4ae7..5f8e24e3 100644 > +--- a/ibrcommon/data/File.cpp > ++++ b/ibrcommon/data/File.cpp > +@@ -34,10 +34,7 @@ > + #include <cstring> > + #include <cerrno> > + #include <fstream> > +- > +-#if !defined(HAVE_FEATURES_H) || defined(ANDROID) > + #include <libgen.h> > +-#endif > + > + #ifdef __WIN32__ > + #include <io.h> > +@@ -225,14 +222,7 @@ namespace ibrcommon > + > + std::string File::getBasename() const > + { > +-#if !defined(ANDROID) && defined(HAVE_FEATURES_H) > +- return std::string(basename(_path.c_str())); > +-#else > +- char path[_path.length()+1]; > +- ::memcpy(&path, _path.c_str(), _path.length()+1); > +- > +- return std::string(basename(path)); > +-#endif > ++ return std::string(basename((char*)_path.c_str())); > + } > + > + File File::get(const std::string &filename) const > +-- > +2.47.3 > + > diff --git a/package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch b/package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch > deleted file mode 100644 > index 5cd302c979..0000000000 > --- a/package/ibrcommon/0001-ibrcommon-data-File.cpp-support-POSIX-basename-call.patch > +++ /dev/null > @@ -1,55 +0,0 @@ > -From d667b13a87cf3207599a19eb981a893a1d7a67ee Mon Sep 17 00:00:00 2001 > -From: Brendan Heading <brendanheading@gmail.com> > -Date: Mon, 14 Sep 2015 23:25:52 +0100 > -Subject: [PATCH] ibrcommon/data/File.cpp: support POSIX basename call > - > -Firstly, and somewhat strangely, musl chooses not to provide a basename(3) > -prototype within <string.h> whenever __cplusplus is defined. This can be > -solved by including the <libgen.h> header defined by POSIX 1003.1 whenever > -__GLIBC__ is not defined. > - > -However, this leads to a second problem. POSIX defines the function as > -char* basename(char*) and this is the only version supported by musl. > -However, the std::string.cstr() method returns a const char*. > - > -POSIX says that the string parameter can be modified. However the GNU > -implementation never modifies it. glibc therefore supports an extension > -when compiling under C++ by also supplying > -const char* basename(const char*). This extension is not present on musl > -which is the cause of the failure. > - > -The solution is reasonably straightforward; test if __GLIBC__ is defined > -before calling basename. If not, use the fallback already provided for > -other platforms whereby basename() is called on a temporary copy. > - > -Signed-off-by: Brendan Heading <brendanheading@gmail.com> > -Upstream-status: pending > ---- > - ibrcommon/data/File.cpp | 4 ++-- > - 1 file changed, 2 insertions(+), 2 deletions(-) > - > -diff --git a/ibrcommon/data/File.cpp b/ibrcommon/data/File.cpp > -index 31af4ae..68e9b4f 100644 > ---- a/ibrcommon/data/File.cpp > -+++ b/ibrcommon/data/File.cpp > -@@ -35,7 +35,7 @@ > - #include <cerrno> > - #include <fstream> > - > --#if !defined(HAVE_FEATURES_H) || defined(ANDROID) > -+#if !defined(HAVE_FEATURES_H) || !defined(__GLIBC__) || defined(ANDROID) > - #include <libgen.h> > - #endif > - > -@@ -225,7 +225,7 @@ namespace ibrcommon > - > - std::string File::getBasename() const > - { > --#if !defined(ANDROID) && defined(HAVE_FEATURES_H) > -+#if !defined(ANDROID) && defined(HAVE_FEATURES_H) && defined(__GLIBC__) > - return std::string(basename(_path.c_str())); > - #else > - char path[_path.length()+1]; > --- > -2.4.3 > - > diff --git a/package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch b/package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch > index 90e5147f54..8e890de965 100644 > --- a/package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch > +++ b/package/ibrcommon/0002-ibrcommon-added-openssl-1.1-compatibility-264.patch > @@ -5,8 +5,7 @@ Subject: [PATCH] ibrcommon: added openssl 1.1 compatibility (#264) > > This patch adds compatibility to openssl 1.1.0. > > -Backported from master branch: > -https://github.com/ibrdtn/ibrdtn/commit/a801d10a081e3130e24042256a43190c9eb6c112 > +Upstream: https://github.com/ibrdtn/ibrdtn/commit/a801d10a081e3130e24042256a43190c9eb6c112 > > Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> > Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> > diff --git a/package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch b/package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch > index c55b227c0c..2045b8cbab 100644 > --- a/package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch > +++ b/package/ibrcommon/0003-ibrcommon-ssl-gcm-fix-static-build-with-openssl.patch > @@ -15,8 +15,9 @@ Makefile:560: recipe for target 'dtnd' failed > Fixes: > - http://autobuild.buildroot.org/results/1d3b4b6cf043a3e185ce758b617a0a18c3d36cdb > > +Upstream: https://github.com/ibrdtn/ibrdtn/commit/103bab3d4759e56b7e46cb9848e64037cd666911 > + > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > -[Upstream status: https://github.com/ibrdtn/ibrdtn/pull/269] > --- > ibrcommon/ibrcommon/ssl/gcm/gcm.cpp | 10 +++++----- > ibrcommon/ibrcommon/ssl/gcm/gf128mul.cpp | 2 +- _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 19/77] package/ibrcommon: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (17 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 18/77] package/ibrcommon: update patches Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-20 13:19 ` Thomas Petazzoni via buildroot 2026-09-19 15:57 ` [Buildroot] [PATCH v2 20/77] package/libp11: bump version to 0.4.20 Bernd Kuhls ` (57 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...ion-without-deprecated-OpenSSL-1.1-A.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 package/ibrcommon/0004-ssl-Fix-compilation-without-deprecated-OpenSSL-1.1-A.patch diff --git a/package/ibrcommon/0004-ssl-Fix-compilation-without-deprecated-OpenSSL-1.1-A.patch b/package/ibrcommon/0004-ssl-Fix-compilation-without-deprecated-OpenSSL-1.1-A.patch new file mode 100644 index 0000000000..8a8b21ce7e --- /dev/null +++ b/package/ibrcommon/0004-ssl-Fix-compilation-without-deprecated-OpenSSL-1.1-A.patch @@ -0,0 +1,42 @@ +From 073a1b779826d1e1bbf473ba45db3ac1e273efce Mon Sep 17 00:00:00 2001 +From: Rosen Penev <rosenp@gmail.com> +Date: Tue, 27 Nov 2018 10:18:37 -0800 +Subject: [PATCH] ssl: Fix compilation without deprecated OpenSSL 1.1 APIs + +Upstream: https://github.com/morgenroth/ibrdtn/commit/073a1b779826d1e1bbf473ba45db3ac1e273efce + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + ibrcommon/ssl/TLSStream.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/ibrcommon/ssl/TLSStream.cpp b/ibrcommon/ssl/TLSStream.cpp +index b18b43c3..e336db55 100644 +--- a/ibrcommon/ssl/TLSStream.cpp ++++ b/ibrcommon/ssl/TLSStream.cpp +@@ -259,16 +259,22 @@ namespace ibrcommon + /* openssl initialization */ + /* the if block is needed because SSL_library_init() is not reentrant */ + if(!_SSL_initialized){ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + SSL_load_error_strings(); + SSL_library_init(); + ERR_load_BIO_strings(); + ERR_load_SSL_strings(); ++#endif + _SSL_initialized = true; + } + + + /* create ssl context and throw exception if it fails */ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + _ssl_ctx = SSL_CTX_new(TLSv1_method()); ++#else ++ _ssl_ctx = SSL_CTX_new(TLS_method()); ++#endif + if(!_ssl_ctx){ + char err_buf[ERR_BUF_SIZE]; + ERR_error_string_n(ERR_get_error(), err_buf, ERR_BUF_SIZE); +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 19/77] package/ibrcommon: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 ` [Buildroot] [PATCH v2 19/77] package/ibrcommon: Fix build with OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-20 13:19 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 13:19 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:57:44PM +0200, Bernd Kuhls wrote: > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to master, thanks! Best regards, Thomas Petazzoni -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 20/77] package/libp11: bump version to 0.4.20 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (18 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 19/77] package/ibrcommon: Fix build with OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 21/77] package/nmap: bump version to 7.991 Bernd Kuhls ` (56 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark https://github.com/OpenSC/libp11/blob/libp11-0.4.20/NEWS Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/libp11/libp11.hash | 4 ++-- package/libp11/libp11.mk | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/libp11/libp11.hash b/package/libp11/libp11.hash index 8a31a6f39e..10ab7388ad 100644 --- a/package/libp11/libp11.hash +++ b/package/libp11/libp11.hash @@ -1,4 +1,4 @@ -# From https://github.com/OpenSC/libp11/releases/tag/libp11-0.4.18 -sha256 9292de67ca73aba1deacf577c9086b595765f36ef47712cfeb49fa31f6e772fb libp11-0.4.18.tar.gz +# From https://github.com/OpenSC/libp11/releases/tag/libp11-0.4.20 +sha256 a125e0310ff10c189fc1b32a9652101486ea94a6b07c677a30e90e3638d2db48 libp11-0.4.20.tar.gz # Locally computed: sha256 d80c9d084ebfb50ea1ed91bfbc2410d6ce542097a32c43b00781b83adcb8c77f COPYING diff --git a/package/libp11/libp11.mk b/package/libp11/libp11.mk index 51a44f5b3d..38cc1c2e6d 100644 --- a/package/libp11/libp11.mk +++ b/package/libp11/libp11.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBP11_VERSION = 0.4.18 +LIBP11_VERSION = 0.4.20 LIBP11_SITE = https://github.com/OpenSC/libp11/releases/download/libp11-$(LIBP11_VERSION) LIBP11_DEPENDENCIES = openssl host-pkgconf LIBP11_INSTALL_STAGING = YES -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 21/77] package/nmap: bump version to 7.991 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (19 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 20/77] package/libp11: bump version to 0.4.20 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 22/77] package/openvmtools: bump version to 13.1.0 Bernd Kuhls ` (55 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Added patch to fix build error introduced by upstream commit https://github.com/nmap/nmap/commit/a24082eee41fcabf7fa180020e1771af3226b358 which was first added to this release. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...if-compiling-without-Lua-support.-Cl.patch | 29 +++++++++++++++++++ package/nmap/nmap.hash | 6 ++-- package/nmap/nmap.mk | 2 +- 3 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 package/nmap/0002-Do-not-call-NSE-if-compiling-without-Lua-support.-Cl.patch diff --git a/package/nmap/0002-Do-not-call-NSE-if-compiling-without-Lua-support.-Cl.patch b/package/nmap/0002-Do-not-call-NSE-if-compiling-without-Lua-support.-Cl.patch new file mode 100644 index 0000000000..54cafdafbc --- /dev/null +++ b/package/nmap/0002-Do-not-call-NSE-if-compiling-without-Lua-support.-Cl.patch @@ -0,0 +1,29 @@ +From 4c36cf12f246b52a8d510bdde8becd5c5b3bf8b5 Mon Sep 17 00:00:00 2001 +From: nnposter <nnposter@e0a8ed71-7df4-0310-8962-fdc924857419> +Date: Wed, 12 Aug 2026 19:29:05 +0000 +Subject: [PATCH] Do not call NSE if compiling without Lua support. Close #3434 + +Upstream: https://github.com/nmap/nmap/commit/4c36cf12f246b52a8d510bdde8becd5c5b3bf8b5 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + nmap.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/nmap.cc b/nmap.cc +index b94c71223..70206daed 100644 +--- a/nmap.cc ++++ b/nmap.cc +@@ -1858,7 +1858,9 @@ void nmap_free_mem() { + AllProbes::service_scan_free(); + traceroute_hop_cache_clear(); + nsock_set_default_engine(NULL); ++#ifndef NOLUA + close_nse(); ++#endif + } + + int nmap_main(int argc, char *argv[]) { +-- +2.47.3 + diff --git a/package/nmap/nmap.hash b/package/nmap/nmap.hash index 17f9eb7f5e..bbdb81ec4f 100644 --- a/package/nmap/nmap.hash +++ b/package/nmap/nmap.hash @@ -1,6 +1,6 @@ -# From https://nmap.org/dist/sigs/nmap-7.99.tar.bz2.digest.txt (lowercase) -sha256 df512492ffd108e53a27a06f26d8635bbe89e0e569455dc8ffef058c035d51b2 nmap-7.99.tar.bz2 -sha512 9ff69659b76573eb10b6e472a0217032fd5fed20f0ac971b3736a4222fb6251c5fbf381ebea7ede313b8ff2feac90a848f645000c61200772d01b843594f4ba4 nmap-7.99.tar.bz2 +# From https://nmap.org/dist/sigs/nmap-7.991.tar.bz2.digest.txt (lowercase) +sha256 a5d507f29437bef3bedd4771ff9aaa8fc1c2a109ddba1f5b1cf12027456929be nmap-7.991.tar.bz2 +sha512 d87836eedd453f4f5e55075b50640a6ad61cb5dbc1f887dbaf725fa8c32b6a472d838d174c68a2efa749b3b028512d2f0467aea0ff0b5f5752df714db62f8320 nmap-7.991.tar.bz2 # Locally calculated sha256 9d9a9a763c0e6145172cfe7d8483e23b38ce60b6c79a82e4894242917bdae6d3 LICENSE diff --git a/package/nmap/nmap.mk b/package/nmap/nmap.mk index b04d8b080d..0dd96d2b95 100644 --- a/package/nmap/nmap.mk +++ b/package/nmap/nmap.mk @@ -4,7 +4,7 @@ # ################################################################################ -NMAP_VERSION = 7.99 +NMAP_VERSION = 7.991 NMAP_SITE = https://nmap.org/dist NMAP_SOURCE = nmap-$(NMAP_VERSION).tar.bz2 NMAP_DEPENDENCIES = liblinear libpcap -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 22/77] package/openvmtools: bump version to 13.1.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (20 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 21/77] package/nmap: bump version to 7.991 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 23/77] package/poco: convert to CMake package Bernd Kuhls ` (54 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Rebased patch set in two steps: 1.: downloaded patch set from home-assistant https://github.com/home-assistant/buildroot/tree/2025.02.x-haos/package/openvmtools which is based on 13.0.0 2.: rebased again on 13.1.0 (no changes needed) Added patches 0011 to fix build errors with glibc 2.43. Renumbered patches. Added tarball hash provided by upstream. Removed CVE entries in openvmtools.mk due to patches 0013 and 0014 being added to upstream release. Ported various configure options from home-assistant commit https://github.com/home-assistant/buildroot/commit/3206b3fa58a636c7a98ff7a65f76fcf23a4302ee Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .checkpackageignore | 9 +- .../0001-configure.ac-disable-Werror.patch | 32 + .../openvmtools/0001-no_cflags_werror.patch | 18 - .../0002-dont-force-cppflags.patch | 21 - ...-not-force-I-usr-include-in-CPPFLAGS.patch | 36 + ..._poll-h-to-fix-build-failure-on-musl.patch | 813 ------------------ ...to-vm_poll.h-to-fix-build-failure-on.patch | 133 +++ ...ns-about-glibc-being-only-libc-imple.patch | 27 +- ...e-configure-test-for-struct-timespec.patch | 31 +- ...finition-of-ALLPERMS-and-ACCESSPERMS.patch | 35 +- ...-test-for-feature-instead-of-platfor.patch | 74 +- ...onfigure-test-for-sys-stat.h-include.patch | 21 +- ...gfs-fuse-fsutils.h-fix-build-on-mus.patch} | 8 +- ...FromNtTimeNsec-aware-of-64-bit-time_.patch | 51 ++ ...on-discards-const-qualifier-from-poi.patch | 148 ++++ ...FromNtTimeNsec-aware-of-64-bit-time_.patch | 80 -- ...GLib-g_free-macro-redefinition-erro.patch} | 11 +- ...uthorization-on-incoming-guestOps-re.patch | 41 - ...-2025-22247-1100-1225-VGAuth-updates.patch | 383 --------- package/openvmtools/openvmtools.hash | 3 +- package/openvmtools/openvmtools.mk | 22 +- 21 files changed, 535 insertions(+), 1462 deletions(-) create mode 100644 package/openvmtools/0001-configure.ac-disable-Werror.patch delete mode 100644 package/openvmtools/0001-no_cflags_werror.patch delete mode 100644 package/openvmtools/0002-dont-force-cppflags.patch create mode 100644 package/openvmtools/0002-m4-do-not-force-I-usr-include-in-CPPFLAGS.patch delete mode 100644 package/openvmtools/0003-Rename-poll-h-into-vm_poll-h-to-fix-build-failure-on-musl.patch create mode 100644 package/openvmtools/0003-Rename-poll.h-into-vm_poll.h-to-fix-build-failure-on.patch rename package/openvmtools/{0011-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch => 0009-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch} (86%) create mode 100644 package/openvmtools/0010-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch create mode 100644 package/openvmtools/0011-fix-initialization-discards-const-qualifier-from-poi.patch delete mode 100644 package/openvmtools/0012-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch rename package/openvmtools/{0015-glib_stubs-avoid-GLib-g_free-macro-redefinition-error.patch => 0012-glib_stubs-avoid-GLib-g_free-macro-redefinition-erro.patch} (84%) delete mode 100644 package/openvmtools/0013-Properly-check-authorization-on-incoming-guestOps-re.patch delete mode 100644 package/openvmtools/0014-CVE-2025-22247-1100-1225-VGAuth-updates.patch diff --git a/.checkpackageignore b/.checkpackageignore index 50c1631df3..586b393e1c 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -683,16 +683,15 @@ package/openrc/0004-init.d-agetty-start-agetty-after-all-sevices.patch lib_patch package/openrc/0005-runlevels-do-not-add-agetty.tty-1-6-if-MKSYSVINIT-ye.patch lib_patch.Upstream package/openrc/0006-Also-create-run-lock-subsys-directory.patch lib_patch.Upstream package/opentyrian/0001-Move-definitions-that-don-t-need-to-be-exposed-from-opl-h-to-opl-c.patch lib_patch.Upstream -package/openvmtools/0001-no_cflags_werror.patch lib_patch.Upstream -package/openvmtools/0002-dont-force-cppflags.patch lib_patch.Upstream -package/openvmtools/0003-Rename-poll-h-into-vm_poll-h-to-fix-build-failure-on-musl.patch lib_patch.Upstream +package/openvmtools/0001-configure.ac-disable-Werror.patch lib_patch.Upstream +package/openvmtools/0002-m4-do-not-force-I-usr-include-in-CPPFLAGS.patch lib_patch.Upstream package/openvmtools/0004-Remove-assumptions-about-glibc-being-only-libc-imple.patch lib_patch.Upstream package/openvmtools/0005-Use-configure-test-for-struct-timespec.patch lib_patch.Upstream package/openvmtools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch lib_patch.Upstream package/openvmtools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch lib_patch.Upstream package/openvmtools/0008-Use-configure-test-for-sys-stat.h-include.patch lib_patch.Upstream -package/openvmtools/0011-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch lib_patch.Upstream -package/openvmtools/0012-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch lib_patch.Upstream +package/openvmtools/0009-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch lib_patch.Upstream +package/openvmtools/0010-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch lib_patch.Upstream package/openvmtools/shutdown Shellcheck package/openvpn/S60openvpn Shellcheck lib_sysv.Indent lib_sysv.Variables package/oprofile/0001-musl.patch lib_patch.Upstream diff --git a/package/openvmtools/0001-configure.ac-disable-Werror.patch b/package/openvmtools/0001-configure.ac-disable-Werror.patch new file mode 100644 index 0000000000..5b7c20d0e9 --- /dev/null +++ b/package/openvmtools/0001-configure.ac-disable-Werror.patch @@ -0,0 +1,32 @@ +From 818066b581f6cfedbec83031dd8b084178f622e1 Mon Sep 17 00:00:00 2001 +From: Stefan Agner <stefan@agner.ch> +Date: Tue, 5 Sep 2023 13:11:18 +0200 +Subject: [PATCH] configure.ac: disable -Werror + +Disable the mandatory flag -Werror in configure.ac. + +Signed-off-by: Karoly Kasza <kaszak@gmail.com> +[rebased against stable-12.3.0] +Signed-off-by: Stefan Agner <stefan@agner.ch> +[Bernd: rebased against stable-13.0.10] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 92b610429..89b0bd8db 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1403,7 +1403,7 @@ AC_C_VOLATILE + + ### General flags / actions + CFLAGS="$CFLAGS -Wall" +-CFLAGS="$CFLAGS -Werror" ++# CFLAGS="$CFLAGS -Werror" + + # -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident' + # in Xlib.h on OpenSolaris. +-- +2.47.3 + diff --git a/package/openvmtools/0001-no_cflags_werror.patch b/package/openvmtools/0001-no_cflags_werror.patch deleted file mode 100644 index 3378cb8e7d..0000000000 --- a/package/openvmtools/0001-no_cflags_werror.patch +++ /dev/null @@ -1,18 +0,0 @@ -configure.ac: disable -Werror - -Disable the mandatory flag -Werror in configure.ac. - -Signed-off-by: Karoly Kasza <kaszak@gmail.com> - ---- open-vm-tools/configure.ac 2015-06-17 10:02:00.000000000 +0200 -+++ open-vm-tools/configure.ac 2015-06-17 10:02:00.000000000 +0200 -@@ -935,7 +935,7 @@ - - ### General flags / actions - CFLAGS="$CFLAGS -Wall" --CFLAGS="$CFLAGS -Werror" -+# CFLAGS="$CFLAGS -Werror" - - # -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident' - # in Xlib.h on OpenSolaris. - diff --git a/package/openvmtools/0002-dont-force-cppflags.patch b/package/openvmtools/0002-dont-force-cppflags.patch deleted file mode 100644 index eb2fe16ba9..0000000000 --- a/package/openvmtools/0002-dont-force-cppflags.patch +++ /dev/null @@ -1,21 +0,0 @@ -m4: do not force -I/usr/include in CPPFLAGS - -This is so horribly broken for cross-compilation. :-( - -Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> - ---- open-vm-tools/m4/vmtools.m4 2015-06-17 10:03:00.000000000 +0200 -+++ open-vm-tools/m4/vmtools.m4 2015-06-17 10:03:00.000000000 +0200 -@@ -281,10 +281,10 @@ - if test "$os" = freebsd; then - CUSTOM_$1_CPPFLAGS="-I/usr/local/include" - else -- CUSTOM_$1_CPPFLAGS="-I/usr/include" -+ CUSTOM_$1_CPPFLAGS=" " - fi - if test -n "$2"; then -- CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2" -+ : CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2" - fi - fi - ]) diff --git a/package/openvmtools/0002-m4-do-not-force-I-usr-include-in-CPPFLAGS.patch b/package/openvmtools/0002-m4-do-not-force-I-usr-include-in-CPPFLAGS.patch new file mode 100644 index 0000000000..141dc5664b --- /dev/null +++ b/package/openvmtools/0002-m4-do-not-force-I-usr-include-in-CPPFLAGS.patch @@ -0,0 +1,36 @@ +From 4c45151dd99e4025be5d9e85e49c1af3e951cc9d Mon Sep 17 00:00:00 2001 +From: Stefan Agner <stefan@agner.ch> +Date: Tue, 5 Sep 2023 13:14:04 +0200 +Subject: [PATCH] m4: do not force -I/usr/include in CPPFLAGS + +This is so horribly broken for cross-compilation. :-( + +Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> +[rebased against stable-12.3.0] +Signed-off-by: Stefan Agner <stefan@agner.ch> +[Bernd: rebased against stable-13.0.10] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + m4/vmtools.m4 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/m4/vmtools.m4 b/m4/vmtools.m4 +index 055b39d9b..d281f81d1 100644 +--- a/m4/vmtools.m4 ++++ b/m4/vmtools.m4 +@@ -279,10 +279,10 @@ AC_DEFUN([AC_VMW_DEFAULT_FLAGS],[ + if test "$os" = freebsd; then + CUSTOM_$1_CPPFLAGS="-I/usr/local/include" + else +- CUSTOM_$1_CPPFLAGS="-I/usr/include" ++ CUSTOM_$1_CPPFLAGS=" " + fi + if test -n "$2"; then +- CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2" ++ : CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2" + fi + fi + ]) +-- +2.47.3 + diff --git a/package/openvmtools/0003-Rename-poll-h-into-vm_poll-h-to-fix-build-failure-on-musl.patch b/package/openvmtools/0003-Rename-poll-h-into-vm_poll-h-to-fix-build-failure-on-musl.patch deleted file mode 100644 index b4e94d870d..0000000000 --- a/package/openvmtools/0003-Rename-poll-h-into-vm_poll-h-to-fix-build-failure-on-musl.patch +++ /dev/null @@ -1,813 +0,0 @@ -From 1dfab46d367d11e9132506ee0f7d3eb2ceff5f3c Mon Sep 17 00:00:00 2001 -Message-Id: <1dfab46d367d11e9132506ee0f7d3eb2ceff5f3c.1652913832.git.stefan@agner.ch> -From: Fabrice Fontaine <fontaine.fabrice@gmail.com> -Date: Mon, 30 Sep 2019 13:32:35 +0200 -Subject: [PATCH] Rename poll.h into vm_poll.h to fix build failure on musl -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -musl libc redirects include of sys/poll.h to poll.h. But since poll.h is -also a local header file, the musl libc header is never included. This -leads to the following build failure: - -In file included from asyncsocket.c:73:0: -.../host/i586-buildroot-linux-musl/sysroot/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp] - #warning redirecting incorrect #include <sys/poll.h> to <poll.h> -asyncsocket.c: In function ‘AsyncTCPSocketPollWork’: -asyncsocket.c:2537:13: error: invalid use of undefined type ‘struct pollfd’ - pfd[i].fd = asock[i]->fd; - ^ -asyncsocket.c:2537:13: error: dereferencing pointer to incomplete type ‘struct pollfd’ -asyncsocket.c:2538:13: error: invalid use of undefined type ‘struct pollfd’ - pfd[i].events = read ? POLLIN : POLLOUT; - ^ -asyncsocket.c:2538:33: error: ‘POLLIN’ undeclared (first use in this function); did you mean ‘POLL_IN’? - pfd[i].events = read ? POLLIN : POLLOUT; - -So rename poll.h into vm_poll.h as suggested by srowe in -https://github.com/vmware/open-vm-tools/issues/359#issuecomment-533529956 - -Fixes: - - http://autobuild.buildroot.org/results/4f575ef42bbc4387a07e396205052b2da081c64d - -Fix #359 - -Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> -[Upstream status: https://github.com/vmware/open-vm-tools/pull/383] ---- - lib/asyncsocket/asyncsocket.c | 4 +- - lib/hgfsServer/hgfsServer.c | 2 +- - lib/include/asyncsocket.h | 2 +- - lib/include/poll.h | 337 -------------------- - lib/include/pollImpl.h | 2 +- - lib/include/vm_poll.h | 337 ++++++++++++++++++++ - lib/rpcIn/rpcin.c | 2 +- - 7 files changed, 343 insertions(+), 343 deletions(-) - delete mode 100644 lib/include/poll.h - create mode 100644 lib/include/vm_poll.h - -diff --git a/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c -index 05147d2e..16949567 100644 ---- a/lib/asyncsocket/asyncsocket.c -+++ b/lib/asyncsocket/asyncsocket.c -@@ -70,8 +70,8 @@ - #else - #include <stddef.h> - #include <ctype.h> -+#include <poll.h> - #include <sys/types.h> --#include <sys/poll.h> - #include <sys/socket.h> - #include <sys/un.h> - #include <netdb.h> -@@ -87,7 +87,7 @@ - #include "random.h" - #include "asyncsocket.h" - #include "asyncSocketBase.h" --#include "poll.h" -+#include "vm_poll.h" - #include "log.h" - #include "err.h" - #include "hostinfo.h" -diff --git a/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c -index 98f5b3f0..b436f0c7 100644 ---- a/lib/hgfsServer/hgfsServer.c -+++ b/lib/hgfsServer/hgfsServer.c -@@ -51,7 +51,7 @@ - #include "hgfsDirNotify.h" - #include "hgfsThreadpool.h" - #include "userlock.h" --#include "poll.h" -+#include "vm_poll.h" - #include "mutexRankLib.h" - #include "vm_basic_asm.h" - #include "unicodeOperations.h" -diff --git a/lib/include/asyncsocket.h b/open-vm-tools/lib/include/asyncsocket.h -index 47b5b873..b8b0149e 100644 ---- a/lib/include/asyncsocket.h -+++ b/lib/include/asyncsocket.h -@@ -171,7 +171,7 @@ typedef struct AsyncSocket AsyncSocket; - * Or the client can specify its favorite poll class and locking behavior. - * Use of IVmdbPoll is only supported for regular sockets and for Attach. - */ --#include "poll.h" -+#include "vm_poll.h" - struct IVmdbPoll; - typedef struct AsyncSocketPollParams { - int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */ -diff --git a/lib/include/poll.h b/open-vm-tools/lib/include/poll.h -deleted file mode 100644 -index c90f5dcd..00000000 ---- a/lib/include/poll.h -+++ /dev/null -@@ -1,337 +0,0 @@ --/********************************************************* -- * Copyright (C) 1998-2020 VMware, Inc. All rights reserved. -- * -- * This program is free software; you can redistribute it and/or modify it -- * under the terms of the GNU Lesser General Public License as published -- * by the Free Software Foundation version 2.1 and no later version. -- * -- * This program is distributed in the hope that it will be useful, but -- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public -- * License for more details. -- * -- * You should have received a copy of the GNU Lesser General Public License -- * along with this program; if not, write to the Free Software Foundation, Inc., -- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -- * -- *********************************************************/ -- --/********************************************************* -- * The contents of this file are subject to the terms of the Common -- * Development and Distribution License (the "License") version 1.0 -- * and no later version. You may not use this file except in -- * compliance with the License. -- * -- * You can obtain a copy of the License at -- * http://www.opensource.org/licenses/cddl1.php -- * -- * See the License for the specific language governing permissions -- * and limitations under the License. -- * -- *********************************************************/ -- -- --#ifndef _POLL_H_ --#define _POLL_H_ -- --#define INCLUDE_ALLOW_USERLEVEL --#define INCLUDE_ALLOW_VMCORE --#include "includeCheck.h" -- --#include "vm_basic_types.h" --#include "vm_basic_defs.h" --#include "vmware.h" --#include "userlock.h" -- --#if defined(__cplusplus) --extern "C" { --#endif -- --#ifdef _WIN32 --#define HZ 100 --#elif defined __linux__ --#include <asm/param.h> --#elif __APPLE__ --#include <TargetConditionals.h> --/* -- * Old SDKs don't define TARGET_OS_IPHONE at all. -- * New ones define it to 0 on Mac OS X, 1 on iOS. -- */ --#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 --#include <sys/kernel.h> --#endif --#include <sys/poll.h> --#define HZ 100 --#endif --#ifdef __ANDROID__ --/* -- * <poll.h> of android should be included, but its name is same -- * with this file. So its content is put here to avoid conflict. -- */ --#include <asm/poll.h> --#define HZ 100 --typedef unsigned int nfds_t; --int poll(struct pollfd *, nfds_t, long); --#endif -- -- --/* -- * Poll event types: each type has a different reason for firing, -- * or condition that must be met before firing. -- */ -- --typedef enum { -- /* -- * Actual Poll queue types against which you can register callbacks. -- */ -- POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ -- POLL_VTIME = 0, -- POLL_REALTIME, -- POLL_DEVICE, -- POLL_MAIN_LOOP, -- POLL_NUM_QUEUES --} PollEventType; -- -- --/* -- * Classes of events -- * -- * These are the predefined classes. More can be declared -- * with Poll_AllocClass(). -- */ -- --typedef enum PollClass { -- POLL_CLASS_MAIN, -- POLL_CLASS_PAUSE, -- POLL_CLASS_IPC, -- POLL_CLASS_CPT, -- POLL_CLASS_MKS, -- POLL_FIXED_CLASSES, -- POLL_DEFAULT_FIXED_CLASSES, -- /* Size enum to maximum */ -- POLL_MAX_CLASSES = 31, --} PollClass; -- --/* -- * Do not use; Special pseudo private poll class supported by -- * PollDefault only -- */ --#define POLL_DEFAULT_CLASS_NET POLL_FIXED_CLASSES --#define POLL_DEFAULT_CS_NET PollClassSet_Singleton(POLL_DEFAULT_CLASS_NET) -- --/* -- * Each callback is registered in a set of classes -- */ -- --typedef struct PollClassSet { -- uintptr_t bits; --} PollClassSet; -- --/* An empty PollClassSet. */ --static INLINE PollClassSet --PollClassSet_Empty(void) --{ -- PollClassSet set = { 0 }; -- return set; --} -- --/* A PollClassSet with the single member. */ --static INLINE PollClassSet --PollClassSet_Singleton(PollClass c) --{ -- PollClassSet s = PollClassSet_Empty(); -- -- ASSERT_ON_COMPILE(POLL_MAX_CLASSES < sizeof s.bits * 8); -- ASSERT(c < POLL_MAX_CLASSES); -- -- s.bits = CONST3264U(1) << c; -- return s; --} -- --/* Combine two PollClassSets. */ --static INLINE PollClassSet --PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) --{ -- PollClassSet set; -- set.bits = lhs.bits | rhs.bits; -- return set; --} -- --/* Add single class to PollClassSet. */ --static INLINE PollClassSet --PollClassSet_Include(PollClassSet set, PollClass c) --{ -- return PollClassSet_Union(set, PollClassSet_Singleton(c)); --} -- -- --#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) --#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ -- PollClassSet_Singleton(POLL_CLASS_PAUSE)) --#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ -- PollClassSet_Singleton(POLL_CLASS_CPT)) --#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ -- PollClassSet_Singleton(POLL_CLASS_IPC)) --#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ --#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) --/* -- * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. -- */ --#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) -- --/* -- * Poll class-set taxonomy: -- * POLL_CS_MAIN -- * - Unless you NEED another class, use POLL_CS_MAIN. -- * POLL_CS_PAUSE -- * - For callbacks that must occur even if the guest is paused. -- * Most VMDB or Foundry commands are in this category. -- * POLL_CS_CPT -- * - Only for callbacks which can trigger intermediate Checkpoint -- * transitions. -- * The ONLY such callback is Migrate. -- * POLL_CS_IPC -- * - Only for callbacks which can contain Msg_(Post|Hint|Question) -- * responses, and for signal handlers (why)? -- * Vigor, VMDB, and Foundry can contain Msg_* responses. -- * POLL_CS_MKS -- * - Callback runs in MKS thread. -- * POLL_CS_ALWAYS -- * - Only for events that must be processed immediately. -- * The ONLY such callback is OvhdMemVmxSizeCheck. -- */ -- -- --/* -- * Poll_Callback flags -- */ -- --#define POLL_FLAG_PERIODIC 0x01 // keep after firing --#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory --#define POLL_FLAG_READ 0x04 // device is ready for reading --#define POLL_FLAG_WRITE 0x08 // device is ready for writing --#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket --#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking --#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events --#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. --#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl --#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop -- -- --typedef void (*PollerFunction)(void *clientData); --typedef void (*PollerFireWrapper)(PollerFunction func, -- void *funcData, -- void *wrapperData); --typedef Bool (*PollerErrorFn)(const char *errorStr); -- --/* -- * Initialisers: -- * -- * For the sake of convenience, we declare the initialisers -- * for custom implmentations here, even though the actual -- * implementations are distinct from the core poll code. -- */ -- -- --/* Socket pair created with non-blocking mode */ --#define POLL_OPTIONS_SOCKET_PAIR_NONBLOCK_CONN 0x01 -- --typedef unsigned int SocketSpecialOpts; -- --typedef struct PollOptions { -- Bool locked; // Use internal MXUser for locking -- Bool allowFullQueue; // Don't assert when device event queue is full. -- VThreadID windowsMsgThread; // thread that processes Windows messages -- PollerFireWrapper fireWrapperFn; // optional; may be useful for stats -- void *fireWrapperData; // optional -- PollerErrorFn errorFn; // optional; called upon unrecoverable error -- SocketSpecialOpts pollSocketOpts; --} PollOptions; -- -- --void Poll_InitDefault(void); --void Poll_InitDefaultEx(const PollOptions *opts); --void Poll_InitGtk(void); // On top of glib for Linux --void Poll_InitCF(void); // On top of CoreFoundation for OSX -- -- --/* -- * Functions -- */ --int Poll_SocketPair(Bool vmci, Bool stream, int fds[2], SocketSpecialOpts opts); --void Poll_Loop(Bool loop, Bool *exit, PollClass c); --void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); --Bool Poll_LockingEnabled(void); --void Poll_Exit(void); -- -- --/* -- * Poll_Callback adds a callback regardless of whether an identical one exists. -- * The exception to this rule is POLL_DEVICE callbacks: there is a maximum of -- * one read and one write callback per fd. -- * -- * Poll_CallbackRemove removes one callback. If there are multiple identical -- * callbacks, which one is removed is an implementation detail. Note that in -- * the case of POLL_DEVICE and POLL_REALTIME callbacks, the fd/delay used to -- * create the callback is not specified when removing, so all callbacks -- * of those types with the same flags, function, and clientData are considered -- * "identical" even if their fd/delay differed. -- */ -- --VMwareStatus Poll_Callback(PollClassSet classSet, -- int flags, -- PollerFunction f, -- void *clientData, -- PollEventType type, -- PollDevHandle info, // fd/microsec delay -- MXUserRecLock *lck); --Bool Poll_CallbackRemove(PollClassSet classSet, -- int flags, -- PollerFunction f, -- void *clientData, -- PollEventType type); --Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, -- int flags, -- PollerFunction f, -- PollEventType type, -- void **clientData); -- --void Poll_NotifyChange(PollClassSet classSet); -- --/* -- * Wrappers for Poll_Callback and Poll_CallbackRemove that present -- * simpler subsets of those interfaces. -- */ -- --VMwareStatus Poll_CB_Device(PollerFunction f, -- void *clientData, -- PollDevHandle device, -- Bool periodic); -- --Bool Poll_CB_DeviceRemove(PollerFunction f, -- void *clientData, -- Bool periodic); -- -- --VMwareStatus Poll_CB_RTime(PollerFunction f, -- void *clientData, -- int64 delay, // microseconds -- Bool periodic, -- MXUserRecLock *lock); -- --Bool Poll_CB_RTimeRemove(PollerFunction f, -- void *clientData, -- Bool periodic); -- -- --#ifdef _WIN32 --void Poll_SetPumpsWindowsMessages(Bool pumps); --void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); --Bool Poll_FireWndCallback(void *lparam); --#endif -- --#if defined(__cplusplus) --} // extern "C" --#endif -- --#endif // _POLL_H_ -diff --git a/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h -index 46442e55..8bc66997 100644 ---- a/lib/include/pollImpl.h -+++ b/lib/include/pollImpl.h -@@ -44,7 +44,7 @@ - #define INCLUDE_ALLOW_USERLEVEL - #include "includeCheck.h" - --#include "poll.h" -+#include "vm_poll.h" - #include "vm_basic_asm.h" - - #if defined(__cplusplus) -diff --git a/lib/include/vm_poll.h b/open-vm-tools/lib/include/vm_poll.h -new file mode 100644 -index 00000000..c90f5dcd ---- /dev/null -+++ b/lib/include/vm_poll.h -@@ -0,0 +1,337 @@ -+/********************************************************* -+ * Copyright (C) 1998-2020 VMware, Inc. All rights reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU Lesser General Public License as published -+ * by the Free Software Foundation version 2.1 and no later version. -+ * -+ * This program is distributed in the hope that it will be useful, but -+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -+ * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public -+ * License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public License -+ * along with this program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ *********************************************************/ -+ -+/********************************************************* -+ * The contents of this file are subject to the terms of the Common -+ * Development and Distribution License (the "License") version 1.0 -+ * and no later version. You may not use this file except in -+ * compliance with the License. -+ * -+ * You can obtain a copy of the License at -+ * http://www.opensource.org/licenses/cddl1.php -+ * -+ * See the License for the specific language governing permissions -+ * and limitations under the License. -+ * -+ *********************************************************/ -+ -+ -+#ifndef _POLL_H_ -+#define _POLL_H_ -+ -+#define INCLUDE_ALLOW_USERLEVEL -+#define INCLUDE_ALLOW_VMCORE -+#include "includeCheck.h" -+ -+#include "vm_basic_types.h" -+#include "vm_basic_defs.h" -+#include "vmware.h" -+#include "userlock.h" -+ -+#if defined(__cplusplus) -+extern "C" { -+#endif -+ -+#ifdef _WIN32 -+#define HZ 100 -+#elif defined __linux__ -+#include <asm/param.h> -+#elif __APPLE__ -+#include <TargetConditionals.h> -+/* -+ * Old SDKs don't define TARGET_OS_IPHONE at all. -+ * New ones define it to 0 on Mac OS X, 1 on iOS. -+ */ -+#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 -+#include <sys/kernel.h> -+#endif -+#include <sys/poll.h> -+#define HZ 100 -+#endif -+#ifdef __ANDROID__ -+/* -+ * <poll.h> of android should be included, but its name is same -+ * with this file. So its content is put here to avoid conflict. -+ */ -+#include <asm/poll.h> -+#define HZ 100 -+typedef unsigned int nfds_t; -+int poll(struct pollfd *, nfds_t, long); -+#endif -+ -+ -+/* -+ * Poll event types: each type has a different reason for firing, -+ * or condition that must be met before firing. -+ */ -+ -+typedef enum { -+ /* -+ * Actual Poll queue types against which you can register callbacks. -+ */ -+ POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ -+ POLL_VTIME = 0, -+ POLL_REALTIME, -+ POLL_DEVICE, -+ POLL_MAIN_LOOP, -+ POLL_NUM_QUEUES -+} PollEventType; -+ -+ -+/* -+ * Classes of events -+ * -+ * These are the predefined classes. More can be declared -+ * with Poll_AllocClass(). -+ */ -+ -+typedef enum PollClass { -+ POLL_CLASS_MAIN, -+ POLL_CLASS_PAUSE, -+ POLL_CLASS_IPC, -+ POLL_CLASS_CPT, -+ POLL_CLASS_MKS, -+ POLL_FIXED_CLASSES, -+ POLL_DEFAULT_FIXED_CLASSES, -+ /* Size enum to maximum */ -+ POLL_MAX_CLASSES = 31, -+} PollClass; -+ -+/* -+ * Do not use; Special pseudo private poll class supported by -+ * PollDefault only -+ */ -+#define POLL_DEFAULT_CLASS_NET POLL_FIXED_CLASSES -+#define POLL_DEFAULT_CS_NET PollClassSet_Singleton(POLL_DEFAULT_CLASS_NET) -+ -+/* -+ * Each callback is registered in a set of classes -+ */ -+ -+typedef struct PollClassSet { -+ uintptr_t bits; -+} PollClassSet; -+ -+/* An empty PollClassSet. */ -+static INLINE PollClassSet -+PollClassSet_Empty(void) -+{ -+ PollClassSet set = { 0 }; -+ return set; -+} -+ -+/* A PollClassSet with the single member. */ -+static INLINE PollClassSet -+PollClassSet_Singleton(PollClass c) -+{ -+ PollClassSet s = PollClassSet_Empty(); -+ -+ ASSERT_ON_COMPILE(POLL_MAX_CLASSES < sizeof s.bits * 8); -+ ASSERT(c < POLL_MAX_CLASSES); -+ -+ s.bits = CONST3264U(1) << c; -+ return s; -+} -+ -+/* Combine two PollClassSets. */ -+static INLINE PollClassSet -+PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) -+{ -+ PollClassSet set; -+ set.bits = lhs.bits | rhs.bits; -+ return set; -+} -+ -+/* Add single class to PollClassSet. */ -+static INLINE PollClassSet -+PollClassSet_Include(PollClassSet set, PollClass c) -+{ -+ return PollClassSet_Union(set, PollClassSet_Singleton(c)); -+} -+ -+ -+#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) -+#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ -+ PollClassSet_Singleton(POLL_CLASS_PAUSE)) -+#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ -+ PollClassSet_Singleton(POLL_CLASS_CPT)) -+#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ -+ PollClassSet_Singleton(POLL_CLASS_IPC)) -+#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ -+#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) -+/* -+ * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. -+ */ -+#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) -+ -+/* -+ * Poll class-set taxonomy: -+ * POLL_CS_MAIN -+ * - Unless you NEED another class, use POLL_CS_MAIN. -+ * POLL_CS_PAUSE -+ * - For callbacks that must occur even if the guest is paused. -+ * Most VMDB or Foundry commands are in this category. -+ * POLL_CS_CPT -+ * - Only for callbacks which can trigger intermediate Checkpoint -+ * transitions. -+ * The ONLY such callback is Migrate. -+ * POLL_CS_IPC -+ * - Only for callbacks which can contain Msg_(Post|Hint|Question) -+ * responses, and for signal handlers (why)? -+ * Vigor, VMDB, and Foundry can contain Msg_* responses. -+ * POLL_CS_MKS -+ * - Callback runs in MKS thread. -+ * POLL_CS_ALWAYS -+ * - Only for events that must be processed immediately. -+ * The ONLY such callback is OvhdMemVmxSizeCheck. -+ */ -+ -+ -+/* -+ * Poll_Callback flags -+ */ -+ -+#define POLL_FLAG_PERIODIC 0x01 // keep after firing -+#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory -+#define POLL_FLAG_READ 0x04 // device is ready for reading -+#define POLL_FLAG_WRITE 0x08 // device is ready for writing -+#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket -+#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking -+#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events -+#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. -+#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl -+#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop -+ -+ -+typedef void (*PollerFunction)(void *clientData); -+typedef void (*PollerFireWrapper)(PollerFunction func, -+ void *funcData, -+ void *wrapperData); -+typedef Bool (*PollerErrorFn)(const char *errorStr); -+ -+/* -+ * Initialisers: -+ * -+ * For the sake of convenience, we declare the initialisers -+ * for custom implmentations here, even though the actual -+ * implementations are distinct from the core poll code. -+ */ -+ -+ -+/* Socket pair created with non-blocking mode */ -+#define POLL_OPTIONS_SOCKET_PAIR_NONBLOCK_CONN 0x01 -+ -+typedef unsigned int SocketSpecialOpts; -+ -+typedef struct PollOptions { -+ Bool locked; // Use internal MXUser for locking -+ Bool allowFullQueue; // Don't assert when device event queue is full. -+ VThreadID windowsMsgThread; // thread that processes Windows messages -+ PollerFireWrapper fireWrapperFn; // optional; may be useful for stats -+ void *fireWrapperData; // optional -+ PollerErrorFn errorFn; // optional; called upon unrecoverable error -+ SocketSpecialOpts pollSocketOpts; -+} PollOptions; -+ -+ -+void Poll_InitDefault(void); -+void Poll_InitDefaultEx(const PollOptions *opts); -+void Poll_InitGtk(void); // On top of glib for Linux -+void Poll_InitCF(void); // On top of CoreFoundation for OSX -+ -+ -+/* -+ * Functions -+ */ -+int Poll_SocketPair(Bool vmci, Bool stream, int fds[2], SocketSpecialOpts opts); -+void Poll_Loop(Bool loop, Bool *exit, PollClass c); -+void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); -+Bool Poll_LockingEnabled(void); -+void Poll_Exit(void); -+ -+ -+/* -+ * Poll_Callback adds a callback regardless of whether an identical one exists. -+ * The exception to this rule is POLL_DEVICE callbacks: there is a maximum of -+ * one read and one write callback per fd. -+ * -+ * Poll_CallbackRemove removes one callback. If there are multiple identical -+ * callbacks, which one is removed is an implementation detail. Note that in -+ * the case of POLL_DEVICE and POLL_REALTIME callbacks, the fd/delay used to -+ * create the callback is not specified when removing, so all callbacks -+ * of those types with the same flags, function, and clientData are considered -+ * "identical" even if their fd/delay differed. -+ */ -+ -+VMwareStatus Poll_Callback(PollClassSet classSet, -+ int flags, -+ PollerFunction f, -+ void *clientData, -+ PollEventType type, -+ PollDevHandle info, // fd/microsec delay -+ MXUserRecLock *lck); -+Bool Poll_CallbackRemove(PollClassSet classSet, -+ int flags, -+ PollerFunction f, -+ void *clientData, -+ PollEventType type); -+Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, -+ int flags, -+ PollerFunction f, -+ PollEventType type, -+ void **clientData); -+ -+void Poll_NotifyChange(PollClassSet classSet); -+ -+/* -+ * Wrappers for Poll_Callback and Poll_CallbackRemove that present -+ * simpler subsets of those interfaces. -+ */ -+ -+VMwareStatus Poll_CB_Device(PollerFunction f, -+ void *clientData, -+ PollDevHandle device, -+ Bool periodic); -+ -+Bool Poll_CB_DeviceRemove(PollerFunction f, -+ void *clientData, -+ Bool periodic); -+ -+ -+VMwareStatus Poll_CB_RTime(PollerFunction f, -+ void *clientData, -+ int64 delay, // microseconds -+ Bool periodic, -+ MXUserRecLock *lock); -+ -+Bool Poll_CB_RTimeRemove(PollerFunction f, -+ void *clientData, -+ Bool periodic); -+ -+ -+#ifdef _WIN32 -+void Poll_SetPumpsWindowsMessages(Bool pumps); -+void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); -+Bool Poll_FireWndCallback(void *lparam); -+#endif -+ -+#if defined(__cplusplus) -+} // extern "C" -+#endif -+ -+#endif // _POLL_H_ -diff --git a/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c -index 8b1fe759..f22fcd40 100644 ---- a/lib/rpcIn/rpcin.c -+++ b/lib/rpcIn/rpcin.c -@@ -57,7 +57,7 @@ - - #if defined(VMTOOLS_USE_VSOCKET) - # include <glib.h> --# include "poll.h" -+# include "vm_poll.h" - # include "asyncsocket.h" - # include "vmci_defs.h" - #include "dataMap.h" --- -2.36.1 - diff --git a/package/openvmtools/0003-Rename-poll.h-into-vm_poll.h-to-fix-build-failure-on.patch b/package/openvmtools/0003-Rename-poll.h-into-vm_poll.h-to-fix-build-failure-on.patch new file mode 100644 index 0000000000..f7afb1891a --- /dev/null +++ b/package/openvmtools/0003-Rename-poll.h-into-vm_poll.h-to-fix-build-failure-on.patch @@ -0,0 +1,133 @@ +From 23e25f489bc054b90ebfaed0b9726544ad5a6aba Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> +Date: Mon, 30 Sep 2019 13:32:35 +0200 +Subject: [PATCH] Rename poll.h into vm_poll.h to fix build failure on musl +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +musl libc redirects include of sys/poll.h to poll.h. But since poll.h is +also a local header file, the musl libc header is never included. This +leads to the following build failure: + +In file included from asyncsocket.c:73:0: +.../host/i586-buildroot-linux-musl/sysroot/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp] + #warning redirecting incorrect #include <sys/poll.h> to <poll.h> +asyncsocket.c: In function ‘AsyncTCPSocketPollWork’: +asyncsocket.c:2537:13: error: invalid use of undefined type ‘struct pollfd’ + pfd[i].fd = asock[i]->fd; + ^ +asyncsocket.c:2537:13: error: dereferencing pointer to incomplete type ‘struct pollfd’ +asyncsocket.c:2538:13: error: invalid use of undefined type ‘struct pollfd’ + pfd[i].events = read ? POLLIN : POLLOUT; + ^ +asyncsocket.c:2538:33: error: ‘POLLIN’ undeclared (first use in this function); did you mean ‘POLL_IN’? + pfd[i].events = read ? POLLIN : POLLOUT; + +So rename poll.h into vm_poll.h as suggested by srowe in +https://github.com/vmware/open-vm-tools/issues/359#issuecomment-533529956 + +Fixes: + - http://autobuild.buildroot.org/results/4f575ef42bbc4387a07e396205052b2da081c64d + +Fix #359 + +Upstream: https://github.com/vmware/open-vm-tools/pull/383 + +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +[rebased against stable-12.3.0] +Signed-off-by: Stefan Agner <stefan@agner.ch> +[Bernd: rebased against stable-13.0.10] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + lib/asyncsocket/asyncsocket.c | 4 ++-- + lib/hgfsServer/hgfsServer.c | 2 +- + lib/include/asyncsocket.h | 2 +- + lib/include/pollImpl.h | 2 +- + lib/include/{poll.h => vm_poll.h} | 0 + lib/rpcIn/rpcin.c | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + rename lib/include/{poll.h => vm_poll.h} (100%) + +diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c +index d61777601..3f75b85ad 100644 +--- a/lib/asyncsocket/asyncsocket.c ++++ b/lib/asyncsocket/asyncsocket.c +@@ -70,8 +70,8 @@ + #else + #include <stddef.h> + #include <ctype.h> ++#include <poll.h> + #include <sys/types.h> +-#include <sys/poll.h> + #include <sys/socket.h> + #include <sys/un.h> + #include <netdb.h> +@@ -87,7 +87,7 @@ + #include "random.h" + #include "asyncsocket.h" + #include "asyncSocketBase.h" +-#include "poll.h" ++#include "vm_poll.h" + #include "log.h" + #include "err.h" + #include "hostinfo.h" +diff --git a/lib/hgfsServer/hgfsServer.c b/lib/hgfsServer/hgfsServer.c +index c7b4cdd0f..d6e0cdc0e 100644 +--- a/lib/hgfsServer/hgfsServer.c ++++ b/lib/hgfsServer/hgfsServer.c +@@ -51,7 +51,7 @@ + #include "hgfsDirNotify.h" + #include "hgfsThreadpool.h" + #include "userlock.h" +-#include "poll.h" ++#include "vm_poll.h" + #include "mutexRankLib.h" + #include "vm_basic_asm.h" + #include "unicodeOperations.h" +diff --git a/lib/include/asyncsocket.h b/lib/include/asyncsocket.h +index 57d491570..283e2d796 100644 +--- a/lib/include/asyncsocket.h ++++ b/lib/include/asyncsocket.h +@@ -177,7 +177,7 @@ typedef struct AsyncSocket AsyncSocket; + * Or the client can specify its favorite poll class and locking behavior. + * Use of IVmdbPoll is only supported for regular sockets and for Attach. + */ +-#include "poll.h" ++#include "vm_poll.h" + struct IVmdbPoll; + typedef struct AsyncSocketPollParams { + int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */ +diff --git a/lib/include/pollImpl.h b/lib/include/pollImpl.h +index 46442e556..8bc669970 100644 +--- a/lib/include/pollImpl.h ++++ b/lib/include/pollImpl.h +@@ -44,7 +44,7 @@ + #define INCLUDE_ALLOW_USERLEVEL + #include "includeCheck.h" + +-#include "poll.h" ++#include "vm_poll.h" + #include "vm_basic_asm.h" + + #if defined(__cplusplus) +diff --git a/lib/include/poll.h b/lib/include/vm_poll.h +similarity index 100% +rename from lib/include/poll.h +rename to lib/include/vm_poll.h +diff --git a/lib/rpcIn/rpcin.c b/lib/rpcIn/rpcin.c +index f1709fe03..c1a5dfdba 100644 +--- a/lib/rpcIn/rpcin.c ++++ b/lib/rpcIn/rpcin.c +@@ -57,7 +57,7 @@ + + #if defined(VMTOOLS_USE_VSOCKET) + # include <glib.h> +-# include "poll.h" ++# include "vm_poll.h" + # include "asyncsocket.h" + # include "vmci_defs.h" + #include "dataMap.h" +-- +2.47.3 + diff --git a/package/openvmtools/0004-Remove-assumptions-about-glibc-being-only-libc-imple.patch b/package/openvmtools/0004-Remove-assumptions-about-glibc-being-only-libc-imple.patch index 5960006f2f..db6c61ca91 100644 --- a/package/openvmtools/0004-Remove-assumptions-about-glibc-being-only-libc-imple.patch +++ b/package/openvmtools/0004-Remove-assumptions-about-glibc-being-only-libc-imple.patch @@ -1,22 +1,26 @@ -From a0983d84185f04c4e40778fe951fde4439894882 Mon Sep 17 00:00:00 2001 +From 4421d88ca9248173baa8eb4fcd563e6705f8aeb0 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sun, 16 Jul 2017 07:37:03 -0700 -Subject: [PATCH] Remove assumptions about glibc being only libc - implementation on linux +Subject: [PATCH] Remove assumptions about glibc being only libc implementation + on linux Signed-off-by: Khem Raj <raj.khem@gmail.com> [Retrieved (and updated to work on current version) from: http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch?h=sumo] Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +[rebased against stable-12.3.0] +Signed-off-by: Stefan Agner <stefan@agner.ch> +[Bernd: rebased against stable-13.0.10] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- - open-vm-tools/lib/file/fileIOPosix.c | 2 +- - 2 files changed, 3 insertions(+), 1 deletion(-) + lib/file/fileIOPosix.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) -Index: open-vm-tools/lib/file/fileIOPosix.c -=================================================================== ---- open-vm-tools.orig/lib/file/fileIOPosix.c -+++ open-vm-tools/lib/file/fileIOPosix.c -@@ -205,7 +205,7 @@ static AlignedPool alignedPool; +diff --git a/lib/file/fileIOPosix.c b/lib/file/fileIOPosix.c +index 4dedb08fc..1e16f06bd 100644 +--- a/lib/file/fileIOPosix.c ++++ b/lib/file/fileIOPosix.c +@@ -204,7 +204,7 @@ static AlignedPool alignedPool; * are not available in any header file. */ @@ -25,3 +29,6 @@ Index: open-vm-tools/lib/file/fileIOPosix.c #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) /* * We want preadv/pwritev. But due to FOB=64, the symbols are -64. +-- +2.47.3 + diff --git a/package/openvmtools/0005-Use-configure-test-for-struct-timespec.patch b/package/openvmtools/0005-Use-configure-test-for-struct-timespec.patch index 3386faec15..5a3088cf5d 100644 --- a/package/openvmtools/0005-Use-configure-test-for-struct-timespec.patch +++ b/package/openvmtools/0005-Use-configure-test-for-struct-timespec.patch @@ -1,4 +1,4 @@ -From bf1eafb07297711baf9320b1edcca8a3376f117d Mon Sep 17 00:00:00 2001 +From c51e6ceb7f1443603e9713d297b0386db91f524e Mon Sep 17 00:00:00 2001 From: Natanael Copa <ncopa@alpinelinux.org> Date: Wed, 18 Nov 2015 09:03:00 +0000 Subject: [PATCH] Use configure test for struct timespec @@ -10,16 +10,20 @@ Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> [Retrieved from: http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch?h=sumo] Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +[rebased against stable-12.3.0] +Signed-off-by: Stefan Agner <stefan@agner.ch> +[Bernd: rebased against stable-13.0.10] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- - open-vm-tools/configure.ac | 1 + - open-vm-tools/lib/include/hgfsUtil.h | 8 +------- + configure.ac | 1 + + lib/include/hgfsUtil.h | 8 +------- 2 files changed, 2 insertions(+), 7 deletions(-) -Index: open-vm-tools/configure.ac -=================================================================== ---- open-vm-tools.orig/configure.ac -+++ open-vm-tools/configure.ac -@@ -1127,6 +1127,7 @@ AC_TYPE_OFF_T +diff --git a/configure.ac b/configure.ac +index 89b0bd8db..0ba2f6658 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1393,6 +1393,7 @@ AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_CHECK_MEMBERS([struct stat.st_rdev]) @@ -27,10 +31,10 @@ Index: open-vm-tools/configure.ac AC_HEADER_TIME AC_STRUCT_TM AC_C_VOLATILE -Index: open-vm-tools/lib/include/hgfsUtil.h -=================================================================== ---- open-vm-tools.orig/lib/include/hgfsUtil.h -+++ open-vm-tools/lib/include/hgfsUtil.h +diff --git a/lib/include/hgfsUtil.h b/lib/include/hgfsUtil.h +index 609f4c000..a3a022d42 100644 +--- a/lib/include/hgfsUtil.h ++++ b/lib/include/hgfsUtil.h @@ -53,13 +53,7 @@ # include <time.h> # endif @@ -46,3 +50,6 @@ Index: open-vm-tools/lib/include/hgfsUtil.h struct timespec { time_t tv_sec; long tv_nsec; +-- +2.47.3 + diff --git a/package/openvmtools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/package/openvmtools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch index 371004c90f..23719e8ad6 100644 --- a/package/openvmtools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch +++ b/package/openvmtools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch @@ -1,4 +1,4 @@ -From 31ae6f42458f90d4994a4ad8e2b7673691612c36 Mon Sep 17 00:00:00 2001 +From 8ff21c861f204b502085f93352c182e7d449755f Mon Sep 17 00:00:00 2001 From: Natanael Copa <ncopa@alpinelinux.org> Date: Wed, 18 Nov 2015 09:10:14 +0000 Subject: [PATCH] Fix definition of ALLPERMS and ACCESSPERMS @@ -12,16 +12,20 @@ Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> [Retrieved from: http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch?h=sumo] Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +[rebased against stable-12.3.0] +Signed-off-by: Stefan Agner <stefan@agner.ch> +[Bernd: rebased against stable-13.0.10] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- - open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 8 +++++--- - open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c | 3 +-- + lib/hgfsServer/hgfsServerLinux.c | 8 +++++--- + services/plugins/dndcp/dnd/dndLinux.c | 3 +-- 2 files changed, 6 insertions(+), 5 deletions(-) -Index: open-vm-tools/lib/hgfsServer/hgfsServerLinux.c -=================================================================== ---- open-vm-tools.orig/lib/hgfsServer/hgfsServerLinux.c -+++ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c -@@ -107,11 +107,13 @@ typedef struct DirectoryEntry { +diff --git a/lib/hgfsServer/hgfsServerLinux.c b/lib/hgfsServer/hgfsServerLinux.c +index 4a0bc9378..6ed49e2b7 100644 +--- a/lib/hgfsServer/hgfsServerLinux.c ++++ b/lib/hgfsServer/hgfsServerLinux.c +@@ -105,11 +105,13 @@ typedef struct DirectoryEntry { #endif /* @@ -38,11 +42,11 @@ Index: open-vm-tools/lib/hgfsServer/hgfsServerLinux.c # define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) #endif -Index: open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c -=================================================================== ---- open-vm-tools.orig/services/plugins/dndcp/dnd/dndLinux.c -+++ open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c -@@ -51,7 +51,7 @@ +diff --git a/services/plugins/dndcp/dnd/dndLinux.c b/services/plugins/dndcp/dnd/dndLinux.c +index 219065f74..b5b7e6203 100644 +--- a/services/plugins/dndcp/dnd/dndLinux.c ++++ b/services/plugins/dndcp/dnd/dndLinux.c +@@ -53,7 +53,7 @@ #define DND_ROOTDIR_PERMS (S_IRWXU | S_IRWXG | S_IRWXO) #define DND_STAGINGDIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) @@ -51,7 +55,7 @@ Index: open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) #endif #ifdef __ANDROID__ -@@ -60,7 +60,6 @@ +@@ -62,7 +62,6 @@ */ #define NO_SETMNTENT #define NO_ENDMNTENT @@ -59,3 +63,6 @@ Index: open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c #endif +-- +2.47.3 + diff --git a/package/openvmtools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch b/package/openvmtools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch index f10e74e152..4a0e11b87d 100644 --- a/package/openvmtools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch +++ b/package/openvmtools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch @@ -1,4 +1,4 @@ -From 6cc1c22cc30320f56da552a76bd956db8f255b6a Mon Sep 17 00:00:00 2001 +From bb3b5f66bb71aa7d7af0e58ec0a5992e08814d5e Mon Sep 17 00:00:00 2001 From: Natanael Copa <ncopa@alpinelinux.org> Date: Wed, 18 Nov 2015 10:05:07 +0000 Subject: [PATCH] Use configure to test for feature instead of platform @@ -18,23 +18,25 @@ The features we test for are: This is needed for musl libc. +Refit patch of open-vm-tools/lib/nicInfo/nicInfoPosix.c + Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> -[Retrieved (and slightly updated) from: -http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch?h=sumo] -Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> -[Dario: make the patch to be applied with fuzz factor 0] -Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> +Signed-off-by: Randy MacLeod <randy.macleod@windriver.com> +[rebased against stable-12.3.0] +Signed-off-by: Stefan Agner <stefan@agner.ch> +[Bernd: rebased against stable-13.0.10] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- - open-vm-tools/configure.ac | 4 ++++ - open-vm-tools/lib/misc/idLinux.c | 30 ++++++++++++++---------------- - open-vm-tools/lib/nicInfo/nicInfoPosix.c | 8 ++++++-- - 3 files changed, 24 insertions(+), 18 deletions(-) + configure.ac | 4 ++++ + lib/misc/idLinux.c | 30 ++++++++++++++---------------- + lib/nicInfo/nicInfoPosix.c | 6 +++++- + 3 files changed, 23 insertions(+), 17 deletions(-) -Index: open-vm-tools/configure.ac -=================================================================== ---- open-vm-tools.orig/configure.ac -+++ open-vm-tools/configure.ac -@@ -940,6 +940,7 @@ +diff --git a/configure.ac b/configure.ac +index 0ba2f6658..31d61c154 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1121,6 +1121,7 @@ AC_CHECK_FUNCS( AC_CHECK_FUNCS([ecvt]) AC_CHECK_FUNCS([fcvt]) @@ -42,7 +44,7 @@ Index: open-vm-tools/configure.ac AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes]) -@@ -1149,10 +1150,13 @@ +@@ -1330,10 +1331,13 @@ fi ### AC_CHECK_HEADERS([crypt.h]) @@ -56,10 +58,10 @@ Index: open-vm-tools/configure.ac AC_CHECK_HEADERS([sys/inttypes.h]) AC_CHECK_HEADERS([sys/io.h]) AC_CHECK_HEADERS([sys/param.h]) # Required to make the sys/user.h check work correctly on FreeBSD -Index: open-vm-tools/lib/misc/idLinux.c -=================================================================== ---- open-vm-tools.orig/lib/misc/idLinux.c -+++ open-vm-tools/lib/misc/idLinux.c +diff --git a/lib/misc/idLinux.c b/lib/misc/idLinux.c +index 3d7d1e303..0e12ac5bd 100644 +--- a/lib/misc/idLinux.c ++++ b/lib/misc/idLinux.c @@ -27,12 +27,9 @@ #include <sys/syscall.h> #include <string.h> @@ -74,7 +76,7 @@ Index: open-vm-tools/lib/misc/idLinux.c #ifdef __APPLE__ #include <sys/socket.h> #include <TargetConditionals.h> -@@ -1025,31 +1022,32 @@ +@@ -1025,24 +1022,23 @@ Id_EndSuperUser(uid_t uid) // IN: static Bool IdIsSetUGid(void) { @@ -108,10 +110,11 @@ Index: open-vm-tools/lib/misc/idLinux.c +#elif HAVE___SECURE_GETENV static const char envName[] = "VMW_SETUGID_TEST"; - if (setenv(envName, "1", TRUE) == -1) { - return TRUE; /* Conservative */ + /* +@@ -1062,7 +1058,9 @@ IdIsSetUGid(void) + return secure_getenv(envName) == NULL; } - return __secure_getenv(envName) == NULL; + return TRUE; -#endif +#else + /* Android does not have a secure_getenv, so be conservative. */ @@ -119,10 +122,10 @@ Index: open-vm-tools/lib/misc/idLinux.c #endif } #endif -Index: open-vm-tools/lib/nicInfo/nicInfoPosix.c -=================================================================== ---- open-vm-tools.orig/lib/nicInfo/nicInfoPosix.c -+++ open-vm-tools/lib/nicInfo/nicInfoPosix.c +diff --git a/lib/nicInfo/nicInfoPosix.c b/lib/nicInfo/nicInfoPosix.c +index 0135e6a09..6f20547b2 100644 +--- a/lib/nicInfo/nicInfoPosix.c ++++ b/lib/nicInfo/nicInfoPosix.c @@ -35,9 +35,13 @@ #include <sys/stat.h> #include <errno.h> @@ -138,15 +141,6 @@ Index: open-vm-tools/lib/nicInfo/nicInfoPosix.c # include <net/if.h> #endif #ifndef NO_DNET -@@ -499,10 +503,7 @@ - * - ****************************************************************************** - */ --#if defined(__FreeBSD__) || \ -- defined(__APPLE__) || \ -- defined(USERWORLD) || \ -- (defined(__linux__) && defined(NO_DNET)) -+#if defined(NO_DNET) && defined(HAVE_GETIFADDRS) - - char * - GuestInfoGetPrimaryIP(void) +-- +2.47.3 + diff --git a/package/openvmtools/0008-Use-configure-test-for-sys-stat.h-include.patch b/package/openvmtools/0008-Use-configure-test-for-sys-stat.h-include.patch index c058dfe6c3..198abb3f45 100644 --- a/package/openvmtools/0008-Use-configure-test-for-sys-stat.h-include.patch +++ b/package/openvmtools/0008-Use-configure-test-for-sys-stat.h-include.patch @@ -1,4 +1,4 @@ -From 95c6184d9ff70a47c41768850923a96de9e544aa Mon Sep 17 00:00:00 2001 +From 2b1df418ff114676ba93c005d96925a068e41944 Mon Sep 17 00:00:00 2001 From: Natanael Copa <ncopa@alpinelinux.org> Date: Wed, 18 Nov 2015 10:41:01 +0000 Subject: [PATCH] Use configure test for sys/stat.h include @@ -9,15 +9,19 @@ Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> [Retrieved from: http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch?h=sumo] Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +[rebased against stable-12.3.0] +Signed-off-by: Stefan Agner <stefan@agner.ch> +[Bernd: rebased against stable-13.0.10] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- - open-vm-tools/services/plugins/vix/vixTools.c | 2 +- + services/plugins/vix/vixTools.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: open-vm-tools/services/plugins/vix/vixTools.c -=================================================================== ---- open-vm-tools.orig/services/plugins/vix/vixTools.c -+++ open-vm-tools/services/plugins/vix/vixTools.c -@@ -66,7 +66,7 @@ +diff --git a/services/plugins/vix/vixTools.c b/services/plugins/vix/vixTools.c +index 694371d10..b2079a10d 100644 +--- a/services/plugins/vix/vixTools.c ++++ b/services/plugins/vix/vixTools.c +@@ -67,7 +67,7 @@ #include <unistd.h> #endif @@ -26,3 +30,6 @@ Index: open-vm-tools/services/plugins/vix/vixTools.c #include <sys/stat.h> #endif +-- +2.47.3 + diff --git a/package/openvmtools/0011-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch b/package/openvmtools/0009-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch similarity index 86% rename from package/openvmtools/0011-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch rename to package/openvmtools/0009-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch index e2984a38b7..d3adc738cd 100644 --- a/package/openvmtools/0011-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch +++ b/package/openvmtools/0009-open-vm-tools-vmhgfs-fuse-fsutils.h-fix-build-on-mus.patch @@ -1,4 +1,4 @@ -From 0a5032669951ffd6735c294a6f309b0ec6667ea5 Mon Sep 17 00:00:00 2001 +From 84adbc466ed1ae2b87b383880ff724324866f59b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine <fontaine.fabrice@gmail.com> Date: Sun, 8 Mar 2020 18:49:00 +0100 Subject: [PATCH] open-vm-tools/vmhgfs-fuse/fsutils.h: fix build on musl @@ -18,12 +18,14 @@ Fixes: Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> [Upstream status: not sent yet (upstream is not reactive on third patch] +[Bernd: rebased against stable-13.0.10] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- vmhgfs-fuse/fsutil.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vmhgfs-fuse/fsutil.h b/vmhgfs-fuse/fsutil.h -index 34b6d489..a94f9fbb 100644 +index 34b6d489a..a94f9fbb1 100644 --- a/vmhgfs-fuse/fsutil.h +++ b/vmhgfs-fuse/fsutil.h @@ -32,7 +32,8 @@ @@ -37,5 +39,5 @@ index 34b6d489..a94f9fbb 100644 #endif -- -2.25.0 +2.47.3 diff --git a/package/openvmtools/0010-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch b/package/openvmtools/0010-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch new file mode 100644 index 0000000000..df69be32d6 --- /dev/null +++ b/package/openvmtools/0010-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch @@ -0,0 +1,51 @@ +From bedbcfcf347ff1a11d1a54f8f780f560e4b241a4 Mon Sep 17 00:00:00 2001 +From: Stefan Agner <stefan@agner.ch> +Date: Tue, 5 Sep 2023 15:03:56 +0200 +Subject: [PATCH] Make HgfsConvertFromNtTimeNsec aware of 64-bit time_t on i386 + +I verified that this function behaves as expected on x86_64, i386 with +32-bit time_t, and i386 with 64-bit time_t for the following values of +ntTtime: + +UNIX_EPOCH-1, UNIX_EPOCH, UNIX_EPOCH+1, UNIX_S32_MAX-1, UNIX_S32_MAX, +UNIX_S32_MAX+1, UNIX_S32_MAX*2+1 + +I did not verify whether the use of Div643264 is optimal, performance +wise. + +Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> +[rebased against stable-12.3.0] +Signed-off-by: Stefan Agner <stefan@agner.ch> +[Bernd: rebased against stable-13.0.10] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + lib/hgfs/hgfsUtil.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/lib/hgfs/hgfsUtil.c b/lib/hgfs/hgfsUtil.c +index fcd7fb726..f86061562 100644 +--- a/lib/hgfs/hgfsUtil.c ++++ b/lib/hgfs/hgfsUtil.c +@@ -131,13 +131,15 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format + Div643232(ntTime - UNIX_EPOCH, 10000000, &sec, &nsec); + unixTime->tv_sec = sec; + unixTime->tv_nsec = nsec * 100; +- +- return 0; ++ } else { ++ Div643264(ntTime - UNIX_EPOCH, 10000000, &sec64, &nsec); ++ unixTime->tv_sec = sec64; ++ unixTime->tv_nsec = nsec * 100; + } +-#endif +- ++#else + unixTime->tv_sec = (ntTime - UNIX_EPOCH) / 10000000; + unixTime->tv_nsec = ((ntTime - UNIX_EPOCH) % 10000000) * 100; ++#endif // __i386__ + + return 0; + } +-- +2.47.3 + diff --git a/package/openvmtools/0011-fix-initialization-discards-const-qualifier-from-poi.patch b/package/openvmtools/0011-fix-initialization-discards-const-qualifier-from-poi.patch new file mode 100644 index 0000000000..525984ebd0 --- /dev/null +++ b/package/openvmtools/0011-fix-initialization-discards-const-qualifier-from-poi.patch @@ -0,0 +1,148 @@ +From ba2005c94cc9ebe1b09f83e8c70ef9f0d0b5a353 Mon Sep 17 00:00:00 2001 +From: Rudi Heitbaum <rudi@heitbaum.com> +Date: Mon, 26 Jan 2026 11:55:03 +0000 +Subject: [PATCH] fix initialization discards 'const' qualifier from pointer + target type + +Since glibc-2.43: + +For ISO C23, the functions bsearch, memchr, strchr, strpbrk, strrchr, +strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return +pointers into their input arrays now have definitions as macros that +return a pointer to a const-qualified type when the input argument is +a pointer to a const-qualified type. + +https://lists.gnu.org/archive/html/info-gnu/2026-01/msg00005.html + +Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com> + +Upstream: https://github.com/vmware/open-vm-tools/pull/783 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + lib/hgfs/hgfsEscape.c | 6 +++--- + lib/hgfsServer/hgfsServerLinux.c | 2 +- + lib/misc/strutil.c | 7 ++++--- + lib/nicInfo/nicInfoPosix.c | 2 +- + libvmtools/i18n.c | 2 +- + services/plugins/vix/vixTools.c | 2 +- + 6 files changed, 11 insertions(+), 10 deletions(-) + +diff --git a/lib/hgfs/hgfsEscape.c b/lib/hgfs/hgfsEscape.c +index c4d39b12d..212ea1c79 100644 +--- a/lib/hgfs/hgfsEscape.c ++++ b/lib/hgfs/hgfsEscape.c +@@ -175,7 +175,7 @@ HgfsAddEscapeCharacter(char const * bufIn, // IN: input name + HgfsEscapeContext *escapeContext = (HgfsEscapeContext *)context; + uint32 charactersToCopy; + uint32 outputSpace; +- char* illegal; ++ const char* illegal; + Bool result = TRUE; + + ASSERT(offset >= escapeContext->processedOffset); // Scanning forward +@@ -573,7 +573,7 @@ HgfsIsEscapeSequence(char const *bufIn, // IN: input name + uint32 length) // IN: length of the name in characters + { + if (bufIn[offset] == HGFS_ESCAPE_CHAR && offset > 0) { +- char *substitute; ++ const char *substitute; + if (bufIn[offset - 1] == HGFS_ESCAPE_SUBSTITUE_CHAR && offset > 1) { + /* + * Possibly a valid sequence, check it must be preceded with a substitute +@@ -887,7 +887,7 @@ HgfsEscapeUndoComponent(char *bufIn, // IN: Characters to be unesc + size_t offset = escapePointer - bufIn; + + if (HgfsIsEscapeSequence(bufIn, offset, sizeIn)) { +- char* substitute = strchr(HGFS_SUBSTITUTE_CHARS, bufIn[offset - 1]); ++ const char* substitute = strchr(HGFS_SUBSTITUTE_CHARS, bufIn[offset - 1]); + if (substitute != NULL) { + bufIn[offset - 1] = HGFS_ILLEGAL_CHARS[substitute - HGFS_SUBSTITUTE_CHARS]; + } else if (bufIn[offset - 1] == HGFS_ESCAPE_SUBSTITUE_CHAR) { +diff --git a/lib/hgfsServer/hgfsServerLinux.c b/lib/hgfsServer/hgfsServerLinux.c +index 6ed49e2b7..00bed5684 100644 +--- a/lib/hgfsServer/hgfsServerLinux.c ++++ b/lib/hgfsServer/hgfsServerLinux.c +@@ -1366,7 +1366,7 @@ static void + HgfsGetHiddenAttr(char const *fileName, // IN: Input filename + HgfsFileAttrInfo *attr) // OUT: Struct to copy into + { +- char *baseName; ++ const char *baseName; + + ASSERT(fileName); + ASSERT(attr); +diff --git a/lib/misc/strutil.c b/lib/misc/strutil.c +index 4fc6502e4..4be63b7b8 100644 +--- a/lib/misc/strutil.c ++++ b/lib/misc/strutil.c +@@ -1454,6 +1454,7 @@ StrUtil_ReplaceAll(const char *orig, // IN + char *result; + const char *current; + char *tmp; ++ const char *tmp2; + size_t lenWhat; + size_t lenWith; + size_t occurrences = 0; +@@ -1467,8 +1468,8 @@ StrUtil_ReplaceAll(const char *orig, // IN + lenWith = strlen(with); + + current = orig; +- while ((tmp = strstr(current, what)) != NULL) { +- current = tmp + lenWhat; ++ while ((tmp2 = strstr(current, what)) != NULL) { ++ current = tmp2 + lenWhat; + ++occurrences; + } + +@@ -1695,7 +1696,7 @@ StrUtilHasListItem(char const *list, // IN: + char const *item, // IN: + int (*ncmp)(char const *, char const*, size_t)) // IN: + { +- char *foundDelim; ++ const char *foundDelim; + int itemLen = strlen(item); + + if (list == NULL) { +diff --git a/lib/nicInfo/nicInfoPosix.c b/lib/nicInfo/nicInfoPosix.c +index 6f20547b2..a387e377b 100644 +--- a/lib/nicInfo/nicInfoPosix.c ++++ b/lib/nicInfo/nicInfoPosix.c +@@ -267,7 +267,7 @@ static Bool + IpEntryMatchesDevice(const char *devName, + const char *label) + { +- char *p; ++ const char *p; + size_t n; + + if ((p = strchr(label, ':')) != NULL) { +diff --git a/libvmtools/i18n.c b/libvmtools/i18n.c +index 3085f72d7..f61406d14 100644 +--- a/libvmtools/i18n.c ++++ b/libvmtools/i18n.c +@@ -698,7 +698,7 @@ VMTools_BindTextDomain(const char *domain, + * If we couldn't find the catalog file for the user's language, see if + * we can find a more generic language (e.g., for "en_US", also try "en"). + */ +- char *sep = Str_Strrchr(lang, '_'); ++ const char *sep = Str_Strrchr(lang, '_'); + if (sep != NULL) { + if (usrlang == NULL) { + usrlang = Util_SafeStrdup(lang); +diff --git a/services/plugins/vix/vixTools.c b/services/plugins/vix/vixTools.c +index b2079a10d..6a8498ffb 100644 +--- a/services/plugins/vix/vixTools.c ++++ b/services/plugins/vix/vixTools.c +@@ -925,7 +925,7 @@ VixToolsBuildUserEnvironmentTable(const char * const *envp) // IN: optional + for (; NULL != *envp; envp++) { + char *name; + char *value; +- char *whereToSplit; ++ const char *whereToSplit; + size_t nameLen; + + whereToSplit = strchr(*envp, '='); +-- +2.47.3 + diff --git a/package/openvmtools/0012-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch b/package/openvmtools/0012-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch deleted file mode 100644 index dbe2c29a2b..0000000000 --- a/package/openvmtools/0012-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 3f0580f2546de8be7acf1bc78a55a257bc638ebe Mon Sep 17 00:00:00 2001 -From: Bartosz Brachaczek <b.brachaczek@gmail.com> -Date: Tue, 12 Nov 2019 14:31:08 +0100 -Subject: [PATCH] Make HgfsConvertFromNtTimeNsec aware of 64-bit time_t on i386 - -I verified that this function behaves as expected on x86_64, i386 with -32-bit time_t, and i386 with 64-bit time_t for the following values of -ntTtime: - -UNIX_EPOCH-1, UNIX_EPOCH, UNIX_EPOCH+1, UNIX_S32_MAX-1, UNIX_S32_MAX, -UNIX_S32_MAX+1, UNIX_S32_MAX*2+1 - -I did not verify whether the use of Div643264 is optimal, performance -wise. - -Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> ---- - lib/hgfs/hgfsUtil.c | 34 +++++++++++++++++++--------------- - 1 file changed, 19 insertions(+), 15 deletions(-) - -diff --git a/lib/hgfs/hgfsUtil.c b/lib/hgfs/hgfsUtil.c -index cc580ab8..49b10040 100644 ---- a/lib/hgfs/hgfsUtil.c -+++ b/lib/hgfs/hgfsUtil.c -@@ -110,23 +110,21 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format - uint64 ntTime) // IN: Time in Windows NT format - { - #ifdef __i386__ -- uint32 sec; -- uint32 nsec; -+ uint64 sec64; -+ uint32 sec32, nsec; -+#endif - - ASSERT(unixTime); -- /* We assume that time_t is 32bit */ -- ASSERT_ON_COMPILE(sizeof (unixTime->tv_sec) == 4); - -- /* Cap NT time values that are outside of Unix time's range */ -+ if (sizeof (unixTime->tv_sec) == 4) { -+ /* Cap NT time values that are outside of Unix time's range */ - -- if (ntTime >= UNIX_S32_MAX) { -- unixTime->tv_sec = 0x7FFFFFFF; -- unixTime->tv_nsec = 0; -- return 1; -+ if (ntTime >= UNIX_S32_MAX) { -+ unixTime->tv_sec = 0x7FFFFFFF; -+ unixTime->tv_nsec = 0; -+ return 1; -+ } - } --#else -- ASSERT(unixTime); --#endif - - if (ntTime < UNIX_EPOCH) { - unixTime->tv_sec = 0; -@@ -135,9 +133,15 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format - } - - #ifdef __i386__ -- Div643232(ntTime - UNIX_EPOCH, 10000000, &sec, &nsec); -- unixTime->tv_sec = sec; -- unixTime->tv_nsec = nsec * 100; -+ if (sizeof (unixTime->tv_sec) == 4) { -+ Div643232(ntTime - UNIX_EPOCH, 10000000, &sec32, &nsec); -+ unixTime->tv_sec = sec32; -+ unixTime->tv_nsec = nsec * 100; -+ } else { -+ Div643264(ntTime - UNIX_EPOCH, 10000000, &sec64, &nsec); -+ unixTime->tv_sec = sec64; -+ unixTime->tv_nsec = nsec * 100; -+ } - #else - unixTime->tv_sec = (ntTime - UNIX_EPOCH) / 10000000; - unixTime->tv_nsec = ((ntTime - UNIX_EPOCH) % 10000000) * 100; --- -2.25.1 - diff --git a/package/openvmtools/0015-glib_stubs-avoid-GLib-g_free-macro-redefinition-error.patch b/package/openvmtools/0012-glib_stubs-avoid-GLib-g_free-macro-redefinition-erro.patch similarity index 84% rename from package/openvmtools/0015-glib_stubs-avoid-GLib-g_free-macro-redefinition-error.patch rename to package/openvmtools/0012-glib_stubs-avoid-GLib-g_free-macro-redefinition-erro.patch index 226fd5a15f..6b58002c4b 100644 --- a/package/openvmtools/0015-glib_stubs-avoid-GLib-g_free-macro-redefinition-error.patch +++ b/package/openvmtools/0012-glib_stubs-avoid-GLib-g_free-macro-redefinition-erro.patch @@ -1,4 +1,4 @@ -From bfd12cf73d81919843383598e4a9e64c6e5fd97a Mon Sep 17 00:00:00 2001 +From 34b3bfcbb8162a96b5a65a6864f736dff1ccd70b Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 21 Nov 2025 00:29:10 -0800 Subject: [PATCH] glib_stubs: avoid GLib g_free macro redefinition error @@ -9,13 +9,13 @@ inside the function signature and breaking the build. Undefine the macro before defining the stub. -Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> Upstream: https://github.com/vmware/open-vm-tools/pull/779 -Signed-off-by: John Ernberg <j@j-ernberg.se> + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- - open-vm-tools/lib/rpcChannel/glib_stubs.c | 3 +++ + lib/rpcChannel/glib_stubs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/rpcChannel/glib_stubs.c b/lib/rpcChannel/glib_stubs.c @@ -32,3 +32,6 @@ index c32deb073..cb89c6a87 100644 void g_free(void *p) { free(p); } void g_mutex_init(GMutex *mutex) { } +-- +2.47.3 + diff --git a/package/openvmtools/0013-Properly-check-authorization-on-incoming-guestOps-re.patch b/package/openvmtools/0013-Properly-check-authorization-on-incoming-guestOps-re.patch deleted file mode 100644 index c257e77504..0000000000 --- a/package/openvmtools/0013-Properly-check-authorization-on-incoming-guestOps-re.patch +++ /dev/null @@ -1,41 +0,0 @@ -From bb9f9ffbb151397545f921cee5b6a4933c6eea80 Mon Sep 17 00:00:00 2001 -Message-Id: <bb9f9ffbb151397545f921cee5b6a4933c6eea80.1666169374.git.stefan@agner.ch> -From: John Wolfe <jwolfe@vmware.com> -Date: Wed, 10 Aug 2022 06:12:02 -0700 -Subject: [PATCH] Properly check authorization on incoming guestOps requests - -Fix public pipe request checks. Only a SessionRequest type should -be accepted on the public pipe. - -CVE: CVE-2022-31676 -Upstream: https://github.com/vmware/open-vm-tools/blob/CVE-2022-31676.patch/1205-Properly-check-authorization-on-incoming-guestOps-re.patch -Signed-off-by: Stefan Agner <stefan@agner.ch> ---- - vgauth/serviceImpl/proto.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/vgauth/serviceImpl/proto.c b/vgauth/serviceImpl/proto.c -index db7159ee..c4f85b02 100644 ---- a/vgauth/serviceImpl/proto.c -+++ b/vgauth/serviceImpl/proto.c -@@ -1,5 +1,5 @@ - /********************************************************* -- * Copyright (C) 2011-2016,2019-2021 VMware, Inc. All rights reserved. -+ * Copyright (c) 2011-2016,2019-2022 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published -@@ -1201,6 +1201,10 @@ Proto_SecurityCheckRequest(ServiceConnection *conn, - VGAuthError err; - gboolean isSecure = ServiceNetworkIsConnectionPrivateSuperUser(conn); - -+ if (conn->isPublic && req->reqType != PROTO_REQUEST_SESSION_REQ) { -+ return VGAUTH_E_PERMISSION_DENIED; -+ } -+ - switch (req->reqType) { - /* - * This comes over the public connection; alwsys let it through. --- -2.38.0 - diff --git a/package/openvmtools/0014-CVE-2025-22247-1100-1225-VGAuth-updates.patch b/package/openvmtools/0014-CVE-2025-22247-1100-1225-VGAuth-updates.patch deleted file mode 100644 index 48962857ba..0000000000 --- a/package/openvmtools/0014-CVE-2025-22247-1100-1225-VGAuth-updates.patch +++ /dev/null @@ -1,383 +0,0 @@ -From 2a2607c6bd94ae22a937fd2adde7472d9a6d506c Mon Sep 17 00:00:00 2001 -From: John Wolfe <john.wolfe@broadcom.com> -Date: Mon, 5 May 2025 16:10:07 -0700 -Subject: [PATCH] Validate user names and file paths - -Prevent usage of illegal characters in user names and file paths. -Also, disallow unexpected symlinks in file paths. - -This patch contains changes to common source files not applicable -to open-vm-tools. - -All files being updated should be consider to have the copyright to -be updated to: - - * Copyright (c) XXXX-2025 Broadcom. All Rights Reserved. - * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. - -The 2025 Broadcom copyright information update is not part of this -patch set to allow the patch to be easily applied to previous -open-vm-tools source releases. - -CVE: CVE-2025-22247 -Upstream: https://github.com/vmware/blob/CVE-2025-22247.patch/CVE-2025-22247-1100-1225-VGAuth-updates.patch -Signed-off-by: Peter Korsgaard <peter@korsgaard.com> ---- - vgauth/common/VGAuthUtil.c | 33 +++++++++ - vgauth/common/VGAuthUtil.h | 2 + - vgauth/common/prefs.h | 3 + - vgauth/common/usercheck.c | 28 +++++-- - vgauth/serviceImpl/alias.c | 74 ++++++++++++++++++- - vgauth/serviceImpl/service.c | 27 +++++++ - vgauth/serviceImpl/serviceInt.h | 1 + - 7 files changed, 160 insertions(+), 8 deletions(-) - -diff --git a/vgauth/common/VGAuthUtil.c b/vgauth/common/VGAuthUtil.c -index 76383c462..9c2adb8d0 100644 ---- a/vgauth/common/VGAuthUtil.c -+++ b/vgauth/common/VGAuthUtil.c -@@ -309,3 +309,36 @@ Util_Assert(const char *cond, - #endif - g_assert(0); - } -+ -+ -+/* -+ ****************************************************************************** -+ * Util_Utf8CaseCmp -- */ /** -+ * -+ * Case insensitive comparison for utf8 strings which can have non-ascii -+ * characters. -+ * -+ * @param[in] str1 Null terminated utf8 string. -+ * @param[in] str2 Null terminated utf8 string. -+ * -+ ****************************************************************************** -+ */ -+ -+int -+Util_Utf8CaseCmp(const gchar *str1, -+ const gchar *str2) -+{ -+ int ret; -+ gchar *str1Case; -+ gchar *str2Case; -+ -+ str1Case = g_utf8_casefold(str1, -1); -+ str2Case = g_utf8_casefold(str2, -1); -+ -+ ret = g_strcmp0(str1Case, str2Case); -+ -+ g_free(str1Case); -+ g_free(str2Case); -+ -+ return ret; -+} -diff --git a/vgauth/common/VGAuthUtil.h b/vgauth/common/VGAuthUtil.h -index f7f3aa216..ef32a91da 100644 ---- a/vgauth/common/VGAuthUtil.h -+++ b/vgauth/common/VGAuthUtil.h -@@ -105,4 +105,6 @@ gboolean Util_CheckExpiration(const GTimeVal *start, unsigned int duration); - - void Util_Assert(const char *cond, const char *file, int lineNum); - -+int Util_Utf8CaseCmp(const gchar *str1, const gchar *str2); -+ - #endif -diff --git a/vgauth/common/prefs.h b/vgauth/common/prefs.h -index ff116928c..7cddb3e17 100644 ---- a/vgauth/common/prefs.h -+++ b/vgauth/common/prefs.h -@@ -165,6 +165,9 @@ msgCatalog = /etc/vmware-tools/vgauth/messages - /** Where the localized version of the messages were installed. */ - #define VGAUTH_PREF_LOCALIZATION_DIR "msgCatalog" - -+/** If symlinks or junctions are allowed in alias store file path */ -+#define VGAUTH_PREF_ALLOW_SYMLINKS "allowSymlinks" -+ - /* - * Pref values - */ -diff --git a/vgauth/common/usercheck.c b/vgauth/common/usercheck.c -index 31eeb5a77..145f1f056 100644 ---- a/vgauth/common/usercheck.c -+++ b/vgauth/common/usercheck.c -@@ -78,6 +78,8 @@ - * Solaris as well, but that path is untested. - */ - -+#define MAX_USER_NAME_LEN 256 -+ - /* - * A single retry works for the LDAP case, but try more often in case NIS - * or something else has a related issue. Note that a bad username/uid won't -@@ -354,17 +356,29 @@ Usercheck_UsernameIsLegal(const gchar *userName) - * - */ - size_t len; --#ifdef _WIN32 -- // allow '\' in for Windows domain usernames -- char *illegalChars = "<>/"; --#else -- char *illegalChars = "\\<>/"; --#endif -+ size_t i = 0; -+ int backSlashCnt = 0; -+ /* -+ * As user names are used to generate its alias store file name/path, it -+ * should not contain path traversal characters ('/' and '\'). -+ */ -+ char *illegalChars = "<>/\\"; - - len = strlen(userName); -- if (strcspn(userName, illegalChars) != len) { -+ if (len > MAX_USER_NAME_LEN) { - return FALSE; - } -+ -+ while ((i += strcspn(userName + i, illegalChars)) < len) { -+ /* -+ * One backward slash is allowed for domain\username separator. -+ */ -+ if (userName[i] != '\\' || ++backSlashCnt > 1) { -+ return FALSE; -+ } -+ ++i; -+ } -+ - return TRUE; - } - -diff --git a/vgauth/serviceImpl/alias.c b/vgauth/serviceImpl/alias.c -index b28351eea..687d1b373 100644 ---- a/vgauth/serviceImpl/alias.c -+++ b/vgauth/serviceImpl/alias.c -@@ -41,6 +41,7 @@ - #include "certverify.h" - #include "VGAuthProto.h" - #include "vmxlog.h" -+#include "VGAuthUtil.h" - - // puts the identity store in an easy to find place - #undef WIN_TEST_MODE -@@ -66,6 +67,7 @@ - #define ALIASSTORE_FILE_PREFIX "user-" - #define ALIASSTORE_FILE_SUFFIX ".xml" - -+static gboolean allowSymlinks = FALSE; - static gchar *aliasStoreRootDir = DEFAULT_ALIASSTORE_ROOT_DIR; - - #ifdef _WIN32 -@@ -252,6 +254,12 @@ mapping file layout: - - */ - -+#ifdef _WIN32 -+#define ISPATHSEP(c) ((c) == '\\' || (c) == '/') -+#else -+#define ISPATHSEP(c) ((c) == '/') -+#endif -+ - - /* - ****************************************************************************** -@@ -466,6 +474,7 @@ ServiceLoadFileContentsWin(const gchar *fileName, - gunichar2 *fileNameW = NULL; - BOOL ok; - DWORD bytesRead; -+ gchar *realPath = NULL; - - *fileSize = 0; - *contents = NULL; -@@ -622,6 +631,22 @@ ServiceLoadFileContentsWin(const gchar *fileName, - goto done; - } - -+ if (!allowSymlinks) { -+ /* -+ * Check if fileName is real path. -+ */ -+ if ((realPath = ServiceFileGetPathByHandle(hFile)) == NULL) { -+ err = VGAUTH_E_FAIL; -+ goto done; -+ } -+ if (Util_Utf8CaseCmp(realPath, fileName) != 0) { -+ Warning("%s: Real path (%s) is not same as file path (%s)\n", -+ __FUNCTION__, realPath, fileName); -+ err = VGAUTH_E_FAIL; -+ goto done; -+ } -+ } -+ - /* - * Now finally read the contents. - */ -@@ -650,6 +675,7 @@ done: - CloseHandle(hFile); - } - g_free(fileNameW); -+ g_free(realPath); - - return err; - } -@@ -672,6 +698,7 @@ ServiceLoadFileContentsPosix(const gchar *fileName, - gchar *buf; - gchar *bp; - int fd = -1; -+ gchar realPath[PATH_MAX] = { 0 }; - - *fileSize = 0; - *contents = NULL; -@@ -817,6 +844,23 @@ ServiceLoadFileContentsPosix(const gchar *fileName, - goto done; - } - -+ if (!allowSymlinks) { -+ /* -+ * Check if fileName is real path. -+ */ -+ if (realpath(fileName, realPath) == NULL) { -+ Warning("%s: realpath() failed. errno (%d)\n", __FUNCTION__, errno); -+ err = VGAUTH_E_FAIL; -+ goto done; -+ } -+ if (g_strcmp0(realPath, fileName) != 0) { -+ Warning("%s: Real path (%s) is not same as file path (%s)\n", -+ __FUNCTION__, realPath, fileName); -+ err = VGAUTH_E_FAIL; -+ goto done; -+ } -+ } -+ - /* - * All sanity checks passed; read the bits. - */ -@@ -2803,8 +2847,13 @@ ServiceAliasRemoveAlias(const gchar *reqUserName, - - /* - * We don't verify the user exists in a Remove operation, to allow -- * cleanup of deleted user's stores. -+ * cleanup of deleted user's stores, but we do check whether the -+ * user name is legal or not. - */ -+ if (!Usercheck_UsernameIsLegal(userName)) { -+ Warning("%s: Illegal user name '%s'\n", __FUNCTION__, userName); -+ return VGAUTH_E_FAIL; -+ } - - if (!CertVerify_IsWellFormedPEMCert(pemCert)) { - return VGAUTH_E_INVALID_CERTIFICATE; -@@ -3036,6 +3085,16 @@ ServiceAliasQueryAliases(const gchar *userName, - } - #endif - -+ /* -+ * We don't verify the user exists in a Query operation to allow -+ * cleaning up after a deleted user, but we do check whether the -+ * user name is legal or not. -+ */ -+ if (!Usercheck_UsernameIsLegal(userName)) { -+ Warning("%s: Illegal user name '%s'\n", __FUNCTION__, userName); -+ return VGAUTH_E_FAIL; -+ } -+ - err = AliasLoadAliases(userName, num, aList); - if (VGAUTH_E_OK != err) { - Warning("%s: failed to load Aliases for '%s'\n", __FUNCTION__, userName); -@@ -3294,6 +3353,7 @@ ServiceAliasInitAliasStore(void) - VGAuthError err = VGAUTH_E_OK; - gboolean saveBadDir = FALSE; - char *defaultDir = NULL; -+ size_t len; - - #ifdef _WIN32 - { -@@ -3324,6 +3384,10 @@ ServiceAliasInitAliasStore(void) - defaultDir = g_strdup(DEFAULT_ALIASSTORE_ROOT_DIR); - #endif - -+ allowSymlinks = Pref_GetBool(gPrefs, -+ VGAUTH_PREF_ALLOW_SYMLINKS, -+ VGAUTH_PREF_GROUP_NAME_SERVICE, -+ FALSE); - /* - * Find the alias store directory. This allows an installer to put - * it somewhere else if necessary. -@@ -3337,6 +3401,14 @@ ServiceAliasInitAliasStore(void) - VGAUTH_PREF_GROUP_NAME_SERVICE, - defaultDir); - -+ /* -+ * Remove the trailing separator if any from aliasStoreRootDir path. -+ */ -+ len = strlen(aliasStoreRootDir); -+ if (ISPATHSEP(aliasStoreRootDir[len - 1])) { -+ aliasStoreRootDir[len - 1] = '\0'; -+ } -+ - Log("Using '%s' for alias store root directory\n", aliasStoreRootDir); - - g_free(defaultDir); -diff --git a/vgauth/serviceImpl/service.c b/vgauth/serviceImpl/service.c -index d4716526c..e053ed0fa 100644 ---- a/vgauth/serviceImpl/service.c -+++ b/vgauth/serviceImpl/service.c -@@ -28,6 +28,7 @@ - #include "VGAuthUtil.h" - #ifdef _WIN32 - #include "winUtil.h" -+#include <glib.h> - #endif - - static ServiceStartListeningForIOFunc startListeningIOFunc = NULL; -@@ -283,9 +284,35 @@ static gchar * - ServiceUserNameToPipeName(const char *userName) - { - gchar *escapedName = ServiceEncodeUserName(userName); -+#ifdef _WIN32 -+ /* -+ * Adding below pragma only in windows to suppress the compile time warning -+ * about unavailability of g_uuid_string_random() since compiler flag -+ * GLIB_VERSION_MAX_ALLOWED is defined to GLIB_VERSION_2_34. -+ * TODO: Remove below pragma when GLIB_VERSION_MAX_ALLOWED is bumped up to -+ * or greater than GLIB_VERSION_2_52. -+ */ -+#pragma warning(suppress : 4996) -+ gchar *uuidStr = g_uuid_string_random(); -+ /* -+ * Add a unique suffix to avoid a name collision with an existing named pipe -+ * created by someone else (intentionally or by accident). -+ * This is not needed for Linux; name collisions on sockets are already -+ * avoided there since (1) file system paths to VGAuthService sockets are in -+ * a directory that is writable only by root and (2) VGAuthService unlinks a -+ * socket path before binding it to a newly created socket. -+ */ -+ gchar *pipeName = g_strdup_printf("%s-%s-%s", -+ SERVICE_PUBLIC_PIPE_NAME, -+ escapedName, -+ uuidStr); -+ -+ g_free(uuidStr); -+#else - gchar *pipeName = g_strdup_printf("%s-%s", - SERVICE_PUBLIC_PIPE_NAME, - escapedName); -+#endif - - g_free(escapedName); - return pipeName; -diff --git a/vgauth/serviceImpl/serviceInt.h b/vgauth/serviceImpl/serviceInt.h -index ef49f42c2..c37f42fa6 100644 ---- a/vgauth/serviceImpl/serviceInt.h -+++ b/vgauth/serviceImpl/serviceInt.h -@@ -441,6 +441,7 @@ VGAuthError ServiceFileVerifyAdminGroupOwnedByHandle(const HANDLE hFile); - VGAuthError ServiceFileVerifyEveryoneReadableByHandle(const HANDLE hFile); - VGAuthError ServiceFileVerifyUserAccessByHandle(const HANDLE hFile, - const char *userName); -+gchar *ServiceFileGetPathByHandle(HANDLE hFile); - #else - VGAuthError ServiceFileVerifyFileOwnerAndPerms(const char *fileName, - const char *userName, --- -2.43.5 - diff --git a/package/openvmtools/openvmtools.hash b/package/openvmtools/openvmtools.hash index 081538fbf3..a3532c6a02 100644 --- a/package/openvmtools/openvmtools.hash +++ b/package/openvmtools/openvmtools.hash @@ -1,3 +1,4 @@ +# From https://github.com/vmware/open-vm-tools/releases/tag/stable-13.1.0 +sha256 67a23d505aca77127b081445f758e269b1009e8824cf7f6f2d6efafb0b14d0fd open-vm-tools-13.1.0-25218885.tar.gz # locally computed -sha256 2053daf7b224ab7ae1a9cfcd6ae12494c646e2bf9aaca998225bd082a4a43fb7 open-vm-tools-11.3.5-18557794.tar.gz sha256 f734933bd7d49aef25aaf897ed7281ee822e8635056e69b895a7d2e668937fc5 COPYING diff --git a/package/openvmtools/openvmtools.mk b/package/openvmtools/openvmtools.mk index 58876c877a..97e1c2f9ee 100644 --- a/package/openvmtools/openvmtools.mk +++ b/package/openvmtools/openvmtools.mk @@ -4,8 +4,8 @@ # ################################################################################ -OPENVMTOOLS_VERSION_MAJOR = 11.3.5 -OPENVMTOOLS_VERSION = $(OPENVMTOOLS_VERSION_MAJOR)-18557794 +OPENVMTOOLS_VERSION_MAJOR = 13.1.0 +OPENVMTOOLS_VERSION = $(OPENVMTOOLS_VERSION_MAJOR)-25218885 OPENVMTOOLS_SITE = https://github.com/vmware/open-vm-tools/releases/download/stable-$(OPENVMTOOLS_VERSION_MAJOR) OPENVMTOOLS_SOURCE = open-vm-tools-$(OPENVMTOOLS_VERSION).tar.gz OPENVMTOOLS_LICENSE = LGPL-2.1 @@ -17,18 +17,13 @@ OPENVMTOOLS_CPE_ID_PRODUCT = tools # previously connected to this CVE ID because of a typo, is at CVE-2022-31693 OPENVMTOOLS_IGNORE_CVES += CVE-2021-31693 -# 0013-Properly-check-authorization-on-incoming-guestOps-re.patch -OPENVMTOOLS_IGNORE_CVES += CVE-2022-31676 - -# 0014-CVE-2025-22247-1100-1225-VGAuth-updates.patch -OPENVMTOOLS_IGNORE_CVES += CVE-2025-22247 - # configure.ac is patched OPENVMTOOLS_AUTORECONF = YES OPENVMTOOLS_CONF_OPTS = --with-dnet \ --without-icu --without-x --without-gtk2 \ --without-gtkmm --without-kernel-modules \ - --disable-deploypkg --without-xerces + --disable-deploypkg --without-xerces \ + --disable-vgauth --disable-containerinfo OPENVMTOOLS_CONF_ENV += \ CUSTOM_DNET_CPPFLAGS=" " \ LIBS=$(TARGET_NLS_LIBS) @@ -39,7 +34,10 @@ OPENVMTOOLS_DEPENDENCIES = \ $(TARGET_NLS_DEPENDENCIES) ifeq ($(BR2_PACKAGE_LIBTIRPC),y) +OPENVMTOOLS_CONF_OPTS += --with-tirpc OPENVMTOOLS_DEPENDENCIES += libtirpc +else +OPENVMTOOLS_CONF_OPTS += --without-tirpc endif ifeq ($(BR2_PACKAGE_LIBXCRYPT),y) @@ -48,7 +46,11 @@ endif # When libfuse is available, openvmtools can build vmblock-fuse, so # make sure that libfuse gets built first -ifeq ($(BR2_PACKAGE_LIBFUSE),y) +ifeq ($(BR2_PACKAGE_LIBFUSE3),y) +OPENVMTOOLS_CONF_OPTS += --with-fuse=fuse3 +OPENVMTOOLS_DEPENDENCIES += libfuse3 +else ifeq ($(BR2_PACKAGE_LIBFUSE),y) +OPENVMTOOLS_CONF_OPTS += --with-fuse=fuse OPENVMTOOLS_DEPENDENCIES += libfuse endif -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 23/77] package/poco: convert to CMake package 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (21 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 22/77] package/openvmtools: bump version to 13.1.0 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 24/77] package/poco: bump version to 1.15.3 Bernd Kuhls ` (53 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark From: Yegor Yefremov <yegorslists@googlemail.com> Currently when building with make, the cmake config files are not generated. This leads to problems when integrating the package in an application built with cmake. The CMake build system links the PDF component against the system libpng when POCO_UNBUNDLED is enabled, while the legacy make build system always used the bundled copy, so select libpng for the PDF component. POCO_NO_FPENVIRONMENT and POCO_NO_WSTRING are plain preprocessor defines rather than CMake options, so pass them through CMAKE_CXX_FLAGS. Poco is built as a set of shared libraries, so -latomic has to be passed via CMAKE_SHARED_LINKER_FLAGS as well. Disable File2Page along with PageCompiler, and tie the ActiveRecord compiler to the ActiveRecord component, to match what the legacy make build system omitted. This patch is based on this one: https://lists.buildroot.org/pipermail/buildroot/2026-April/801019.html Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> Assisted-by: Claude:claude-opus-5 Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/poco/Config.in | 1 + package/poco/poco.mk | 98 +++++++++++++++++------------------------- 2 files changed, 40 insertions(+), 59 deletions(-) diff --git a/package/poco/Config.in b/package/poco/Config.in index 4801b36a24..b0eeaa1dd8 100644 --- a/package/poco/Config.in +++ b/package/poco/Config.in @@ -94,6 +94,7 @@ config BR2_PACKAGE_POCO_NETSSL_OPENSSL config BR2_PACKAGE_POCO_PDF bool "PDF" + select BR2_PACKAGE_LIBPNG select BR2_PACKAGE_POCO_JSON select BR2_PACKAGE_POCO_UTIL select BR2_PACKAGE_POCO_XML diff --git a/package/poco/poco.mk b/package/poco/poco.mk index 40dcc1c502..63279d530e 100644 --- a/package/poco/poco.mk +++ b/package/poco/poco.mk @@ -22,80 +22,60 @@ POCO_DEPENDENCIES = \ $(if $(BR2_PACKAGE_POCO_DATA_SQLITE),sqlite) \ $(if $(BR2_PACKAGE_POCO_DATA_PGSQL),postgresql) \ $(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),openssl) \ + $(if $(BR2_PACKAGE_POCO_PDF),libpng) \ $(if $(BR2_PACKAGE_POCO_XML),expat) -POCO_OMIT = \ - Data/ODBC \ - PageCompiler \ - $(if $(BR2_PACKAGE_POCO_ACTIVERECORD),,ActiveRecord) \ - $(if $(BR2_PACKAGE_POCO_CPP_PARSER),,CppParser) \ - $(if $(BR2_PACKAGE_POCO_CRYPTO),,Crypto) \ - $(if $(BR2_PACKAGE_POCO_DATA),,Data) \ - $(if $(BR2_PACKAGE_POCO_DATA_MYSQL),,Data/MySQL) \ - $(if $(BR2_PACKAGE_POCO_DATA_SQLITE),,Data/SQLite) \ - $(if $(BR2_PACKAGE_POCO_DATA_PGSQL),,Data/PostgreSQL) \ - $(if $(BR2_PACKAGE_POCO_JSON),,JSON) \ - $(if $(BR2_PACKAGE_POCO_JWT),,JWT) \ - $(if $(BR2_PACKAGE_POCO_MONGODB),,MongoDB) \ - $(if $(BR2_PACKAGE_POCO_NET),,Net) \ - $(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),,NetSSL_OpenSSL) \ - $(if $(BR2_PACKAGE_POCO_PDF),,PDF) \ - $(if $(BR2_PACKAGE_POCO_PROMETHEUS),,Prometheus) \ - $(if $(BR2_PACKAGE_POCO_REDIS),,Redis) \ - $(if $(BR2_PACKAGE_POCO_UTIL),,Util) \ - $(if $(BR2_PACKAGE_POCO_XML),,XML) \ - $(if $(BR2_PACKAGE_POCO_ZIP),,Zip) +# PageCompiler and File2Page are code generators that are of no use on +# the target, and ODBC support is not wired up in Buildroot. +POCO_CONF_OPTS = \ + -DENABLE_DATA_ODBC=OFF \ + -DENABLE_PAGECOMPILER=OFF \ + -DENABLE_PAGECOMPILER_FILE2PAGE=OFF \ + -DENABLE_ACTIVERECORD=$(if $(BR2_PACKAGE_POCO_ACTIVERECORD),ON,OFF) \ + -DENABLE_ACTIVERECORD_COMPILER=$(if $(BR2_PACKAGE_POCO_ACTIVERECORD),ON,OFF) \ + -DENABLE_CPPPARSER=$(if $(BR2_PACKAGE_POCO_CPP_PARSER),ON,OFF) \ + -DENABLE_CRYPTO=$(if $(BR2_PACKAGE_POCO_CRYPTO),ON,OFF) \ + -DENABLE_DATA=$(if $(BR2_PACKAGE_POCO_DATA),ON,OFF) \ + -DENABLE_DATA_MYSQL=$(if $(BR2_PACKAGE_POCO_DATA_MYSQL),ON,OFF) \ + -DENABLE_DATA_SQLITE=$(if $(BR2_PACKAGE_POCO_DATA_SQLITE),ON,OFF) \ + -DENABLE_DATA_POSTGRESQL=$(if $(BR2_PACKAGE_POCO_DATA_PGSQL),ON,OFF) \ + -DENABLE_JSON=$(if $(BR2_PACKAGE_POCO_JSON),ON,OFF) \ + -DENABLE_JWT=$(if $(BR2_PACKAGE_POCO_JWT),ON,OFF) \ + -DENABLE_MONGODB=$(if $(BR2_PACKAGE_POCO_MONGODB),ON,OFF) \ + -DENABLE_NET=$(if $(BR2_PACKAGE_POCO_NET),ON,OFF) \ + -DENABLE_NETSSL=$(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),ON,OFF) \ + -DENABLE_PDF=$(if $(BR2_PACKAGE_POCO_PDF),ON,OFF) \ + -DENABLE_PROMETHEUS=$(if $(BR2_PACKAGE_POCO_PROMETHEUS),ON,OFF) \ + -DENABLE_REDIS=$(if $(BR2_PACKAGE_POCO_REDIS),ON,OFF) \ + -DENABLE_UTIL=$(if $(BR2_PACKAGE_POCO_UTIL),ON,OFF) \ + -DENABLE_XML=$(if $(BR2_PACKAGE_POCO_XML),ON,OFF) \ + -DENABLE_ZIP=$(if $(BR2_PACKAGE_POCO_ZIP),ON,OFF) \ + -DPOCO_UNBUNDLED=ON + +# POCO_NO_FPENVIRONMENT and POCO_NO_WSTRING are plain preprocessor +# defines, not CMake options, so they have to be passed as compiler flags. +POCO_CXXFLAGS = $(TARGET_CXXFLAGS) ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) -POCO_CONF_OPTS += --no-fpenvironment --no-wstring +POCO_CXXFLAGS += -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING endif # architectures missing some FE_* in their fenv.h ifeq ($(BR2_sh4a),y) -POCO_CONF_OPTS += --no-fpenvironment +POCO_CXXFLAGS += -DPOCO_NO_FPENVIRONMENT endif # disable fpenvironment for soft floating point configuration ifeq ($(BR2_SOFT_FLOAT),y) -POCO_CONF_OPTS += --no-fpenvironment +POCO_CXXFLAGS += -DPOCO_NO_FPENVIRONMENT endif -POCO_MAKE_TARGET = shared_release +POCO_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(POCO_CXXFLAGS)" -POCO_LDFLAGS=$(TARGET_LDFLAGS) ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) -POCO_LDFLAGS += -latomic +POCO_CONF_OPTS += \ + -DCMAKE_EXE_LINKER_FLAGS=-latomic \ + -DCMAKE_SHARED_LINKER_FLAGS=-latomic endif -define POCO_CONFIGURE_CMDS - (cd $(@D); $(TARGET_MAKE_ENV) ./configure \ - --config=Linux \ - --prefix=/usr \ - --ldflags="$(POCO_LDFLAGS)" \ - --omit="$(POCO_OMIT)" \ - $(POCO_CONF_OPTS) \ - --unbundled \ - --no-tests \ - --no-samples) -endef - -define POCO_BUILD_CMDS - $(TARGET_MAKE_ENV) $(MAKE) POCO_TARGET_OSARCH=$(ARCH) CROSS_COMPILE=$(TARGET_CROSS) \ - POCO_MYSQL_INCLUDE=$(STAGING_DIR)/usr/include/mysql \ - POCO_MYSQL_LIB=$(STAGING_DIR)/usr/lib/mysql \ - POCO_PGSQL_INCLUDE=$(STAGING_DIR)/usr/include/postgresql \ - POCO_PGSQL_LIB=$(STAGING_DIR)/usr/lib/postgresql \ - DEFAULT_TARGET=$(POCO_MAKE_TARGET) -C $(@D) -endef - -define POCO_INSTALL_STAGING_CMDS - $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(STAGING_DIR) POCO_TARGET_OSARCH=$(ARCH) \ - DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D) -endef - -define POCO_INSTALL_TARGET_CMDS - $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) POCO_TARGET_OSARCH=$(ARCH) \ - DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D) -endef - -$(eval $(generic-package)) +$(eval $(cmake-package)) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 24/77] package/poco: bump version to 1.15.3 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (22 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 23/77] package/poco: convert to CMake package Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 25/77] package/qt6: security bump version to 6.11.2 Bernd Kuhls ` (52 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark https://github.com/pocoproject/poco/blob/poco-1.15.3-release/CHANGELOG Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/poco/poco.hash | 2 +- package/poco/poco.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/poco/poco.hash b/package/poco/poco.hash index 6979a9a1e4..4c132f9742 100644 --- a/package/poco/poco.hash +++ b/package/poco/poco.hash @@ -1,3 +1,3 @@ # Locally computed -sha256 47394ea7ddb7b0a40e1a5be896f8f5dc77cfdc4f561d2e7131ecf582df5a0c3a poco-1.14.2.tar.gz +sha256 4f112fea59e0c65f0fffe30a4957f8d66cf41528c21dd9903e6d7550022c794e poco-1.15.3.tar.gz sha256 c4b1e1e5f36d8331737231fefcc30f5714326aec7c387ad59a8115eb0ba7d6b5 LICENSE diff --git a/package/poco/poco.mk b/package/poco/poco.mk index 63279d530e..7e2a9014bd 100644 --- a/package/poco/poco.mk +++ b/package/poco/poco.mk @@ -4,7 +4,7 @@ # ################################################################################ -POCO_VERSION = 1.14.2 +POCO_VERSION = 1.15.3 POCO_SITE = $(call github,pocoproject,poco,poco-$(POCO_VERSION)-release) POCO_LICENSE = BSL-1.0 POCO_LICENSE_FILES = LICENSE -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 25/77] package/qt6: security bump version to 6.11.2 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (23 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 24/77] package/poco: bump version to 1.15.3 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 26/77] package/daq3: bump version to 3.0.27 Bernd Kuhls ` (51 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.11.2/release-note.md Security fixes: CVE-2026-16762 in qtbase CVE-2026-19248 in qtbase CVE-2026-13326 in qtconnectivity CVE-2026-8168 in qtsvg Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/qt6/qt6.mk | 2 +- ...e.cpp-remove-is_always_lock_free-sta.patch | 41 ------------------- package/qt6/qt6base/qt6base.hash | 4 +- package/qt6/qt6charts/qt6charts.hash | 4 +- .../qt6/qt6core5compat/qt6core5compat.hash | 4 +- .../qt6/qt6declarative/qt6declarative.hash | 4 +- package/qt6/qt6graphs/qt6graphs.hash | 4 +- package/qt6/qt6grpc/qt6grpc.hash | 4 +- .../qt6languageserver/qt6languageserver.hash | 4 +- package/qt6/qt6mqtt/qt6mqtt.hash | 2 +- package/qt6/qt6multimedia/qt6multimedia.hash | 4 +- package/qt6/qt6opcua/qt6opcua.hash | 2 +- .../qt6/qt6positioning/qt6positioning.hash | 4 +- package/qt6/qt6quick3d/qt6quick3d.hash | 4 +- .../qt6quicktimeline/qt6quicktimeline.hash | 4 +- package/qt6/qt6scxml/qt6scxml.hash | 4 +- package/qt6/qt6serialbus/qt6serialbus.hash | 4 +- package/qt6/qt6serialport/qt6serialport.hash | 4 +- .../qt6/qt6shadertools/qt6shadertools.hash | 4 +- package/qt6/qt6svg/qt6svg.hash | 4 +- package/qt6/qt6tools/qt6tools.hash | 4 +- .../qt6virtualkeyboard.hash | 4 +- package/qt6/qt6wayland/qt6wayland.hash | 4 +- package/qt6/qt6websockets/qt6websockets.hash | 4 +- 24 files changed, 43 insertions(+), 84 deletions(-) delete mode 100644 package/qt6/qt6base/0001-qtestsupport_core.cpp-remove-is_always_lock_free-sta.patch diff --git a/package/qt6/qt6.mk b/package/qt6/qt6.mk index f56a9ff1fa..cff9f5fbc7 100644 --- a/package/qt6/qt6.mk +++ b/package/qt6/qt6.mk @@ -5,7 +5,7 @@ ################################################################################ QT6_VERSION_MAJOR = 6.11 -QT6_VERSION = $(QT6_VERSION_MAJOR).1 +QT6_VERSION = $(QT6_VERSION_MAJOR).2 QT6_SOURCE_TARBALL_PREFIX = everywhere-src QT6_SITE = https://download.qt.io/archive/qt/$(QT6_VERSION_MAJOR)/$(QT6_VERSION)/submodules diff --git a/package/qt6/qt6base/0001-qtestsupport_core.cpp-remove-is_always_lock_free-sta.patch b/package/qt6/qt6base/0001-qtestsupport_core.cpp-remove-is_always_lock_free-sta.patch deleted file mode 100644 index 3347caa8da..0000000000 --- a/package/qt6/qt6base/0001-qtestsupport_core.cpp-remove-is_always_lock_free-sta.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 2983318421d623c6c9feff95ff947ca489f4313d Mon Sep 17 00:00:00 2001 -From: Mitch Curtis <mitch.curtis@qt.io> -Date: Mon, 11 May 2026 08:41:08 +0800 -Subject: [PATCH] qtestsupport_core.cpp: remove is_always_lock_free - static_assert - -This causes a build failure when cross-compiling Qt for MIPS32 targets -(e.g. `mips-unknown-linux-musl`, `mipsel-unknown-linux-musl`). - -Amends 9b938823776865837901f29082301f5624ac2b04. - -Fixes: QTBUG-146670 -Change-Id: I170bd9f93c1ef809f56e5b36835e457bbbe8e16c -Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> -Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> - -Upstream: https://github.com/qt/qtbase/commit/2983318421d623c6c9feff95ff947ca489f4313d -[Romain: backport to 6.11.1] -Signed-off-by: Romain Naour <romain.naour@smile.fr> ---- - src/corelib/kernel/qtestsupport_core.cpp | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/src/corelib/kernel/qtestsupport_core.cpp b/src/corelib/kernel/qtestsupport_core.cpp -index 9bbe1c18e84..5f28cedec68 100644 ---- a/src/corelib/kernel/qtestsupport_core.cpp -+++ b/src/corelib/kernel/qtestsupport_core.cpp -@@ -8,10 +8,6 @@ - - using namespace std::chrono_literals; - --// Assert that this instantiation of std::atomic is always lock-free so we --// know that no code will execute on destruction. --static_assert(std::atomic<std::chrono::milliseconds>::is_always_lock_free); -- - QT_BEGIN_NAMESPACE - - // ### Qt 7: reduce the default: QTBUG-138160 --- -2.55.0 - diff --git a/package/qt6/qt6base/qt6base.hash b/package/qt6/qt6base/qt6base.hash index 40e42682e0..d7d0d536a3 100644 --- a/package/qt6/qt6base/qt6base.hash +++ b/package/qt6/qt6base/qt6base.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtbase-everywhere-src-6.11.1.tar.xz.sha256 -sha256 d9594a31228aa23ad6b531719a29b45f0f3989fe6c136d45767ea179f233c1ac qtbase-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtbase-everywhere-src-6.11.2.tar.xz.sha256 +sha256 5b2e00eccaf5a4d8c14134ffa0ea8dfd0a35ae1ffc7f8d87fa4305a1ed23cf22 qtbase-everywhere-src-6.11.2.tar.xz # Hashes for license files sha256 e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb LICENSES/Apache-2.0.txt diff --git a/package/qt6/qt6charts/qt6charts.hash b/package/qt6/qt6charts/qt6charts.hash index 0c816b1709..b5b9eac42d 100644 --- a/package/qt6/qt6charts/qt6charts.hash +++ b/package/qt6/qt6charts/qt6charts.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtcharts-everywhere-src-6.11.1.tar.xz.sha256 -sha256 3fe3ed318c2a86d1417c5c29cf7494275e8fd4b537cd37453f5599c57365515c qtcharts-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtcharts-everywhere-src-6.11.2.tar.xz.sha256 +sha256 5069e53b81d125509e937c6379cba6d664c562d5a1e5ed28dd383690d4b6fb29 qtcharts-everywhere-src-6.11.2.tar.xz # Hashes for license files sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSES/GPL-3.0-only.txt diff --git a/package/qt6/qt6core5compat/qt6core5compat.hash b/package/qt6/qt6core5compat/qt6core5compat.hash index 8be1c65e45..ae2c040d94 100644 --- a/package/qt6/qt6core5compat/qt6core5compat.hash +++ b/package/qt6/qt6core5compat/qt6core5compat.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qt5compat-everywhere-src-6.11.1.tar.xz.sha256 -sha256 cfcb9fdaa051aad54b0e61b24ac5693b4887a86e07609f665fea67328a6f161b qt5compat-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qt5compat-everywhere-src-6.11.2.tar.xz.sha256 +sha256 68c320fe3391096a9f2d870170edf1b67dac8af1d0e51c0c9e5343807f114287 qt5compat-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6declarative/qt6declarative.hash b/package/qt6/qt6declarative/qt6declarative.hash index 8245f357d2..0d4f8d3a78 100644 --- a/package/qt6/qt6declarative/qt6declarative.hash +++ b/package/qt6/qt6declarative/qt6declarative.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtdeclarative-everywhere-src-6.11.1.tar.xz.sha256 -sha256 52e670f670b0304f534b24f98c47ceb8a41bb710464414ebc9527ec71cc86aa4 qtdeclarative-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtdeclarative-everywhere-src-6.11.2.tar.xz.sha256 +sha256 215b7b70517e380123eabc6b92243f3c47b6f016a91d126057dbe53551c6b430 qtdeclarative-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6graphs/qt6graphs.hash b/package/qt6/qt6graphs/qt6graphs.hash index db80fb6dde..9cf6314aeb 100644 --- a/package/qt6/qt6graphs/qt6graphs.hash +++ b/package/qt6/qt6graphs/qt6graphs.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtgraphs-everywhere-src-6.11.1.tar.xz.sha256 -sha256 84b1138ab68a8e2956439895a4b85eb68dda48ac169da673f67191873b1e0462 qtgraphs-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtgraphs-everywhere-src-6.11.2.tar.xz.sha256 +sha256 9f2109854afa45dd144116c11461989c411a17065c63da5068441a1200fb8b21 qtgraphs-everywhere-src-6.11.2.tar.xz # Hashes for license files sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSES/GPL-3.0-only.txt diff --git a/package/qt6/qt6grpc/qt6grpc.hash b/package/qt6/qt6grpc/qt6grpc.hash index 5ef08e8bb4..196e4b70ce 100644 --- a/package/qt6/qt6grpc/qt6grpc.hash +++ b/package/qt6/qt6grpc/qt6grpc.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtgrpc-everywhere-src-6.11.1.tar.xz.sha256 -sha256 437b04f0c550ccdb1739ca5f9119b73dfa0376564815e8bfc199890643e2a250 qtgrpc-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtgrpc-everywhere-src-6.11.2.tar.xz.sha256 +sha256 44414617f0058ff34965fa852027bfcc7e4f71eefca8cd4406c96af22c64ad93 qtgrpc-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb LICENSE.Apache-2.0.txt diff --git a/package/qt6/qt6languageserver/qt6languageserver.hash b/package/qt6/qt6languageserver/qt6languageserver.hash index 2e7348b34f..1ac5820a51 100644 --- a/package/qt6/qt6languageserver/qt6languageserver.hash +++ b/package/qt6/qt6languageserver/qt6languageserver.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtlanguageserver-everywhere-src-6.11.1.tar.xz.sha256 -sha256 50008537f2ca54abb3b8dc3f26759864e9cad2b2ad39e92e42fa718de2dd8aef qtlanguageserver-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtlanguageserver-everywhere-src-6.11.2.tar.xz.sha256 +sha256 38bc4272ecf4ca0eb1927227053e52be6b2e05733f46d03422306aace511fc5e qtlanguageserver-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6mqtt/qt6mqtt.hash b/package/qt6/qt6mqtt/qt6mqtt.hash index 178c69a6d3..521b4339d4 100644 --- a/package/qt6/qt6mqtt/qt6mqtt.hash +++ b/package/qt6/qt6mqtt/qt6mqtt.hash @@ -1,5 +1,5 @@ # Locally computed -sha256 3714255cb7bd3481b762a9ffd860f43e3180e8a069beb528338bf42799e29ea4 qt6mqtt-6.11.1-git4.tar.gz +sha256 39551cf7452bc8df60c6d0fd6f0101351c286b9754030f290b258077e7852d83 qt6mqtt-6.11.2-git4.tar.gz # Hashes for license files sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6multimedia/qt6multimedia.hash b/package/qt6/qt6multimedia/qt6multimedia.hash index 49e30de6c9..5aa64bbf6a 100644 --- a/package/qt6/qt6multimedia/qt6multimedia.hash +++ b/package/qt6/qt6multimedia/qt6multimedia.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtmultimedia-everywhere-src-6.11.1.tar.xz.sha256 -sha256 390f8e52ddee3aca5c4de7eead900c84c4fa61ff6d1f0ebea9c7543365c09b0a qtmultimedia-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtmultimedia-everywhere-src-6.11.2.tar.xz.sha256 +sha256 967b5e02ec6b793cdb360622cd6e703132836af983208d678dae4b50f109cd9f qtmultimedia-everywhere-src-6.11.2.tar.xz # Hashes for license files sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6opcua/qt6opcua.hash b/package/qt6/qt6opcua/qt6opcua.hash index 45675cc5d1..e05212eaa8 100644 --- a/package/qt6/qt6opcua/qt6opcua.hash +++ b/package/qt6/qt6opcua/qt6opcua.hash @@ -1,5 +1,5 @@ # Locally computed -sha256 19f41f945910bd4bef03f7a57d9e5365d1f8b52e7fe8e226922aeec477322aa0 qt6opcua-6.11.1-git4.tar.gz +sha256 41982d99b93bfde68f9ee5997376cd64f62d0e7cdca1a08e582a034840528ca1 qt6opcua-6.11.2-git4.tar.gz # Hashes for license files sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6positioning/qt6positioning.hash b/package/qt6/qt6positioning/qt6positioning.hash index b9453d255b..84e727052c 100644 --- a/package/qt6/qt6positioning/qt6positioning.hash +++ b/package/qt6/qt6positioning/qt6positioning.hash @@ -1,5 +1,5 @@ -# From https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtpositioning-everywhere-src-6.11.1.tar.xz.sha256 -sha256 d5e6b91801ae286e7630016caea3bdc5e1978b4291d6741d0d64c125650f78f5 qtpositioning-everywhere-src-6.11.1.tar.xz +# From https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtpositioning-everywhere-src-6.11.2.tar.xz.sha256 +sha256 d8cf15ad43a3b1520adac64cec5900028525cf75f01a4c82a0002e7ac1ae7499 qtpositioning-everywhere-src-6.11.2.tar.xz # Hashes for license files sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSES/GPL-2.0-only.txt diff --git a/package/qt6/qt6quick3d/qt6quick3d.hash b/package/qt6/qt6quick3d/qt6quick3d.hash index 008bda6a22..01f49f2458 100644 --- a/package/qt6/qt6quick3d/qt6quick3d.hash +++ b/package/qt6/qt6quick3d/qt6quick3d.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtquick3d-everywhere-src-6.11.1.tar.xz.sha256 -sha256 c76b85de3f8aa2a4bee64987acfef560675c1b378b92076c7c6264613e5b456f qtquick3d-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtquick3d-everywhere-src-6.11.2.tar.xz.sha256 +sha256 3ab8e1f08edb26373a37cf9d42c23e7d092c1334566b953fbb51cb1b936737b4 qtquick3d-everywhere-src-6.11.2.tar.xz # Hashes for license files sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6quicktimeline/qt6quicktimeline.hash b/package/qt6/qt6quicktimeline/qt6quicktimeline.hash index 233f80cbfa..d239f95eb8 100644 --- a/package/qt6/qt6quicktimeline/qt6quicktimeline.hash +++ b/package/qt6/qt6quicktimeline/qt6quicktimeline.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtquicktimeline-everywhere-src-6.11.1.tar.xz.sha256 -sha256 af53f643fd9e4045e1b9ba919998e5c048ca877452c08036c9c8c5ee07ea8c27 qtquicktimeline-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtquicktimeline-everywhere-src-6.11.2.tar.xz.sha256 +sha256 250af10500a0c4045dde74e107448a69a44d58af8b7e9a91704a808d5f881d17 qtquicktimeline-everywhere-src-6.11.2.tar.xz # Hashes for license files sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSES/GPL-3.0-only.txt diff --git a/package/qt6/qt6scxml/qt6scxml.hash b/package/qt6/qt6scxml/qt6scxml.hash index a38078377c..823f8d2618 100644 --- a/package/qt6/qt6scxml/qt6scxml.hash +++ b/package/qt6/qt6scxml/qt6scxml.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtscxml-everywhere-src-6.11.1.tar.xz.sha256 -sha256 8e495245e5d1fe75de612c8a07e4043635407a1979bb1dd588f1751d1390203f qtscxml-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtscxml-everywhere-src-6.11.2.tar.xz.sha256 +sha256 f594c4bba7f8bffb20857973c72895669d6e54df08c8d897f50d15251cec35ff qtscxml-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6serialbus/qt6serialbus.hash b/package/qt6/qt6serialbus/qt6serialbus.hash index ef4e96e1d6..0e2e9ea5ab 100644 --- a/package/qt6/qt6serialbus/qt6serialbus.hash +++ b/package/qt6/qt6serialbus/qt6serialbus.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtserialbus-everywhere-src-6.11.1.tar.xz.sha256 -sha256 c46c9c0c8d6815301a669cdbd5866c10bcfb9e56889f5d7da14e11d6ad24f20a qtserialbus-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtserialbus-everywhere-src-6.11.2.tar.xz.sha256 +sha256 8f06c9ba95f6b045ec43f011094e35a4116047310aa24280966541b720df36c1 qtserialbus-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6serialport/qt6serialport.hash b/package/qt6/qt6serialport/qt6serialport.hash index 63ed548400..2c90412cdf 100644 --- a/package/qt6/qt6serialport/qt6serialport.hash +++ b/package/qt6/qt6serialport/qt6serialport.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtserialport-everywhere-src-6.11.1.tar.xz.sha256 -sha256 9af31a898ffd9a7e4faf6fed845d29e783c716885789055cbe319f3e072d3974 qtserialport-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtserialport-everywhere-src-6.11.2.tar.xz.sha256 +sha256 df3a733616444f31b2ecb689218ea1444be91d8628aa3ab8e464c5eb1b17ad8e qtserialport-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6shadertools/qt6shadertools.hash b/package/qt6/qt6shadertools/qt6shadertools.hash index 9ff3f9c88f..29d5aa7756 100644 --- a/package/qt6/qt6shadertools/qt6shadertools.hash +++ b/package/qt6/qt6shadertools/qt6shadertools.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtshadertools-everywhere-src-6.11.1.tar.xz.sha256 -sha256 2075052f9b23bcf9de045bbd180037084942f82cce870aab14a1454902c982fc qtshadertools-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtshadertools-everywhere-src-6.11.2.tar.xz.sha256 +sha256 805046b8b7757665586890b375940047e874ae3ab00adb6d3f2b38fc6b200b1c qtshadertools-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6svg/qt6svg.hash b/package/qt6/qt6svg/qt6svg.hash index c5f9dabe2a..aefc24cc62 100644 --- a/package/qt6/qt6svg/qt6svg.hash +++ b/package/qt6/qt6svg/qt6svg.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtsvg-everywhere-src-6.11.1.tar.xz.sha256 -sha256 7f3cf02f4824bf03c2c5859ea6db173bf1482a1daf24e6cdf7bc78cfa26a8a94 qtsvg-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtsvg-everywhere-src-6.11.2.tar.xz.sha256 +sha256 d594337feca84c26fb67fe87b85e6a5c12fda404b611d905f9d138210c311876 qtsvg-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6tools/qt6tools.hash b/package/qt6/qt6tools/qt6tools.hash index f6db07deaf..fb4e655e59 100644 --- a/package/qt6/qt6tools/qt6tools.hash +++ b/package/qt6/qt6tools/qt6tools.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qttools-everywhere-src-6.11.1.tar.xz.sha256 -sha256 8e61835a679c93fa9c6065b142353c2071ba68e297898937c32a03777fcaf50d qttools-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qttools-everywhere-src-6.11.2.tar.xz.sha256 +sha256 9ea75af35c512f7e09e61c8c3af3997f13b4d43bb099cf43fcec470126b4041e qttools-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6virtualkeyboard/qt6virtualkeyboard.hash b/package/qt6/qt6virtualkeyboard/qt6virtualkeyboard.hash index c47d69fa99..af4477bab4 100644 --- a/package/qt6/qt6virtualkeyboard/qt6virtualkeyboard.hash +++ b/package/qt6/qt6virtualkeyboard/qt6virtualkeyboard.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtvirtualkeyboard-everywhere-src-6.11.1.tar.xz.sha256 -sha256 a1c6967b326243b2ca8d50bc7b7f7852c3975d9aa6ce4b186ebdf35bb1007e1c qtvirtualkeyboard-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtvirtualkeyboard-everywhere-src-6.11.2.tar.xz.sha256 +sha256 4c6a26734a5c4e4acd5ff9ae5f192a5b883bc4514118f9df2fcf12064e647c2f qtvirtualkeyboard-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6wayland/qt6wayland.hash b/package/qt6/qt6wayland/qt6wayland.hash index 62b7b2ee92..767e35c80f 100644 --- a/package/qt6/qt6wayland/qt6wayland.hash +++ b/package/qt6/qt6wayland/qt6wayland.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtwayland-everywhere-src-6.11.1.tar.xz.sha256 -sha256 95788aa502f75441d4edf65932b235f76523084e13dbbb7b9ee2d207b32bd9b3 qtwayland-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtwayland-everywhere-src-6.11.2.tar.xz.sha256 +sha256 8eb7615e39332a10f506e8dd70f02d5954bb5949ff54f6dcbf8bd6168222f9df qtwayland-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt diff --git a/package/qt6/qt6websockets/qt6websockets.hash b/package/qt6/qt6websockets/qt6websockets.hash index 505fb2ca59..d20f18f8bd 100644 --- a/package/qt6/qt6websockets/qt6websockets.hash +++ b/package/qt6/qt6websockets/qt6websockets.hash @@ -1,5 +1,5 @@ -# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.1/submodules/qtwebsockets-everywhere-src-6.11.1.tar.xz.sha256 -sha256 243e3aa11924c8c5c1645e892f62d013caa3766c57512ca926d5b58146646fbf qtwebsockets-everywhere-src-6.11.1.tar.xz +# Hash from: https://download.qt.io/official_releases/qt/6.11/6.11.2/submodules/qtwebsockets-everywhere-src-6.11.2.tar.xz.sha256 +sha256 2bfe25c383c37f7690e3c59b02c9907d2744cf8527b1f3f1fc2c785b2ff3c9a3 qtwebsockets-everywhere-src-6.11.2.tar.xz # Hashes for license files: sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 26/77] package/daq3: bump version to 3.0.27 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (24 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 25/77] package/qt6: security bump version to 6.11.2 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 27/77] package/snort3: fix build error with numa support Bernd Kuhls ` (50 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark https://github.com/snort3/libdaq/blob/v3.0.27/ChangeLog.md Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/daq3/daq3.hash | 2 +- package/daq3/daq3.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/daq3/daq3.hash b/package/daq3/daq3.hash index 524c0eb868..a81ae595b4 100644 --- a/package/daq3/daq3.hash +++ b/package/daq3/daq3.hash @@ -1,5 +1,5 @@ # Locally computed: -sha256 651e38a2737d179a224bcb01d8a06300667708ee614d19a8b411fdd212cc035d daq3-3.0.25.tar.gz +sha256 03fac3da27e3230a7d26262f2480cd65a409cee3596c6758a7f9eacb7f24601c daq3-3.0.27.tar.gz # Hash for license files: sha256 64601289158eddad72cb4de72652f9e64dc886942c910b38ddee93ba13b0db26 COPYING diff --git a/package/daq3/daq3.mk b/package/daq3/daq3.mk index ec3f4ba670..43139ee065 100644 --- a/package/daq3/daq3.mk +++ b/package/daq3/daq3.mk @@ -4,7 +4,7 @@ # ################################################################################ -DAQ3_VERSION = 3.0.25 +DAQ3_VERSION = 3.0.27 DAQ3_SITE = $(call github,snort3,libdaq,v$(DAQ3_VERSION)) DAQ3_LICENSE = GPL-2.0 DAQ3_LICENSE_FILES = COPYING LICENSE -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 27/77] package/snort3: fix build error with numa support 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (25 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 26/77] package/daq3: bump version to 3.0.27 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 28/77] package/snort3: bump version to 3.12.2.0 Bernd Kuhls ` (49 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Buildroot commit 5e78c6cf3323b4a45f84bcbc504f511dd268e270 bumped the package from 3.1.40.0 to 3.11.1.0. Upstream commit https://github.com/snort3/snort3/commit/83e9a2dda250a0ced9a105454a5a4fe59c304601 added numa support, first included in release 3.1.65.0. This causes a build error due to the numactl package being pulled-in as optional dependency by hwloc, the latter being a hard dependency of snort3. Fixes: https://autobuild.buildroot.net/results/e8a/e8a9d787973fd109c07c185103de1f9f7339d506/ Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0001-Rename-numa.h-to-numa_snort.h.patch | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 package/snort3/0001-Rename-numa.h-to-numa_snort.h.patch diff --git a/package/snort3/0001-Rename-numa.h-to-numa_snort.h.patch b/package/snort3/0001-Rename-numa.h-to-numa_snort.h.patch new file mode 100644 index 0000000000..ca8f7774f1 --- /dev/null +++ b/package/snort3/0001-Rename-numa.h-to-numa_snort.h.patch @@ -0,0 +1,79 @@ +From 3bb2a8fc1244fcbdf24235e541fa2a06a655dcea Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Tue, 8 Sep 2026 21:20:04 +0200 +Subject: [PATCH] Rename numa.h to numa_snort.h + +Fixes https://github.com/snort3/snort3/issues/368 + +and a build error seen with gcc 15.1.0 by the buildroot autobuilders: +https://autobuild.buildroot.net/results/e8a/e8a9d787973fd109c07c185103de1f9f7339d506/build-end.log + +/home/autobuild/autobuild/instance-44/output-1/build/snort3-3.11.1.0/src/main/numa.h: + In member function 'virtual int NumaWrapper::available()': +/home/autobuild/autobuild/instance-44/output-1/build/snort3-3.11.1.0/src/main/numa.h:50:16: + error: 'numa_available' was not declared in this scope; did you mean 'available'? + 50 | return numa_available(); + +/home/autobuild/autobuild/instance-44/output-1/build/snort3-3.11.1.0/src/main/numa.h: + In member function 'virtual int NumaWrapper::max_node()': +/home/autobuild/autobuild/instance-44/output-1/build/snort3-3.11.1.0/src/main/numa.h:54:16: + error: 'numa_max_node' was not declared in this scope; did you mean 'max_node'? + 54 | return numa_max_node(); + +Upstream: https://github.com/snort3/snort3/pull/479 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/main/CMakeLists.txt | 2 +- + src/main/numa.cc | 2 +- + src/main/{numa.h => numa_snort.h} | 0 + src/main/thread_config.h | 2 +- + 4 files changed, 3 insertions(+), 3 deletions(-) + rename src/main/{numa.h => numa_snort.h} (100%) + +diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt +index 117612b94..e4e816d15 100644 +--- a/src/main/CMakeLists.txt ++++ b/src/main/CMakeLists.txt +@@ -23,7 +23,7 @@ endif ( ENABLE_SHELL ) + add_subdirectory(test) + + if ( HAVE_NUMA ) +- set ( NUMA_SOURCES numa.h numa.cc) ++ set ( NUMA_SOURCES numa_snort.h numa.cc) + endif( HAVE_NUMA ) + + add_library (main OBJECT +diff --git a/src/main/numa.cc b/src/main/numa.cc +index 259f776b7..5cb23e26b 100644 +--- a/src/main/numa.cc ++++ b/src/main/numa.cc +@@ -17,7 +17,7 @@ + //-------------------------------------------------------------------------- + // numa.cc author Denys Zikratyi <dzikraty@cisco.com> + +-#include "numa.h" ++#include "numa_snort.h" + + #ifdef HAVE_CONFIG_H + #include "config.h" +diff --git a/src/main/numa.h b/src/main/numa_snort.h +similarity index 100% +rename from src/main/numa.h +rename to src/main/numa_snort.h +diff --git a/src/main/thread_config.h b/src/main/thread_config.h +index 93bfe63d2..8134da8bf 100644 +--- a/src/main/thread_config.h ++++ b/src/main/thread_config.h +@@ -26,7 +26,7 @@ + #include "main/thread.h" + + #ifdef HAVE_NUMA +-#include "numa.h" ++#include "numa_snort.h" + #endif + + struct CpuSet; +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 28/77] package/snort3: bump version to 3.12.2.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (26 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 27/77] package/snort3: fix build error with numa support Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 29/77] package/snort3: Fix build with OpenSSL 4.0.0 Bernd Kuhls ` (48 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark https://github.com/snort3/snort3/blob/3.12.2.0/ChangeLog.md Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/snort3/snort3.hash | 2 +- package/snort3/snort3.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/snort3/snort3.hash b/package/snort3/snort3.hash index 599818ee24..02ebcf85c9 100644 --- a/package/snort3/snort3.hash +++ b/package/snort3/snort3.hash @@ -1,5 +1,5 @@ # Locally computed: -sha256 9465d19b0925088266504e8962e97e55359bafd6a19f66b4169dcd21ef1d8ec5 snort3-3.11.1.0.tar.gz +sha256 43000d6b0e0307bc1a735874d00deb61e8b6a96d074f8cc9b2fe2cde0058720b snort3-3.12.2.0.tar.gz # Hash for license files: sha256 3f1cbfb20bb2c608e1a474421880d08b8cba6abb00ab7736d22c481d71656a6d COPYING diff --git a/package/snort3/snort3.mk b/package/snort3/snort3.mk index 273aa56709..a6f296a062 100644 --- a/package/snort3/snort3.mk +++ b/package/snort3/snort3.mk @@ -4,7 +4,7 @@ # ################################################################################ -SNORT3_VERSION = 3.11.1.0 +SNORT3_VERSION = 3.12.2.0 SNORT3_SITE = $(call github,snort3,snort3,$(SNORT3_VERSION)) SNORT3_LICENSE = GPL-2.0 SNORT3_LICENSE_FILES = COPYING LICENSE -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 29/77] package/snort3: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (27 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 28/77] package/snort3: bump version to 3.12.2.0 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 30/77] package/xtables-addons: use kernel-module infra Bernd Kuhls ` (47 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...fix-const-qualifiers-for-OpenSSL-4.0.patch | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 package/snort3/0002-ssl-fix-const-qualifiers-for-OpenSSL-4.0.patch diff --git a/package/snort3/0002-ssl-fix-const-qualifiers-for-OpenSSL-4.0.patch b/package/snort3/0002-ssl-fix-const-qualifiers-for-OpenSSL-4.0.patch new file mode 100644 index 0000000000..9f4232901a --- /dev/null +++ b/package/snort3/0002-ssl-fix-const-qualifiers-for-OpenSSL-4.0.patch @@ -0,0 +1,63 @@ +From a32587b0fc22a716b70f242f7a130de003fb3b42 Mon Sep 17 00:00:00 2001 +From: Jaipaul Cheernam <jaipaul.cheernam@est.tech> +Date: Thu, 27 Aug 2026 11:45:48 +0000 +Subject: [PATCH] ssl: fix const qualifiers for OpenSSL 4.0 + +OpenSSL 4.0 returns const pointers from X509_get_subject_name(), +X509_get_issuer_name(), X509_NAME_get_entry(), and +X509_NAME_ENTRY_get_data(). Update local variables to match. + +This is backward-compatible with older OpenSSL versions since +assigning non-const to const is always valid. + +Fixes: https://github.com/snort3/snort3/issues/476 + +Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> + +Upstream: https://github.com/snort3/snort3/pull/477 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/protocols/ssl.cc | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/protocols/ssl.cc b/src/protocols/ssl.cc +index 733d19adf..4afac05dd 100644 +--- a/src/protocols/ssl.cc ++++ b/src/protocols/ssl.cc +@@ -860,8 +860,8 @@ ParseResult parse_server_certificates(SSLV3ServerCertData* server_cert_data) + while (len > 2 and !(common_name and org_unit)) + { + X509* cert = nullptr; +- X509_NAME* cert_subject = nullptr; +- X509_NAME* cert_issuer = nullptr; ++ const X509_NAME* cert_subject = nullptr; ++ const X509_NAME* cert_issuer = nullptr; + + int cert_len = ntoh3(data); + data += 3; +@@ -918,8 +918,8 @@ ParseResult parse_server_certificates(SSLV3ServerCertData* server_cert_data) + lastpos = X509_NAME_get_index_by_NID(cert_subject, NID_commonName, lastpos); + if (lastpos != -1) + { +- X509_NAME_ENTRY* e = X509_NAME_get_entry(cert_subject, lastpos); +- ASN1_STRING* asn1_str = X509_NAME_ENTRY_get_data(e); ++ const X509_NAME_ENTRY* e = X509_NAME_get_entry(cert_subject, lastpos); ++ const ASN1_STRING* asn1_str = X509_NAME_ENTRY_get_data(e); + const unsigned char* str_data = ASN1_STRING_get0_data(asn1_str); + int length = ASN1_STRING_length(asn1_str); + +@@ -941,8 +941,8 @@ ParseResult parse_server_certificates(SSLV3ServerCertData* server_cert_data) + lastpos = X509_NAME_get_index_by_NID(cert_subject, NID_organizationalUnitName, lastpos); + if (lastpos != -1) + { +- X509_NAME_ENTRY* e = X509_NAME_get_entry(cert_subject, lastpos); +- ASN1_STRING* asn1_str = X509_NAME_ENTRY_get_data(e); ++ const X509_NAME_ENTRY* e = X509_NAME_get_entry(cert_subject, lastpos); ++ const ASN1_STRING* asn1_str = X509_NAME_ENTRY_get_data(e); + const unsigned char* str_data = ASN1_STRING_get0_data(asn1_str); + org_unit_len = ASN1_STRING_length(asn1_str); + +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 30/77] package/xtables-addons: use kernel-module infra 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (28 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 29/77] package/snort3: Fix build with OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 31/77] package/xtables-addons: bump version to 3.31 Bernd Kuhls ` (46 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark This package does not need the kernel-module infra because the kernel module is build by autoconf but the MIPS fix from buildroot commit 1d8d9e8d6cd824b2a43a0b92d71cfb25a3f9300a is not added to _LINUX_CONFIG_ FIXUPS causing a build error with this defconfig: BR2_mips64el=y # BR2_MIPS_SOFT_FLOAT is not set BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_MIPS64EL_N32_GLIBC_STABLE=y BR2_PER_PACKAGE_DIRECTORIES=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.156" BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_PACKAGE_XTABLES_ADDONS=y # BR2_TARGET_ROOTFS_TAR is not set BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y MODPOST /home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/Module.symvers ERROR: modpost: "memcmp" [/home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/compat_xtables.ko] undefined! ERROR: modpost: "register_pernet_subsys" [/home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/ACCOUNT/xt_ACCOUNT.ko] undefined! ERROR: modpost: "_printk" [/home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/ACCOUNT/xt_ACCOUNT.ko] undefined! ERROR: modpost: "nf_register_sockopt" [/home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/ACCOUNT/xt_ACCOUNT.ko] undefined! ERROR: modpost: "unregister_pernet_subsys" [/home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/ACCOUNT/xt_ACCOUNT.ko] undefined! ERROR: modpost: "xt_register_target" [/home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/ACCOUNT/xt_ACCOUNT.ko] undefined! ERROR: modpost: "nf_unregister_sockopt" [/home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/ACCOUNT/xt_ACCOUNT.ko] undefined! ERROR: modpost: "kfree" [/home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/ACCOUNT/xt_ACCOUNT.ko] undefined! ERROR: modpost: "free_pages" [/home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/ACCOUNT/xt_ACCOUNT.ko] undefined! ERROR: modpost: "xt_unregister_target" [/home/buildroot/buildroot/output/build/xtables-addons-3.24/extensions/ACCOUNT/xt_ACCOUNT.ko] undefined! WARNING: modpost: suppressed 342 unresolved symbol warnings because there were too many) To fix the problem we add the kernel-module infra to the package. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/xtables-addons/Config.in | 2 +- package/xtables-addons/xtables-addons.mk | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package/xtables-addons/Config.in b/package/xtables-addons/Config.in index 36a42c7efc..8943276843 100644 --- a/package/xtables-addons/Config.in +++ b/package/xtables-addons/Config.in @@ -10,7 +10,7 @@ config BR2_PACKAGE_XTABLES_ADDONS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # extensions are .so select BR2_PACKAGE_IPTABLES - select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra + select BR2_LINUX_NEEDS_MODULES help Xtables-addons is the successor to patch-o-matic(-ng). Likewise, it contains extensions that were not, or are not diff --git a/package/xtables-addons/xtables-addons.mk b/package/xtables-addons/xtables-addons.mk index efd8bd98ce..a3174725d0 100644 --- a/package/xtables-addons/xtables-addons.mk +++ b/package/xtables-addons/xtables-addons.mk @@ -39,4 +39,5 @@ define XTABLES_ADDONS_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_NF_NAT) endef +$(eval $(kernel-module)) $(eval $(autotools-package)) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 31/77] package/xtables-addons: bump version to 3.31 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (29 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 30/77] package/xtables-addons: use kernel-module infra Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 32/77] package/apache: Add support for OpenSSL 4.0.0 Bernd Kuhls ` (45 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark https://codeberg.org/jengelh/xtables-addons/src/tag/v3.31/doc/changelog.rst Upstream switched tarball format to zst. Enabled CONFIG_NETFILTER_XT_MATCH_STRING in kernel config to provide the new upstream dependency CONFIG_TEXTSEARCH_BM: https://codeberg.org/jengelh/xtables-addons/commit/6b7c62d83ea1b589c3115d959867e0fcbfcf74ea Enabled CONFIG_XFRM_USER to fix build errors detected by the Gitlab pipelines: ERROR: modpost: "crypto_alloc_shash" [pknock/xt_pknock.ko] undefined! ERROR: modpost: "crypto_shash_setkey" [pknock/xt_pknock.ko] undefined! ERROR: modpost: "crypto_shash_init" [pknock/xt_pknock.ko] undefined! ERROR: modpost: "crypto_shash_finup" [pknock/xt_pknock.ko] undefined! ERROR: modpost: "crypto_destroy_tfm" [pknock/xt_pknock.ko] undefined! Upstream uses these functions for > 10 years so recent changes in the Linux kernel dependency handling are responsible for the build errors. Enabled CONFIG_{INET, NET} to fix a build error detected by the Gitlab pipelines for bootlin-powerpc-e500mc-uclibc: In file included from pknock/xt_pknock.c:31: ./pknock/../compat_xtables.h:19:9: warning: #warning You need CONFIG_NF_CONNTRACK. [-Wcpp] 19 | # warning You need CONFIG_NF_CONNTRACK. ACCOUNT/xt_ACCOUNT.c:1179:10: error: 'struct nf_sockopt_ops' has no member named 'set_optmin' 1179 | .set_optmin = IPT_SO_SET_ACCOUNT_HANDLE_FREE, Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/xtables-addons/xtables-addons.hash | 2 +- package/xtables-addons/xtables-addons.mk | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/package/xtables-addons/xtables-addons.hash b/package/xtables-addons/xtables-addons.hash index 7bdbbb8578..a77ac1a230 100644 --- a/package/xtables-addons/xtables-addons.hash +++ b/package/xtables-addons/xtables-addons.hash @@ -1,3 +1,3 @@ # Locally calculated -sha256 3e823f71720519ced31c4c7d2bfaf7120d9c01c59a0843dfcbe93c95c64d81c1 xtables-addons-3.24.tar.xz +sha256 e22efc25b7bbb3436d1b7cdc309b1857ea933f7e5c7d88fbe6951a1e3e582a80 xtables-addons-3.31.tar.zst sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 LICENSE diff --git a/package/xtables-addons/xtables-addons.mk b/package/xtables-addons/xtables-addons.mk index a3174725d0..9f70518fed 100644 --- a/package/xtables-addons/xtables-addons.mk +++ b/package/xtables-addons/xtables-addons.mk @@ -4,8 +4,8 @@ # ################################################################################ -XTABLES_ADDONS_VERSION = 3.24 -XTABLES_ADDONS_SOURCE = xtables-addons-$(XTABLES_ADDONS_VERSION).tar.xz +XTABLES_ADDONS_VERSION = 3.31 +XTABLES_ADDONS_SOURCE = xtables-addons-$(XTABLES_ADDONS_VERSION).tar.zst XTABLES_ADDONS_SITE = https://inai.de/files/xtables-addons XTABLES_ADDONS_DEPENDENCIES = iptables linux host-pkgconf XTABLES_ADDONS_LICENSE = GPL-2.0+ @@ -33,10 +33,14 @@ endef XTABLES_ADDONS_POST_INSTALL_TARGET_HOOKS += XTABLES_ADDONS_REMOVE_GEOIP_HELPERS define XTABLES_ADDONS_LINUX_CONFIG_FIXUPS + $(call KCONFIG_ENABLE_OPT,CONFIG_INET) + $(call KCONFIG_ENABLE_OPT,CONFIG_NET) $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_ADVANCED) + $(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_XT_MATCH_STRING) $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK) $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK_MARK) $(call KCONFIG_ENABLE_OPT,CONFIG_NF_NAT) + $(call KCONFIG_ENABLE_OPT,CONFIG_XFRM_USER) endef $(eval $(kernel-module)) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 32/77] package/apache: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (30 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 31/77] package/xtables-addons: bump version to 3.31 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 33/77] package/boinc: Fix build with " Bernd Kuhls ` (44 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0004-modules-md-Merge-from-icing-md.patch | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 package/apache/0004-modules-md-Merge-from-icing-md.patch diff --git a/package/apache/0004-modules-md-Merge-from-icing-md.patch b/package/apache/0004-modules-md-Merge-from-icing-md.patch new file mode 100644 index 0000000000..b4f04ba47b --- /dev/null +++ b/package/apache/0004-modules-md-Merge-from-icing-md.patch @@ -0,0 +1,57 @@ +From d534e42b07969755b27eff2892ea56cfd909f063 Mon Sep 17 00:00:00 2001 +From: Joe Orton <jorton@apache.org> +Date: Tue, 9 Jun 2026 06:44:42 +0000 +Subject: [PATCH] * modules/md: Merge from icing/md - + +https://github.com/icing/mod_md/commit/9fd90380db0722f0ccc14ff1c4da0ca21d4da75c + +Add OpenSSL 4.0 compatibility: + +* Use getters instead of direct member access. + +* Struct was made opaque in OpenSSL 4. Getters exist since OpenSSL 1.1.0. + +* Keep OpenSSL 1.0.2 compatibility. + + + +git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1935161 13f79535-47bb-0310-9956-ffa450edef68 + +Upstream: https://github.com/apache/httpd/commit/d534e42b07969755b27eff2892ea56cfd909f063 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + modules/md/md_ocsp.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/modules/md/md_ocsp.c b/modules/md/md_ocsp.c +index aee799a7b3..2e7f14dff3 100644 +--- a/modules/md/md_ocsp.c ++++ b/modules/md/md_ocsp.c +@@ -533,13 +533,23 @@ static const char *certid_summary(const OCSP_CERTID *certid, apr_pool_t *p) + serial = issuer = key = "???"; + OCSP_id_get0_info(&aname_hash, &amd_nid, &akey_hash, &aserial, (OCSP_CERTID*)certid); + if (aname_hash) { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + data.len = (apr_size_t)aname_hash->length; + data.data = (const char*)aname_hash->data; ++#else ++ data.len = (apr_size_t)ASN1_STRING_length(aname_hash); ++ data.data = (const char*)ASN1_STRING_get0_data(aname_hash); ++#endif + md_data_to_hex(&issuer, 0, p, &data); + } + if (akey_hash) { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + data.len = (apr_size_t)akey_hash->length; + data.data = (const char*)akey_hash->data; ++#else ++ data.len = (apr_size_t)ASN1_STRING_length(akey_hash); ++ data.data = (const char*)ASN1_STRING_get0_data(akey_hash); ++#endif + md_data_to_hex(&key, 0, p, &data); + } + if (aserial) { +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 33/77] package/boinc: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (31 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 32/77] package/apache: Add support for OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:57 ` [Buildroot] [PATCH v2 34/77] package/ca-certificates: Replace c_rehash with openssl rehash Bernd Kuhls ` (43 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...fix-a-build-failure-with-openssl-4.0.patch | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 package/boinc/0001-Adapt-code-to-fix-a-build-failure-with-openssl-4.0.patch diff --git a/package/boinc/0001-Adapt-code-to-fix-a-build-failure-with-openssl-4.0.patch b/package/boinc/0001-Adapt-code-to-fix-a-build-failure-with-openssl-4.0.patch new file mode 100644 index 0000000000..22e2ef65a7 --- /dev/null +++ b/package/boinc/0001-Adapt-code-to-fix-a-build-failure-with-openssl-4.0.patch @@ -0,0 +1,26 @@ +From 9cdcef8261be4891b4814c6f728dcee65027e5da Mon Sep 17 00:00:00 2001 +From: Gianfranco Costamagna <locutusofborg@debian.org> +Date: Wed, 26 Aug 2026 12:27:54 +0200 +Subject: [PATCH] Adapt code to fix a build failure with openssl-4.0 + +Upstream: https://github.com/BOINC/boinc/commit/9cdcef8261be4891b4814c6f728dcee65027e5da + +[Bernd: backported to 8.2.15] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + lib/crypt.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/crypt.cpp b/lib/crypt.cpp +index 17a9b57b3eb..b54e2f050ad 100644 +--- a/lib/crypt.cpp ++++ b/lib/crypt.cpp +@@ -774,7 +774,7 @@ + DATA_BLOCK sig_db; + BIO *bio; + X509 *cert; +- X509_NAME *subj; ++ const X509_NAME *subj; + + if (signatures->signatures.size() == 0) { + printf("No signatures available for file ('%s').\n", origFile); -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 34/77] package/ca-certificates: Replace c_rehash with openssl rehash 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (32 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 33/77] package/boinc: Fix build with " Bernd Kuhls @ 2026-09-19 15:57 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 35/77] package/clamav: Fix build with OpenSSL 4.0.0 Bernd Kuhls ` (42 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:57 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark The upcoming bump of libopenssl to 4.0.2 removes the c_rehash script: https://openssl-library.org/post/2026-04-14-openssl-40-final-release/ https://github.com/openssl/openssl/blob/openssl-4.0.2/CHANGES.md#openssl-40 "* Removed `c_rehash` script tool. Use `openssl rehash` instead." Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/ca-certificates/ca-certificates.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/ca-certificates/ca-certificates.mk b/package/ca-certificates/ca-certificates.mk index f5675b754d..0f88df3eec 100644 --- a/package/ca-certificates/ca-certificates.mk +++ b/package/ca-certificates/ca-certificates.mk @@ -36,7 +36,7 @@ define CA_CERTIFICATES_GEN_BUNDLE done >$(BUILD_DIR)/ca-certificates.crt # Create symlinks to the certificates by their hash values - $(HOST_DIR)/bin/c_rehash $(TARGET_DIR)/etc/ssl/certs + $(HOST_DIR)/bin/openssl rehash $(TARGET_DIR)/etc/ssl/certs # Install the certificates bundle $(INSTALL) -D -m 644 $(BUILD_DIR)/ca-certificates.crt \ @@ -65,7 +65,7 @@ define HOST_CA_CERTIFICATES_INSTALL_CMDS done >$(BUILD_DIR)/ca-certificates.crt # Create symlinks to the certificates by their hash values - $(HOST_DIR)/bin/c_rehash $(HOST_DIR)/etc/ssl/certs + $(HOST_DIR)/bin/openssl rehash $(HOST_DIR)/etc/ssl/certs # Install the certificates bundle $(INSTALL) -D -m 644 $(BUILD_DIR)/ca-certificates.crt \ -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 35/77] package/clamav: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (33 preceding siblings ...) 2026-09-19 15:57 ` [Buildroot] [PATCH v2 34/77] package/ca-certificates: Replace c_rehash with openssl rehash Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 36/77] package/capnproto: " Bernd Kuhls ` (41 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...-crypto-Remove-cl_ASN1_GetTimeT-1731.patch | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 package/clamav/0001-libclamav-crypto-Remove-cl_ASN1_GetTimeT-1731.patch diff --git a/package/clamav/0001-libclamav-crypto-Remove-cl_ASN1_GetTimeT-1731.patch b/package/clamav/0001-libclamav-crypto-Remove-cl_ASN1_GetTimeT-1731.patch new file mode 100644 index 0000000000..60e29a1fdb --- /dev/null +++ b/package/clamav/0001-libclamav-crypto-Remove-cl_ASN1_GetTimeT-1731.patch @@ -0,0 +1,136 @@ +From 0097a6f99d9f6b78381e12b677a38fb62242c41a Mon Sep 17 00:00:00 2001 +From: sebastianas <sebastianas@users.noreply.github.com> +Date: Sat, 1 Aug 2026 00:13:13 +0200 +Subject: [PATCH] libclamav/crypto: Remove cl_ASN1_GetTimeT() (#1731) + +The last user has been removed in commit fa15aa98c7d5e ("bb11594 - allow +for compilation against openssl 1.1.0"). This function is only exported +under CLAMAV_PRIVATE to be used within clamav, not by external users. + +Removing the function will not cause an ABI break since it was not part +of the officially exported ABI. As a side effect it will compile against +OpenSSL 4.0 where the ASN1_TIME type has been made opaque. + +Remove cl_ASN1_GetTimeT(). + +Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> + +Upstream: https://github.com/Cisco-Talos/clamav/commit/0097a6f99d9f6b78381e12b677a38fb62242c41a + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + libclamav/clamav.h | 8 ----- + libclamav/crypto.c | 65 ----------------------------------------- + libclamav/libclamav.map | 1 - + 3 files changed, 74 deletions(-) + +diff --git a/libclamav/clamav.h b/libclamav/clamav.h +index 8a3767f78..fa75677ad 100644 +--- a/libclamav/clamav.h ++++ b/libclamav/clamav.h +@@ -2413,14 +2413,6 @@ extern int cl_validate_certificate_chain(char **authorities, char *crlpath, char + */ + extern X509 *cl_load_cert(const char *certpath); + +-/** +- * @brief Parse an ASN1_TIME object. +- * +- * @param timeobj The ASN1_TIME object. +- * @return A pointer to a (struct tm). Adjusted for time zone and daylight savings time. +- */ +-extern struct tm *cl_ASN1_GetTimeT(ASN1_TIME *timeobj); +- + /** + * @brief Load a CRL file into an X509_CRL object. + * +diff --git a/libclamav/crypto.c b/libclamav/crypto.c +index 8b398e402..968264811 100644 +--- a/libclamav/crypto.c ++++ b/libclamav/crypto.c +@@ -1746,71 +1746,6 @@ X509 *cl_load_cert(const char *certpath) + return cert; + } + +-struct tm *cl_ASN1_GetTimeT(ASN1_TIME *timeobj) +-{ +- struct tm *t; +- char *str; +- const char *fmt = NULL; +- time_t localt; +-#ifdef _WIN32 +- struct tm localtm, *ltm; +-#else +- struct tm localtm; +-#endif +- +- if (!(timeobj) || !(timeobj->data)) +- return NULL; +- +- str = (char *)(timeobj->data); +- if (strlen(str) < 12) +- return NULL; +- +- t = (struct tm *)calloc(1, sizeof(struct tm)); +- if (!(t)) +- return NULL; +- +- if (timeobj->type == V_ASN1_UTCTIME) { +- /* two digit year */ +- fmt = "%y%m%d%H%M%S"; +- if (str[3] == '0') { +- str[2] = '0'; +- str[3] = '9'; +- } else { +- str[3]--; +- } +- } else if (timeobj->type == V_ASN1_GENERALIZEDTIME) { +- /* four digit year */ +- fmt = "%Y%m%d%H%M%S"; +- if (str[5] == '0') { +- str[4] = '0'; +- str[5] = '9'; +- } else { +- str[5]--; +- } +- } +- +- if (!(fmt)) { +- free(t); +- return NULL; +- } +- +- if (!strptime(str, fmt, t)) { +- free(t); +- return NULL; +- } +- +- /* Convert to local time */ +- localt = time(NULL); +-#ifdef _WIN32 +- ltm = localtime(&localt); +- memcpy((void *)(&localtm), (void *)ltm, sizeof(struct tm)); +-#else +- localtime_r(&localt, &localtm); +-#endif +- t->tm_isdst = localtm.tm_isdst; +- return t; +-} +- + X509_CRL *cl_load_crl(const char *file) + { + X509_CRL *x = NULL; +diff --git a/libclamav/libclamav.map b/libclamav/libclamav.map +index 809341f42..f3efe1a33 100644 +--- a/libclamav/libclamav.map ++++ b/libclamav/libclamav.map +@@ -271,7 +271,6 @@ CLAMAV_PRIVATE { + cl_verify_signature_hash_x509; + cl_verify_signature_hash_x509_keyfile; + cl_load_cert; +- cl_ASN1_GetTimeT; + cl_load_crl; + cl_sign_data_keyfile; + cl_sign_data; +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 36/77] package/capnproto: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (34 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 35/77] package/clamav: Fix build with OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-20 12:08 ` Thomas Petazzoni via buildroot 2026-09-19 15:58 ` [Buildroot] [PATCH v2 37/77] package/ecryptfs-utils: remove OpenSSL support Bernd Kuhls ` (40 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...-errors-when-building-against-OpenSS.patch | 38 +++++++++++++++++++ ...tibility-with-older-OpenSSL-versions.patch | 29 ++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 package/capnproto/0002-Address-compiler-errors-when-building-against-OpenSS.patch create mode 100644 package/capnproto/0003-Maintain-compatibility-with-older-OpenSSL-versions.patch diff --git a/package/capnproto/0002-Address-compiler-errors-when-building-against-OpenSS.patch b/package/capnproto/0002-Address-compiler-errors-when-building-against-OpenSS.patch new file mode 100644 index 0000000000..ced6164827 --- /dev/null +++ b/package/capnproto/0002-Address-compiler-errors-when-building-against-OpenSS.patch @@ -0,0 +1,38 @@ +From 33960e1a762667f890701775e184cbd06ee1bb66 Mon Sep 17 00:00:00 2001 +From: tony mancill <tmancill@debian.org> +Date: Wed, 27 May 2026 06:13:20 -0700 +Subject: [PATCH] Address compiler errors when building against OpenSSL 4.0 + +See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1137594 + +Upstream: https://github.com/capnproto/capnproto/commit/33960e1a762667f890701775e184cbd06ee1bb66 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + c++/src/kj/compat/tls.c++ | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/c++/src/kj/compat/tls.c++ b/c++/src/kj/compat/tls.c++ +index 6affeb1f..87e308aa 100644 +--- a/c++/src/kj/compat/tls.c++ ++++ b/c++/src/kj/compat/tls.c++ +@@ -1125,13 +1125,13 @@ kj::String TlsPeerIdentity::getCommonName() { + KJ_FAIL_REQUIRE("client did not provide a certificate") { return nullptr; } + } + +- X509_NAME* subj = X509_get_subject_name(reinterpret_cast<X509*>(cert)); ++ const X509_NAME* subj = X509_get_subject_name(reinterpret_cast<X509*>(cert)); + + int index = X509_NAME_get_index_by_NID(subj, NID_commonName, -1); + KJ_ASSERT(index != -1, "certificate has no common name?"); +- X509_NAME_ENTRY* entry = X509_NAME_get_entry(subj, index); ++ const X509_NAME_ENTRY* entry = X509_NAME_get_entry(subj, index); + KJ_ASSERT(entry != nullptr); +- ASN1_STRING* data = X509_NAME_ENTRY_get_data(entry); ++ const ASN1_STRING* data = X509_NAME_ENTRY_get_data(entry); + KJ_ASSERT(data != nullptr); + + unsigned char* out = nullptr; +-- +2.47.3 + diff --git a/package/capnproto/0003-Maintain-compatibility-with-older-OpenSSL-versions.patch b/package/capnproto/0003-Maintain-compatibility-with-older-OpenSSL-versions.patch new file mode 100644 index 0000000000..2f9cdab245 --- /dev/null +++ b/package/capnproto/0003-Maintain-compatibility-with-older-OpenSSL-versions.patch @@ -0,0 +1,29 @@ +From 84dbf3c307dd98b5b7461d314a3b7e42318e374b Mon Sep 17 00:00:00 2001 +From: tony mancill <tmancill@debian.org> +Date: Thu, 28 May 2026 21:32:58 -0700 +Subject: [PATCH] Maintain compatibility with older OpenSSL versions + +Upstream: https://github.com/capnproto/capnproto/commit/84dbf3c307dd98b5b7461d314a3b7e42318e374b + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + c++/src/kj/compat/tls.c++ | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/c++/src/kj/compat/tls.c++ b/c++/src/kj/compat/tls.c++ +index 87e308aa..f7026d98 100644 +--- a/c++/src/kj/compat/tls.c++ ++++ b/c++/src/kj/compat/tls.c++ +@@ -1127,7 +1127,8 @@ kj::String TlsPeerIdentity::getCommonName() { + + const X509_NAME* subj = X509_get_subject_name(reinterpret_cast<X509*>(cert)); + +- int index = X509_NAME_get_index_by_NID(subj, NID_commonName, -1); ++ // Cast away const for compatibility with older OpenSSL versions ++ int index = X509_NAME_get_index_by_NID(const_cast<X509_NAME*>(subj), NID_commonName, -1); + KJ_ASSERT(index != -1, "certificate has no common name?"); + const X509_NAME_ENTRY* entry = X509_NAME_get_entry(subj, index); + KJ_ASSERT(entry != nullptr); +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 36/77] package/capnproto: Fix build with OpenSSL 4.0.0 2026-09-19 15:58 ` [Buildroot] [PATCH v2 36/77] package/capnproto: " Bernd Kuhls @ 2026-09-20 12:08 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 12:08 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:58:01PM +0200, Bernd Kuhls wrote: > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to master, thanks! Best regards, Thomas Petazzoni -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 37/77] package/ecryptfs-utils: remove OpenSSL support 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (35 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 36/77] package/capnproto: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 38/77] package/freeradius-server: Add support for OpenSSL 4.0.0 Bernd Kuhls ` (39 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark OpenSSL 4.0 removed support for engines. Please note that upstream considers eCryptfs deprecated: https://lore.kernel.org/lkml/ZyKf6ZSZrETI+4%2FS@redbud/T/#u Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/ecryptfs-utils/ecryptfs-utils.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/ecryptfs-utils/ecryptfs-utils.mk b/package/ecryptfs-utils/ecryptfs-utils.mk index 03e7f3e34f..aed1cae2a0 100644 --- a/package/ecryptfs-utils/ecryptfs-utils.mk +++ b/package/ecryptfs-utils/ecryptfs-utils.mk @@ -32,7 +32,7 @@ else ECRYPTFS_UTILS_CONF_OPTS += --disable-pam endif -ifeq ($(BR2_PACKAGE_LIBRESSL)$(BR2_PACKAGE_LIBOPENSSL_ENGINES),y) +ifeq ($(BR2_PACKAGE_LIBRESSL),y) ECRYPTFS_UTILS_CONF_OPTS += --enable-openssl ECRYPTFS_UTILS_DEPENDENCIES += openssl -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 38/77] package/freeradius-server: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (36 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 37/77] package/ecryptfs-utils: remove OpenSSL support Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 39/77] package/freeswitch: " Bernd Kuhls ` (38 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...ING-functions-for-OpenSSL-4.0-compat.patch | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 package/freeradius-server/0009-Use-ASN1_STRING-functions-for-OpenSSL-4.0-compat.patch diff --git a/package/freeradius-server/0009-Use-ASN1_STRING-functions-for-OpenSSL-4.0-compat.patch b/package/freeradius-server/0009-Use-ASN1_STRING-functions-for-OpenSSL-4.0-compat.patch new file mode 100644 index 0000000000..78d332ef1f --- /dev/null +++ b/package/freeradius-server/0009-Use-ASN1_STRING-functions-for-OpenSSL-4.0-compat.patch @@ -0,0 +1,80 @@ +From 6658c9e375637ce0bd14bed733270d863224431e Mon Sep 17 00:00:00 2001 +From: Antonio Torres <antorres@redhat.com> +Date: Tue, 5 May 2026 14:42:27 +0200 +Subject: [PATCH] Use ASN1_STRING functions for OpenSSL 4.0 compat + +Use ASN1_STRING accessor functions instead of direct field access +for ASN1_IA5STRING, ASN1_INTEGER, and ASN1_TIME structures. + +This fixes compatibility with OpenSSL 4.0. + +Signed-off-by: Antonio Torres <antorres@redhat.com> + +Upstream: https://github.com/FreeRADIUS/freeradius-server/commit/6658c9e375637ce0bd14bed733270d863224431e + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/main/tls.c | 26 ++++++++++++++++---------- + 1 file changed, 16 insertions(+), 10 deletions(-) + +diff --git a/src/main/tls.c b/src/main/tls.c +index 4f4cd0c28022..27b69a06229f 100644 +--- a/src/main/tls.c ++++ b/src/main/tls.c +@@ -2584,7 +2584,7 @@ static int ocsp_parse_cert_url(X509 *cert, char **host_out, char **port_out, + if (OBJ_obj2nid(ad->method) != NID_ad_OCSP) continue; + if (ad->location->type != GEN_URI) continue; + +- if (OCSP_parse_url((char *) ad->location->d.ia5->data, host_out, ++ if (OCSP_parse_url((const char *) ASN1_STRING_get0_data(ad->location->d.ia5), host_out, + port_out, path_out, is_https)) { + ret = 1; + break; +@@ -3066,12 +3066,14 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx) + * we're at the client or issuing certificate. + */ + if (certs && +- (lookup <= 1) && sn && ((size_t) sn->length < (sizeof(buf) / 2))) { ++ (lookup <= 1) && sn && ((size_t) ASN1_STRING_length(sn) < (sizeof(buf) / 2))) { + char *p = buf; + int i; ++ int sn_len = ASN1_STRING_length(sn); ++ const unsigned char *sn_data = ASN1_STRING_get0_data(sn); + +- for (i = 0; i < sn->length; i++) { +- sprintf(p, "%02x", (unsigned int)sn->data[i]); ++ for (i = 0; i < sn_len; i++) { ++ sprintf(p, "%02x", (unsigned int)sn_data[i]); + p += 2; + } + vp = fr_pair_make(talloc_ctx, certs, cert_attr_names[FR_TLS_SERIAL][lookup], buf, T_OP_SET); +@@ -3084,9 +3086,11 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx) + buf[0] = '\0'; + asn_time = X509_get_notAfter(client_cert); + if (certs && (lookup <= 1) && asn_time && +- (asn_time->length < (int) sizeof(buf))) { +- memcpy(buf, (char*) asn_time->data, asn_time->length); +- buf[asn_time->length] = '\0'; ++ (ASN1_STRING_length(asn_time) < (int) sizeof(buf))) { ++ int time_len = ASN1_STRING_length(asn_time); ++ const unsigned char *time_data = ASN1_STRING_get0_data(asn_time); ++ memcpy(buf, time_data, time_len); ++ buf[time_len] = '\0'; + vp = fr_pair_make(talloc_ctx, certs, cert_attr_names[FR_TLS_EXPIRATION][lookup], buf, T_OP_SET); + rdebug_pair(L_DBG_LVL_2, request, vp, NULL); + } +@@ -3097,9 +3101,11 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx) + buf[0] = '\0'; + asn_time = X509_get_notBefore(client_cert); + if (certs && (lookup <= 1) && asn_time && +- (asn_time->length < (int) sizeof(buf))) { +- memcpy(buf, (char*) asn_time->data, asn_time->length); +- buf[asn_time->length] = '\0'; ++ (ASN1_STRING_length(asn_time) < (int) sizeof(buf))) { ++ int time_len = ASN1_STRING_length(asn_time); ++ const unsigned char *time_data = ASN1_STRING_get0_data(asn_time); ++ memcpy(buf, time_data, time_len); ++ buf[time_len] = '\0'; + vp = fr_pair_make(talloc_ctx, certs, cert_attr_names[FR_TLS_VALID_SINCE][lookup], buf, T_OP_SET); + rdebug_pair(L_DBG_LVL_2, request, vp, NULL); + } -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 39/77] package/freeswitch: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (37 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 38/77] package/freeradius-server: Add support for OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 40/77] package/gloox: Fix build with " Bernd Kuhls ` (37 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark configure checks for DTLSv1_method() and DTLSv1_2_method() to make sure OpenSSL >= 1.0.1e is used, the functions itself are not used by freeswitch. The two functions were removed from OpenSSL 4.0.0 breaking the configure check. To fix the problem we let Freeswitch force-detect the function to finish configure successfully. Bug was reported upstream: https://github.com/signalwire/freeswitch/issues/3159 Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/freeswitch/freeswitch.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package/freeswitch/freeswitch.mk b/package/freeswitch/freeswitch.mk index e27c53650f..524599870c 100644 --- a/package/freeswitch/freeswitch.mk +++ b/package/freeswitch/freeswitch.mk @@ -75,6 +75,11 @@ FREESWITCH_CONF_ENV += \ FREESWITCH_CONF_ENV += \ ac_cv_gcc_supports_w_no_unused_result=no +# fix build with OpenSSL 4.0.0 +FREESWITCH_CONF_ENV += \ + ac_cv_lib_ssl_DTLSv1_method=yes \ + ac_cv_lib_ssl_DTLSv1_2_method=yes + FREESWITCH_CONF_OPTS = \ --without-erlang \ --enable-fhs \ -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 40/77] package/gloox: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (38 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 39/77] package/freeswitch: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 41/77] package/grpc: " Bernd Kuhls ` (36 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0001-Fix-build-with-OpenSSL-4.x.patch | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 package/gloox/0001-Fix-build-with-OpenSSL-4.x.patch diff --git a/package/gloox/0001-Fix-build-with-OpenSSL-4.x.patch b/package/gloox/0001-Fix-build-with-OpenSSL-4.x.patch new file mode 100644 index 0000000000..bae3319115 --- /dev/null +++ b/package/gloox/0001-Fix-build-with-OpenSSL-4.x.patch @@ -0,0 +1,43 @@ +From 69c49c945aa3847eb12a995f949d97a2a99642f6 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Wed, 9 Sep 2026 23:27:07 +0200 +Subject: [PATCH] Fix build with OpenSSL 4.x + +Upstream: dead + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/tlsopensslbase.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/tlsopensslbase.cpp b/src/tlsopensslbase.cpp +index bfa1fd9..a71ff11 100644 +--- a/src/tlsopensslbase.cpp ++++ b/src/tlsopensslbase.cpp +@@ -224,12 +224,12 @@ namespace gloox + int OpenSSLBase::ASN1Time2UnixTime( ASN1_TIME* time ) + { + struct tm t; +- const char* str = reinterpret_cast<const char*>( time->data ); ++ const char* str = reinterpret_cast<const char*>( ASN1_STRING_get0_data(time) ); + size_t i = 0; + + memset( &t, 0, sizeof(t) ); + +- if( time->type == V_ASN1_UTCTIME ) /* two digit year */ ++ if( ASN1_STRING_type(time) == V_ASN1_UTCTIME ) /* two digit year */ + { + t.tm_year = ( str[i++] - '0' ) * 10; + t.tm_year += ( str[i++] - '0' ); +@@ -237,7 +237,7 @@ namespace gloox + if( t.tm_year < 70 ) + t.tm_year += 100; + } +- else if( time->type == V_ASN1_GENERALIZEDTIME ) /* four digit year */ ++ else if( ASN1_STRING_type(time) == V_ASN1_GENERALIZEDTIME ) /* four digit year */ + { + t.tm_year = ( str[i++] - '0' ) * 1000; + t.tm_year += ( str[i++] - '0' ) * 100; +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 41/77] package/grpc: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (39 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 40/77] package/gloox: Fix build with " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 42/77] package/ibm-sw-tpm2: Fix build with OpenSSL 4.{0, 1} Bernd Kuhls ` (35 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../grpc/0003-Add-support-for-OpenSSL-4.patch | 327 ++++++++++++++++++ 1 file changed, 327 insertions(+) create mode 100644 package/grpc/0003-Add-support-for-OpenSSL-4.patch diff --git a/package/grpc/0003-Add-support-for-OpenSSL-4.patch b/package/grpc/0003-Add-support-for-OpenSSL-4.patch new file mode 100644 index 0000000000..cc517a2461 --- /dev/null +++ b/package/grpc/0003-Add-support-for-OpenSSL-4.patch @@ -0,0 +1,327 @@ +From fb056ab0bb3ed003febe82f069ff41514288a4f3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B6rn=20Svensson?= <bjorn.a.svensson@est.tech> +Date: Mon, 31 Aug 2026 09:52:46 -0700 +Subject: [PATCH] [OpenSSL] Add support for OpenSSL 4 (#41932) + +OpenSSL 4.0 removes several deprecated APIs and changes return types of various getter functions to `const`. +This PR fixes all affected code in gRPC's SSL transport layer, credentials, and tests. + +To handle the `const` return type differences across OpenSSL versions without version-specific `#if` guards at every call site, `auto*` is used to let the compiler deduce the correct type. +Where downstream serialization and copy functions (`i2d_X509_NAME`, `i2d_ASN1_OCTET_STRING`, `X509_NAME_dup`) have not yet been constified, `const_cast` is used at the call site to bridge the gap. These functions only read the data, so the cast is safe. + +Tested by building and running SSL tests against BoringSSL and OpenSSL 1.0.2u, 1.1.1w, 3.0.13, and 4.0.0. +Each commit message in this PR has some more details. + +RELEASE NOTES: + +* Add OpenSSL 4.0 compatibility. + +Closes #41932 + +COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41932 from Nordix:openssl4 c2edc3d46ab7e87ced5d9d95710885a8a8c7a3e2 +PiperOrigin-RevId: 973935241 + +Upstream: https://github.com/grpc/grpc/commit/fb056ab0bb3ed003febe82f069ff41514288a4f3 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + .../call/external/aws_request_signer.cc | 16 ++++++++++ + .../transport/tls/grpc_tls_crl_provider.cc | 4 +-- + src/core/tsi/ssl_transport_security.cc | 32 +++++++++++++------ + src/core/tsi/ssl_transport_security_utils.cc | 14 ++++---- + test/core/handshake/client_ssl.cc | 4 ++- + test/core/handshake/server_ssl_common.cc | 4 ++- + test/core/tsi/ssl_transport_security_test.cc | 10 ++++++ + 7 files changed, 65 insertions(+), 19 deletions(-) + +diff --git a/src/core/credentials/call/external/aws_request_signer.cc b/src/core/credentials/call/external/aws_request_signer.cc +index f7fb7a25b1d0b..d3f506d095abf 100644 +--- a/src/core/credentials/call/external/aws_request_signer.cc ++++ b/src/core/credentials/call/external/aws_request_signer.cc +@@ -18,12 +18,15 @@ + #include <grpc/support/port_platform.h> + #include <openssl/crypto.h> + #include <openssl/evp.h> ++#if OPENSSL_VERSION_NUMBER < 0x30000000L + #include <openssl/hmac.h> ++#endif + #include <openssl/sha.h> + + #include <utility> + #include <vector> + ++#include "src/core/util/grpc_check.h" + #include "absl/status/statusor.h" + #include "absl/strings/ascii.h" + #include "absl/strings/escaping.h" +@@ -41,6 +44,7 @@ namespace { + + #if OPENSSL_VERSION_NUMBER >= 0x30000000L + const char kSha256[] = "SHA256"; ++const char kHmacName[] = "HMAC"; + #endif + const char kAlgorithm[] = "AWS4-HMAC-SHA256"; + const char kDateFormat[] = "%a, %d %b %E4Y %H:%M:%S %Z"; +@@ -67,12 +71,24 @@ std::string SHA256Hex(const std::string& str) { + } + + std::string HMAC(const std::string& key, const std::string& msg) { ++#if OPENSSL_VERSION_NUMBER < 0x30000000L + unsigned int len; + unsigned char digest[EVP_MAX_MD_SIZE]; + HMAC(EVP_sha256(), key.c_str(), key.length(), + reinterpret_cast<const unsigned char*>(msg.c_str()), msg.length(), + digest, &len); + return std::string(digest, digest + len); ++#else ++ size_t len = 0; ++ unsigned char digest[EVP_MAX_MD_SIZE]; ++ GRPC_CHECK_NE(EVP_Q_mac(nullptr, kHmacName, nullptr, kSha256, nullptr, ++ reinterpret_cast<const unsigned char*>(key.c_str()), ++ key.length(), ++ reinterpret_cast<const unsigned char*>(msg.c_str()), ++ msg.length(), digest, sizeof(digest), &len), ++ nullptr); ++ return std::string(digest, digest + len); ++#endif + } + + } // namespace +diff --git a/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc b/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +index 5e24c18ee6127..dc95ba8457121 100644 +--- a/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc ++++ b/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +@@ -56,12 +56,12 @@ absl::StatusOr<std::string> IssuerFromCrl(X509_CRL* crl) { + if (crl == nullptr) { + return absl::InvalidArgumentError("crl cannot be null"); + } +- X509_NAME* issuer = X509_CRL_get_issuer(crl); ++ auto* issuer = X509_CRL_get_issuer(crl); + if (issuer == nullptr) { + return absl::InvalidArgumentError("crl cannot have null issuer"); + } + unsigned char* buf = nullptr; +- int len = i2d_X509_NAME(issuer, &buf); ++ int len = i2d_X509_NAME(const_cast<X509_NAME*>(issuer), &buf); + if (len < 0 || buf == nullptr) { + return absl::InvalidArgumentError("crl cannot have null issuer"); + } +diff --git a/src/core/tsi/ssl_transport_security.cc b/src/core/tsi/ssl_transport_security.cc +index 6c1f20ebb5374..29ec47eeeef41 100644 +--- a/src/core/tsi/ssl_transport_security.cc ++++ b/src/core/tsi/ssl_transport_security.cc +@@ -49,7 +49,9 @@ + #include <grpc/support/thd_id.h> + #include <openssl/bio.h> + #include <openssl/crypto.h> // For OPENSSL_free ++#if !defined(OPENSSL_NO_ENGINE) + #include <openssl/engine.h> ++#endif + #include <openssl/err.h> + #include <openssl/ssl.h> + #include <openssl/tls1.h> +@@ -1021,9 +1023,7 @@ static int looks_like_ip_address(absl::string_view name) { + static tsi_result ssl_get_x509_common_name(X509* cert, unsigned char** utf8, + size_t* utf8_size) { + int common_name_index = -1; +- X509_NAME_ENTRY* common_name_entry = nullptr; +- ASN1_STRING* common_name_asn1 = nullptr; +- X509_NAME* subject_name = X509_get_subject_name(cert); ++ auto* subject_name = X509_get_subject_name(cert); + int utf8_returned_size = 0; + if (subject_name == nullptr) { + VLOG(2) << "Could not get subject name from certificate."; +@@ -1035,12 +1035,13 @@ static tsi_result ssl_get_x509_common_name(X509* cert, unsigned char** utf8, + VLOG(2) << "Could not get common name of subject from certificate."; + return TSI_NOT_FOUND; + } +- common_name_entry = X509_NAME_get_entry(subject_name, common_name_index); ++ auto* common_name_entry = ++ X509_NAME_get_entry(subject_name, common_name_index); + if (common_name_entry == nullptr) { + LOG(ERROR) << "Could not get common name entry from certificate."; + return TSI_INTERNAL_ERROR; + } +- common_name_asn1 = X509_NAME_ENTRY_get_data(common_name_entry); ++ auto* common_name_asn1 = X509_NAME_ENTRY_get_data(common_name_entry); + if (common_name_asn1 == nullptr) { + LOG(ERROR) << "Could not get common name entry asn1 from certificate."; + return TSI_INTERNAL_ERROR; +@@ -1081,7 +1082,7 @@ static tsi_result peer_property_from_x509_common_name( + static tsi_result peer_property_from_x509_subject(X509* cert, + tsi_peer_property* property, + bool is_verified_root_cert) { +- X509_NAME* subject_name = X509_get_subject_name(cert); ++ auto* subject_name = X509_get_subject_name(cert); + if (subject_name == nullptr) { + GRPC_TRACE_LOG(tsi, INFO) << "Could not get subject name from certificate."; + return TSI_NOT_FOUND; +@@ -1177,17 +1178,30 @@ static tsi_result add_subject_alt_names_properties_to_peer( + char ntop_buf[INET6_ADDRSTRLEN]; + int af; + ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++ if (ASN1_STRING_length(subject_alt_name->d.iPAddress) == 4) { ++ af = AF_INET; ++ } else if (ASN1_STRING_length(subject_alt_name->d.iPAddress) == 16) { ++ af = AF_INET6; ++#else + if (subject_alt_name->d.iPAddress->length == 4) { + af = AF_INET; + } else if (subject_alt_name->d.iPAddress->length == 16) { + af = AF_INET6; ++#endif + } else { + LOG(ERROR) << "SAN IP Address contained invalid IP"; + result = TSI_INTERNAL_ERROR; + break; + } ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++ const char* name = ++ inet_ntop(af, ASN1_STRING_get0_data(subject_alt_name->d.iPAddress), ++ ntop_buf, INET6_ADDRSTRLEN); ++#else + const char* name = inet_ntop(af, subject_alt_name->d.iPAddress->data, + ntop_buf, INET6_ADDRSTRLEN); ++#endif + if (name == nullptr) { + LOG(ERROR) << "Could not get IP string from asn1 octet."; + result = TSI_INTERNAL_ERROR; +@@ -1472,13 +1486,13 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store, + break; // We're at the end of stream. + } + if (root_names != nullptr) { +- root_name = X509_get_subject_name(root); +- if (root_name == nullptr) { ++ auto* root_subject = X509_get_subject_name(root); ++ if (root_subject == nullptr) { + LOG(ERROR) << "Could not get name from root certificate."; + result = TSI_INVALID_ARGUMENT; + break; + } +- root_name = X509_NAME_dup(root_name); ++ root_name = X509_NAME_dup(const_cast<X509_NAME*>(root_subject)); + if (root_name == nullptr) { + result = TSI_OUT_OF_RESOURCES; + break; +diff --git a/src/core/tsi/ssl_transport_security_utils.cc b/src/core/tsi/ssl_transport_security_utils.cc +index 7318bc3f78057..9bf292821565c 100644 +--- a/src/core/tsi/ssl_transport_security_utils.cc ++++ b/src/core/tsi/ssl_transport_security_utils.cc +@@ -282,11 +282,11 @@ bool VerifyCrlCertIssuerNamesMatch(X509_CRL* crl, X509* cert) { + if (cert == nullptr || crl == nullptr) { + return false; + } +- X509_NAME* cert_issuer_name = X509_get_issuer_name(cert); ++ auto* cert_issuer_name = X509_get_issuer_name(cert); + if (cert_issuer_name == nullptr) { + return false; + } +- X509_NAME* crl_issuer_name = X509_CRL_get_issuer(crl); ++ auto* crl_issuer_name = X509_CRL_get_issuer(crl); + if (crl_issuer_name == nullptr) { + return false; + } +@@ -317,9 +317,9 @@ absl::StatusOr<std::string> IssuerFromCert(X509* cert) { + if (cert == nullptr) { + return absl::InvalidArgumentError("cert cannot be null"); + } +- X509_NAME* issuer = X509_get_issuer_name(cert); ++ auto* issuer = X509_get_issuer_name(cert); + unsigned char* buf = nullptr; +- int len = i2d_X509_NAME(issuer, &buf); ++ int len = i2d_X509_NAME(const_cast<X509_NAME*>(issuer), &buf); + if (len < 0 || buf == nullptr) { + return absl::InvalidArgumentError("could not read issuer name from cert"); + } +@@ -339,7 +339,8 @@ absl::StatusOr<std::string> AkidFromCertificate(X509* cert) { + if (X509_get_ext_by_NID(cert, NID_authority_key_identifier, j) != -1) { + return absl::InvalidArgumentError("Could not get AKID from certificate."); + } +- akid = X509_EXTENSION_get_data(X509_get_ext(cert, j)); ++ akid = const_cast<ASN1_OCTET_STRING*>( ++ X509_EXTENSION_get_data(X509_get_ext(cert, j))); + } else { + return absl::InvalidArgumentError("Could not get AKID from certificate."); + } +@@ -364,7 +365,8 @@ absl::StatusOr<std::string> AkidFromCrl(X509_CRL* crl) { + if (X509_CRL_get_ext_by_NID(crl, NID_authority_key_identifier, j) != -1) { + return absl::InvalidArgumentError("Could not get AKID from crl."); + } +- akid = X509_EXTENSION_get_data(X509_CRL_get_ext(crl, j)); ++ akid = const_cast<ASN1_OCTET_STRING*>( ++ X509_EXTENSION_get_data(X509_CRL_get_ext(crl, j))); + } else { + return absl::InvalidArgumentError("Could not get AKID from crl."); + } +diff --git a/test/core/handshake/client_ssl.cc b/test/core/handshake/client_ssl.cc +index 1952c6055094f..c985c0de926f1 100644 +--- a/test/core/handshake/client_ssl.cc ++++ b/test/core/handshake/client_ssl.cc +@@ -197,13 +197,15 @@ static void server_thread(void* arg) { + OpenSSL_add_ssl_algorithms(); + args->ssl_library_info->Notify(); + +- const SSL_METHOD* method = TLSv1_2_server_method(); ++ const SSL_METHOD* method = TLS_server_method(); + SSL_CTX* ctx = SSL_CTX_new(method); + if (!ctx) { + perror("Unable to create SSL context"); + ERR_print_errors_fp(stderr); + abort(); + } ++ SSL_CTX_set_min_proto_version(ctx, TLS1_2_VERSION); ++ SSL_CTX_set_max_proto_version(ctx, TLS1_2_VERSION); + + // Load key pair. + if (SSL_CTX_use_certificate_file(ctx, SSL_CERT_PATH, SSL_FILETYPE_PEM) < 0) { +diff --git a/test/core/handshake/server_ssl_common.cc b/test/core/handshake/server_ssl_common.cc +index ece1b6f50109e..7cb8f95e578f3 100644 +--- a/test/core/handshake/server_ssl_common.cc ++++ b/test/core/handshake/server_ssl_common.cc +@@ -187,13 +187,15 @@ bool server_ssl_test(const char* alpn_list[], unsigned int alpn_list_len, + // server port. + s.Await(); + +- const SSL_METHOD* method = TLSv1_2_client_method(); ++ const SSL_METHOD* method = TLS_client_method(); + SSL_CTX* ctx = SSL_CTX_new(method); + if (!ctx) { + perror("Unable to create SSL context"); + ERR_print_errors_fp(stderr); + abort(); + } ++ SSL_CTX_set_min_proto_version(ctx, TLS1_2_VERSION); ++ SSL_CTX_set_max_proto_version(ctx, TLS1_2_VERSION); + + // Load key pair. + if (SSL_CTX_use_certificate_file(ctx, SSL_CERT_PATH, SSL_FILETYPE_PEM) < 0) { +diff --git a/test/core/tsi/ssl_transport_security_test.cc b/test/core/tsi/ssl_transport_security_test.cc +index 806495f87ccca..8c3f4677495ec 100644 +--- a/test/core/tsi/ssl_transport_security_test.cc ++++ b/test/core/tsi/ssl_transport_security_test.cc +@@ -23,6 +23,7 @@ + #include <grpc/support/string_util.h> + #include <openssl/crypto.h> + #include <openssl/err.h> ++#include <openssl/evp.h> + #include <openssl/pem.h> + #include <stdbool.h> + #include <stdio.h> +@@ -985,7 +986,16 @@ TEST_P(SslTransportSecurityTest, DoRoundTripForAllConfigs) { + TEST_P(SslTransportSecurityTest, DoRoundTripWithErrorOnStack) { + // Invoke an SSL function that causes an error, and ensure the error + // makes it to the stack. ++#if OPENSSL_VERSION_NUMBER < 0x30000000L + ASSERT_FALSE(EC_KEY_new_by_curve_name(NID_rsa)); ++#else ++ // Use EVP_PKEY_CTX with an invalid operation to push an error. ++ EVP_PKEY_CTX* err_ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, nullptr); ++ ASSERT_NE(err_ctx, nullptr); ++ // Calling sign_init without a key will fail and push an error. ++ ASSERT_LE(EVP_PKEY_sign_init(err_ctx), 0); ++ EVP_PKEY_CTX_free(err_ctx); ++#endif + ASSERT_NE(ERR_peek_error(), 0); + SetUpSslFixture(/*tls_version=*/std::get<0>(GetParam()), + /*send_client_ca_list=*/std::get<1>(GetParam())); -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 42/77] package/ibm-sw-tpm2: Fix build with OpenSSL 4.{0, 1} 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (40 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 41/77] package/grpc: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 43/77] package/ibrdtnd: Fix build with OpenSSL 4.0.0 Bernd Kuhls ` (34 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0002-tpm-Update-to-OpenSSL-4.1.patch | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 package/ibm-sw-tpm2/0002-tpm-Update-to-OpenSSL-4.1.patch diff --git a/package/ibm-sw-tpm2/0002-tpm-Update-to-OpenSSL-4.1.patch b/package/ibm-sw-tpm2/0002-tpm-Update-to-OpenSSL-4.1.patch new file mode 100644 index 0000000000..3b4e3d815e --- /dev/null +++ b/package/ibm-sw-tpm2/0002-tpm-Update-to-OpenSSL-4.1.patch @@ -0,0 +1,28 @@ +From 66921ee5ba05ffb92700b00f17cf1e8b75522aee Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Sun, 13 Sep 2026 11:11:24 +0200 +Subject: [PATCH] tpm: Update to OpenSSL 4.1 + +Upstream: https://github.com/kgoldman/ibmswtpm2/pull/24 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/BnToOsslMath.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/BnToOsslMath.h b/src/BnToOsslMath.h +index 731957e..345d29f 100644 +--- a/src/BnToOsslMath.h ++++ b/src/BnToOsslMath.h +@@ -77,7 +77,7 @@ + #include <openssl/ec.h> + #include <openssl/bn.h> + +-#if OPENSSL_VERSION_NUMBER >= 0x30600ff0L ++#if OPENSSL_VERSION_NUMBER >= 0x40100ff0L + // Check the bignum_st definition against the one below and either update the + // version check or provide the new definition for this version. + # error Untested OpenSSL version +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 43/77] package/ibrdtnd: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (41 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 42/77] package/ibm-sw-tpm2: Fix build with OpenSSL 4.{0, 1} Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 44/77] package/lftp: Add support for " Bernd Kuhls ` (33 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...ateManager.cpp-fix-build-with-OpenSS.patch | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 package/ibrdtnd/0003-SecurityCertificateManager.cpp-fix-build-with-OpenSS.patch diff --git a/package/ibrdtnd/0003-SecurityCertificateManager.cpp-fix-build-with-OpenSS.patch b/package/ibrdtnd/0003-SecurityCertificateManager.cpp-fix-build-with-OpenSS.patch new file mode 100644 index 0000000000..4755409747 --- /dev/null +++ b/package/ibrdtnd/0003-SecurityCertificateManager.cpp-fix-build-with-OpenSS.patch @@ -0,0 +1,41 @@ +From 7dce31ed85b2e2299e63e7704ae2ffa7ce08d1c5 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Tue, 1 Sep 2026 22:44:06 +0200 +Subject: [PATCH] SecurityCertificateManager.cpp: fix build with OpenSSL 4.0.0 + +https://github.com/openssl/openssl/issues/29117 + +Upstream: https://github.com/ibrdtn/ibrdtn/pull/287 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/security/SecurityCertificateManager.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/security/SecurityCertificateManager.cpp b/src/security/SecurityCertificateManager.cpp +index f2bbb017..0093d418 100644 +--- a/src/security/SecurityCertificateManager.cpp ++++ b/src/security/SecurityCertificateManager.cpp +@@ -146,8 +146,8 @@ namespace dtn + throw SecurityCertificateException("certificate or common-name is empty"); + } + +- X509_NAME *cert_name; +- X509_NAME_ENTRY *name_entry; ++ const X509_NAME *cert_name; ++ const X509_NAME_ENTRY *name_entry; + ASN1_STRING *eid_string; + int lastpos = -1; + unsigned char *utf8_eid; +@@ -188,7 +188,7 @@ namespace dtn + } + + /* retrieve the string */ +- ASN1_STRING *asn1 = X509_NAME_ENTRY_get_data(name_entry); ++ const ASN1_STRING *asn1 = X509_NAME_ENTRY_get_data(name_entry); + if(!asn1){ + IBRCOMMON_LOGGER_TAG(SecurityCertificateManager::TAG, error) << "X509_NAME_ENTRY_get_data returned NULL unexpectedly." << IBRCOMMON_LOGGER_ENDL; + continue; +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 44/77] package/lftp: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (42 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 43/77] package/ibrdtnd: Fix build with OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 45/77] package/libesmtp: Fix build with " Bernd Kuhls ` (32 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0002-allow-build-with-OpenSSL-4.x.patch | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 package/lftp/0002-allow-build-with-OpenSSL-4.x.patch diff --git a/package/lftp/0002-allow-build-with-OpenSSL-4.x.patch b/package/lftp/0002-allow-build-with-OpenSSL-4.x.patch new file mode 100644 index 0000000000..258d08fb2d --- /dev/null +++ b/package/lftp/0002-allow-build-with-OpenSSL-4.x.patch @@ -0,0 +1,56 @@ +From e5d53bcb31b1f3792c6ab321e20d566b9a4ff0a5 Mon Sep 17 00:00:00 2001 +From: Rudi Heitbaum <rudi@heitbaum.com> +Date: Sat, 21 Mar 2026 03:56:46 +0000 +Subject: [PATCH] allow build with OpenSSL 4.x + +Upstream: https://github.com/lavv17/lftp/commit/e5d53bcb31b1f3792c6ab321e20d566b9a4ff0a5 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/lftp_ssl.cc | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/lftp_ssl.cc b/src/lftp_ssl.cc +index f53edf24..49328f74 100644 +--- a/src/lftp_ssl.cc ++++ b/src/lftp_ssl.cc +@@ -1022,8 +1022,8 @@ const char *lftp_ssl_openssl::strerror() + int lftp_ssl_openssl::verify_crl(X509_STORE_CTX *ctx) + { + X509_OBJECT *obj=0; +- X509_NAME *subject=0; +- X509_NAME *issuer=0; ++ const X509_NAME *subject=0; ++ const X509_NAME *issuer=0; + X509 *xs=0; + X509_CRL *crl=0; + X509_REVOKED *revoked=0; +@@ -1436,7 +1436,7 @@ void lftp_ssl_openssl::check_certificate() + unsigned char *nulstr = (unsigned char *)""; + unsigned char *peer_CN = nulstr; + +- X509_NAME *name = X509_get_subject_name(server_cert) ; ++ const X509_NAME *name = X509_get_subject_name(server_cert) ; + if(name) + while((j = X509_NAME_get_index_by_NID(name, NID_commonName, i))>=0) + i=j; +@@ -1446,7 +1446,7 @@ void lftp_ssl_openssl::check_certificate() + UTF8 etc. */ + + if(i>=0) { +- ASN1_STRING *tmp = X509_NAME_ENTRY_get_data(X509_NAME_get_entry(name,i)); ++ const ASN1_STRING *tmp = X509_NAME_ENTRY_get_data(X509_NAME_get_entry(name,i)); + + /* In OpenSSL 0.9.7d and earlier, ASN1_STRING_to_UTF8 fails if the input + is already UTF-8 encoded. We check for this case and copy the raw +@@ -1522,8 +1522,8 @@ int lftp_ssl_openssl::verify_callback(int ok,X509_STORE_CTX *ctx) + if(cert!=prev_cert) + { + int depth = X509_STORE_CTX_get_error_depth(ctx); +- X509_NAME *subject = X509_get_subject_name(cert); +- X509_NAME *issuer = X509_get_issuer_name(cert); ++ const X509_NAME *subject = X509_get_subject_name(cert); ++ const X509_NAME *issuer = X509_get_issuer_name(cert); + char *subject_line = X509_NAME_oneline(subject, NULL, 0); + char *issuer_line = X509_NAME_oneline(issuer, NULL, 0); + Log::global->Format(3,"Certificate depth: %d; subject: %s; issuer: %s\n", -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 45/77] package/libesmtp: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (43 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 44/77] package/lftp: Add support for " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 46/77] package/libest: " Bernd Kuhls ` (31 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...-with-OpenSSL-4.0-opaque-ASN1_STRING.patch | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 package/libesmtp/0001-Fix-build-with-OpenSSL-4.0-opaque-ASN1_STRING.patch diff --git a/package/libesmtp/0001-Fix-build-with-OpenSSL-4.0-opaque-ASN1_STRING.patch b/package/libesmtp/0001-Fix-build-with-OpenSSL-4.0-opaque-ASN1_STRING.patch new file mode 100644 index 0000000000..f38435b68a --- /dev/null +++ b/package/libesmtp/0001-Fix-build-with-OpenSSL-4.0-opaque-ASN1_STRING.patch @@ -0,0 +1,36 @@ +From 0705423e2596a21e2d4e1f3fd492792956a4bad3 Mon Sep 17 00:00:00 2001 +From: Ravi Kant Sharma <ravi.kant.sharma@canonical.com> +Date: Tue, 28 Jul 2026 20:35:48 +0200 +Subject: [PATCH] Fix build with OpenSSL 4.0 opaque ASN1_STRING + +OpenSSL 4.0 made ASN1_STRING opaque, so direct access to ->data and +->length fields no longer compiles. Use ASN1_STRING_get0_data() and +ASN1_STRING_length() accessors which are available since OpenSSL 1.1.0. + +Fixes #33 + +Upstream: https://github.com/libesmtp/libESMTP/pull/34 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + smtp-tls.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/smtp-tls.c b/smtp-tls.c +index 9f3e50e..981284e 100644 +--- a/smtp-tls.c ++++ b/smtp-tls.c +@@ -599,8 +599,8 @@ check_acceptable_security (smtp_session_t session, SSL *ssl) + + if (name->type == GEN_DNS) + { +- const char *ia5str = (const char *) name->d.ia5->data; +- size_t ia5len = name->d.ia5->length; ++ const char *ia5str = (const char *) ASN1_STRING_get0_data(name->d.ia5); ++ size_t ia5len = ASN1_STRING_length(name->d.ia5); + + hasaltname = 1; + if (strlen (ia5str) == ia5len && match_domain (host, ia5str)) +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 46/77] package/libest: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (44 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 45/77] package/libesmtp: Fix build with " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-20 11:39 ` Thomas Petazzoni via buildroot 2026-09-19 15:58 ` [Buildroot] [PATCH v2 47/77] package/libkrb5: Add support for " Bernd Kuhls ` (30 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...r-opaque-ASN1_STRING-OpenSSL-4-compa.patch | 60 +++ ...stead-of-the-ENGINE-API-on-OpenSSL-4.patch | 64 ++++ ...-Port-ossl_srv.c-copies-to-OpenSSL-4.patch | 358 ++++++++++++++++++ package/libest/Config.in | 1 - 4 files changed, 482 insertions(+), 1 deletion(-) create mode 100644 package/libest/0005-Use-accessors-for-opaque-ASN1_STRING-OpenSSL-4-compa.patch create mode 100644 package/libest/0006-Use-providers-instead-of-the-ENGINE-API-on-OpenSSL-4.patch create mode 100644 package/libest/0007-Port-ossl_srv.c-copies-to-OpenSSL-4.patch diff --git a/package/libest/0005-Use-accessors-for-opaque-ASN1_STRING-OpenSSL-4-compa.patch b/package/libest/0005-Use-accessors-for-opaque-ASN1_STRING-OpenSSL-4-compa.patch new file mode 100644 index 0000000000..13511f0d27 --- /dev/null +++ b/package/libest/0005-Use-accessors-for-opaque-ASN1_STRING-OpenSSL-4-compa.patch @@ -0,0 +1,60 @@ +From 59695d938e0d23dda2eda124164bc8909ab2ddf5 Mon Sep 17 00:00:00 2001 +From: Karl Smeltzer <karl.smeltzer@canonical.com> +Date: Fri, 24 Jul 2026 12:54:56 -0700 +Subject: [PATCH] Use accessors for opaque ASN1_STRING (OpenSSL 4 + compatibility) + +OpenSSL 4.0 makes ASN1_STRING (and its typedefs ASN1_OCTET_STRING / +ASN1_BIT_STRING) opaque. This uses the ASN1_STRING_get0_data() and +ASN1_STRING_length() accessors instead, while keeping the direct access +under HAVE_OLD_OPENSSL. + +Upstream: https://github.com/cisco/libest/pull/136 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/est/est_client.c | 8 ++++++-- + src/est/est_server.c | 4 ++++ + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/est/est_client.c b/src/est/est_client.c +index 8dff9d9..06ca510 100644 +--- a/src/est/est_client.c ++++ b/src/est/est_client.c +@@ -5313,11 +5313,15 @@ EST_ERROR verify_voucher (EST_CTX *ctx) + return (EST_ERR_CLIENT_BRSKI_VOUCHER_VERIFY_FAILED); + } + ++#ifdef HAVE_OLD_OPENSSL + ctx->brski_retrieved_voucher = pkcs7->d.sign->contents->d.data->data; +- ctx->brski_retrieved_voucher_len = pkcs7->d.sign->contents->d.data->length; ++#else ++ ctx->brski_retrieved_voucher = (unsigned char *)ASN1_STRING_get0_data(pkcs7->d.sign->contents->d.data); ++#endif ++ ctx->brski_retrieved_voucher_len = ASN1_STRING_length(pkcs7->d.sign->contents->d.data); + + EST_LOG_INFO("Voucher verify passed. Voucher =\n %s", +- pkcs7->d.sign->contents->d.data->data); ++ ctx->brski_retrieved_voucher); + + return (EST_ERR_NONE); + } +diff --git a/src/est/est_server.c b/src/est/est_server.c +index d047b48..4b4d617 100644 +--- a/src/est/est_server.c ++++ b/src/est/est_server.c +@@ -1133,7 +1133,11 @@ int est_tls_uid_auth (EST_CTX *ctx, SSL *ssl, X509_REQ *req) + */ + tls_uid = est_get_tls_uid(ssl, &uid_len, 0); + if (tls_uid) { ++#ifdef HAVE_OLD_OPENSSL + i = memcmp_s(tls_uid, uid_len, bs->data, uid_len, &diff); ++#else ++ i = memcmp_s(tls_uid, uid_len, ASN1_STRING_get0_data(bs), uid_len, &diff); ++#endif + if (i == EOK && !diff) { + EST_LOG_INFO("PoP is valid"); + rv = EST_ERR_NONE; +-- +2.47.3 + diff --git a/package/libest/0006-Use-providers-instead-of-the-ENGINE-API-on-OpenSSL-4.patch b/package/libest/0006-Use-providers-instead-of-the-ENGINE-API-on-OpenSSL-4.patch new file mode 100644 index 0000000000..3ef41c4db6 --- /dev/null +++ b/package/libest/0006-Use-providers-instead-of-the-ENGINE-API-on-OpenSSL-4.patch @@ -0,0 +1,64 @@ +From fdf43891c4cffd5f9a7776a6195a636988c7aed1 Mon Sep 17 00:00:00 2001 +From: Karl Smeltzer <karl.smeltzer@canonical.com> +Date: Fri, 24 Jul 2026 12:55:06 -0700 +Subject: [PATCH] Use providers instead of the ENGINE API on OpenSSL 4 (est.h) + +OpenSSL 4.0 removes the ENGINE API, so the est_apps_startup() / +est_apps_shutdown() macros in est.h no longer link: they call +ENGINE_load_builtin_engines() / ENGINE_cleanup() and friends. + +Add OpenSSL >= 4.0 variants of both macros that load the default +provider instead, keeping the existing variants for older versions, +matching the HAVE_OLD_OPENSSL pattern already used in this header. + +Upstream: https://github.com/cisco/libest/pull/136 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/est/est.h | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/src/est/est.h b/src/est/est.h +index ffbe85f..716dd7e 100644 +--- a/src/est/est.h ++++ b/src/est/est.h +@@ -25,6 +25,9 @@ + #include <openssl/engine.h> + #include <openssl/conf.h> + #include <openssl/srp.h> ++#if OPENSSL_VERSION_NUMBER >= 0x40000000L ++#include <openssl/provider.h> ++#endif + + #ifdef __cplusplus + extern "C" { +@@ -829,6 +832,13 @@ LIBEST_API EST_ERROR est_disable_performance_timers(EST_CTX *ctx); + ENGINE_load_builtin_engines(); \ + SSL_library_init(); \ + SSL_load_error_strings(); } while (0) ++#elif OPENSSL_VERSION_NUMBER >= 0x40000000L ++#define est_apps_startup() \ ++ do { ERR_load_crypto_strings(); \ ++ OpenSSL_add_all_algorithms(); \ ++ OSSL_PROVIDER_load(NULL, "default"); \ ++ SSL_library_init(); \ ++ SSL_load_error_strings(); } while (0) + #else + #define est_apps_startup() \ + do { ERR_load_crypto_strings(); \ +@@ -854,6 +864,12 @@ LIBEST_API EST_ERROR est_disable_performance_timers(EST_CTX *ctx); + CRYPTO_cleanup_all_ex_data(); \ + ERR_remove_thread_state(NULL); \ + ERR_free_strings(); } while (0) ++#elif OPENSSL_VERSION_NUMBER >= 0x40000000L ++#define est_apps_shutdown() \ ++ do { CONF_modules_unload(1); \ ++ OBJ_cleanup(); EVP_cleanup(); \ ++ CRYPTO_cleanup_all_ex_data(); \ ++ ERR_free_strings(); } while (0) + #else + #define est_apps_shutdown() \ + do { CONF_modules_unload(1); \ +-- +2.47.3 + diff --git a/package/libest/0007-Port-ossl_srv.c-copies-to-OpenSSL-4.patch b/package/libest/0007-Port-ossl_srv.c-copies-to-OpenSSL-4.patch new file mode 100644 index 0000000000..0a62049fbc --- /dev/null +++ b/package/libest/0007-Port-ossl_srv.c-copies-to-OpenSSL-4.patch @@ -0,0 +1,358 @@ +From b2bcfd65b825a2adf8f9f3e8801211fae2332e17 Mon Sep 17 00:00:00 2001 +From: Karl Smeltzer <karl.smeltzer@canonical.com> +Date: Fri, 24 Jul 2026 12:55:19 -0700 +Subject: [PATCH] Port ossl_srv.c copies to OpenSSL 4 + +Both ossl_srv.c copies (example/server, test/util) fail to build +against OpenSSL 4.0 due to relying on removed functionality. + +Fixes: +- Add a shim mapping ASN1_STRING_get0_data() to ASN1_STRING_data() on + OpenSSL < 1.1.0, then use the ASN1_STRING_type/length/get0_data + accessors unconditionally. These files do not include config.h, so + HAVE_OLD_OPENSSL is never defined here; keying on + OPENSSL_VERSION_NUMBER is what actually keeps 1.0.x building. +- Retag DN entries in the msie_hack path with + X509_NAME_ENTRY_set_data() instead of writing str->type, which has + no setter once the type is opaque. +- Replace BN_pseudo_rand() with BN_rand(), available on all versions. +- Ifdef out the FORMAT_ENGINE branch on OpenSSL >= 4.0. + +Upstream: https://github.com/cisco/libest/pull/136 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + example/server/ossl_srv.c | 69 +++++++++++++++++++++++---------------- + test/util/ossl_srv.c | 67 ++++++++++++++++++++++--------------- + 2 files changed, 82 insertions(+), 54 deletions(-) + +diff --git a/example/server/ossl_srv.c b/example/server/ossl_srv.c +index b87c2d1..3610e93 100644 +--- a/example/server/ossl_srv.c ++++ b/example/server/ossl_srv.c +@@ -90,6 +90,10 @@ + #include <openssl/bio.h> + #include "apps.h" //taken from openssl/apps/apps.h + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#define ASN1_STRING_get0_data ASN1_STRING_data ++#endif ++ + extern BIO *bio_err; + BIO *cacerts = NULL; + static int msie_hack = 0; +@@ -317,6 +321,7 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin, + BIO_printf(err, "no keyfile specified\n"); + goto end; + } ++#if OPENSSL_VERSION_NUMBER < 0x40000000L + if (format == FORMAT_ENGINE) { + if (!e) + BIO_printf(err, "no engine specified\n"); +@@ -330,6 +335,7 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin, + } + goto end; + } ++#endif + key = BIO_new(BIO_s_file()); + if (key == NULL) { + ERR_print_errors(err); +@@ -883,7 +889,7 @@ int rand_serial(BIGNUM *b, ASN1_INTEGER *ai) { + if (!btmp) + return 0; + +- if (!BN_pseudo_rand(btmp, SERIAL_RAND_BITS, 0, 0)) ++ if (!BN_rand(btmp, SERIAL_RAND_BITS, 0, 0)) + goto error; + if (ai && !BN_to_ASN1_INTEGER(btmp, ai)) + goto error; +@@ -1304,14 +1310,14 @@ static int do_updatedb(CA_DB *db) { + + /* get actual time and make a string */ + a_tm = X509_gmtime_adj(a_tm, 0); +- a_tm_s = (char *) OPENSSL_malloc(a_tm->length+1); ++ a_tm_s = (char *) OPENSSL_malloc(ASN1_STRING_length(a_tm)+1); + if (a_tm_s == NULL) { + cnt = -1; + goto err; + } + +- memcpy(a_tm_s, a_tm->data, a_tm->length); +- a_tm_s[a_tm->length] = '\0'; ++ memcpy(a_tm_s, ASN1_STRING_get0_data(a_tm), ASN1_STRING_length(a_tm)); ++ a_tm_s[ASN1_STRING_length(a_tm)] = '\0'; + + if (strncmp(a_tm_s, "49", 2) <= 0) + a_y2k = 1; +@@ -1367,19 +1373,19 @@ int old_entry_print(BIO *bp, ASN1_OBJECT *obj, ASN1_STRING *str) { + *(pbuf++) = '\0'; + BIO_puts(bp, buf); + +- if (str->type == V_ASN1_PRINTABLESTRING) ++ if (ASN1_STRING_type(str) == V_ASN1_PRINTABLESTRING) + BIO_printf(bp, "PRINTABLE:'"); +- else if (str->type == V_ASN1_T61STRING) ++ else if (ASN1_STRING_type(str) == V_ASN1_T61STRING) + BIO_printf(bp, "T61STRING:'"); +- else if (str->type == V_ASN1_IA5STRING) ++ else if (ASN1_STRING_type(str) == V_ASN1_IA5STRING) + BIO_printf(bp, "IA5STRING:'"); +- else if (str->type == V_ASN1_UNIVERSALSTRING) ++ else if (ASN1_STRING_type(str) == V_ASN1_UNIVERSALSTRING) + BIO_printf(bp, "UNIVERSALSTRING:'"); + else +- BIO_printf(bp, "ASN.1 %2d:'", str->type); ++ BIO_printf(bp, "ASN.1 %2d:'", ASN1_STRING_type(str)); + +- p = (char *) str->data; +- for (j = str->length; j > 0; j--) { ++ p = (char *) ASN1_STRING_get0_data(str); ++ for (j = ASN1_STRING_length(str); j > 0; j--) { + if ((*p >= ' ') && (*p <= '~')) + BIO_printf(bp, "%c", *p); + else if (*p & 0x80) +@@ -1505,16 +1511,22 @@ STACK_OF(OPENSSL_STRING) *sigopts, STACK_OF(CONF_VALUE) *policy, CA_DB *db, + nid = OBJ_obj2nid(X509_NAME_ENTRY_get_object(ne)); + #endif + +- if (str->type == V_ASN1_UNIVERSALSTRING) ++ if (ASN1_STRING_type(str) == V_ASN1_UNIVERSALSTRING) + ASN1_UNIVERSALSTRING_to_string(str); + +- if ((str->type == V_ASN1_IA5STRING) +- && (nid != NID_pkcs9_emailAddress)) +- str->type = V_ASN1_T61STRING; ++ if ((ASN1_STRING_type(str) == V_ASN1_IA5STRING) ++ && (nid != NID_pkcs9_emailAddress)) { ++ X509_NAME_ENTRY_set_data(ne, V_ASN1_T61STRING, ++ ASN1_STRING_get0_data(str), ASN1_STRING_length(str)); ++ str = X509_NAME_ENTRY_get_data(ne); ++ } + + if ((nid == NID_pkcs9_emailAddress) +- && (str->type == V_ASN1_PRINTABLESTRING)) +- str->type = V_ASN1_IA5STRING; ++ && (ASN1_STRING_type(str) == V_ASN1_PRINTABLESTRING)) { ++ X509_NAME_ENTRY_set_data(ne, V_ASN1_IA5STRING, ++ ASN1_STRING_get0_data(str), ASN1_STRING_length(str)); ++ str = X509_NAME_ENTRY_get_data(ne); ++ } + } + + /* If no EMAIL is wanted in the subject */ +@@ -1523,17 +1535,18 @@ STACK_OF(OPENSSL_STRING) *sigopts, STACK_OF(CONF_VALUE) *policy, CA_DB *db, + + /* check some things */ + if ((OBJ_obj2nid(obj) == NID_pkcs9_emailAddress) +- && (str->type != V_ASN1_IA5STRING)) { ++ && (ASN1_STRING_type(str) != V_ASN1_IA5STRING)) { + BIO_printf(bio_err, + "\nemailAddress type needs to be of type IA5STRING\n"); + goto err; + } +- if ((str->type != V_ASN1_BMPSTRING) +- && (str->type != V_ASN1_UTF8STRING)) { +- j = ASN1_PRINTABLE_type(str->data, str->length); +- if (((j == V_ASN1_T61STRING) && (str->type != V_ASN1_T61STRING)) ++ if ((ASN1_STRING_type(str) != V_ASN1_BMPSTRING) ++ && (ASN1_STRING_type(str) != V_ASN1_UTF8STRING)) { ++ j = ASN1_PRINTABLE_type(ASN1_STRING_get0_data(str), ++ ASN1_STRING_length(str)); ++ if (((j == V_ASN1_T61STRING) && (ASN1_STRING_type(str) != V_ASN1_T61STRING)) + || ((j == V_ASN1_IA5STRING) +- && (str->type == V_ASN1_PRINTABLESTRING))) { ++ && (ASN1_STRING_type(str) == V_ASN1_PRINTABLESTRING))) { + BIO_printf(bio_err, + "\nThe string contains characters that are illegal for the ASN.1 type\n"); + goto err; +@@ -1631,8 +1644,8 @@ STACK_OF(OPENSSL_STRING) *sigopts, STACK_OF(CONF_VALUE) *policy, CA_DB *db, + BIO_printf(bio_err, + "The %s field needed to be the same in the\nCA certificate (%s) and the request (%s)\n", + cv->name, +- ((str2 == NULL) ? "NULL" : (char *) str2->data), +- ((str == NULL) ? "NULL" : (char *) str->data)); ++ ((str2 == NULL) ? "NULL" : (char *) ASN1_STRING_get0_data(str2)), ++ ((str == NULL) ? "NULL" : (char *) ASN1_STRING_get0_data(str))); + goto err; + } + } else { +@@ -1935,9 +1948,9 @@ STACK_OF(OPENSSL_STRING) *sigopts, STACK_OF(CONF_VALUE) *policy, CA_DB *db, + row[DB_type] = (char *) OPENSSL_malloc(2); + + tm = X509_get_notAfter(ret); +- row[DB_exp_date] = (char *) OPENSSL_malloc(tm->length+1); +- memcpy(row[DB_exp_date], tm->data, tm->length); +- row[DB_exp_date][tm->length] = '\0'; ++ row[DB_exp_date] = (char *) OPENSSL_malloc(ASN1_STRING_length(tm)+1); ++ memcpy(row[DB_exp_date], ASN1_STRING_get0_data(tm), ASN1_STRING_length(tm)); ++ row[DB_exp_date][ASN1_STRING_length(tm)] = '\0'; + + row[DB_rev_date] = NULL; + +diff --git a/test/util/ossl_srv.c b/test/util/ossl_srv.c +index 3efefa4..6ea539a 100644 +--- a/test/util/ossl_srv.c ++++ b/test/util/ossl_srv.c +@@ -91,6 +91,10 @@ + #include <openssl/bio.h> + #include "apps.h" //taken from openssl/apps/apps.h + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#define ASN1_STRING_get0_data ASN1_STRING_data ++#endif ++ + extern BIO *bio_err; + BIO *cacerts = NULL; + static int msie_hack=0; +@@ -345,6 +349,7 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin, + BIO_printf(err,"no keyfile specified\n"); + goto end; + } ++#if OPENSSL_VERSION_NUMBER < 0x40000000L + if (format == FORMAT_ENGINE) + { + if (!e) +@@ -361,6 +366,7 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin, + } + goto end; + } ++#endif + key=BIO_new(BIO_s_file()); + if (key == NULL) + { +@@ -971,7 +977,7 @@ int rand_serial(BIGNUM *b, ASN1_INTEGER *ai) + if (!btmp) + return 0; + +- if (!BN_pseudo_rand(btmp, SERIAL_RAND_BITS, 0, 0)) ++ if (!BN_rand(btmp, SERIAL_RAND_BITS, 0, 0)) + goto error; + if (ai && !BN_to_ASN1_INTEGER(btmp, ai)) + goto error; +@@ -1434,15 +1440,15 @@ static int do_updatedb (CA_DB *db) + + /* get actual time and make a string */ + a_tm = X509_gmtime_adj(a_tm, 0); +- a_tm_s = (char *) OPENSSL_malloc(a_tm->length+1); ++ a_tm_s = (char *) OPENSSL_malloc(ASN1_STRING_length(a_tm)+1); + if (a_tm_s == NULL) + { + cnt = -1; + goto err; + } + +- memcpy(a_tm_s, a_tm->data, a_tm->length); +- a_tm_s[a_tm->length] = '\0'; ++ memcpy(a_tm_s, ASN1_STRING_get0_data(a_tm), ASN1_STRING_length(a_tm)); ++ a_tm_s[ASN1_STRING_length(a_tm)] = '\0'; + + if (strncmp(a_tm_s, "49", 2) <= 0) + a_y2k = 1; +@@ -1508,19 +1514,19 @@ int old_entry_print(BIO *bp, ASN1_OBJECT *obj, ASN1_STRING *str) + *(pbuf++)='\0'; + BIO_puts(bp,buf); + +- if (str->type == V_ASN1_PRINTABLESTRING) ++ if (ASN1_STRING_type(str) == V_ASN1_PRINTABLESTRING) + BIO_printf(bp,"PRINTABLE:'"); +- else if (str->type == V_ASN1_T61STRING) ++ else if (ASN1_STRING_type(str) == V_ASN1_T61STRING) + BIO_printf(bp,"T61STRING:'"); +- else if (str->type == V_ASN1_IA5STRING) ++ else if (ASN1_STRING_type(str) == V_ASN1_IA5STRING) + BIO_printf(bp,"IA5STRING:'"); +- else if (str->type == V_ASN1_UNIVERSALSTRING) ++ else if (ASN1_STRING_type(str) == V_ASN1_UNIVERSALSTRING) + BIO_printf(bp,"UNIVERSALSTRING:'"); + else +- BIO_printf(bp,"ASN.1 %2d:'",str->type); +- +- p=(char *)str->data; +- for (j=str->length; j>0; j--) ++ BIO_printf(bp,"ASN.1 %2d:'",ASN1_STRING_type(str)); ++ ++ p=(char *)ASN1_STRING_get0_data(str); ++ for (j=ASN1_STRING_length(str); j>0; j--) + { + if ((*p >= ' ') && (*p <= '~')) + BIO_printf(bp,"%c",*p); +@@ -1658,16 +1664,24 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst, + #else + nid = OBJ_obj2nid(X509_NAME_ENTRY_get_object(ne)); + #endif +- if (str->type == V_ASN1_UNIVERSALSTRING) ++ if (ASN1_STRING_type(str) == V_ASN1_UNIVERSALSTRING) + ASN1_UNIVERSALSTRING_to_string(str); + +- if ((str->type == V_ASN1_IA5STRING) && ++ if ((ASN1_STRING_type(str) == V_ASN1_IA5STRING) && + (nid != NID_pkcs9_emailAddress)) +- str->type=V_ASN1_T61STRING; ++ { ++ X509_NAME_ENTRY_set_data(ne, V_ASN1_T61STRING, ++ ASN1_STRING_get0_data(str), ASN1_STRING_length(str)); ++ str=X509_NAME_ENTRY_get_data(ne); ++ } + + if ((nid == NID_pkcs9_emailAddress) && +- (str->type == V_ASN1_PRINTABLESTRING)) +- str->type=V_ASN1_IA5STRING; ++ (ASN1_STRING_type(str) == V_ASN1_PRINTABLESTRING)) ++ { ++ X509_NAME_ENTRY_set_data(ne, V_ASN1_IA5STRING, ++ ASN1_STRING_get0_data(str), ASN1_STRING_length(str)); ++ str=X509_NAME_ENTRY_get_data(ne); ++ } + } + + /* If no EMAIL is wanted in the subject */ +@@ -1676,18 +1690,18 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst, + + /* check some things */ + if ((OBJ_obj2nid(obj) == NID_pkcs9_emailAddress) && +- (str->type != V_ASN1_IA5STRING)) ++ (ASN1_STRING_type(str) != V_ASN1_IA5STRING)) + { + BIO_printf(bio_err,"\nemailAddress type needs to be of type IA5STRING\n"); + goto err; + } +- if ((str->type != V_ASN1_BMPSTRING) && (str->type != V_ASN1_UTF8STRING)) ++ if ((ASN1_STRING_type(str) != V_ASN1_BMPSTRING) && (ASN1_STRING_type(str) != V_ASN1_UTF8STRING)) + { +- j=ASN1_PRINTABLE_type(str->data,str->length); ++ j=ASN1_PRINTABLE_type(ASN1_STRING_get0_data(str),ASN1_STRING_length(str)); + if ( ((j == V_ASN1_T61STRING) && +- (str->type != V_ASN1_T61STRING)) || ++ (ASN1_STRING_type(str) != V_ASN1_T61STRING)) || + ((j == V_ASN1_IA5STRING) && +- (str->type == V_ASN1_PRINTABLESTRING))) ++ (ASN1_STRING_type(str) == V_ASN1_PRINTABLESTRING))) + { + BIO_printf(bio_err,"\nThe string contains characters that are illegal for the ASN.1 type\n"); + goto err; +@@ -1791,7 +1805,8 @@ again2: + } + if (j < 0) + { +- BIO_printf(bio_err,"The %s field needed to be the same in the\nCA certificate (%s) and the request (%s)\n",cv->name,((str2 == NULL)?"NULL":(char *)str2->data),((str == NULL)?"NULL":(char *)str->data)); ++ BIO_printf(bio_err,"The %s field needed to be the same in the\nCA certificate (%s) and the request (%s)\n",cv->name, ++ ((str2 == NULL)?"NULL":(char *)ASN1_STRING_get0_data(str2)),((str == NULL)?"NULL":(char *)ASN1_STRING_get0_data(str))); + goto err; + } + } +@@ -2098,9 +2113,9 @@ again2: + row[DB_type]=(char *)OPENSSL_malloc(2); + + tm=X509_get_notAfter(ret); +- row[DB_exp_date]=(char *)OPENSSL_malloc(tm->length+1); +- memcpy(row[DB_exp_date],tm->data,tm->length); +- row[DB_exp_date][tm->length]='\0'; ++ row[DB_exp_date]=(char *)OPENSSL_malloc(ASN1_STRING_length(tm)+1); ++ memcpy(row[DB_exp_date],ASN1_STRING_get0_data(tm),ASN1_STRING_length(tm)); ++ row[DB_exp_date][ASN1_STRING_length(tm)]='\0'; + + row[DB_rev_date]=NULL; + +-- +2.47.3 + diff --git a/package/libest/Config.in b/package/libest/Config.in index 3a0328c2f8..bd5f40afae 100644 --- a/package/libest/Config.in +++ b/package/libest/Config.in @@ -5,7 +5,6 @@ config BR2_PACKAGE_LIBEST bool "libest" depends on !BR2_STATIC_LIBS # libexecinfo or glibc select BR2_PACKAGE_LIBEXECINFO if !BR2_TOOLCHAIN_USES_GLIBC - select BR2_PACKAGE_LIBOPENSSL_ENGINES select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL select BR2_PACKAGE_SAFECLIB -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 46/77] package/libest: Fix build with OpenSSL 4.0.0 2026-09-19 15:58 ` [Buildroot] [PATCH v2 46/77] package/libest: " Bernd Kuhls @ 2026-09-20 11:39 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 11:39 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:58:11PM +0200, Bernd Kuhls wrote: > + #ifdef __cplusplus > + extern "C" { > +@@ -829,6 +832,13 @@ LIBEST_API EST_ERROR est_disable_performance_timers(EST_CTX *ctx); > + ENGINE_load_builtin_engines(); \ > + SSL_library_init(); \ > + SSL_load_error_strings(); } while (0) > ++#elif OPENSSL_VERSION_NUMBER >= 0x40000000L > ++#define est_apps_startup() \ > ++ do { ERR_load_crypto_strings(); \ > ++ OpenSSL_add_all_algorithms(); \ > ++ OSSL_PROVIDER_load(NULL, "default"); \ > ++ SSL_library_init(); \ > ++ SSL_load_error_strings(); } while (0) > + #else Looking at this, I wasn't sure how it would still build with OpenSSL 3.x with engines disabled as done by: > diff --git a/package/libest/Config.in b/package/libest/Config.in > index 3a0328c2f8..bd5f40afae 100644 > --- a/package/libest/Config.in > +++ b/package/libest/Config.in > @@ -5,7 +5,6 @@ config BR2_PACKAGE_LIBEST > bool "libest" > depends on !BR2_STATIC_LIBS # libexecinfo or glibc > select BR2_PACKAGE_LIBEXECINFO if !BR2_TOOLCHAIN_USES_GLIBC > - select BR2_PACKAGE_LIBOPENSSL_ENGINES but it does build fine, so: applied to master, thanks! Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 47/77] package/libkrb5: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (45 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 46/77] package/libest: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 48/77] package/luvi: fix build without c++ Bernd Kuhls ` (29 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...eck_host-to-verify-KKDCP-server-cert.patch | 252 ++++++++++++++ ...Improve-future-OpenSSL-compatibility.patch | 327 ++++++++++++++++++ 2 files changed, 579 insertions(+) create mode 100644 package/libkrb5/0002-Use-X509_check_host-to-verify-KKDCP-server-cert.patch create mode 100644 package/libkrb5/0003-Improve-future-OpenSSL-compatibility.patch diff --git a/package/libkrb5/0002-Use-X509_check_host-to-verify-KKDCP-server-cert.patch b/package/libkrb5/0002-Use-X509_check_host-to-verify-KKDCP-server-cert.patch new file mode 100644 index 0000000000..d1411cf0d5 --- /dev/null +++ b/package/libkrb5/0002-Use-X509_check_host-to-verify-KKDCP-server-cert.patch @@ -0,0 +1,252 @@ +From f5bbfa4821cf590a4748f96d0e016bc0485e95c4 Mon Sep 17 00:00:00 2001 +From: Greg Hudson <ghudson@mit.edu> +Date: Wed, 25 Feb 2026 19:05:40 -0500 +Subject: [PATCH] Use X509_check_host() to verify KKDCP server cert + +In the k5tls module, rely on X509_check_host() and +X509_check_ip_asc(), which were added in OpenSSL 1.0.2, instead of +doing our own verification. + +There is one notable difference in behavior: X509_check_host() admits +wildcards with a prefix or suffix (but not both) within the label, +like "kdc*.mydomain.com". The old code only allows a wildcard to +match a complete label. + +ticket: 9198 (new) + +Upstream: https://github.com/krb5/krb5/commit/f5bbfa4821cf590a4748f96d0e016bc0485e95c4 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/plugins/tls/k5tls/openssl.c | 211 +------------------------------- + 1 file changed, 6 insertions(+), 205 deletions(-) + +diff --git a/src/plugins/tls/k5tls/openssl.c b/src/plugins/tls/k5tls/openssl.c +index aab67c01cbc..42d72dc9ec2 100644 +--- a/src/plugins/tls/k5tls/openssl.c ++++ b/src/plugins/tls/k5tls/openssl.c +@@ -71,218 +71,19 @@ flush_errors(krb5_context context) + } + } + +-/* Return the passed-in character, lower-cased if it's an ASCII character. */ +-static inline char +-ascii_tolower(char p) +-{ +- if (KRB5_UPPER(p)) +- return p + ('a' - 'A'); +- return p; +-} +- +-/* +- * Check a single label. If allow_wildcard is true, and the presented name +- * includes a wildcard, return true and note that we matched a wildcard. +- * Otherwise, for both the presented and expected values, do a case-insensitive +- * comparison of ASCII characters, and a case-sensitive comparison of +- * everything else. +- */ +-static krb5_boolean +-label_match(const char *presented, size_t plen, const char *expected, +- size_t elen, krb5_boolean allow_wildcard, krb5_boolean *wildcard) +-{ +- unsigned int i; +- +- if (allow_wildcard && plen == 1 && presented[0] == '*') { +- *wildcard = TRUE; +- return TRUE; +- } +- +- if (plen != elen) +- return FALSE; +- +- for (i = 0; i < elen; i++) { +- if (ascii_tolower(presented[i]) != ascii_tolower(expected[i])) +- return FALSE; +- } +- return TRUE; +-} +- +-/* Break up the two names and check them, label by label. */ +-static krb5_boolean +-domain_match(const char *presented, size_t plen, const char *expected) +-{ +- const char *p, *q, *r, *s; +- int n_label; +- krb5_boolean used_wildcard = FALSE; +- +- n_label = 0; +- p = presented; +- r = expected; +- while (p < presented + plen && *r != '\0') { +- q = memchr(p, '.', plen - (p - presented)); +- if (q == NULL) +- q = presented + plen; +- s = r + strcspn(r, "."); +- if (!label_match(p, q - p, r, s - r, n_label == 0, &used_wildcard)) +- return FALSE; +- p = q < presented + plen ? q + 1 : q; +- r = *s ? s + 1 : s; +- n_label++; +- } +- if (used_wildcard && n_label <= 2) +- return FALSE; +- if (p == presented + plen && *r == '\0') +- return TRUE; +- return FALSE; +-} +- +-/* Fetch the list of subjectAltNames from a certificate. */ +-static GENERAL_NAMES * +-get_cert_sans(X509 *x) +-{ +- int ext; +- X509_EXTENSION *san_ext; +- +- ext = X509_get_ext_by_NID(x, NID_subject_alt_name, -1); +- if (ext < 0) +- return NULL; +- san_ext = X509_get_ext(x, ext); +- if (san_ext == NULL) +- return NULL; +- return X509V3_EXT_d2i(san_ext); +-} +- +-/* Fetch a CN value from the subjct name field, returning its length, or -1 if +- * there is no subject name or it contains no CN value. */ +-static int +-get_cert_cn(X509 *x, char *buf, size_t bufsize) +-{ +- X509_NAME *name; +- +- name = X509_get_subject_name(x); +- if (name == NULL) +- return -1; +- return X509_NAME_get_text_by_NID(name, NID_commonName, buf, bufsize); +-} +- +-/* Return true if text matches any of the addresses we can recover from x. */ +-static krb5_boolean +-check_cert_address(X509 *x, const char *text) +-{ +- char buf[1024]; +- GENERAL_NAMES *sans; +- GENERAL_NAME *san = NULL; +- ASN1_OCTET_STRING *ip; +- krb5_boolean found_ip_san = FALSE, matched = FALSE; +- int n_sans, i; +- int name_length; +- struct in_addr sin; +- struct in6_addr sin6; +- +- /* Parse the IP address into an octet string. */ +- ip = ASN1_OCTET_STRING_new(); +- if (ip == NULL) +- return FALSE; +- if (inet_pton(AF_INET, text, &sin)) { +- ASN1_OCTET_STRING_set(ip, (unsigned char *)&sin, sizeof(sin)); +- } else if (inet_pton(AF_INET6, text, &sin6)) { +- ASN1_OCTET_STRING_set(ip, (unsigned char *)&sin6, sizeof(sin6)); +- } else { +- ASN1_OCTET_STRING_free(ip); +- return FALSE; +- } +- +- /* Check for matches in ipaddress subjectAltName values. */ +- sans = get_cert_sans(x); +- if (sans != NULL) { +- n_sans = sk_GENERAL_NAME_num(sans); +- for (i = 0; i < n_sans; i++) { +- san = sk_GENERAL_NAME_value(sans, i); +- if (san->type != GEN_IPADD) +- continue; +- found_ip_san = TRUE; +- matched = (ASN1_OCTET_STRING_cmp(ip, san->d.iPAddress) == 0); +- if (matched) +- break; +- } +- sk_GENERAL_NAME_pop_free(sans, GENERAL_NAME_free); +- } +- ASN1_OCTET_STRING_free(ip); +- +- if (found_ip_san) +- return matched; +- +- /* Check for a match against the CN value in the peer's subject name. */ +- name_length = get_cert_cn(x, buf, sizeof(buf)); +- if (name_length >= 0) { +- /* Do a string compare to check if it's an acceptable value. */ +- return strlen(text) == (size_t)name_length && +- strncmp(text, buf, name_length) == 0; +- } +- +- /* We didn't find a match. */ +- return FALSE; +-} +- +-/* Return true if expected matches any of the names we can recover from x. */ +-static krb5_boolean +-check_cert_servername(X509 *x, const char *expected) +-{ +- char buf[1024]; +- GENERAL_NAMES *sans; +- GENERAL_NAME *san = NULL; +- unsigned char *dnsname; +- krb5_boolean found_dns_san = FALSE, matched = FALSE; +- int name_length, n_sans, i; +- +- /* Check for matches in dnsname subjectAltName values. */ +- sans = get_cert_sans(x); +- if (sans != NULL) { +- n_sans = sk_GENERAL_NAME_num(sans); +- for (i = 0; i < n_sans; i++) { +- san = sk_GENERAL_NAME_value(sans, i); +- if (san->type != GEN_DNS) +- continue; +- found_dns_san = TRUE; +- dnsname = NULL; +- name_length = ASN1_STRING_to_UTF8(&dnsname, san->d.dNSName); +- if (dnsname == NULL) +- continue; +- matched = domain_match((char *)dnsname, name_length, expected); +- OPENSSL_free(dnsname); +- if (matched) +- break; +- } +- sk_GENERAL_NAME_pop_free(sans, GENERAL_NAME_free); +- } +- +- if (matched) +- return TRUE; +- if (found_dns_san) +- return matched; +- +- /* Check for a match against the CN value in the peer's subject name. */ +- name_length = get_cert_cn(x, buf, sizeof(buf)); +- if (name_length >= 0) +- return domain_match(buf, name_length, expected); +- +- /* We didn't find a match. */ +- return FALSE; +-} +- + static krb5_boolean + check_cert_name_or_ip(X509 *x, const char *expected_name) + { + struct in_addr in; + struct in6_addr in6; ++ int r; + + if (inet_pton(AF_INET, expected_name, &in) != 0 || +- inet_pton(AF_INET6, expected_name, &in6) != 0) { +- return check_cert_address(x, expected_name); +- } else { +- return check_cert_servername(x, expected_name); +- } ++ inet_pton(AF_INET6, expected_name, &in6) != 0) ++ r = X509_check_ip_asc(x, expected_name, 0); ++ else ++ r = X509_check_host(x, expected_name, 0, 0, NULL); ++ return r == 1; + } + + static int diff --git a/package/libkrb5/0003-Improve-future-OpenSSL-compatibility.patch b/package/libkrb5/0003-Improve-future-OpenSSL-compatibility.patch new file mode 100644 index 0000000000..6b68af89e9 --- /dev/null +++ b/package/libkrb5/0003-Improve-future-OpenSSL-compatibility.patch @@ -0,0 +1,327 @@ +From 5e4e8452328804948d042235bbf58ca457795857 Mon Sep 17 00:00:00 2001 +From: Bob Beck <beck@openssl.org> +Date: Mon, 16 Feb 2026 15:15:55 -0700 +Subject: [PATCH] Improve future OpenSSL compatibility + +Avoid calling deprecated OpenSSL functions when compiling against +versions of OpenSSL where they are deprecated. Add +-DOPENSSL_NO_DEPRECATED to the linux-clang-openssl CI build to help +detect calls to deprecated functions in the future. + +Use const pointer variables to hold values retrieved by accessors +which will return const pointers in OpenSSL 4.0. Define macros to +make certain functions accept these const pointers in versions of +OpenSSL where they don't already do so. + +Use accessor functions instead of direct field access for ASN1_STRING +values, as the type will become opaque in OpenSSL 4.0. + +The PKINIT code is written to assume that DHX support was not present +until OpenSSL 1.1, but it was added in release 1.0.2, causing a +compilation error against 1.0.2 from a double definition of +EVP_PKEY_DHX. Minimally fix the compilation error. (The custom DHX +marshalling code to support 1.0.x could be removed, as 1.0.2 is the +minimum version after commit f5bbfa4821cf590a4748f96d0e016bc0485e95c4, +but the plan is to remove 1.0.x compatibility shortly.) + +Contains work by Frederik Wedel-Heinen +<frederik.wedel-heinen@dencrypt.dk> and Dimitri John Ledkov +<dimitri.ledkov@surgut.co.uk>. + +[ghudson@mit.edu: combined numerous commits; added compatibility +macros; rewrote commit message; fixed 1.0.2 compatibility issue] + +Upstream: https://github.com/krb5/krb5/commit/5e4e8452328804948d042235bbf58ca457795857 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + .github/workflows/build.yml | 10 ++-- + .../preauth/pkinit/pkinit_crypto_openssl.c | 54 ++++++++++++++----- + src/plugins/tls/k5tls/openssl.c | 26 +++++++-- + 3 files changed, 68 insertions(+), 22 deletions(-) + +diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml +index f12422d19a..97f1082c59 100644 +--- a/.github/workflows/build.yml ++++ b/.github/workflows/build.yml +@@ -16,17 +16,17 @@ jobs: + - name: linux-clang + os: ubuntu-latest + compiler: clang +- makevars: CPPFLAGS=-Werror ++ flags: -Werror + configureopts: --enable-asan + - name: linux-clang-openssl + os: ubuntu-latest + compiler: clang +- makevars: CPPFLAGS=-Werror ++ flags: -Werror -DOPENSSL_NO_DEPRECATED + configureopts: --with-crypto-impl=openssl + - name: linux-gcc + os: ubuntu-latest + compiler: gcc +- makevars: CPPFLAGS=-D_FORTIFY_SOURCE=3 ++ flags: -D_FORTIFY_SOURCE=3 + steps: + - name: Checkout repository + uses: actions/checkout@v1 +@@ -39,7 +39,7 @@ jobs: + - name: Build + env: + CC: ${{ matrix.compiler }} +- MAKEVARS: ${{ matrix.makevars }} ++ FLAGS: ${{ matrix.flags }} + CONFIGURE_OPTS: ${{ matrix.configureopts }} + run: | + # For the ksu tests, allow homedir access from other users. +@@ -49,7 +49,7 @@ jobs: + cd src + autoreconf + ./configure --enable-maintainer-mode --with-ldap $CONFIGURE_OPTS --prefix=$HOME/inst +- make $MAKEVARS ++ make CPPFLAGS="$FLAGS" + make check + make install + (cd clients/ksu && make check-ksu) +diff --git a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c +index d1fe18e5ab..aa969aa37c 100644 +--- a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c ++++ b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c +@@ -209,13 +209,20 @@ create_identifiers_from_stack(STACK_OF(X509) *sk, + #define EVP_MD_CTX_new EVP_MD_CTX_create + #define EVP_MD_CTX_free EVP_MD_CTX_destroy + #define ASN1_STRING_get0_data ASN1_STRING_data ++#define X509_STORE_CTX_set0_trusted_stack X509_STORE_CTX_trusted_stack + + /* +- * 1.1 adds DHX support, which uses the RFC 3279 DomainParameters encoding we ++ * 1.0.2 adds DHX support, which uses the RFC 3279 DomainParameters encoding we + * need for PKINIT. For 1.0 we must use the original DH type when creating + * EVP_PKEY objects. + */ ++#ifndef EVP_PKEY_DHX + #define EVP_PKEY_DHX EVP_PKEY_DH ++#endif ++ ++/* Make X509_NAME_print_ex() accept a const name pointer by adding a cast. */ ++#define X509_NAME_print_ex(a, b, c, d) \ ++ X509_NAME_print_ex(a, (X509_NAME *)b, c, d) + + /* 1.1 makes many handle types opaque and adds accessors. Add compatibility + * versions of the new accessors we use for pre-1.1. */ +@@ -295,6 +302,10 @@ compat_ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) + #define EVP_PKEY_get_bits EVP_PKEY_bits + #define EVP_PKEY_get_base_id EVP_PKEY_base_id + ++/* Make X509_dup() accept a const pointer by adding a cast. */ ++#define X509_dup(a) X509_dup((X509 *)a) ++#define i2d_X509_NAME(a, b) i2d_X509_NAME((X509_NAME *)a, b) ++ + /* + * Convert *dh to an EVP_PKEY object, taking ownership of *dh and setting it to + * NULL. On error, return NULL and do not take ownership of or change *dh. +@@ -318,6 +329,11 @@ dh_to_pkey(DH **dh) + } + #endif /* OPENSSL_VERSION_NUMBER < 0x30000000L */ + ++#if OPENSSL_VERSION_NUMBER < 0x40000000L ++/* Make X509V3_EXT_d2i() accept a const pointer by adding a cast. */ ++#define X509V3_EXT_d2i(a) X509V3_EXT_d2i((X509_EXTENSION *)a) ++#endif ++ + /* Encode a bignum as an ASN.1 integer in DER. */ + static int + encode_bn_der(const BIGNUM *bn, uint8_t **der_out, int *len_out) +@@ -1134,6 +1150,13 @@ oerr_cert(krb5_context context, krb5_error_code code, X509_STORE_CTX *certctx, + return oerr(context, code, _("%s (depth %d): %s"), msg, depth, errstr); + } + ++/* Convert an OpenSSL ASN.1 string value to krb5_data, without copying. */ ++static inline krb5_data ++asn1string_to_data(ASN1_STRING *s) ++{ ++ return make_data((char *)ASN1_STRING_get0_data(s), ASN1_STRING_length(s)); ++} ++ + krb5_error_code + pkinit_init_plg_crypto(krb5_context context, + pkinit_plg_crypto_context *cryptoctx) +@@ -1775,7 +1798,7 @@ cms_signeddata_create(krb5_context context, + goto cleanup; + X509_STORE_CTX_init(certctx, certstore, id_cryptoctx->my_cert, + id_cryptoctx->intermediateCAs); +- X509_STORE_CTX_trusted_stack(certctx, id_cryptoctx->trustedCAs); ++ X509_STORE_CTX_set0_trusted_stack(certctx, id_cryptoctx->trustedCAs); + if (!X509_verify_cert(certctx)) { + retval = oerr_cert(context, 0, certctx, + _("Failed to verify own certificate")); +@@ -2002,7 +2025,7 @@ cms_signeddata_verify(krb5_context context, + unsigned char *d; + *is_signed = 0; + octets = CMS_get0_content(cms); +- if (!octets || ((*octets)->type != V_ASN1_OCTET_STRING)) { ++ if (!octets || (ASN1_STRING_type(*octets) != V_ASN1_OCTET_STRING)) { + retval = KRB5KDC_ERR_PREAUTH_FAILED; + krb5_set_error_message(context, retval, + _("Invalid pkinit packet: octet string " +@@ -2058,7 +2081,8 @@ cms_signeddata_verify(krb5_context context, + /* We cannot use CMS_dataInit because there may be no digest */ + octets = CMS_get0_content(cms); + if (octets) +- out = BIO_new_mem_buf((*octets)->data, (*octets)->length); ++ out = BIO_new_mem_buf(ASN1_STRING_get0_data(*octets), ++ ASN1_STRING_length(*octets)); + if (out == NULL) + goto cleanup; + } else { +@@ -2118,7 +2142,7 @@ cms_signeddata_verify(krb5_context context, + + /* add trusted CAs certificates for cert verification */ + if (idctx->trustedCAs != NULL) +- X509_STORE_CTX_trusted_stack(cert_ctx, idctx->trustedCAs); ++ X509_STORE_CTX_set0_trusted_stack(cert_ctx, idctx->trustedCAs); + else { + pkiDebug("unable to find any trusted CAs\n"); + goto cleanup; +@@ -2156,7 +2180,7 @@ cms_signeddata_verify(krb5_context context, + i = X509_verify_cert(cert_ctx); + if (i <= 0) { + int j = X509_STORE_CTX_get_error(cert_ctx); +- X509 *cert; ++ const X509 *cert; + + cert = X509_STORE_CTX_get_current_cert(cert_ctx); + reqctx->received_cert = X509_dup(cert); +@@ -2316,7 +2340,7 @@ crypto_retrieve_X509_sans(krb5_context context, + krb5_principal *princs = NULL; + char **upns = NULL; + unsigned char **dnss = NULL; +- X509_EXTENSION *ext = NULL; ++ const X509_EXTENSION *ext = NULL; + GENERAL_NAMES *ialt = NULL; + GENERAL_NAME *gen = NULL; + +@@ -2379,8 +2403,7 @@ crypto_retrieve_X509_sans(krb5_context context, + gen = sk_GENERAL_NAME_value(ialt, i); + switch (gen->type) { + case GEN_OTHERNAME: +- name.length = gen->d.otherName->value->value.sequence->length; +- name.data = (char *)gen->d.otherName->value->value.sequence->data; ++ name = asn1string_to_data(gen->d.otherName->value->value.sequence); + if (princs != NULL && + OBJ_cmp(plgctx->id_pkinit_san, + gen->d.otherName->type_id) == 0) { +@@ -2414,12 +2437,13 @@ crypto_retrieve_X509_sans(krb5_context context, + case GEN_DNS: + if (dnss != NULL) { + /* Prevent abuse of embedded null characters. */ +- if (memchr(gen->d.dNSName->data, '\0', gen->d.dNSName->length)) ++ if (memchr(ASN1_STRING_get0_data(gen->d.dNSName), '\0', ++ ASN1_STRING_length(gen->d.dNSName))) + break; + pkiDebug("%s: found dns name = %s\n", __FUNCTION__, +- gen->d.dNSName->data); ++ ASN1_STRING_get0_data(gen->d.dNSName)); + dnss[d] = (unsigned char *) +- strdup((char *)gen->d.dNSName->data); ++ strdup((char *)ASN1_STRING_get0_data(gen->d.dNSName)); + if (dnss[d] == NULL) { + pkiDebug("%s: failed to duplicate dns name\n", + __FUNCTION__); +@@ -3094,8 +3118,10 @@ int + pkinit_openssl_init(void) + { + /* Initialize OpenSSL. */ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + ERR_load_crypto_strings(); + OpenSSL_add_all_algorithms(); ++#endif + return 0; + } + +@@ -4766,7 +4792,7 @@ crypto_retrieve_X509_key_usage(krb5_context context, + } + + static krb5_error_code +-rfc2253_name(X509_NAME *name, char **str_out) ++rfc2253_name(const X509_NAME *name, char **str_out) + { + BIO *b = NULL; + char *str; +@@ -5227,7 +5253,7 @@ create_identifiers_from_stack(STACK_OF(X509) *sk, + int i = 0, sk_size = sk_X509_num(sk); + krb5_external_principal_identifier **krb5_cas = NULL; + X509 *x = NULL; +- X509_NAME *xn = NULL; ++ const X509_NAME *xn = NULL; + unsigned char *p = NULL; + int len = 0; + PKCS7_ISSUER_AND_SERIAL *is = NULL; +diff --git a/src/plugins/tls/k5tls/openssl.c b/src/plugins/tls/k5tls/openssl.c +index 42d72dc9ec..7763327b7a 100644 +--- a/src/plugins/tls/k5tls/openssl.c ++++ b/src/plugins/tls/k5tls/openssl.c +@@ -38,6 +38,24 @@ + #include <openssl/x509v3.h> + #include <dirent.h> + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++/* Make X509_get_subject_name() accept a const pointer by adding a cast. */ ++#define X509_get_subject_name(a) X509_get_subject_name((X509 *)a) ++ ++/* OpenSSL 1.0 did not have TLS_client_method(); use the best alternative. */ ++#define TLS_client_method() SSLv23_client_method() ++#endif ++ ++#if OPENSSL_VERSION_NUMBER < 0x40000000L ++/* ++ * OpenSSL 4.0 constifies the result of X509_STORE_CTX_get_current_cert() and ++ * the input of X509_check_host() and X509_check_ip_asc(). For prior versions, ++ * make the latter two functions accept const pointers via a cast. ++ */ ++#define X509_check_host(a, b, c, d, e) X509_check_host((X509 *)a, b, c, d, e) ++#define X509_check_ip_asc(a, b, c) X509_check_ip_asc((X509 *)a, b, c) ++#endif ++ + struct k5_tls_handle_st { + SSL *ssl; + char *servername; +@@ -51,9 +69,11 @@ MAKE_INIT_FUNCTION(init_openssl); + int + init_openssl(void) + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + SSL_library_init(); + SSL_load_error_strings(); + OpenSSL_add_all_algorithms(); ++#endif + ex_context_id = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL); + ex_handle_id = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL); + return 0; +@@ -72,7 +92,7 @@ flush_errors(krb5_context context) + } + + static krb5_boolean +-check_cert_name_or_ip(X509 *x, const char *expected_name) ++check_cert_name_or_ip(const X509 *x, const char *expected_name) + { + struct in_addr in; + struct in6_addr in6; +@@ -89,7 +109,7 @@ check_cert_name_or_ip(X509 *x, const char *expected_name) + static int + verify_callback(int preverify_ok, X509_STORE_CTX *store_ctx) + { +- X509 *x; ++ const X509 *x; + SSL *ssl; + BIO *bio; + krb5_context context; +@@ -246,7 +266,7 @@ setup(krb5_context context, SOCKET fd, const char *servername, + return KRB5_PLUGIN_OP_NOTSUPP; + + /* Do general SSL library setup. */ +- ctx = SSL_CTX_new(SSLv23_client_method()); ++ ctx = SSL_CTX_new(TLS_client_method()); + if (ctx == NULL) + goto error; + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 48/77] package/luvi: fix build without c++ 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (46 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 47/77] package/libkrb5: Add support for " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 49/77] package/luvi: bump version to 102-g9fa6c141a Bernd Kuhls ` (28 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Buildroot commit 00317f0aff243986983650671fd220ab040af50f bumped the package to 2.15.0 which first included upstream commit https://github.com/luvit/luvi/commit/262d5f7dff3484285cd8b3bf2ed32ff0f13c8741 that added the miniz submodule. The version of miniz used by luvi contains commit https://github.com/richgel999/miniz/commit/05ab4dc05c9d1e1f951f5849b659e2c7e291a620 which removed "C" from the project variable causing a dependency to c++ which causes build errors when the toolchain does not support c++: -- Check for working CXX compiler: /bin/false - broken This dependency was not intended so we add an upstream commit to fix the problem. Fixes: https://autobuild.buildroot.net/results/2a5/2a5cf09dc9303b11e2a2769c5b0b319284ec1bbb/ Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...eLists.txt-only-require-a-C-compiler.patch | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 package/luvi/0003-CMakeLists.txt-only-require-a-C-compiler.patch diff --git a/package/luvi/0003-CMakeLists.txt-only-require-a-C-compiler.patch b/package/luvi/0003-CMakeLists.txt-only-require-a-C-compiler.patch new file mode 100644 index 0000000000..c68e05bdc7 --- /dev/null +++ b/package/luvi/0003-CMakeLists.txt-only-require-a-C-compiler.patch @@ -0,0 +1,47 @@ +From 383e551cccf41fc2ce1177712d6a37a85d936642 Mon Sep 17 00:00:00 2001 +From: Thomas Devoogdt <thomas@devoogdt.com> +Date: Tue, 1 Apr 2025 22:56:00 +0200 +Subject: [PATCH] CMakeLists.txt: only require a C compiler + +Commit 05ab4dc05c9d1e1f951f5849b659e2c7e291a620 +"Add some catch2 tests" dropped that C flag, +but should instead only have added a simple +enable_language call for tests only. + +Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com> + +Upstream: https://github.com/richgel999/miniz/commit/383e551cccf41fc2ce1177712d6a37a85d936642 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + deps/miniz/CMakeLists.txt | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/deps/miniz/CMakeLists.txt b/deps/miniz/CMakeLists.txt +index 156df83..e0933f8 100644 +--- a/deps/miniz/CMakeLists.txt ++++ b/deps/miniz/CMakeLists.txt +@@ -7,10 +7,10 @@ if(DEFINED PROJECT_NAME) + endif() + + if(CMAKE_MINOR_VERSION LESS 12) +- project(miniz) ++ project(miniz C) + # see issue https://gitlab.kitware.com/cmake/cmake/merge_requests/1799 + else() +- project(miniz) ++ project(miniz C) + set(CMAKE_C_STANDARD 90) + set(CMAKE_VERBOSE_MAKEFILE ON) + # set(CMAKE_C_VISIBILITY_PRESET hidden) +@@ -309,6 +309,7 @@ if(BUILD_FUZZERS) + endif() + + if(BUILD_TESTS) ++ enable_language(CXX) + set(CMAKE_CXX_STANDARD 20) + set(CMAKE_CXX_STANDARD_REQUIRED YES) + +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 49/77] package/luvi: bump version to 102-g9fa6c141a 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (47 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 48/77] package/luvi: fix build without c++ Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 50/77] package/luvi: Fix build with OpenSSL 4.0.0 Bernd Kuhls ` (27 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark This bump includes a bump of the lua-openssl submodule https://github.com/luvit/luvi/commit/98fa10f2823d4a9bb93306bf445d596aa8c4a75f which is a prerequisite for the upcoming bump of OpenSSL to 4.0.2. Removed patches 0001 & 0002 which are included in this bump. Renumbered and rebased remaining patch. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...Lists.txt-only-require-a-C-compiler.patch} | 9 ++- ...ly-disable-GCC-diagnostics-in-ocsp.c.patch | 80 ------------------- ...isable-Wincompatible-pointer-types-f.patch | 54 ------------- package/luvi/luvi.hash | 2 +- package/luvi/luvi.mk | 2 +- 5 files changed, 7 insertions(+), 140 deletions(-) rename package/luvi/{0003-CMakeLists.txt-only-require-a-C-compiler.patch => 0001-CMakeLists.txt-only-require-a-C-compiler.patch} (89%) delete mode 100644 package/luvi/0001-Selectively-disable-GCC-diagnostics-in-ocsp.c.patch delete mode 100644 package/luvi/0002-CMakeLists.txt-disable-Wincompatible-pointer-types-f.patch diff --git a/package/luvi/0003-CMakeLists.txt-only-require-a-C-compiler.patch b/package/luvi/0001-CMakeLists.txt-only-require-a-C-compiler.patch similarity index 89% rename from package/luvi/0003-CMakeLists.txt-only-require-a-C-compiler.patch rename to package/luvi/0001-CMakeLists.txt-only-require-a-C-compiler.patch index c68e05bdc7..550c0fecf8 100644 --- a/package/luvi/0003-CMakeLists.txt-only-require-a-C-compiler.patch +++ b/package/luvi/0001-CMakeLists.txt-only-require-a-C-compiler.patch @@ -12,6 +12,7 @@ Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com> Upstream: https://github.com/richgel999/miniz/commit/383e551cccf41fc2ce1177712d6a37a85d936642 +[Bernd: rebased for 102-g9fa6c141a] Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- deps/miniz/CMakeLists.txt | 5 +++-- @@ -34,14 +35,14 @@ index 156df83..e0933f8 100644 set(CMAKE_C_STANDARD 90) set(CMAKE_VERBOSE_MAKEFILE ON) # set(CMAKE_C_VISIBILITY_PRESET hidden) -@@ -309,6 +309,7 @@ if(BUILD_FUZZERS) +@@ -298,6 +298,7 @@ if(BUILD_FUZZERS) endif() if(BUILD_TESTS) + enable_language(CXX) - set(CMAKE_CXX_STANDARD 20) - set(CMAKE_CXX_STANDARD_REQUIRED YES) - + set(CMAKE_CXX_STANDARD 20) + set(CMAKE_CXX_STANDARD_REQUIRED YES) + -- 2.47.3 diff --git a/package/luvi/0001-Selectively-disable-GCC-diagnostics-in-ocsp.c.patch b/package/luvi/0001-Selectively-disable-GCC-diagnostics-in-ocsp.c.patch deleted file mode 100644 index d29ba37bcf..0000000000 --- a/package/luvi/0001-Selectively-disable-GCC-diagnostics-in-ocsp.c.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 52bc36f5a548543835c24b87e7b7b72a327b1df7 Mon Sep 17 00:00:00 2001 -From: RDW <duckwhale@mail.ru> -Date: Sun, 14 Sep 2025 00:33:10 +0200 -Subject: [PATCH] Selectively disable GCC diagnostics in ocsp.c - -GCC 14 fails to compile the library because -Wincompatible-pointer-types is now fatal. -Since the warning is already disabled for clang here, might as well include GCC also. -Needless to say, this is a workaround and a proper fix would require upstream changes. - -Upstream: https://github.com/zhaozg/lua-openssl/commit/bfeedbe8c06d8b4400fa670edecd452a433ddac4 -[Romain: - - rebase on lua-openssl 0.9.0-0 - - format the patch as luvi patch (patching lua-openssl submodule) -] -Signed-off-by: Romain Naour <romain.naour@smile.fr> ---- - deps/lua-openssl/src/ocsp.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/deps/lua-openssl/src/ocsp.c b/deps/lua-openssl/src/ocsp.c -index ac67a53..00e3b61 100644 ---- a/deps/lua-openssl/src/ocsp.c -+++ b/deps/lua-openssl/src/ocsp.c -@@ -183,15 +183,26 @@ static int openssl_ocsp_request_read(lua_State *L) - BIO *bio = load_bio_object(L, 1); - int pem = lua_gettop(L) > 1 ? auxiliar_checkboolean(L, 2) : 0; - -+#if defined(__GNUC__) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wincompatible-pointer-types" -+#endif -+ - #if defined(__clang__) - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wincompatible-pointer-types" - #endif - OCSP_REQUEST *req = pem ? PEM_read_bio_OCSP_REQUEST(bio, NULL, NULL) - : d2i_OCSP_REQUEST_bio(bio, NULL); -+ -+#if defined(__GNUC__) -+#pragma GCC diagnostic pop -+#endif -+ - #if defined(__clang__) - #pragma clang diagnostic pop - #endif -+ - BIO_free(bio); - - if (req) -@@ -359,15 +370,26 @@ static int openssl_ocsp_response_read(lua_State *L) - int pem = lua_gettop(L) > 1 ? auxiliar_checkboolean(L, 2) : 0; - int ret = 0; - -+#if defined(__GNUC__) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wincompatible-pointer-types" -+#endif -+ - #if defined(__clang__) - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wincompatible-pointer-types" - #endif - OCSP_RESPONSE *res = pem ? PEM_read_bio_OCSP_RESPONSE(bio, NULL, NULL) - : d2i_OCSP_RESPONSE_bio(bio, NULL); -+ -+#if defined(__GNUC__) -+#pragma GCC diagnostic pop -+#endif -+ - #if defined(__clang__) - #pragma clang diagnostic pop - #endif -+ - if (res) - { - PUSH_OBJECT(res, "openssl.ocsp_response"); --- -2.51.0 - diff --git a/package/luvi/0002-CMakeLists.txt-disable-Wincompatible-pointer-types-f.patch b/package/luvi/0002-CMakeLists.txt-disable-Wincompatible-pointer-types-f.patch deleted file mode 100644 index b658fed202..0000000000 --- a/package/luvi/0002-CMakeLists.txt-disable-Wincompatible-pointer-types-f.patch +++ /dev/null @@ -1,54 +0,0 @@ -From c82c147e83d6a21f572353bf6e95dcf3a736490c Mon Sep 17 00:00:00 2001 -From: Romain Naour <romain.naour@smile.fr> -Date: Sat, 13 Sep 2025 23:21:04 +0200 -Subject: [PATCH] CMakeLists.txt: disable Wincompatible-pointer-types for gcc - >= 14 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Backport partially a patch [1] disabling GCC 14 warning -Wincompatible-pointer-types. - -From [1]: -"lua-openssl triggering the incompatible pointer types error by -silencing the warning, which lua-openssl does internally but only for -clang." - -Latest lua-openssl version (0.9.1-0) also disable this warning [2]. - -Fixes: -https://gitlab.com/buildroot.org/buildroot/-/jobs/11271124430 (TestLuvi) - -[1] https://github.com/luvit/luvi/commit/85d7d7bf51bc523159ad579d846cbefbbff38fdb -[2] https://github.com/zhaozg/lua-openssl/commit/bfeedbe8c06d8b4400fa670edecd452a433ddac4 - -Upstream: https://github.com/luvit/luvi/commit/85d7d7bf51bc523159ad579d846cbefbbff38fdb - -Signed-off-by: Romain Naour <romain.naour@smile.fr> ---- - CMakeLists.txt | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0b0007d..bf10de5 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -141,6 +141,14 @@ if (WIN32) - add_library (luvi_renamed src/luvi_renamed.c) - endif () - -+if (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU") -+ add_compile_options(-Wno-incompatible-pointer-types) -+endif() -+ -+if(UNIX) -+ add_definitions(-Wall) -+endif() -+ - if (WITH_LUA_ENGINE STREQUAL Lua) - add_definitions(-DWITH_PLAIN_LUA) - endif () --- -2.51.0 - diff --git a/package/luvi/luvi.hash b/package/luvi/luvi.hash index d8825487db..4b322c119e 100644 --- a/package/luvi/luvi.hash +++ b/package/luvi/luvi.hash @@ -1,3 +1,3 @@ # Locally calculated -sha256 f933bf1899a5419b26d46d7f111aaa50101831922716ffaed62e355b1bc9de1d luvi-v2.15.0-git4.tar.gz +sha256 8dee14773ffa59e3015c2f3923d4fb62f0021961aa5669373f6bcf553847c73b luvi-102-g9fa6c141abf24a5a7fe49ca39335210fa1be3ab4-git4.tar.gz sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt diff --git a/package/luvi/luvi.mk b/package/luvi/luvi.mk index 78de76aa45..157d9a1401 100644 --- a/package/luvi/luvi.mk +++ b/package/luvi/luvi.mk @@ -4,7 +4,7 @@ # ################################################################################ -LUVI_VERSION = v2.15.0 +LUVI_VERSION = 102-g9fa6c141abf24a5a7fe49ca39335210fa1be3ab4 LUVI_SITE = https://github.com/luvit/luvi.git LUVI_SITE_METHOD = git LUVI_GIT_SUBMODULES = YES -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 50/77] package/luvi: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (48 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 49/77] package/luvi: bump version to 102-g9fa6c141a Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 51/77] package/mtd: " Bernd Kuhls ` (26 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../luvi/0002-feat-support-openssl-4.0.patch | 403 ++++++++++++++++++ 1 file changed, 403 insertions(+) create mode 100644 package/luvi/0002-feat-support-openssl-4.0.patch diff --git a/package/luvi/0002-feat-support-openssl-4.0.patch b/package/luvi/0002-feat-support-openssl-4.0.patch new file mode 100644 index 0000000000..fa35b70435 --- /dev/null +++ b/package/luvi/0002-feat-support-openssl-4.0.patch @@ -0,0 +1,403 @@ +From 529b4a42eeb2b77f8f8c829f856977c5b50d0b7b Mon Sep 17 00:00:00 2001 +From: zhaozg <zhaozg@gmail.com> +Date: Thu, 16 Apr 2026 14:04:32 +0800 +Subject: [PATCH] feat: support openssl 4.0 + +Upstream: https://github.com/zhaozg/lua-openssl/commit/529b4a42eeb2b77f8f8c829f856977c5b50d0b7b + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + deps/lua-openssl/src/asn1.c | 59 +++++++++++++++++++++++++++++++------------------ + deps/lua-openssl/src/crl.c | 9 ++++---- + deps/lua-openssl/src/csr.c | 30 +++++++++++++++++-------- + deps/lua-openssl/src/openssl.c | 2 ++ + deps/lua-openssl/src/private.h | 2 +- + deps/lua-openssl/src/ssl.c | 2 +- + deps/lua-openssl/src/x509.c | 2 +- + deps/lua-openssl/src/xalgor.c | 2 +- + deps/lua-openssl/src/xname.c | 2 +- + deps/lua-openssl/test/helper.lua | 2 +- + 10 files changed, 71 insertions(+), 41 deletions(-) + +diff --git a/deps/lua-openssl/src/asn1.c b/deps/lua-openssl/src/asn1.c +index d7972738..566d78ee 100644 +--- a/deps/lua-openssl/src/asn1.c ++++ b/deps/lua-openssl/src/asn1.c +@@ -499,7 +499,14 @@ openssl_asn1object_new(lua_State *L) + ret = 1; + } + } else if (lua_isnone(L, 1)) { +- ASN1_OBJECT *obj = ASN1_OBJECT_new(); ++ /* ASN1_OBJECT_new() is deprecated in OpenSSL 4.0, ++ * but there's no direct replacement for creating an empty object. ++ * We create an object from a dummy NID instead. */ ++ ASN1_OBJECT *obj = OBJ_nid2obj(NID_undef); ++ if (obj == NULL) { ++ /* Fallback: create from empty string */ ++ obj = OBJ_txt2obj("", 1); ++ } + PUSH_OBJECT(obj, "openssl.asn1_object"); + ret = 1; + } +@@ -658,11 +665,13 @@ openssl_push_asn1type(lua_State *L, const ASN1_TYPE *type) + { + lua_newtable(L); + +-#define P(V, v) \ +- case V_##V: { \ +- V *s = (V *)type->value.ptr; \ +- AUXILIAR_SETLSTR(L, -1, "value", (const char *)s->data, s->length); \ +- break; \ ++#define P(V, v) \ ++ case V_##V: { \ ++ V *s = (V *)type->value.ptr; \ ++ AUXILIAR_SETLSTR(L, -1, "value", \ ++ (const char *)ASN1_STRING_get0_data(s), \ ++ ASN1_STRING_length(s)); \ ++ break; \ + } + + switch (type->type) { +@@ -695,7 +704,7 @@ openssl_push_asn1type(lua_State *L, const ASN1_TYPE *type) + + default: { + ASN1_STRING *s = (ASN1_STRING *)type->value.asn1_string; +- AUXILIAR_SETLSTR(L, -1, "value", (const char *)s->data, s->length); ++ AUXILIAR_SETLSTR(L, -1, "value", ASN1_STRING_get0_data(s), ASN1_STRING_length(s)); + break; + } + } +@@ -1004,8 +1013,9 @@ openssl_asn1group_set(lua_State *L) + { + ASN1_STRING *s = CHECK_GROUP(1, ASN1_STRING, "openssl.asn1group"); + int ret = 1; ++ int type = ASN1_STRING_type(s); + +- switch (s->type) { ++ switch (type) { + case V_ASN1_INTEGER: { + ASN1_INTEGER *ai = CHECK_OBJECT(1, ASN1_INTEGER, "openssl.asn1_integer"); + long v = luaL_checklong(L, 2); +@@ -1044,16 +1054,19 @@ static time_t + ASN1_TIME_get(ASN1_TIME *time, time_t off) + { + struct tm t; +- const char *str = (const char *)time->data; + size_t i = 0; ++ const char *str = (const char *)ASN1_STRING_get0_data(time); ++ size_t len = ASN1_STRING_length(time); ++ int type = ASN1_STRING_type(time); + ++ if (len < 13) return 0; /* Invalid time format */ + memset(&t, 0, sizeof(t)); + +- if (time->type == V_ASN1_UTCTIME) /* two digit year */ { ++ if (type == V_ASN1_UTCTIME) /* two digit year */ { + t.tm_year = (str[i++] - '0') * 10; + t.tm_year += (str[i++] - '0'); + if (t.tm_year < 70) t.tm_year += 100; +- } else if (time->type == V_ASN1_GENERALIZEDTIME) /* four digit year */ { ++ } else if (type == V_ASN1_GENERALIZEDTIME) /* four digit year */ { + t.tm_year = (str[i++] - '0') * 1000; + t.tm_year += (str[i++] - '0') * 100; + t.tm_year += (str[i++] - '0') * 10; +@@ -1086,7 +1099,7 @@ openssl_asn1group_get(lua_State *L) + { + ASN1_STRING *s = CHECK_GROUP(1, ASN1_STRING, "openssl.asn1group"); + int ret = 0; +- switch (s->type) { ++ switch (ASN1_STRING_type(s)) { + case V_ASN1_INTEGER: { + ASN1_INTEGER *ai = CHECK_OBJECT(1, ASN1_INTEGER, "openssl.asn1_integer"); + BIGNUM *bn = ASN1_INTEGER_to_BN(ai, NULL); +@@ -1128,7 +1141,7 @@ openssl_asn1group_i2d(lua_State *L) + break; \ + } + +- switch (s->type) { ++ switch (ASN1_STRING_type(s)) { + /* + P(ASN1_BOOLEAN); + case V_ASN1_BOOLEAN: +@@ -1220,7 +1233,7 @@ openssl_asn1group_d2i(lua_State *L) + break; \ + } + +- switch (s->type) { ++ switch (ASN1_STRING_type(s)) { + /* + P(ASN1_BOOLEAN); + case V_ASN1_BOOLEAN: +@@ -1374,7 +1387,8 @@ openssl_asn1group_eq(lua_State *L) + ASN1_STRING *s = CHECK_GROUP(1, ASN1_STRING, "openssl.asn1group"); + ASN1_STRING *ss = CHECK_GROUP(2, ASN1_STRING, "openssl.asn1group"); + +- lua_pushboolean(L, (s->type == ss->type && ASN1_STRING_cmp(s, ss) == 0)); ++ lua_pushboolean(L, (ASN1_STRING_type(s) == ASN1_STRING_type(ss) ++ && ASN1_STRING_cmp(s, ss) == 0)); + return 1; + } + +@@ -1434,7 +1448,7 @@ openssl_asn1group_toprint(lua_State *L) + unsigned long flags = luaL_optint(L, 2, 0); + BIO *out = BIO_new(BIO_s_mem()); + BUF_MEM *mem; +- switch (s->type) { ++ switch (ASN1_STRING_type(s)) { + case V_ASN1_UTCTIME: { + ASN1_TIME *a = (ASN1_TIME *)s; + ASN1_TIME_print(out, a); +@@ -1484,7 +1498,7 @@ static int + openssl_asn1group_dup(lua_State *L) + { + ASN1_STRING *s = CHECK_GROUP(1, ASN1_STRING, "openssl.asn1group"); +- openssl_push_asn1(L, s, s->type); ++ openssl_push_asn1(L, s, ASN1_STRING_type(s)); + return 1; + } + +@@ -1517,7 +1531,7 @@ openssl_asn1time_adj(lua_State *L) + int offset_day = luaL_optint(L, 3, 0); + long offset_sec = luaL_optlong(L, 4, 0); + +- switch (at->type) { ++ switch (ASN1_STRING_type(at)) { + case V_ASN1_UTCTIME: { + ASN1_UTCTIME *a = (ASN1_UTCTIME *)at; + ASN1_UTCTIME_adj(a, t, offset_day, offset_sec); +@@ -1549,7 +1563,7 @@ openssl_asn1time_diff(lua_State *L) + ASN1_TIME *from = CHECK_OBJECT(1, ASN1_TIME, "openssl.asn1_time"); + ASN1_TIME *to = lua_isnoneornil(L, 2) ? NULL : CHECK_OBJECT(2, ASN1_TIME, "openssl.asn1_time"); + +- luaL_argcheck(L, to->type == from->type, 2, "asn1_time with mismatched type"); ++ luaL_argcheck(L, ASN1_STRING_type(to) == ASN1_STRING_type(from), 2, "asn1_time with mismatched type"); + + ret = ASN1_TIME_diff(&day, &sec, from, to); + if (ret == 1) { +@@ -1644,12 +1658,13 @@ openssl_push_asn1object(lua_State *L, const ASN1_OBJECT *obj) + int + openssl_push_asn1(lua_State *L, const ASN1_STRING *string, int type) + { +- if ((string->type & V_ASN1_GENERALIZEDTIME) == V_ASN1_GENERALIZEDTIME && type == V_ASN1_UTCTIME) ++ int strType = ASN1_STRING_type(string); ++ if ((strType & V_ASN1_GENERALIZEDTIME) == V_ASN1_GENERALIZEDTIME && type == V_ASN1_UTCTIME) + type = V_ASN1_GENERALIZEDTIME; +- else if ((string->type & V_ASN1_UTCTIME) == V_ASN1_UTCTIME && type == V_ASN1_GENERALIZEDTIME) ++ else if ((strType & V_ASN1_UTCTIME) == V_ASN1_UTCTIME && type == V_ASN1_GENERALIZEDTIME) + type = V_ASN1_UTCTIME; + else if (type == V_ASN1_UNDEF) +- type = string->type; ++ type = strType; + + switch (type) { + case V_ASN1_INTEGER: { +diff --git a/deps/lua-openssl/src/crl.c b/deps/lua-openssl/src/crl.c +index 4950b4ca..2958daa0 100644 +--- a/deps/lua-openssl/src/crl.c ++++ b/deps/lua-openssl/src/crl.c +@@ -770,7 +770,7 @@ static int openssl_crl_parse(lua_State *L) + lua_setfield(L, -2, "sig_alg"); + } + +- if (sig != NULL && sig->length > 0) { ++ if (sig != NULL && ASN1_STRING_length(sig) > 0) { + PUSH_ASN1_STRING(L, sig); + lua_setfield(L, -2, "signature"); + } +@@ -995,16 +995,17 @@ static time_t + ASN1_GetTimeT(const ASN1_TIME *time) + { + struct tm t; +- const char *str = (const char *)time->data; ++ const char *str = ASN1_STRING_get0_data(time); ++ int type = ASN1_STRING_type(time); + size_t i = 0; + + memset(&t, 0, sizeof(t)); + +- if (time->type == V_ASN1_UTCTIME) /* two digit year */ { ++ if (type == V_ASN1_UTCTIME) /* two digit year */ { + t.tm_year = (str[i++] - '0') * 10; + t.tm_year += (str[i++] - '0'); + if (t.tm_year < 70) t.tm_year += 100; +- } else if (time->type == V_ASN1_GENERALIZEDTIME) /* four digit year */ { ++ } else if (type == V_ASN1_GENERALIZEDTIME) /* four digit year */ { + t.tm_year = (str[i++] - '0') * 1000; + t.tm_year += (str[i++] - '0') * 100; + t.tm_year += (str[i++] - '0') * 10; +diff --git a/deps/lua-openssl/src/csr.c b/deps/lua-openssl/src/csr.c +index b9aaeece..fd4743e8 100644 +--- a/deps/lua-openssl/src/csr.c ++++ b/deps/lua-openssl/src/csr.c +@@ -120,8 +120,8 @@ static int + copy_extensions(X509 *x, X509_REQ *req, int override) + { + STACK_OF(X509_EXTENSION) *exts = NULL; +- X509_EXTENSION *ext, *tmpext; +- ASN1_OBJECT *obj; ++ const X509_EXTENSION *ext, *tmpext; ++ const ASN1_OBJECT *obj; + int i, idx, ret = 0; + if (!x || !req) return 1; + exts = X509_REQ_get_extensions(req); +@@ -138,7 +138,7 @@ copy_extensions(X509 *x, X509_REQ *req, int override) + do { + tmpext = X509_get_ext(x, idx); + X509_delete_ext(x, idx); +- X509_EXTENSION_free(tmpext); ++ X509_EXTENSION_free((X509_EXTENSION*)tmpext); + idx = X509_get_ext_by_OBJ(x, obj, -1); + } while (idx != -1); + } +@@ -157,7 +157,7 @@ static int + X509_REQ_to_X509_ex(X509_REQ *r, int days, EVP_PKEY *pkey, const EVP_MD *md, X509 **x) + { + X509 *ret = NULL; +- X509_NAME *xn = NULL; ++ const X509_NAME *xn = NULL; + EVP_PKEY *pubkey = NULL; + ASN1_TIME *notBefore = NULL, *notAfter = NULL; + ASN1_INTEGER *serial = NULL; +@@ -412,9 +412,21 @@ static int openssl_csr_sign(lua_State *L) + /* + * In the interests of compatibility, I'll make sure that the bit string + * has a 'not-used bits' value of 0 ++ * ++ * Instead of directly manipulating the internal flags (which is not allowed ++ * in OpenSSL 4.0+), we use ASN1_BIT_STRING_set_bit to properly manage the ++ * unused bits count. Setting the last bit explicitly ensures the unused ++ * bits count is calculated correctly by OpenSSL. + */ +- sig->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07); +- sig->flags |= ASN1_STRING_FLAG_BITS_LEFT; ++ if (siglen > 0) { ++ /* Set the last bit of the signature to its current value. ++ * This forces OpenSSL to recalculate and set the unused bits count ++ * to 0 (since the signature is byte-aligned). */ ++ int last_bit = (siglen * 8) - 1; ++ int bit_value = (sigdata[siglen - 1] & 1) ? 1 : 0; ++ ASN1_BIT_STRING_set_bit(sig, last_bit, bit_value); ++ } ++ + lua_pushboolean(L, 1); + return 1; + } else { +@@ -442,7 +454,7 @@ parse x509_req object as table + static int openssl_csr_parse(lua_State *L) + { + X509_REQ *csr = CHECK_OBJECT(1, X509_REQ, "openssl.x509_req"); +- X509_NAME *subject = X509_REQ_get_subject_name(csr); ++ const X509_NAME *subject = X509_REQ_get_subject_name(csr); + STACK_OF(X509_EXTENSION) *exts = X509_REQ_get_extensions(csr); + + lua_newtable(L); +@@ -457,7 +469,7 @@ static int openssl_csr_parse(lua_State *L) + PUSH_OBJECT(alg, "openssl.x509_algor"); + lua_setfield(L, -2, "sig_alg"); + } +- if (sig->length) { ++ if (sig) { + openssl_push_asn1(L, sig, V_ASN1_BIT_STRING); + lua_setfield(L, -2, "signature"); + } +@@ -585,7 +597,7 @@ static int openssl_csr_subject(lua_State *L) + int ret = 0; + + if (lua_isnone(L, 2)) { +- X509_NAME *xn = X509_REQ_get_subject_name(csr); ++ const X509_NAME *xn = X509_REQ_get_subject_name(csr); + if (xn) { + openssl_push_xname_asobject(L, xn); + ret = 1; +diff --git a/deps/lua-openssl/src/openssl.c b/deps/lua-openssl/src/openssl.c +index 42004449..985b342b 100644 +--- a/deps/lua-openssl/src/openssl.c ++++ b/deps/lua-openssl/src/openssl.c +@@ -544,7 +544,9 @@ openssl_initialize() + sizeof(LOPENSSL_VERSION LUA_VERSION OPENSSL_VERSION_TEXT)); + #else + OPENSSL_init_ssl(OPENSSL_INIT_ENGINE_ALL_BUILTIN | ++#if defined (OPENSSL_INIT_ENGINE_OPENSSL) + OPENSSL_INIT_ENGINE_OPENSSL | ++#endif + OPENSSL_INIT_LOAD_CRYPTO_STRINGS | + OPENSSL_INIT_LOAD_SSL_STRINGS | + OPENSSL_INIT_ADD_ALL_CIPHERS | +diff --git a/deps/lua-openssl/src/private.h b/deps/lua-openssl/src/private.h +index c6010209..00728c6a 100644 +--- a/deps/lua-openssl/src/private.h ++++ b/deps/lua-openssl/src/private.h +@@ -332,7 +332,7 @@ int openssl_push_x509_signature(lua_State *L, const X509_ALGOR *alg, const ASN1_ + #define PUSH_ASN1_OCTET_STRING(L, s) openssl_push_asn1(L, (ASN1_STRING*)(s), V_ASN1_OCTET_STRING) + #define PUSH_ASN1_STRING(L, s) openssl_push_asn1(L, (ASN1_STRING*)(s), V_ASN1_UNDEF) + +-int openssl_push_xname_asobject(lua_State*L, X509_NAME* xname); ++int openssl_push_xname_asobject(lua_State*L, const X509_NAME* xname); + int openssl_push_bit_string_bitname(lua_State* L, const BIT_STRING_BITNAME* name); + + ASN1_OBJECT* openssl_get_asn1object(lua_State*L, int idx, int retnil); +diff --git a/deps/lua-openssl/src/ssl.c b/deps/lua-openssl/src/ssl.c +index a71d71fd..9a8598fd 100644 +--- a/deps/lua-openssl/src/ssl.c ++++ b/deps/lua-openssl/src/ssl.c +@@ -158,7 +158,7 @@ openssl_ssl_ctx_new(lua_State *L) + method = TLSv1_client_method(); + #endif + +-#ifndef OPENSSL_NO_SSL3_METHOD ++#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_SSL3_METHOD) + else if (strcmp(meth, "SSLv3") == 0) + method = SSLv3_method(); + else if (strcmp(meth, "SSLv3_server") == 0) +diff --git a/deps/lua-openssl/src/x509.c b/deps/lua-openssl/src/x509.c +index 99096090..4dcc960e 100644 +--- a/deps/lua-openssl/src/x509.c ++++ b/deps/lua-openssl/src/x509.c +@@ -466,7 +466,7 @@ int openssl_push_x509_signature(lua_State *L, const X509_ALGOR *alg, const ASN1_ + if (sig != NULL) + { + lua_pushliteral(L, "sig"); +- lua_pushlstring(L, (const char *)sig->data, sig->length); ++ lua_pushlstring(L, ASN1_STRING_get0_data(sig), ASN1_STRING_length(sig)); + lua_rawset(L, i==0 ? -3 : i); + } + +diff --git a/deps/lua-openssl/src/xalgor.c b/deps/lua-openssl/src/xalgor.c +index 95957b6f..2d7c5668 100644 +--- a/deps/lua-openssl/src/xalgor.c ++++ b/deps/lua-openssl/src/xalgor.c +@@ -151,7 +151,7 @@ openssl_xalgor_set(lua_State *L) + obj = OBJ_dup(obj); + if (val) { + val = ASN1_STRING_dup(val); +- ret = X509_ALGOR_set0(alg, obj, val->type, val); ++ ret = X509_ALGOR_set0(alg, obj, ASN1_STRING_type(val), val); + } else { + ret = X509_ALGOR_set0(alg, obj, 0, NULL); + } +diff --git a/deps/lua-openssl/src/xname.c b/deps/lua-openssl/src/xname.c +index f2fa9be6..ed5939df 100644 +--- a/deps/lua-openssl/src/xname.c ++++ b/deps/lua-openssl/src/xname.c +@@ -10,7 +10,7 @@ x509.name module to mapping X509_NAME to lua object. + #include "sk.h" + + int +-openssl_push_xname_asobject(lua_State *L, X509_NAME *xname) ++openssl_push_xname_asobject(lua_State *L, const X509_NAME *xname) + { + const X509_NAME *dup = X509_NAME_dup(xname); + PUSH_OBJECT(dup, "openssl.x509_name"); +diff --git a/deps/lua-openssl/test/helper.lua b/deps/lua-openssl/test/helper.lua +index ea64feb7..0634ea3c 100644 +--- a/deps/lua-openssl/test/helper.lua ++++ b/deps/lua-openssl/test/helper.lua +@@ -6,7 +6,7 @@ local M = {} + M.luaopensslv, M.luav, M.opensslv = openssl.version() + M._luaopensslv, M._luav, M._opensslv = openssl.version(true) + M.libressl = M.opensslv:find("^LibreSSL") +-M.openssl3 = M.opensslv:find("^OpenSSL 3") ++M.openssl3 = M.opensslv:find("^OpenSSL 3") or M.opensslv:find("^OpenSSL 4") + + function M.sslProtocol(srv, protocol) + protocol = protocol or openssl.ssl.default -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 51/77] package/mtd: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (49 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 50/77] package/luvi: Fix build with OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 52/77] package/netsnmp: " Bernd Kuhls ` (25 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...t-compile-engine-support-if-not-avai.patch | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 package/mtd/0001-ubifs-utils-Don-t-compile-engine-support-if-not-avai.patch diff --git a/package/mtd/0001-ubifs-utils-Don-t-compile-engine-support-if-not-avai.patch b/package/mtd/0001-ubifs-utils-Don-t-compile-engine-support-if-not-avai.patch new file mode 100644 index 0000000000..21fc2ca2fd --- /dev/null +++ b/package/mtd/0001-ubifs-utils-Don-t-compile-engine-support-if-not-avai.patch @@ -0,0 +1,62 @@ +From 50136f0ec6d8c9763889d49b31ca6965189afba5 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> +Date: Sat, 29 Aug 2026 19:25:02 +0200 +Subject: [PATCH] ubifs-utils: Don't compile engine support if not available + +OpenSSL 4.0 dropped engine support which was deprecated since 3.0. The +replacement is the "providers" API. + +Add an ifndef OPENSSL_NO_ENGINE around the engine code so it can be left +out where it is not supported. + +Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> + +Upstream: https://lists.infradead.org/pipermail/linux-mtd/2026-August/114868.html + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + ubifs-utils/common/sign.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/ubifs-utils/common/sign.c b/ubifs-utils/common/sign.c +index 032a6ac..5f94c0a 100644 +--- a/ubifs-utils/common/sign.c ++++ b/ubifs-utils/common/sign.c +@@ -23,11 +23,14 @@ + #include <openssl/bio.h> + #include <openssl/pem.h> + #include <openssl/err.h> +-#include <openssl/engine.h> + #include <openssl/cms.h> + #include <openssl/conf.h> + #include <err.h> + ++#ifndef OPENSSL_NO_ENGINE ++#include <openssl/engine.h> ++#endif ++ + #include "linux_types.h" + #include "sign.h" + #include "ubifs.h" +@@ -139,6 +142,7 @@ static EVP_PKEY *read_private_key(const char *private_key_name, X509 **cert) + *cert = NULL; + + if (!strncmp(private_key_name, "pkcs11:", 7)) { ++#ifndef OPENSSL_NO_ENGINE + ENGINE *e; + struct { + const char *url; +@@ -177,6 +181,10 @@ static EVP_PKEY *read_private_key(const char *private_key_name, X509 **cert) + } + *cert = parms.cert; + fprintf(stderr, "Using cert %p\n", *cert); ++#else ++ ssl_err_msg("PKCS#11 ENGINE support not available."); ++ return NULL; ++#endif + } else { + BIO *b; + +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 52/77] package/netsnmp: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (50 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 51/77] package/mtd: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 53/77] package/ntp: Add support for " Bernd Kuhls ` (24 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0002-libsnmp-Fix-OpenSSL-4-build.patch | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 package/netsnmp/0002-libsnmp-Fix-OpenSSL-4-build.patch diff --git a/package/netsnmp/0002-libsnmp-Fix-OpenSSL-4-build.patch b/package/netsnmp/0002-libsnmp-Fix-OpenSSL-4-build.patch new file mode 100644 index 0000000000..e92dffff02 --- /dev/null +++ b/package/netsnmp/0002-libsnmp-Fix-OpenSSL-4-build.patch @@ -0,0 +1,99 @@ +From 1c70efc4334629ba278ea75a071d4dbabc198df8 Mon Sep 17 00:00:00 2001 +From: Ravi Kant Sharma <ravi.kant.sharma@canonical.com> +Date: Fri, 12 Jun 2026 13:52:20 +0200 +Subject: [PATCH] libsnmp: Fix OpenSSL 4 build + +[ bvanassche: edited patch description and fixed OS/X build ] +Fixes: https://github.com/net-snmp/net-snmp/pull/1101 + +Upstream: https://github.com/net-snmp/net-snmp/commit/66736ece08dc2b4050acaf234e6959d21c89cb02 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + snmplib/snmp_openssl.c | 39 ++++++++++++++++++++++----------------- + 1 file changed, 22 insertions(+), 17 deletions(-) + +diff --git a/snmplib/snmp_openssl.c b/snmplib/snmp_openssl.c +index 4471a7a9d3..0bd1a65882 100644 +--- a/snmplib/snmp_openssl.c ++++ b/snmplib/snmp_openssl.c +@@ -234,6 +234,7 @@ void + netsnmp_openssl_cert_dump_names(X509 *ocert) + { + int i, onid; ++ int oname_value_type; + X509_NAME_ENTRY *oname_entry; + ASN1_STRING *oname_value; + X509_NAME *osubj_name; +@@ -252,8 +253,9 @@ netsnmp_openssl_cert_dump_names(X509 *ocert) + oname_entry = X509_NAME_get_entry(osubj_name, i); + netsnmp_assert(NULL != oname_entry); + oname_value = X509_NAME_ENTRY_get_data(oname_entry); ++ oname_value_type = ASN1_STRING_type(oname_value); + +- if (oname_value->type != V_ASN1_PRINTABLESTRING) ++ if (oname_value_type != V_ASN1_PRINTABLESTRING) + continue; + + /** get NID */ +@@ -268,7 +270,7 @@ netsnmp_openssl_cert_dump_names(X509 *ocert) + + DEBUGMSGT(("9:cert:dump:names", + "[%02d] NID type %d, ASN type %d\n", i, onid, +- oname_value->type)); ++ oname_value_type)); + DEBUGMSGT(("9:cert:dump:names", "%s/%s: '%s'\n", prefix_long, + prefix_short, ASN1_STRING_get0_data(oname_value))); + } +@@ -433,30 +435,33 @@ _extract_oname(const GENERAL_NAME *oname) + rtn = strdup(buf); + break; + +- case GEN_IPADD: +- if (oname->d.iPAddress->length == 4) { +- sprintf(ipbuf, "%d.%d.%d.%d", oname->d.iPAddress->data[0], +- oname->d.iPAddress->data[1], +- oname->d.iPAddress->data[2], +- oname->d.iPAddress->data[3]); ++ case GEN_IPADD: { ++ const int iplen = ASN1_STRING_length(oname->d.iPAddress); ++ const unsigned char *const ipdata = ++ ASN1_STRING_get0_data(oname->d.iPAddress); ++ ++ if (iplen == 4) { ++ sprintf(ipbuf, "%d.%d.%d.%d", ipdata[0], ++ ipdata[1], ++ ipdata[2], ++ ipdata[3]); + rtn = strdup(ipbuf); +- } +- else if ((oname->d.iPAddress->length == 16) || +- (oname->d.iPAddress->length == 20)) { ++ } else if (iplen == 16 || iplen == 20) { + char *pos = ipbuf; + int j; +- for(j = 0; j < oname->d.iPAddress->length; ++j) { +- *pos++ = VAL2HEX(oname->d.iPAddress->data[j]); ++ ++ for (j = 0; j < iplen; ++j) { ++ *pos++ = VAL2HEX(ipdata[j]); + *pos++ = ':'; + } + *pos = '\0'; + rtn = strdup(ipbuf); +- } +- else ++ } else { + NETSNMP_LOGONCE((LOG_WARNING, "unexpected ip addr length %d\n", +- oname->d.iPAddress->length)); +- ++ iplen)); ++ } + break; ++ } + default: + DEBUGMSGT(("openssl:cert:san", "unknown/unsupported type %d\n", + oname->type)); +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 53/77] package/ntp: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (51 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 52/77] package/netsnmp: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 54/77] package/omniorb: Fix build with " Bernd Kuhls ` (23 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/ntp/0008-openssl4.patch | 100 ++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 package/ntp/0008-openssl4.patch diff --git a/package/ntp/0008-openssl4.patch b/package/ntp/0008-openssl4.patch new file mode 100644 index 0000000000..8b4eb78596 --- /dev/null +++ b/package/ntp/0008-openssl4.patch @@ -0,0 +1,100 @@ +Enable building with OpenSSL 4.0 + +Upstream: https://bugs.ntp.org/show_bug.cgi?id=4023 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> + +diff -Nru a/ntpd/ntp_crypto.c b/ntpd/ntp_crypto.c +--- a/ntpd/ntp_crypto.c 2026-05-19 05:47:27 +0000 ++++ b/ntpd/ntp_crypto.c 2026-05-19 05:47:27 +0000 +@@ -2019,6 +2019,9 @@ + struct calendar *pjd /* pointer to result */ + ) + { ++ /* OpenSSL 4 makes ASN1_TIME opaque */ ++#if OPENSSL_VERSION_NUMBER < 0x40000000L ++ + size_t len; /* length of ASN1_TIME string */ + char v[24]; /* writable copy of ASN1_TIME string */ + unsigned long temp; /* result from strtoul */ +@@ -2064,7 +2067,24 @@ + pjd->year = temp; + + pjd->yearday = pjd->weekday = 0; +- return; ++ ++#else /* OpenSSL 4+ follows */ ++ ++ struct tm t; ++ int rc; ++ ++ rc = ASN1_TIME_to_tm(asn1time, &t); ++ INSIST(0 == rc); ++ ++ pjd->second = t.tm_sec; ++ pjd->minute = t.tm_min; ++ pjd->hour = t.tm_hour; ++ pjd->monthday = t.tm_mday; ++ pjd->month = t.tm_mon; ++ pjd->year = t.tm_year; ++ pjd->yearday = t.tm_yday; ++ pjd->weekday = t.tm_wday; ++#endif + } + + +@@ -3517,6 +3537,7 @@ + X509_EXTENSION *ext; + ASN1_OBJECT *obj; + int nid; ++ int datalen; + ASN1_OCTET_STRING *data; + + ext = X509_get_ext(cert, i); +@@ -3550,8 +3571,21 @@ + */ + case NID_subject_key_identifier: + data = X509_EXTENSION_get_data(ext); +- ret->grpkey = BN_bin2bn(&data->data[2], +- data->length - 2, NULL); ++#if OPENSSL_VERSION_NUMBER >= 0x40000000 ++ datalen = ASN1_STRING_length(data); ++ if (datalen > 2) { ++ ret->grpkey = ++ BN_bin2bn(ASN1_STRING_get0_data(data) + 2, ++ datalen - 2, NULL); ++ } ++#else /* OpenSSL 3.x or earlier follows */ ++ datalen = data->length; ++ if (datalen > 2) { ++ ret->grpkey = ++ BN_bin2bn(&data->data[2], ++ datalen - 2, NULL); ++ } ++#endif + /* fall through */ + default: + DPRINTF(1, ("cert_parse: %s\n", +diff -Nru a/ports/winnt/ntpd/ntservice.c b/ports/winnt/ntpd/ntservice.c +--- a/ports/winnt/ntpd/ntservice.c 2026-05-19 05:47:27 +0000 ++++ b/ports/winnt/ntpd/ntservice.c 2026-05-19 05:47:27 +0000 +@@ -87,6 +87,7 @@ + int argc_after_opts; + char ** argv_after_opts; + ++ init_lib(); /* ntp_strerror() below needs it */ + ssl_applink(); + + /* Save the command line parameters */ +diff -Nru a/util/ntp-keygen.c b/util/ntp-keygen.c +--- a/util/ntp-keygen.c 2026-05-19 05:47:27 +0000 ++++ b/util/ntp-keygen.c 2026-05-19 05:47:27 +0000 +@@ -625,7 +625,7 @@ + + /* + * Create new encrypted GQ server keys file if requested; +- * otherwise, look for an exisiting file. If found, fetch the ++ * otherwise, look for an existing file. If found, fetch the + * public key for the certificate. + */ + if (gqkey) -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 54/77] package/omniorb: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (52 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 53/77] package/ntp: Add support for " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 55/77] package/opensc: Add support for " Bernd Kuhls ` (22 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/omniorb/0001-openssl4.patch | 63 +++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 package/omniorb/0001-openssl4.patch diff --git a/package/omniorb/0001-openssl4.patch b/package/omniorb/0001-openssl4.patch new file mode 100644 index 0000000000..984d5dab25 --- /dev/null +++ b/package/omniorb/0001-openssl4.patch @@ -0,0 +1,63 @@ +From: Colin Watson <cjwatson@debian.org> +Date: Mon, 1 Jun 2026 11:07:35 +0100 +Subject: OpenSSL 4.0.0 returns const pointers from X509 functions + +Origin: upstream, https://sourceforge.net/p/omniorb/svn/6818/ +Bug-Debian: https://bugs.debian.org/1138480 +Last-Update: 2026-06-01 + +Downloaded from Debian: +https://sources.debian.org/src/omniorb-dfsg/4.3.4%2Bds1-1/debian/patches/openssl-4.patch + +Upstream: https://sourceforge.net/p/omniorb/svn/6818/ + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/lib/omniORB/orbcore/http/httpConnection.cc | 6 +++--- + src/lib/omniORB/orbcore/ssl/sslConnection.cc | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/lib/omniORB/orbcore/http/httpConnection.cc b/src/lib/omniORB/orbcore/http/httpConnection.cc +index 1e70f93..9da18cd 100644 +--- a/src/lib/omniORB/orbcore/http/httpConnection.cc ++++ b/src/lib/omniORB/orbcore/http/httpConnection.cc +@@ -2554,14 +2554,14 @@ httpConnection::setPeerDetails() { + + int lastpos = -1; + +- X509_NAME* name = X509_get_subject_name(peer_cert); ++ const X509_NAME* name = X509_get_subject_name(peer_cert); + lastpos = X509_NAME_get_index_by_NID(name, NID_commonName, lastpos); + + if (lastpos == -1) + return; + +- X509_NAME_ENTRY* ne = X509_NAME_get_entry(name, lastpos); +- ASN1_STRING* asn1_str = X509_NAME_ENTRY_get_data(ne); ++ const X509_NAME_ENTRY* ne = X509_NAME_get_entry(name, lastpos); ++ const ASN1_STRING* asn1_str = X509_NAME_ENTRY_get_data(ne); + + // Convert to native code set + cdrMemoryStream stream; +diff --git a/src/lib/omniORB/orbcore/ssl/sslConnection.cc b/src/lib/omniORB/orbcore/ssl/sslConnection.cc +index f02f3f0..d29d2b8 100644 +--- a/src/lib/omniORB/orbcore/ssl/sslConnection.cc ++++ b/src/lib/omniORB/orbcore/ssl/sslConnection.cc +@@ -548,14 +548,14 @@ sslConnection::setPeerDetails() { + + int lastpos = -1; + +- X509_NAME* name = X509_get_subject_name(peer_cert); ++ const X509_NAME* name = X509_get_subject_name(peer_cert); + lastpos = X509_NAME_get_index_by_NID(name, NID_commonName, lastpos); + + if (lastpos == -1) + return; + +- X509_NAME_ENTRY* ne = X509_NAME_get_entry(name, lastpos); +- ASN1_STRING* asn1_str = X509_NAME_ENTRY_get_data(ne); ++ const X509_NAME_ENTRY* ne = X509_NAME_get_entry(name, lastpos); ++ const ASN1_STRING* asn1_str = X509_NAME_ENTRY_get_data(ne); + + // Convert to native code set + cdrMemoryStream stream; -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 55/77] package/opensc: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (53 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 54/77] package/omniorb: Fix build with " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 56/77] package/perl-net-ssleay: " Bernd Kuhls ` (21 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0001-Changes-for-OpenSSL-4.0.0.patch | 333 ++++++++++++++++++ 1 file changed, 333 insertions(+) create mode 100644 package/opensc/0001-Changes-for-OpenSSL-4.0.0.patch diff --git a/package/opensc/0001-Changes-for-OpenSSL-4.0.0.patch b/package/opensc/0001-Changes-for-OpenSSL-4.0.0.patch new file mode 100644 index 0000000000..6039cc3fc0 --- /dev/null +++ b/package/opensc/0001-Changes-for-OpenSSL-4.0.0.patch @@ -0,0 +1,333 @@ +From 8ad96adc5fea0cef923a2a679600f3a5c4c5bfce Mon Sep 17 00:00:00 2001 +From: Doug Engert <deengert@gmail.com> +Date: Wed, 15 Apr 2026 15:10:42 -0500 +Subject: [PATCH] Changes for OpenSSL-4.0.0 + +Changes to get OpenSC to compile with OpenSSl-4.0.0 + +OpenSSL says: +"Opaque Structures: ASN1_STRING has been made opaque, and further work has been +done to make X509 structures more memory-efficient and const-correct." + +ASN1_STRING was made opaque thus requiring the use of ASN1_STRING_get0_data, +and ASN1_STRING_length. These routines have been in OpenSSL since 1.1.1 +and are also in libressl. + +ASN1_STRING_get0_data returns a const pointer, so the data can not be changed. +There are a number of reverse() functions one of which was reversing the +bytes in a EC pubkey. + +Changes not addressed: +"Global Cleanup: libcrypto no longer uses atexit() for cleanup; +OPENSSL_cleanup() now runs in a global destructor." + + On branch OpenSSL-4.0.0 + Changes to be committed: + modified: src/libopensc/cwa-dnie.c + modified: src/pkcs11/openssl.c + modified: src/pkcs15init/pkcs15-oberthur-awp.c + modified: src/tests/p11test/p11test_case_common.c + modified: src/tools/netkey-tool.c + modified: src/tools/pkcs11-tool.c + modified: src/tools/pkcs15-init.c + +Upstream: https://github.com/OpenSC/OpenSC/commit/8ad96adc5fea0cef923a2a679600f3a5c4c5bfce + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/libopensc/cwa-dnie.c | 2 +- + src/pkcs11/openssl.c | 14 ++++++---- + src/pkcs15init/pkcs15-oberthur-awp.c | 16 +++++------ + src/tests/p11test/p11test_case_common.c | 24 ++++++++-------- + src/tools/netkey-tool.c | 37 +++++++++++++++++-------- + src/tools/pkcs11-tool.c | 22 +++++++-------- + src/tools/pkcs15-init.c | 4 +-- + 7 files changed, 68 insertions(+), 51 deletions(-) + +diff --git a/src/libopensc/cwa-dnie.c b/src/libopensc/cwa-dnie.c +index 47f3792dad..6020921dbc 100644 +--- a/src/libopensc/cwa-dnie.c ++++ b/src/libopensc/cwa-dnie.c +@@ -646,7 +646,7 @@ static int dnie_set_channel_data(sc_card_t * card, X509 * icc_intermediate_ca_ce + dnie_private_data_t *priv_data = GET_DNIE_PRIV_DATA(card); + LOG_FUNC_CALLED(card->ctx); + +- X509_NAME *issuer = X509_get_issuer_name(icc_intermediate_ca_cert); ++ const X509_NAME *issuer = X509_get_issuer_name(icc_intermediate_ca_cert); + if (issuer) { + buf = X509_NAME_oneline(issuer, buf, 0); + if (!buf) { +diff --git a/src/pkcs11/openssl.c b/src/pkcs11/openssl.c +index 0a5d4394a2..a4027339b2 100644 +--- a/src/pkcs11/openssl.c ++++ b/src/pkcs11/openssl.c +@@ -463,6 +463,7 @@ static CK_RV gostr3410_verify_data(const CK_BYTE_PTR pubkey, CK_ULONG pubkey_len + EC_POINT *P; + BIGNUM *X, *Y; + ASN1_OCTET_STRING *octet = NULL; ++ unsigned char *octet_rev = NULL; + char paramset[2] = "A"; + int r = -1, ret_vrf = 0; + #if OPENSSL_VERSION_NUMBER < 0x30000000L +@@ -516,13 +517,16 @@ static CK_RV gostr3410_verify_data(const CK_BYTE_PTR pubkey, CK_ULONG pubkey_len + if (group && pubkey_len <= LONG_MAX) { + const unsigned char *p = pubkey; + octet = d2i_ASN1_OCTET_STRING(NULL, &p, (long)pubkey_len); ++ if (octet) ++ octet_rev = malloc(ASN1_STRING_length(octet)); + } +- if (group && octet) { +- reverse(octet->data, octet->length); +- Y = BN_bin2bn(octet->data, octet->length / 2, NULL); +- X = BN_bin2bn((const unsigned char*)octet->data + +- octet->length / 2, octet->length / 2, NULL); ++ if (group && octet && octet_rev) { ++ memcpy(octet_rev, ASN1_STRING_get0_data(octet), ASN1_STRING_length(octet)); ++ reverse(octet_rev, ASN1_STRING_length(octet)); ++ Y = BN_bin2bn(octet_rev, ASN1_STRING_length(octet) / 2, NULL); ++ X = BN_bin2bn(octet_rev + ASN1_STRING_length(octet) / 2, ASN1_STRING_length(octet) / 2, NULL); + ASN1_OCTET_STRING_free(octet); ++ free(octet_rev); + P = EC_POINT_new(group); + if (P && X && Y) + r = EC_POINT_set_affine_coordinates(group, P, X, Y, NULL); +diff --git a/src/pkcs15init/pkcs15-oberthur-awp.c b/src/pkcs15init/pkcs15-oberthur-awp.c +index 22c943127b..fdb06ab6b4 100644 +--- a/src/pkcs15init/pkcs15-oberthur-awp.c ++++ b/src/pkcs15init/pkcs15-oberthur-awp.c +@@ -51,21 +51,21 @@ awp_get_commonName(X509 *x) + r = X509_NAME_get_index_by_NID(X509_get_subject_name(x), + NID_commonName, -1); + if (r >= 0) { +- X509_NAME_ENTRY *ne; +- ASN1_STRING *a_str; ++ const X509_NAME_ENTRY *ne; ++ const ASN1_STRING *a_str; + + if (!(ne = X509_NAME_get_entry(X509_get_subject_name(x), r))) + ; + else if (!(a_str = X509_NAME_ENTRY_get_data(ne))) + ; +- else if (a_str->type == 0x0C) { +- ret = malloc(a_str->length + 1); ++ else if (ASN1_STRING_type(a_str) == V_ASN1_UTF8STRING) { ++ ret = malloc(ASN1_STRING_length(a_str) + 1); + if (ret) { +- memcpy(ret, a_str->data, a_str->length); +- *(ret + a_str->length) = '\0'; ++ memcpy(ret, ASN1_STRING_get0_data(a_str), ASN1_STRING_length(a_str)); ++ ++ *(ret + ASN1_STRING_length(a_str)) = '\0'; + } +- } +- else { ++ } else { + unsigned char *tmp = NULL; + + r = ASN1_STRING_to_UTF8(&tmp, a_str); +diff --git a/src/tests/p11test/p11test_case_common.c b/src/tests/p11test/p11test_case_common.c +index 1dd6eaba67..f571cd1598 100644 +--- a/src/tests/p11test/p11test_case_common.c ++++ b/src/tests/p11test/p11test_case_common.c +@@ -776,34 +776,34 @@ int callback_public_keys(test_certs_t *objects, + switch (o->key_type) { + #ifdef EVP_PKEY_ED25519 + case CKK_EC_EDWARDS: +- if (strcmp((char *)curve->data, "edwards25519") == 0) { ++ if (strcmp((char *)ASN1_STRING_get0_data(curve), "edwards25519") == 0) { + evp_type = EVP_PKEY_ED25519; + break; + #ifdef EVP_PKEY_ED448 +- } else if (strcmp((char *)curve->data, "edwards448") == 0) { ++ } else if (strcmp((char *)ASN1_STRING_get0_data(curve), "edwards448") == 0) { + evp_type = EVP_PKEY_ED448; + break; + #endif /* EVP_PKEY_ED448 */ + } + debug_print(" [WARN %s ] Unknown curve name. " + " expected edwards25519 or edwards448, got %s", +- o->id_str, curve->data); ++ o->id_str, ASN1_STRING_get0_data(curve)); + break; + #endif + #ifdef EVP_PKEY_X25519 + case CKK_EC_MONTGOMERY: +- if (strcmp((char *)curve->data, "curve25519") == 0) { ++ if (strcmp((char *)ASN1_STRING_get0_data(curve), "curve25519") == 0) { + evp_type = EVP_PKEY_X25519; + break; + #ifdef EVP_PKEY_X448 +- } else if (strcmp((char *)curve->data, "curve448") == 0) { ++ } else if (strcmp((char *)ASN1_STRING_get0_data(curve), "curve448") == 0) { + evp_type = EVP_PKEY_X448; + break; + #endif /* EVP_PKEY_X448 */ + } + debug_print(" [WARN %s ] Unknown curve name. " + " expected curve25519 or curve448, got %s", +- o->id_str, curve->data); ++ o->id_str, ASN1_STRING_get0_data(curve)); + break; + #endif + default: +@@ -893,14 +893,14 @@ int callback_public_keys(test_certs_t *objects, + break; + #endif + } +- if (os->length != exp_length) { ++ if (ASN1_STRING_length(os) != exp_length) { + debug_print(" [WARN %s ] Invalid length of EC_POINT value. Got %d, expected %d", +- o->id_str, os->length, exp_length); ++ o->id_str, ASN1_STRING_length(os), exp_length); + return -1; + } + key = EVP_PKEY_new_raw_public_key(evp_type, NULL, +- (const uint8_t *)os->data, +- os->length); ++ (const uint8_t *)ASN1_STRING_get0_data(os), ++ ASN1_STRING_length(os)); + if (key == NULL) { + debug_print(" [WARN %s ] Out of memory", o->id_str); + ASN1_STRING_free(os); +@@ -925,8 +925,8 @@ int callback_public_keys(test_certs_t *objects, + } + + if (EVP_PKEY_get_raw_public_key(o->key, pub, &publen) != 1 || +- publen != (size_t)os->length || +- memcmp(pub, os->data, publen) != 0) { ++ publen != (size_t)ASN1_STRING_length(os) || ++ memcmp(pub, ASN1_STRING_get0_data(os), publen) != 0) { + debug_print(" [WARN %s ] Got different public" + "key then from the certificate", + o->id_str); +diff --git a/src/tools/netkey-tool.c b/src/tools/netkey-tool.c +index 23bab2a8ec..683ac182bd 100644 +--- a/src/tools/netkey-tool.c ++++ b/src/tools/netkey-tool.c +@@ -144,25 +144,38 @@ static void show_certs(sc_card_t *card) + if(q[4]==6 && q[5]<10 && q[q[5]+6]==0x30 && q[q[5]+7]==0x82) q+=q[5]+6; + printf(", Len=%d\n", (q[2]<<8)|q[3]); + if((c=d2i_X509(NULL,&q,f->size))){ +- char buf2[2000]; +- if (X509_NAME_get_text_by_NID(X509_get_subject_name(c), NID_commonName, buf2, sizeof(buf2)) < 0) { ++ int idx; ++ const X509_NAME_ENTRY *ne = NULL; /* no free */ ++ const ASN1_STRING *a_str = NULL; /* no free */ ++ int out_len = 0; ++ unsigned char *tmp = NULL; ++ ++ idx = X509_NAME_get_index_by_NID(X509_get_subject_name(c), NID_commonName, -1); ++ if (idx >= 0 && ++ ((ne = X509_NAME_get_entry(X509_get_subject_name(c), idx)) != NULL) && ++ ((a_str = X509_NAME_ENTRY_get_data(ne)) != NULL) && ++ ((out_len = ASN1_STRING_to_UTF8(&tmp, a_str)) > 0)) { ++ printf(" Subject-CN: %s\n", tmp); ++ OPENSSL_free(tmp); ++ tmp = NULL; ++ } else { + sc_log_openssl(card->ctx); + printf(" Invalid Subject-CN\n"); +- X509_free(c); +- continue; + } +- printf(" Subject-CN: %s\n", buf2); +- if (X509_NAME_get_text_by_NID(X509_get_issuer_name(c), NID_commonName, buf2, sizeof(buf2)) < 0) { ++ ++ idx = X509_NAME_get_index_by_NID(X509_get_issuer_name(c), NID_commonName, -1); ++ if (idx >= 0 && ++ ((ne = X509_NAME_get_entry(X509_get_issuer_name(c), idx)) != NULL) && ++ ((a_str = X509_NAME_ENTRY_get_data(ne)) != NULL) && ++ ((out_len = ASN1_STRING_to_UTF8(&tmp, a_str)) > 0)) { ++ printf(" Issuer-CN: %s\n", tmp); ++ OPENSSL_free(tmp); ++ tmp = NULL; ++ } else { + sc_log_openssl(card->ctx); + printf(" Invalid Issuer-CN\n"); +- X509_free(c); +- continue; + } +- printf(" Issuer-CN: %s\n", buf2); + X509_free(c); +- } else { +- sc_log_openssl(card->ctx); +- printf(" Invalid Certificate-Data\n"); + } + } else printf(", empty\n"); + } +diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c +index 452ac49617..cfc7486faa 100644 +--- a/src/tools/pkcs11-tool.c ++++ b/src/tools/pkcs11-tool.c +@@ -7389,8 +7389,8 @@ static int read_object(CK_SESSION_HANDLE session) + #endif + point = EC_POINT_new(group); + if (os) { +- a = os->data; +- a_len = os->length; ++ a = ASN1_STRING_get0_data(os); ++ a_len = ASN1_STRING_length(os); + success = EC_POINT_oct2point(group, point, a, a_len, NULL); + } + if (!success) { /* Workaround for broken PKCS#11 modules */ +@@ -7464,9 +7464,9 @@ static int read_object(CK_SESSION_HANDLE session) + + a = params; + if (d2i_ASN1_PRINTABLESTRING(&curve, &a, (long)len) != NULL) { +- if (strcmp((char *)curve->data, "edwards25519") && +- strcmp((char *)curve->data, "curve25519")) { +- util_fatal("Unknown curve name \"%si\"", curve->data); ++ if (strcmp((char *)ASN1_STRING_get0_data(curve), "edwards25519") && ++ strcmp((char *)ASN1_STRING_get0_data(curve), "curve25519")) { ++ util_fatal("Unknown curve name \"%si\"", (char *)ASN1_STRING_get0_data(curve)); + } + ASN1_PRINTABLESTRING_free(curve); + } else if (d2i_ASN1_OBJECT(&obj, &a, (long)len) != NULL) { +@@ -7526,26 +7526,26 @@ static int read_object(CK_SESSION_HANDLE session) + } + } + +- if (type == CKK_EC_EDWARDS && os->length == BYTES4BITS(256)) /* note extra bit */ ++ if (type == CKK_EC_EDWARDS && len == BYTES4BITS(256)) /* note extra bit */ + raw_pk = EVP_PKEY_ED25519; + #ifdef EVP_PKEY_ED448 +- else if (type == CKK_EC_EDWARDS && os->length == ED448_KEY_SIZE_BYTES) ++ else if (type == CKK_EC_EDWARDS && len == ED448_KEY_SIZE_BYTES) + raw_pk = EVP_PKEY_ED448; + #endif /* EVP_PKEY_ED448 */ + #ifdef EVP_PKEY_X25519 +- else if (type == CKK_EC_MONTGOMERY && os->length == BYTES4BITS(256)) /* note extra bit */ ++ else if (type == CKK_EC_MONTGOMERY && len == BYTES4BITS(256)) /* note extra bit */ + raw_pk = EVP_PKEY_X25519; + #endif /*EVP_PKEY_X25519 */ + #ifdef EVP_PKEY_X448 +- else if (type == CKK_EC_MONTGOMERY && os->length == BYTES4BITS(448)) ++ else if (type == CKK_EC_MONTGOMERY && len == BYTES4BITS(448)) + raw_pk = EVP_PKEY_X448; + #endif /* EVP_PKEY_X448 */ + else + util_fatal("Invalid or not supported CKK_EC_EDWARDS or CKK_EC_MONTGOMERY public key"); + + key = EVP_PKEY_new_raw_public_key(raw_pk, NULL, +- (const uint8_t *)os->data, +- os->length); ++ (const uint8_t *)ASN1_STRING_get0_data(os), ++ ASN1_STRING_length(os)); + ASN1_STRING_free(os); + if (key == NULL) { + util_fatal("out of memory"); +diff --git a/src/tools/pkcs15-init.c b/src/tools/pkcs15-init.c +index e011232987..b978e0677a 100644 +--- a/src/tools/pkcs15-init.c ++++ b/src/tools/pkcs15-init.c +@@ -2593,8 +2593,8 @@ do_read_data_object(const char *name, u8 **out, size_t *outlen, size_t expected) + static char * + cert_common_name(X509 *x509) + { +- X509_NAME_ENTRY *ne = NULL; +- ASN1_STRING *a_str = NULL; ++ const X509_NAME_ENTRY *ne = NULL; ++ const ASN1_STRING *a_str = NULL; + char *out = NULL; + unsigned char *tmp = NULL; + int idx, out_len = 0; -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 56/77] package/perl-net-ssleay: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (54 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 55/77] package/opensc: Add support for " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 57/77] package/pkcs11-helper: " Bernd Kuhls ` (20 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0002-Fix-SSLv3-in-OpenSSL-4.0.0.patch | 39 ++++ ...emove-support-for-some-TLS-functions.patch | 197 ++++++++++++++++++ ...SSLeay-to-support-opaque-ASN1_STRING.patch | 179 ++++++++++++++++ ...-removal-of-SSLv2-Client-Hello-suppo.patch | 66 ++++++ ...Net-SSLeay-OPENSSL_info-return-value.patch | 45 ++++ ...r-OPenSSL-4-support-and-update-tests.patch | 94 +++++++++ ...but-if-with-else-to-avoid-duplicate-.patch | 83 ++++++++ 7 files changed, 703 insertions(+) create mode 100644 package/perl-net-ssleay/0002-Fix-SSLv3-in-OpenSSL-4.0.0.patch create mode 100644 package/perl-net-ssleay/0003-OpenSSL-4.0.0-remove-support-for-some-TLS-functions.patch create mode 100644 package/perl-net-ssleay/0004-Fix-Net-SSLeay-to-support-opaque-ASN1_STRING.patch create mode 100644 package/perl-net-ssleay/0005-Update-tests-for-removal-of-SSLv2-Client-Hello-suppo.patch create mode 100644 package/perl-net-ssleay/0006-Add-default-for-Net-SSLeay-OPENSSL_info-return-value.patch create mode 100644 package/perl-net-ssleay/0007-Add-Changes-for-OPenSSL-4-support-and-update-tests.patch create mode 100644 package/perl-net-ssleay/0008-Do-not-use-elif-but-if-with-else-to-avoid-duplicate-.patch diff --git a/package/perl-net-ssleay/0002-Fix-SSLv3-in-OpenSSL-4.0.0.patch b/package/perl-net-ssleay/0002-Fix-SSLv3-in-OpenSSL-4.0.0.patch new file mode 100644 index 0000000000..8257c6c00f --- /dev/null +++ b/package/perl-net-ssleay/0002-Fix-SSLv3-in-OpenSSL-4.0.0.patch @@ -0,0 +1,39 @@ +From 361b3adc1dd09f70be7bd8972992626a3240b58d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michal=20Josef=20=C5=A0pa=C4=8Dek?= <mspacek@redhat.com> +Date: Tue, 14 Apr 2026 12:37:39 +0200 +Subject: [PATCH] Fix SSLv3 in OpenSSL 4.0.0 + +Support for SSLv3 was removed. + +Upstream: https://github.com/radiator-software/p5-net-ssleay/pull/553/changes/361b3adc1dd09f70be7bd8972992626a3240b58d + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + SSLeay.xs | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/SSLeay.xs b/SSLeay.xs +index 0ed7d96..5407fa1 100644 +--- a/SSLeay.xs ++++ b/SSLeay.xs +@@ -2454,7 +2454,7 @@ SSL_CTX_v2_new() + + #endif + #endif +-#ifndef OPENSSL_NO_SSL3 ++#if !defined(OPENSSL_NO_SSL3) && OPENSSL_VERSION_NUMBER < 0x40000000L + + SSL_CTX * + SSL_CTX_v3_new() +@@ -5600,7 +5600,7 @@ SSLv2_method() + #endif + #endif + +-#ifndef OPENSSL_NO_SSL3 ++#if !defined(OPENSSL_NO_SSL3) && OPENSSL_VERSION_NUMBER < 0x40000000L + + const SSL_METHOD * + SSLv3_method() +-- +2.47.3 + diff --git a/package/perl-net-ssleay/0003-OpenSSL-4.0.0-remove-support-for-some-TLS-functions.patch b/package/perl-net-ssleay/0003-OpenSSL-4.0.0-remove-support-for-some-TLS-functions.patch new file mode 100644 index 0000000000..916acdcac9 --- /dev/null +++ b/package/perl-net-ssleay/0003-OpenSSL-4.0.0-remove-support-for-some-TLS-functions.patch @@ -0,0 +1,197 @@ +From 780c7ad4803d0fc8e755bb86e589f84898e65040 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michal=20Josef=20=C5=A0pa=C4=8Dek?= <mspacek@redhat.com> +Date: Tue, 14 Apr 2026 14:08:00 +0200 +Subject: [PATCH] OpenSSL 4.0.0 remove support for some TLS functions + +Removes fixed version TLS methods +(https://github.com/openssl/openssl/pull/30128) + +Upstream: https://github.com/radiator-software/p5-net-ssleay/pull/553/changes/780c7ad4803d0fc8e755bb86e589f84898e65040 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + SSLeay.xs | 51 ++++++++++++++++++++++++++++++++++++++++------ + lib/Net/SSLeay.pod | 17 +++++++++------- + 2 files changed, 55 insertions(+), 13 deletions(-) + +diff --git a/SSLeay.xs b/SSLeay.xs +index 5407fa1..ad996d5 100644 +--- a/SSLeay.xs ++++ b/SSLeay.xs +@@ -2472,7 +2472,7 @@ SSL_CTX_v23_new() + OUTPUT: + RETVAL + +-#if !defined(OPENSSL_NO_TLS1_METHOD) ++#if !defined(OPENSSL_NO_TLS1_METHOD) && OPENSSL_VERSION_NUMBER < 0x40000000L + + SSL_CTX * + SSL_CTX_tlsv1_new() +@@ -2481,9 +2481,22 @@ SSL_CTX_tlsv1_new() + OUTPUT: + RETVAL + ++#elif OPENSSL_VERSION_NUMBER >= 0x40000000L ++ ++SSL_CTX * ++SSL_CTX_tlsv1_new() ++ CODE: ++ RETVAL = SSL_CTX_new(TLS_method()); ++ if (RETVAL) { ++ SSL_CTX_set_min_proto_version(RETVAL, TLS1_VERSION); ++ SSL_CTX_set_max_proto_version(RETVAL, TLS1_VERSION); ++ } ++ OUTPUT: ++ RETVAL ++ + #endif + +-#if (OPENSSL_VERSION_NUMBER >= 0x10001001L && !defined(OPENSSL_NO_TLS1_1_METHOD)) /* OpenSSL 1.0.1-beta1 */ ++#if (OPENSSL_VERSION_NUMBER >= 0x10001001L && OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_TLS1_1_METHOD)) /* OpenSSL 1.0.1-beta1 */ + + SSL_CTX * + SSL_CTX_tlsv1_1_new() +@@ -2492,9 +2505,22 @@ SSL_CTX_tlsv1_1_new() + OUTPUT: + RETVAL + ++#elif OPENSSL_VERSION_NUMBER >= 0x40000000L ++ ++SSL_CTX * ++SSL_CTX_tlsv1_1_new() ++ CODE: ++ RETVAL = SSL_CTX_new(TLS_method()); ++ if (RETVAL) { ++ SSL_CTX_set_min_proto_version(RETVAL, TLS1_1_VERSION); ++ SSL_CTX_set_max_proto_version(RETVAL, TLS1_1_VERSION); ++ } ++ OUTPUT: ++ RETVAL ++ + #endif + +-#if (OPENSSL_VERSION_NUMBER >= 0x10001001L && !defined(OPENSSL_NO_TLS1_2_METHOD)) /* OpenSSL 1.0.1-beta1 */ ++#if (OPENSSL_VERSION_NUMBER >= 0x10001001L && OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_TLS1_2_METHOD)) /* OpenSSL 1.0.1-beta1 */ + + SSL_CTX * + SSL_CTX_tlsv1_2_new() +@@ -2503,6 +2529,19 @@ SSL_CTX_tlsv1_2_new() + OUTPUT: + RETVAL + ++#elif OPENSSL_VERSION_NUMBER >= 0x40000000L ++ ++SSL_CTX * ++SSL_CTX_tlsv1_2_new() ++ CODE: ++ RETVAL = SSL_CTX_new(TLS_method()); ++ if (RETVAL) { ++ SSL_CTX_set_min_proto_version(RETVAL, TLS1_2_VERSION); ++ SSL_CTX_set_max_proto_version(RETVAL, TLS1_2_VERSION); ++ } ++ OUTPUT: ++ RETVAL ++ + #endif + + SSL_CTX * +@@ -5616,7 +5655,7 @@ SSLv23_server_method() + const SSL_METHOD * + SSLv23_client_method() + +-#if !defined(OPENSSL_NO_TLS1_METHOD) ++#if !defined(OPENSSL_NO_TLS1_METHOD) && OPENSSL_VERSION_NUMBER < 0x40000000L + + const SSL_METHOD * + TLSv1_method() +@@ -5629,7 +5668,7 @@ TLSv1_client_method() + + #endif + +-#if (OPENSSL_VERSION_NUMBER >= 0x10001001L && !defined(OPENSSL_NO_TLS1_1_METHOD)) /* OpenSSL 1.0.1-beta1 */ ++#if (OPENSSL_VERSION_NUMBER >= 0x10001001L && OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_TLS1_1_METHOD)) /* OpenSSL 1.0.1-beta1 */ + + const SSL_METHOD * + TLSv1_1_method() +@@ -5642,7 +5681,7 @@ TLSv1_1_client_method() + + #endif + +-#if (OPENSSL_VERSION_NUMBER >= 0x10001001L && !defined(OPENSSL_NO_TLS1_2_METHOD)) /* OpenSSL 1.0.1-beta1 */ ++#if (OPENSSL_VERSION_NUMBER >= 0x10001001L && OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_TLS1_2_METHOD)) /* OpenSSL 1.0.1-beta1 */ + + const SSL_METHOD * + TLSv1_2_method() +diff --git a/lib/Net/SSLeay.pod b/lib/Net/SSLeay.pod +index 554fd11..d947ad3 100644 +--- a/lib/Net/SSLeay.pod ++++ b/lib/Net/SSLeay.pod +@@ -1575,7 +1575,7 @@ Check openssl doc L<https://www.openssl.org/docs/manmaster/man3/SSL_CTX_new.html + + =item * TLSv1_method, TLSv1_server_method and TLSv1_client_method + +-B<COMPATIBILITY:> Requires OpenSSL or LibreSSL built with support for TLSv1. Server and client methods not available in Net-SSLeay-1.82 and before. ++B<COMPATIBILITY:> Requires OpenSSL or LibreSSL built with support for TLSv1. Server and client methods not available in Net-SSLeay-1.82 and before. Not available in OpenSSL 4.0.0 and later. Use L</TLS_method> with L</CTX_set_min_proto_version> and L</CTX_set_max_proto_version> instead. + + Returns SSL_METHOD structure corresponding to TLSv1 method, the return value can be later used as a param of L</CTX_new_with_method>. + +@@ -1587,7 +1587,7 @@ Check openssl doc L<https://www.openssl.org/docs/manmaster/man3/SSL_CTX_new.html + + =item * TLSv1_1_method, TLSv1_1_server_method and TLSv1_1_client_method + +-B<COMPATIBILITY:> Requires OpenSSL >= 1.0.1 or LibreSSL built with support for TLSv1.1. Server and client methods not available in Net-SSLeay-1.82 and before. ++B<COMPATIBILITY:> Requires OpenSSL >= 1.0.1 or LibreSSL built with support for TLSv1.1. Server and client methods not available in Net-SSLeay-1.82 and before. Not available in OpenSSL 4.0.0 and later. Use L</TLS_method> with L</CTX_set_min_proto_version> and L</CTX_set_max_proto_version> instead. + + Returns SSL_METHOD structure corresponding to TLSv1_1 method, the return value can be later used as a param of L</CTX_new_with_method>. + +@@ -1599,7 +1599,7 @@ Check openssl doc L<https://www.openssl.org/docs/manmaster/man3/SSL_CTX_new.html + + =item * TLSv1_2_method, TLSv1_2_server_method and TLSv1_2_client_method + +-B<COMPATIBILITY:> Requires OpenSSL >= 1.0.1 or LibreSSL built with support for TLSv1.2. Server and client methods not available in Net-SSLeay-1.82 and before. ++B<COMPATIBILITY:> Requires OpenSSL >= 1.0.1 or LibreSSL built with support for TLSv1.2. Server and client methods not available in Net-SSLeay-1.82 and before. Not available in OpenSSL 4.0.0 and later. Use L</TLS_method> with L</CTX_set_min_proto_version> and L</CTX_set_max_proto_version> instead. + + Returns SSL_METHOD structure corresponding to TLSv1_2 method, the return value can be later used as a param of L</CTX_new_with_method>. + +@@ -2998,7 +2998,7 @@ Creates a new SSL_CTX object - based on SSLv3_method() - as framework to establi + + =item * CTX_tlsv1_new + +-B<COMPATIBILITY:> Requires OpenSSL or LibreSSL built with support for TLSv1. ++B<COMPATIBILITY:> Requires OpenSSL or LibreSSL built with support for TLSv1. In OpenSSL 4.0.0 and later, this function is emulated using L</TLS_method> with L</CTX_set_min_proto_version> and L</CTX_set_max_proto_version> for backward compatibility. It is recommended to use L</CTX_new> with L</CTX_set_min_proto_version> and L</CTX_set_max_proto_version> instead. + + Creates a new SSL_CTX object - based on C<TLSv1_method()> - as a framework for establishing connections using TLSv1. + +@@ -3008,7 +3008,7 @@ Creates a new SSL_CTX object - based on C<TLSv1_method()> - as a framework for e + + =item * CTX_tlsv1_1_new + +-B<COMPATIBILITY:> Requires OpenSSL >= 1.0.1 or LibreSSL built with support for TLSv1.1. ++B<COMPATIBILITY:> Requires OpenSSL >= 1.0.1 or LibreSSL built with support for TLSv1.1. In OpenSSL 4.0.0 and later, this function is emulated using L</TLS_method> with L</CTX_set_min_proto_version> and L</CTX_set_max_proto_version> for backward compatibility. It is recommended to use L</CTX_new> with L</CTX_set_min_proto_version> and L</CTX_set_max_proto_version> instead. + + Creates a new SSL_CTX object - based on C<TLSv1_1_method()> - as a framework for establishing connections using TLSv1.1. + +@@ -3018,7 +3018,7 @@ Creates a new SSL_CTX object - based on C<TLSv1_1_method()> - as a framework for + + =item * CTX_tlsv1_2_new + +-B<COMPATIBILITY:> Requires OpenSSL >= 1.0.1 or LibreSSL built with support for TLSv1.2. ++B<COMPATIBILITY:> Requires OpenSSL >= 1.0.1 or LibreSSL built with support for TLSv1.2. In OpenSSL 4.0.0 and later, this function is emulated using L</TLS_method> with L</CTX_set_min_proto_version> and L</CTX_set_max_proto_version> for backward compatibility. It is recommended to use L</CTX_new> with L</CTX_set_min_proto_version> and L</CTX_set_max_proto_version> instead. + + Creates a new SSL_CTX object - based on C<TLSv1_2_method()> - as a framework for establishing connections using TLSv1.2. + +@@ -3035,7 +3035,10 @@ Creates a new SSL_CTX object based on $meth method + # + # returns: value corresponding to openssl's SSL_CTX structure (0 on failure) + +- # example ++ # example (recommended, available since OpenSSL 1.1.0) ++ my $ctx = Net::SSLeay::CTX_new_with_method(&Net::SSLeay::TLS_method); ++ ++ # example (TLSv1_method not available in OpenSSL 4.0.0+) + my $ctx = Net::SSLeay::CTX_new_with_method(&Net::SSLeay::TLSv1_method); + + Check openssl doc L<https://www.openssl.org/docs/manmaster/man3/SSL_CTX_new.html> +-- +2.47.3 + diff --git a/package/perl-net-ssleay/0004-Fix-Net-SSLeay-to-support-opaque-ASN1_STRING.patch b/package/perl-net-ssleay/0004-Fix-Net-SSLeay-to-support-opaque-ASN1_STRING.patch new file mode 100644 index 0000000000..3b828ee9d2 --- /dev/null +++ b/package/perl-net-ssleay/0004-Fix-Net-SSLeay-to-support-opaque-ASN1_STRING.patch @@ -0,0 +1,179 @@ +From 929e8eb5ae2953fdb5231588a9d916ae6cffa939 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michal=20Josef=20=C5=A0pa=C4=8Dek?= <mspacek@redhat.com> +Date: Tue, 14 Apr 2026 14:32:27 +0200 +Subject: [PATCH] Fix Net::SSLeay to support opaque ASN1_STRING + +Upstream: https://github.com/radiator-software/p5-net-ssleay/pull/553/changes/929e8eb5ae2953fdb5231588a9d916ae6cffa939 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + SSLeay.xs | 95 +++++++++++++++++++++++++++++++++---------------------- + 1 file changed, 57 insertions(+), 38 deletions(-) + +diff --git a/SSLeay.xs b/SSLeay.xs +index ad996d5..2567d81 100644 +--- a/SSLeay.xs ++++ b/SSLeay.xs +@@ -2194,35 +2194,41 @@ int ssl_ctx_set_cert_cb_invoke(SSL *ssl, void *arg) + + time_t ASN1_TIME_timet(ASN1_TIME *asn1t, time_t *gmtoff) { + struct tm t; +- const char *p = (const char*) asn1t->data; ++#if (OPENSSL_VERSION_NUMBER >= 0x1010000f && !defined(LIBRESSL_VERSION_NUMBER)) || (LIBRESSL_VERSION_NUMBER >= 0x2070000fL) ++ const char *p = (const char*) ASN1_STRING_get0_data(asn1t); ++#else ++ const char *p = (const char*) ASN1_STRING_data(asn1t); ++#endif ++ int asn1t_length = ASN1_STRING_length(asn1t); ++ int asn1t_type = ASN1_STRING_type(asn1t); + size_t msec = 0, tz = 0, i, l; + time_t result; + int adj = 0; + +- if (asn1t->type == V_ASN1_UTCTIME) { +- if (asn1t->length<12 || asn1t->length>17) return 0; +- if (asn1t->length>12) tz = 12; ++ if (asn1t_type == V_ASN1_UTCTIME) { ++ if (asn1t_length<12 || asn1t_length>17) return 0; ++ if (asn1t_length>12) tz = 12; + } else { +- if (asn1t->length<14) return 0; +- if (asn1t->length>14) { ++ if (asn1t_length<14) return 0; ++ if (asn1t_length>14) { + if (p[14] == '.') { + msec = 14; +- for(i=msec+1;i<asn1t->length && p[i]>='0' && p[i]<='9';i++) ; +- if (i<asn1t->length) tz = i; ++ for(i=msec+1;i<(size_t)asn1t_length && p[i]>='0' && p[i]<='9';i++) ; ++ if (i<(size_t)asn1t_length) tz = i; + } else { + tz = 14; + } + } + } + +- l = msec ? msec : tz ? tz : asn1t->length; ++ l = msec ? msec : tz ? tz : (size_t)asn1t_length; + for(i=0;i<l;i++) { + if (p[i]<'0' || p[i]>'9') return 0; + } + + /* extract data and time */ + OPENSSL_cleanse(&t, sizeof(t)); +- if (asn1t->type == V_ASN1_UTCTIME) { /* YY - two digit year */ ++ if (asn1t_type == V_ASN1_UTCTIME) { /* YY - two digit year */ + t.tm_year = (p[0]-'0')*10 + (p[1]-'0'); + if (t.tm_year < 70) t.tm_year += 100; + i=2; +@@ -2242,11 +2248,11 @@ time_t ASN1_TIME_timet(ASN1_TIME *asn1t, time_t *gmtoff) { + if (tz) { + /* TZ is 'Z' or [+-]DDDD and after TZ the string must stop*/ + if (p[tz] == 'Z') { +- if (asn1t->length>tz+1 ) return 0; +- } else if (asn1t->length<tz+5 || (p[tz]!='-' && p[tz]!='+')) { ++ if ((size_t)asn1t_length>tz+1 ) return 0; ++ } else if ((size_t)asn1t_length<tz+5 || (p[tz]!='-' && p[tz]!='+')) { + return 0; + } else { +- if (asn1t->length>tz+5 ) return 0; ++ if ((size_t)asn1t_length>tz+5 ) return 0; + for(i=tz+1;i<tz+5;i++) { + if (p[i]<'0' || p[i]>'9') return 0; + } +@@ -4690,7 +4696,11 @@ X509_get_subjectAltNames(cert) + EXTEND(SP, 2); + count++; + PUSHs(sv_2mortal(newSViv(subjAltNameDN->type))); +- PUSHs(sv_2mortal(newSVpv((const char*)subjAltNameDN->d.ip->data, subjAltNameDN->d.ip->length))); ++#if (OPENSSL_VERSION_NUMBER >= 0x1010000f && !defined(LIBRESSL_VERSION_NUMBER)) || (LIBRESSL_VERSION_NUMBER >= 0x2070000fL) ++ PUSHs(sv_2mortal(newSVpv((const char*)ASN1_STRING_get0_data(subjAltNameDN->d.ip), ASN1_STRING_length(subjAltNameDN->d.ip)))); ++#else ++ PUSHs(sv_2mortal(newSVpv((const char*)ASN1_STRING_data(subjAltNameDN->d.ip), ASN1_STRING_length(subjAltNameDN->d.ip)))); ++#endif + break; + + } +@@ -5229,15 +5239,20 @@ P_ASN1_TIME_get_isotime(tm) + ASN1_TIME_to_generalizedtime(tm,&tmp); + if (tmp) { + if (ASN1_GENERALIZEDTIME_check(tmp)) { +- if (strlen((char*)tmp->data)>=14 && strlen((char*)tmp->data)<200) { ++#if (OPENSSL_VERSION_NUMBER >= 0x1010000f && !defined(LIBRESSL_VERSION_NUMBER)) || (LIBRESSL_VERSION_NUMBER >= 0x2070000fL) ++ const char *tmp_data = (const char*)ASN1_STRING_get0_data(tmp); ++#else ++ const char *tmp_data = (const char*)ASN1_STRING_data(tmp); ++#endif ++ if (strlen(tmp_data)>=14 && strlen(tmp_data)<200) { + strcpy (buf,"yyyy-mm-ddThh:mm:ss"); +- strncpy(buf, (char*)tmp->data, 4); +- strncpy(buf+5, (char*)tmp->data+4, 2); +- strncpy(buf+8, (char*)tmp->data+6, 2); +- strncpy(buf+11,(char*)tmp->data+8, 2); +- strncpy(buf+14,(char*)tmp->data+10,2); +- strncpy(buf+17,(char*)tmp->data+12,2); +- if (strlen((char*)tmp->data)>14) strcat(buf+19,(char*)tmp->data+14); ++ strncpy(buf, tmp_data, 4); ++ strncpy(buf+5, tmp_data+4, 2); ++ strncpy(buf+8, tmp_data+6, 2); ++ strncpy(buf+11,tmp_data+8, 2); ++ strncpy(buf+14,tmp_data+10,2); ++ strncpy(buf+17,tmp_data+12,2); ++ if (strlen(tmp_data)>14) strcat(buf+19,tmp_data+14); + } + } + ASN1_GENERALIZEDTIME_free(tmp); +@@ -5250,7 +5265,6 @@ P_ASN1_TIME_set_isotime(tm,str) + ASN1_TIME *tm + const char *str + PREINIT: +- ASN1_TIME t; + char buf[256]; + int i,rv; + CODE: +@@ -5272,22 +5286,27 @@ P_ASN1_TIME_set_isotime(tm,str) + buf[14] = '\0'; + if (strlen(str)>19 && strlen(str)<200) strcat(buf,str+19); + +- /* WORKAROUND: ASN1_TIME_set_string() not available in 0.9.8 !!!*/ +- /* in 1.0.0 we would simply: rv = ASN1_TIME_set_string(tm,buf); */ +- t.length = strlen(buf); +- t.data = (unsigned char *)buf; +- t.flags = 0; +- t.type = V_ASN1_UTCTIME; +- if (!ASN1_TIME_check(&t)) { +- t.type = V_ASN1_GENERALIZEDTIME; +- if (!ASN1_TIME_check(&t)) XSRETURN_UNDEF; ++ /* ASN1_TIME_set_string() not available in 0.9.8 */ ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ rv = ASN1_TIME_set_string(tm, buf); ++ if (!rv) XSRETURN_UNDEF; ++#else ++ { ++ ASN1_TIME t; ++ t.length = strlen(buf); ++ t.data = (unsigned char *)buf; ++ t.flags = 0; ++ t.type = V_ASN1_UTCTIME; ++ if (!ASN1_TIME_check(&t)) { ++ t.type = V_ASN1_GENERALIZEDTIME; ++ if (!ASN1_TIME_check(&t)) XSRETURN_UNDEF; ++ } ++ tm->type = t.type; ++ tm->flags = t.flags; ++ if (!ASN1_STRING_set(tm,t.data,t.length)) XSRETURN_UNDEF; ++ rv = 1; + } +- tm->type = t.type; +- tm->flags = t.flags; +- if (!ASN1_STRING_set(tm,t.data,t.length)) XSRETURN_UNDEF; +- rv = 1; +- +- /* end of ASN1_TIME_set_string() reimplementation */ ++#endif + + ST(0) = sv_newmortal(); + sv_setiv(ST(0), rv); /* 1 = success, undef = failure */ +-- +2.47.3 + diff --git a/package/perl-net-ssleay/0005-Update-tests-for-removal-of-SSLv2-Client-Hello-suppo.patch b/package/perl-net-ssleay/0005-Update-tests-for-removal-of-SSLv2-Client-Hello-suppo.patch new file mode 100644 index 0000000000..10fd4adccf --- /dev/null +++ b/package/perl-net-ssleay/0005-Update-tests-for-removal-of-SSLv2-Client-Hello-suppo.patch @@ -0,0 +1,66 @@ +From 1a5837fa489836f0dfc411d3a0c4d955ce8fab8c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michal=20Josef=20=C5=A0pa=C4=8Dek?= <mspacek@redhat.com> +Date: Tue, 14 Apr 2026 14:48:51 +0200 +Subject: [PATCH] Update tests for removal of SSLv2 Client Hello support in + OpenSSL 4.0.0 + +Upstream: https://github.com/radiator-software/p5-net-ssleay/pull/553/changes/1a5837fa489836f0dfc411d3a0c4d955ce8fab8c + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + t/local/48_client_hello_callback.t | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/t/local/48_client_hello_callback.t b/t/local/48_client_hello_callback.t +index d99122c..110d769 100644 +--- a/t/local/48_client_hello_callback.t ++++ b/t/local/48_client_hello_callback.t +@@ -5,13 +5,15 @@ use Test::Net::SSLeay qw( + can_fork data_file_path initialise_libssl new_ctx tcp_socket + ); + ++my $has_sslv2_hello; + BEGIN { + if (not defined &Net::SSLeay::CTX_set_client_hello_cb) { + plan skip_all => "No SSL_CTX_set_client_hello_cb()"; + } elsif (not can_fork()) { + plan skip_all => "fork() not supported on this system"; + } else { +- plan tests => 41; ++ $has_sslv2_hello = Net::SSLeay::SSLeay() < 0x40000000; ++ plan tests => $has_sslv2_hello ? 41 : 30; + } + } + +@@ -172,7 +174,7 @@ my @cb_tests = ( + # argument passed to the callback + # true if the callback function triggers croak() + # true if the client needs to test that ALPN alert (120) is received +- [ \&client_hello_cb_v2hello_detection, undef, 0 ], ++ ($has_sslv2_hello ? [ \&client_hello_cb_v2hello_detection, undef, 0 ] : ()), + [ \&client_hello_cb_getters, undef, 0 ], + [ \&client_hello_cb_value_passing, \$cb_test_arg, 0 ], + [ \&client_hello_cb_alert_alpn, undef, 0, 'alerts'], +@@ -248,8 +250,8 @@ my @results; + }; + + # Start with SSLv2 ClientHello detection test. Send a canned SSLv2 +- # ClientHello. +- { ++ # ClientHello. Removed in OpenSSL 4.0.0. ++ if ($has_sslv2_hello) { + my $s_clientv2 = $server->connect(); + my $clientv2_hello = get_sslv2_hello(); + syswrite($s_clientv2, $clientv2_hello, length $clientv2_hello); +@@ -306,7 +308,7 @@ my @results; + waitpid $pid, 0; + push @results, [$? == 0, 'Client: server exited with 0']; + END { +- Test::More->builder->current_test(37); ++ Test::More->builder->current_test($has_sslv2_hello ? 37 : 27); + ok( $_->[0], $_->[1] ) for (@results); + } + +-- +2.47.3 + diff --git a/package/perl-net-ssleay/0006-Add-default-for-Net-SSLeay-OPENSSL_info-return-value.patch b/package/perl-net-ssleay/0006-Add-default-for-Net-SSLeay-OPENSSL_info-return-value.patch new file mode 100644 index 0000000000..62946776f0 --- /dev/null +++ b/package/perl-net-ssleay/0006-Add-default-for-Net-SSLeay-OPENSSL_info-return-value.patch @@ -0,0 +1,45 @@ +From 89f6aa5d9f9e0c8976d2dbb07b51abe3a12457cc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michal=20Josef=20=C5=A0pa=C4=8Dek?= <mspacek@redhat.com> +Date: Tue, 14 Apr 2026 14:55:42 +0200 +Subject: [PATCH] Add default '' for Net::SSLeay::OPENSSL_info() return value + in tests + +The root cause was the removal of engines in OpenSSL 4.0.0, which +triggered a warning. + +Upstream: https://github.com/radiator-software/p5-net-ssleay/pull/553/changes/89f6aa5d9f9e0c8976d2dbb07b51abe3a12457cc + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + t/local/03_use.t | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/t/local/03_use.t b/t/local/03_use.t +index 36364b4..f8fd1ae 100644 +--- a/t/local/03_use.t ++++ b/t/local/03_use.t +@@ -63,12 +63,13 @@ if (defined &Net::SSLeay::OPENSSL_version_major) { + diag(" OPENSSL_version_build_metadata(): '" . Net::SSLeay::OPENSSL_version_build_metadata() . "'"); + diag(""); + diag("Library information with OPENSSL_info():"); +- diag(" OPENSSL_INFO_CONFIG_DIR: '" . Net::SSLeay::OPENSSL_info(Net::SSLeay::OPENSSL_INFO_CONFIG_DIR()) . "'"); +- diag(" OPENSSL_INFO_ENGINES_DIR: '" . Net::SSLeay::OPENSSL_info(Net::SSLeay::OPENSSL_INFO_ENGINES_DIR()) . "'"); +- diag(" OPENSSL_INFO_MODULES_DIR: '" . Net::SSLeay::OPENSSL_info(Net::SSLeay::OPENSSL_INFO_MODULES_DIR()) . "'"); +- diag(" OPENSSL_INFO_DSO_EXTENSION: '" . Net::SSLeay::OPENSSL_info(Net::SSLeay::OPENSSL_INFO_DSO_EXTENSION()) . "'"); +- diag(" OPENSSL_INFO_DIR_FILENAME_SEPARATOR: '" . Net::SSLeay::OPENSSL_info(Net::SSLeay::OPENSSL_INFO_DIR_FILENAME_SEPARATOR()) . "'"); +- diag(" OPENSSL_INFO_LIST_SEPARATOR: '" . Net::SSLeay::OPENSSL_info(Net::SSLeay::OPENSSL_INFO_LIST_SEPARATOR()) . "'"); +- diag(" OPENSSL_INFO_SEED_SOURCE: '" . Net::SSLeay::OPENSSL_info(Net::SSLeay::OPENSSL_INFO_SEED_SOURCE()) . "'"); +- diag(" OPENSSL_INFO_CPU_SETTINGS: '" . Net::SSLeay::OPENSSL_info(Net::SSLeay::OPENSSL_INFO_CPU_SETTINGS()) . "'"); ++ my $ossl_info = sub { my $v = Net::SSLeay::OPENSSL_info($_[0]); defined $v ? $v : '' }; ++ diag(" OPENSSL_INFO_CONFIG_DIR: '" . $ossl_info->(Net::SSLeay::OPENSSL_INFO_CONFIG_DIR()) . "'"); ++ diag(" OPENSSL_INFO_ENGINES_DIR: '" . $ossl_info->(Net::SSLeay::OPENSSL_INFO_ENGINES_DIR()) . "'"); ++ diag(" OPENSSL_INFO_MODULES_DIR: '" . $ossl_info->(Net::SSLeay::OPENSSL_INFO_MODULES_DIR()) . "'"); ++ diag(" OPENSSL_INFO_DSO_EXTENSION: '" . $ossl_info->(Net::SSLeay::OPENSSL_INFO_DSO_EXTENSION()) . "'"); ++ diag(" OPENSSL_INFO_DIR_FILENAME_SEPARATOR: '" . $ossl_info->(Net::SSLeay::OPENSSL_INFO_DIR_FILENAME_SEPARATOR()) . "'"); ++ diag(" OPENSSL_INFO_LIST_SEPARATOR: '" . $ossl_info->(Net::SSLeay::OPENSSL_INFO_LIST_SEPARATOR()) . "'"); ++ diag(" OPENSSL_INFO_SEED_SOURCE: '" . $ossl_info->(Net::SSLeay::OPENSSL_INFO_SEED_SOURCE()) . "'"); ++ diag(" OPENSSL_INFO_CPU_SETTINGS: '" . $ossl_info->(Net::SSLeay::OPENSSL_INFO_CPU_SETTINGS()) . "'"); + } +-- +2.47.3 + diff --git a/package/perl-net-ssleay/0007-Add-Changes-for-OPenSSL-4-support-and-update-tests.patch b/package/perl-net-ssleay/0007-Add-Changes-for-OPenSSL-4-support-and-update-tests.patch new file mode 100644 index 0000000000..943c8f737c --- /dev/null +++ b/package/perl-net-ssleay/0007-Add-Changes-for-OPenSSL-4-support-and-update-tests.patch @@ -0,0 +1,94 @@ +From cbe701c4cf200978f6332156d3b9889cf7c4984e Mon Sep 17 00:00:00 2001 +From: Heikki Vatiainen <hvn@radiatorsoftware.com> +Date: Wed, 17 Jun 2026 10:02:11 +0300 +Subject: [PATCH] Add Changes for OPenSSL 4 support and update tests. + +Update the test helper module for better detection of available TLS versions +with OpenSSL 4. Otherwise some of the tests with older TLS methods may be +skipped even though they are available with OpenSSL 4. + +Upstream: https://github.com/radiator-software/p5-net-ssleay/pull/553/changes/cbe701c4cf200978f6332156d3b9889cf7c4984e + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + Changes | 20 ++++++++++++++++++++ + inc/Test/Net/SSLeay.pm | 19 +++++++++++++++++++ + 2 files changed, 39 insertions(+) + +diff --git a/Changes b/Changes +index 09113fe..ff75ff2 100644 +--- a/Changes ++++ b/Changes +@@ -1,5 +1,25 @@ + Revision history for Perl extension Net::SSLeay. + ++1.97_01 ????-??-?? ++ - Support for OpenSSL 4.0.0. Contributed by Michal Josef Špaček. ++ - Net::SSLeay specific functions CTX_tlsv1_new(), ++ CTX_tlsv1_1_new() and CTX_tlsv1_2_new() with OpenSSL 4.0.0 ++ and later are emulated using TLS_method() with ++ SSL_CTX_set_min_proto_version() and ++ SSL_CTX_set_max_proto_version() for backward ++ compatibility. It is recommended to use ++ Net::SSLeay::CTX_new() with ++ Net::SSLeay::CTX_set_min_proto_version() and ++ Net::SSLeay::CTX_set_max_proto_version() instead. ++ - TLSv1_method, TLSv1_server_method and TLSv1_client_method, ++ TLSv1_1_method, TLSv1_1_server_method and ++ TLSv1_1_client_method, TLSv1_2_method, ++ TLSv1_2_server_method and TLSv1_2_client_method are ++ removed in OpenSSL 4.0.0. Use TLS_method() with ++ CTX_set_min_proto_version() and ++ CTX_set_max_proto_version() instead. ++ - CTX_v3_new() is removed with OpenSSL 4.0.0 and later. ++ + 1.96 2026-03-21 + - New stable release incorporating all changes from developer releases + 1.95_01 to 1.95_03. +diff --git a/inc/Test/Net/SSLeay.pm b/inc/Test/Net/SSLeay.pm +index ce0b03e..ddcc421 100644 +--- a/inc/Test/Net/SSLeay.pm ++++ b/inc/Test/Net/SSLeay.pm +@@ -38,6 +38,8 @@ my $data_path = catfile( dirname(__FILE__), '..', '..', '..', 't', 'data' ); + + my $initialised = 0; + ++# All version-specific methods were removed in OpenSSL 4.0. This list ++# may be updated once the library is loaded and its version is known. + my %protos = ( + 'TLSv1.3' => { + constant => \&Net::SSLeay::TLS1_3_VERSION, +@@ -104,6 +106,15 @@ sub _libssl_fatal { + sub _load_net_ssleay { + eval { require Net::SSLeay; 1; } or croak $EVAL_ERROR; + ++ if (Net::SSLeay::OPENSSL_VERSION_NUMBER() >= 0x40000000) { ++ $protos{'TLSv1.2'}->{constant} = \&Net::SSLeay::TLS1_2_VERSION; ++ $protos{'TLSv1.2'}->{constant_type} = 'version'; ++ $protos{'TLSv1.1'}->{constant} = \&Net::SSLeay::TLS1_1_VERSION; ++ $protos{'TLSv1.1'}->{constant_type} = 'version'; ++ $protos{'TLSv1'}->{constant} = \&Net::SSLeay::TLS1_VERSION; ++ $protos{'TLSv1'}->{constant_type} = 'version'; ++ } ++ + return 1; + } + +@@ -369,6 +380,14 @@ sub is_protocol_usable { + or _libssl_fatal('Failed to create SSL_CTX object'); + } + ++ # Security level functions were added in OpenSSL 1.1.0. Since then ++ # the default value of security level and the security level ++ # definitions have updated between the OpenSSL versions. Use level ++ # zero so that the library doesn't hide any of the protocols from ++ # us. ++ Net::SSLeay::CTX_set_security_level($ctx, 0) ++ if defined &Net::SSLeay::CTX_set_security_level; ++ + my $ssl = Net::SSLeay::new($ctx) + or _libssl_fatal('Failed to create SSL structure'); + +-- +2.47.3 + diff --git a/package/perl-net-ssleay/0008-Do-not-use-elif-but-if-with-else-to-avoid-duplicate-.patch b/package/perl-net-ssleay/0008-Do-not-use-elif-but-if-with-else-to-avoid-duplicate-.patch new file mode 100644 index 0000000000..5503679a94 --- /dev/null +++ b/package/perl-net-ssleay/0008-Do-not-use-elif-but-if-with-else-to-avoid-duplicate-.patch @@ -0,0 +1,83 @@ +From 99281b981ebd1d1367d4e871290ca84cfb295339 Mon Sep 17 00:00:00 2001 +From: Heikki Vatiainen <hvn@radiatorsoftware.com> +Date: Wed, 17 Jun 2026 11:02:50 +0300 +Subject: [PATCH] Do not use #elif but #if with #else to avoid duplicate + definitions in XS. + +Perl XS parser seems not to understand C preproceessor #elif. Using #if with + + Warning: duplicate function definition 'CTX_tlsv1_new' detected in SSLeay.xs, line 2493 + Warning: duplicate function definition 'CTX_tlsv1_1_new' detected in SSLeay.xs, line 2517 + Warning: duplicate function definition 'CTX_tlsv1_2_new' detected in SSLeay.xs, line 2541 + +This was seen with Perl 5.42.0 but more may not be the cae with more recent +Perl versions. + +Upstream: https://github.com/radiator-software/p5-net-ssleay/pull/553/changes/99281b981ebd1d1367d4e871290ca84cfb295339 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + SSLeay.xs | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/SSLeay.xs b/SSLeay.xs +index 2567d81..bf722a4 100644 +--- a/SSLeay.xs ++++ b/SSLeay.xs +@@ -2487,7 +2487,8 @@ SSL_CTX_tlsv1_new() + OUTPUT: + RETVAL + +-#elif OPENSSL_VERSION_NUMBER >= 0x40000000L ++#else ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) + + SSL_CTX * + SSL_CTX_tlsv1_new() +@@ -2501,6 +2502,7 @@ SSL_CTX_tlsv1_new() + RETVAL + + #endif ++#endif + + #if (OPENSSL_VERSION_NUMBER >= 0x10001001L && OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_TLS1_1_METHOD)) /* OpenSSL 1.0.1-beta1 */ + +@@ -2511,7 +2513,8 @@ SSL_CTX_tlsv1_1_new() + OUTPUT: + RETVAL + +-#elif OPENSSL_VERSION_NUMBER >= 0x40000000L ++#else ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) + + SSL_CTX * + SSL_CTX_tlsv1_1_new() +@@ -2525,6 +2528,7 @@ SSL_CTX_tlsv1_1_new() + RETVAL + + #endif ++#endif + + #if (OPENSSL_VERSION_NUMBER >= 0x10001001L && OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_TLS1_2_METHOD)) /* OpenSSL 1.0.1-beta1 */ + +@@ -2535,7 +2539,8 @@ SSL_CTX_tlsv1_2_new() + OUTPUT: + RETVAL + +-#elif OPENSSL_VERSION_NUMBER >= 0x40000000L ++#else ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) + + SSL_CTX * + SSL_CTX_tlsv1_2_new() +@@ -2549,6 +2554,7 @@ SSL_CTX_tlsv1_2_new() + RETVAL + + #endif ++#endif + + SSL_CTX * + SSL_CTX_new_with_method(meth) +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 57/77] package/pkcs11-helper: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (55 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 56/77] package/perl-net-ssleay: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 58/77] package/python3: " Bernd Kuhls ` (19 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...1-crypto-openssl-use-ASN1_TIME_to_tm.patch | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 package/pkcs11-helper/0001-crypto-openssl-use-ASN1_TIME_to_tm.patch diff --git a/package/pkcs11-helper/0001-crypto-openssl-use-ASN1_TIME_to_tm.patch b/package/pkcs11-helper/0001-crypto-openssl-use-ASN1_TIME_to_tm.patch new file mode 100644 index 0000000000..d8149330e1 --- /dev/null +++ b/package/pkcs11-helper/0001-crypto-openssl-use-ASN1_TIME_to_tm.patch @@ -0,0 +1,48 @@ +From 59cc22b8d65669da599f1c435fdfe35d4e07db0e Mon Sep 17 00:00:00 2001 +From: Ravi Kant Sharma <ravi.kant.sharma@canonical.com> +Date: Thu, 4 Jun 2026 12:49:44 +0200 +Subject: [PATCH] crypto-openssl: use ASN1_TIME_to_tm + +Introduced in openssl-1.1.1 and is required for openssl-4. + +Upstream: https://github.com/OpenSC/pkcs11-helper/commit/59cc22b8d65669da599f1c435fdfe35d4e07db0e + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + lib/_pkcs11h-crypto-openssl.c | 16 +++++----------- + 1 files change, 5 insertions(+), 11 deletions(-) + +diff --git a/lib/_pkcs11h-crypto-openssl.c b/lib/_pkcs11h-crypto-openssl.c +index 05af65e..aa58722 100644 +--- a/lib/_pkcs11h-crypto-openssl.c ++++ b/lib/_pkcs11h-crypto-openssl.c +@@ -148,21 +148,15 @@ __pkcs11h_crypto_openssl_certificate_get_expiration ( + notBefore != NULL && + notAfter != NULL && + X509_cmp_current_time (notBefore) <= 0 && +- X509_cmp_current_time (notAfter) >= 0 && +- notAfter->length >= 12 ++ X509_cmp_current_time (notAfter) >= 0 + ) { + struct tm tm1; + + memset (&tm1, 0, sizeof (tm1)); +- tm1.tm_year = (notAfter->data[ 0] - '0') * 10 + (notAfter->data[ 1] - '0') + 100; +- tm1.tm_mon = (notAfter->data[ 2] - '0') * 10 + (notAfter->data[ 3] - '0') - 1; +- tm1.tm_mday = (notAfter->data[ 4] - '0') * 10 + (notAfter->data[ 5] - '0'); +- tm1.tm_hour = (notAfter->data[ 6] - '0') * 10 + (notAfter->data[ 7] - '0'); +- tm1.tm_min = (notAfter->data[ 8] - '0') * 10 + (notAfter->data[ 9] - '0'); +- tm1.tm_sec = (notAfter->data[10] - '0') * 10 + (notAfter->data[11] - '0'); +- +- *expiration = mktime (&tm1); +- *expiration += (int)(mktime (localtime (expiration)) - mktime (gmtime (expiration))); ++ if (ASN1_TIME_to_tm (notAfter, &tm1)) { ++ *expiration = mktime (&tm1); ++ *expiration += (int)(mktime (localtime (expiration)) - mktime (gmtime (expiration))); ++ } + } + + cleanup: +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 58/77] package/python3: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (56 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 57/77] package/pkcs11-helper: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 59/77] package/qpid-proton: Fix build with " Bernd Kuhls ` (18 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Python decided to add support for OpenSSL => 4.0 in version 3.15 and to not backport the support to older branches. Ubuntu however bumped OpenSSL to 4.0.0 and added a patch to its Python package which we add to buildroot with this commit. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/python3/0011-openssl4-support.patch | 9807 +++++++++++++++++++ 1 file changed, 9807 insertions(+) create mode 100644 package/python3/0011-openssl4-support.patch diff --git a/package/python3/0011-openssl4-support.patch b/package/python3/0011-openssl4-support.patch new file mode 100644 index 0000000000..0d6e7b612d --- /dev/null +++ b/package/python3/0011-openssl4-support.patch @@ -0,0 +1,9807 @@ +Description: Support building with OpenSSL 4 +Author: Victor Stinner <vstinner@python.org> +Origin: https://github.com/python/cpython/pull/149783/changes +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/python3.14/+bug/2154836 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1137595 +Forwarded: no +Last-Update: 2026-08-26 + +Upstream: https://git.launchpad.net/ubuntu/+source/python3.14/commit/?id=266bf18086198a0b3c54defcb770e2a5419c8157 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> + +--- a/Lib/test/test_poplib.py ++++ b/Lib/test/test_poplib.py +@@ -184,7 +184,8 @@ + elif err.args[0] == ssl.SSL_ERROR_EOF: + return self.handle_close() + # TODO: SSLError does not expose alert information +- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ elif ("TLS_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ "SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or + "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]): + return self.handle_close() + raise +--- a/Lib/test/test_ssl.py ++++ b/Lib/test/test_ssl.py +@@ -396,7 +396,7 @@ + ssl.OP_NO_COMPRESSION + self.assertEqual(ssl.HAS_SNI, True) + self.assertEqual(ssl.HAS_ECDH, True) +- self.assertEqual(ssl.HAS_TLSv1_2, True) ++ self.assertIsInstance(ssl.HAS_TLSv1_2, bool) + self.assertEqual(ssl.HAS_TLSv1_3, True) + ssl.OP_NO_SSLv2 + ssl.OP_NO_SSLv3 +@@ -587,11 +587,11 @@ + # Some sanity checks follow + # >= 1.1.1 + self.assertGreaterEqual(n, 0x10101000) +- # < 4.0 +- self.assertLess(n, 0x40000000) ++ # < 5.0 ++ self.assertLess(n, 0x50000000) + major, minor, fix, patch, status = t + self.assertGreaterEqual(major, 1) +- self.assertLess(major, 4) ++ self.assertLess(major, 5) + self.assertGreaterEqual(minor, 0) + self.assertLess(minor, 256) + self.assertGreaterEqual(fix, 0) +@@ -657,12 +657,14 @@ + ssl.OP_NO_TLSv1_2, + ssl.OP_NO_TLSv1_3 + ] +- protocols = [ +- ssl.PROTOCOL_TLSv1, +- ssl.PROTOCOL_TLSv1_1, +- ssl.PROTOCOL_TLSv1_2, +- ssl.PROTOCOL_TLS +- ] ++ protocols = [] ++ if hasattr(ssl, 'PROTOCOL_TLSv1'): ++ protocols.append(ssl.PROTOCOL_TLSv1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_1'): ++ protocols.append(ssl.PROTOCOL_TLSv1_1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_2'): ++ protocols.append(ssl.PROTOCOL_TLSv1_2) ++ protocols.append(ssl.PROTOCOL_TLS) + versions = [ + ssl.TLSVersion.SSLv3, + ssl.TLSVersion.TLSv1, +@@ -1156,6 +1158,7 @@ + ssl.TLSVersion.TLSv1, + ssl.TLSVersion.TLSv1_1, + ssl.TLSVersion.TLSv1_2, ++ ssl.TLSVersion.TLSv1_3, + ssl.TLSVersion.SSLv3, + } + ) +@@ -1169,7 +1172,7 @@ + with self.assertRaises(ValueError): + ctx.minimum_version = 42 + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( +@@ -1721,23 +1724,24 @@ + self.assertFalse(ctx.check_hostname) + self._assert_context_options(ctx) + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) + +- with warnings_helper.check_warnings(): +- ctx = ssl._create_stdlib_context( +- ssl.PROTOCOL_TLSv1_2, +- cert_reqs=ssl.CERT_REQUIRED, +- check_hostname=True +- ) +- self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) +- self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) +- self.assertTrue(ctx.check_hostname) +- self._assert_context_options(ctx) ++ if has_tls_protocol('PROTOCOL_TLSv1_2'): ++ with warnings_helper.check_warnings(): ++ ctx = ssl._create_stdlib_context( ++ ssl.PROTOCOL_TLSv1_2, ++ cert_reqs=ssl.CERT_REQUIRED, ++ check_hostname=True ++ ) ++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) ++ self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) ++ self.assertTrue(ctx.check_hostname) ++ self._assert_context_options(ctx) + + ctx = ssl._create_stdlib_context(purpose=ssl.Purpose.CLIENT_AUTH) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_SERVER) +@@ -2764,6 +2768,36 @@ + def stop(self): + self.active = False + ++class TestEOFServer(threading.Thread): ++ def __init__(self): ++ super().__init__() ++ self.listening = threading.Event() ++ self.address = None ++ ++ def run(self): ++ context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ++ context.load_cert_chain(CERTFILE) ++ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ with server_sock: ++ server_sock.settimeout(support.SHORT_TIMEOUT) ++ server_sock.bind((HOST, 0)) ++ server_sock.listen(5) ++ ++ self.address = server_sock.getsockname() ++ self.listening.set() ++ ++ sock, addr = server_sock.accept() ++ sslconn = context.wrap_socket(sock, server_side=True) ++ with sslconn: ++ request = b'' ++ while chunk := sslconn.recv(1024): ++ request += chunk ++ if b'\n' in chunk: ++ break ++ ++ sslconn.sendall(b'server\n') ++ sslconn.shutdown(socket.SHUT_WR) ++ + class AsyncoreEchoServer(threading.Thread): + + # this one's based on asyncore.dispatcher +@@ -3637,10 +3671,10 @@ + client_options=ssl.OP_NO_TLSv1_2) + + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + +@@ -4489,7 +4523,9 @@ + sni_name='supermessage') + + # Allow for flexible libssl error messages. +- regex = "(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE)" ++ regex = ("(TLS_ALERT_HANDSHAKE_FAILURE" ++ "|SSLV3_ALERT_HANDSHAKE_FAILURE" ++ "|NO_PRIVATE_VALUE)") + self.assertRegex(cm.exception.reason, regex) + self.assertEqual(catch.unraisable.exc_type, ZeroDivisionError) + +@@ -4805,6 +4841,50 @@ + if cm.exc_value is not None: + raise cm.exc_value + ++ def test_got_eof(self): ++ # Test that _ssl._SSLSocket behaves the same on all OpenSSL ++ # versions on calling methods after EOF (after the first SSLEOFError). ++ ++ server = TestEOFServer() ++ server.start() ++ if not server.listening.wait(support.SHORT_TIMEOUT): ++ raise RuntimeError("server took too long") ++ self.addCleanup(server.join) ++ ++ context = ssl.create_default_context(cafile=CERTFILE) ++ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ sock.settimeout(support.SHORT_TIMEOUT) ++ sock.connect(server.address) ++ sslsock = context.wrap_socket(sock, server_hostname='localhost') ++ with sslsock: ++ sslsock.sendall(b'client\n') ++ # test the _ssl._SSLSocket object, not ssl.SSLSocket ++ sslobj = sslsock._sslobj ++ ++ data = sslobj.read(1024) ++ self.assertEqual(data, b'server\n') ++ ++ # The second read gets EOF error and sets got_eof_error to 1 ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.read(1024) ++ ++ # Following read(), sendfile(), write() and do_handshake() calls ++ # must raise SSLEOFError ++ with self.assertRaises(ssl.SSLEOFError): ++ # The _SSLSocket remembers the previous EOF error ++ # and raises again SSLEOFError ++ sslobj.read(1024) ++ if hasattr(sslobj, 'sendfile'): ++ with open(__file__, "rb") as fp: ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.sendfile(fp.fileno(), 0, 1) ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.write(b'client2\n') ++ with self.assertRaises(ssl.SSLEOFError): ++ sslsock.do_handshake() ++ ++ self.assertEqual(sslsock.pending(), 0) ++ + + @unittest.skipUnless(has_tls_version('TLSv1_3') and ssl.HAS_PHA, + "Test needs TLS 1.3 PHA") +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -123,7 +123,9 @@ + + /* Include generated data (error codes) */ + /* See make_ssl_data.h for notes on adding a new version. */ +-#if (OPENSSL_VERSION_NUMBER >= 0x30401000L) ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++#include "_ssl_data_40.h" ++#elif (OPENSSL_VERSION_NUMBER >= 0x30401000L) + #include "_ssl_data_35.h" + #elif (OPENSSL_VERSION_NUMBER >= 0x30100000L) + #include "_ssl_data_340.h" +@@ -135,6 +137,17 @@ + #error Unsupported OpenSSL version + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++#define OPENSSL_NO_SSL3 ++#define OPENSSL_NO_TLS1 ++#define OPENSSL_NO_TLS1_1 ++#define OPENSSL_NO_TLS1_2 ++#define OPENSSL_NO_SSL3_METHOD ++#define OPENSSL_NO_TLS1_METHOD ++#define OPENSSL_NO_TLS1_1_METHOD ++#define OPENSSL_NO_TLS1_2_METHOD ++#endif ++ + /* OpenSSL API 1.1.0+ does not include version methods */ + #ifndef OPENSSL_NO_SSL3_METHOD + extern const SSL_METHOD *SSLv3_method(void); +@@ -340,6 +353,16 @@ + * and shutdown methods check for chained exceptions. + */ + PyObject *exc; ++ // If non-zero, read(), sendfile(), write() and do_handshake() ++ // methods raise SSLEOFError without calling the underlying OpenSSL ++ // function. Set to 1 on PY_SSL_ERROR_EOF error. ++ // ++ // On OpenSSL 4, if SSL_read_ex() fails with ++ // SSL_R_UNEXPECTED_EOF_WHILE_READING, the following SSL_read_ex() call ++ // fails with a generic protocol error (ERR_peek_last_error() returns 0). ++ // Use got_eof_error to have the same behavior on OpenSSL 4 and newer and ++ // on OpenSSL 3 and older. ++ int got_eof_error; + } PySSLSocket; + + #define PySSLSocket_CAST(op) ((PySSLSocket *)(op)) +@@ -487,6 +510,10 @@ + PyObject *init_value, *msg, *key; + PyUnicodeWriter *writer = NULL; + ++ if (ssl_errno == PY_SSL_ERROR_EOF && sslsock != NULL) { ++ sslsock->got_eof_error = 1; ++ } ++ + if (errcode != 0) { + int lib, reason; + +@@ -642,6 +669,16 @@ + return -1; + } + ++static void ++set_eof_error(PySSLSocket *sslsock) ++{ ++ _sslmodulestate *state = get_state_sock(sslsock); ++ fill_and_set_sslerror(state, sslsock, state->PySSLEOFErrorObject, ++ PY_SSL_ERROR_EOF, ++ "EOF occurred in violation of protocol", ++ __LINE__, 0); ++} ++ + static PyObject * + PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno) + { +@@ -889,6 +926,7 @@ + self->server_hostname = NULL; + self->err = err; + self->exc = NULL; ++ self->got_eof_error = 0; + + /* Make sure the SSL error state is initialized */ + ERR_clear_error(); +@@ -1029,6 +1067,11 @@ + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -1134,7 +1177,7 @@ + + static PyObject * + _create_tuple_for_attribute(_sslmodulestate *state, +- ASN1_OBJECT *name, ASN1_STRING *value) ++ const ASN1_OBJECT *name, const ASN1_STRING *value) + { + Py_ssize_t buflen; + PyObject *pyattr; +@@ -1163,16 +1206,16 @@ + } + + static PyObject * +-_create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname) ++_create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname) + { + PyObject *dn = NULL; /* tuple which represents the "distinguished name" */ + PyObject *rdn = NULL; /* tuple to hold a "relative distinguished name" */ + PyObject *rdnt; + PyObject *attr = NULL; /* tuple to hold an attribute */ + int entry_count = X509_NAME_entry_count(xname); +- X509_NAME_ENTRY *entry; +- ASN1_OBJECT *name; +- ASN1_STRING *value; ++ const X509_NAME_ENTRY *entry; ++ const ASN1_OBJECT *name; ++ const ASN1_STRING *value; + int index_counter; + int rdn_level = -1; + int retcode; +@@ -2493,6 +2536,11 @@ + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -2633,6 +2681,11 @@ + Py_INCREF(sock); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + if (!group_right_1) { + dest = PyBytes_FromStringAndSize(NULL, len); + if (dest == NULL) +@@ -6513,9 +6566,15 @@ + ADD_INT_CONST("PROTOCOL_TLS", PY_SSL_VERSION_TLS); + ADD_INT_CONST("PROTOCOL_TLS_CLIENT", PY_SSL_VERSION_TLS_CLIENT); + ADD_INT_CONST("PROTOCOL_TLS_SERVER", PY_SSL_VERSION_TLS_SERVER); ++#ifndef OPENSSL_NO_TLS1 + ADD_INT_CONST("PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); ++#endif ++#ifndef OPENSSL_NO_TLS1_1 + ADD_INT_CONST("PROTOCOL_TLSv1_1", PY_SSL_VERSION_TLS1_1); ++#endif ++#ifndef OPENSSL_NO_TLS1_2 + ADD_INT_CONST("PROTOCOL_TLSv1_2", PY_SSL_VERSION_TLS1_2); ++#endif + + #define ADD_OPTION(NAME, VALUE) if (sslmodule_add_option(m, NAME, (VALUE)) < 0) return -1 + +--- a/Modules/_ssl/cert.c ++++ b/Modules/_ssl/cert.c +@@ -128,7 +128,8 @@ + } + + static PyObject* +-_x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned long flags) ++_x509name_print(_sslmodulestate *state, const X509_NAME *name, ++ int indent, unsigned long flags) + { + PyObject *res; + BIO *biobuf; +--- /dev/null ++++ b/Modules/_ssl_data_40.h +@@ -0,0 +1,9357 @@ ++/* File generated by Tools/ssl/make_ssl_data.py */ ++/* Generated on 2026-08-26T05:31:26.547074+00:00 */ ++/* Generated from Git commit openssl-4.0.1-0-g1e963a8680 */ ++ ++/* generated from args.lib2errnum */ ++static struct py_ssl_library_code library_codes[] = { ++#ifdef ERR_LIB_ASN1 ++ {"ASN1", ERR_LIB_ASN1}, ++#endif ++#ifdef ERR_LIB_ASYNC ++ {"ASYNC", ERR_LIB_ASYNC}, ++#endif ++#ifdef ERR_LIB_BIO ++ {"BIO", ERR_LIB_BIO}, ++#endif ++#ifdef ERR_LIB_BN ++ {"BN", ERR_LIB_BN}, ++#endif ++#ifdef ERR_LIB_BUF ++ {"BUF", ERR_LIB_BUF}, ++#endif ++#ifdef ERR_LIB_CMP ++ {"CMP", ERR_LIB_CMP}, ++#endif ++#ifdef ERR_LIB_CMS ++ {"CMS", ERR_LIB_CMS}, ++#endif ++#ifdef ERR_LIB_COMP ++ {"COMP", ERR_LIB_COMP}, ++#endif ++#ifdef ERR_LIB_CONF ++ {"CONF", ERR_LIB_CONF}, ++#endif ++#ifdef ERR_LIB_CRMF ++ {"CRMF", ERR_LIB_CRMF}, ++#endif ++#ifdef ERR_LIB_CRYPTO ++ {"CRYPTO", ERR_LIB_CRYPTO}, ++#endif ++#ifdef ERR_LIB_CT ++ {"CT", ERR_LIB_CT}, ++#endif ++#ifdef ERR_LIB_DH ++ {"DH", ERR_LIB_DH}, ++#endif ++#ifdef ERR_LIB_DSA ++ {"DSA", ERR_LIB_DSA}, ++#endif ++#ifdef ERR_LIB_DSO ++ {"DSO", ERR_LIB_DSO}, ++#endif ++#ifdef ERR_LIB_EC ++ {"EC", ERR_LIB_EC}, ++#endif ++#ifdef ERR_LIB_ECDH ++ {"ECDH", ERR_LIB_ECDH}, ++#endif ++#ifdef ERR_LIB_ECDSA ++ {"ECDSA", ERR_LIB_ECDSA}, ++#endif ++#ifdef ERR_LIB_ENGINE ++ {"ENGINE", ERR_LIB_ENGINE}, ++#endif ++#ifdef ERR_LIB_ESS ++ {"ESS", ERR_LIB_ESS}, ++#endif ++#ifdef ERR_LIB_EVP ++ {"EVP", ERR_LIB_EVP}, ++#endif ++#ifdef ERR_LIB_FIPS ++ {"FIPS", ERR_LIB_FIPS}, ++#endif ++#ifdef ERR_LIB_HMAC ++ {"HMAC", ERR_LIB_HMAC}, ++#endif ++#ifdef ERR_LIB_HTTP ++ {"HTTP", ERR_LIB_HTTP}, ++#endif ++#ifdef ERR_LIB_JPAKE ++ {"JPAKE", ERR_LIB_JPAKE}, ++#endif ++#ifdef ERR_LIB_KDF ++ {"KDF", ERR_LIB_KDF}, ++#endif ++#ifdef ERR_LIB_METH ++ {"METH", ERR_LIB_METH}, ++#endif ++#ifdef ERR_LIB_NONE ++ {"NONE", ERR_LIB_NONE}, ++#endif ++#ifdef ERR_LIB_OBJ ++ {"OBJ", ERR_LIB_OBJ}, ++#endif ++#ifdef ERR_LIB_OCSP ++ {"OCSP", ERR_LIB_OCSP}, ++#endif ++#ifdef ERR_LIB_OSSL_DECODER ++ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER}, ++#endif ++#ifdef ERR_LIB_OSSL_ENCODER ++ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER}, ++#endif ++#ifdef ERR_LIB_OSSL_STORE ++ {"OSSL_STORE", ERR_LIB_OSSL_STORE}, ++#endif ++#ifdef ERR_LIB_PEM ++ {"PEM", ERR_LIB_PEM}, ++#endif ++#ifdef ERR_LIB_PKCS12 ++ {"PKCS12", ERR_LIB_PKCS12}, ++#endif ++#ifdef ERR_LIB_PKCS7 ++ {"PKCS7", ERR_LIB_PKCS7}, ++#endif ++#ifdef ERR_LIB_PROP ++ {"PROP", ERR_LIB_PROP}, ++#endif ++#ifdef ERR_LIB_PROV ++ {"PROV", ERR_LIB_PROV}, ++#endif ++#ifdef ERR_LIB_PROXY ++ {"PROXY", ERR_LIB_PROXY}, ++#endif ++#ifdef ERR_LIB_RAND ++ {"RAND", ERR_LIB_RAND}, ++#endif ++#ifdef ERR_LIB_RSA ++ {"RSA", ERR_LIB_RSA}, ++#endif ++#ifdef ERR_LIB_RSAREF ++ {"RSAREF", ERR_LIB_RSAREF}, ++#endif ++#ifdef ERR_LIB_SM2 ++ {"SM2", ERR_LIB_SM2}, ++#endif ++#ifdef ERR_LIB_SSL ++ {"SSL", ERR_LIB_SSL}, ++#endif ++#ifdef ERR_LIB_SSL2 ++ {"SSL2", ERR_LIB_SSL2}, ++#endif ++#ifdef ERR_LIB_SSL23 ++ {"SSL23", ERR_LIB_SSL23}, ++#endif ++#ifdef ERR_LIB_SSL3 ++ {"SSL3", ERR_LIB_SSL3}, ++#endif ++#ifdef ERR_LIB_SYS ++ {"SYS", ERR_LIB_SYS}, ++#endif ++#ifdef ERR_LIB_TS ++ {"TS", ERR_LIB_TS}, ++#endif ++#ifdef ERR_LIB_UI ++ {"UI", ERR_LIB_UI}, ++#endif ++#ifdef ERR_LIB_USER ++ {"USER", ERR_LIB_USER}, ++#endif ++#ifdef ERR_LIB_X509 ++ {"X509", ERR_LIB_X509}, ++#endif ++#ifdef ERR_LIB_X509V3 ++ {"X509V3", ERR_LIB_X509V3}, ++#endif ++ {NULL, 0} /* sentinel */ ++}; ++ ++/* generated from args.reasons */ ++static struct py_ssl_error_code error_codes[] = { ++ #ifdef ASN1_R_ADDING_OBJECT ++ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT}, ++ #else ++ {"ADDING_OBJECT", 13, 171}, ++ #endif ++ #ifdef ASN1_R_ASN1_PARSE_ERROR ++ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR}, ++ #else ++ {"ASN1_PARSE_ERROR", 13, 203}, ++ #endif ++ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR ++ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR}, ++ #else ++ {"ASN1_SIG_PARSE_ERROR", 13, 204}, ++ #endif ++ #ifdef ASN1_R_AUX_ERROR ++ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR}, ++ #else ++ {"AUX_ERROR", 13, 100}, ++ #endif ++ #ifdef ASN1_R_BAD_OBJECT_HEADER ++ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER}, ++ #else ++ {"BAD_OBJECT_HEADER", 13, 102}, ++ #endif ++ #ifdef ASN1_R_BAD_TEMPLATE ++ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE}, ++ #else ++ {"BAD_TEMPLATE", 13, 230}, ++ #endif ++ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH ++ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214}, ++ #endif ++ #ifdef ASN1_R_BN_LIB ++ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB}, ++ #else ++ {"BN_LIB", 13, 105}, ++ #endif ++ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH ++ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH}, ++ #else ++ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106}, ++ #endif ++ #ifdef ASN1_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 13, 107}, ++ #endif ++ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108}, ++ #endif ++ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED ++ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED}, ++ #else ++ {"CONTEXT_NOT_INITIALISED", 13, 217}, ++ #endif ++ #ifdef ASN1_R_DATA_IS_WRONG ++ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG}, ++ #else ++ {"DATA_IS_WRONG", 13, 109}, ++ #endif ++ #ifdef ASN1_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 13, 110}, ++ #endif ++ #ifdef ASN1_R_DEPTH_EXCEEDED ++ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED}, ++ #else ++ {"DEPTH_EXCEEDED", 13, 174}, ++ #endif ++ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED}, ++ #else ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198}, ++ #endif ++ #ifdef ASN1_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 13, 112}, ++ #endif ++ #ifdef ASN1_R_ERROR_GETTING_TIME ++ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME}, ++ #else ++ {"ERROR_GETTING_TIME", 13, 173}, ++ #endif ++ #ifdef ASN1_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 13, 172}, ++ #endif ++ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS ++ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS}, ++ #else ++ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_INTEGER ++ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER}, ++ #else ++ {"EXPECTING_AN_INTEGER", 13, 115}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_OBJECT ++ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT}, ++ #else ++ {"EXPECTING_AN_OBJECT", 13, 116}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH ++ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH}, ++ #else ++ {"EXPLICIT_LENGTH_MISMATCH", 13, 119}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}, ++ #else ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120}, ++ #endif ++ #ifdef ASN1_R_FIELD_MISSING ++ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING}, ++ #else ++ {"FIELD_MISSING", 13, 121}, ++ #endif ++ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE ++ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE}, ++ #else ++ {"FIRST_NUM_TOO_LARGE", 13, 122}, ++ #endif ++ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT ++ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, ++ #else ++ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, ++ #endif ++ #ifdef ASN1_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 13, 123}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT ++ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT}, ++ #else ++ {"ILLEGAL_BITSTRING_FORMAT", 13, 175}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BOOLEAN ++ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN}, ++ #else ++ {"ILLEGAL_BOOLEAN", 13, 176}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_CHARACTERS ++ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS}, ++ #else ++ {"ILLEGAL_CHARACTERS", 13, 124}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_FORMAT ++ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT}, ++ #else ++ {"ILLEGAL_FORMAT", 13, 177}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_HEX ++ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX}, ++ #else ++ {"ILLEGAL_HEX", 13, 178}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG ++ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG}, ++ #else ++ {"ILLEGAL_IMPLICIT_TAG", 13, 179}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_INTEGER ++ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER}, ++ #else ++ {"ILLEGAL_INTEGER", 13, 180}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE ++ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE}, ++ #else ++ {"ILLEGAL_NEGATIVE_VALUE", 13, 226}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING ++ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING}, ++ #else ++ {"ILLEGAL_NESTED_TAGGING", 13, 181}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL ++ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL}, ++ #else ++ {"ILLEGAL_NULL", 13, 125}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL_VALUE ++ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE}, ++ #else ++ {"ILLEGAL_NULL_VALUE", 13, 182}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OBJECT ++ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT}, ++ #else ++ {"ILLEGAL_OBJECT", 13, 183}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY ++ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY}, ++ #else ++ {"ILLEGAL_OPTIONAL_ANY", 13, 126}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}, ++ #else ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_PADDING ++ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING}, ++ #else ++ {"ILLEGAL_PADDING", 13, 221}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY ++ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY}, ++ #else ++ {"ILLEGAL_TAGGED_ANY", 13, 127}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TIME_VALUE ++ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE}, ++ #else ++ {"ILLEGAL_TIME_VALUE", 13, 184}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT ++ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT}, ++ #else ++ {"ILLEGAL_ZERO_CONTENT", 13, 222}, ++ #endif ++ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT ++ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT}, ++ #else ++ {"INTEGER_NOT_ASCII_FORMAT", 13, 185}, ++ #endif ++ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG ++ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}, ++ #else ++ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128}, ++ #endif ++ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT ++ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT}, ++ #else ++ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220}, ++ #endif ++ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH ++ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH}, ++ #else ++ {"INVALID_BMPSTRING_LENGTH", 13, 129}, ++ #endif ++ #ifdef ASN1_R_INVALID_DIGIT ++ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT}, ++ #else ++ {"INVALID_DIGIT", 13, 130}, ++ #endif ++ #ifdef ASN1_R_INVALID_MIME_TYPE ++ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE}, ++ #else ++ {"INVALID_MIME_TYPE", 13, 205}, ++ #endif ++ #ifdef ASN1_R_INVALID_MODIFIER ++ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER}, ++ #else ++ {"INVALID_MODIFIER", 13, 186}, ++ #endif ++ #ifdef ASN1_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 13, 187}, ++ #endif ++ #ifdef ASN1_R_INVALID_OBJECT_ENCODING ++ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING}, ++ #else ++ {"INVALID_OBJECT_ENCODING", 13, 216}, ++ #endif ++ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS ++ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS}, ++ #else ++ {"INVALID_SCRYPT_PARAMETERS", 13, 227}, ++ #endif ++ #ifdef ASN1_R_INVALID_SEPARATOR ++ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR}, ++ #else ++ {"INVALID_SEPARATOR", 13, 131}, ++ #endif ++ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE ++ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE}, ++ #else ++ {"INVALID_STRING_TABLE_VALUE", 13, 218}, ++ #endif ++ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH ++ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}, ++ #else ++ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133}, ++ #endif ++ #ifdef ASN1_R_INVALID_UTF8STRING ++ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING}, ++ #else ++ {"INVALID_UTF8STRING", 13, 134}, ++ #endif ++ #ifdef ASN1_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 13, 219}, ++ #endif ++ #ifdef ASN1_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 13, 231}, ++ #endif ++ #ifdef ASN1_R_LIST_ERROR ++ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR}, ++ #else ++ {"LIST_ERROR", 13, 188}, ++ #endif ++ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE ++ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE}, ++ #else ++ {"MIME_NO_CONTENT_TYPE", 13, 206}, ++ #endif ++ #ifdef ASN1_R_MIME_PARSE_ERROR ++ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR}, ++ #else ++ {"MIME_PARSE_ERROR", 13, 207}, ++ #endif ++ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR ++ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR}, ++ #else ++ {"MIME_SIG_PARSE_ERROR", 13, 208}, ++ #endif ++ #ifdef ASN1_R_MISSING_EOC ++ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC}, ++ #else ++ {"MISSING_EOC", 13, 137}, ++ #endif ++ #ifdef ASN1_R_MISSING_SECOND_NUMBER ++ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER}, ++ #else ++ {"MISSING_SECOND_NUMBER", 13, 138}, ++ #endif ++ #ifdef ASN1_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 13, 189}, ++ #endif ++ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL ++ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL}, ++ #else ++ {"MSTRING_NOT_UNIVERSAL", 13, 139}, ++ #endif ++ #ifdef ASN1_R_MSTRING_WRONG_TAG ++ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG}, ++ #else ++ {"MSTRING_WRONG_TAG", 13, 140}, ++ #endif ++ #ifdef ASN1_R_NESTED_ASN1_STRING ++ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING}, ++ #else ++ {"NESTED_ASN1_STRING", 13, 197}, ++ #endif ++ #ifdef ASN1_R_NESTED_TOO_DEEP ++ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP}, ++ #else ++ {"NESTED_TOO_DEEP", 13, 201}, ++ #endif ++ #ifdef ASN1_R_NON_HEX_CHARACTERS ++ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS}, ++ #else ++ {"NON_HEX_CHARACTERS", 13, 141}, ++ #endif ++ #ifdef ASN1_R_NOT_ASCII_FORMAT ++ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT}, ++ #else ++ {"NOT_ASCII_FORMAT", 13, 190}, ++ #endif ++ #ifdef ASN1_R_NOT_ENOUGH_DATA ++ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA}, ++ #else ++ {"NOT_ENOUGH_DATA", 13, 142}, ++ #endif ++ #ifdef ASN1_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 13, 209}, ++ #endif ++ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE ++ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE}, ++ #else ++ {"NO_MATCHING_CHOICE_TYPE", 13, 143}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE ++ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE}, ++ #else ++ {"NO_MULTIPART_BODY_FAILURE", 13, 210}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY ++ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY}, ++ #else ++ {"NO_MULTIPART_BOUNDARY", 13, 211}, ++ #endif ++ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE ++ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE}, ++ #else ++ {"NO_SIG_CONTENT_TYPE", 13, 212}, ++ #endif ++ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH ++ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH}, ++ #else ++ {"NULL_IS_WRONG_LENGTH", 13, 144}, ++ #endif ++ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT ++ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT}, ++ #else ++ {"OBJECT_NOT_ASCII_FORMAT", 13, 191}, ++ #endif ++ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS ++ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS}, ++ #else ++ {"ODD_NUMBER_OF_CHARS", 13, 145}, ++ #endif ++ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE ++ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE}, ++ #else ++ {"SECOND_NUMBER_TOO_LARGE", 13, 147}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH ++ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH}, ++ #else ++ {"SEQUENCE_LENGTH_MISMATCH", 13, 148}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED ++ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED}, ++ #else ++ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}, ++ #else ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192}, ++ #endif ++ #ifdef ASN1_R_SHORT_LINE ++ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE}, ++ #else ++ {"SHORT_LINE", 13, 150}, ++ #endif ++ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE ++ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE}, ++ #else ++ {"SIG_INVALID_MIME_TYPE", 13, 213}, ++ #endif ++ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED ++ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED}, ++ #else ++ {"STREAMING_NOT_SUPPORTED", 13, 202}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 13, 151}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_SHORT ++ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT}, ++ #else ++ {"STRING_TOO_SHORT", 13, 152}, ++ #endif ++ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154}, ++ #endif ++ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT ++ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT}, ++ #else ++ {"TIME_NOT_ASCII_FORMAT", 13, 193}, ++ #endif ++ #ifdef ASN1_R_TOO_LARGE ++ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE}, ++ #else ++ {"TOO_LARGE", 13, 223}, ++ #endif ++ #ifdef ASN1_R_TOO_LONG ++ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG}, ++ #else ++ {"TOO_LONG", 13, 155}, ++ #endif ++ #ifdef ASN1_R_TOO_SMALL ++ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL}, ++ #else ++ {"TOO_SMALL", 13, 224}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED ++ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED}, ++ #else ++ {"TYPE_NOT_CONSTRUCTED", 13, 156}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE ++ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE}, ++ #else ++ {"TYPE_NOT_PRIMITIVE", 13, 195}, ++ #endif ++ #ifdef ASN1_R_UNEXPECTED_EOC ++ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC}, ++ #else ++ {"UNEXPECTED_EOC", 13, 159}, ++ #endif ++ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 13, 229}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_FORMAT ++ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT}, ++ #else ++ {"UNKNOWN_FORMAT", 13, 160}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE ++ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE}, ++ #else ++ {"UNKNOWN_OBJECT_TYPE", 13, 162}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE ++ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM ++ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_TAG ++ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG}, ++ #else ++ {"UNKNOWN_TAG", 13, 194}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}, ++ #else ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 13, 228}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 13, 196}, ++ #endif ++ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT ++ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, ++ #else ++ {"UTCTIME_IS_TOO_SHORT", 13, 233}, ++ #endif ++ #ifdef ASN1_R_WRONG_INTEGER_TYPE ++ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, ++ #else ++ {"WRONG_INTEGER_TYPE", 13, 225}, ++ #endif ++ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE ++ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE}, ++ #else ++ {"WRONG_PUBLIC_KEY_TYPE", 13, 200}, ++ #endif ++ #ifdef ASN1_R_WRONG_TAG ++ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG}, ++ #else ++ {"WRONG_TAG", 13, 168}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SET_POOL ++ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL}, ++ #else ++ {"FAILED_TO_SET_POOL", 51, 101}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT ++ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT}, ++ #else ++ {"FAILED_TO_SWAP_CONTEXT", 51, 102}, ++ #endif ++ #ifdef ASYNC_R_INIT_FAILED ++ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED}, ++ #else ++ {"INIT_FAILED", 51, 105}, ++ #endif ++ #ifdef ASYNC_R_INVALID_POOL_SIZE ++ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE}, ++ #else ++ {"INVALID_POOL_SIZE", 51, 103}, ++ #endif ++ #ifdef BIO_R_ACCEPT_ERROR ++ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR}, ++ #else ++ {"ACCEPT_ERROR", 32, 100}, ++ #endif ++ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141}, ++ #endif ++ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE ++ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE}, ++ #else ++ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129}, ++ #endif ++ #ifdef BIO_R_BAD_FOPEN_MODE ++ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE}, ++ #else ++ {"BAD_FOPEN_MODE", 32, 101}, ++ #endif ++ #ifdef BIO_R_BROKEN_PIPE ++ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE}, ++ #else ++ {"BROKEN_PIPE", 32, 124}, ++ #endif ++ #ifdef BIO_R_CONNECT_ERROR ++ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR}, ++ #else ++ {"CONNECT_ERROR", 32, 103}, ++ #endif ++ #ifdef BIO_R_CONNECT_TIMEOUT ++ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT}, ++ #else ++ {"CONNECT_TIMEOUT", 32, 147}, ++ #endif ++ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_ERROR ++ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR}, ++ #else ++ {"GETSOCKNAME_ERROR", 32, 132}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS}, ++ #else ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133}, ++ #endif ++ #ifdef BIO_R_GETTING_SOCKTYPE ++ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE}, ++ #else ++ {"GETTING_SOCKTYPE", 32, 134}, ++ #endif ++ #ifdef BIO_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 32, 125}, ++ #endif ++ #ifdef BIO_R_INVALID_SOCKET ++ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET}, ++ #else ++ {"INVALID_SOCKET", 32, 135}, ++ #endif ++ #ifdef BIO_R_IN_USE ++ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE}, ++ #else ++ {"IN_USE", 32, 123}, ++ #endif ++ #ifdef BIO_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 32, 102}, ++ #endif ++ #ifdef BIO_R_LISTEN_V6_ONLY ++ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY}, ++ #else ++ {"LISTEN_V6_ONLY", 32, 136}, ++ #endif ++ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE ++ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, ++ #else ++ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, ++ #endif ++ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING ++ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, ++ #else ++ {"LOOKUP_RETURNED_NOTHING", 32, 142}, ++ #endif ++ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE ++ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE}, ++ #else ++ {"MALFORMED_HOST_OR_SERVICE", 32, 130}, ++ #endif ++ #ifdef BIO_R_NBIO_CONNECT_ERROR ++ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR}, ++ #else ++ {"NBIO_CONNECT_ERROR", 32, 110}, ++ #endif ++ #ifdef BIO_R_NON_FATAL ++ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, ++ #else ++ {"NON_FATAL", 32, 112}, ++ #endif ++ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143}, ++ #endif ++ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144}, ++ #endif ++ #ifdef BIO_R_NO_PORT_DEFINED ++ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED}, ++ #else ++ {"NO_PORT_DEFINED", 32, 113}, ++ #endif ++ #ifdef BIO_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 32, 128}, ++ #endif ++ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE ++ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, ++ #else ++ {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, ++ #endif ++ #ifdef BIO_R_PORT_MISMATCH ++ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, ++ #else ++ {"PORT_MISMATCH", 32, 150}, ++ #endif ++ #ifdef BIO_R_TFO_DISABLED ++ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, ++ #else ++ {"TFO_DISABLED", 32, 106}, ++ #endif ++ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT ++ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, ++ #else ++ {"TFO_NO_KERNEL_SUPPORT", 32, 108}, ++ #endif ++ #ifdef BIO_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 32, 104}, ++ #endif ++ #ifdef BIO_R_TRANSFER_TIMEOUT ++ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT}, ++ #else ++ {"TRANSFER_TIMEOUT", 32, 105}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET ++ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET}, ++ #else ++ {"UNABLE_TO_BIND_SOCKET", 32, 117}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET ++ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET}, ++ #else ++ {"UNABLE_TO_CREATE_SOCKET", 32, 118}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_KEEPALIVE ++ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE}, ++ #else ++ {"UNABLE_TO_KEEPALIVE", 32, 137}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET ++ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET}, ++ #else ++ {"UNABLE_TO_LISTEN_SOCKET", 32, 119}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_NODELAY ++ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY}, ++ #else ++ {"UNABLE_TO_NODELAY", 32, 138}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_REUSEADDR ++ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR}, ++ #else ++ {"UNABLE_TO_REUSEADDR", 32, 139}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_TFO ++ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, ++ #else ++ {"UNABLE_TO_TFO", 32, 109}, ++ #endif ++ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY ++ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, ++ #else ++ {"UNAVAILABLE_IP_FAMILY", 32, 145}, ++ #endif ++ #ifdef BIO_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 32, 120}, ++ #endif ++ #ifdef BIO_R_UNKNOWN_INFO_TYPE ++ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE}, ++ #else ++ {"UNKNOWN_INFO_TYPE", 32, 140}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY ++ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY}, ++ #else ++ {"UNSUPPORTED_IP_FAMILY", 32, 146}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_METHOD ++ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD}, ++ #else ++ {"UNSUPPORTED_METHOD", 32, 121}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY ++ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY}, ++ #else ++ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131}, ++ #endif ++ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO ++ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO}, ++ #else ++ {"WRITE_TO_READ_ONLY_BIO", 32, 126}, ++ #endif ++ #ifdef BIO_R_WSASTARTUP ++ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP}, ++ #else ++ {"WSASTARTUP", 32, 122}, ++ #endif ++ #ifdef BN_R_ARG2_LT_ARG3 ++ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3}, ++ #else ++ {"ARG2_LT_ARG3", 3, 100}, ++ #endif ++ #ifdef BN_R_BAD_RECIPROCAL ++ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL}, ++ #else ++ {"BAD_RECIPROCAL", 3, 101}, ++ #endif ++ #ifdef BN_R_BIGNUM_TOO_LONG ++ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG}, ++ #else ++ {"BIGNUM_TOO_LONG", 3, 114}, ++ #endif ++ #ifdef BN_R_BITS_TOO_SMALL ++ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL}, ++ #else ++ {"BITS_TOO_SMALL", 3, 118}, ++ #endif ++ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS ++ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS}, ++ #else ++ {"CALLED_WITH_EVEN_MODULUS", 3, 102}, ++ #endif ++ #ifdef BN_R_DIV_BY_ZERO ++ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO}, ++ #else ++ {"DIV_BY_ZERO", 3, 103}, ++ #endif ++ #ifdef BN_R_ENCODING_ERROR ++ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR}, ++ #else ++ {"ENCODING_ERROR", 3, 104}, ++ #endif ++ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}, ++ #else ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105}, ++ #endif ++ #ifdef BN_R_INPUT_NOT_REDUCED ++ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED}, ++ #else ++ {"INPUT_NOT_REDUCED", 3, 110}, ++ #endif ++ #ifdef BN_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 3, 106}, ++ #endif ++ #ifdef BN_R_INVALID_RANGE ++ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE}, ++ #else ++ {"INVALID_RANGE", 3, 115}, ++ #endif ++ #ifdef BN_R_INVALID_SHIFT ++ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT}, ++ #else ++ {"INVALID_SHIFT", 3, 119}, ++ #endif ++ #ifdef BN_R_NOT_A_SQUARE ++ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE}, ++ #else ++ {"NOT_A_SQUARE", 3, 111}, ++ #endif ++ #ifdef BN_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 3, 107}, ++ #endif ++ #ifdef BN_R_NO_INVERSE ++ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE}, ++ #else ++ {"NO_INVERSE", 3, 108}, ++ #endif ++ #ifdef BN_R_NO_PRIME_CANDIDATE ++ {"NO_PRIME_CANDIDATE", ERR_LIB_BN, BN_R_NO_PRIME_CANDIDATE}, ++ #else ++ {"NO_PRIME_CANDIDATE", 3, 121}, ++ #endif ++ #ifdef BN_R_NO_SOLUTION ++ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION}, ++ #else ++ {"NO_SOLUTION", 3, 116}, ++ #endif ++ #ifdef BN_R_NO_SUITABLE_DIGEST ++ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST}, ++ #else ++ {"NO_SUITABLE_DIGEST", 3, 120}, ++ #endif ++ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE ++ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE}, ++ #else ++ {"PRIVATE_KEY_TOO_LARGE", 3, 117}, ++ #endif ++ #ifdef BN_R_P_IS_NOT_PRIME ++ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME}, ++ #else ++ {"P_IS_NOT_PRIME", 3, 112}, ++ #endif ++ #ifdef BN_R_TOO_MANY_ITERATIONS ++ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS}, ++ #else ++ {"TOO_MANY_ITERATIONS", 3, 113}, ++ #endif ++ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES ++ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES}, ++ #else ++ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109}, ++ #endif ++ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED ++ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED}, ++ #else ++ {"ALGORITHM_NOT_SUPPORTED", 58, 139}, ++ #endif ++ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP ++ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP}, ++ #else ++ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167}, ++ #endif ++ #ifdef CMP_R_BAD_REQUEST_ID ++ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID}, ++ #else ++ {"BAD_REQUEST_ID", 58, 108}, ++ #endif ++ #ifdef CMP_R_CERTHASH_UNMATCHED ++ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED}, ++ #else ++ {"CERTHASH_UNMATCHED", 58, 156}, ++ #endif ++ #ifdef CMP_R_CERTID_NOT_FOUND ++ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND}, ++ #else ++ {"CERTID_NOT_FOUND", 58, 109}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED ++ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED}, ++ #else ++ {"CERTIFICATE_NOT_ACCEPTED", 58, 169}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_FOUND ++ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"CERTIFICATE_NOT_FOUND", 58, 112}, ++ #endif ++ #ifdef CMP_R_CERTREQMSG_NOT_FOUND ++ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND}, ++ #else ++ {"CERTREQMSG_NOT_FOUND", 58, 157}, ++ #endif ++ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND ++ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND}, ++ #else ++ {"CERTRESPONSE_NOT_FOUND", 58, 113}, ++ #endif ++ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH ++ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH}, ++ #else ++ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114}, ++ #endif ++ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE ++ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE}, ++ #else ++ {"CHECKAFTER_OUT_OF_RANGE", 58, 181}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING ++ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING}, ++ #else ++ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_WAITING ++ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING}, ++ #else ++ {"ENCOUNTERED_WAITING", 58, 162}, ++ #endif ++ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION ++ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION}, ++ #else ++ {"ERROR_CALCULATING_PROTECTION", 58, 115}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTCONF ++ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF}, ++ #else ++ {"ERROR_CREATING_CERTCONF", 58, 116}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREP ++ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP}, ++ #else ++ {"ERROR_CREATING_CERTREP", 58, 117}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREQ ++ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ}, ++ #else ++ {"ERROR_CREATING_CERTREQ", 58, 163}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_ERROR ++ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR}, ++ #else ++ {"ERROR_CREATING_ERROR", 58, 118}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENM ++ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM}, ++ #else ++ {"ERROR_CREATING_GENM", 58, 119}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENP ++ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP}, ++ #else ++ {"ERROR_CREATING_GENP", 58, 120}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_PKICONF ++ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF}, ++ #else ++ {"ERROR_CREATING_PKICONF", 58, 122}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREP ++ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP}, ++ #else ++ {"ERROR_CREATING_POLLREP", 58, 123}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREQ ++ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ}, ++ #else ++ {"ERROR_CREATING_POLLREQ", 58, 124}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RP ++ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP}, ++ #else ++ {"ERROR_CREATING_RP", 58, 125}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RR ++ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR}, ++ #else ++ {"ERROR_CREATING_RR", 58, 126}, ++ #endif ++ #ifdef CMP_R_ERROR_PARSING_PKISTATUS ++ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS}, ++ #else ++ {"ERROR_PARSING_PKISTATUS", 58, 107}, ++ #endif ++ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE ++ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE}, ++ #else ++ {"ERROR_PROCESSING_MESSAGE", 58, 158}, ++ #endif ++ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE ++ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE}, ++ #else ++ {"ERROR_PROTECTING_MESSAGE", 58, 127}, ++ #endif ++ #ifdef CMP_R_ERROR_SETTING_CERTHASH ++ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH}, ++ #else ++ {"ERROR_SETTING_CERTHASH", 58, 128}, ++ #endif ++ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF ++ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF}, ++ #else ++ {"ERROR_UNEXPECTED_CERTCONF", 58, 160}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION ++ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION}, ++ #else ++ {"ERROR_VALIDATING_PROTECTION", 58, 140}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE ++ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE}, ++ #else ++ {"ERROR_VALIDATING_SIGNATURE", 58, 171}, ++ #endif ++ #ifdef CMP_R_EXPECTED_POLLREQ ++ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, ++ #else ++ {"EXPECTED_POLLREQ", 58, 104}, ++ #endif ++ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN ++ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, ++ #else ++ {"FAILED_BUILDING_OWN_CHAIN", 58, 164}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY}, ++ #else ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", 58, 203}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY ++ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY}, ++ #else ++ {"FAILED_EXTRACTING_PUBKEY", 58, 141}, ++ #endif ++ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 58, 110}, ++ #endif ++ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE ++ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE}, ++ #else ++ {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, ++ #endif ++ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE ++ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, ++ #else ++ {"GENERATE_CERTREQTEMPLATE", 58, 197}, ++ #endif ++ #ifdef CMP_R_GENERATE_CRLSTATUS ++ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, ++ #else ++ {"GENERATE_CRLSTATUS", 58, 198}, ++ #endif ++ #ifdef CMP_R_GETTING_GENP ++ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, ++ #else ++ {"GETTING_GENP", 58, 192}, ++ #endif ++ #ifdef CMP_R_GET_ITAV ++ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, ++ #else ++ {"GET_ITAV", 58, 199}, ++ #endif ++ #ifdef CMP_R_INVALID_ARGS ++ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, ++ #else ++ {"INVALID_ARGS", 58, 100}, ++ #endif ++ #ifdef CMP_R_INVALID_GENP ++ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, ++ #else ++ {"INVALID_GENP", 58, 193}, ++ #endif ++ #ifdef CMP_R_INVALID_KEYSPEC ++ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, ++ #else ++ {"INVALID_KEYSPEC", 58, 202}, ++ #endif ++ #ifdef CMP_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 58, 174}, ++ #endif ++ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE ++ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, ++ #else ++ {"INVALID_ROOTCAKEYUPDATE", 58, 195}, ++ #endif ++ #ifdef CMP_R_MISSING_CENTRAL_GEN_KEY ++ {"MISSING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_MISSING_CENTRAL_GEN_KEY}, ++ #else ++ {"MISSING_CENTRAL_GEN_KEY", 58, 204}, ++ #endif ++ #ifdef CMP_R_MISSING_CERTID ++ {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, ++ #else ++ {"MISSING_CERTID", 58, 165}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION}, ++ #else ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE}, ++ #else ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142}, ++ #endif ++ #ifdef CMP_R_MISSING_P10CSR ++ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR}, ++ #else ++ {"MISSING_P10CSR", 58, 121}, ++ #endif ++ #ifdef CMP_R_MISSING_PBM_SECRET ++ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET}, ++ #else ++ {"MISSING_PBM_SECRET", 58, 166}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 58, 131}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY_FOR_POPO ++ {"MISSING_PRIVATE_KEY_FOR_POPO", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY_FOR_POPO}, ++ #else ++ {"MISSING_PRIVATE_KEY_FOR_POPO", 58, 190}, ++ #endif ++ #ifdef CMP_R_MISSING_PROTECTION ++ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION}, ++ #else ++ {"MISSING_PROTECTION", 58, 143}, ++ #endif ++ #ifdef CMP_R_MISSING_PUBLIC_KEY ++ {"MISSING_PUBLIC_KEY", ERR_LIB_CMP, CMP_R_MISSING_PUBLIC_KEY}, ++ #else ++ {"MISSING_PUBLIC_KEY", 58, 183}, ++ #endif ++ #ifdef CMP_R_MISSING_REFERENCE_CERT ++ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT}, ++ #else ++ {"MISSING_REFERENCE_CERT", 58, 168}, ++ #endif ++ #ifdef CMP_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_CMP, CMP_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 58, 178}, ++ #endif ++ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION ++ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION}, ++ #else ++ {"MISSING_SENDER_IDENTIFICATION", 58, 111}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_ANCHOR ++ {"MISSING_TRUST_ANCHOR", ERR_LIB_CMP, CMP_R_MISSING_TRUST_ANCHOR}, ++ #else ++ {"MISSING_TRUST_ANCHOR", 58, 179}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_STORE ++ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE}, ++ #else ++ {"MISSING_TRUST_STORE", 58, 144}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_SAN_SOURCES ++ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES}, ++ #else ++ {"MULTIPLE_SAN_SOURCES", 58, 102}, ++ #endif ++ #ifdef CMP_R_NO_STDIO ++ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO}, ++ #else ++ {"NO_STDIO", 58, 194}, ++ #endif ++ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT ++ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT}, ++ #else ++ {"NO_SUITABLE_SENDER_CERT", 58, 145}, ++ #endif ++ #ifdef CMP_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 58, 103}, ++ #endif ++ #ifdef CMP_R_PKIBODY_ERROR ++ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR}, ++ #else ++ {"PKIBODY_ERROR", 58, 146}, ++ #endif ++ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND ++ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND}, ++ #else ++ {"PKISTATUSINFO_NOT_FOUND", 58, 132}, ++ #endif ++ #ifdef CMP_R_POLLING_FAILED ++ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED}, ++ #else ++ {"POLLING_FAILED", 58, 172}, ++ #endif ++ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE ++ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE}, ++ #else ++ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147}, ++ #endif ++ #ifdef CMP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 58, 180}, ++ #endif ++ #ifdef CMP_R_RECIPNONCE_UNMATCHED ++ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED}, ++ #else ++ {"RECIPNONCE_UNMATCHED", 58, 148}, ++ #endif ++ #ifdef CMP_R_REQUEST_NOT_ACCEPTED ++ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED}, ++ #else ++ {"REQUEST_NOT_ACCEPTED", 58, 149}, ++ #endif ++ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER ++ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER}, ++ #else ++ {"REQUEST_REJECTED_BY_SERVER", 58, 182}, ++ #endif ++ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED}, ++ #else ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150}, ++ #endif ++ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG}, ++ #else ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151}, ++ #endif ++ #ifdef CMP_R_TOTAL_TIMEOUT ++ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT}, ++ #else ++ {"TOTAL_TIMEOUT", 58, 184}, ++ #endif ++ #ifdef CMP_R_TRANSACTIONID_UNMATCHED ++ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED}, ++ #else ++ {"TRANSACTIONID_UNMATCHED", 58, 152}, ++ #endif ++ #ifdef CMP_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 58, 159}, ++ #endif ++ #ifdef CMP_R_UNCLEAN_CTX ++ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, ++ #else ++ {"UNCLEAN_CTX", 58, 191}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CENTRAL_GEN_KEY ++ {"UNEXPECTED_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_UNEXPECTED_CENTRAL_GEN_KEY}, ++ #else ++ {"UNEXPECTED_CENTRAL_GEN_KEY", 58, 205}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CERTPROFILE ++ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, ++ #else ++ {"UNEXPECTED_CERTPROFILE", 58, 196}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST ++ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, ++ #else ++ {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKIBODY ++ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, ++ #else ++ {"UNEXPECTED_PKIBODY", 58, 133}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKISTATUS ++ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS}, ++ #else ++ {"UNEXPECTED_PKISTATUS", 58, 185}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_POLLREQ ++ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, ++ #else ++ {"UNEXPECTED_POLLREQ", 58, 105}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PVNO ++ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, ++ #else ++ {"UNEXPECTED_PVNO", 58, 153}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_SENDER ++ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, ++ #else ++ {"UNEXPECTED_SENDER", 58, 106}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID ++ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, ++ #else ++ {"UNKNOWN_ALGORITHM_ID", 58, 134}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CERT_TYPE ++ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE}, ++ #else ++ {"UNKNOWN_CERT_TYPE", 58, 135}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CRL_ISSUER ++ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, ++ #else ++ {"UNKNOWN_CRL_ISSUER", 58, 200}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_PKISTATUS ++ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, ++ #else ++ {"UNKNOWN_PKISTATUS", 58, 186}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 58, 136}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 58, 137}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PKIBODY ++ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, ++ #else ++ {"UNSUPPORTED_PKIBODY", 58, 101}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, ++ #else ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_LARGE ++ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE}, ++ #else ++ {"VALUE_TOO_LARGE", 58, 175}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_SMALL ++ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL}, ++ #else ++ {"VALUE_TOO_SMALL", 58, 177}, ++ #endif ++ #ifdef CMP_R_WRONG_ALGORITHM_OID ++ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID}, ++ #else ++ {"WRONG_ALGORITHM_OID", 58, 138}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID ++ {"WRONG_CERTID", ERR_LIB_CMP, CMP_R_WRONG_CERTID}, ++ #else ++ {"WRONG_CERTID", 58, 189}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID_IN_RP ++ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP}, ++ #else ++ {"WRONG_CERTID_IN_RP", 58, 187}, ++ #endif ++ #ifdef CMP_R_WRONG_PBM_VALUE ++ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE}, ++ #else ++ {"WRONG_PBM_VALUE", 58, 155}, ++ #endif ++ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT ++ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT}, ++ #else ++ {"WRONG_RP_COMPONENT_COUNT", 58, 188}, ++ #endif ++ #ifdef CMP_R_WRONG_SERIAL_IN_RP ++ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP}, ++ #else ++ {"WRONG_SERIAL_IN_RP", 58, 173}, ++ #endif ++ #ifdef CMS_R_ADD_SIGNER_ERROR ++ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR}, ++ #else ++ {"ADD_SIGNER_ERROR", 46, 99}, ++ #endif ++ #ifdef CMS_R_ATTRIBUTE_ERROR ++ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR}, ++ #else ++ {"ATTRIBUTE_ERROR", 46, 161}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT ++ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT}, ++ #else ++ {"CERTIFICATE_ALREADY_PRESENT", 46, 175}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID ++ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID}, ++ #else ++ {"CERTIFICATE_HAS_NO_KEYID", 46, 160}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 46, 100}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA}, ++ #else ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", 46, 200}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR ++ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR}, ++ #else ++ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184}, ++ #endif ++ #ifdef CMS_R_CIPHER_GET_TAG ++ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG}, ++ #else ++ {"CIPHER_GET_TAG", 46, 185}, ++ #endif ++ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR ++ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_INITIALISATION_ERROR", 46, 101}, ++ #endif ++ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102}, ++ #endif ++ #ifdef CMS_R_CMS_DATAFINAL_ERROR ++ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR}, ++ #else ++ {"CMS_DATAFINAL_ERROR", 46, 103}, ++ #endif ++ #ifdef CMS_R_CMS_LIB ++ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB}, ++ #else ++ {"CMS_LIB", 46, 104}, ++ #endif ++ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH ++ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH}, ++ #else ++ {"CONTENTIDENTIFIER_MISMATCH", 46, 170}, ++ #endif ++ #ifdef CMS_R_CONTENT_NOT_FOUND ++ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND}, ++ #else ++ {"CONTENT_NOT_FOUND", 46, 105}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 46, 171}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108}, ++ #endif ++ #ifdef CMS_R_CONTENT_VERIFY_ERROR ++ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR}, ++ #else ++ {"CONTENT_VERIFY_ERROR", 46, 109}, ++ #endif ++ #ifdef CMS_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 46, 110}, ++ #endif ++ #ifdef CMS_R_CTRL_FAILURE ++ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE}, ++ #else ++ {"CTRL_FAILURE", 46, 111}, ++ #endif ++ #ifdef CMS_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 46, 187}, ++ #endif ++ #ifdef CMS_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 46, 112}, ++ #endif ++ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY ++ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY}, ++ #else ++ {"ERROR_GETTING_PUBLIC_KEY", 46, 113}, ++ #endif ++ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}, ++ #else ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_KEY ++ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY}, ++ #else ++ {"ERROR_SETTING_KEY", 46, 115}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO ++ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO}, ++ #else ++ {"ERROR_SETTING_RECIPIENTINFO", 46, 116}, ++ #endif ++ #ifdef CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT}, ++ #else ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", 46, 196}, ++ #endif ++ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183}, ++ #endif ++ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH ++ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}, ++ #else ++ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER}, ++ #else ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 46, 118}, ++ #endif ++ #ifdef CMS_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 46, 190}, ++ #endif ++ #ifdef CMS_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 46, 191}, ++ #endif ++ #ifdef CMS_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 46, 186}, ++ #endif ++ #ifdef CMS_R_MD_BIO_INIT_ERROR ++ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR}, ++ #else ++ {"MD_BIO_INIT_ERROR", 46, 119}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH ++ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_ERROR ++ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR}, ++ #else ++ {"MSGSIGDIGEST_ERROR", 46, 172}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}, ++ #else ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH ++ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH}, ++ #else ++ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163}, ++ #endif ++ #ifdef CMS_R_NEED_ONE_SIGNER ++ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER}, ++ #else ++ {"NEED_ONE_SIGNER", 46, 164}, ++ #endif ++ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT ++ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT}, ++ #else ++ {"NOT_A_SIGNED_RECEIPT", 46, 165}, ++ #endif ++ #ifdef CMS_R_NOT_ENCRYPTED_DATA ++ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA}, ++ #else ++ {"NOT_ENCRYPTED_DATA", 46, 122}, ++ #endif ++ #ifdef CMS_R_NOT_KEK ++ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK}, ++ #else ++ {"NOT_KEK", 46, 123}, ++ #endif ++ #ifdef CMS_R_NOT_KEM ++ {"NOT_KEM", ERR_LIB_CMS, CMS_R_NOT_KEM}, ++ #else ++ {"NOT_KEM", 46, 197}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_AGREEMENT ++ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT}, ++ #else ++ {"NOT_KEY_AGREEMENT", 46, 181}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_TRANSPORT ++ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT}, ++ #else ++ {"NOT_KEY_TRANSPORT", 46, 124}, ++ #endif ++ #ifdef CMS_R_NOT_PWRI ++ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI}, ++ #else ++ {"NOT_PWRI", 46, 177}, ++ #endif ++ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125}, ++ #endif ++ #ifdef CMS_R_NO_CIPHER ++ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER}, ++ #else ++ {"NO_CIPHER", 46, 126}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 46, 127}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 46, 173}, ++ #endif ++ #ifdef CMS_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 46, 128}, ++ #endif ++ #ifdef CMS_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 46, 129}, ++ #endif ++ #ifdef CMS_R_NO_KEY ++ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY}, ++ #else ++ {"NO_KEY", 46, 130}, ++ #endif ++ #ifdef CMS_R_NO_KEY_OR_CERT ++ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT}, ++ #else ++ {"NO_KEY_OR_CERT", 46, 174}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_DIGEST ++ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST}, ++ #else ++ {"NO_MATCHING_DIGEST", 46, 131}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_RECIPIENT ++ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT}, ++ #else ++ {"NO_MATCHING_RECIPIENT", 46, 132}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_SIGNATURE ++ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE}, ++ #else ++ {"NO_MATCHING_SIGNATURE", 46, 166}, ++ #endif ++ #ifdef CMS_R_NO_MSGSIGDIGEST ++ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST}, ++ #else ++ {"NO_MSGSIGDIGEST", 46, 167}, ++ #endif ++ #ifdef CMS_R_NO_PASSWORD ++ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD}, ++ #else ++ {"NO_PASSWORD", 46, 178}, ++ #endif ++ #ifdef CMS_R_NO_PRIVATE_KEY ++ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY}, ++ #else ++ {"NO_PRIVATE_KEY", 46, 133}, ++ #endif ++ #ifdef CMS_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 46, 134}, ++ #endif ++ #ifdef CMS_R_NO_RECEIPT_REQUEST ++ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST}, ++ #else ++ {"NO_RECEIPT_REQUEST", 46, 168}, ++ #endif ++ #ifdef CMS_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 46, 135}, ++ #endif ++ #ifdef CMS_R_OPERATION_UNSUPPORTED ++ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, ++ #else ++ {"OPERATION_UNSUPPORTED", 46, 182}, ++ #endif ++ #ifdef CMS_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 46, 188}, ++ #endif ++ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136}, ++ #endif ++ #ifdef CMS_R_RECEIPT_DECODE_ERROR ++ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR}, ++ #else ++ {"RECEIPT_DECODE_ERROR", 46, 169}, ++ #endif ++ #ifdef CMS_R_RECIPIENT_ERROR ++ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR}, ++ #else ++ {"RECIPIENT_ERROR", 46, 137}, ++ #endif ++ #ifdef CMS_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 46, 189}, ++ #endif ++ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138}, ++ #endif ++ #ifdef CMS_R_SIGNFINAL_ERROR ++ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR}, ++ #else ++ {"SIGNFINAL_ERROR", 46, 139}, ++ #endif ++ #ifdef CMS_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 46, 140}, ++ #endif ++ #ifdef CMS_R_STORE_INIT_ERROR ++ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR}, ++ #else ++ {"STORE_INIT_ERROR", 46, 141}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA ++ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"TYPE_NOT_COMPRESSED_DATA", 46, 142}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DATA ++ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA}, ++ #else ++ {"TYPE_NOT_DATA", 46, 143}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA ++ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA}, ++ #else ++ {"TYPE_NOT_DIGESTED_DATA", 46, 144}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA ++ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA}, ++ #else ++ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA ++ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"TYPE_NOT_ENVELOPED_DATA", 46, 146}, ++ #endif ++ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT ++ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT}, ++ #else ++ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 46, 148}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_ID ++ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID}, ++ #else ++ {"UNKNOWN_ID", 46, 150}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_KDF_ALGORITHM ++ {"UNKNOWN_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_KDF_ALGORITHM}, ++ #else ++ {"UNKNOWN_KDF_ALGORITHM", 46, 198}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", 46, 194}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 46, 152}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KDF_ALGORITHM ++ {"UNSUPPORTED_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KDF_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KDF_ALGORITHM", 46, 199}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM ++ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 46, 193}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE ++ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 46, 156}, ++ #endif ++ #ifdef CMS_R_UNWRAP_ERROR ++ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR}, ++ #else ++ {"UNWRAP_ERROR", 46, 157}, ++ #endif ++ #ifdef CMS_R_UNWRAP_FAILURE ++ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE}, ++ #else ++ {"UNWRAP_FAILURE", 46, 180}, ++ #endif ++ #ifdef CMS_R_VERIFICATION_FAILURE ++ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE}, ++ #else ++ {"VERIFICATION_FAILURE", 46, 158}, ++ #endif ++ #ifdef CMS_R_WRAP_ERROR ++ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR}, ++ #else ++ {"WRAP_ERROR", 46, 159}, ++ #endif ++ #ifdef COMP_R_BROTLI_DECODE_ERROR ++ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, ++ #else ++ {"BROTLI_DECODE_ERROR", 41, 102}, ++ #endif ++ #ifdef COMP_R_BROTLI_ENCODE_ERROR ++ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, ++ #else ++ {"BROTLI_ENCODE_ERROR", 41, 103}, ++ #endif ++ #ifdef COMP_R_BROTLI_NOT_SUPPORTED ++ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, ++ #else ++ {"BROTLI_NOT_SUPPORTED", 41, 104}, ++ #endif ++ #ifdef COMP_R_ZLIB_DEFLATE_ERROR ++ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, ++ #else ++ {"ZLIB_DEFLATE_ERROR", 41, 99}, ++ #endif ++ #ifdef COMP_R_ZLIB_INFLATE_ERROR ++ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR}, ++ #else ++ {"ZLIB_INFLATE_ERROR", 41, 100}, ++ #endif ++ #ifdef COMP_R_ZLIB_NOT_SUPPORTED ++ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED}, ++ #else ++ {"ZLIB_NOT_SUPPORTED", 41, 101}, ++ #endif ++ #ifdef COMP_R_ZSTD_COMPRESS_ERROR ++ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, ++ #else ++ {"ZSTD_COMPRESS_ERROR", 41, 105}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECODE_ERROR ++ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, ++ #else ++ {"ZSTD_DECODE_ERROR", 41, 106}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR ++ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, ++ #else ++ {"ZSTD_DECOMPRESS_ERROR", 41, 107}, ++ #endif ++ #ifdef COMP_R_ZSTD_NOT_SUPPORTED ++ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, ++ #else ++ {"ZSTD_NOT_SUPPORTED", 41, 108}, ++ #endif ++ #ifdef CONF_R_ERROR_LOADING_DSO ++ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, ++ #else ++ {"ERROR_LOADING_DSO", 14, 110}, ++ #endif ++ #ifdef CONF_R_INVALID_PRAGMA ++ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA}, ++ #else ++ {"INVALID_PRAGMA", 14, 122}, ++ #endif ++ #ifdef CONF_R_LIST_CANNOT_BE_NULL ++ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL}, ++ #else ++ {"LIST_CANNOT_BE_NULL", 14, 115}, ++ #endif ++ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION}, ++ #else ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123}, ++ #endif ++ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET ++ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET}, ++ #else ++ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100}, ++ #endif ++ #ifdef CONF_R_MISSING_EQUAL_SIGN ++ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN}, ++ #else ++ {"MISSING_EQUAL_SIGN", 14, 101}, ++ #endif ++ #ifdef CONF_R_MISSING_INIT_FUNCTION ++ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION}, ++ #else ++ {"MISSING_INIT_FUNCTION", 14, 112}, ++ #endif ++ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR ++ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR}, ++ #else ++ {"MODULE_INITIALIZATION_ERROR", 14, 109}, ++ #endif ++ #ifdef CONF_R_NO_CLOSE_BRACE ++ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE}, ++ #else ++ {"NO_CLOSE_BRACE", 14, 102}, ++ #endif ++ #ifdef CONF_R_NO_CONF ++ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF}, ++ #else ++ {"NO_CONF", 14, 105}, ++ #endif ++ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}, ++ #else ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106}, ++ #endif ++ #ifdef CONF_R_NO_SECTION ++ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION}, ++ #else ++ {"NO_SECTION", 14, 107}, ++ #endif ++ #ifdef CONF_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 14, 114}, ++ #endif ++ #ifdef CONF_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 14, 108}, ++ #endif ++ #ifdef CONF_R_NUMBER_TOO_LARGE ++ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE}, ++ #else ++ {"NUMBER_TOO_LARGE", 14, 121}, ++ #endif ++ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION}, ++ #else ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE ++ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE}, ++ #else ++ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE ++ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, ++ #else ++ {"RECURSIVE_SECTION_REFERENCE", 14, 126}, ++ #endif ++ #ifdef CONF_R_RELATIVE_PATH ++ {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, ++ #else ++ {"RELATIVE_PATH", 14, 125}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 14, 117}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 14, 119}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 14, 120}, ++ #endif ++ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION ++ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION}, ++ #else ++ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103}, ++ #endif ++ #ifdef CONF_R_UNKNOWN_MODULE_NAME ++ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME}, ++ #else ++ {"UNKNOWN_MODULE_NAME", 14, 113}, ++ #endif ++ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG ++ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG}, ++ #else ++ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116}, ++ #endif ++ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE ++ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE}, ++ #else ++ {"VARIABLE_HAS_NO_VALUE", 14, 104}, ++ #endif ++ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT ++ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT}, ++ #else ++ {"BAD_PBM_ITERATIONCOUNT", 56, 100}, ++ #endif ++ #ifdef CRMF_R_CMS_NOT_SUPPORTED ++ {"CMS_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_CMS_NOT_SUPPORTED}, ++ #else ++ {"CMS_NOT_SUPPORTED", 56, 122}, ++ #endif ++ #ifdef CRMF_R_CRMFERROR ++ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR}, ++ #else ++ {"CRMFERROR", 56, 102}, ++ #endif ++ #ifdef CRMF_R_ERROR ++ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR}, ++ #else ++ {"ERROR", 56, 103}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE ++ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE}, ++ #else ++ {"ERROR_DECODING_CERTIFICATE", 56, 104}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_ENCRYPTEDKEY ++ {"ERROR_DECODING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECODING_ENCRYPTEDKEY", 56, 123}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE ++ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE}, ++ #else ++ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", 56, 124}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", 56, 125}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY}, ++ #else ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106}, ++ #endif ++ #ifdef CRMF_R_ERROR_SETTING_PURPOSE ++ {"ERROR_SETTING_PURPOSE", ERR_LIB_CRMF, CRMF_R_ERROR_SETTING_PURPOSE}, ++ #else ++ {"ERROR_SETTING_PURPOSE", 56, 126}, ++ #endif ++ #ifdef CRMF_R_ERROR_SIGNING_POPO ++ {"ERROR_SIGNING_POPO", ERR_LIB_CRMF, CRMF_R_ERROR_SIGNING_POPO}, ++ #else ++ {"ERROR_SIGNING_POPO", 56, 129}, ++ #endif ++ #ifdef CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", 56, 127}, ++ #endif ++ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 56, 107}, ++ #endif ++ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100 ++ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100}, ++ #else ++ {"ITERATIONCOUNT_BELOW_100", 56, 108}, ++ #endif ++ #ifdef CRMF_R_MALFORMED_IV ++ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV}, ++ #else ++ {"MALFORMED_IV", 56, 101}, ++ #endif ++ #ifdef CRMF_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 56, 109}, ++ #endif ++ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED ++ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED}, ++ #else ++ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN}, ++ #else ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", 56, 128}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY ++ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY}, ++ #else ++ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING ++ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING}, ++ #else ++ {"POPO_MISSING", 56, 121}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY ++ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY}, ++ #else ++ {"POPO_MISSING_PUBLIC_KEY", 56, 118}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_SUBJECT ++ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT}, ++ #else ++ {"POPO_MISSING_SUBJECT", 56, 119}, ++ #endif ++ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED}, ++ #else ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120}, ++ #endif ++ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE ++ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE}, ++ #else ++ {"SETTING_MAC_ALGOR_FAILURE", 56, 110}, ++ #endif ++ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE ++ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE}, ++ #else ++ {"SETTING_OWF_ALGOR_FAILURE", 56, 111}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 56, 112}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 56, 114}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO}, ++ #else ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD ++ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD}, ++ #else ++ {"UNSUPPORTED_POPO_METHOD", 56, 116}, ++ #endif ++ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 15, 117}, ++ #endif ++ #ifdef CRYPTO_R_CONFLICTING_NAMES ++ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES}, ++ #else ++ {"CONFLICTING_NAMES", 15, 118}, ++ #endif ++ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT ++ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT}, ++ #else ++ {"HEX_STRING_TOO_SHORT", 15, 121}, ++ #endif ++ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT ++ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT}, ++ #else ++ {"ILLEGAL_HEX_DIGIT", 15, 102}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE ++ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_DATA_SPACE", 15, 106}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE ++ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE}, ++ #else ++ {"INSUFFICIENT_PARAM_SIZE", 15, 107}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE ++ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108}, ++ #endif ++ #ifdef CRYPTO_R_INTEGER_OVERFLOW ++ {"INTEGER_OVERFLOW", ERR_LIB_CRYPTO, CRYPTO_R_INTEGER_OVERFLOW}, ++ #else ++ {"INTEGER_OVERFLOW", 15, 127}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NEGATIVE_VALUE ++ {"INVALID_NEGATIVE_VALUE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NEGATIVE_VALUE}, ++ #else ++ {"INVALID_NEGATIVE_VALUE", 15, 122}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 15, 109}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE ++ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE}, ++ #else ++ {"INVALID_OSSL_PARAM_TYPE", 15, 110}, ++ #endif ++ #ifdef CRYPTO_R_NO_PARAMS_TO_MERGE ++ {"NO_PARAMS_TO_MERGE", ERR_LIB_CRYPTO, CRYPTO_R_NO_PARAMS_TO_MERGE}, ++ #else ++ {"NO_PARAMS_TO_MERGE", 15, 131}, ++ #endif ++ #ifdef CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL ++ {"NO_SPACE_FOR_TERMINATING_NULL", ERR_LIB_CRYPTO, CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL}, ++ #else ++ {"NO_SPACE_FOR_TERMINATING_NULL", 15, 128}, ++ #endif ++ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS ++ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS}, ++ #else ++ {"ODD_NUMBER_OF_DIGITS", 15, 103}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY}, ++ #else ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", 15, 123}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_NOT_INTEGER_TYPE ++ {"PARAM_NOT_INTEGER_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE}, ++ #else ++ {"PARAM_NOT_INTEGER_TYPE", 15, 124}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE ++ {"PARAM_OF_INCOMPATIBLE_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE}, ++ #else ++ {"PARAM_OF_INCOMPATIBLE_TYPE", 15, 129}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED}, ++ #else ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", 15, 125}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT}, ++ #else ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", 15, 130}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION}, ++ #else ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", 15, 126}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS ++ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS}, ++ #else ++ {"PROVIDER_ALREADY_EXISTS", 15, 104}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR ++ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR}, ++ #else ++ {"PROVIDER_SECTION_ERROR", 15, 105}, ++ #endif ++ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR ++ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR}, ++ #else ++ {"RANDOM_SECTION_ERROR", 15, 119}, ++ #endif ++ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE ++ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE}, ++ #else ++ {"SECURE_MALLOC_FAILURE", 15, 111}, ++ #endif ++ #ifdef CRYPTO_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 15, 112}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_BYTES ++ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES}, ++ #else ++ {"TOO_MANY_BYTES", 15, 113}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_NAMES ++ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, ++ #else ++ {"TOO_MANY_NAMES", 15, 132}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 15, 114}, ++ #endif ++ #ifdef CRYPTO_R_TOO_SMALL_BUFFER ++ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER}, ++ #else ++ {"TOO_SMALL_BUFFER", 15, 116}, ++ #endif ++ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION}, ++ #else ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120}, ++ #endif ++ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER ++ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER}, ++ #else ++ {"ZERO_LENGTH_NUMBER", 15, 115}, ++ #endif ++ #ifdef CT_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 50, 108}, ++ #endif ++ #ifdef CT_R_INVALID_LOG_ID_LENGTH ++ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH}, ++ #else ++ {"INVALID_LOG_ID_LENGTH", 50, 100}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID ++ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID}, ++ #else ++ {"LOG_CONF_INVALID", 50, 109}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID_KEY ++ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY}, ++ #else ++ {"LOG_CONF_INVALID_KEY", 50, 110}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION ++ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION}, ++ #else ++ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_KEY ++ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY}, ++ #else ++ {"LOG_CONF_MISSING_KEY", 50, 112}, ++ #endif ++ #ifdef CT_R_LOG_KEY_INVALID ++ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID}, ++ #else ++ {"LOG_KEY_INVALID", 50, 113}, ++ #endif ++ #ifdef CT_R_SCT_FUTURE_TIMESTAMP ++ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP}, ++ #else ++ {"SCT_FUTURE_TIMESTAMP", 50, 116}, ++ #endif ++ #ifdef CT_R_SCT_INVALID ++ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID}, ++ #else ++ {"SCT_INVALID", 50, 104}, ++ #endif ++ #ifdef CT_R_SCT_INVALID_SIGNATURE ++ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE}, ++ #else ++ {"SCT_INVALID_SIGNATURE", 50, 107}, ++ #endif ++ #ifdef CT_R_SCT_LIST_INVALID ++ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID}, ++ #else ++ {"SCT_LIST_INVALID", 50, 105}, ++ #endif ++ #ifdef CT_R_SCT_LOG_ID_MISMATCH ++ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH}, ++ #else ++ {"SCT_LOG_ID_MISMATCH", 50, 114}, ++ #endif ++ #ifdef CT_R_SCT_NOT_SET ++ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET}, ++ #else ++ {"SCT_NOT_SET", 50, 106}, ++ #endif ++ #ifdef CT_R_SCT_UNSUPPORTED_VERSION ++ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION}, ++ #else ++ {"SCT_UNSUPPORTED_VERSION", 50, 115}, ++ #endif ++ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID ++ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID}, ++ #else ++ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE ++ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE}, ++ #else ++ {"UNSUPPORTED_ENTRY_TYPE", 50, 102}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 50, 103}, ++ #endif ++ #ifdef DH_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 5, 127}, ++ #endif ++ #ifdef DH_R_BAD_GENERATOR ++ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR}, ++ #else ++ {"BAD_GENERATOR", 5, 101}, ++ #endif ++ #ifdef DH_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 5, 109}, ++ #endif ++ #ifdef DH_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 5, 106}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_J_VALUE ++ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE}, ++ #else ++ {"CHECK_INVALID_J_VALUE", 5, 115}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_Q_VALUE ++ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE}, ++ #else ++ {"CHECK_INVALID_Q_VALUE", 5, 116}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_INVALID ++ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID}, ++ #else ++ {"CHECK_PUBKEY_INVALID", 5, 122}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE ++ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE}, ++ #else ++ {"CHECK_PUBKEY_TOO_LARGE", 5, 123}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL ++ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL}, ++ #else ++ {"CHECK_PUBKEY_TOO_SMALL", 5, 124}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_PRIME ++ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME}, ++ #else ++ {"CHECK_P_NOT_PRIME", 5, 117}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME ++ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME}, ++ #else ++ {"CHECK_P_NOT_SAFE_PRIME", 5, 118}, ++ #endif ++ #ifdef DH_R_CHECK_Q_NOT_PRIME ++ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME}, ++ #else ++ {"CHECK_Q_NOT_PRIME", 5, 119}, ++ #endif ++ #ifdef DH_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 5, 104}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NAME ++ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME}, ++ #else ++ {"INVALID_PARAMETER_NAME", 5, 110}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NID ++ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID}, ++ #else ++ {"INVALID_PARAMETER_NID", 5, 114}, ++ #endif ++ #ifdef DH_R_INVALID_PUBKEY ++ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY}, ++ #else ++ {"INVALID_PUBKEY", 5, 102}, ++ #endif ++ #ifdef DH_R_INVALID_SECRET ++ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET}, ++ #else ++ {"INVALID_SECRET", 5, 128}, ++ #endif ++ #ifdef DH_R_INVALID_SIZE ++ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, ++ #else ++ {"INVALID_SIZE", 5, 129}, ++ #endif ++ #ifdef DH_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 5, 112}, ++ #endif ++ #ifdef DH_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 5, 108}, ++ #endif ++ #ifdef DH_R_MISSING_PUBKEY ++ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY}, ++ #else ++ {"MISSING_PUBKEY", 5, 125}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 5, 103}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_SMALL ++ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL}, ++ #else ++ {"MODULUS_TOO_SMALL", 5, 126}, ++ #endif ++ #ifdef DH_R_NOT_SUITABLE_GENERATOR ++ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR}, ++ #else ++ {"NOT_SUITABLE_GENERATOR", 5, 120}, ++ #endif ++ #ifdef DH_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 5, 107}, ++ #endif ++ #ifdef DH_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 5, 100}, ++ #endif ++ #ifdef DH_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 5, 105}, ++ #endif ++ #ifdef DH_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 5, 111}, ++ #endif ++ #ifdef DH_R_Q_TOO_LARGE ++ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, ++ #else ++ {"Q_TOO_LARGE", 5, 130}, ++ #endif ++ #ifdef DH_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 5, 113}, ++ #endif ++ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR ++ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR}, ++ #else ++ {"UNABLE_TO_CHECK_GENERATOR", 5, 121}, ++ #endif ++ #ifdef DSA_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 10, 114}, ++ #endif ++ #ifdef DSA_R_BAD_Q_VALUE ++ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE}, ++ #else ++ {"BAD_Q_VALUE", 10, 102}, ++ #endif ++ #ifdef DSA_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 10, 108}, ++ #endif ++ #ifdef DSA_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 10, 109}, ++ #endif ++ #ifdef DSA_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 10, 104}, ++ #endif ++ #ifdef DSA_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 10, 106}, ++ #endif ++ #ifdef DSA_R_INVALID_PARAMETERS ++ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS}, ++ #else ++ {"INVALID_PARAMETERS", 10, 112}, ++ #endif ++ #ifdef DSA_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 10, 101}, ++ #endif ++ #ifdef DSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 10, 111}, ++ #endif ++ #ifdef DSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 10, 103}, ++ #endif ++ #ifdef DSA_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 10, 107}, ++ #endif ++ #ifdef DSA_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 10, 105}, ++ #endif ++ #ifdef DSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 10, 115}, ++ #endif ++ #ifdef DSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 10, 113}, ++ #endif ++ #ifdef DSA_R_SEED_LEN_SMALL ++ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL}, ++ #else ++ {"SEED_LEN_SMALL", 10, 110}, ++ #endif ++ #ifdef DSA_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_DSA, DSA_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 10, 116}, ++ #endif ++ #ifdef DSO_R_CTRL_FAILED ++ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED}, ++ #else ++ {"CTRL_FAILED", 37, 100}, ++ #endif ++ #ifdef DSO_R_DSO_ALREADY_LOADED ++ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED}, ++ #else ++ {"DSO_ALREADY_LOADED", 37, 110}, ++ #endif ++ #ifdef DSO_R_EMPTY_FILE_STRUCTURE ++ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE}, ++ #else ++ {"EMPTY_FILE_STRUCTURE", 37, 113}, ++ #endif ++ #ifdef DSO_R_FAILURE ++ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE}, ++ #else ++ {"FAILURE", 37, 114}, ++ #endif ++ #ifdef DSO_R_FILENAME_TOO_BIG ++ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG}, ++ #else ++ {"FILENAME_TOO_BIG", 37, 101}, ++ #endif ++ #ifdef DSO_R_FINISH_FAILED ++ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED}, ++ #else ++ {"FINISH_FAILED", 37, 102}, ++ #endif ++ #ifdef DSO_R_INCORRECT_FILE_SYNTAX ++ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX}, ++ #else ++ {"INCORRECT_FILE_SYNTAX", 37, 115}, ++ #endif ++ #ifdef DSO_R_LOAD_FAILED ++ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED}, ++ #else ++ {"LOAD_FAILED", 37, 103}, ++ #endif ++ #ifdef DSO_R_NAME_TRANSLATION_FAILED ++ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED}, ++ #else ++ {"NAME_TRANSLATION_FAILED", 37, 109}, ++ #endif ++ #ifdef DSO_R_NO_FILENAME ++ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME}, ++ #else ++ {"NO_FILENAME", 37, 111}, ++ #endif ++ #ifdef DSO_R_NULL_HANDLE ++ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE}, ++ #else ++ {"NULL_HANDLE", 37, 104}, ++ #endif ++ #ifdef DSO_R_SET_FILENAME_FAILED ++ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED}, ++ #else ++ {"SET_FILENAME_FAILED", 37, 112}, ++ #endif ++ #ifdef DSO_R_STACK_ERROR ++ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR}, ++ #else ++ {"STACK_ERROR", 37, 105}, ++ #endif ++ #ifdef DSO_R_SYM_FAILURE ++ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE}, ++ #else ++ {"SYM_FAILURE", 37, 106}, ++ #endif ++ #ifdef DSO_R_UNLOAD_FAILED ++ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED}, ++ #else ++ {"UNLOAD_FAILED", 37, 107}, ++ #endif ++ #ifdef DSO_R_UNSUPPORTED ++ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED}, ++ #else ++ {"UNSUPPORTED", 37, 108}, ++ #endif ++ #ifdef EC_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 16, 115}, ++ #endif ++ #ifdef EC_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 16, 156}, ++ #endif ++ #ifdef EC_R_BIGNUM_OUT_OF_RANGE ++ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE}, ++ #else ++ {"BIGNUM_OUT_OF_RANGE", 16, 144}, ++ #endif ++ #ifdef EC_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 16, 100}, ++ #endif ++ #ifdef EC_R_CANNOT_INVERT ++ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT}, ++ #else ++ {"CANNOT_INVERT", 16, 165}, ++ #endif ++ #ifdef EC_R_COORDINATES_OUT_OF_RANGE ++ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE}, ++ #else ++ {"COORDINATES_OUT_OF_RANGE", 16, 146}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159}, ++ #endif ++ #ifdef EC_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 16, 142}, ++ #endif ++ #ifdef EC_R_DISCRIMINANT_IS_ZERO ++ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO}, ++ #else ++ {"DISCRIMINANT_IS_ZERO", 16, 118}, ++ #endif ++ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}, ++ #else ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119}, ++ #endif ++ #ifdef EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", 16, 127}, ++ #endif ++ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY ++ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY}, ++ #else ++ {"FAILED_MAKING_PUBLIC_KEY", 16, 166}, ++ #endif ++ #ifdef EC_R_FIELD_TOO_LARGE ++ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE}, ++ #else ++ {"FIELD_TOO_LARGE", 16, 143}, ++ #endif ++ #ifdef EC_R_GF2M_NOT_SUPPORTED ++ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED}, ++ #else ++ {"GF2M_NOT_SUPPORTED", 16, 147}, ++ #endif ++ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE ++ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE}, ++ #else ++ {"GROUP2PKPARAMETERS_FAILURE", 16, 120}, ++ #endif ++ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE ++ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE}, ++ #else ++ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121}, ++ #endif ++ #ifdef EC_R_INCOMPATIBLE_OBJECTS ++ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS}, ++ #else ++ {"INCOMPATIBLE_OBJECTS", 16, 101}, ++ #endif ++ #ifdef EC_R_INVALID_A ++ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A}, ++ #else ++ {"INVALID_A", 16, 168}, ++ #endif ++ #ifdef EC_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 16, 112}, ++ #endif ++ #ifdef EC_R_INVALID_B ++ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B}, ++ #else ++ {"INVALID_B", 16, 169}, ++ #endif ++ #ifdef EC_R_INVALID_COFACTOR ++ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR}, ++ #else ++ {"INVALID_COFACTOR", 16, 171}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSED_POINT ++ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT}, ++ #else ++ {"INVALID_COMPRESSED_POINT", 16, 110}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSION_BIT ++ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT}, ++ #else ++ {"INVALID_COMPRESSION_BIT", 16, 109}, ++ #endif ++ #ifdef EC_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 16, 141}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 16, 151}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 16, 138}, ++ #endif ++ #ifdef EC_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 16, 102}, ++ #endif ++ #ifdef EC_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 16, 103}, ++ #endif ++ #ifdef EC_R_INVALID_FORM ++ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM}, ++ #else ++ {"INVALID_FORM", 16, 104}, ++ #endif ++ #ifdef EC_R_INVALID_GENERATOR ++ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR}, ++ #else ++ {"INVALID_GENERATOR", 16, 173}, ++ #endif ++ #ifdef EC_R_INVALID_GROUP_ORDER ++ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER}, ++ #else ++ {"INVALID_GROUP_ORDER", 16, 122}, ++ #endif ++ #ifdef EC_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 16, 116}, ++ #endif ++ #ifdef EC_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EC, EC_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 16, 117}, ++ #endif ++ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION ++ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION}, ++ #else ++ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174}, ++ #endif ++ #ifdef EC_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 16, 161}, ++ #endif ++ #ifdef EC_R_INVALID_P ++ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P}, ++ #else ++ {"INVALID_P", 16, 172}, ++ #endif ++ #ifdef EC_R_INVALID_PEER_KEY ++ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY}, ++ #else ++ {"INVALID_PEER_KEY", 16, 133}, ++ #endif ++ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS ++ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS}, ++ #else ++ {"INVALID_PENTANOMIAL_BASIS", 16, 132}, ++ #endif ++ #ifdef EC_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 16, 123}, ++ #endif ++ #ifdef EC_R_INVALID_SEED ++ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED}, ++ #else ++ {"INVALID_SEED", 16, 175}, ++ #endif ++ #ifdef EC_R_INVALID_TRINOMIAL_BASIS ++ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS}, ++ #else ++ {"INVALID_TRINOMIAL_BASIS", 16, 137}, ++ #endif ++ #ifdef EC_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 16, 148}, ++ #endif ++ #ifdef EC_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 16, 140}, ++ #endif ++ #ifdef EC_R_LADDER_POST_FAILURE ++ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE}, ++ #else ++ {"LADDER_POST_FAILURE", 16, 136}, ++ #endif ++ #ifdef EC_R_LADDER_PRE_FAILURE ++ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE}, ++ #else ++ {"LADDER_PRE_FAILURE", 16, 153}, ++ #endif ++ #ifdef EC_R_LADDER_STEP_FAILURE ++ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE}, ++ #else ++ {"LADDER_STEP_FAILURE", 16, 162}, ++ #endif ++ #ifdef EC_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 16, 167}, ++ #endif ++ #ifdef EC_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 16, 124}, ++ #endif ++ #ifdef EC_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 16, 125}, ++ #endif ++ #ifdef EC_R_NEED_NEW_SETUP_VALUES ++ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES}, ++ #else ++ {"NEED_NEW_SETUP_VALUES", 16, 157}, ++ #endif ++ #ifdef EC_R_NOT_A_NIST_PRIME ++ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME}, ++ #else ++ {"NOT_A_NIST_PRIME", 16, 135}, ++ #endif ++ #ifdef EC_R_NOT_IMPLEMENTED ++ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED}, ++ #else ++ {"NOT_IMPLEMENTED", 16, 126}, ++ #endif ++ #ifdef EC_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 16, 111}, ++ #endif ++ #ifdef EC_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 16, 139}, ++ #endif ++ #ifdef EC_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 16, 154}, ++ #endif ++ #ifdef EC_R_OPERATION_NOT_SUPPORTED ++ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED}, ++ #else ++ {"OPERATION_NOT_SUPPORTED", 16, 152}, ++ #endif ++ #ifdef EC_R_PASSED_NULL_PARAMETER ++ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER}, ++ #else ++ {"PASSED_NULL_PARAMETER", 16, 134}, ++ #endif ++ #ifdef EC_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 16, 149}, ++ #endif ++ #ifdef EC_R_POINT_ARITHMETIC_FAILURE ++ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE}, ++ #else ++ {"POINT_ARITHMETIC_FAILURE", 16, 155}, ++ #endif ++ #ifdef EC_R_POINT_AT_INFINITY ++ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY}, ++ #else ++ {"POINT_AT_INFINITY", 16, 106}, ++ #endif ++ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE ++ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE}, ++ #else ++ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163}, ++ #endif ++ #ifdef EC_R_POINT_IS_NOT_ON_CURVE ++ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE}, ++ #else ++ {"POINT_IS_NOT_ON_CURVE", 16, 107}, ++ #endif ++ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED ++ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED}, ++ #else ++ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158}, ++ #endif ++ #ifdef EC_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 16, 150}, ++ #endif ++ #ifdef EC_R_SLOT_FULL ++ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL}, ++ #else ++ {"SLOT_FULL", 16, 108}, ++ #endif ++ #ifdef EC_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_EC, EC_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 16, 176}, ++ #endif ++ #ifdef EC_R_UNDEFINED_GENERATOR ++ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR}, ++ #else ++ {"UNDEFINED_GENERATOR", 16, 113}, ++ #endif ++ #ifdef EC_R_UNDEFINED_ORDER ++ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER}, ++ #else ++ {"UNDEFINED_ORDER", 16, 128}, ++ #endif ++ #ifdef EC_R_UNKNOWN_COFACTOR ++ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR}, ++ #else ++ {"UNKNOWN_COFACTOR", 16, 164}, ++ #endif ++ #ifdef EC_R_UNKNOWN_GROUP ++ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP}, ++ #else ++ {"UNKNOWN_GROUP", 16, 129}, ++ #endif ++ #ifdef EC_R_UNKNOWN_ORDER ++ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER}, ++ #else ++ {"UNKNOWN_ORDER", 16, 114}, ++ #endif ++ #ifdef EC_R_UNSUPPORTED_FIELD ++ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD}, ++ #else ++ {"UNSUPPORTED_FIELD", 16, 131}, ++ #endif ++ #ifdef EC_R_WRONG_CURVE_PARAMETERS ++ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS}, ++ #else ++ {"WRONG_CURVE_PARAMETERS", 16, 145}, ++ #endif ++ #ifdef EC_R_WRONG_ORDER ++ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER}, ++ #else ++ {"WRONG_ORDER", 16, 130}, ++ #endif ++ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST ++ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST}, ++ #else ++ {"EMPTY_ESS_CERT_ID_LIST", 54, 107}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR ++ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR}, ++ #else ++ {"ESS_CERT_DIGEST_ERROR", 54, 103}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND ++ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND}, ++ #else ++ {"ESS_CERT_ID_NOT_FOUND", 54, 104}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER ++ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER}, ++ #else ++ {"ESS_CERT_ID_WRONG_ORDER", 54, 105}, ++ #endif ++ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN ++ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN}, ++ #else ++ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR ++ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101}, ++ #endif ++ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE}, ++ #else ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108}, ++ #endif ++ #ifdef EVP_R_AES_KEY_SETUP_FAILED ++ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED}, ++ #else ++ {"AES_KEY_SETUP_FAILED", 6, 143}, ++ #endif ++ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED ++ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED}, ++ #else ++ {"ARIA_KEY_SETUP_FAILED", 6, 176}, ++ #endif ++ #ifdef EVP_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 6, 200}, ++ #endif ++ #ifdef EVP_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 6, 100}, ++ #endif ++ #ifdef EVP_R_BAD_KEY_LENGTH ++ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH}, ++ #else ++ {"BAD_KEY_LENGTH", 6, 195}, ++ #endif ++ #ifdef EVP_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 6, 155}, ++ #endif ++ #ifdef EVP_R_CACHE_CONSTANTS_FAILED ++ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED}, ++ #else ++ {"CACHE_CONSTANTS_FAILED", 6, 225}, ++ #endif ++ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED ++ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED}, ++ #else ++ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157}, ++ #endif ++ #ifdef EVP_R_CANNOT_GET_PARAMETERS ++ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS}, ++ #else ++ {"CANNOT_GET_PARAMETERS", 6, 197}, ++ #endif ++ #ifdef EVP_R_CANNOT_SET_PARAMETERS ++ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS}, ++ #else ++ {"CANNOT_SET_PARAMETERS", 6, 198}, ++ #endif ++ #ifdef EVP_R_CIPHER_NOT_GCM_MODE ++ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE}, ++ #else ++ {"CIPHER_NOT_GCM_MODE", 6, 184}, ++ #endif ++ #ifdef EVP_R_CIPHER_PARAMETER_ERROR ++ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_ERROR", 6, 122}, ++ #endif ++ #ifdef EVP_R_COMMAND_NOT_SUPPORTED ++ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED}, ++ #else ++ {"COMMAND_NOT_SUPPORTED", 6, 147}, ++ #endif ++ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME ++ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME}, ++ #else ++ {"CONFLICTING_ALGORITHM_NAME", 6, 201}, ++ #endif ++ #ifdef EVP_R_CONTEXT_FINALIZED ++ {"CONTEXT_FINALIZED", ERR_LIB_EVP, EVP_R_CONTEXT_FINALIZED}, ++ #else ++ {"CONTEXT_FINALIZED", 6, 239}, ++ #endif ++ #ifdef EVP_R_COPY_ERROR ++ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR}, ++ #else ++ {"COPY_ERROR", 6, 173}, ++ #endif ++ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED ++ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_NOT_IMPLEMENTED", 6, 132}, ++ #endif ++ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133}, ++ #endif ++ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH}, ++ #else ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138}, ++ #endif ++ #ifdef EVP_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 6, 114}, ++ #endif ++ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR ++ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR}, ++ #else ++ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_KEY_TYPES ++ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES}, ++ #else ++ {"DIFFERENT_KEY_TYPES", 6, 101}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_PARAMETERS ++ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS}, ++ #else ++ {"DIFFERENT_PARAMETERS", 6, 153}, ++ #endif ++ #ifdef EVP_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 6, 165}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY ++ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY}, ++ #else ++ {"EXPECTING_AN_HMAC_KEY", 6, 174}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_RSA_KEY ++ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY}, ++ #else ++ {"EXPECTING_AN_RSA_KEY", 6, 127}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DH_KEY ++ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY}, ++ #else ++ {"EXPECTING_A_DH_KEY", 6, 128}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DSA_KEY ++ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY}, ++ #else ++ {"EXPECTING_A_DSA_KEY", 6, 129}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_ECX_KEY ++ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY}, ++ #else ++ {"EXPECTING_A_ECX_KEY", 6, 219}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_EC_KEY ++ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY}, ++ #else ++ {"EXPECTING_A_EC_KEY", 6, 142}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY ++ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY}, ++ #else ++ {"EXPECTING_A_POLY1305_KEY", 6, 164}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY ++ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY}, ++ #else ++ {"EXPECTING_A_SIPHASH_KEY", 6, 175}, ++ #endif ++ #ifdef EVP_R_FINAL_ERROR ++ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR}, ++ #else ++ {"FINAL_ERROR", 6, 188}, ++ #endif ++ #ifdef EVP_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 6, 214}, ++ #endif ++ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, ++ #else ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, ++ #endif ++ #ifdef EVP_R_GET_RAW_KEY_FAILED ++ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, ++ #else ++ {"GET_RAW_KEY_FAILED", 6, 182}, ++ #endif ++ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS ++ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS}, ++ #else ++ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS}, ++ #else ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_KEY ++ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY}, ++ #else ++ {"INACCESSIBLE_KEY", 6, 203}, ++ #endif ++ #ifdef EVP_R_INITIALIZATION_ERROR ++ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR}, ++ #else ++ {"INITIALIZATION_ERROR", 6, 134}, ++ #endif ++ #ifdef EVP_R_INPUT_NOT_INITIALIZED ++ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED}, ++ #else ++ {"INPUT_NOT_INITIALIZED", 6, 111}, ++ #endif ++ #ifdef EVP_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 6, 185}, ++ #endif ++ #ifdef EVP_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 6, 152}, ++ #endif ++ #ifdef EVP_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 6, 194}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 6, 163}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 6, 130}, ++ #endif ++ #ifdef EVP_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 6, 221}, ++ #endif ++ #ifdef EVP_R_INVALID_NULL_ALGORITHM ++ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM}, ++ #else ++ {"INVALID_NULL_ALGORITHM", 6, 218}, ++ #endif ++ #ifdef EVP_R_INVALID_OPERATION ++ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION}, ++ #else ++ {"INVALID_OPERATION", 6, 148}, ++ #endif ++ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS ++ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS}, ++ #else ++ {"INVALID_PROVIDER_FUNCTIONS", 6, 193}, ++ #endif ++ #ifdef EVP_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 6, 186}, ++ #endif ++ #ifdef EVP_R_INVALID_SECRET_LENGTH ++ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH}, ++ #else ++ {"INVALID_SECRET_LENGTH", 6, 223}, ++ #endif ++ #ifdef EVP_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 6, 220}, ++ #endif ++ #ifdef EVP_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 6, 222}, ++ #endif ++ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE ++ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE}, ++ #else ++ {"KEYMGMT_EXPORT_FAILURE", 6, 205}, ++ #endif ++ #ifdef EVP_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 6, 180}, ++ #endif ++ #ifdef EVP_R_LOCKING_NOT_SUPPORTED ++ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED}, ++ #else ++ {"LOCKING_NOT_SUPPORTED", 6, 213}, ++ #endif ++ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED ++ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED}, ++ #else ++ {"MEMORY_LIMIT_EXCEEDED", 6, 172}, ++ #endif ++ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL ++ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL}, ++ #else ++ {"MESSAGE_DIGEST_IS_NULL", 6, 159}, ++ #endif ++ #ifdef EVP_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 6, 144}, ++ #endif ++ #ifdef EVP_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 6, 103}, ++ #endif ++ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX ++ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX}, ++ #else ++ {"NOT_ABLE_TO_COPY_CTX", 6, 190}, ++ #endif ++ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178}, ++ #endif ++ #ifdef EVP_R_NO_CIPHER_SET ++ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET}, ++ #else ++ {"NO_CIPHER_SET", 6, 131}, ++ #endif ++ #ifdef EVP_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 6, 158}, ++ #endif ++ #ifdef EVP_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 6, 139}, ++ #endif ++ #ifdef EVP_R_NO_IMPORT_FUNCTION ++ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION}, ++ #else ++ {"NO_IMPORT_FUNCTION", 6, 206}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE ++ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE}, ++ #else ++ {"NO_KEYMGMT_AVAILABLE", 6, 199}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_PRESENT ++ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT}, ++ #else ++ {"NO_KEYMGMT_PRESENT", 6, 196}, ++ #endif ++ #ifdef EVP_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 6, 154}, ++ #endif ++ #ifdef EVP_R_NO_OPERATION_SET ++ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET}, ++ #else ++ {"NO_OPERATION_SET", 6, 149}, ++ #endif ++ #ifdef EVP_R_NULL_MAC_PKEY_CTX ++ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX}, ++ #else ++ {"NULL_MAC_PKEY_CTX", 6, 208}, ++ #endif ++ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED ++ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED}, ++ #else ++ {"ONLY_ONESHOT_SUPPORTED", 6, 177}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_INITIALIZED ++ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED}, ++ #else ++ {"OPERATION_NOT_INITIALIZED", 6, 151}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, ++ #endif ++ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW ++ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, ++ #else ++ {"OUTPUT_WOULD_OVERFLOW", 6, 202}, ++ #endif ++ #ifdef EVP_R_PARAMETER_TOO_LARGE ++ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE}, ++ #else ++ {"PARAMETER_TOO_LARGE", 6, 187}, ++ #endif ++ #ifdef EVP_R_PARTIALLY_OVERLAPPING ++ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING}, ++ #else ++ {"PARTIALLY_OVERLAPPING", 6, 162}, ++ #endif ++ #ifdef EVP_R_PBKDF2_ERROR ++ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR}, ++ #else ++ {"PBKDF2_ERROR", 6, 181}, ++ #endif ++ #ifdef EVP_R_PIPELINE_NOT_SUPPORTED ++ {"PIPELINE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PIPELINE_NOT_SUPPORTED}, ++ #else ++ {"PIPELINE_NOT_SUPPORTED", 6, 230}, ++ #endif ++ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED}, ++ #else ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR ++ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_DECODE_ERROR", 6, 145}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR ++ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_FAILURE ++ {"PROVIDER_ASYM_CIPHER_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_FAILURE", 6, 232}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", 6, 235}, ++ #endif ++ #ifdef EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", 6, 238}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_FAILURE ++ {"PROVIDER_KEYMGMT_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE}, ++ #else ++ {"PROVIDER_KEYMGMT_FAILURE", 6, 233}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", 6, 236}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_FAILURE ++ {"PROVIDER_SIGNATURE_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE}, ++ #else ++ {"PROVIDER_SIGNATURE_FAILURE", 6, 234}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", 6, 237}, ++ #endif ++ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA ++ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA}, ++ #else ++ {"PUBLIC_KEY_NOT_RSA", 6, 106}, ++ #endif ++ #ifdef EVP_R_SETTING_XOF_FAILED ++ {"SETTING_XOF_FAILED", ERR_LIB_EVP, EVP_R_SETTING_XOF_FAILED}, ++ #else ++ {"SETTING_XOF_FAILED", 6, 227}, ++ #endif ++ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE ++ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE}, ++ #else ++ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, ++ #endif ++ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, ++ #else ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_PIPES ++ {"TOO_MANY_PIPES", ERR_LIB_EVP, EVP_R_TOO_MANY_PIPES}, ++ #else ++ {"TOO_MANY_PIPES", 6, 231}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 6, 183}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING ++ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING}, ++ #else ++ {"UNABLE_TO_ENABLE_LOCKING", 6, 212}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE}, ++ #else ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT ++ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT}, ++ #else ++ {"UNABLE_TO_LOCK_CONTEXT", 6, 211}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS ++ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS}, ++ #else ++ {"UNABLE_TO_SET_CALLBACKS", 6, 217}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_BITS ++ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, ++ #else ++ {"UNKNOWN_BITS", 6, 166}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 6, 160}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 6, 161}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 6, 207}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_MAX_SIZE ++ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, ++ #else ++ {"UNKNOWN_MAX_SIZE", 6, 167}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 6, 169}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM ++ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM}, ++ #else ++ {"UNKNOWN_PBE_ALGORITHM", 6, 121}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_SECURITY_BITS ++ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, ++ #else ++ {"UNKNOWN_SECURITY_BITS", 6, 168}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 6, 156}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 6, 107}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH ++ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH}, ++ #else ++ {"UNSUPPORTED_KEYLENGTH", 6, 123}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}, ++ #else ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 6, 108}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 6, 224}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRF ++ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF}, ++ #else ++ {"UNSUPPORTED_PRF", 6, 125}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE ++ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE}, ++ #else ++ {"UNSUPPORTED_SALT_TYPE", 6, 126}, ++ #endif ++ #ifdef EVP_R_UPDATE_ERROR ++ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR}, ++ #else ++ {"UPDATE_ERROR", 6, 189}, ++ #endif ++ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED ++ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED}, ++ #else ++ {"WRAP_MODE_NOT_ALLOWED", 6, 170}, ++ #endif ++ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109}, ++ #endif ++ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191}, ++ #endif ++ #ifdef EVP_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 6, 192}, ++ #endif ++ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN}, ++ #else ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108}, ++ #endif ++ #ifdef HTTP_R_CONNECT_FAILURE ++ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE}, ++ #else ++ {"CONNECT_FAILURE", 61, 100}, ++ #endif ++ #ifdef HTTP_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 61, 131}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH ++ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH}, ++ #else ++ {"ERROR_PARSING_ASN1_LENGTH", 61, 109}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH ++ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH}, ++ #else ++ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_URL ++ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL}, ++ #else ++ {"ERROR_PARSING_URL", 61, 101}, ++ #endif ++ #ifdef HTTP_R_ERROR_RECEIVING ++ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING}, ++ #else ++ {"ERROR_RECEIVING", 61, 103}, ++ #endif ++ #ifdef HTTP_R_ERROR_SENDING ++ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING}, ++ #else ++ {"ERROR_SENDING", 61, 102}, ++ #endif ++ #ifdef HTTP_R_FAILED_READING_DATA ++ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA}, ++ #else ++ {"FAILED_READING_DATA", 61, 128}, ++ #endif ++ #ifdef HTTP_R_HEADER_PARSE_ERROR ++ {"HEADER_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_HEADER_PARSE_ERROR}, ++ #else ++ {"HEADER_PARSE_ERROR", 61, 126}, ++ #endif ++ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH ++ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH}, ++ #else ++ {"INCONSISTENT_CONTENT_LENGTH", 61, 120}, ++ #endif ++ #ifdef HTTP_R_INVALID_PORT_NUMBER ++ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER}, ++ #else ++ {"INVALID_PORT_NUMBER", 61, 123}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_PATH ++ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH}, ++ #else ++ {"INVALID_URL_PATH", 61, 125}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_SCHEME ++ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME}, ++ #else ++ {"INVALID_URL_SCHEME", 61, 124}, ++ #endif ++ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED ++ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED}, ++ #else ++ {"MAX_RESP_LEN_EXCEEDED", 61, 117}, ++ #endif ++ #ifdef HTTP_R_MISSING_ASN1_ENCODING ++ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING}, ++ #else ++ {"MISSING_ASN1_ENCODING", 61, 110}, ++ #endif ++ #ifdef HTTP_R_MISSING_CONTENT_TYPE ++ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE}, ++ #else ++ {"MISSING_CONTENT_TYPE", 61, 121}, ++ #endif ++ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION ++ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION}, ++ #else ++ {"MISSING_REDIRECT_LOCATION", 61, 111}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 61, 105}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION ++ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION}, ++ #else ++ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP}, ++ #else ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED ++ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED}, ++ #else ++ {"REDIRECTION_NOT_ENABLED", 61, 116}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG ++ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG}, ++ #else ++ {"RESPONSE_LINE_TOO_LONG", 61, 113}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_PARSE_ERROR ++ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR}, ++ #else ++ {"RESPONSE_PARSE_ERROR", 61, 104}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES ++ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, ++ #else ++ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, ++ #endif ++ #ifdef HTTP_R_RETRY_TIMEOUT ++ {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, ++ #else ++ {"RETRY_TIMEOUT", 61, 129}, ++ #endif ++ #ifdef HTTP_R_SERVER_CANCELED_CONNECTION ++ {"SERVER_CANCELED_CONNECTION", ERR_LIB_HTTP, HTTP_R_SERVER_CANCELED_CONNECTION}, ++ #else ++ {"SERVER_CANCELED_CONNECTION", 61, 127}, ++ #endif ++ #ifdef HTTP_R_SOCK_NOT_SUPPORTED ++ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED}, ++ #else ++ {"SOCK_NOT_SUPPORTED", 61, 122}, ++ #endif ++ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED ++ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED}, ++ #else ++ {"STATUS_CODE_UNSUPPORTED", 61, 114}, ++ #endif ++ #ifdef HTTP_R_TLS_NOT_ENABLED ++ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED}, ++ #else ++ {"TLS_NOT_ENABLED", 61, 107}, ++ #endif ++ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS ++ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS}, ++ #else ++ {"TOO_MANY_REDIRECTIONS", 61, 115}, ++ #endif ++ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE ++ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE}, ++ #else ++ {"UNEXPECTED_CONTENT_TYPE", 61, 118}, ++ #endif ++ #ifdef OBJ_R_OID_EXISTS ++ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS}, ++ #else ++ {"OID_EXISTS", 8, 102}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 8, 101}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME ++ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME}, ++ #else ++ {"UNKNOWN_OBJECT_NAME", 8, 103}, ++ #endif ++ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 39, 101}, ++ #endif ++ #ifdef OCSP_R_DIGEST_ERR ++ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR}, ++ #else ++ {"DIGEST_ERR", 39, 102}, ++ #endif ++ #ifdef OCSP_R_DIGEST_NAME_ERR ++ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR}, ++ #else ++ {"DIGEST_NAME_ERR", 39, 106}, ++ #endif ++ #ifdef OCSP_R_DIGEST_SIZE_ERR ++ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR}, ++ #else ++ {"DIGEST_SIZE_ERR", 39, 107}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD ++ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD ++ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_THISUPDATE_FIELD", 39, 123}, ++ #endif ++ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE ++ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE}, ++ #else ++ {"MISSING_OCSPSIGNING_USAGE", 39, 103}, ++ #endif ++ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE ++ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}, ++ #else ++ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124}, ++ #endif ++ #ifdef OCSP_R_NOT_BASIC_RESPONSE ++ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE}, ++ #else ++ {"NOT_BASIC_RESPONSE", 39, 104}, ++ #endif ++ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN ++ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN}, ++ #else ++ {"NO_CERTIFICATES_IN_CHAIN", 39, 105}, ++ #endif ++ #ifdef OCSP_R_NO_RESPONSE_DATA ++ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA}, ++ #else ++ {"NO_RESPONSE_DATA", 39, 108}, ++ #endif ++ #ifdef OCSP_R_NO_REVOKED_TIME ++ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME}, ++ #else ++ {"NO_REVOKED_TIME", 39, 109}, ++ #endif ++ #ifdef OCSP_R_NO_SIGNER_KEY ++ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY}, ++ #else ++ {"NO_SIGNER_KEY", 39, 130}, ++ #endif ++ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110}, ++ #endif ++ #ifdef OCSP_R_REQUEST_NOT_SIGNED ++ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED}, ++ #else ++ {"REQUEST_NOT_SIGNED", 39, 128}, ++ #endif ++ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}, ++ #else ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111}, ++ #endif ++ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED ++ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED}, ++ #else ++ {"ROOT_CA_NOT_TRUSTED", 39, 112}, ++ #endif ++ #ifdef OCSP_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 39, 117}, ++ #endif ++ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118}, ++ #endif ++ #ifdef OCSP_R_STATUS_EXPIRED ++ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED}, ++ #else ++ {"STATUS_EXPIRED", 39, 125}, ++ #endif ++ #ifdef OCSP_R_STATUS_NOT_YET_VALID ++ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID}, ++ #else ++ {"STATUS_NOT_YET_VALID", 39, 126}, ++ #endif ++ #ifdef OCSP_R_STATUS_TOO_OLD ++ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD}, ++ #else ++ {"STATUS_TOO_OLD", 39, 127}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST ++ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST", 39, 119}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 39, 120}, ++ #endif ++ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}, ++ #else ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129}, ++ #endif ++ #ifdef OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT ++ {"COULD_NOT_DECODE_OBJECT", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT}, ++ #else ++ {"COULD_NOT_DECODE_OBJECT", 60, 101}, ++ #endif ++ #ifdef OSSL_DECODER_R_DECODER_NOT_FOUND ++ {"DECODER_NOT_FOUND", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_DECODER_NOT_FOUND}, ++ #else ++ {"DECODER_NOT_FOUND", 60, 102}, ++ #endif ++ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 60, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_BAD_PARAMETER_VALUE ++ {"BAD_PARAMETER_VALUE", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_BAD_PARAMETER_VALUE}, ++ #else ++ {"BAD_PARAMETER_VALUE", 59, 103}, ++ #endif ++ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND ++ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND}, ++ #else ++ {"ENCODER_NOT_FOUND", 59, 101}, ++ #endif ++ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY ++ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY}, ++ #else ++ {"INCORRECT_PROPERTY_QUERY", 59, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 59, 102}, ++ #endif ++ #ifdef OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME ++ {"UNKNOWN_PARAMETER_NAME", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME}, ++ #else ++ {"UNKNOWN_PARAMETER_NAME", 59, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE ++ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE}, ++ #else ++ {"AMBIGUOUS_CONTENT_TYPE", 44, 107}, ++ #endif ++ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 44, 115}, ++ #endif ++ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC ++ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC}, ++ #else ++ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113}, ++ #endif ++ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST}, ++ #else ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121}, ++ #endif ++ #ifdef OSSL_STORE_R_INVALID_SCHEME ++ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME}, ++ #else ++ {"INVALID_SCHEME", 44, 106}, ++ #endif ++ #ifdef OSSL_STORE_R_IS_NOT_A ++ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A}, ++ #else ++ {"IS_NOT_A", 44, 112}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE ++ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE}, ++ #else ++ {"LOADER_INCOMPLETE", 44, 116}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADING_STARTED ++ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED}, ++ #else ++ {"LOADING_STARTED", 44, 117}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE ++ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE}, ++ #else ++ {"NOT_A_CERTIFICATE", 44, 100}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CRL ++ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL}, ++ #else ++ {"NOT_A_CRL", 44, 101}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_NAME ++ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME}, ++ #else ++ {"NOT_A_NAME", 44, 103}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 44, 102}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 44, 122}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_SYMMETRIC_KEY ++ {"NOT_A_SYMMETRIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_SYMMETRIC_KEY}, ++ #else ++ {"NOT_A_SYMMETRIC_KEY", 44, 124}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 44, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_NO_LOADERS_FOUND ++ {"NO_LOADERS_FOUND", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NO_LOADERS_FOUND}, ++ #else ++ {"NO_LOADERS_FOUND", 44, 123}, ++ #endif ++ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR ++ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR}, ++ #else ++ {"PASSPHRASE_CALLBACK_ERROR", 44, 114}, ++ #endif ++ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 44, 108}, ++ #endif ++ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119}, ++ #endif ++ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED}, ++ #else ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109}, ++ #endif ++ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME ++ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME}, ++ #else ++ {"UNREGISTERED_SCHEME", 44, 105}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 44, 110}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION ++ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION}, ++ #else ++ {"UNSUPPORTED_OPERATION", 44, 118}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE ++ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE}, ++ #else ++ {"UNSUPPORTED_SEARCH_TYPE", 44, 120}, ++ #endif ++ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 44, 111}, ++ #endif ++ #ifdef PEM_R_BAD_BASE64_DECODE ++ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE}, ++ #else ++ {"BAD_BASE64_DECODE", 9, 100}, ++ #endif ++ #ifdef PEM_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 9, 101}, ++ #endif ++ #ifdef PEM_R_BAD_END_LINE ++ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE}, ++ #else ++ {"BAD_END_LINE", 9, 102}, ++ #endif ++ #ifdef PEM_R_BAD_IV_CHARS ++ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS}, ++ #else ++ {"BAD_IV_CHARS", 9, 103}, ++ #endif ++ #ifdef PEM_R_BAD_MAGIC_NUMBER ++ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER}, ++ #else ++ {"BAD_MAGIC_NUMBER", 9, 116}, ++ #endif ++ #ifdef PEM_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 9, 104}, ++ #endif ++ #ifdef PEM_R_BAD_VERSION_NUMBER ++ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER}, ++ #else ++ {"BAD_VERSION_NUMBER", 9, 117}, ++ #endif ++ #ifdef PEM_R_BIO_WRITE_FAILURE ++ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE}, ++ #else ++ {"BIO_WRITE_FAILURE", 9, 118}, ++ #endif ++ #ifdef PEM_R_CIPHER_IS_NULL ++ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL}, ++ #else ++ {"CIPHER_IS_NULL", 9, 127}, ++ #endif ++ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY ++ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY}, ++ #else ++ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115}, ++ #endif ++ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB ++ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB}, ++ #else ++ {"EXPECTING_DSS_KEY_BLOB", 9, 131}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB ++ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB}, ++ #else ++ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB ++ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB}, ++ #else ++ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120}, ++ #endif ++ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB ++ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB}, ++ #else ++ {"EXPECTING_RSA_KEY_BLOB", 9, 132}, ++ #endif ++ #ifdef PEM_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 9, 128}, ++ #endif ++ #ifdef PEM_R_INCONSISTENT_HEADER ++ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER}, ++ #else ++ {"INCONSISTENT_HEADER", 9, 121}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR ++ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR}, ++ #else ++ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_TOO_SHORT ++ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT}, ++ #else ++ {"KEYBLOB_TOO_SHORT", 9, 123}, ++ #endif ++ #ifdef PEM_R_MISSING_DEK_IV ++ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV}, ++ #else ++ {"MISSING_DEK_IV", 9, 129}, ++ #endif ++ #ifdef PEM_R_NOT_DEK_INFO ++ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO}, ++ #else ++ {"NOT_DEK_INFO", 9, 105}, ++ #endif ++ #ifdef PEM_R_NOT_ENCRYPTED ++ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED}, ++ #else ++ {"NOT_ENCRYPTED", 9, 106}, ++ #endif ++ #ifdef PEM_R_NOT_PROC_TYPE ++ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE}, ++ #else ++ {"NOT_PROC_TYPE", 9, 107}, ++ #endif ++ #ifdef PEM_R_NO_START_LINE ++ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE}, ++ #else ++ {"NO_START_LINE", 9, 108}, ++ #endif ++ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD ++ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD}, ++ #else ++ {"PROBLEMS_GETTING_PASSWORD", 9, 109}, ++ #endif ++ #ifdef PEM_R_PVK_DATA_TOO_SHORT ++ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT}, ++ #else ++ {"PVK_DATA_TOO_SHORT", 9, 124}, ++ #endif ++ #ifdef PEM_R_PVK_TOO_SHORT ++ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT}, ++ #else ++ {"PVK_TOO_SHORT", 9, 125}, ++ #endif ++ #ifdef PEM_R_READ_KEY ++ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY}, ++ #else ++ {"READ_KEY", 9, 111}, ++ #endif ++ #ifdef PEM_R_SHORT_HEADER ++ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER}, ++ #else ++ {"SHORT_HEADER", 9, 112}, ++ #endif ++ #ifdef PEM_R_UNEXPECTED_DEK_IV ++ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV}, ++ #else ++ {"UNEXPECTED_DEK_IV", 9, 130}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 9, 113}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION ++ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION", 9, 114}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS ++ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS}, ++ #else ++ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PVK_KEY_TYPE ++ {"UNSUPPORTED_PVK_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PVK_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PVK_KEY_TYPE", 9, 133}, ++ #endif ++ #ifdef PKCS12_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 35, 115}, ++ #endif ++ #ifdef PKCS12_R_CANT_PACK_STRUCTURE ++ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, ++ #else ++ {"CANT_PACK_STRUCTURE", 35, 100}, ++ #endif ++ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA ++ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_DATA", 35, 121}, ++ #endif ++ #ifdef PKCS12_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 35, 101}, ++ #endif ++ #ifdef PKCS12_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 35, 102}, ++ #endif ++ #ifdef PKCS12_R_ENCRYPT_ERROR ++ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR}, ++ #else ++ {"ENCRYPT_ERROR", 35, 103}, ++ #endif ++ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE}, ++ #else ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 35, 104}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER ++ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER}, ++ #else ++ {"INVALID_NULL_PKCS12_POINTER", 35, 105}, ++ #endif ++ #ifdef PKCS12_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PKCS12, PKCS12_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 35, 117}, ++ #endif ++ #ifdef PKCS12_R_INVALID_TYPE ++ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE}, ++ #else ++ {"INVALID_TYPE", 35, 112}, ++ #endif ++ #ifdef PKCS12_R_IV_GEN_ERROR ++ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR}, ++ #else ++ {"IV_GEN_ERROR", 35, 106}, ++ #endif ++ #ifdef PKCS12_R_KEY_GEN_ERROR ++ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR}, ++ #else ++ {"KEY_GEN_ERROR", 35, 107}, ++ #endif ++ #ifdef PKCS12_R_MAC_ABSENT ++ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT}, ++ #else ++ {"MAC_ABSENT", 35, 108}, ++ #endif ++ #ifdef PKCS12_R_MAC_GENERATION_ERROR ++ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR}, ++ #else ++ {"MAC_GENERATION_ERROR", 35, 109}, ++ #endif ++ #ifdef PKCS12_R_MAC_SETUP_ERROR ++ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR}, ++ #else ++ {"MAC_SETUP_ERROR", 35, 110}, ++ #endif ++ #ifdef PKCS12_R_MAC_STRING_SET_ERROR ++ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR}, ++ #else ++ {"MAC_STRING_SET_ERROR", 35, 111}, ++ #endif ++ #ifdef PKCS12_R_MAC_VERIFY_FAILURE ++ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE}, ++ #else ++ {"MAC_VERIFY_FAILURE", 35, 113}, ++ #endif ++ #ifdef PKCS12_R_PARSE_ERROR ++ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR}, ++ #else ++ {"PARSE_ERROR", 35, 114}, ++ #endif ++ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR ++ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR}, ++ #else ++ {"PKCS12_CIPHERFINAL_ERROR", 35, 116}, ++ #endif ++ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118}, ++ #endif ++ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE ++ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE}, ++ #else ++ {"UNSUPPORTED_PKCS12_MODE", 35, 119}, ++ #endif ++ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 33, 117}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED ++ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED}, ++ #else ++ {"CIPHER_NOT_INITIALIZED", 33, 116}, ++ #endif ++ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT ++ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT}, ++ #else ++ {"CONTENT_AND_DATA_PRESENT", 33, 118}, ++ #endif ++ #ifdef PKCS7_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 33, 152}, ++ #endif ++ #ifdef PKCS7_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 33, 119}, ++ #endif ++ #ifdef PKCS7_R_DIGEST_FAILURE ++ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE}, ++ #else ++ {"DIGEST_FAILURE", 33, 101}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE ++ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE}, ++ #else ++ {"ENCRYPTION_CTRL_FAILURE", 33, 149}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150}, ++ #endif ++ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT ++ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT}, ++ #else ++ {"ERROR_ADDING_RECIPIENT", 33, 120}, ++ #endif ++ #ifdef PKCS7_R_ERROR_SETTING_CIPHER ++ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER}, ++ #else ++ {"ERROR_SETTING_CIPHER", 33, 121}, ++ #endif ++ #ifdef PKCS7_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 33, 143}, ++ #endif ++ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE ++ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE}, ++ #else ++ {"INVALID_SIGNED_DATA_TYPE", 33, 155}, ++ #endif ++ #ifdef PKCS7_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 33, 122}, ++ #endif ++ #ifdef PKCS7_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 33, 151}, ++ #endif ++ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND}, ++ #else ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154}, ++ #endif ++ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}, ++ #else ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA ++ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA}, ++ #else ++ {"NO_SIGNATURES_ON_DATA", 33, 123}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 33, 142}, ++ #endif ++ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR ++ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNER_ERROR", 33, 153}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_DATASIGN ++ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN}, ++ #else ++ {"PKCS7_DATASIGN", 33, 145}, ++ #endif ++ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127}, ++ #endif ++ #ifdef PKCS7_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 33, 105}, ++ #endif ++ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE ++ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE}, ++ #else ++ {"SIGNING_CTRL_FAILURE", 33, 147}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148}, ++ #endif ++ #ifdef PKCS7_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 33, 129}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE ++ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}, ++ #else ++ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO ++ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO}, ++ #else ++ {"UNABLE_TO_FIND_MEM_BIO", 33, 107}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}, ++ #else ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE ++ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE}, ++ #else ++ {"UNKNOWN_DIGEST_TYPE", 33, 109}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_OPERATION ++ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION}, ++ #else ++ {"UNKNOWN_OPERATION", 33, 110}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE ++ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE}, ++ #else ++ {"UNSUPPORTED_CIPHER_TYPE", 33, 111}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 33, 112}, ++ #endif ++ #ifdef PKCS7_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 33, 113}, ++ #endif ++ #ifdef PKCS7_R_WRONG_PKCS7_TYPE ++ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE}, ++ #else ++ {"WRONG_PKCS7_TYPE", 33, 114}, ++ #endif ++ #ifdef PROP_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 55, 100}, ++ #endif ++ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER ++ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER}, ++ #else ++ {"NOT_AN_ASCII_CHARACTER", 55, 101}, ++ #endif ++ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT ++ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT}, ++ #else ++ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102}, ++ #endif ++ #ifdef PROP_R_NOT_AN_IDENTIFIER ++ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER}, ++ #else ++ {"NOT_AN_IDENTIFIER", 55, 103}, ++ #endif ++ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT ++ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT}, ++ #else ++ {"NOT_AN_OCTAL_DIGIT", 55, 104}, ++ #endif ++ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT ++ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT}, ++ #else ++ {"NOT_A_DECIMAL_DIGIT", 55, 105}, ++ #endif ++ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER ++ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER}, ++ #else ++ {"NO_MATCHING_STRING_DELIMITER", 55, 106}, ++ #endif ++ #ifdef PROP_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 55, 107}, ++ #endif ++ #ifdef PROP_R_PARSE_FAILED ++ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED}, ++ #else ++ {"PARSE_FAILED", 55, 108}, ++ #endif ++ #ifdef PROP_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 55, 109}, ++ #endif ++ #ifdef PROP_R_TRAILING_CHARACTERS ++ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS}, ++ #else ++ {"TRAILING_CHARACTERS", 55, 110}, ++ #endif ++ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184}, ++ #endif ++ #ifdef PROV_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 57, 173}, ++ #endif ++ #ifdef PROV_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 57, 185}, ++ #endif ++ #ifdef PROV_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 57, 100}, ++ #endif ++ #ifdef PROV_R_BAD_ENCODING ++ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING}, ++ #else ++ {"BAD_ENCODING", 57, 141}, ++ #endif ++ #ifdef PROV_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 57, 142}, ++ #endif ++ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION ++ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION}, ++ #else ++ {"BAD_TLS_CLIENT_VERSION", 57, 161}, ++ #endif ++ #ifdef PROV_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 57, 160}, ++ #endif ++ #ifdef PROV_R_CIPHER_OPERATION_FAILED ++ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED}, ++ #else ++ {"CIPHER_OPERATION_FAILED", 57, 102}, ++ #endif ++ #ifdef PROV_R_COFACTOR_REQUIRED ++ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, ++ #else ++ {"COFACTOR_REQUIRED", 57, 236}, ++ #endif ++ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED ++ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, ++ #else ++ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205}, ++ #endif ++ #ifdef PROV_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 57, 174}, ++ #endif ++ #ifdef PROV_R_EMS_NOT_ENABLED ++ {"EMS_NOT_ENABLED", ERR_LIB_PROV, PROV_R_EMS_NOT_ENABLED}, ++ #else ++ {"EMS_NOT_ENABLED", 57, 233}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, ++ #else ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, ++ #else ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186}, ++ #endif ++ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 57, 188}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 57, 189}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 57, 190}, ++ #endif ++ #ifdef PROV_R_FAILED_DURING_DERIVATION ++ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION}, ++ #else ++ {"FAILED_DURING_DERIVATION", 57, 164}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 57, 180}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_DECRYPT ++ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT}, ++ #else ++ {"FAILED_TO_DECRYPT", 57, 162}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GENERATE_KEY ++ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY}, ++ #else ++ {"FAILED_TO_GENERATE_KEY", 57, 121}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 57, 103}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SET_PARAMETER ++ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER}, ++ #else ++ {"FAILED_TO_SET_PARAMETER", 57, 104}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SIGN ++ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN}, ++ #else ++ {"FAILED_TO_SIGN", 57, 175}, ++ #endif ++ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER ++ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, ++ #else ++ {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR ++ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, ++ #else ++ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR}, ++ #else ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", 57, 253}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE ++ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225}, ++ #endif ++ #ifdef PROV_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 57, 191}, ++ #endif ++ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165}, ++ #endif ++ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE ++ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE}, ++ #else ++ {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, ++ #endif ++ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER ++ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, ++ #else ++ {"INIT_CALL_OUT_OF_ORDER", 57, 238}, ++ #endif ++ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181}, ++ #endif ++ #ifdef PROV_R_INVALID_AAD ++ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD}, ++ #else ++ {"INVALID_AAD", 57, 108}, ++ #endif ++ #ifdef PROV_R_INVALID_AEAD ++ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, ++ #else ++ {"INVALID_AEAD", 57, 231}, ++ #endif ++ #ifdef PROV_R_INVALID_CIPHER ++ {"INVALID_CIPHER", ERR_LIB_PROV, PROV_R_INVALID_CIPHER}, ++ #else ++ {"INVALID_CIPHER", 57, 260}, ++ #endif ++ #ifdef PROV_R_INVALID_CONFIG_DATA ++ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, ++ #else ++ {"INVALID_CONFIG_DATA", 57, 211}, ++ #endif ++ #ifdef PROV_R_INVALID_CONSTANT_LENGTH ++ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH}, ++ #else ++ {"INVALID_CONSTANT_LENGTH", 57, 157}, ++ #endif ++ #ifdef PROV_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 57, 176}, ++ #endif ++ #ifdef PROV_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 57, 111}, ++ #endif ++ #ifdef PROV_R_INVALID_DATA ++ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA}, ++ #else ++ {"INVALID_DATA", 57, 115}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 57, 122}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 57, 166}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_SIZE ++ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE}, ++ #else ++ {"INVALID_DIGEST_SIZE", 57, 218}, ++ #endif ++ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, ++ #else ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, ++ #endif ++ #ifdef PROV_R_INVALID_FUNCTION_NAME ++ {"INVALID_FUNCTION_NAME", ERR_LIB_PROV, PROV_R_INVALID_FUNCTION_NAME}, ++ #else ++ {"INVALID_FUNCTION_NAME", 57, 258}, ++ #endif ++ #ifdef PROV_R_INVALID_INDEX_LENGTH ++ {"INVALID_INDEX_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INDEX_LENGTH}, ++ #else ++ {"INVALID_INDEX_LENGTH", 57, 259}, ++ #endif ++ #ifdef PROV_R_INVALID_INPUT_LENGTH ++ {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, ++ #else ++ {"INVALID_INPUT_LENGTH", 57, 230}, ++ #endif ++ #ifdef PROV_R_INVALID_ITERATION_COUNT ++ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT}, ++ #else ++ {"INVALID_ITERATION_COUNT", 57, 123}, ++ #endif ++ #ifdef PROV_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 57, 109}, ++ #endif ++ #ifdef PROV_R_INVALID_KDF ++ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, ++ #else ++ {"INVALID_KDF", 57, 232}, ++ #endif ++ #ifdef PROV_R_INVALID_KDR ++ {"INVALID_KDR", ERR_LIB_PROV, PROV_R_INVALID_KDR}, ++ #else ++ {"INVALID_KDR", 57, 256}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 57, 158}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 57, 105}, ++ #endif ++ #ifdef PROV_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_PROV, PROV_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 57, 257}, ++ #endif ++ #ifdef PROV_R_INVALID_MAC ++ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC}, ++ #else ++ {"INVALID_MAC", 57, 151}, ++ #endif ++ #ifdef PROV_R_INVALID_MEMORY_SIZE ++ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, ++ #else ++ {"INVALID_MEMORY_SIZE", 57, 235}, ++ #endif ++ #ifdef PROV_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 57, 167}, ++ #endif ++ #ifdef PROV_R_INVALID_MODE ++ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE}, ++ #else ++ {"INVALID_MODE", 57, 125}, ++ #endif ++ #ifdef PROV_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 57, 217}, ++ #endif ++ #ifdef PROV_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 57, 168}, ++ #endif ++ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH ++ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, ++ #else ++ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, ++ #endif ++ #ifdef PROV_R_INVALID_PUBINFO ++ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, ++ #else ++ {"INVALID_PUBINFO", 57, 198}, ++ #endif ++ #ifdef PROV_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 57, 112}, ++ #endif ++ #ifdef PROV_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 57, 154}, ++ #endif ++ #ifdef PROV_R_INVALID_SIGNATURE_SIZE ++ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE}, ++ #else ++ {"INVALID_SIGNATURE_SIZE", 57, 179}, ++ #endif ++ #ifdef PROV_R_INVALID_STATE ++ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE}, ++ #else ++ {"INVALID_STATE", 57, 212}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG ++ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG}, ++ #else ++ {"INVALID_TAG", 57, 110}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG_LENGTH ++ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH}, ++ #else ++ {"INVALID_TAG_LENGTH", 57, 118}, ++ #endif ++ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE ++ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, ++ #else ++ {"INVALID_THREAD_POOL_SIZE", 57, 234}, ++ #endif ++ #ifdef PROV_R_INVALID_UKM_LENGTH ++ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, ++ #else ++ {"INVALID_UKM_LENGTH", 57, 200}, ++ #endif ++ #ifdef PROV_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 57, 170}, ++ #endif ++ #ifdef PROV_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 57, 192}, ++ #endif ++ #ifdef PROV_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 57, 101}, ++ #endif ++ #ifdef PROV_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 57, 171}, ++ #endif ++ #ifdef PROV_R_LENGTH_TOO_LARGE ++ {"LENGTH_TOO_LARGE", ERR_LIB_PROV, PROV_R_LENGTH_TOO_LARGE}, ++ #else ++ {"LENGTH_TOO_LARGE", 57, 202}, ++ #endif ++ #ifdef PROV_R_MISMATCHING_DOMAIN_PARAMETERS ++ {"MISMATCHING_DOMAIN_PARAMETERS", ERR_LIB_PROV, PROV_R_MISMATCHING_DOMAIN_PARAMETERS}, ++ #else ++ {"MISMATCHING_DOMAIN_PARAMETERS", 57, 203}, ++ #endif ++ #ifdef PROV_R_MISSING_CEK_ALG ++ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG}, ++ #else ++ {"MISSING_CEK_ALG", 57, 144}, ++ #endif ++ #ifdef PROV_R_MISSING_CIPHER ++ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER}, ++ #else ++ {"MISSING_CIPHER", 57, 155}, ++ #endif ++ #ifdef PROV_R_MISSING_CONFIG_DATA ++ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA}, ++ #else ++ {"MISSING_CONFIG_DATA", 57, 213}, ++ #endif ++ #ifdef PROV_R_MISSING_CONSTANT ++ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT}, ++ #else ++ {"MISSING_CONSTANT", 57, 156}, ++ #endif ++ #ifdef PROV_R_MISSING_EID ++ {"MISSING_EID", ERR_LIB_PROV, PROV_R_MISSING_EID}, ++ #else ++ {"MISSING_EID", 57, 255}, ++ #endif ++ #ifdef PROV_R_MISSING_KEY ++ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY}, ++ #else ++ {"MISSING_KEY", 57, 128}, ++ #endif ++ #ifdef PROV_R_MISSING_MAC ++ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC}, ++ #else ++ {"MISSING_MAC", 57, 150}, ++ #endif ++ #ifdef PROV_R_MISSING_MESSAGE_DIGEST ++ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST}, ++ #else ++ {"MISSING_MESSAGE_DIGEST", 57, 129}, ++ #endif ++ #ifdef PROV_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 57, 209}, ++ #endif ++ #ifdef PROV_R_MISSING_PASS ++ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS}, ++ #else ++ {"MISSING_PASS", 57, 130}, ++ #endif ++ #ifdef PROV_R_MISSING_SALT ++ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT}, ++ #else ++ {"MISSING_SALT", 57, 131}, ++ #endif ++ #ifdef PROV_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 57, 132}, ++ #endif ++ #ifdef PROV_R_MISSING_SEED ++ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED}, ++ #else ++ {"MISSING_SEED", 57, 140}, ++ #endif ++ #ifdef PROV_R_MISSING_SESSION_ID ++ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID}, ++ #else ++ {"MISSING_SESSION_ID", 57, 133}, ++ #endif ++ #ifdef PROV_R_MISSING_TYPE ++ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE}, ++ #else ++ {"MISSING_TYPE", 57, 134}, ++ #endif ++ #ifdef PROV_R_MISSING_XCGHASH ++ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH}, ++ #else ++ {"MISSING_XCGHASH", 57, 135}, ++ #endif ++ #ifdef PROV_R_ML_DSA_NO_FORMAT ++ {"ML_DSA_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT}, ++ #else ++ {"ML_DSA_NO_FORMAT", 57, 245}, ++ #endif ++ #ifdef PROV_R_ML_KEM_NO_FORMAT ++ {"ML_KEM_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT}, ++ #else ++ {"ML_KEM_NO_FORMAT", 57, 246}, ++ #endif ++ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE ++ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE}, ++ #else ++ {"MODULE_INTEGRITY_FAILURE", 57, 214}, ++ #endif ++ #ifdef PROV_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 57, 221}, ++ #endif ++ #ifdef PROV_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 57, 220}, ++ #endif ++ #ifdef PROV_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 57, 193}, ++ #endif ++ #ifdef PROV_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 57, 226}, ++ #endif ++ #ifdef PROV_R_NOT_SUPPORTED ++ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED}, ++ #else ++ {"NOT_SUPPORTED", 57, 136}, ++ #endif ++ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, ++ #endif ++ #ifdef PROV_R_NO_INSTANCE_ALLOWED ++ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, ++ #else ++ {"NO_INSTANCE_ALLOWED", 57, 242}, ++ #endif ++ #ifdef PROV_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 57, 114}, ++ #endif ++ #ifdef PROV_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 57, 177}, ++ #endif ++ #ifdef PROV_R_NULL_LENGTH_POINTER ++ {"NULL_LENGTH_POINTER", ERR_LIB_PROV, PROV_R_NULL_LENGTH_POINTER}, ++ #else ++ {"NULL_LENGTH_POINTER", 57, 247}, ++ #endif ++ #ifdef PROV_R_NULL_OUTPUT_BUFFER ++ {"NULL_OUTPUT_BUFFER", ERR_LIB_PROV, PROV_R_NULL_OUTPUT_BUFFER}, ++ #else ++ {"NULL_OUTPUT_BUFFER", 57, 248}, ++ #endif ++ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER ++ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, ++ #else ++ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, ++ #endif ++ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178}, ++ #endif ++ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL ++ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL}, ++ #else ++ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS}, ++ #else ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED}, ++ #else ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187}, ++ #endif ++ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 57, 182}, ++ #endif ++ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 57, 194}, ++ #endif ++ #ifdef PROV_R_PASSWORD_STRENGTH_TOO_WEAK ++ {"PASSWORD_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PASSWORD_STRENGTH_TOO_WEAK}, ++ #else ++ {"PASSWORD_STRENGTH_TOO_WEAK", 57, 254}, ++ #endif ++ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 57, 219}, ++ #endif ++ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 57, 195}, ++ #endif ++ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 57, 172}, ++ #endif ++ #ifdef PROV_R_REPEATED_PARAMETER ++ {"REPEATED_PARAMETER", ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER}, ++ #else ++ {"REPEATED_PARAMETER", 57, 252}, ++ #endif ++ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196}, ++ #endif ++ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER ++ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER}, ++ #else ++ {"REQUIRE_CTR_MODE_CIPHER", 57, 206}, ++ #endif ++ #ifdef PROV_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 57, 197}, ++ #endif ++ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222}, ++ #endif ++ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT}, ++ #else ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_KAT_FAILURE ++ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE}, ++ #else ++ {"SELF_TEST_KAT_FAILURE", 57, 215}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_POST_FAILURE ++ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE}, ++ #else ++ {"SELF_TEST_POST_FAILURE", 57, 216}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_NEEDED ++ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED}, ++ #else ++ {"TAG_NOT_NEEDED", 57, 120}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_SET ++ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET}, ++ #else ++ {"TAG_NOT_SET", 57, 119}, ++ #endif ++ #ifdef PROV_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 57, 126}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS ++ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS}, ++ #else ++ {"UNABLE_TO_FIND_CIPHERS", 57, 207}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE ++ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE}, ++ #else ++ {"UNABLE_TO_GET_PASSPHRASE", 57, 159}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS ++ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS}, ++ #else ++ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256 ++ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256}, ++ #else ++ {"UNABLE_TO_LOAD_SHA256", 57, 147}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 57, 201}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_RESEED ++ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED}, ++ #else ++ {"UNABLE_TO_RESEED", 57, 204}, ++ #endif ++ #ifdef PROV_R_UNEXPECTED_KEY_PARAMETERS ++ {"UNEXPECTED_KEY_PARAMETERS", ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS}, ++ #else ++ {"UNEXPECTED_KEY_PARAMETERS", 57, 249}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_CEK_ALG ++ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG}, ++ #else ++ {"UNSUPPORTED_CEK_ALG", 57, 145}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 57, 153}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE ++ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE}, ++ #else ++ {"UNSUPPORTED_MAC_TYPE", 57, 137}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_SELECTION ++ {"UNSUPPORTED_SELECTION", ERR_LIB_PROV, PROV_R_UNSUPPORTED_SELECTION}, ++ #else ++ {"UNSUPPORTED_SELECTION", 57, 250}, ++ #endif ++ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER ++ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, ++ #else ++ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, ++ #endif ++ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 57, 223}, ++ #endif ++ #ifdef PROV_R_VALUE_ERROR ++ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR}, ++ #else ++ {"VALUE_ERROR", 57, 138}, ++ #endif ++ #ifdef PROV_R_WRONG_CIPHERTEXT_SIZE ++ {"WRONG_CIPHERTEXT_SIZE", ERR_LIB_PROV, PROV_R_WRONG_CIPHERTEXT_SIZE}, ++ #else ++ {"WRONG_CIPHERTEXT_SIZE", 57, 251}, ++ #endif ++ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107}, ++ #endif ++ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE ++ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE}, ++ #else ++ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139}, ++ #endif ++ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED ++ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED}, ++ #else ++ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183}, ++ #endif ++ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148}, ++ #endif ++ #ifdef PROV_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 57, 149}, ++ #endif ++ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102}, ++ #endif ++ #ifdef RAND_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 36, 103}, ++ #endif ++ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE ++ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE}, ++ #else ++ {"ARGUMENT_OUT_OF_RANGE", 36, 105}, ++ #endif ++ #ifdef RAND_R_CANNOT_OPEN_FILE ++ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE}, ++ #else ++ {"CANNOT_OPEN_FILE", 36, 121}, ++ #endif ++ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED ++ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED}, ++ #else ++ {"DRBG_ALREADY_INITIALIZED", 36, 129}, ++ #endif ++ #ifdef RAND_R_DRBG_NOT_INITIALISED ++ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED}, ++ #else ++ {"DRBG_NOT_INITIALISED", 36, 104}, ++ #endif ++ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG ++ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG}, ++ #else ++ {"ENTROPY_INPUT_TOO_LONG", 36, 106}, ++ #endif ++ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE ++ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE}, ++ #else ++ {"ENTROPY_OUT_OF_RANGE", 36, 124}, ++ #endif ++ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED}, ++ #else ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127}, ++ #endif ++ #ifdef RAND_R_ERROR_INITIALISING_DRBG ++ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG}, ++ #else ++ {"ERROR_INITIALISING_DRBG", 36, 107}, ++ #endif ++ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 36, 108}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT}, ++ #else ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 36, 110}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 36, 111}, ++ #endif ++ #ifdef RAND_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 36, 126}, ++ #endif ++ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED ++ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED}, ++ #else ++ {"FUNC_NOT_IMPLEMENTED", 36, 101}, ++ #endif ++ #ifdef RAND_R_FWRITE_ERROR ++ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR}, ++ #else ++ {"FWRITE_ERROR", 36, 123}, ++ #endif ++ #ifdef RAND_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 36, 112}, ++ #endif ++ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139}, ++ #endif ++ #ifdef RAND_R_INTERNAL_ERROR ++ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR}, ++ #else ++ {"INTERNAL_ERROR", 36, 113}, ++ #endif ++ #ifdef RAND_R_INVALID_PROPERTY_QUERY ++ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, ++ #else ++ {"INVALID_PROPERTY_QUERY", 36, 137}, ++ #endif ++ #ifdef RAND_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 36, 114}, ++ #endif ++ #ifdef RAND_R_NOT_A_REGULAR_FILE ++ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE}, ++ #else ++ {"NOT_A_REGULAR_FILE", 36, 122}, ++ #endif ++ #ifdef RAND_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 36, 115}, ++ #endif ++ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED}, ++ #else ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128}, ++ #endif ++ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 36, 130}, ++ #endif ++ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 36, 131}, ++ #endif ++ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 36, 116}, ++ #endif ++ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED}, ++ #else ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133}, ++ #endif ++ #ifdef RAND_R_PRNG_NOT_SEEDED ++ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED}, ++ #else ++ {"PRNG_NOT_SEEDED", 36, 100}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_IS_EMPTY ++ {"RANDOM_POOL_IS_EMPTY", ERR_LIB_RAND, RAND_R_RANDOM_POOL_IS_EMPTY}, ++ #else ++ {"RANDOM_POOL_IS_EMPTY", 36, 142}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_OVERFLOW ++ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW}, ++ #else ++ {"RANDOM_POOL_OVERFLOW", 36, 125}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW ++ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW}, ++ #else ++ {"RANDOM_POOL_UNDERFLOW", 36, 134}, ++ #endif ++ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117}, ++ #endif ++ #ifdef RAND_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 36, 118}, ++ #endif ++ #ifdef RAND_R_SELFTEST_FAILURE ++ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE}, ++ #else ++ {"SELFTEST_FAILURE", 36, 119}, ++ #endif ++ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED ++ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED}, ++ #else ++ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135}, ++ #endif ++ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED ++ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED}, ++ #else ++ {"TOO_MUCH_NONCE_REQUESTED", 36, 136}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG ++ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG}, ++ #else ++ {"UNABLE_TO_CREATE_DRBG", 36, 143}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG ++ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG}, ++ #else ++ {"UNABLE_TO_FETCH_DRBG", 36, 144}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER}, ++ #else ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 36, 140}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS ++ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS}, ++ #else ++ {"UNSUPPORTED_DRBG_FLAGS", 36, 132}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE ++ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE}, ++ #else ++ {"UNSUPPORTED_DRBG_TYPE", 36, 120}, ++ #endif ++ #ifdef RSA_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 4, 100}, ++ #endif ++ #ifdef RSA_R_BAD_E_VALUE ++ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE}, ++ #else ++ {"BAD_E_VALUE", 4, 101}, ++ #endif ++ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT ++ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT}, ++ #else ++ {"BAD_FIXED_HEADER_DECRYPT", 4, 102}, ++ #endif ++ #ifdef RSA_R_BAD_PAD_BYTE_COUNT ++ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT}, ++ #else ++ {"BAD_PAD_BYTE_COUNT", 4, 103}, ++ #endif ++ #ifdef RSA_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 4, 104}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01 ++ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_01", 4, 106}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02 ++ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_02", 4, 107}, ++ #endif ++ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN ++ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN}, ++ #else ++ {"DATA_GREATER_THAN_MOD_LEN", 4, 108}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE ++ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE}, ++ #else ++ {"DATA_TOO_LARGE", 4, 109}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS ++ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS}, ++ #else ++ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL ++ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL}, ++ #else ++ {"DATA_TOO_SMALL", 4, 111}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122}, ++ #endif ++ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH ++ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH}, ++ #else ++ {"DIGEST_DOES_NOT_MATCH", 4, 158}, ++ #endif ++ #ifdef RSA_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 4, 145}, ++ #endif ++ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}, ++ #else ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112}, ++ #endif ++ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D ++ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124}, ++ #endif ++ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D ++ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125}, ++ #endif ++ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1 ++ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1}, ++ #else ++ {"D_E_NOT_CONGRUENT_TO_1", 4, 123}, ++ #endif ++ #ifdef RSA_R_FIRST_OCTET_INVALID ++ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID}, ++ #else ++ {"FIRST_OCTET_INVALID", 4, 133}, ++ #endif ++ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 4, 157}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 4, 143}, ++ #endif ++ #ifdef RSA_R_INVALID_HEADER ++ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER}, ++ #else ++ {"INVALID_HEADER", 4, 137}, ++ #endif ++ #ifdef RSA_R_INVALID_KEYPAIR ++ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR}, ++ #else ++ {"INVALID_KEYPAIR", 4, 171}, ++ #endif ++ #ifdef RSA_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 4, 173}, ++ #endif ++ #ifdef RSA_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 4, 160}, ++ #endif ++ #ifdef RSA_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 4, 181}, ++ #endif ++ #ifdef RSA_R_INVALID_MESSAGE_LENGTH ++ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH}, ++ #else ++ {"INVALID_MESSAGE_LENGTH", 4, 131}, ++ #endif ++ #ifdef RSA_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 4, 156}, ++ #endif ++ #ifdef RSA_R_INVALID_MODULUS ++ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS}, ++ #else ++ {"INVALID_MODULUS", 4, 174}, ++ #endif ++ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY ++ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY}, ++ #else ++ {"INVALID_MULTI_PRIME_KEY", 4, 167}, ++ #endif ++ #ifdef RSA_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 4, 161}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING ++ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING}, ++ #else ++ {"INVALID_PADDING", 4, 138}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 4, 141}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_PARAMETERS ++ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS}, ++ #else ++ {"INVALID_PSS_PARAMETERS", 4, 149}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_SALTLEN ++ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN}, ++ #else ++ {"INVALID_PSS_SALTLEN", 4, 146}, ++ #endif ++ #ifdef RSA_R_INVALID_REQUEST ++ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST}, ++ #else ++ {"INVALID_REQUEST", 4, 175}, ++ #endif ++ #ifdef RSA_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 4, 150}, ++ #endif ++ #ifdef RSA_R_INVALID_STRENGTH ++ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH}, ++ #else ++ {"INVALID_STRENGTH", 4, 176}, ++ #endif ++ #ifdef RSA_R_INVALID_TRAILER ++ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER}, ++ #else ++ {"INVALID_TRAILER", 4, 139}, ++ #endif ++ #ifdef RSA_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 4, 142}, ++ #endif ++ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q ++ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q}, ++ #else ++ {"IQMP_NOT_INVERSE_OF_Q", 4, 126}, ++ #endif ++ #ifdef RSA_R_KEY_PRIME_NUM_INVALID ++ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID}, ++ #else ++ {"KEY_PRIME_NUM_INVALID", 4, 165}, ++ #endif ++ #ifdef RSA_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 4, 120}, ++ #endif ++ #ifdef RSA_R_LAST_OCTET_INVALID ++ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID}, ++ #else ++ {"LAST_OCTET_INVALID", 4, 134}, ++ #endif ++ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED ++ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED}, ++ #else ++ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152}, ++ #endif ++ #ifdef RSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 4, 179}, ++ #endif ++ #ifdef RSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 4, 105}, ++ #endif ++ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R}, ++ #else ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168}, ++ #endif ++ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D}, ++ #else ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169}, ++ #endif ++ #ifdef RSA_R_MP_R_NOT_PRIME ++ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME}, ++ #else ++ {"MP_R_NOT_PRIME", 4, 170}, ++ #endif ++ #ifdef RSA_R_NO_PUBLIC_EXPONENT ++ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT}, ++ #else ++ {"NO_PUBLIC_EXPONENT", 4, 140}, ++ #endif ++ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING ++ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING}, ++ #else ++ {"NULL_BEFORE_BLOCK_MISSING", 4, 113}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES}, ++ #else ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q ++ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q}, ++ #else ++ {"N_DOES_NOT_EQUAL_P_Q", 4, 127}, ++ #endif ++ #ifdef RSA_R_OAEP_DECODING_ERROR ++ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR}, ++ #else ++ {"OAEP_DECODING_ERROR", 4, 121}, ++ #endif ++ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148}, ++ #endif ++ #ifdef RSA_R_PADDING_CHECK_FAILED ++ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED}, ++ #else ++ {"PADDING_CHECK_FAILED", 4, 114}, ++ #endif ++ #ifdef RSA_R_PAIRWISE_TEST_FAILURE ++ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE}, ++ #else ++ {"PAIRWISE_TEST_FAILURE", 4, 177}, ++ #endif ++ #ifdef RSA_R_PKCS_DECODING_ERROR ++ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR}, ++ #else ++ {"PKCS_DECODING_ERROR", 4, 159}, ++ #endif ++ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 4, 164}, ++ #endif ++ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE ++ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE}, ++ #else ++ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178}, ++ #endif ++ #ifdef RSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 4, 128}, ++ #endif ++ #ifdef RSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 4, 129}, ++ #endif ++ #ifdef RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", ERR_LIB_RSA, RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT}, ++ #else ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", 4, 180}, ++ #endif ++ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED ++ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED}, ++ #else ++ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130}, ++ #endif ++ #ifdef RSA_R_SLEN_CHECK_FAILED ++ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED}, ++ #else ++ {"SLEN_CHECK_FAILED", 4, 136}, ++ #endif ++ #ifdef RSA_R_SLEN_RECOVERY_FAILED ++ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED}, ++ #else ++ {"SLEN_RECOVERY_FAILED", 4, 135}, ++ #endif ++ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE ++ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE}, ++ #else ++ {"UNKNOWN_ALGORITHM_TYPE", 4, 117}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 4, 166}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_MASK_DIGEST ++ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST}, ++ #else ++ {"UNKNOWN_MASK_DIGEST", 4, 151}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_PADDING_TYPE ++ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE}, ++ #else ++ {"UNKNOWN_PADDING_TYPE", 4, 118}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 4, 163}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM ++ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER ++ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER}, ++ #else ++ {"UNSUPPORTED_MASK_PARAMETER", 4, 154}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE ++ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155}, ++ #endif ++ #ifdef RSA_R_VALUE_MISSING ++ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING}, ++ #else ++ {"VALUE_MISSING", 4, 147}, ++ #endif ++ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 4, 119}, ++ #endif ++ #ifdef SM2_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 53, 100}, ++ #endif ++ #ifdef SM2_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 53, 101}, ++ #endif ++ #ifdef SM2_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 53, 107}, ++ #endif ++ #ifdef SM2_R_DIST_ID_TOO_LARGE ++ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE}, ++ #else ++ {"DIST_ID_TOO_LARGE", 53, 110}, ++ #endif ++ #ifdef SM2_R_ID_NOT_SET ++ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET}, ++ #else ++ {"ID_NOT_SET", 53, 112}, ++ #endif ++ #ifdef SM2_R_ID_TOO_LARGE ++ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE}, ++ #else ++ {"ID_TOO_LARGE", 53, 111}, ++ #endif ++ #ifdef SM2_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 53, 108}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 53, 102}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 53, 103}, ++ #endif ++ #ifdef SM2_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 53, 104}, ++ #endif ++ #ifdef SM2_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 53, 105}, ++ #endif ++ #ifdef SM2_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 53, 113}, ++ #endif ++ #ifdef SM2_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 53, 109}, ++ #endif ++ #ifdef SM2_R_USER_ID_TOO_LARGE ++ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE}, ++ #else ++ {"USER_ID_TOO_LARGE", 53, 106}, ++ #endif ++ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY}, ++ #else ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291}, ++ #endif ++ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE ++ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE}, ++ #else ++ {"APP_DATA_IN_HANDSHAKE", 20, 100}, ++ #endif ++ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}, ++ #else ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272}, ++ #endif ++ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE}, ++ #else ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, ++ #endif ++ #ifdef SSL_R_BAD_CERTIFICATE ++ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, ++ #else ++ {"BAD_CERTIFICATE", 20, 348}, ++ #endif ++ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC ++ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, ++ #else ++ {"BAD_CHANGE_CIPHER_SPEC", 20, 103}, ++ #endif ++ #ifdef SSL_R_BAD_CIPHER ++ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER}, ++ #else ++ {"BAD_CIPHER", 20, 186}, ++ #endif ++ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM ++ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, ++ #else ++ {"BAD_COMPRESSION_ALGORITHM", 20, 326}, ++ #endif ++ #ifdef SSL_R_BAD_DATA ++ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, ++ #else ++ {"BAD_DATA", 20, 390}, ++ #endif ++ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK ++ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}, ++ #else ++ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106}, ++ #endif ++ #ifdef SSL_R_BAD_DECOMPRESSION ++ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION}, ++ #else ++ {"BAD_DECOMPRESSION", 20, 107}, ++ #endif ++ #ifdef SSL_R_BAD_DH_VALUE ++ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE}, ++ #else ++ {"BAD_DH_VALUE", 20, 102}, ++ #endif ++ #ifdef SSL_R_BAD_DIGEST_LENGTH ++ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH}, ++ #else ++ {"BAD_DIGEST_LENGTH", 20, 111}, ++ #endif ++ #ifdef SSL_R_BAD_EARLY_DATA ++ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA}, ++ #else ++ {"BAD_EARLY_DATA", 20, 233}, ++ #endif ++ #ifdef SSL_R_BAD_ECC_CERT ++ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT}, ++ #else ++ {"BAD_ECC_CERT", 20, 304}, ++ #endif ++ #ifdef SSL_R_BAD_ECHCONFIG_EXTENSION ++ {"BAD_ECHCONFIG_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_ECHCONFIG_EXTENSION}, ++ #else ++ {"BAD_ECHCONFIG_EXTENSION", 20, 425}, ++ #endif ++ #ifdef SSL_R_BAD_ECPOINT ++ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT}, ++ #else ++ {"BAD_ECPOINT", 20, 306}, ++ #endif ++ #ifdef SSL_R_BAD_EXTENSION ++ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION}, ++ #else ++ {"BAD_EXTENSION", 20, 110}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH ++ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH}, ++ #else ++ {"BAD_HANDSHAKE_LENGTH", 20, 332}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_STATE ++ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE}, ++ #else ++ {"BAD_HANDSHAKE_STATE", 20, 236}, ++ #endif ++ #ifdef SSL_R_BAD_HELLO_REQUEST ++ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST}, ++ #else ++ {"BAD_HELLO_REQUEST", 20, 105}, ++ #endif ++ #ifdef SSL_R_BAD_HRR_VERSION ++ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION}, ++ #else ++ {"BAD_HRR_VERSION", 20, 263}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_SHARE ++ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE}, ++ #else ++ {"BAD_KEY_SHARE", 20, 108}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_UPDATE ++ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE}, ++ #else ++ {"BAD_KEY_UPDATE", 20, 122}, ++ #endif ++ #ifdef SSL_R_BAD_LEGACY_VERSION ++ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION}, ++ #else ++ {"BAD_LEGACY_VERSION", 20, 292}, ++ #endif ++ #ifdef SSL_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 20, 271}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET ++ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET}, ++ #else ++ {"BAD_PACKET", 20, 240}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET_LENGTH ++ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH}, ++ #else ++ {"BAD_PACKET_LENGTH", 20, 115}, ++ #endif ++ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER ++ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER}, ++ #else ++ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116}, ++ #endif ++ #ifdef SSL_R_BAD_PSK ++ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK}, ++ #else ++ {"BAD_PSK", 20, 219}, ++ #endif ++ #ifdef SSL_R_BAD_PSK_IDENTITY ++ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY}, ++ #else ++ {"BAD_PSK_IDENTITY", 20, 114}, ++ #endif ++ #ifdef SSL_R_BAD_RECORD_TYPE ++ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE}, ++ #else ++ {"BAD_RECORD_TYPE", 20, 443}, ++ #endif ++ #ifdef SSL_R_BAD_RSA_ENCRYPT ++ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT}, ++ #else ++ {"BAD_RSA_ENCRYPT", 20, 119}, ++ #endif ++ #ifdef SSL_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 20, 123}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_A_LENGTH ++ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH}, ++ #else ++ {"BAD_SRP_A_LENGTH", 20, 347}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_PARAMETERS ++ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS}, ++ #else ++ {"BAD_SRP_PARAMETERS", 20, 371}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_MKI_VALUE ++ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE}, ++ #else ++ {"BAD_SRTP_MKI_VALUE", 20, 352}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353}, ++ #endif ++ #ifdef SSL_R_BAD_SSL_FILETYPE ++ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE}, ++ #else ++ {"BAD_SSL_FILETYPE", 20, 124}, ++ #endif ++ #ifdef SSL_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 20, 384}, ++ #endif ++ #ifdef SSL_R_BAD_WRITE_RETRY ++ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY}, ++ #else ++ {"BAD_WRITE_RETRY", 20, 127}, ++ #endif ++ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY ++ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY}, ++ #else ++ {"BINDER_DOES_NOT_VERIFY", 20, 253}, ++ #endif ++ #ifdef SSL_R_BIO_NOT_SET ++ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET}, ++ #else ++ {"BIO_NOT_SET", 20, 128}, ++ #endif ++ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG ++ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}, ++ #else ++ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129}, ++ #endif ++ #ifdef SSL_R_BN_LIB ++ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB}, ++ #else ++ {"BN_LIB", 20, 130}, ++ #endif ++ #ifdef SSL_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 20, 234}, ++ #endif ++ #ifdef SSL_R_CANNOT_CHANGE_CIPHER ++ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER}, ++ #else ++ {"CANNOT_CHANGE_CIPHER", 20, 109}, ++ #endif ++ #ifdef SSL_R_CANNOT_GET_GROUP_NAME ++ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME}, ++ #else ++ {"CANNOT_GET_GROUP_NAME", 20, 299}, ++ #endif ++ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH ++ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH}, ++ #else ++ {"CA_DN_LENGTH_MISMATCH", 20, 131}, ++ #endif ++ #ifdef SSL_R_CA_KEY_TOO_SMALL ++ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL}, ++ #else ++ {"CA_KEY_TOO_SMALL", 20, 397}, ++ #endif ++ #ifdef SSL_R_CA_MD_TOO_WEAK ++ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK}, ++ #else ++ {"CA_MD_TOO_WEAK", 20, 398}, ++ #endif ++ #ifdef SSL_R_CCS_RECEIVED_EARLY ++ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY}, ++ #else ++ {"CCS_RECEIVED_EARLY", 20, 133}, ++ #endif ++ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED ++ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFY_FAILED", 20, 134}, ++ #endif ++ #ifdef SSL_R_CERT_CB_ERROR ++ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR}, ++ #else ++ {"CERT_CB_ERROR", 20, 377}, ++ #endif ++ #ifdef SSL_R_CERT_LENGTH_MISMATCH ++ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH}, ++ #else ++ {"CERT_LENGTH_MISMATCH", 20, 135}, ++ #endif ++ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED}, ++ #else ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218}, ++ #endif ++ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH ++ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH}, ++ #else ++ {"CIPHER_CODE_WRONG_LENGTH", 20, 137}, ++ #endif ++ #ifdef SSL_R_CLIENTHELLO_TLSEXT ++ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT}, ++ #else ++ {"CLIENTHELLO_TLSEXT", 20, 226}, ++ #endif ++ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG ++ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG}, ++ #else ++ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_DISABLED ++ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED}, ++ #else ++ {"COMPRESSION_DISABLED", 20, 343}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_FAILURE ++ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE}, ++ #else ++ {"COMPRESSION_FAILURE", 20, 141}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE}, ++ #else ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR ++ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR}, ++ #else ++ {"COMPRESSION_LIBRARY_ERROR", 20, 142}, ++ #endif ++ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET ++ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET}, ++ #else ++ {"CONNECTION_TYPE_NOT_SET", 20, 144}, ++ #endif ++ #ifdef SSL_R_CONN_USE_ONLY ++ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, ++ #else ++ {"CONN_USE_ONLY", 20, 356}, ++ #endif ++ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED ++ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, ++ #else ++ {"CONTEXT_NOT_DANE_ENABLED", 20, 167}, ++ #endif ++ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE ++ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE}, ++ #else ++ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400}, ++ #endif ++ #ifdef SSL_R_COOKIE_MISMATCH ++ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH}, ++ #else ++ {"COOKIE_MISMATCH", 20, 308}, ++ #endif ++ #ifdef SSL_R_COPY_PARAMETERS_FAILED ++ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED}, ++ #else ++ {"COPY_PARAMETERS_FAILED", 20, 296}, ++ #endif ++ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED}, ++ #else ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206}, ++ #endif ++ #ifdef SSL_R_DANE_ALREADY_ENABLED ++ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED}, ++ #else ++ {"DANE_ALREADY_ENABLED", 20, 172}, ++ #endif ++ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL}, ++ #else ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173}, ++ #endif ++ #ifdef SSL_R_DANE_NOT_ENABLED ++ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED}, ++ #else ++ {"DANE_NOT_ENABLED", 20, 175}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE ++ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH ++ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE ++ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE}, ++ #else ++ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY ++ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY}, ++ #else ++ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR ++ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR}, ++ #else ++ {"DANE_TLSA_BAD_SELECTOR", 20, 202}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_NULL_DATA ++ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA}, ++ #else ++ {"DANE_TLSA_NULL_DATA", 20, 203}, ++ #endif ++ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED ++ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}, ++ #else ++ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145}, ++ #endif ++ #ifdef SSL_R_DATA_LENGTH_TOO_LONG ++ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG}, ++ #else ++ {"DATA_LENGTH_TOO_LONG", 20, 146}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED ++ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED}, ++ #else ++ {"DECRYPTION_FAILED", 20, 147}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC}, ++ #else ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281}, ++ #endif ++ #ifdef SSL_R_DH_KEY_TOO_SMALL ++ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL}, ++ #else ++ {"DH_KEY_TOO_SMALL", 20, 394}, ++ #endif ++ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}, ++ #else ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148}, ++ #endif ++ #ifdef SSL_R_DIGEST_CHECK_FAILED ++ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED}, ++ #else ++ {"DIGEST_CHECK_FAILED", 20, 149}, ++ #endif ++ #ifdef SSL_R_DOMAIN_USE_ONLY ++ {"DOMAIN_USE_ONLY", ERR_LIB_SSL, SSL_R_DOMAIN_USE_ONLY}, ++ #else ++ {"DOMAIN_USE_ONLY", 20, 422}, ++ #endif ++ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG ++ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG}, ++ #else ++ {"DTLS_MESSAGE_TOO_BIG", 20, 334}, ++ #endif ++ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID ++ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID}, ++ #else ++ {"DUPLICATE_COMPRESSION_ID", 20, 309}, ++ #endif ++ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING ++ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING}, ++ #else ++ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318}, ++ #endif ++ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE}, ++ #else ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374}, ++ #endif ++ #ifdef SSL_R_ECH_DECODE_ERROR ++ {"ECH_DECODE_ERROR", ERR_LIB_SSL, SSL_R_ECH_DECODE_ERROR}, ++ #else ++ {"ECH_DECODE_ERROR", 20, 426}, ++ #endif ++ #ifdef SSL_R_ECH_REQUIRED ++ {"ECH_REQUIRED", ERR_LIB_SSL, SSL_R_ECH_REQUIRED}, ++ #else ++ {"ECH_REQUIRED", 20, 424}, ++ #endif ++ #ifdef SSL_R_EE_KEY_TOO_SMALL ++ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL}, ++ #else ++ {"EE_KEY_TOO_SMALL", 20, 399}, ++ #endif ++ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY ++ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, ++ #else ++ {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, ++ #endif ++ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354}, ++ #endif ++ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG ++ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG}, ++ #else ++ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}, ++ #else ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, ++ #else ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, ++ #endif ++ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, ++ #else ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204}, ++ #endif ++ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE}, ++ #else ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194}, ++ #endif ++ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE ++ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE}, ++ #else ++ {"EXCESSIVE_MESSAGE_SIZE", 20, 152}, ++ #endif ++ #ifdef SSL_R_EXTENSION_NOT_RECEIVED ++ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED}, ++ #else ++ {"EXTENSION_NOT_RECEIVED", 20, 279}, ++ #endif ++ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE ++ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE}, ++ #else ++ {"EXTRA_DATA_IN_MESSAGE", 20, 153}, ++ #endif ++ #ifdef SSL_R_EXT_LENGTH_MISMATCH ++ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH}, ++ #else ++ {"EXT_LENGTH_MISMATCH", 20, 163}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 20, 316}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_INIT_ASYNC ++ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, ++ #else ++ {"FAILED_TO_INIT_ASYNC", 20, 405}, ++ #endif ++ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, ++ #else ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, ++ #endif ++ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE ++ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, ++ #else ++ {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, ++ #endif ++ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO ++ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, ++ #else ++ {"FRAGMENTED_CLIENT_HELLO", 20, 401}, ++ #endif ++ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS ++ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS}, ++ #else ++ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154}, ++ #endif ++ #ifdef SSL_R_HTTPS_PROXY_REQUEST ++ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST}, ++ #else ++ {"HTTPS_PROXY_REQUEST", 20, 155}, ++ #endif ++ #ifdef SSL_R_HTTP_REQUEST ++ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST}, ++ #else ++ {"HTTP_REQUEST", 20, 156}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION ++ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION}, ++ #else ++ {"ILLEGAL_POINT_COMPRESSION", 20, 162}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST ++ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST}, ++ #else ++ {"ILLEGAL_SUITEB_DIGEST", 20, 380}, ++ #endif ++ #ifdef SSL_R_INAPPROPRIATE_FALLBACK ++ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"INAPPROPRIATE_FALLBACK", 20, 373}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_COMPRESSION ++ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION}, ++ #else ++ {"INCONSISTENT_COMPRESSION", 20, 340}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN ++ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI ++ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EXTMS ++ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS}, ++ #else ++ {"INCONSISTENT_EXTMS", 20, 104}, ++ #endif ++ #ifdef SSL_R_INSUFFICIENT_SECURITY ++ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY}, ++ #else ++ {"INSUFFICIENT_SECURITY", 20, 241}, ++ #endif ++ #ifdef SSL_R_INVALID_ALERT ++ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT}, ++ #else ++ {"INVALID_ALERT", 20, 205}, ++ #endif ++ #ifdef SSL_R_INVALID_CCS_MESSAGE ++ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE}, ++ #else ++ {"INVALID_CCS_MESSAGE", 20, 260}, ++ #endif ++ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG ++ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG}, ++ #else ++ {"INVALID_CERTIFICATE_OR_ALG", 20, 238}, ++ #endif ++ #ifdef SSL_R_INVALID_COMMAND ++ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND}, ++ #else ++ {"INVALID_COMMAND", 20, 280}, ++ #endif ++ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM ++ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM}, ++ #else ++ {"INVALID_COMPRESSION_ALGORITHM", 20, 341}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIG ++ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG}, ++ #else ++ {"INVALID_CONFIG", 20, 283}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIGURATION_NAME ++ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME}, ++ #else ++ {"INVALID_CONFIGURATION_NAME", 20, 113}, ++ #endif ++ #ifdef SSL_R_INVALID_CONTEXT ++ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT}, ++ #else ++ {"INVALID_CONTEXT", 20, 282}, ++ #endif ++ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE ++ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE}, ++ #else ++ {"INVALID_CT_VALIDATION_TYPE", 20, 212}, ++ #endif ++ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE ++ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE}, ++ #else ++ {"INVALID_KEY_UPDATE_TYPE", 20, 120}, ++ #endif ++ #ifdef SSL_R_INVALID_MAX_EARLY_DATA ++ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA}, ++ #else ++ {"INVALID_MAX_EARLY_DATA", 20, 174}, ++ #endif ++ #ifdef SSL_R_INVALID_NULL_CMD_NAME ++ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME}, ++ #else ++ {"INVALID_NULL_CMD_NAME", 20, 385}, ++ #endif ++ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY ++ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, ++ #else ++ {"INVALID_RAW_PUBLIC_KEY", 20, 350}, ++ #endif ++ #ifdef SSL_R_INVALID_RECORD ++ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, ++ #else ++ {"INVALID_RECORD", 20, 317}, ++ #endif ++ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER ++ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, ++ #else ++ {"INVALID_SEQUENCE_NUMBER", 20, 402}, ++ #endif ++ #ifdef SSL_R_INVALID_SERVERINFO_DATA ++ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA}, ++ #else ++ {"INVALID_SERVERINFO_DATA", 20, 388}, ++ #endif ++ #ifdef SSL_R_INVALID_SESSION_ID ++ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID}, ++ #else ++ {"INVALID_SESSION_ID", 20, 999}, ++ #endif ++ #ifdef SSL_R_INVALID_SRP_USERNAME ++ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME}, ++ #else ++ {"INVALID_SRP_USERNAME", 20, 357}, ++ #endif ++ #ifdef SSL_R_INVALID_STATUS_RESPONSE ++ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE}, ++ #else ++ {"INVALID_STATUS_RESPONSE", 20, 328}, ++ #endif ++ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH ++ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH}, ++ #else ++ {"INVALID_TICKET_KEYS_LENGTH", 20, 325}, ++ #endif ++ #ifdef SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", ERR_LIB_SSL, SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED}, ++ #else ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", 20, 333}, ++ #endif ++ #ifdef SSL_R_LENGTH_MISMATCH ++ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH}, ++ #else ++ {"LENGTH_MISMATCH", 20, 159}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 20, 404}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_SHORT ++ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT}, ++ #else ++ {"LENGTH_TOO_SHORT", 20, 160}, ++ #endif ++ #ifdef SSL_R_LIBRARY_BUG ++ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG}, ++ #else ++ {"LIBRARY_BUG", 20, 274}, ++ #endif ++ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS ++ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, ++ #endif ++ #ifdef SSL_R_LISTENER_USE_ONLY ++ {"LISTENER_USE_ONLY", ERR_LIB_SSL, SSL_R_LISTENER_USE_ONLY}, ++ #else ++ {"LISTENER_USE_ONLY", 20, 421}, ++ #endif ++ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, ++ #else ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, ++ #endif ++ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT ++ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, ++ #else ++ {"MISSING_DSA_SIGNING_CERT", 20, 165}, ++ #endif ++ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT ++ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT}, ++ #else ++ {"MISSING_ECDSA_SIGNING_CERT", 20, 381}, ++ #endif ++ #ifdef SSL_R_MISSING_FATAL ++ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL}, ++ #else ++ {"MISSING_FATAL", 20, 256}, ++ #endif ++ #ifdef SSL_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 20, 290}, ++ #endif ++ #ifdef SSL_R_MISSING_PSK_KEX_MODES_EXTENSION ++ {"MISSING_PSK_KEX_MODES_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION}, ++ #else ++ {"MISSING_PSK_KEX_MODES_EXTENSION", 20, 310}, ++ #endif ++ #ifdef SSL_R_MISSING_QUIC_TLS_FUNCTIONS ++ {"MISSING_QUIC_TLS_FUNCTIONS", ERR_LIB_SSL, SSL_R_MISSING_QUIC_TLS_FUNCTIONS}, ++ #else ++ {"MISSING_QUIC_TLS_FUNCTIONS", 20, 423}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_CERTIFICATE ++ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE}, ++ #else ++ {"MISSING_RSA_CERTIFICATE", 20, 168}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT ++ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT}, ++ #else ++ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT ++ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT}, ++ #else ++ {"MISSING_RSA_SIGNING_CERT", 20, 170}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION ++ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION}, ++ #else ++ {"MISSING_SIGALGS_EXTENSION", 20, 112}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGNING_CERT ++ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT}, ++ #else ++ {"MISSING_SIGNING_CERT", 20, 221}, ++ #endif ++ #ifdef SSL_R_MISSING_SRP_PARAM ++ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM}, ++ #else ++ {"MISSING_SRP_PARAM", 20, 358}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_DH_KEY ++ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, ++ #else ++ {"MISSING_TMP_DH_KEY", 20, 171}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_ECDH_KEY ++ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY}, ++ #else ++ {"MISSING_TMP_ECDH_KEY", 20, 311}, ++ #endif ++ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA}, ++ #else ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293}, ++ #endif ++ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY ++ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY}, ++ #else ++ {"NOT_ON_RECORD_BOUNDARY", 20, 182}, ++ #endif ++ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE ++ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE}, ++ #else ++ {"NOT_REPLACING_CERTIFICATE", 20, 289}, ++ #endif ++ #ifdef SSL_R_NOT_SERVER ++ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER}, ++ #else ++ {"NOT_SERVER", 20, 284}, ++ #endif ++ #ifdef SSL_R_NO_APPLICATION_PROTOCOL ++ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"NO_APPLICATION_PROTOCOL", 20, 235}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATES_RETURNED ++ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED}, ++ #else ++ {"NO_CERTIFICATES_RETURNED", 20, 176}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED ++ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED}, ++ #else ++ {"NO_CERTIFICATE_ASSIGNED", 20, 177}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_SET ++ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET}, ++ #else ++ {"NO_CERTIFICATE_SET", 20, 179}, ++ #endif ++ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR ++ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR}, ++ #else ++ {"NO_CHANGE_FOLLOWING_HRR", 20, 214}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_AVAILABLE ++ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE}, ++ #else ++ {"NO_CIPHERS_AVAILABLE", 20, 181}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_SPECIFIED ++ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED}, ++ #else ++ {"NO_CIPHERS_SPECIFIED", 20, 183}, ++ #endif ++ #ifdef SSL_R_NO_CIPHER_MATCH ++ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH}, ++ #else ++ {"NO_CIPHER_MATCH", 20, 185}, ++ #endif ++ #ifdef SSL_R_NO_CLIENT_CERT_METHOD ++ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD}, ++ #else ++ {"NO_CLIENT_CERT_METHOD", 20, 331}, ++ #endif ++ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED ++ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED}, ++ #else ++ {"NO_COMPRESSION_SPECIFIED", 20, 187}, ++ #endif ++ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET ++ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET}, ++ #else ++ {"NO_COOKIE_CALLBACK_SET", 20, 287}, ++ #endif ++ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER}, ++ #else ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330}, ++ #endif ++ #ifdef SSL_R_NO_METHOD_SPECIFIED ++ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED}, ++ #else ++ {"NO_METHOD_SPECIFIED", 20, 188}, ++ #endif ++ #ifdef SSL_R_NO_PEM_EXTENSIONS ++ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS}, ++ #else ++ {"NO_PEM_EXTENSIONS", 20, 389}, ++ #endif ++ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED ++ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED}, ++ #else ++ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190}, ++ #endif ++ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE ++ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE}, ++ #else ++ {"NO_PROTOCOLS_AVAILABLE", 20, 191}, ++ #endif ++ #ifdef SSL_R_NO_RENEGOTIATION ++ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION}, ++ #else ++ {"NO_RENEGOTIATION", 20, 339}, ++ #endif ++ #ifdef SSL_R_NO_REQUIRED_DIGEST ++ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST}, ++ #else ++ {"NO_REQUIRED_DIGEST", 20, 324}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_CIPHER ++ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER}, ++ #else ++ {"NO_SHARED_CIPHER", 20, 193}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_GROUPS ++ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS}, ++ #else ++ {"NO_SHARED_GROUPS", 20, 410}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS}, ++ #else ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376}, ++ #endif ++ #ifdef SSL_R_NO_SRTP_PROFILES ++ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES}, ++ #else ++ {"NO_SRTP_PROFILES", 20, 359}, ++ #endif ++ #ifdef SSL_R_NO_STREAM ++ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, ++ #else ++ {"NO_STREAM", 20, 355}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM ++ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_GROUPS ++ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS}, ++ #else ++ {"NO_SUITABLE_GROUPS", 20, 295}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE ++ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE}, ++ #else ++ {"NO_SUITABLE_KEY_SHARE", 20, 101}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER ++ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, ++ #else ++ {"NO_SUITABLE_RECORD_LAYER", 20, 322}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118}, ++ #endif ++ #ifdef SSL_R_NO_VALID_SCTS ++ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS}, ++ #else ++ {"NO_VALID_SCTS", 20, 216}, ++ #endif ++ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK ++ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK}, ++ #else ++ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_CTX ++ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX}, ++ #else ++ {"NULL_SSL_CTX", 20, 195}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_METHOD_PASSED ++ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED}, ++ #else ++ {"NULL_SSL_METHOD_PASSED", 20, 196}, ++ #endif ++ #ifdef SSL_R_OCSP_CALLBACK_FAILURE ++ {"OCSP_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_OCSP_CALLBACK_FAILURE}, ++ #else ++ {"OCSP_CALLBACK_FAILURE", 20, 305}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344}, ++ #endif ++ #ifdef SSL_R_OVERFLOW_ERROR ++ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR}, ++ #else ++ {"OVERFLOW_ERROR", 20, 237}, ++ #endif ++ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG ++ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG}, ++ #else ++ {"PACKET_LENGTH_TOO_LONG", 20, 198}, ++ #endif ++ #ifdef SSL_R_PARSE_TLSEXT ++ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT}, ++ #else ++ {"PARSE_TLSEXT", 20, 227}, ++ #endif ++ #ifdef SSL_R_PATH_TOO_LONG ++ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG}, ++ #else ++ {"PATH_TOO_LONG", 20, 270}, ++ #endif ++ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}, ++ #else ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_BAD_PREFIX ++ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX}, ++ #else ++ {"PEM_NAME_BAD_PREFIX", 20, 391}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_TOO_SHORT ++ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT}, ++ #else ++ {"PEM_NAME_TOO_SHORT", 20, 392}, ++ #endif ++ #ifdef SSL_R_PIPELINE_FAILURE ++ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE}, ++ #else ++ {"PIPELINE_FAILURE", 20, 406}, ++ #endif ++ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED ++ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, ++ #else ++ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, ++ #endif ++ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, ++ #else ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278}, ++ #endif ++ #ifdef SSL_R_PRIVATE_KEY_MISMATCH ++ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH}, ++ #else ++ {"PRIVATE_KEY_MISMATCH", 20, 288}, ++ #endif ++ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN ++ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN}, ++ #else ++ {"PROTOCOL_IS_SHUTDOWN", 20, 207}, ++ #endif ++ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND ++ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND}, ++ #else ++ {"PSK_IDENTITY_NOT_FOUND", 20, 223}, ++ #endif ++ #ifdef SSL_R_PSK_NO_CLIENT_CB ++ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB}, ++ #else ++ {"PSK_NO_CLIENT_CB", 20, 224}, ++ #endif ++ #ifdef SSL_R_PSK_NO_SERVER_CB ++ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB}, ++ #else ++ {"PSK_NO_SERVER_CB", 20, 225}, ++ #endif ++ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR ++ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, ++ #else ++ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, ++ #endif ++ #ifdef SSL_R_QUIC_NETWORK_ERROR ++ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, ++ #else ++ {"QUIC_NETWORK_ERROR", 20, 387}, ++ #endif ++ #ifdef SSL_R_QUIC_PROTOCOL_ERROR ++ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, ++ #else ++ {"QUIC_PROTOCOL_ERROR", 20, 382}, ++ #endif ++ #ifdef SSL_R_READ_BIO_NOT_SET ++ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, ++ #else ++ {"READ_BIO_NOT_SET", 20, 211}, ++ #endif ++ #ifdef SSL_R_READ_TIMEOUT_EXPIRED ++ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED}, ++ #else ++ {"READ_TIMEOUT_EXPIRED", 20, 312}, ++ #endif ++ #ifdef SSL_R_RECORDS_NOT_RELEASED ++ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, ++ #else ++ {"RECORDS_NOT_RELEASED", 20, 321}, ++ #endif ++ #ifdef SSL_R_RECORD_LAYER_FAILURE ++ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, ++ #else ++ {"RECORD_LAYER_FAILURE", 20, 313}, ++ #endif ++ #ifdef SSL_R_RECORD_LENGTH_MISMATCH ++ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, ++ #else ++ {"RECORD_LENGTH_MISMATCH", 20, 213}, ++ #endif ++ #ifdef SSL_R_RECORD_TOO_SMALL ++ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL}, ++ #else ++ {"RECORD_TOO_SMALL", 20, 298}, ++ #endif ++ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET ++ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, ++ #else ++ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG ++ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, ++ #else ++ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR ++ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR}, ++ #else ++ {"RENEGOTIATION_ENCODING_ERR", 20, 336}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_MISMATCH ++ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH}, ++ #else ++ {"RENEGOTIATION_MISMATCH", 20, 337}, ++ #endif ++ #ifdef SSL_R_REQUEST_PENDING ++ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING}, ++ #else ++ {"REQUEST_PENDING", 20, 285}, ++ #endif ++ #ifdef SSL_R_REQUEST_SENT ++ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT}, ++ #else ++ {"REQUEST_SENT", 20, 286}, ++ #endif ++ #ifdef SSL_R_REQUIRED_CIPHER_MISSING ++ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING}, ++ #else ++ {"REQUIRED_CIPHER_MISSING", 20, 215}, ++ #endif ++ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING}, ++ #else ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342}, ++ #endif ++ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}, ++ #else ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345}, ++ #endif ++ #ifdef SSL_R_SCT_VERIFICATION_FAILED ++ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED}, ++ #else ++ {"SCT_VERIFICATION_FAILED", 20, 208}, ++ #endif ++ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED ++ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, ++ #else ++ {"SEQUENCE_CTR_WRAPPED", 20, 327}, ++ #endif ++ #ifdef SSL_R_SERVERHELLO_TLSEXT ++ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, ++ #else ++ {"SERVERHELLO_TLSEXT", 20, 275}, ++ #endif ++ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}, ++ #else ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277}, ++ #endif ++ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT ++ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT}, ++ #else ++ {"SHUTDOWN_WHILE_IN_INIT", 20, 407}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR ++ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR}, ++ #else ++ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}, ++ #else ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220}, ++ #endif ++ #ifdef SSL_R_SRP_A_CALC ++ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC}, ++ #else ++ {"SRP_A_CALC", 20, 361}, ++ #endif ++ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES}, ++ #else ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362}, ++ #endif ++ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG}, ++ #else ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363}, ++ #endif ++ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE}, ++ #else ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 20, 117}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125}, ++ #endif ++ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}, ++ #else ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228}, ++ #endif ++ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE ++ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE}, ++ #else ++ {"SSL_HANDSHAKE_FAILURE", 20, 229}, ++ #endif ++ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230}, ++ #endif ++ #ifdef SSL_R_SSL_NEGATIVE_LENGTH ++ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH}, ++ #else ++ {"SSL_NEGATIVE_LENGTH", 20, 372}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 20, 126}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 20, 136}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED ++ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED}, ++ #else ++ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT ++ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT}, ++ #else ++ {"SSL_SESSION_ID_CONFLICT", 20, 302}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH}, ++ #else ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG ++ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_TOO_LONG", 20, 408}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH ++ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH}, ++ #else ++ {"SSL_SESSION_VERSION_MISMATCH", 20, 210}, ++ #endif ++ #ifdef SSL_R_STILL_IN_INIT ++ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT}, ++ #else ++ {"STILL_IN_INIT", 20, 121}, ++ #endif ++ #ifdef SSL_R_STREAM_COUNT_LIMITED ++ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, ++ #else ++ {"STREAM_COUNT_LIMITED", 20, 411}, ++ #endif ++ #ifdef SSL_R_STREAM_FINISHED ++ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, ++ #else ++ {"STREAM_FINISHED", 20, 365}, ++ #endif ++ #ifdef SSL_R_STREAM_RECV_ONLY ++ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, ++ #else ++ {"STREAM_RECV_ONLY", 20, 366}, ++ #endif ++ #ifdef SSL_R_STREAM_RESET ++ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, ++ #else ++ {"STREAM_RESET", 20, 375}, ++ #endif ++ #ifdef SSL_R_STREAM_SEND_ONLY ++ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, ++ #else ++ {"STREAM_SEND_ONLY", 20, 379}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH}, ++ #else ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME ++ {"TLS_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME", 20, 319}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", 20, 320}, ++ #endif ++ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL ++ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL}, ++ #else ++ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367}, ++ #endif ++ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}, ++ #else ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157}, ++ #endif ++ #ifdef SSL_R_TLS_SESSION_ID_TOO_LONG ++ {"TLS_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_TLS_SESSION_ID_TOO_LONG}, ++ #else ++ {"TLS_SESSION_ID_TOO_LONG", 20, 300}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_KEY_UPDATES ++ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES}, ++ #else ++ {"TOO_MANY_KEY_UPDATES", 20, 132}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_WARN_ALERTS ++ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS}, ++ #else ++ {"TOO_MANY_WARN_ALERTS", 20, 409}, ++ #endif ++ #ifdef SSL_R_TOO_MUCH_EARLY_DATA ++ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA}, ++ #else ++ {"TOO_MUCH_EARLY_DATA", 20, 164}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE ++ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE}, ++ #else ++ {"UNEXPECTED_CCS_MESSAGE", 20, 262}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA ++ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA}, ++ #else ++ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING ++ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING}, ++ #else ++ {"UNEXPECTED_EOF_WHILE_READING", 20, 294}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_MESSAGE ++ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE}, ++ #else ++ {"UNEXPECTED_MESSAGE", 20, 244}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_RECORD ++ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD}, ++ #else ++ {"UNEXPECTED_RECORD", 20, 245}, ++ #endif ++ #ifdef SSL_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 20, 276}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_ALERT_TYPE ++ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE}, ++ #else ++ {"UNKNOWN_ALERT_TYPE", 20, 246}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE ++ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE}, ++ #else ++ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED ++ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED}, ++ #else ++ {"UNKNOWN_CIPHER_RETURNED", 20, 248}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE ++ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE}, ++ #else ++ {"UNKNOWN_CIPHER_TYPE", 20, 249}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CMD_NAME ++ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME}, ++ #else ++ {"UNKNOWN_CMD_NAME", 20, 386}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_COMMAND ++ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND}, ++ #else ++ {"UNKNOWN_COMMAND", 20, 139}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 20, 368}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}, ++ #else ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER ++ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, ++ #else ++ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PKEY_TYPE ++ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, ++ #else ++ {"UNKNOWN_PKEY_TYPE", 20, 251}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PROTOCOL ++ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL}, ++ #else ++ {"UNKNOWN_PROTOCOL", 20, 252}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_SSL_VERSION ++ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION}, ++ #else ++ {"UNKNOWN_SSL_VERSION", 20, 254}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_STATE ++ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE}, ++ #else ++ {"UNKNOWN_STATE", 20, 255}, ++ #endif ++ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}, ++ #else ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338}, ++ #endif ++ #ifdef SSL_R_UNSOLICITED_EXTENSION ++ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION}, ++ #else ++ {"UNSOLICITED_EXTENSION", 20, 217}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE ++ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP ++ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE ++ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, ++ #else ++ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_PROTOCOL ++ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL}, ++ #else ++ {"UNSUPPORTED_PROTOCOL", 20, 258}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION ++ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION}, ++ #else ++ {"UNSUPPORTED_SSL_VERSION", 20, 259}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE ++ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE}, ++ #else ++ {"UNSUPPORTED_STATUS_TYPE", 20, 329}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG ++ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, ++ #else ++ {"UNSUPPORTED_WRITE_FLAG", 20, 412}, ++ #endif ++ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED ++ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, ++ #else ++ {"USE_SRTP_NOT_NEGOTIATED", 20, 369}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_HIGH ++ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH}, ++ #else ++ {"VERSION_TOO_HIGH", 20, 166}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_LOW ++ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW}, ++ #else ++ {"VERSION_TOO_LOW", 20, 396}, ++ #endif ++ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE ++ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE}, ++ #else ++ {"WRONG_CERTIFICATE_TYPE", 20, 383}, ++ #endif ++ #ifdef SSL_R_WRONG_CIPHER_RETURNED ++ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED}, ++ #else ++ {"WRONG_CIPHER_RETURNED", 20, 261}, ++ #endif ++ #ifdef SSL_R_WRONG_CURVE ++ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE}, ++ #else ++ {"WRONG_CURVE", 20, 378}, ++ #endif ++ #ifdef SSL_R_WRONG_RPK_TYPE ++ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, ++ #else ++ {"WRONG_RPK_TYPE", 20, 351}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 20, 264}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_SIZE ++ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE}, ++ #else ++ {"WRONG_SIGNATURE_SIZE", 20, 265}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_TYPE ++ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE}, ++ #else ++ {"WRONG_SIGNATURE_TYPE", 20, 370}, ++ #endif ++ #ifdef SSL_R_WRONG_SSL_VERSION ++ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION}, ++ #else ++ {"WRONG_SSL_VERSION", 20, 266}, ++ #endif ++ #ifdef SSL_R_WRONG_VERSION_NUMBER ++ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER}, ++ #else ++ {"WRONG_VERSION_NUMBER", 20, 267}, ++ #endif ++ #ifdef SSL_R_X509_LIB ++ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB}, ++ #else ++ {"X509_LIB", 20, 268}, ++ #endif ++ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS ++ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}, ++ #else ++ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269}, ++ #endif ++ #ifdef TS_R_BAD_PKCS7_TYPE ++ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE}, ++ #else ++ {"BAD_PKCS7_TYPE", 47, 132}, ++ #endif ++ #ifdef TS_R_BAD_TYPE ++ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE}, ++ #else ++ {"BAD_TYPE", 47, 133}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_CERT ++ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT}, ++ #else ++ {"CANNOT_LOAD_CERT", 47, 137}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_KEY ++ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY}, ++ #else ++ {"CANNOT_LOAD_KEY", 47, 138}, ++ #endif ++ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 47, 100}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_ENGINE ++ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE}, ++ #else ++ {"COULD_NOT_SET_ENGINE", 47, 127}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_TIME ++ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME}, ++ #else ++ {"COULD_NOT_SET_TIME", 47, 115}, ++ #endif ++ #ifdef TS_R_DETACHED_CONTENT ++ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT}, ++ #else ++ {"DETACHED_CONTENT", 47, 134}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR ++ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139}, ++ #endif ++ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101}, ++ #endif ++ #ifdef TS_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 47, 102}, ++ #endif ++ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}, ++ #else ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117}, ++ #endif ++ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH ++ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH}, ++ #else ++ {"MESSAGE_IMPRINT_MISMATCH", 47, 103}, ++ #endif ++ #ifdef TS_R_NONCE_MISMATCH ++ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH}, ++ #else ++ {"NONCE_MISMATCH", 47, 104}, ++ #endif ++ #ifdef TS_R_NONCE_NOT_RETURNED ++ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED}, ++ #else ++ {"NONCE_NOT_RETURNED", 47, 105}, ++ #endif ++ #ifdef TS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 47, 106}, ++ #endif ++ #ifdef TS_R_NO_TIME_STAMP_TOKEN ++ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN}, ++ #else ++ {"NO_TIME_STAMP_TOKEN", 47, 107}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119}, ++ #endif ++ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED ++ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED}, ++ #else ++ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129}, ++ #endif ++ #ifdef TS_R_POLICY_MISMATCH ++ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH}, ++ #else ++ {"POLICY_MISMATCH", 47, 108}, ++ #endif ++ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120}, ++ #endif ++ #ifdef TS_R_RESPONSE_SETUP_ERROR ++ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR}, ++ #else ++ {"RESPONSE_SETUP_ERROR", 47, 121}, ++ #endif ++ #ifdef TS_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 47, 109}, ++ #endif ++ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER ++ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER}, ++ #else ++ {"THERE_MUST_BE_ONE_SIGNER", 47, 110}, ++ #endif ++ #ifdef TS_R_TIME_SYSCALL_ERROR ++ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR}, ++ #else ++ {"TIME_SYSCALL_ERROR", 47, 122}, ++ #endif ++ #ifdef TS_R_TOKEN_NOT_PRESENT ++ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT}, ++ #else ++ {"TOKEN_NOT_PRESENT", 47, 130}, ++ #endif ++ #ifdef TS_R_TOKEN_PRESENT ++ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT}, ++ #else ++ {"TOKEN_PRESENT", 47, 131}, ++ #endif ++ #ifdef TS_R_TSA_NAME_MISMATCH ++ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH}, ++ #else ++ {"TSA_NAME_MISMATCH", 47, 111}, ++ #endif ++ #ifdef TS_R_TSA_UNTRUSTED ++ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED}, ++ #else ++ {"TSA_UNTRUSTED", 47, 112}, ++ #endif ++ #ifdef TS_R_TST_INFO_SETUP_ERROR ++ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR}, ++ #else ++ {"TST_INFO_SETUP_ERROR", 47, 123}, ++ #endif ++ #ifdef TS_R_TS_DATASIGN ++ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN}, ++ #else ++ {"TS_DATASIGN", 47, 124}, ++ #endif ++ #ifdef TS_R_UNACCEPTABLE_POLICY ++ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY}, ++ #else ++ {"UNACCEPTABLE_POLICY", 47, 125}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM ++ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MD_ALGORITHM", 47, 126}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 47, 113}, ++ #endif ++ #ifdef TS_R_VAR_BAD_VALUE ++ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE}, ++ #else ++ {"VAR_BAD_VALUE", 47, 135}, ++ #endif ++ #ifdef TS_R_VAR_LOOKUP_FAILURE ++ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE}, ++ #else ++ {"VAR_LOOKUP_FAILURE", 47, 136}, ++ #endif ++ #ifdef TS_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 47, 114}, ++ #endif ++ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}, ++ #else ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_LARGE ++ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE}, ++ #else ++ {"INDEX_TOO_LARGE", 40, 102}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_SMALL ++ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL}, ++ #else ++ {"INDEX_TOO_SMALL", 40, 103}, ++ #endif ++ #ifdef UI_R_NO_RESULT_BUFFER ++ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER}, ++ #else ++ {"NO_RESULT_BUFFER", 40, 105}, ++ #endif ++ #ifdef UI_R_PROCESSING_ERROR ++ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR}, ++ #else ++ {"PROCESSING_ERROR", 40, 107}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_LARGE ++ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE}, ++ #else ++ {"RESULT_TOO_LARGE", 40, 100}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_SMALL ++ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL}, ++ #else ++ {"RESULT_TOO_SMALL", 40, 101}, ++ #endif ++ #ifdef UI_R_SYSASSIGN_ERROR ++ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR}, ++ #else ++ {"SYSASSIGN_ERROR", 40, 109}, ++ #endif ++ #ifdef UI_R_SYSDASSGN_ERROR ++ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR}, ++ #else ++ {"SYSDASSGN_ERROR", 40, 110}, ++ #endif ++ #ifdef UI_R_SYSQIOW_ERROR ++ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR}, ++ #else ++ {"SYSQIOW_ERROR", 40, 111}, ++ #endif ++ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND ++ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND}, ++ #else ++ {"UNKNOWN_CONTROL_COMMAND", 40, 106}, ++ #endif ++ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE}, ++ #else ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108}, ++ #endif ++ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED}, ++ #else ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112}, ++ #endif ++ #ifdef X509V3_R_BAD_IP_ADDRESS ++ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS}, ++ #else ++ {"BAD_IP_ADDRESS", 34, 118}, ++ #endif ++ #ifdef X509V3_R_BAD_OBJECT ++ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT}, ++ #else ++ {"BAD_OBJECT", 34, 119}, ++ #endif ++ #ifdef X509V3_R_BAD_OPTION ++ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, ++ #else ++ {"BAD_OPTION", 34, 170}, ++ #endif ++ #ifdef X509V3_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 34, 171}, ++ #endif ++ #ifdef X509V3_R_BN_DEC2BN_ERROR ++ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, ++ #else ++ {"BN_DEC2BN_ERROR", 34, 100}, ++ #endif ++ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR ++ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR}, ++ #else ++ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101}, ++ #endif ++ #ifdef X509V3_R_DIRNAME_ERROR ++ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR}, ++ #else ++ {"DIRNAME_ERROR", 34, 149}, ++ #endif ++ #ifdef X509V3_R_DISTPOINT_ALREADY_SET ++ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET}, ++ #else ++ {"DISTPOINT_ALREADY_SET", 34, 160}, ++ #endif ++ #ifdef X509V3_R_DUPLICATE_ZONE_ID ++ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID}, ++ #else ++ {"DUPLICATE_ZONE_ID", 34, 133}, ++ #endif ++ #ifdef X509V3_R_EMPTY_KEY_USAGE ++ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE}, ++ #else ++ {"EMPTY_KEY_USAGE", 34, 169}, ++ #endif ++ #ifdef X509V3_R_ERROR_CONVERTING_ZONE ++ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE}, ++ #else ++ {"ERROR_CONVERTING_ZONE", 34, 131}, ++ #endif ++ #ifdef X509V3_R_ERROR_CREATING_EXTENSION ++ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION}, ++ #else ++ {"ERROR_CREATING_EXTENSION", 34, 144}, ++ #endif ++ #ifdef X509V3_R_ERROR_IN_EXTENSION ++ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION}, ++ #else ++ {"ERROR_IN_EXTENSION", 34, 128}, ++ #endif ++ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME ++ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME}, ++ #else ++ {"EXPECTED_A_SECTION_NAME", 34, 137}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_EXISTS ++ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS}, ++ #else ++ {"EXTENSION_EXISTS", 34, 145}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NAME_ERROR ++ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR}, ++ #else ++ {"EXTENSION_NAME_ERROR", 34, 115}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NOT_FOUND ++ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND}, ++ #else ++ {"EXTENSION_NOT_FOUND", 34, 102}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED ++ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}, ++ #else ++ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_VALUE_ERROR ++ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR}, ++ #else ++ {"EXTENSION_VALUE_ERROR", 34, 116}, ++ #endif ++ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION ++ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION}, ++ #else ++ {"ILLEGAL_EMPTY_EXTENSION", 34, 151}, ++ #endif ++ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ++ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}, ++ #else ++ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASNUMBER ++ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER}, ++ #else ++ {"INVALID_ASNUMBER", 34, 162}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASRANGE ++ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE}, ++ #else ++ {"INVALID_ASRANGE", 34, 163}, ++ #endif ++ #ifdef X509V3_R_INVALID_BOOLEAN_STRING ++ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING}, ++ #else ++ {"INVALID_BOOLEAN_STRING", 34, 104}, ++ #endif ++ #ifdef X509V3_R_INVALID_CERTIFICATE ++ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE}, ++ #else ++ {"INVALID_CERTIFICATE", 34, 158}, ++ #endif ++ #ifdef X509V3_R_INVALID_EMPTY_NAME ++ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME}, ++ #else ++ {"INVALID_EMPTY_NAME", 34, 108}, ++ #endif ++ #ifdef X509V3_R_INVALID_EXTENSION_STRING ++ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING}, ++ #else ++ {"INVALID_EXTENSION_STRING", 34, 105}, ++ #endif ++ #ifdef X509V3_R_INVALID_INHERITANCE ++ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE}, ++ #else ++ {"INVALID_INHERITANCE", 34, 165}, ++ #endif ++ #ifdef X509V3_R_INVALID_IPADDRESS ++ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS}, ++ #else ++ {"INVALID_IPADDRESS", 34, 166}, ++ #endif ++ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS ++ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS}, ++ #else ++ {"INVALID_MULTIPLE_RDNS", 34, 161}, ++ #endif ++ #ifdef X509V3_R_INVALID_NAME ++ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME}, ++ #else ++ {"INVALID_NAME", 34, 106}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 34, 107}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_VALUE ++ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE}, ++ #else ++ {"INVALID_NULL_VALUE", 34, 109}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 34, 140}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBERS ++ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS}, ++ #else ++ {"INVALID_NUMBERS", 34, 141}, ++ #endif ++ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER ++ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER}, ++ #else ++ {"INVALID_OBJECT_IDENTIFIER", 34, 110}, ++ #endif ++ #ifdef X509V3_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 34, 138}, ++ #endif ++ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER ++ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER}, ++ #else ++ {"INVALID_POLICY_IDENTIFIER", 34, 134}, ++ #endif ++ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING ++ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING}, ++ #else ++ {"INVALID_PROXY_POLICY_SETTING", 34, 153}, ++ #endif ++ #ifdef X509V3_R_INVALID_PURPOSE ++ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE}, ++ #else ++ {"INVALID_PURPOSE", 34, 146}, ++ #endif ++ #ifdef X509V3_R_INVALID_SAFI ++ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI}, ++ #else ++ {"INVALID_SAFI", 34, 164}, ++ #endif ++ #ifdef X509V3_R_INVALID_SECTION ++ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION}, ++ #else ++ {"INVALID_SECTION", 34, 135}, ++ #endif ++ #ifdef X509V3_R_INVALID_SYNTAX ++ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX}, ++ #else ++ {"INVALID_SYNTAX", 34, 143}, ++ #endif ++ #ifdef X509V3_R_ISSUER_DECODE_ERROR ++ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR}, ++ #else ++ {"ISSUER_DECODE_ERROR", 34, 126}, ++ #endif ++ #ifdef X509V3_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 34, 124}, ++ #endif ++ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS ++ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}, ++ #else ++ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142}, ++ #endif ++ #ifdef X509V3_R_NEGATIVE_PATHLEN ++ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN}, ++ #else ++ {"NEGATIVE_PATHLEN", 34, 168}, ++ #endif ++ #ifdef X509V3_R_NO_CONFIG_DATABASE ++ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE}, ++ #else ++ {"NO_CONFIG_DATABASE", 34, 136}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE ++ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE}, ++ #else ++ {"NO_ISSUER_CERTIFICATE", 34, 121}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_DETAILS ++ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS}, ++ #else ++ {"NO_ISSUER_DETAILS", 34, 127}, ++ #endif ++ #ifdef X509V3_R_NO_POLICY_IDENTIFIER ++ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER}, ++ #else ++ {"NO_POLICY_IDENTIFIER", 34, 139}, ++ #endif ++ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}, ++ #else ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154}, ++ #endif ++ #ifdef X509V3_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 34, 114}, ++ #endif ++ #ifdef X509V3_R_NO_SUBJECT_DETAILS ++ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS}, ++ #else ++ {"NO_SUBJECT_DETAILS", 34, 125}, ++ #endif ++ #ifdef X509V3_R_OPERATION_NOT_DEFINED ++ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED}, ++ #else ++ {"OPERATION_NOT_DEFINED", 34, 148}, ++ #endif ++ #ifdef X509V3_R_OTHERNAME_ERROR ++ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR}, ++ #else ++ {"OTHERNAME_ERROR", 34, 147}, ++ #endif ++ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}, ++ #else ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH ++ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH}, ++ #else ++ {"POLICY_PATH_LENGTH", 34, 156}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}, ++ #else ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157}, ++ #endif ++ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}, ++ #else ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159}, ++ #endif ++ #ifdef X509V3_R_PURPOSE_NOT_UNIQUE ++ {"PURPOSE_NOT_UNIQUE", ERR_LIB_X509V3, X509V3_R_PURPOSE_NOT_UNIQUE}, ++ #else ++ {"PURPOSE_NOT_UNIQUE", 34, 173}, ++ #endif ++ #ifdef X509V3_R_SECTION_NOT_FOUND ++ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND}, ++ #else ++ {"SECTION_NOT_FOUND", 34, 150}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ++ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ++ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ++ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}, ++ #else ++ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION ++ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION}, ++ #else ++ {"UNKNOWN_EXTENSION", 34, 129}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME ++ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME}, ++ #else ++ {"UNKNOWN_EXTENSION_NAME", 34, 130}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 34, 120}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_VALUE ++ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, ++ #else ++ {"UNKNOWN_VALUE", 34, 172}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_OPTION ++ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, ++ #else ++ {"UNSUPPORTED_OPTION", 34, 117}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 34, 167}, ++ #endif ++ #ifdef X509V3_R_USER_TOO_LONG ++ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG}, ++ #else ++ {"USER_TOO_LONG", 34, 132}, ++ #endif ++ #ifdef X509_R_AKID_MISMATCH ++ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH}, ++ #else ++ {"AKID_MISMATCH", 11, 110}, ++ #endif ++ #ifdef X509_R_BAD_SELECTOR ++ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR}, ++ #else ++ {"BAD_SELECTOR", 11, 133}, ++ #endif ++ #ifdef X509_R_BAD_X509_FILETYPE ++ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE}, ++ #else ++ {"BAD_X509_FILETYPE", 11, 100}, ++ #endif ++ #ifdef X509_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 11, 118}, ++ #endif ++ #ifdef X509_R_CANT_CHECK_DH_KEY ++ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY}, ++ #else ++ {"CANT_CHECK_DH_KEY", 11, 114}, ++ #endif ++ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED ++ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139}, ++ #endif ++ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE ++ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE}, ++ #else ++ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101}, ++ #endif ++ #ifdef X509_R_CRL_ALREADY_DELTA ++ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA}, ++ #else ++ {"CRL_ALREADY_DELTA", 11, 127}, ++ #endif ++ #ifdef X509_R_CRL_VERIFY_FAILURE ++ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE}, ++ #else ++ {"CRL_VERIFY_FAILURE", 11, 131}, ++ #endif ++ #ifdef X509_R_DUPLICATE_ATTRIBUTE ++ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, ++ #else ++ {"DUPLICATE_ATTRIBUTE", 11, 140}, ++ #endif ++ #ifdef X509_R_ERROR_GETTING_MD_BY_NID ++ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, ++ #else ++ {"ERROR_GETTING_MD_BY_NID", 11, 141}, ++ #endif ++ #ifdef X509_R_ERROR_USING_SIGINF_SET ++ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET}, ++ #else ++ {"ERROR_USING_SIGINF_SET", 11, 142}, ++ #endif ++ #ifdef X509_R_IDP_MISMATCH ++ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH}, ++ #else ++ {"IDP_MISMATCH", 11, 128}, ++ #endif ++ #ifdef X509_R_INVALID_ATTRIBUTES ++ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES}, ++ #else ++ {"INVALID_ATTRIBUTES", 11, 138}, ++ #endif ++ #ifdef X509_R_INVALID_DIRECTORY ++ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY}, ++ #else ++ {"INVALID_DIRECTORY", 11, 113}, ++ #endif ++ #ifdef X509_R_INVALID_DISTPOINT ++ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT}, ++ #else ++ {"INVALID_DISTPOINT", 11, 143}, ++ #endif ++ #ifdef X509_R_INVALID_EXTENSION ++ {"INVALID_EXTENSION", ERR_LIB_X509, X509_R_INVALID_EXTENSION}, ++ #else ++ {"INVALID_EXTENSION", 11, 146}, ++ #endif ++ #ifdef X509_R_INVALID_FIELD_NAME ++ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME}, ++ #else ++ {"INVALID_FIELD_NAME", 11, 119}, ++ #endif ++ #ifdef X509_R_INVALID_TRUST ++ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST}, ++ #else ++ {"INVALID_TRUST", 11, 123}, ++ #endif ++ #ifdef X509_R_ISSUER_MISMATCH ++ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH}, ++ #else ++ {"ISSUER_MISMATCH", 11, 129}, ++ #endif ++ #ifdef X509_R_KEY_TYPE_MISMATCH ++ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH}, ++ #else ++ {"KEY_TYPE_MISMATCH", 11, 115}, ++ #endif ++ #ifdef X509_R_KEY_VALUES_MISMATCH ++ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH}, ++ #else ++ {"KEY_VALUES_MISMATCH", 11, 116}, ++ #endif ++ #ifdef X509_R_LOADING_CERT_DIR ++ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR}, ++ #else ++ {"LOADING_CERT_DIR", 11, 103}, ++ #endif ++ #ifdef X509_R_LOADING_DEFAULTS ++ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS}, ++ #else ++ {"LOADING_DEFAULTS", 11, 104}, ++ #endif ++ #ifdef X509_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 11, 124}, ++ #endif ++ #ifdef X509_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 11, 134}, ++ #endif ++ #ifdef X509_R_NEWER_CRL_NOT_NEWER ++ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER}, ++ #else ++ {"NEWER_CRL_NOT_NEWER", 11, 132}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_FOUND ++ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND}, ++ #else ++ {"NO_CERTIFICATE_FOUND", 11, 135}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND ++ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND}, ++ #else ++ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136}, ++ #endif ++ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}, ++ #else ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105}, ++ #endif ++ #ifdef X509_R_NO_CRL_FOUND ++ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND}, ++ #else ++ {"NO_CRL_FOUND", 11, 137}, ++ #endif ++ #ifdef X509_R_NO_CRL_NUMBER ++ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER}, ++ #else ++ {"NO_CRL_NUMBER", 11, 130}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR ++ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_DECODE_ERROR", 11, 125}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR ++ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126}, ++ #endif ++ #ifdef X509_R_SHOULD_RETRY ++ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY}, ++ #else ++ {"SHOULD_RETRY", 11, 106}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}, ++ #else ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}, ++ #else ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108}, ++ #endif ++ #ifdef X509_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 11, 117}, ++ #endif ++ #ifdef X509_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 11, 109}, ++ #endif ++ #ifdef X509_R_UNKNOWN_PURPOSE_ID ++ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID}, ++ #else ++ {"UNKNOWN_PURPOSE_ID", 11, 121}, ++ #endif ++ #ifdef X509_R_UNKNOWN_SIGID_ALGS ++ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS}, ++ #else ++ {"UNKNOWN_SIGID_ALGS", 11, 144}, ++ #endif ++ #ifdef X509_R_UNKNOWN_TRUST_ID ++ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID}, ++ #else ++ {"UNKNOWN_TRUST_ID", 11, 120}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 11, 111}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 11, 145}, ++ #endif ++ #ifdef X509_R_WRONG_LOOKUP_TYPE ++ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, ++ #else ++ {"WRONG_LOOKUP_TYPE", 11, 112}, ++ #endif ++ #ifdef X509_R_WRONG_TYPE ++ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE}, ++ #else ++ {"WRONG_TYPE", 11, 122}, ++ #endif ++ {NULL, 0, 0} /* sentinel */ ++}; +--- a/Tools/ssl/multissltests.py ++++ b/Tools/ssl/multissltests.py +@@ -54,6 +54,7 @@ + "3.4.6", + "3.5.7", + "3.6.3", ++ "4.0.1", + # See make_ssl_data.py for notes on adding a new version. + ] + +@@ -422,9 +423,11 @@ + def _post_install(self): + if self.version.startswith("3."): + self._post_install_3xx() ++ elif self.version.startswith("4."): ++ self._post_install_4xx() + + def _build_src(self, config_args=()): +- if self.version.startswith("3."): ++ if self.version.startswith(("3.", "4.")): + config_args += ("enable-fips",) + super()._build_src(config_args) + +@@ -440,6 +443,9 @@ + lib64 = self.lib_dir + "64" + os.symlink(lib64, self.lib_dir) + ++ def _post_install_4xx(self): ++ self._post_install_3xx() ++ + @property + def short_version(self): + """Short version for OpenSSL download URL""" -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 59/77] package/qpid-proton: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (57 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 58/77] package/python3: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 60/77] package/qt5/qt5base: Add support for " Bernd Kuhls ` (17 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...1-PROTON-2937-Add-OpenSSL-4.x-compat.patch | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 package/qpid-proton/0001-PROTON-2937-Add-OpenSSL-4.x-compat.patch diff --git a/package/qpid-proton/0001-PROTON-2937-Add-OpenSSL-4.x-compat.patch b/package/qpid-proton/0001-PROTON-2937-Add-OpenSSL-4.x-compat.patch new file mode 100644 index 0000000000..96ae892716 --- /dev/null +++ b/package/qpid-proton/0001-PROTON-2937-Add-OpenSSL-4.x-compat.patch @@ -0,0 +1,80 @@ +From 7be093d8d96104caab3fa858ab9886f23d62ee04 Mon Sep 17 00:00:00 2001 +From: Thomas Goirand <zigo@debian.org> +Date: Wed, 17 Jun 2026 15:31:31 +0200 +Subject: [PATCH] PROTON-2937: Add OpenSSL 4.x compat + +Fixes this Debian bug: https://bugs.debian.org/1138394 + +It retains compatibility with OpenSSL 3 + +Closes #447 + +Upstream: https://github.com/apache/qpid-proton/commit/7be093d8d96104caab3fa858ab9886f23d62ee04 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + c/src/ssl/openssl.c | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/c/src/ssl/openssl.c b/c/src/ssl/openssl.c +index 62d4b40a..4c3a76c5 100644 +--- a/c/src/ssl/openssl.c ++++ b/c/src/ssl/openssl.c +@@ -339,7 +339,7 @@ static int verify_callback(int preverify_ok, X509_STORE_CTX *ctx) + GENERAL_NAME *name = sk_GENERAL_NAME_value( sans, i ); + if (name->type == GEN_DNS) { + ASN1_STRING *asn1 = name->d.dNSName; +- if (asn1 && asn1->data && asn1->length) { ++ if (asn1 && ASN1_STRING_get0_data(asn1) && ASN1_STRING_length(asn1) > 0){ + unsigned char *str; + int len = ASN1_STRING_to_UTF8( &str, asn1 ); + if (len >= 0) { +@@ -354,11 +354,11 @@ static int verify_callback(int preverify_ok, X509_STORE_CTX *ctx) + } + + /* if no general names match, try the CommonName from the subject */ +- X509_NAME *name = X509_get_subject_name(cert); ++ const X509_NAME *name = X509_get_subject_name(cert); + int i = -1; + while (!matched && (i = X509_NAME_get_index_by_NID(name, NID_commonName, i)) >= 0) { +- X509_NAME_ENTRY *ne = X509_NAME_get_entry(name, i); +- ASN1_STRING *name_asn1 = X509_NAME_ENTRY_get_data(ne); ++ const X509_NAME_ENTRY *ne = X509_NAME_get_entry(name, i); ++ const ASN1_STRING *name_asn1 = X509_NAME_ENTRY_get_data(ne); + if (name_asn1) { + unsigned char *str; + int len = ASN1_STRING_to_UTF8( &str, name_asn1); +@@ -1558,7 +1558,7 @@ const char* pn_ssl_get_remote_subject(pn_ssl_t *ssl0) + if (!ssl->subject) { + X509 *cert = get_peer_certificate(ssl); + if (!cert) return NULL; +- X509_NAME *subject = X509_get_subject_name(cert); ++ const X509_NAME *subject = X509_get_subject_name(cert); + if (!subject) return NULL; + + BIO *out = BIO_new(BIO_s_mem()); +@@ -1677,17 +1677,17 @@ const char* pn_ssl_get_remote_subject_subfield(pn_ssl_t *ssl0, pn_ssl_cert_subje + X509 *cert = get_peer_certificate(ssl); + if (!cert) return NULL; + +- X509_NAME *subject_name = X509_get_subject_name(cert); ++ const X509_NAME *subject_name = X509_get_subject_name(cert); + + // TODO (gmurthy) - A server side cert subject field can have more than one common name like this - Subject: CN=www.domain1.com, CN=www.domain2.com, see https://bugzilla.mozilla.org/show_bug.cgi?id=380656 + // For now, we will only return the first common name if there is more than one common name in the cert + int index = X509_NAME_get_index_by_NID(subject_name, openssl_field, -1); + + if (index > -1) { +- X509_NAME_ENTRY *ne = X509_NAME_get_entry(subject_name, index); ++ const X509_NAME_ENTRY *ne = X509_NAME_get_entry(subject_name, index); + if(ne) { +- ASN1_STRING *name_asn1 = X509_NAME_ENTRY_get_data(ne); +- return (char *) name_asn1->data; ++ const ASN1_STRING *name_asn1 = X509_NAME_ENTRY_get_data(ne); ++ return (const char *)ASN1_STRING_get0_data(name_asn1); + } + } + +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 60/77] package/qt5/qt5base: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (58 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 59/77] package/qpid-proton: Fix build with " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 61/77] package/rauc: Fix build with " Bernd Kuhls ` (16 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Support for OpenSSL 4 was added to the Qt 6.x OpenSSL plugin by commit https://invent.kde.org/qt/qt/qtbase/-/commit/e806630e694d89f567cffa9c982d1f471089ecd8 contained in the 6.12 branch. OpenSSL support in Qt 5.x is not plugin-based, the move occured in version 6.2.0: https://invent.kde.org/qt/qt/qtbase/-/commit/d385158d5213ef568b7629e2aa4a818016bbffac The upstream repo is not updated anymore: https://community.kde.org/Qt5PatchCollection https://mail.kde.org/pipermail/distributions/2026-May/001690.html To enable support for OpenSSL 4 in qt5base we add a patch set mentioned in the OpenSSL issue https://github.com/openssl/openssl/issues/29117 Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/qt5/qt5base/0009-openssl4.patch | 52 +++++++++ package/qt5/qt5base/0010-openssl4.patch | 139 ++++++++++++++++++++++++ package/qt5/qt5base/0011-openssl4.patch | 89 +++++++++++++++ 3 files changed, 280 insertions(+) create mode 100644 package/qt5/qt5base/0009-openssl4.patch create mode 100644 package/qt5/qt5base/0010-openssl4.patch create mode 100644 package/qt5/qt5base/0011-openssl4.patch diff --git a/package/qt5/qt5base/0009-openssl4.patch b/package/qt5/qt5base/0009-openssl4.patch new file mode 100644 index 0000000000..19e70e876b --- /dev/null +++ b/package/qt5/qt5base/0009-openssl4.patch @@ -0,0 +1,52 @@ +Fix build with OpenSSL 4.x + +Downloaded from +https://github.com/botovq/ports/commit/bb50119f0a15fdda547ffbf1e8d947d92470ed4e + +Upstream: n/a (QT 5.x is not updated anymore) + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> + +Index: src/network/ssl/qsslcertificate_openssl.cpp +--- a/src/network/ssl/qsslcertificate_openssl.cpp.orig ++++ b/src/network/ssl/qsslcertificate_openssl.cpp +@@ -123,11 +123,11 @@ QByteArray QSslCertificate::serialNumber() const + QMutexLocker lock(QMutexPool::globalInstanceGet(d.data())); + #endif + if (d->serialNumberString.isEmpty() && d->x509) { +- ASN1_INTEGER *serialNumber = q_X509_get_serialNumber(d->x509); ++ const ASN1_INTEGER *serialNumber = q_X509_get_serialNumber(d->x509); + QByteArray hexString; +- hexString.reserve(serialNumber->length * 3); +- for (int a = 0; a < serialNumber->length; ++a) { +- hexString += QByteArray::number(serialNumber->data[a], 16).rightJustified(2, '0'); ++ hexString.reserve(q_ASN1_STRING_length(serialNumber) * 3); ++ for (int a = 0; a < q_ASN1_STRING_length(serialNumber); ++a) { ++ hexString += QByteArray::number(q_ASN1_STRING_get0_data(serialNumber)[a], 16).rightJustified(2, '0'); + hexString += ':'; + } + hexString.chop(1); +@@ -251,10 +251,10 @@ QMultiMap<QSsl::AlternativeNameEntryType, QString> QSs + QHostAddress ipAddress; + switch (len) { + case 4: // IPv4 +- ipAddress = QHostAddress(qFromBigEndian(*reinterpret_cast<quint32 *>(genName->d.iPAddress->data))); ++ ipAddress = QHostAddress(qFromBigEndian(*reinterpret_cast<const quint32 *>(q_ASN1_STRING_get0_data(genName->d.iPAddress)))); + break; + case 16: // IPv6 +- ipAddress = QHostAddress(reinterpret_cast<quint8 *>(genName->d.iPAddress->data)); ++ ipAddress = QHostAddress(reinterpret_cast<const quint8 *>(q_ASN1_STRING_get0_data(genName->d.iPAddress))); + break; + default: // Unknown IP address format + break; +@@ -511,8 +511,8 @@ static QVariant x509ExtensionToValue(X509_EXTENSION *e + + // keyid + if (auth_key->keyid) { +- QByteArray keyid(reinterpret_cast<const char *>(auth_key->keyid->data), +- auth_key->keyid->length); ++ QByteArray keyid(reinterpret_cast<const char *>(q_ASN1_STRING_get0_data(auth_key->keyid)), ++ q_ASN1_STRING_length(auth_key->keyid)); + result[QLatin1String("keyid")] = keyid.toHex(); + } + diff --git a/package/qt5/qt5base/0010-openssl4.patch b/package/qt5/qt5base/0010-openssl4.patch new file mode 100644 index 0000000000..8bcd5b1664 --- /dev/null +++ b/package/qt5/qt5base/0010-openssl4.patch @@ -0,0 +1,139 @@ +Fix build with OpenSSL 4.x + +Downloaded from +https://github.com/botovq/ports/commit/bb50119f0a15fdda547ffbf1e8d947d92470ed4e + +Upstream: n/a (QT 5.x is not updated anymore) + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> + +disable EVP_PKEY_param_check(), +use the old versions of sk_new(), ..., sk_value() +disable SSL_CONF_CTX + +Index: src/network/ssl/qsslsocket_openssl_symbols.cpp +--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp.orig ++++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp +@@ -146,16 +146,27 @@ DEFINEFUNC2(int, BN_is_word, BIGNUM *a, a, BN_ULONG w, + DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *c, c, return 0, return) + DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return) + DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return) ++#ifndef LIBRESSL_VERSION_NUMBER + DEFINEFUNC(int, EVP_PKEY_param_check, EVP_PKEY_CTX *ctx, ctx, return 0, return) ++#endif + DEFINEFUNC(void, EVP_PKEY_CTX_free, EVP_PKEY_CTX *ctx, ctx, return, return) + DEFINEFUNC(int, RSA_bits, RSA *a, a, return 0, return) + DEFINEFUNC(int, DSA_bits, DSA *a, a, return 0, return) ++#ifndef LIBRESSL_VERSION_NUMBER + DEFINEFUNC(int, OPENSSL_sk_num, OPENSSL_STACK *a, a, return -1, return) + DEFINEFUNC2(void, OPENSSL_sk_pop_free, OPENSSL_STACK *a, a, void (*b)(void*), b, return, DUMMYARG) + DEFINEFUNC(OPENSSL_STACK *, OPENSSL_sk_new_null, DUMMYARG, DUMMYARG, return nullptr, return) + DEFINEFUNC2(void, OPENSSL_sk_push, OPENSSL_STACK *a, a, void *b, b, return, DUMMYARG) + DEFINEFUNC(void, OPENSSL_sk_free, OPENSSL_STACK *a, a, return, DUMMYARG) + DEFINEFUNC2(void *, OPENSSL_sk_value, OPENSSL_STACK *a, a, int b, b, return nullptr, return) ++#else ++DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return) ++DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG) ++DEFINEFUNC(_STACK *, sk_new_null, DUMMYARG, DUMMYARG, return nullptr, return) ++DEFINEFUNC2(void, sk_push, _STACK *a, a, void *b, b, return, DUMMYARG) ++DEFINEFUNC(void, sk_free, _STACK *a, a, return, DUMMYARG) ++DEFINEFUNC2(void *, sk_value, STACK *a, a, int b, b, return nullptr, return) ++#endif // LIBRESSL_VERSION_NUMBER + DEFINEFUNC(int, SSL_session_reused, SSL *a, a, return 0, return) + DEFINEFUNC2(qssloptions, SSL_CTX_set_options, SSL_CTX *ctx, ctx, qssloptions op, op, return 0, return) + DEFINEFUNC(int, SSL_CTX_get_security_level, const SSL_CTX *ctx, ctx, return -1, return) +@@ -244,7 +255,8 @@ DEFINEFUNC2(void, BIO_set_shutdown, BIO *a, a, int shu + + DEFINEFUNC(long, ASN1_INTEGER_get, ASN1_INTEGER *a, a, return 0, return) + DEFINEFUNC2(int, ASN1_INTEGER_cmp, const ASN1_INTEGER *a, a, const ASN1_INTEGER *b, b, return 1, return) +-DEFINEFUNC(int, ASN1_STRING_length, ASN1_STRING *a, a, return 0, return) ++DEFINEFUNC(int, ASN1_STRING_length, const ASN1_STRING *a, a, return 0, return) ++DEFINEFUNC(int, ASN1_STRING_type, const ASN1_STRING *a, a, return 0, return) + DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return) + DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return) + DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return) +@@ -358,12 +370,14 @@ DEFINEFUNC2(int, SSL_CTX_use_PrivateKey, SSL_CTX *a, a + DEFINEFUNC2(int, SSL_CTX_use_RSAPrivateKey, SSL_CTX *a, a, RSA *b, b, return -1, return) + DEFINEFUNC3(int, SSL_CTX_use_PrivateKey_file, SSL_CTX *a, a, const char *b, b, int c, c, return -1, return) + DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *a, a, return nullptr, return) ++#ifndef LIBRESSL_VERSION_NUMBER + DEFINEFUNC(SSL_CONF_CTX *, SSL_CONF_CTX_new, DUMMYARG, DUMMYARG, return nullptr, return); + DEFINEFUNC(void, SSL_CONF_CTX_free, SSL_CONF_CTX *a, a, return ,return); + DEFINEFUNC2(void, SSL_CONF_CTX_set_ssl_ctx, SSL_CONF_CTX *a, a, SSL_CTX *b, b, return, return); + DEFINEFUNC2(unsigned int, SSL_CONF_CTX_set_flags, SSL_CONF_CTX *a, a, unsigned int b, b, return 0, return); + DEFINEFUNC(int, SSL_CONF_CTX_finish, SSL_CONF_CTX *a, a, return 0, return); + DEFINEFUNC3(int, SSL_CONF_cmd, SSL_CONF_CTX *a, a, const char *b, b, const char *c, c, return 0, return); ++#endif + DEFINEFUNC(void, SSL_free, SSL *a, a, return, DUMMYARG) + DEFINEFUNC(STACK_OF(SSL_CIPHER) *, SSL_get_ciphers, const SSL *a, a, return nullptr, return) + DEFINEFUNC(const SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a, return nullptr, return) +@@ -871,15 +885,20 @@ bool q_resolveOpenSslSymbols() + RESOLVEFUNC(AUTHORITY_INFO_ACCESS_free) + RESOLVEFUNC(EVP_PKEY_up_ref) + RESOLVEFUNC(EVP_PKEY_CTX_new) ++#ifdef LIBRESSL_VERSION_NUMBER + RESOLVEFUNC(EVP_PKEY_param_check) ++#endif + RESOLVEFUNC(EVP_PKEY_CTX_free) + RESOLVEFUNC(RSA_bits) ++ ++#ifndef LIBRESSL_VERSION_NUMBER + RESOLVEFUNC(OPENSSL_sk_new_null) + RESOLVEFUNC(OPENSSL_sk_push) + RESOLVEFUNC(OPENSSL_sk_free) + RESOLVEFUNC(OPENSSL_sk_num) + RESOLVEFUNC(OPENSSL_sk_pop_free) + RESOLVEFUNC(OPENSSL_sk_value) ++#endif + RESOLVEFUNC(DH_get0_pqg) + RESOLVEFUNC(SSL_CTX_set_options) + RESOLVEFUNC(SSL_CTX_get_security_level) +@@ -985,6 +1004,7 @@ bool q_resolveOpenSslSymbols() + RESOLVEFUNC(ASN1_INTEGER_get) + RESOLVEFUNC(ASN1_INTEGER_cmp) + RESOLVEFUNC(ASN1_STRING_length) ++ RESOLVEFUNC(ASN1_STRING_type) + RESOLVEFUNC(ASN1_STRING_to_UTF8) + RESOLVEFUNC(BIO_ctrl) + RESOLVEFUNC(BIO_free) +@@ -1096,12 +1116,14 @@ bool q_resolveOpenSslSymbols() + RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey) + RESOLVEFUNC(SSL_CTX_use_PrivateKey_file) + RESOLVEFUNC(SSL_CTX_get_cert_store); ++#ifndef LIBRESSL_VERSION_NUMBER + RESOLVEFUNC(SSL_CONF_CTX_new); + RESOLVEFUNC(SSL_CONF_CTX_free); + RESOLVEFUNC(SSL_CONF_CTX_set_ssl_ctx); + RESOLVEFUNC(SSL_CONF_CTX_set_flags); + RESOLVEFUNC(SSL_CONF_CTX_finish); + RESOLVEFUNC(SSL_CONF_cmd); ++#endif + RESOLVEFUNC(SSL_accept) + RESOLVEFUNC(SSL_clear) + RESOLVEFUNC(SSL_connect) +@@ -1254,13 +1276,13 @@ bool q_resolveOpenSslSymbols() + //============================================================================== + QDateTime q_getTimeFromASN1(const ASN1_TIME *aTime) + { +- size_t lTimeLength = aTime->length; +- char *pString = (char *) aTime->data; ++ size_t lTimeLength = q_ASN1_STRING_length(aTime); ++ const char *pString = (const char *) q_ASN1_STRING_get0_data(aTime); + auto isValidPointer = [pString, lTimeLength](const char *const probe){ + return size_t(probe - pString) < lTimeLength; + }; + +- if (aTime->type == V_ASN1_UTCTIME) { ++ if (q_ASN1_STRING_type(aTime) == V_ASN1_UTCTIME) { + + char lBuffer[24]; + char *pBuffer = lBuffer; +@@ -1333,7 +1355,7 @@ QDateTime q_getTimeFromASN1(const ASN1_TIME *aTime) + result = result.addSecs(lSecondsFromUCT); + return result; + +- } else if (aTime->type == V_ASN1_GENERALIZEDTIME) { ++ } else if (q_ASN1_STRING_type(aTime) == V_ASN1_GENERALIZEDTIME) { + + if (lTimeLength < 15) + return QDateTime(); // hopefully never triggered diff --git a/package/qt5/qt5base/0011-openssl4.patch b/package/qt5/qt5base/0011-openssl4.patch new file mode 100644 index 0000000000..23451b2912 --- /dev/null +++ b/package/qt5/qt5base/0011-openssl4.patch @@ -0,0 +1,89 @@ +Fix build with OpenSSL 4.x + +Downloaded from +https://github.com/botovq/ports/commit/bb50119f0a15fdda547ffbf1e8d947d92470ed4e + +Upstream: n/a (QT 5.x is not updated anymore) + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> + +use compat defines for STACK and INIT_SETTINGS +disable EVP_PKEY_param_check +map q_OPENSSL_sk_*() to q_sk_*() +disable SSL_CONF_CTX +use old signature of CRYPTO_free() + +Index: src/network/ssl/qsslsocket_openssl_symbols_p.h +--- a/src/network/ssl/qsslsocket_openssl_symbols_p.h.orig ++++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h +@@ -80,6 +80,13 @@ QT_BEGIN_NAMESPACE + + #define DUMMYARG + ++#ifdef LIBRESSL_VERSION_NUMBER ++typedef _STACK STACK; ++typedef STACK OPENSSL_STACK; ++typedef void OPENSSL_INIT_SETTINGS; ++#endif ++ ++ + #if !defined QT_LINKED_OPENSSL + // **************** Shared declarations ****************** + // ret func(arg) +@@ -236,14 +243,31 @@ int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); + Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(EVP_PKEY *a); + EVP_PKEY_CTX *q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); + void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); ++#ifndef LIBRESSL_VERSION_NUMBER + int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); ++#endif + int q_RSA_bits(RSA *a); ++#ifndef LIBRESSL_VERSION_NUMBER + Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a); + Q_AUTOTEST_EXPORT void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *)); + Q_AUTOTEST_EXPORT OPENSSL_STACK *q_OPENSSL_sk_new_null(); + Q_AUTOTEST_EXPORT void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data); + Q_AUTOTEST_EXPORT void q_OPENSSL_sk_free(OPENSSL_STACK *a); + Q_AUTOTEST_EXPORT void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b); ++#else // LIBRESSL_VERSION_NUMBER ++int q_sk_num(STACK *a); ++#define q_OPENSSL_sk_num(a) q_sk_num(a) ++void q_sk_pop_free(STACK *a, void (*b)(void *)); ++#define q_OPENSSL_sk_pop_free(a, b) q_sk_pop_free(a, b) ++STACK *q_sk_new_null(); ++#define q_OPENSSL_sk_new_null() q_sk_new_null() ++void q_sk_push(STACK *st, void *data); ++#define q_OPENSSL_sk_push(st, data) q_sk_push(st, data) ++void q_sk_free(STACK *a); ++#define q_OPENSSL_sk_free q_sk_free ++void *q_sk_value(STACK *a, int b); ++#define q_OPENSSL_sk_value(a, b) q_sk_value(a, b) ++#endif // LIBRESSL_VERSION_NUMBER + int q_SSL_session_reused(SSL *a); + + #if OPENSSL_VERSION_MAJOR < 3 +@@ -373,7 +397,8 @@ void q_SSL_set_psk_use_session_callback(SSL *s, q_SSL_ + bool q_resolveOpenSslSymbols(); + long q_ASN1_INTEGER_get(ASN1_INTEGER *a); + int q_ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); +-int q_ASN1_STRING_length(ASN1_STRING *a); ++int q_ASN1_STRING_length(const ASN1_STRING *a); ++int q_ASN1_STRING_type(const ASN1_STRING *a); + int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b); + long q_BIO_ctrl(BIO *a, int b, long c, void *d); + Q_AUTOTEST_EXPORT int q_BIO_free(BIO *a); +@@ -515,12 +540,14 @@ int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b); + int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b); + int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c); + X509_STORE *q_SSL_CTX_get_cert_store(const SSL_CTX *a); ++#ifndef LIBRESSL_VERSION_NUMBER + SSL_CONF_CTX *q_SSL_CONF_CTX_new(); + void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a); + void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b); + unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b); + int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a); + int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c); ++#endif + void q_SSL_free(SSL *a); + STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(const SSL *a); + const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a); -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 61/77] package/rauc: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (59 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 60/77] package/qt5/qt5base: Add support for " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 62/77] package/redis: " Bernd Kuhls ` (15 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...N1_STRING_get0_data-and-ASN1_STRING_.patch | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 package/rauc/0001-signature-use-ASN1_STRING_get0_data-and-ASN1_STRING_.patch diff --git a/package/rauc/0001-signature-use-ASN1_STRING_get0_data-and-ASN1_STRING_.patch b/package/rauc/0001-signature-use-ASN1_STRING_get0_data-and-ASN1_STRING_.patch new file mode 100644 index 0000000000..ba8032c6e7 --- /dev/null +++ b/package/rauc/0001-signature-use-ASN1_STRING_get0_data-and-ASN1_STRING_.patch @@ -0,0 +1,48 @@ +From 101aacaf82d250bfb8e581e002b2c380869080ef Mon Sep 17 00:00:00 2001 +From: Bruno Thomsen <bruno.thomsen@gmail.com> +Date: Sat, 11 Apr 2026 17:06:10 +0200 +Subject: [PATCH] signature: use ASN1_STRING_get0_data and ASN1_STRING_length +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Use ASN1_STRING_get0_data() and ASN1_STRING_length() functions +allow an ASN1_STRING structure to be manipulated. Avoid errors +like this when compiling against OpenSSL 4.0: + +error: invalid use of incomplete typedef ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’} + +Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com> + +Upstream: https://github.com/rauc/rauc/commit/101aacaf82d250bfb8e581e002b2c380869080ef + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/signature.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/signature.c b/src/signature.c +index d2acac6b..91be7bb7 100644 +--- a/src/signature.c ++++ b/src/signature.c +@@ -1344,7 +1344,7 @@ gboolean cms_get_unverified_manifest(GBytes *sig, GBytes **manifest, GError **er + "missing manifest in inline signature"); + goto out; + } +- if (!(*content)->data || ((*content)->length <= 0)) { ++ if ((ASN1_STRING_get0_data(*content) == NULL) || (ASN1_STRING_length(*content) <= 0)) { + g_set_error( + error, + R_SIGNATURE_ERROR, +@@ -1353,7 +1353,7 @@ gboolean cms_get_unverified_manifest(GBytes *sig, GBytes **manifest, GError **er + goto out; + } + +- tmp = g_bytes_new((*content)->data, (*content)->length); ++ tmp = g_bytes_new(ASN1_STRING_get0_data(*content), ASN1_STRING_length(*content)); + if (!tmp) { + g_set_error_literal( + error, +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 62/77] package/redis: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (60 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 61/77] package/rauc: Fix build with " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 63/77] package/socat: Add support for " Bernd Kuhls ` (14 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark tls.c:676:5: error: 'X509_NAME_get_text_by_NID' is deprecated: Since OpenSSL 4.0 [-Werror=deprecated-declarations] 676 | int len = X509_NAME_get_text_by_NID(subject, nid, buf, sizeof(buf)); | ^~~ In file included from ../../../per-package/redis/host/x86_64-buildroot-linux-gnu/sysroot/usr/include/openssl/ssl.h:34, from tls.c:22: ../../../per-package/redis/host/x86_64-buildroot-linux-gnu/sysroot/usr/include/openssl/x509.h:1041:27: note: declared here 1041 | OSSL_DEPRECATEDIN_4_0 int X509_NAME_get_text_by_NID(const X509_NAME *name, | ^~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors Upstream PR exists to fix the build problem: https://github.com/redis/redis/pull/15227 Added buildroot-specific patch to remove -Werror=deprecated-declarations from CFLAGS to not block the bump of OpenSSL to 4.0.2. Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...emove-Werror-deprecated-declarations.patch | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 package/redis/0004-Remove-Werror-deprecated-declarations.patch diff --git a/package/redis/0004-Remove-Werror-deprecated-declarations.patch b/package/redis/0004-Remove-Werror-deprecated-declarations.patch new file mode 100644 index 0000000000..3c33456d52 --- /dev/null +++ b/package/redis/0004-Remove-Werror-deprecated-declarations.patch @@ -0,0 +1,28 @@ +From b42c0326b542b0e5d29cbfef2ab08d0d36430803 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Thu, 17 Sep 2026 23:58:19 +0200 +Subject: [PATCH] Remove -Werror=deprecated-declarations + +Upstream: not applicable + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Makefile b/src/Makefile +index 205508596..4f31a3af0 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -52,7 +52,7 @@ ifneq (,$(findstring FreeBSD,$(uname_S))) + STD+=-Wno-c11-extensions + endif + endif +-WARN=-Wall -W -Wno-missing-field-initializers -Werror=deprecated-declarations -Wstrict-prototypes ++WARN=-Wall -W -Wno-missing-field-initializers -Wstrict-prototypes + OPT=$(OPTIMIZATION) + + SKIP_VEC_SETS?=no +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 63/77] package/socat: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (61 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 62/77] package/redis: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 64/77] package/sofia-sip: Fix build with " Bernd Kuhls ` (13 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...penSSL-4.0-use-ASN1_STRING-accessors.patch | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 package/socat/0002-Fix-build-with-OpenSSL-4.0-use-ASN1_STRING-accessors.patch diff --git a/package/socat/0002-Fix-build-with-OpenSSL-4.0-use-ASN1_STRING-accessors.patch b/package/socat/0002-Fix-build-with-OpenSSL-4.0-use-ASN1_STRING-accessors.patch new file mode 100644 index 0000000000..6c53500d02 --- /dev/null +++ b/package/socat/0002-Fix-build-with-OpenSSL-4.0-use-ASN1_STRING-accessors.patch @@ -0,0 +1,35 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jaipaul Cheernam <jaipaul.cheernam@est.tech> +Date: Thu, 13 Aug 2026 07:00:00 +0000 +Subject: [PATCH] Fix build with OpenSSL 4.0: use ASN1_STRING accessors + +OpenSSL 4.0 made ASN1_STRING opaque. Direct access to struct members +(->data, ->length) is no longer possible. Use the accessor functions +ASN1_STRING_get0_data() and ASN1_STRING_length() instead. + +These accessors have been available since OpenSSL 1.1.0, so this change +is backward compatible. + +Upstream: Submitted [socat@dest-unreach.org] +Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> + +Downloaded from https://github.com/openembedded/openembedded-core/commit/aa435ebaaf7446ec07a88586f2de4109e02a2d38 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + xio-openssl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/xio-openssl.c ++++ b/xio-openssl.c +@@ -1898,8 +1898,8 @@ + case GEN_IPADD: + { + /* binary address format */ +- const unsigned char *data = pName->d.iPAddress->data; +- size_t len = pName->d.iPAddress->length; ++ const unsigned char *data = ASN1_STRING_get0_data(pName->d.iPAddress); ++ size_t len = ASN1_STRING_length(pName->d.iPAddress); + char aBuffer[INET6_ADDRSTRLEN]; /* canonical peername */ + struct in6_addr ip6bin; + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 64/77] package/sofia-sip: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (62 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 63/77] package/socat: Add support for " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 65/77] package/softhsm2: " Bernd Kuhls ` (12 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...001-Fix-build-error-with-OpenSSL-4.0.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 package/sofia-sip/0001-Fix-build-error-with-OpenSSL-4.0.patch diff --git a/package/sofia-sip/0001-Fix-build-error-with-OpenSSL-4.0.patch b/package/sofia-sip/0001-Fix-build-error-with-OpenSSL-4.0.patch new file mode 100644 index 0000000000..4e1b2ad87d --- /dev/null +++ b/package/sofia-sip/0001-Fix-build-error-with-OpenSSL-4.0.patch @@ -0,0 +1,42 @@ +From b21b4cc7d0dd4c3eae1a98a3fa38f4cdb2e5a385 Mon Sep 17 00:00:00 2001 +From: Ravi Kant Sharma <ravi.kant.sharma@canonical.com> +Date: Fri, 17 Jul 2026 16:41:11 +0200 +Subject: [PATCH] Fix build error with OpenSSL 4.0 + +Upstream: https://github.com/freeswitch/sofia-sip/pull/337 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + libsofia-sip-ua/stun/stun.c | 2 +- + m4/sac-openssl.m4 | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libsofia-sip-ua/stun/stun.c b/libsofia-sip-ua/stun/stun.c +index 22ca7c7..aa4b574 100644 +--- a/libsofia-sip-ua/stun/stun.c ++++ b/libsofia-sip-ua/stun/stun.c +@@ -1368,7 +1368,7 @@ int stun_tls_callback(su_root_magic_t *m, su_wait_t *w, su_wakeup_arg_t *arg) + /* openssl initiation */ + SSLeay_add_ssl_algorithms(); + SSL_load_error_strings(); +- ctx = SSL_CTX_new(TLSv1_client_method()); ++ ctx = SSL_CTX_new(TLS_client_method()); + self->sh_ctx = ctx; + + if (ctx == NULL) { +diff --git a/m4/sac-openssl.m4 b/m4/sac-openssl.m4 +index 289d3e1..76ba9f2 100644 +--- a/m4/sac-openssl.m4 ++++ b/m4/sac-openssl.m4 +@@ -30,7 +30,7 @@ else + HAVE_OPENSSL=0 + AC_MSG_WARN(OpenSSL crypto library was not found)) + +- AC_CHECK_LIB(ssl, TLSv1_method,, ++ AC_CHECK_LIB(ssl, TLS_method,, + HAVE_TLS=0 + AC_MSG_WARN(OpenSSL protocol library was not found)) + ],[AC_MSG_WARN(OpenSSL include files were not found)],[#include <openssl/safestack.h>]) +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 65/77] package/softhsm2: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (63 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 64/77] package/sofia-sip: Fix build with " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 66/77] package/squid: " Bernd Kuhls ` (11 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...mory-leak-in-OSSL-byteString2oid-863.patch | 49 ++++++++++ ...in-EdDSA-PrintableString-handling-85.patch | 98 +++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 package/softhsm2/0001-Fix-the-memory-leak-in-OSSL-byteString2oid-863.patch create mode 100644 package/softhsm2/0002-Fix-memory-leak-in-EdDSA-PrintableString-handling-85.patch diff --git a/package/softhsm2/0001-Fix-the-memory-leak-in-OSSL-byteString2oid-863.patch b/package/softhsm2/0001-Fix-the-memory-leak-in-OSSL-byteString2oid-863.patch new file mode 100644 index 0000000000..2defeda775 --- /dev/null +++ b/package/softhsm2/0001-Fix-the-memory-leak-in-OSSL-byteString2oid-863.patch @@ -0,0 +1,49 @@ +From 1b72640ceccaa8fdd775f224c26a53fdaf189da6 Mon Sep 17 00:00:00 2001 +From: Shawn C <citypw@hardenedlinux.org> +Date: Sat, 25 Apr 2026 20:05:34 +0800 +Subject: [PATCH] Fix the memory leak in OSSL::byteString2oid (#863) + +The function `OSSL::byteString2oid` in `SoftHSM2` (OpenSSL backend) +leaks memory when decoding PKCS#11 attribute values as ASN.1 objects +or strings. It calls `d2i_ASN1_OBJECT` and `d2i_ASN1_PRINTABLESTRING` +which allocate new OpenSSL objects, but these objects are never +freed after their NIDs are extracted. + +Signed-off-by: Shawn C <citypw@hardenedlinux.org> + +Upstream: https://github.com/softhsm/SoftHSMv2/commit/57e10cbbe75069be92c7e9720c180a05833481fc + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/lib/crypto/OSSLUtil.cpp | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/lib/crypto/OSSLUtil.cpp b/src/lib/crypto/OSSLUtil.cpp +index 794f80e..d238eca 100644 +--- a/src/lib/crypto/OSSLUtil.cpp ++++ b/src/lib/crypto/OSSLUtil.cpp +@@ -177,8 +177,10 @@ int OSSL::byteString2oid(const ByteString& byteString) + { + return NID_undef; + } +- +- return OBJ_obj2nid(oid); ++ ++ int nid = OBJ_obj2nid(oid); ++ ASN1_OBJECT_free(oid); ++ return nid; + } + else if (pclass == V_ASN1_UNIVERSAL && tag == V_ASN1_PRINTABLESTRING) + { +@@ -204,6 +206,8 @@ int OSSL::byteString2oid(const ByteString& byteString) + { + return EVP_PKEY_X448; + } ++ ++ ASN1_STRING_free(curve_name); + } + + return NID_undef; +-- +2.47.3 + diff --git a/package/softhsm2/0002-Fix-memory-leak-in-EdDSA-PrintableString-handling-85.patch b/package/softhsm2/0002-Fix-memory-leak-in-EdDSA-PrintableString-handling-85.patch new file mode 100644 index 0000000000..f6b9000b13 --- /dev/null +++ b/package/softhsm2/0002-Fix-memory-leak-in-EdDSA-PrintableString-handling-85.patch @@ -0,0 +1,98 @@ +From c7e930156054e901e27149117494d53e9945f734 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ma=C5=82gorzata=20Olsz=C3=B3wka?= + <Malgorzata.Olszowka@stunnel.org> +Date: Sun, 3 May 2026 13:00:07 +0200 +Subject: [PATCH] Fix memory leak in EdDSA PrintableString handling (#858) + +Upstream: https://github.com/softhsm/SoftHSMv2/commit/d23ea09d318c03c033420d065f1c64b019cc94ed + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/lib/crypto/OSSLUtil.cpp | 37 +++++++++++++++++++++++++------------ + 1 file changed, 25 insertions(+), 12 deletions(-) + +diff --git a/src/lib/crypto/OSSLUtil.cpp b/src/lib/crypto/OSSLUtil.cpp +index d238eca..7763799 100644 +--- a/src/lib/crypto/OSSLUtil.cpp ++++ b/src/lib/crypto/OSSLUtil.cpp +@@ -160,12 +160,14 @@ ByteString OSSL::oid2ByteString(int nid) + // Convert a ByteString to an OpenSSL EVP_PKEY id + int OSSL::byteString2oid(const ByteString& byteString) + { +- ASN1_OBJECT *oid = NULL; +- ASN1_PRINTABLESTRING *curve_name = NULL; ++ ASN1_OBJECT *oid; ++ ASN1_PRINTABLESTRING *curve_name; + const unsigned char *p = byteString.const_byte_str(); + const unsigned char *pp = p; ++ const unsigned char *data; + long length; +- int tag, pclass; ++ int tag, pclass, data_len; ++ int nid = NID_undef; + + ASN1_get_object(&pp, &length, &tag, &pclass, byteString.size()); + if (pclass == V_ASN1_UNIVERSAL && tag == V_ASN1_OBJECT) +@@ -177,39 +179,50 @@ int OSSL::byteString2oid(const ByteString& byteString) + { + return NID_undef; + } +- +- int nid = OBJ_obj2nid(oid); ++ ++ nid = OBJ_obj2nid(oid); + ASN1_OBJECT_free(oid); +- return nid; + } + else if (pclass == V_ASN1_UNIVERSAL && tag == V_ASN1_PRINTABLESTRING) + { + /* The final PKCS#11 3.0 expects curve name encoded as PrintableString */ + curve_name = d2i_ASN1_PRINTABLESTRING(NULL, &p, byteString.size()); + +- if (strcmp((char *)curve_name->data, "edwards25519") == 0) ++ if (curve_name == NULL) ++ { ++ return NID_undef; ++ } ++ ++ data = ASN1_STRING_get0_data(curve_name); ++ data_len = ASN1_STRING_length(curve_name); ++ ++ if (data_len == 12 && memcmp(data, "edwards25519", data_len) == 0) + { ++ ASN1_PRINTABLESTRING_free(curve_name); + return EVP_PKEY_ED25519; + } + +- if (strcmp((char *)curve_name->data, "curve25519") == 0) ++ if (data_len == 10 && memcmp(data, "curve25519", 10) == 0) + { ++ ASN1_PRINTABLESTRING_free(curve_name); + return EVP_PKEY_X25519; + } + +- if (strcmp((char *)curve_name->data, "edwards448") == 0) ++ if (data_len == 10 && memcmp(data, "edwards448", 10) == 0) + { ++ ASN1_PRINTABLESTRING_free(curve_name); + return EVP_PKEY_ED448; + } + +- if (strcmp((char *)curve_name->data, "curve448") == 0) ++ if (data_len == 8 && memcmp(data, "curve448", 8) == 0) + { ++ ASN1_PRINTABLESTRING_free(curve_name); + return EVP_PKEY_X448; + } + +- ASN1_STRING_free(curve_name); ++ ASN1_PRINTABLESTRING_free(curve_name); + } + +- return NID_undef; ++ return nid; + } + #endif +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 66/77] package/squid: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (64 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 65/77] package/softhsm2: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-20 12:06 ` Thomas Petazzoni via buildroot 2026-09-19 15:58 ` [Buildroot] [PATCH v2 67/77] package/sscep: " Bernd Kuhls ` (10 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0001-Fix-OpenSSL-4.0-compatibility.patch | 368 ++++++++++++++++++ 1 file changed, 368 insertions(+) create mode 100644 package/squid/0001-Fix-OpenSSL-4.0-compatibility.patch diff --git a/package/squid/0001-Fix-OpenSSL-4.0-compatibility.patch b/package/squid/0001-Fix-OpenSSL-4.0-compatibility.patch new file mode 100644 index 0000000000..38fc0c4a04 --- /dev/null +++ b/package/squid/0001-Fix-OpenSSL-4.0-compatibility.patch @@ -0,0 +1,368 @@ +From 144a59fec3d7a4bd7f0c3e71934156e1a56ebabc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Pavol=20=C5=BD=C3=A1=C4=8Dik?= <pzacik@redhat.com> +Date: Wed, 6 May 2026 17:18:58 +0200 +Subject: [PATCH] Fix OpenSSL 4.0 compatibility + +Replace direct ASN1 structure field access with accessor functions. +and use ASN1_STRING_set() instead of direct field assignment. + +Fix issues caused by X509* API constness changes; in some cases, +casting the const away is necessary to keep compatibility with +OpenSSL 3. + +Downloaded from Fedora: +https://src.fedoraproject.org/rpms/squid/blob/rawhide/f/squid-7.5-openssl4.patch + +Upstream: https://github.com/squid-cache/squid/pull/2389#issuecomment-5554800393 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + .../cert_generators/file/certificate_db.cc | 2 +- + src/ssl/gadgets.cc | 92 +++++++++++-------- + src/ssl/gadgets.h | 4 +- + src/ssl/support.cc | 18 ++-- + 4 files changed, 66 insertions(+), 50 deletions(-) + +diff --git a/src/security/cert_generators/file/certificate_db.cc b/src/security/cert_generators/file/certificate_db.cc +index 4b729b316..35849aa63 100644 +--- a/src/security/cert_generators/file/certificate_db.cc ++++ b/src/security/cert_generators/file/certificate_db.cc +@@ -335,7 +335,7 @@ Ssl::CertificateDb::addCertAndPrivateKey(std::string const &useKey, const Securi + } + + const auto tm = X509_getm_notAfter(cert.get()); +- row.setValue(cnlExp_date, std::string(reinterpret_cast<char *>(tm->data), tm->length).c_str()); ++ row.setValue(cnlExp_date, std::string(reinterpret_cast<const char *>(ASN1_STRING_get0_data(tm)), ASN1_STRING_length(tm)).c_str()); + const auto subject = OneLineSummary(*X509_get_subject_name(cert.get())); + row.setValue(cnlName, subject.get()); + row.setValue(cnlKey, useKey.c_str()); +diff --git a/src/ssl/gadgets.cc b/src/ssl/gadgets.cc +index 06b8b79dd..100ee6a46 100644 +--- a/src/ssl/gadgets.cc ++++ b/src/ssl/gadgets.cc +@@ -259,20 +259,31 @@ static bool replaceCommonName(Security::CertPointer & cert, std::string const &r + if (cn.length() > 2 && *cn.begin() == '[' && *cn.rbegin() == ']') + cn = cn.substr(1, cn.size()-2); + +- X509_NAME *name = X509_get_subject_name(cert.get()); ++ const X509_NAME *subject = X509_get_subject_name(cert.get()); ++ if (!subject) ++ return false; ++ ++ X509_NAME *name = X509_NAME_dup(subject); + if (!name) + return false; ++ + // Remove the CN part: + int loc = X509_NAME_get_index_by_NID(name, NID_commonName, -1); +- if (loc >=0) { +- X509_NAME_ENTRY *tmp = X509_NAME_get_entry(name, loc); +- X509_NAME_delete_entry(name, loc); ++ if (loc >= 0) { ++ X509_NAME_ENTRY *tmp = X509_NAME_delete_entry(name, loc); + X509_NAME_ENTRY_free(tmp); + } + + // Add a new CN +- return X509_NAME_add_entry_by_NID(name, NID_commonName, MBSTRING_ASC, +- (unsigned char *)(cn.c_str()), -1, -1, 0); ++ if (!X509_NAME_add_entry_by_NID(name, NID_commonName, MBSTRING_ASC, ++ (unsigned char *)(cn.c_str()), -1, -1, 0)) { ++ X509_NAME_free(name); ++ return false; ++ } ++ ++ int ret = X509_set_subject_name(cert.get(), name); ++ X509_NAME_free(name); ++ return ret; + } + + const char *Ssl::CertSignAlgorithmStr[] = { +@@ -301,9 +312,9 @@ static void + printX509Signature(const Security::CertPointer &cert, std::string &out) + { + const ASN1_BIT_STRING *sig = Ssl::X509_get_signature(cert); +- if (sig && sig->data) { +- const unsigned char *s = sig->data; +- for (int i = 0; i < sig->length; ++i) { ++ if (sig && ASN1_STRING_get0_data(sig)) { ++ const unsigned char *s = ASN1_STRING_get0_data(sig); ++ for (int i = 0; i < ASN1_STRING_length(sig); ++i) { + char hex[3]; + snprintf(hex, sizeof(hex), "%02x", s[i]); + out.append(hex); +@@ -377,7 +388,7 @@ mimicAuthorityKeyId(Security::CertPointer &cert, Security::CertPointer const &mi + X509_EXTENSION *ext; + // Check if the issuer has the Subject Key Identifier extension + const int indx = X509_get_ext_by_NID(issuerCert.get(), NID_subject_key_identifier, -1); +- if (indx >= 0 && (ext = X509_get_ext(issuerCert.get(), indx))) { ++ if (indx >= 0 && (ext = const_cast<X509_EXTENSION *>(X509_get_ext(issuerCert.get(), indx)))) { + issuerKeyId.reset((ASN1_OCTET_STRING *)X509V3_EXT_d2i(ext)); + } + } +@@ -418,8 +429,7 @@ mimicAuthorityKeyId(Security::CertPointer &cert, Security::CertPointer const &mi + unsigned char *ext_der = nullptr; + int ext_len = ASN1_item_i2d((ASN1_VALUE *)theAuthKeyId.get(), &ext_der, ASN1_ITEM_ptr(method->it)); + Ssl::ASN1_OCTET_STRING_Pointer extOct(ASN1_OCTET_STRING_new()); +- extOct.get()->data = ext_der; +- extOct.get()->length = ext_len; ++ ASN1_STRING_set(extOct.get(), ext_der, ext_len); + Ssl::X509_EXTENSION_Pointer extAuthKeyId(X509_EXTENSION_create_by_NID(nullptr, NID_authority_key_identifier, 0, extOct.get())); + if (!extAuthKeyId.get()) + return false; +@@ -471,7 +481,7 @@ mimicExtensions(Security::CertPointer & cert, Security::CertPointer const &mimic + int nid; + for (int i = 0; (nid = extensions[i]) != 0; ++i) { + const int pos = X509_get_ext_by_NID(mimicCert.get(), nid, -1); +- if (X509_EXTENSION *ext = X509_get_ext(mimicCert.get(), pos)) { ++ if (X509_EXTENSION *ext = const_cast<X509_EXTENSION *>(X509_get_ext(mimicCert.get(), pos))) { + // Mimic extension exactly. + if (X509_add_ext(cert.get(), ext, -1)) + ++added; +@@ -482,7 +492,7 @@ mimicExtensions(Security::CertPointer & cert, Security::CertPointer const &mimic + // that the more stringent requirements are met. + + const int p = X509_get_ext_by_NID(cert.get(), NID_key_usage, -1); +- if ((ext = X509_get_ext(cert.get(), p)) != nullptr) { ++ if ((ext = const_cast<X509_EXTENSION *>(X509_get_ext(cert.get(), p))) != nullptr) { + ASN1_BIT_STRING *keyusage = (ASN1_BIT_STRING *)X509V3_EXT_d2i(ext); + ASN1_BIT_STRING_set_bit(keyusage, KeyEncipherment, 1); + +@@ -495,8 +505,7 @@ mimicExtensions(Security::CertPointer & cert, Security::CertPointer const &mimic + (const ASN1_ITEM *)ASN1_ITEM_ptr(method->it)); + + ASN1_OCTET_STRING *ext_oct = ASN1_OCTET_STRING_new(); +- ext_oct->data = ext_der; +- ext_oct->length = ext_len; ++ ASN1_STRING_set(ext_oct, ext_der, ext_len); + X509_EXTENSION_set_data(ext, ext_oct); + + ASN1_OCTET_STRING_free(ext_oct); +@@ -518,7 +527,7 @@ mimicExtensions(Security::CertPointer & cert, Security::CertPointer const &mimic + SBuf + Ssl::AsnToSBuf(const ASN1_STRING &buffer) + { +- return SBuf(reinterpret_cast<const char *>(buffer.data), buffer.length); ++ return SBuf(reinterpret_cast<const char *>(ASN1_STRING_get0_data(&buffer)), ASN1_STRING_length(&buffer)); + } + + /// OpenSSL ASN1_STRING_to_UTF8() wrapper +@@ -547,7 +556,7 @@ Ssl::ParseAsSimpleDomainNameOrIp(const SBuf &text) + } + + std::optional<AnyP::Host> +-Ssl::ParseCommonNameAt(X509_NAME &name, const int cnIndex) ++Ssl::ParseCommonNameAt(const X509_NAME &name, const int cnIndex) + { + const auto cn = X509_NAME_ENTRY_get_data(X509_NAME_get_entry(&name, cnIndex)); + if (!cn) { +@@ -576,7 +585,7 @@ Ssl::ParseCommonNameAt(X509_NAME &name, const int cnIndex) + static bool + addAltNameWithSubjectCn(Security::CertPointer &cert) + { +- X509_NAME *name = X509_get_subject_name(cert.get()); ++ const X509_NAME *name = X509_get_subject_name(cert.get()); + if (!name) + return false; + +@@ -610,7 +619,7 @@ static bool buildCertificate(Security::CertPointer & cert, Ssl::CertificatePrope + // returns a pointer to the existing subject name. Nothing to clean here. + if (properties.mimicCert.get()) { + // Leave subject empty if we cannot extract it from true cert. +- if (X509_NAME *name = X509_get_subject_name(properties.mimicCert.get())) { ++ if (const X509_NAME *name = X509_get_subject_name(properties.mimicCert.get())) { + // X509_set_subject_name will call X509_dup for name + X509_set_subject_name(cert.get(), name); + } +@@ -656,7 +665,7 @@ static bool buildCertificate(Security::CertPointer & cert, Ssl::CertificatePrope + bool useCommonNameAsAltName = true; + // mimic the alias and possibly subjectAltName + if (properties.mimicCert.get()) { +- unsigned char *alStr; ++ const unsigned char *alStr; + int alLen; + alStr = X509_alias_get0(properties.mimicCert.get(), &alLen); + if (alStr) { +@@ -667,7 +676,7 @@ static bool buildCertificate(Security::CertPointer & cert, Ssl::CertificatePrope + // certificates with CN unrelated to subjectAltNames. + if (!properties.setCommonName) { + int pos = X509_get_ext_by_NID(properties.mimicCert.get(), NID_subject_alt_name, -1); +- X509_EXTENSION *ext=X509_get_ext(properties.mimicCert.get(), pos); ++ X509_EXTENSION *ext = const_cast<X509_EXTENSION *>(X509_get_ext(properties.mimicCert.get(), pos)); + if (ext) { + if (X509_add_ext(cert.get(), ext, -1)) + ++addedExtensions; +@@ -922,20 +931,23 @@ Ssl::WritePrivateKey(Ssl::BIO_Pointer &bio, const Security::PrivateKeyPointer &p + } + + Ssl::UniqueCString +-Ssl::OneLineSummary(X509_NAME &name) ++Ssl::OneLineSummary(const X509_NAME &name) + { + return Ssl::UniqueCString(X509_NAME_oneline(&name, nullptr, 0)); + } + + bool Ssl::sslDateIsInTheFuture(char const * date) + { +- ASN1_UTCTIME tm; +- tm.flags = 0; +- tm.type = 23; +- tm.data = (unsigned char *)date; +- tm.length = strlen(date); +- +- return (X509_cmp_current_time(&tm) > 0); ++ ASN1_UTCTIME *tm = ASN1_UTCTIME_new(); ++ if (!tm) ++ return false; ++ if (!ASN1_UTCTIME_set_string(tm, date)) { ++ ASN1_UTCTIME_free(tm); ++ return false; ++ } ++ int result = X509_cmp_current_time(tm); ++ ASN1_UTCTIME_free(tm); ++ return (result > 0); + } + + /// Print the time represented by a ASN1_TIME struct to a string using GeneralizedTime format +@@ -945,14 +957,18 @@ static bool asn1timeToGeneralizedTimeStr(ASN1_TIME *aTime, char *buf, int bufLen + // UTCTime has the form YYMMDDHHMMSS[Z | [+|-]offset] + // GeneralizedTime has the form YYYYMMDDHHMMSS[Z | [+|-] offset] + ++ const unsigned char *data = ASN1_STRING_get0_data(aTime); ++ int length = ASN1_STRING_length(aTime); ++ int type = ASN1_STRING_type(aTime); ++ + // length should have space for data plus 2 extra bytes for the two extra year fields + // plus the '\0' char. +- if ((aTime->length + 3) > bufLen) ++ if ((length + 3) > bufLen) + return false; + + char *str; +- if (aTime->type == V_ASN1_UTCTIME) { +- if (aTime->data[0] > '5') { // RFC 2459, section 4.1.2.5.1 ++ if (type == V_ASN1_UTCTIME) { ++ if (data[0] > '5') { // RFC 2459, section 4.1.2.5.1 + buf[0] = '1'; + buf[1] = '9'; + } else { +@@ -960,11 +976,11 @@ static bool asn1timeToGeneralizedTimeStr(ASN1_TIME *aTime, char *buf, int bufLen + buf[1] = '0'; + } + str = buf +2; +- } else // if (aTime->type == V_ASN1_GENERALIZEDTIME) ++ } else // if (type == V_ASN1_GENERALIZEDTIME) + str = buf; + +- memcpy(str, aTime->data, aTime->length); +- str[aTime->length] = '\0'; ++ memcpy(str, data, length); ++ str[length] = '\0'; + return true; + } + +@@ -996,8 +1012,8 @@ bool Ssl::certificateMatchesProperties(X509 *cert, CertificateProperties const & + return true; + + if (!properties.setCommonName) { +- X509_NAME *cert1_name = X509_get_subject_name(cert); +- X509_NAME *cert2_name = X509_get_subject_name(cert2); ++ const X509_NAME *cert1_name = X509_get_subject_name(cert); ++ const X509_NAME *cert2_name = X509_get_subject_name(cert2); + if (X509_NAME_cmp(cert1_name, cert2_name) != 0) + return false; + } else if (properties.commonName != CommonHostName(cert)) +diff --git a/src/ssl/gadgets.h b/src/ssl/gadgets.h +index e0c60c3a3..4c487596b 100644 +--- a/src/ssl/gadgets.h ++++ b/src/ssl/gadgets.h +@@ -160,7 +160,7 @@ bool WriteX509Certificate(BIO_Pointer &bio, const Security::CertPointer & cert); + bool WritePrivateKey(BIO_Pointer &bio, const Security::PrivateKeyPointer &pkey); + + /// a RAII wrapper for the memory-allocating flavor of X509_NAME_oneline() +-UniqueCString OneLineSummary(X509_NAME &); ++UniqueCString OneLineSummary(const X509_NAME &); + + /** + \ingroup SslCrtdSslAPI +@@ -285,7 +285,7 @@ const char *CommonHostName(X509 *x509); + SBuf AsnToSBuf(const ASN1_STRING &); + + /// interprets X.509 Subject or Issuer name entry (at the given position) as CN +-std::optional<AnyP::Host> ParseCommonNameAt(X509_NAME &, int); ++std::optional<AnyP::Host> ParseCommonNameAt(const X509_NAME &, int); + + /// interprets the given buffer as either a textual representation of an IP + /// address (if possible) or a domain name without wildcard support (otherwise) +diff --git a/src/ssl/support.cc b/src/ssl/support.cc +index e7872035c..09f268a7e 100644 +--- a/src/ssl/support.cc ++++ b/src/ssl/support.cc +@@ -272,23 +272,23 @@ ParseSubjectAltName(const GENERAL_NAME &san) + + // RFC 5280 section 4.2.1.6 signals IPv4/IPv6 address family using data length + +- if (san.d.iPAddress->length == 4) { ++ if (ASN1_STRING_length(san.d.iPAddress) == 4) { + struct in_addr addr; + static_assert(sizeof(addr.s_addr) == 4); +- memcpy(&addr.s_addr, san.d.iPAddress->data, sizeof(addr.s_addr)); ++ memcpy(&addr.s_addr, ASN1_STRING_get0_data(san.d.iPAddress), sizeof(addr.s_addr)); + const Ip::Address ip(addr); + return AnyP::Host::ParseIp(ip); + } + +- if (san.d.iPAddress->length == 16) { ++ if (ASN1_STRING_length(san.d.iPAddress) == 16) { + struct in6_addr addr; + static_assert(sizeof(addr.s6_addr) == 16); +- memcpy(&addr.s6_addr, san.d.iPAddress->data, sizeof(addr.s6_addr)); ++ memcpy(&addr.s6_addr, ASN1_STRING_get0_data(san.d.iPAddress), sizeof(addr.s6_addr)); + const Ip::Address ip(addr); + return AnyP::Host::ParseIp(ip); + } + +- debugs(83, 3, "unexpected length of an IP address SAN: " << san.d.iPAddress->length); ++ debugs(83, 3, "unexpected length of an IP address SAN: " << ASN1_STRING_length(san.d.iPAddress)); + return std::nullopt; + } + +@@ -856,7 +856,7 @@ Ssl::InitClientContext(Security::ContextPointer &ctx, Security::PeerOptions &pee + + /// \ingroup ServerProtocolSSLInternal + static const char * +-ssl_get_attribute(X509_NAME * name, const char *attribute_name) ++ssl_get_attribute(const X509_NAME * name, const char *attribute_name) + { + static char buffer[1024]; + buffer[0] = '\0'; +@@ -879,7 +879,7 @@ ssl_get_attribute(X509_NAME * name, const char *attribute_name) + const char * + Ssl::GetX509UserAttribute(X509 * cert, const char *attribute_name) + { +- X509_NAME *name; ++ const X509_NAME *name; + const char *ret; + + if (!cert) +@@ -933,7 +933,7 @@ const char * + Ssl::GetX509CAAttribute(X509 * cert, const char *attribute_name) + { + +- X509_NAME *name; ++ const X509_NAME *name; + const char *ret; + + if (!cert) +@@ -1484,7 +1484,7 @@ void Ssl::InRamCertificateDbKey(const Ssl::CertificateProperties &certProperties + if (certProperties.mimicCert) { + if (auto *sig = Ssl::X509_get_signature(certProperties.mimicCert)) { + origSignatureAsKey = true; +- key.append((const char *)sig->data, sig->length); ++ key.append((const char *)ASN1_STRING_get0_data(sig), ASN1_STRING_length(sig)); + } + } + +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 66/77] package/squid: Fix build with OpenSSL 4.0.0 2026-09-19 15:58 ` [Buildroot] [PATCH v2 66/77] package/squid: " Bernd Kuhls @ 2026-09-20 12:06 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 12:06 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Hello Bernd, On Sat, Sep 19, 2026 at 05:58:31PM +0200, Bernd Kuhls wrote: > +Downloaded from Fedora: > +https://src.fedoraproject.org/rpms/squid/blob/rawhide/f/squid-7.5-openssl4.patch > + > +Upstream: https://github.com/squid-cache/squid/pull/2389#issuecomment-5554800393 Thanks for the patch, but this is not a proper upstream submission. You're just commenting another PR that has a subset of the changes required, pointing to the Fedora patch. This has no chance of ever bringing the complete changes from the Fedora patch upstream. Could you do a proper upstream submission, splitting the Fedora patch into several ones if needed? Thanks a lot! Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 67/77] package/sscep: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (65 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 66/77] package/squid: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-20 11:46 ` Thomas Petazzoni via buildroot 2026-09-19 15:58 ` [Buildroot] [PATCH v2 68/77] package/sudo: Add support for " Bernd Kuhls ` (9 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0003-Fix-build-with-OpenSSL-4.x.patch | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 package/sscep/0003-Fix-build-with-OpenSSL-4.x.patch diff --git a/package/sscep/0003-Fix-build-with-OpenSSL-4.x.patch b/package/sscep/0003-Fix-build-with-OpenSSL-4.x.patch new file mode 100644 index 0000000000..61fdc692d4 --- /dev/null +++ b/package/sscep/0003-Fix-build-with-OpenSSL-4.x.patch @@ -0,0 +1,33 @@ +From 813ebb01ee32c35474ec8eb65464f698ccd6495f Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Thu, 10 Sep 2026 00:00:21 +0200 +Subject: [PATCH] Fix build with OpenSSL 4.x + +Upstream: https://github.com/certnanny/sscep/pull/192 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/fileutils.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/fileutils.c b/src/fileutils.c +index 7b846b7..27608f0 100644 +--- a/src/fileutils.c ++++ b/src/fileutils.c +@@ -447,10 +447,10 @@ guess_ca_certs(const char* filename, X509_NAME *issuer_name, + if (!is_issuer) { + /* X509_get_key_usage(cert[i]) is not in older openssl */ + ASN1_BIT_STRING *usage = X509_get_ext_d2i(cert[i], NID_key_usage, NULL, NULL); +- if (usage && (usage->length > 0)) { +- if (usage->data[0] & KU_DIGITAL_SIGNATURE) ++ if (usage && (ASN1_STRING_length(usage) > 0)) { ++ if (ASN1_STRING_get0_data(usage)[0] & KU_DIGITAL_SIGNATURE) + *sigc = cert[i]; +- if (usage->data[0] & KU_KEY_ENCIPHERMENT) ++ if (ASN1_STRING_get0_data(usage)[0] & KU_KEY_ENCIPHERMENT) + *encc = cert[i]; + } else { + /* no usability constraints */ +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 67/77] package/sscep: Fix build with OpenSSL 4.0.0 2026-09-19 15:58 ` [Buildroot] [PATCH v2 67/77] package/sscep: " Bernd Kuhls @ 2026-09-20 11:46 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 11:46 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:58:32PM +0200, Bernd Kuhls wrote: > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to master, thanks! Best regards, Thomas Petazzoni -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 68/77] package/sudo: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (66 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 67/77] package/sscep: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 69/77] package/thrift: Fix build with LibreSSL and OpenSSL 4.x Bernd Kuhls ` (8 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...-for-getting-an-ASN1_STRING-s-length.patch | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 package/sudo/0002-Use-accessor-for-getting-an-ASN1_STRING-s-length.patch diff --git a/package/sudo/0002-Use-accessor-for-getting-an-ASN1_STRING-s-length.patch b/package/sudo/0002-Use-accessor-for-getting-an-ASN1_STRING-s-length.patch new file mode 100644 index 0000000000..eec375f70c --- /dev/null +++ b/package/sudo/0002-Use-accessor-for-getting-an-ASN1_STRING-s-length.patch @@ -0,0 +1,46 @@ +From f97a34bc7b390f185d544e21b0ef75db1275953e Mon Sep 17 00:00:00 2001 +From: Theo Buehler <tb@openbsd.org> +Date: Sat, 22 Nov 2025 12:28:50 +0100 +Subject: [PATCH] Use accessor for getting an ASN1_STRING's length + +OpensSSL 4 has plans to make ASN1_STRING opaque [1]. hostcheck.c's code +mostly treats it as opaque, but accesses two lengths. This is API added +in OpenSSL 0.9.0, so I'm not sure we need a configure check. + +WolfSSL only recently const corrected ASN1_STRING_length(), so maybe +there will be a need to cast away const. + +[1]: https://github.com/openssl/openssl/issues/29117 + +Upstream: https://github.com/sudo-project/sudo/commit/f97a34bc7b390f185d544e21b0ef75db1275953e + +[Bernd: backported to 1.9.17p2] +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + lib/iolog/hostcheck.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/iolog/hostcheck.c b/lib/iolog/hostcheck.c +index dbb900e71..8383d2c49 100644 +--- a/lib/iolog/hostcheck.c ++++ b/lib/iolog/hostcheck.c +@@ -323,14 +323,14 @@ matches_subject_alternative_name(const char *hostname, + #endif + + /* IPV4 address */ +- if(current_name->d.iPAddress->length == 4) { ++ if(ASN1_STRING_length(current_name->d.iPAddress) == 4) { + if (inet_ntop(AF_INET, san_ip, san_ip_str, INET_ADDRSTRLEN) == NULL) { + result = MalformedCertificate; + break; + } + #if defined(HAVE_STRUCT_IN6_ADDR) + /* IPV6 address */ +- } else if (current_name->d.iPAddress->length == 16) { ++ } else if (ASN1_STRING_length(current_name->d.iPAddress) == 16) { + if (inet_ntop(AF_INET6, san_ip, san_ip_str, INET6_ADDRSTRLEN) == NULL) { + result = MalformedCertificate; + break; +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 69/77] package/thrift: Fix build with LibreSSL and OpenSSL 4.x 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (67 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 68/77] package/sudo: Add support for " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 70/77] package/thrift: Fix build with OpenSSL 4.0.0 Bernd Kuhls ` (7 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Buildroot commit cf2471a9d958b0eaa2db3508e96b465eaa481f3e bumped the package from 0.14.1 to 0.22.0 which includes upstream commit https://github.com/apache/thrift/commit/98be76fc033f1d66bcfd09d4a22b86e8061e89c2 This commit added OPENSSL_thread_stop() which is not provided by LibreSSL causing a build error. To fix the problem we add an upstream patch which is a merged version of LibreSSL fixes[1] and fixes for the upcoming OpenSSL bump to 4.0.0. Fixes: https://autobuild.buildroot.net/results/242/242ea99f1c1c29fcc364d59a6a7efc8f11bcf76e/ [1] https://github.com/apache/thrift/pull/3736 Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...sport-Make-it-compatible-with-OpenSS.patch | 193 ++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 package/thrift/0002-THRIFT-6170-transport-Make-it-compatible-with-OpenSS.patch diff --git a/package/thrift/0002-THRIFT-6170-transport-Make-it-compatible-with-OpenSS.patch b/package/thrift/0002-THRIFT-6170-transport-Make-it-compatible-with-OpenSS.patch new file mode 100644 index 0000000000..7a5cfc5ce1 --- /dev/null +++ b/package/thrift/0002-THRIFT-6170-transport-Make-it-compatible-with-OpenSS.patch @@ -0,0 +1,193 @@ +From e460f4277fabede007c751969ab8fc161eadaa16 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> +Date: Sun, 30 Aug 2026 10:19:00 +0200 +Subject: [PATCH] THRIFT-6170: transport: Make it compatible with OpenSSL 4.0 + +Make it compatible with OpenSSL 4.0: +- Don't use ERR_remove_state(). It has been an empty stub since OpenSSL + 1.1.0 and got finally removed in 4.0- + +- SSLv3_method(), TLSv1_method(), TLSv1_1_method() and TLSv1_2_method() + have been removed. The recommendation is to use TLS_method() instead. + LATEST points to TLSv1_2_method which is not going to work. + Make SSLTLS and LATEST point to TLS_method() for newer OpenSSL which + uses the highest supported protocol version. + Adjust the testsuite to only test those two. + +- The return value of a few functions such as X509_get_subject_name() + has been made const. Use the const pointer only for newer OpenSSL. + +- While at it, pull the libressl related change from #3736 + +Client: cpp,c_glib. + +Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> + +Upstream: https://github.com/apache/thrift/pull/3761 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + .../c_glib/transport/thrift_ssl_socket.c | 11 ++++++++++ + lib/cpp/src/thrift/transport/TSSLSocket.cpp | 20 +++++++++++++++---- + lib/cpp/test/SecurityFromBufferTest.cpp | 10 ++++++++++ + lib/cpp/test/SecurityTest.cpp | 10 ++++++++++ + 4 files changed, 47 insertions(+), 4 deletions(-) + +diff --git a/lib/c_glib/src/thrift/c_glib/transport/thrift_ssl_socket.c b/lib/c_glib/src/thrift/c_glib/transport/thrift_ssl_socket.c +index d6c7bb2ba..0681831cb 100644 +--- a/lib/c_glib/src/thrift/c_glib/transport/thrift_ssl_socket.c ++++ b/lib/c_glib/src/thrift/c_glib/transport/thrift_ssl_socket.c +@@ -285,7 +285,9 @@ thrift_ssl_socket_close (ThriftTransport *transport, GError **error) + SSL_shutdown(ssl_socket->ssl); + SSL_free(ssl_socket->ssl); + ssl_socket->ssl = NULL; ++#if OPENSSL_VERSION_NUMBER < 0x40000000L + ERR_remove_state(0); ++#endif + } + return thrift_socket_close(transport, error); + } +@@ -710,7 +712,9 @@ void thrift_ssl_socket_finalize_openssl(void) + ERR_free_strings(); + EVP_cleanup(); + CRYPTO_cleanup_all_ex_data(); ++#if OPENSSL_VERSION_NUMBER < 0x40000000L + ERR_remove_state(0); ++#endif + } + + +@@ -832,6 +836,12 @@ thrift_ssl_socket_context_initialize(ThriftSSLSocketProtocol ssl_protocol, GErro + { + SSL_CTX* context = NULL; + switch(ssl_protocol){ ++#if OPENSSL_VERSION_NUMBER >= 0x40000000L ++ case SSLTLS: ++ case LATEST: ++ context = SSL_CTX_new(TLS_method()); ++ break; ++#else + case SSLTLS: + context = SSL_CTX_new(SSLv23_method()); + break; +@@ -849,6 +859,7 @@ thrift_ssl_socket_context_initialize(ThriftSSLSocketProtocol ssl_protocol, GErro + case TLSv1_2: + context = SSL_CTX_new(TLSv1_2_method()); + break; ++#endif + default: + g_set_error (error, THRIFT_TRANSPORT_ERROR, + THRIFT_SSL_SOCKET_ERROR_CIPHER_NOT_AVAILABLE, +diff --git a/lib/cpp/src/thrift/transport/TSSLSocket.cpp b/lib/cpp/src/thrift/transport/TSSLSocket.cpp +index 48b96ebf7..e8d69a329 100644 +--- a/lib/cpp/src/thrift/transport/TSSLSocket.cpp ++++ b/lib/cpp/src/thrift/transport/TSSLSocket.cpp +@@ -157,7 +157,7 @@ void cleanupOpenSSL() { + #endif + EVP_cleanup(); + CRYPTO_cleanup_all_ex_data(); +-#if OPENSSL_VERSION_NUMBER >= 0x10100000 ++#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) + // Do nothing unless an openssl derivative is detected + # if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_IS_AWSLC) + // https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_thread_stop.html +@@ -180,6 +180,10 @@ static char uppercase(char c); + + // SSLContext implementation + SSLContext::SSLContext(const SSLProtocol& protocol) { ++#if OPENSSL_VERSION_NUMBER >= 0x40000000L ++ if (protocol == SSLTLS || protocol == LATEST) { ++ ctx_ = SSL_CTX_new(TLS_method()); ++#else + if (protocol == SSLTLS) { + ctx_ = SSL_CTX_new(SSLv23_method()); + #ifndef OPENSSL_NO_SSL3 +@@ -192,6 +196,7 @@ SSLContext::SSLContext(const SSLProtocol& protocol) { + ctx_ = SSL_CTX_new(TLSv1_1_method()); + } else if (protocol == TLSv1_2) { + ctx_ = SSL_CTX_new(TLSv1_2_method()); ++#endif + } else { + /// UNKNOWN PROTOCOL! + throw TSSLException("SSL_CTX_new: Unknown protocol"); +@@ -405,7 +410,7 @@ void TSSLSocket::close() { + SSL_free(ssl_); + ssl_ = nullptr; + handshakeCompleted_ = false; +-#if OPENSSL_VERSION_NUMBER >= 0x10100000 ++#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) + // Do nothing unless an openssl derivative is detected + # if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_IS_AWSLC) + // https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_thread_stop.html +@@ -800,9 +805,16 @@ void TSSLSocket::authorize() { + } + + // extract commonName ++#if OPENSSL_VERSION_NUMBER >= 0x40000000L ++ const X509_NAME* name = X509_get_subject_name(cert); ++ const X509_NAME_ENTRY* entry; ++ const ASN1_STRING* common; ++#else + X509_NAME* name = X509_get_subject_name(cert); ++ X509_NAME_ENTRY* entry; ++ ASN1_STRING* common; ++#endif + if (name != nullptr) { +- X509_NAME_ENTRY* entry; + unsigned char* utf8; + int last = -1; + while (decision == AccessManager::SKIP) { +@@ -812,7 +824,7 @@ void TSSLSocket::authorize() { + entry = X509_NAME_get_entry(name, last); + if (entry == nullptr) + continue; +- ASN1_STRING* common = X509_NAME_ENTRY_get_data(entry); ++ common = X509_NAME_ENTRY_get_data(entry); + int size = ASN1_STRING_to_UTF8(&utf8, common); + if (host.empty()) { + host = (server() ? getPeerHost() : getHost()); +diff --git a/lib/cpp/test/SecurityFromBufferTest.cpp b/lib/cpp/test/SecurityFromBufferTest.cpp +index 08f76b3f2..1ff64087a 100644 +--- a/lib/cpp/test/SecurityFromBufferTest.cpp ++++ b/lib/cpp/test/SecurityFromBufferTest.cpp +@@ -235,6 +235,16 @@ BOOST_AUTO_TEST_CASE(ssl_security_matrix) { + continue; + } + #endif ++#if OPENSSL_VERSION_NUMBER >= 0x40000000L ++ if (!(si == apache::thrift::transport::SSLTLS || ++ si == apache::thrift::transport::LATEST) || ++ !(ci == apache::thrift::transport::SSLTLS || ++ ci == apache::thrift::transport::LATEST)) ++ { ++ // Only SSLTLS / LATEST is supported. ++ continue; ++ } ++#endif + + boost::mutex::scoped_lock lock(mMutex); + +diff --git a/lib/cpp/test/SecurityTest.cpp b/lib/cpp/test/SecurityTest.cpp +index 86640bd68..44815dfc7 100644 +--- a/lib/cpp/test/SecurityTest.cpp ++++ b/lib/cpp/test/SecurityTest.cpp +@@ -364,6 +364,16 @@ BOOST_AUTO_TEST_CASE(ssl_security_matrix) + continue; + } + #endif ++#if OPENSSL_VERSION_NUMBER >= 0x40000000L ++ if (!(si == apache::thrift::transport::SSLTLS || ++ si == apache::thrift::transport::LATEST) || ++ !(ci == apache::thrift::transport::SSLTLS || ++ ci == apache::thrift::transport::LATEST)) ++ { ++ // Only SSLTLS / LATEST is supported. ++ continue; ++ } ++#endif + + boost::mutex::scoped_lock lock(mMutex); + +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 70/77] package/thrift: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (68 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 69/77] package/thrift: Fix build with LibreSSL and OpenSSL 4.x Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 71/77] package/tpm2-openssl: " Bernd Kuhls ` (6 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...recated-OpenSSL-API-ASN1_STRING_data.patch | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 package/thrift/0003-Replace-deprecated-OpenSSL-API-ASN1_STRING_data.patch diff --git a/package/thrift/0003-Replace-deprecated-OpenSSL-API-ASN1_STRING_data.patch b/package/thrift/0003-Replace-deprecated-OpenSSL-API-ASN1_STRING_data.patch new file mode 100644 index 0000000000..279daef4e2 --- /dev/null +++ b/package/thrift/0003-Replace-deprecated-OpenSSL-API-ASN1_STRING_data.patch @@ -0,0 +1,35 @@ +From d586077a37e14446cf385893608ea9e60a59d083 Mon Sep 17 00:00:00 2001 +From: Brad Smith <brad@comstyle.com> +Date: Sun, 23 Aug 2026 01:26:50 -0400 +Subject: [PATCH] Replace deprecated OpenSSL API ASN1_STRING_data() + +ASN1_STRING_data() has been deprecated since OpenSSL 1.1.0. Replace +with ASN1_STRING_get0_data(). ASN1_STRING_data() has been removed +with OpenSSL 4. + +Upstream: https://github.com/apache/thrift/commit/d586077a37e14446cf385893608ea9e60a59d083 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + lib/cpp/src/thrift/transport/TSSLSocket.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/lib/cpp/src/thrift/transport/TSSLSocket.cpp b/lib/cpp/src/thrift/transport/TSSLSocket.cpp +index bb8dfd13f..48b96ebf7 100644 +--- a/lib/cpp/src/thrift/transport/TSSLSocket.cpp ++++ b/lib/cpp/src/thrift/transport/TSSLSocket.cpp +@@ -770,7 +770,11 @@ void TSSLSocket::authorize() { + if (name == nullptr) { + continue; + } ++#if OPENSSL_VERSION_NUMBER >= 0x10100000 ++ const char* data = (const char*)ASN1_STRING_get0_data(name->d.ia5); ++#else + char* data = (char*)ASN1_STRING_data(name->d.ia5); ++#endif + int length = ASN1_STRING_length(name->d.ia5); + switch (name->type) { + case GEN_DNS: +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 71/77] package/tpm2-openssl: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (69 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 70/77] package/thrift: Fix build with OpenSSL 4.0.0 Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 72/77] package/trousers: " Bernd Kuhls ` (5 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...TRING-and-X509_NAME-access-for-OpenS.patch | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 package/tpm2-openssl/0001-Fix-ASN1_OCTET_STRING-and-X509_NAME-access-for-OpenS.patch diff --git a/package/tpm2-openssl/0001-Fix-ASN1_OCTET_STRING-and-X509_NAME-access-for-OpenS.patch b/package/tpm2-openssl/0001-Fix-ASN1_OCTET_STRING-and-X509_NAME-access-for-OpenS.patch new file mode 100644 index 0000000000..85393734f0 --- /dev/null +++ b/package/tpm2-openssl/0001-Fix-ASN1_OCTET_STRING-and-X509_NAME-access-for-OpenS.patch @@ -0,0 +1,87 @@ +From 6dcc3b2984e3f4dc1849c79d89c6ce736a8435b3 Mon Sep 17 00:00:00 2001 +From: Petr Gotthard <petr.gotthard@advantech.cz> +Date: Sat, 7 Mar 2026 15:51:12 +0100 +Subject: [PATCH] Fix ASN1_OCTET_STRING and X509_NAME access for OpenSSL 4.0 + compatibility + +Fixes: #166 + +Upstream: https://github.com/tpm2-software/tpm2-openssl/commit/6dcc3b2984e3f4dc1849c79d89c6ce736a8435b3 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/tpm2-provider-pkey.c | 8 ++++---- + test/ec_genpkey_x509_csr.c | 10 ++++++---- + test/rsa_pki/etc/email.conf | 2 +- + 3 files changed, 11 insertions(+), 9 deletions(-) + +diff --git a/src/tpm2-provider-pkey.c b/src/tpm2-provider-pkey.c +index 38f748e..80213af 100644 +--- a/src/tpm2-provider-pkey.c ++++ b/src/tpm2-provider-pkey.c +@@ -149,13 +149,13 @@ tpm2_keydata_read(BIO *bin, TPM2_KEYDATA *keydata, TPM2_PKEY_FORMAT format) + strcmp(type_oid, OID_loadableKey)) + goto error; + +- if (Tss2_MU_TPM2B_PRIVATE_Unmarshal(tpk->privkey->data, +- tpk->privkey->length, NULL, ++ if (Tss2_MU_TPM2B_PRIVATE_Unmarshal(ASN1_STRING_get0_data(tpk->privkey), ++ ASN1_STRING_length(tpk->privkey), NULL, + &keydata->priv)) + goto error; + +- if (Tss2_MU_TPM2B_PUBLIC_Unmarshal(tpk->pubkey->data, +- tpk->pubkey->length, NULL, ++ if (Tss2_MU_TPM2B_PUBLIC_Unmarshal(ASN1_STRING_get0_data(tpk->pubkey), ++ ASN1_STRING_length(tpk->pubkey), NULL, + &keydata->pub)) + goto error; + +diff --git a/test/ec_genpkey_x509_csr.c b/test/ec_genpkey_x509_csr.c +index e3523ec..5c9790a 100644 +--- a/test/ec_genpkey_x509_csr.c ++++ b/test/ec_genpkey_x509_csr.c +@@ -15,7 +15,7 @@ int generate_csr(const char *password, const char *filename) + EVP_PKEY_CTX *pctx = NULL; + EVP_PKEY *pkey = NULL; + X509_REQ *x509 = NULL; +- X509_NAME *name; ++ X509_NAME *name = NULL; + STACK_OF(X509_EXTENSION) *exts = NULL; + X509_EXTENSION *ex; + FILE *csr_file = NULL; +@@ -40,9 +40,10 @@ int generate_csr(const char *password, const char *filename) + || X509_REQ_set_pubkey(x509, pkey) != 1) + goto error1; + +- name = X509_REQ_get_subject_name(x509); +- if (!X509_NAME_add_entry_by_NID(name, NID_countryName, MBSTRING_ASC, (unsigned char *)"CZ", -1, -1, 0) +- || !X509_NAME_add_entry_by_NID(name, NID_commonName, MBSTRING_ASC, (const unsigned char *)"www.example.com", -1, -1, 0)) ++ if (!(name = X509_NAME_new()) ++ || !X509_NAME_add_entry_by_NID(name, NID_countryName, MBSTRING_ASC, (unsigned char *)"CZ", -1, -1, 0) ++ || !X509_NAME_add_entry_by_NID(name, NID_commonName, MBSTRING_ASC, (const unsigned char *)"www.example.com", -1, -1, 0) ++ || X509_REQ_set_subject_name(x509, name) != 1) + goto error1; + + // set requested extensions +@@ -75,6 +76,7 @@ error2: + fclose(csr_file); + error1: + sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free); ++ X509_NAME_free(name); + X509_REQ_free(x509); + EVP_PKEY_free(pkey); + EVP_PKEY_CTX_free(pctx); +diff --git a/test/rsa_pki/etc/email.conf b/test/rsa_pki/etc/email.conf +index 7606c38..73c06d2 100644 +--- a/test/rsa_pki/etc/email.conf ++++ b/test/rsa_pki/etc/email.conf +@@ -24,4 +24,4 @@ emailAddress = "fred@simple.org" + keyUsage = critical,digitalSignature,keyEncipherment + extendedKeyUsage = emailProtection,clientAuth + subjectKeyIdentifier = hash +-subjectAltName = email:move ++subjectAltName = email:copy +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 72/77] package/trousers: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (70 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 71/77] package/tpm2-openssl: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 73/77] package/turbolua: " Bernd Kuhls ` (4 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- package/trousers/0004-openssl4.patch | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 package/trousers/0004-openssl4.patch diff --git a/package/trousers/0004-openssl4.patch b/package/trousers/0004-openssl4.patch new file mode 100644 index 0000000000..5ef6cb19b0 --- /dev/null +++ b/package/trousers/0004-openssl4.patch @@ -0,0 +1,26 @@ +Description: Fix for OpenSSL4 compatibility + Replace direct access to opaque ASN1_OCTET_STRING->data field with + ASN1_STRING_get0_data() accessor. ASN1_STRING is fully opaque in OpenSSL 4.0. +Author: Ravi Kant Sharma <ravi.kant.sharma@canonical.com> +Bug-Ubuntu: https://bugs.launchpad.net/bugs/2155003 +Bug-Debian: https://bugs.debian.org/1138451 +Forwarded: no + +Patch downloaded from Debian: +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1138451#12 + +Upstream: https://sourceforge.net/p/trousers/bugs/240/ + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> + +--- a/src/tspi/tspi_asn1.c ++++ b/src/tspi/tspi_asn1.c +@@ -237,7 +237,7 @@ + + if (*rawBlobSize != 0) { + if (decBlobSize <= *rawBlobSize) { +- memcpy(rawBlob, tssBlob->blob->data, decBlobSize); ++ memcpy(rawBlob, ASN1_STRING_get0_data(tssBlob->blob), decBlobSize); + } + else { + TSS_BLOB_free(tssBlob); -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 73/77] package/turbolua: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (71 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 72/77] package/trousers: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-20 11:43 ` Thomas Petazzoni via buildroot 2026-09-19 15:58 ` [Buildroot] [PATCH v2 74/77] package/uboot-tools: " Bernd Kuhls ` (3 subsequent siblings) 76 siblings, 1 reply; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...-Replace-deprecated-OpenSSL-API-ASN1.patch | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 package/turbolua/0001-turbo_ffi_wrap.c-Replace-deprecated-OpenSSL-API-ASN1.patch diff --git a/package/turbolua/0001-turbo_ffi_wrap.c-Replace-deprecated-OpenSSL-API-ASN1.patch b/package/turbolua/0001-turbo_ffi_wrap.c-Replace-deprecated-OpenSSL-API-ASN1.patch new file mode 100644 index 0000000000..efd1dfb080 --- /dev/null +++ b/package/turbolua/0001-turbo_ffi_wrap.c-Replace-deprecated-OpenSSL-API-ASN1.patch @@ -0,0 +1,49 @@ +From e473a5b44af312679c89b759e6be2608357de57b Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Wed, 9 Sep 2026 11:16:12 +0200 +Subject: [PATCH] turbo_ffi_wrap.c: Replace deprecated OpenSSL API + ASN1_STRING_data() + +ASN1_STRING_data() has been deprecated since OpenSSL 1.1.0. Replace +with ASN1_STRING_get0_data(). ASN1_STRING_data() has been removed +with OpenSSL 4. + +Upstream: https://github.com/kernelsauce/turbo/pull/374 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + deps/turbo_ffi_wrap.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/deps/turbo_ffi_wrap.c b/deps/turbo_ffi_wrap.c +index f4a9e94..92cd88d 100644 +--- a/deps/turbo_ffi_wrap.c ++++ b/deps/turbo_ffi_wrap.c +@@ -77,7 +77,12 @@ static int matches_common_name(const char *hostname, const X509 *server_cert) + if (!common_name_asn1) { + return Error; + } ++ ++#if OPENSSL_VERSION_NUMBER >= 0x10100000 ++ common_name_str = (char *) ASN1_STRING_get0_data(common_name_asn1); ++#else + common_name_str = (char *) ASN1_STRING_data(common_name_asn1); ++#endif + if (ASN1_STRING_length(common_name_asn1) != strlen(common_name_str)) { + return MalformedCertificate; + } +@@ -113,7 +118,11 @@ static int32_t matches_subject_alternative_name( + for (i=0; i<san_names_nb; i++){ + const GENERAL_NAME *current_name = sk_GENERAL_NAME_value(san_names, i); + if (current_name->type == GEN_DNS){ ++#if OPENSSL_VERSION_NUMBER >= 0x10100000 ++ char *dns_name = (char *)ASN1_STRING_get0_data(current_name->d.dNSName); ++#else + char *dns_name = (char *)ASN1_STRING_data(current_name->d.dNSName); ++#endif + dns_name_sz = strlen(dns_name); + if (ASN1_STRING_length(current_name->d.dNSName) != dns_name_sz){ + result = MalformedCertificate; +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* Re: [Buildroot] [PATCH v2 73/77] package/turbolua: Fix build with OpenSSL 4.0.0 2026-09-19 15:58 ` [Buildroot] [PATCH v2 73/77] package/turbolua: " Bernd Kuhls @ 2026-09-20 11:43 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 107+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-09-20 11:43 UTC (permalink / raw) To: Bernd Kuhls Cc: buildroot, Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark On Sat, Sep 19, 2026 at 05:58:38PM +0200, Bernd Kuhls wrote: > Signed-off-by: Bernd Kuhls <bernd@kuhls.net> Applied to master, thanks! Best regards, Thomas Petazzoni -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 74/77] package/uboot-tools: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (72 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 73/77] package/turbolua: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 75/77] package/xmrig: Add support for " Bernd Kuhls ` (2 subsequent siblings) 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...Add-support-for-OpenSSL-Provider-API.patch | 304 ++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 package/uboot-tools/0003-Add-support-for-OpenSSL-Provider-API.patch diff --git a/package/uboot-tools/0003-Add-support-for-OpenSSL-Provider-API.patch b/package/uboot-tools/0003-Add-support-for-OpenSSL-Provider-API.patch new file mode 100644 index 0000000000..9a5071cae3 --- /dev/null +++ b/package/uboot-tools/0003-Add-support-for-OpenSSL-Provider-API.patch @@ -0,0 +1,304 @@ +From 9f78e701fa5a4faf69119d9fe1e485e76de2fe3b Mon Sep 17 00:00:00 2001 +From: Eddie Kovsky <ewk@edkovsky.org> +Date: Mon, 23 Feb 2026 09:43:22 -0700 +Subject: [PATCH] Add support for OpenSSL Provider API + +The Engine API has been deprecated since the release of OpenSSL 3.0. End +users have been advised to migrate to the new Provider interface. +Several distributions have already removed support for engines, which is +preventing U-Boot from being compiled in those environments. + +Add support for the Provider API while continuing to support the existing +Engine API on distros shipping older releases of OpenSSL. + +This is based on similar work contributed by Jan Stancek updating Linux +to use the Provider interface. + + commit 558bdc45dfb2669e1741384a0c80be9c82fa052c + Author: Jan Stancek <jstancek@redhat.com> + Date: Fri Sep 20 19:52:48 2024 +0300 + + sign-file,extract-cert: use pkcs11 provider for OPENSSL MAJOR >= 3 + +The changes have been tested with the FIT signature verification vboot +tests on Fedora 42 and Debian 13. All 30 tests pass with both the legacy +Engine library installed and with the Provider API. + +Signed-off-by: Eddie Kovsky <ewk@edkovsky.org> + +Upstream: https://github.com/u-boot/u-boot/pull/918 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + lib/aes/aes-encrypt.c | 4 +- + lib/rsa/rsa-sign.c | 102 +++++++++++++++++++++++++++++++++++++++--- + 2 files changed, 100 insertions(+), 6 deletions(-) + +diff --git a/lib/aes/aes-encrypt.c b/lib/aes/aes-encrypt.c +index 90e1407b4f0..4fc4ce23247 100644 +--- a/lib/aes/aes-encrypt.c ++++ b/lib/aes/aes-encrypt.c +@@ -16,7 +16,9 @@ + #include <openssl/err.h> + #include <openssl/ssl.h> + #include <openssl/evp.h> +-#include <openssl/engine.h> ++#if !defined(OPENSSL_NO_ENGINE) && !defined(OPENSSL_NO_DEPRECATED_3_0) ++# include <openssl/engine.h> ++#endif + #include <uboot_aes.h> + + #if OPENSSL_VERSION_NUMBER >= 0x10000000L +diff --git a/lib/rsa/rsa-sign.c b/lib/rsa/rsa-sign.c +index 0e38c9e802f..f456f3c58e6 100644 +--- a/lib/rsa/rsa-sign.c ++++ b/lib/rsa/rsa-sign.c +@@ -19,7 +19,47 @@ + #include <openssl/err.h> + #include <openssl/ssl.h> + #include <openssl/evp.h> +-#include <openssl/engine.h> ++#if OPENSSL_VERSION_MAJOR >= 3 ++# define USE_PKCS11_PROVIDER ++# include <err.h> ++# include <openssl/provider.h> ++# include <openssl/store.h> ++#else ++# if !defined(OPENSSL_NO_ENGINE) && !defined(OPENSSL_NO_DEPRECATED_3_0) ++# define USE_PKCS11_ENGINE ++# include <openssl/engine.h> ++# endif ++#endif ++ ++#ifdef USE_PKCS11_PROVIDER ++#define ERR(cond, fmt, ...) \ ++ do { \ ++ bool __cond = (cond); \ ++ drain_openssl_errors(__LINE__, 0); \ ++ if (__cond) { \ ++ errx(1, fmt, ## __VA_ARGS__); \ ++ } \ ++ } while (0) ++ ++static void drain_openssl_errors(int l, int silent) ++{ ++ const char *file; ++ char buf[120]; ++ int e, line; ++ ++ if (ERR_peek_error() == 0) ++ return; ++ if (!silent) ++ fprintf(stderr, "At main.c:%d:\n", l); ++ ++ while ((e = ERR_peek_error_line(&file, &line))) { ++ ERR_error_string(e, buf); ++ if (!silent) ++ fprintf(stderr, "- SSL %s: %s:%d\n", buf, file, line); ++ ERR_get_error(); ++ } ++} ++#endif + + static int rsa_err(const char *msg) + { +@@ -94,10 +134,11 @@ err_cert: + * + * @keydir: Key prefix + * @name Name of key +- * @engine Engine to use ++ * @engine Engine to use or NULL when using pkcs11 provider + * @evpp Returns EVP_PKEY object, or NULL on failure + * Return: 0 if ok, -ve on error (in which case *evpp will be set to NULL) + */ ++#ifdef USE_PKCS11_ENGINE + static int rsa_engine_get_pub_key(const char *keydir, const char *name, + ENGINE *engine, EVP_PKEY **evpp) + { +@@ -157,21 +198,24 @@ static int rsa_engine_get_pub_key(const char *keydir, const char *name, + + return 0; + } ++#endif + + /** + * rsa_get_pub_key() - read a public key + * + * @keydir: Directory containing the key (PEM file) or key prefix (engine) + * @name Name of key file (will have a .crt extension) +- * @engine Engine to use ++ * @engine Engine to use or NULL when using pkcs11 provider + * @evpp Returns EVP_PKEY object, or NULL on failure + * Return: 0 if ok, -ve on error (in which case *evpp will be set to NULL) + */ + static int rsa_get_pub_key(const char *keydir, const char *name, + ENGINE *engine, EVP_PKEY **evpp) + { ++#ifdef USE_PKCS11_ENGINE + if (engine) + return rsa_engine_get_pub_key(keydir, name, engine, evpp); ++#endif + return rsa_pem_get_pub_key(keydir, name, evpp); + } + +@@ -207,13 +251,44 @@ static int rsa_pem_get_priv_key(const char *keydir, const char *name, + return -ENOENT; + } + ++#ifdef USE_PKCS11_PROVIDER ++ EVP_PKEY *private_key = NULL; ++ OSSL_STORE_CTX *store; ++ ++ if (!OSSL_PROVIDER_try_load(NULL, "pkcs11", true)) ++ ERR(1, "OSSL_PROVIDER_try_load(pkcs11)"); ++ if (!OSSL_PROVIDER_try_load(NULL, "default", true)) ++ ERR(1, "OSSL_PROVIDER_try_load(default)"); ++ ++ store = OSSL_STORE_open(path, NULL, NULL, NULL, NULL); ++ ERR(!store, "OSSL_STORE_open"); ++ ++ while (!OSSL_STORE_eof(store)) { ++ OSSL_STORE_INFO *info = OSSL_STORE_load(store); ++ ++ if (!info) { ++ drain_openssl_errors(__LINE__, 0); ++ continue; ++ } ++ if (OSSL_STORE_INFO_get_type(info) == OSSL_STORE_INFO_PKEY) { ++ private_key = OSSL_STORE_INFO_get1_PKEY(info); ++ ERR(!private_key, "OSSL_STORE_INFO_get1_PKEY"); ++ } ++ OSSL_STORE_INFO_free(info); ++ if (private_key) ++ break; ++ } ++ OSSL_STORE_close(store); ++ ++ *evpp = private_key; ++#else + if (!PEM_read_PrivateKey(f, evpp, NULL, path)) { + rsa_err("Failure reading private key"); + fclose(f); + return -EPROTO; + } + fclose(f); +- ++#endif + return 0; + } + +@@ -226,6 +301,7 @@ static int rsa_pem_get_priv_key(const char *keydir, const char *name, + * @evpp Returns EVP_PKEY object, or NULL on failure + * Return: 0 if ok, -ve on error (in which case *evpp will be set to NULL) + */ ++#ifdef USE_PKCS11_ENGINE + static int rsa_engine_get_priv_key(const char *keydir, const char *name, + const char *keyfile, + ENGINE *engine, EVP_PKEY **evpp) +@@ -293,22 +369,25 @@ static int rsa_engine_get_priv_key(const char *keydir, const char *name, + + return 0; + } ++#endif + + /** + * rsa_get_priv_key() - read a private key + * + * @keydir: Directory containing the key (PEM file) or key prefix (engine) + * @name Name of key +- * @engine Engine to use for signing ++ * @engine Engine to use or NULL when using pkcs11 provider + * @evpp Returns EVP_PKEY object, or NULL on failure + * Return: 0 if ok, -ve on error (in which case *evpp will be set to NULL) + */ + static int rsa_get_priv_key(const char *keydir, const char *name, + const char *keyfile, ENGINE *engine, EVP_PKEY **evpp) + { ++#ifdef USE_PKCS11_ENGINE + if (engine) + return rsa_engine_get_priv_key(keydir, name, keyfile, engine, + evpp); ++#endif + return rsa_pem_get_priv_key(keydir, name, keyfile, evpp); + } + +@@ -325,6 +404,7 @@ static int rsa_init(void) + return 0; + } + ++#ifdef USE_PKCS11_ENGINE + static int rsa_engine_init(const char *engine_id, ENGINE **pe) + { + const char *key_pass; +@@ -380,6 +460,7 @@ static void rsa_engine_remove(ENGINE *e) + ENGINE_free(e); + } + } ++#endif + + static int rsa_sign_with_key(EVP_PKEY *pkey, struct padding_algo *padding_algo, + struct checksum_algo *checksum_algo, +@@ -480,11 +561,13 @@ int rsa_sign(struct image_sign_info *info, + if (ret) + return ret; + ++#ifdef USE_PKCS11_ENGINE + if (info->engine_id) { + ret = rsa_engine_init(info->engine_id, &e); + if (ret) + return ret; + } ++#endif + + ret = rsa_get_priv_key(info->keydir, info->keyname, info->keyfile, + e, &pkey); +@@ -496,16 +579,21 @@ int rsa_sign(struct image_sign_info *info, + goto err_sign; + + EVP_PKEY_free(pkey); ++ ++#ifdef USE_PKCS11_ENGINE + if (info->engine_id) + rsa_engine_remove(e); ++#endif + + return ret; + + err_sign: + EVP_PKEY_free(pkey); + err_priv: ++#ifdef USE_PKCS11_ENGINE + if (info->engine_id) + rsa_engine_remove(e); ++#endif + return ret; + } + +@@ -645,11 +733,13 @@ int rsa_add_verify_data(struct image_sign_info *info, void *keydest) + ENGINE *e = NULL; + + debug("%s: Getting verification data\n", __func__); ++#ifdef USE_PKCS11_ENGINE + if (info->engine_id) { + ret = rsa_engine_init(info->engine_id, &e); + if (ret) + return ret; + } ++#endif + ret = rsa_get_pub_key(info->keydir, info->keyname, e, &pkey); + if (ret) + goto err_get_pub_key; +@@ -726,8 +816,10 @@ done: + err_get_params: + EVP_PKEY_free(pkey); + err_get_pub_key: ++#ifdef USE_PKCS11_ENGINE + if (info->engine_id) + rsa_engine_remove(e); ++#endif + + if (ret) + return ret; +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 75/77] package/xmrig: Add support for OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (73 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 74/77] package/uboot-tools: " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 76/77] package/znc: Fix build with " Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 77/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- .../0001-Fix-build-with-OpenSSL-4.0.0.patch | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 package/xmrig/0001-Fix-build-with-OpenSSL-4.0.0.patch diff --git a/package/xmrig/0001-Fix-build-with-OpenSSL-4.0.0.patch b/package/xmrig/0001-Fix-build-with-OpenSSL-4.0.0.patch new file mode 100644 index 0000000000..966744abbd --- /dev/null +++ b/package/xmrig/0001-Fix-build-with-OpenSSL-4.0.0.patch @@ -0,0 +1,40 @@ +From 357fab10b79e49dc9b8f42dc6cf425a8124a3f40 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls <bernd@kuhls.net> +Date: Sat, 2 May 2026 16:45:38 +0200 +Subject: [PATCH] Fix build with OpenSSL 4.0.0 + +src/base/net/tls/TlsGen.cpp: In member function 'bool + xmrig::TlsGen::generate_x509(const char*)': +src/base/net/tls/TlsGen.cpp:118:32: error: invalid conversion from + 'const X509_name_st*' to 'X509_NAME*' {aka 'X509_name_st*'} + [-fpermissive] + 118 | X509_NAME_add_entry_by_txt(name, "CN", MBSTRING_ASC, reinterpret_cast<const uint8_t *>(commonName), -1, -1, 0); + | ^~~~ + | | + | const X509_name_st* + +https://github.com/openssl/openssl/issues/29117 + +Upstream: https://github.com/xmrig/xmrig/pull/3808 + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/base/net/tls/TlsGen.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/base/net/tls/TlsGen.cpp b/src/base/net/tls/TlsGen.cpp +index ad2e648b..59e4f0c9 100644 +--- a/src/base/net/tls/TlsGen.cpp ++++ b/src/base/net/tls/TlsGen.cpp +@@ -115,7 +115,7 @@ bool xmrig::TlsGen::generate_x509(const char *commonName) + X509_gmtime_adj(X509_get_notAfter(m_x509), 315360000L); + + auto name = X509_get_subject_name(m_x509); +- X509_NAME_add_entry_by_txt(name, "CN", MBSTRING_ASC, reinterpret_cast<const uint8_t *>(commonName), -1, -1, 0); ++ X509_NAME_add_entry_by_txt((X509_NAME *) name, "CN", MBSTRING_ASC, reinterpret_cast<const uint8_t *>(commonName), -1, -1, 0); + + X509_set_issuer_name(m_x509, name); + +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 76/77] package/znc: Fix build with OpenSSL 4.0.0 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (74 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 75/77] package/xmrig: Add support for " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 2026-09-19 15:58 ` [Buildroot] [PATCH v2 77/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- ...-Fix-build-error-with-OpenSSL-4-2024.patch | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 package/znc/0001-Fix-build-error-with-OpenSSL-4-2024.patch diff --git a/package/znc/0001-Fix-build-error-with-OpenSSL-4-2024.patch b/package/znc/0001-Fix-build-error-with-OpenSSL-4-2024.patch new file mode 100644 index 0000000000..1dc7eb28fb --- /dev/null +++ b/package/znc/0001-Fix-build-error-with-OpenSSL-4-2024.patch @@ -0,0 +1,57 @@ +From 94bcf919e1163564e637df8d437585bc7b55e7aa Mon Sep 17 00:00:00 2001 +From: Ravi Kant Sharma <rks1986@gmail.com> +Date: Mon, 29 Jun 2026 20:03:27 +0200 +Subject: [PATCH] Fix build error with OpenSSL 4 (#2024) + +More details here https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1138356 + +Upstream: https://github.com/znc/znc/commit/94bcf919e1163564e637df8d437585bc7b55e7aa + +Signed-off-by: Bernd Kuhls <bernd@kuhls.net> +--- + src/SSLVerifyHost.cpp | 4 ++-- + src/Utils.cpp | 5 ++++- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/src/SSLVerifyHost.cpp b/src/SSLVerifyHost.cpp +index ccc20898..99b215bc 100644 +--- a/src/SSLVerifyHost.cpp ++++ b/src/SSLVerifyHost.cpp +@@ -306,8 +306,8 @@ typedef enum { + static HostnameValidationResult matches_common_name(const char* hostname, + const X509* server_cert) { + int common_name_loc = -1; +- X509_NAME_ENTRY* common_name_entry = nullptr; +- ASN1_STRING* common_name_asn1 = nullptr; ++ const X509_NAME_ENTRY* common_name_entry = nullptr; ++ const ASN1_STRING* common_name_asn1 = nullptr; + CONST_ASN1_STRING_DATA char* common_name_str = nullptr; + + // Find the position of the CN field in the Subject field of the certificate +diff --git a/src/Utils.cpp b/src/Utils.cpp +index ed2c9c83..744f61d1 100644 +--- a/src/Utils.cpp ++++ b/src/Utils.cpp +@@ -129,7 +129,8 @@ void CUtils::GenerateCert(FILE* pOut) { + sEmailAddr += "@"; + sEmailAddr += sHostName; + +- X509_NAME* pName = X509_get_subject_name(pCert.get()); ++ X509_NAME* pName = X509_NAME_new(); ++ if (!pName) return; + X509_NAME_add_entry_by_txt(pName, "OU", MBSTRING_ASC, + (unsigned char*)pLogName, -1, -1, 0); + X509_NAME_add_entry_by_txt(pName, "CN", MBSTRING_ASC, +@@ -137,7 +138,9 @@ void CUtils::GenerateCert(FILE* pOut) { + X509_NAME_add_entry_by_txt(pName, "emailAddress", MBSTRING_ASC, + (unsigned char*)sEmailAddr.c_str(), -1, -1, 0); + ++ X509_set_subject_name(pCert.get(), pName); + X509_set_issuer_name(pCert.get(), pName); ++ X509_NAME_free(pName); + + if (!X509_sign(pCert.get(), pKey.get(), EVP_sha256())) return; + +-- +2.47.3 + -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
* [Buildroot] [PATCH v2 77/77] package/libopenssl: bump version to 4.0.2 2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls ` (75 preceding siblings ...) 2026-09-19 15:58 ` [Buildroot] [PATCH v2 76/77] package/znc: Fix build with " Bernd Kuhls @ 2026-09-19 15:58 ` Bernd Kuhls 76 siblings, 0 replies; 107+ messages in thread From: Bernd Kuhls @ 2026-09-19 15:58 UTC (permalink / raw) To: buildroot Cc: Koen Martens, Aleksandr Makarov, Zoltan Gyarmati, Marcin Bis, Robert Rose, Yair Ben Avraham, Marcin Niestroj, Thomas Petazzoni, Cédric Chépied, Heiko Thiery, Dario Binacchi, Titouan Christophe, Fabrice Fontaine, Joris Lijssens, Philipp Richter, Thomas Devoogdt, Romain Naour, Roy Kollen Svendsen, Brandon Maier, Francois Perrad, Noé Rubinstein, Jesse Van Gavere, Luca Ceresoli, David GOUARIN, Andrey Yurovsky, André Zwing, Daniel Price, Christian Hitz, Gregory Dymarek, Stefan Ott, Baxiche Su, Philippe Reynes, Fabrice Fontaine, James Hilliard, Giulio Benetti, Karoly Kasza, Martin Bark https://openssl-library.org/post/2026-04-14-openssl-40-final-release/ https://github.com/openssl/openssl/blob/openssl-4.0.2/CHANGES.md#openssl-40 The following section results in updates to many packages: " * `ASN1_STRING` has been made opaque. * Signatures of numerous API functions, including those that are related to X509 processing, are changed to include `const` qualifiers for argument and return types, where suitable." More infos can be found here: https://openssl-library.org/post/2026-04-13-asn1_string/ The following section resulted in new legacy options and changes to many packages to maintain bisectability: " * Removed support for SSLv3. SSLv3 has been deprecated since 2015, and OpenSSL had it disabled by default since version 1.1.0 (2016). * Removed support for engines. The `no-engine` build option and the `OPENSSL_NO_ENGINE` macro are always present." More infos can be found here: https://openssl-library.org/post/2026-04-07-ssl3/index.html https://openssl-library.org/post/2025-12-18-remove-engines/index.html Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- Config.in.legacy | 36 ++++++++++++++++++++++++++++++ package/apr-util/Config.in | 1 - package/dovecot/Config.in | 1 - package/fluent-bit/Config.in | 1 - package/libcoap/Config.in | 1 - package/libks/Config.in | 1 - package/libldns/libldns.mk | 8 +------ package/libopenssl/Config.in | 34 ---------------------------- package/libopenssl/libopenssl.hash | 4 ++-- package/libopenssl/libopenssl.mk | 18 +-------------- package/libp11/Config.in | 1 - package/libp11/libp11.mk | 3 +-- package/librelp/Config.in | 1 - package/libssh/Config.in | 1 - package/luvi/Config.in | 1 - package/mtd/Config.in | 1 - package/openssh/openssh.mk | 8 +------ package/rauc/Config.in | 2 -- package/rauc/rauc.mk | 3 ++- package/softhsm2/Config.in | 1 - package/unbound/Config.in | 1 - package/unbound/unbound.mk | 1 + 22 files changed, 45 insertions(+), 84 deletions(-) diff --git a/Config.in.legacy b/Config.in.legacy index 2b77f7316e..fab10bf687 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -146,6 +146,42 @@ endif comment "Legacy options removed in 2026.11" +config BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL + bool "OpenSSL SSL support has been removed" + select BR2_LEGACY + help + OpenSSL 4.x removed SSL support + +config BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL3 + bool "OpenSSL SSL3 support has been removed" + select BR2_LEGACY + help + OpenSSL 4.x removed SSL3 support + +config BR2_PACKAGE_LIBOPENSSL_ENGINES + bool "OpenSSL additional engines has been removed" + select BR2_LEGACY + help + OpenSSL 4.x removed engines support + +config BR2_PACKAGE_LIBOPENSSL_DYNAMIC_ENGINE + bool "OpenSSL dynamic engine has been removed" + select BR2_LEGACY + help + OpenSSL 4.x removed engines support + +config BR2_PACKAGE_LIBOPENSSL_ENABLE_LOADER_ENGINE + bool "OpenSSL 'loader_attic' engine has been removed" + select BR2_LEGACY + help + OpenSSL 4.x removed engines support + +config BR2_PACKAGE_LIBOPENSSL_ENABLE_PADLOCK_ENGINE + bool "OpenSSL padlock engine has been removed" + select BR2_LEGACY + help + OpenSSL 4.x removed engines support + config BR2_PACKAGE_LIBCPPRESTSDK bool "libcpprestsdk has been removed" select BR2_LEGACY diff --git a/package/apr-util/Config.in b/package/apr-util/Config.in index 06b6c2684c..2a28d5f5aa 100644 --- a/package/apr-util/Config.in +++ b/package/apr-util/Config.in @@ -6,7 +6,6 @@ config BR2_PACKAGE_APR_UTIL select BR2_PACKAGE_APR select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL - select BR2_PACKAGE_LIBOPENSSL_ENGINES if BR2_PACKAGE_LIBOPENSSL help The utility library for the apache runtime project diff --git a/package/dovecot/Config.in b/package/dovecot/Config.in index 6753160c27..e6c1f92d07 100644 --- a/package/dovecot/Config.in +++ b/package/dovecot/Config.in @@ -3,7 +3,6 @@ config BR2_PACKAGE_DOVECOT depends on !BR2_STATIC_LIBS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE - select BR2_PACKAGE_LIBOPENSSL_ENGINES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_PCRE2_32 if BR2_PACKAGE_PCRE2 select BR2_PACKAGE_OPENSSL diff --git a/package/fluent-bit/Config.in b/package/fluent-bit/Config.in index 2af6279744..51655f9a2f 100644 --- a/package/fluent-bit/Config.in +++ b/package/fluent-bit/Config.in @@ -4,7 +4,6 @@ config BR2_PACKAGE_FLUENT_BIT depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_STATIC_LIBS # dlfcn.h select BR2_PACKAGE_C_ARES - select BR2_PACKAGE_LIBOPENSSL_ENGINES # needed by bundled librdkafka select BR2_PACKAGE_LIBYAML select BR2_PACKAGE_MSGPACK_C select BR2_PACKAGE_MUSL_FTS if !BR2_TOOLCHAIN_USES_GLIBC diff --git a/package/libcoap/Config.in b/package/libcoap/Config.in index 2bd6b742e9..7fb6ad8533 100644 --- a/package/libcoap/Config.in +++ b/package/libcoap/Config.in @@ -1,7 +1,6 @@ config BR2_PACKAGE_LIBCOAP bool "libcoap" select BR2_PACKAGE_LIBOPENSSL_ENABLE_PSK if BR2_PACKAGE_LIBOPENSSL - select BR2_PACKAGE_LIBOPENSSL_ENGINES if BR2_PACKAGE_LIBOPENSSL help libcoap is a C implementation of a lightweight application-protocol for devices that are constrained their diff --git a/package/libks/Config.in b/package/libks/Config.in index 17a008d7a0..4781d188bf 100644 --- a/package/libks/Config.in +++ b/package/libks/Config.in @@ -4,7 +4,6 @@ config BR2_PACKAGE_LIBKS depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # pthread_setname_np() select BR2_PACKAGE_OPENSSL - select BR2_PACKAGE_LIBOPENSSL_ENGINES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help diff --git a/package/libldns/libldns.mk b/package/libldns/libldns.mk index 13fe854460..49cb44d51c 100644 --- a/package/libldns/libldns.mk +++ b/package/libldns/libldns.mk @@ -24,17 +24,11 @@ LIBLDNS_CONF_OPTS = \ --without-pyldnsx ifeq ($(BR2_PACKAGE_LIBOPENSSL),y) -LIBLDNS_CONF_OPTS += --enable-dane-verify +LIBLDNS_CONF_OPTS += --enable-dane-verify --disable-gost else LIBLDNS_CONF_OPTS += --disable-dane-verify endif -ifeq ($(BR2_PACKAGE_LIBOPENSSL_ENGINES),y) -LIBLDNS_CONF_OPTS += --enable-gost -else -LIBLDNS_CONF_OPTS += --disable-gost -endif - ifeq ($(BR2_STATIC_LIBS),y) LIBLDNS_DEPENDENCIES += host-pkgconf # missing -lz breaks configure, add it using pkgconf diff --git a/package/libopenssl/Config.in b/package/libopenssl/Config.in index 03d3def802..69ad0b9875 100644 --- a/package/libopenssl/Config.in +++ b/package/libopenssl/Config.in @@ -40,11 +40,6 @@ config BR2_PACKAGE_LIBOPENSSL_BIN to the target file system. This is a command line tool for doing various cryptographic stuff. -config BR2_PACKAGE_LIBOPENSSL_ENGINES - bool "openssl additional engines" - help - Install additional encryption engine libraries. - config BR2_PACKAGE_LIBOPENSSL_ENABLE_CHACHA bool "enable CHACHA" default y @@ -98,14 +93,6 @@ config BR2_PACKAGE_LIBOPENSSL_ENABLE_BLOWFISH bool "enable BLOWFISH" default y -config BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL - bool "enable SSL" - default y - -config BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL3 - bool "enable SSL3" - default y - config BR2_PACKAGE_LIBOPENSSL_ENABLE_WEAK_SSL bool "enable WEAK_SSL" default y @@ -125,10 +112,6 @@ config BR2_PACKAGE_LIBOPENSSL_UNSECURE Enable unit-test crypto-mdebug-backtrace crypto-mdebug autoerrinit mode. -config BR2_PACKAGE_LIBOPENSSL_DYNAMIC_ENGINE - bool "enable dynamic engine" - default y - config BR2_PACKAGE_LIBOPENSSL_ENABLE_COMP bool "enable compression" default y @@ -173,23 +156,6 @@ config BR2_PACKAGE_LIBOPENSSL_ENABLE_ECX Build with ECX support. Disabling this option can be used to disable support for X25519, X448, and EdDSA. -config BR2_PACKAGE_LIBOPENSSL_ENABLE_LOADER_ENGINE - bool "enable 'loader_attic' engine" - default y - depends on BR2_PACKAGE_LIBOPENSSL_DYNAMIC_ENGINE - help - Build with 'loader_attic' engine support, which is meant - just for internal OpenSSL testing purposes and supports - loading keys, parameters, certificates, and CRLs from files. - When this engine is used, files with such credentials are - read via this engine. - -config BR2_PACKAGE_LIBOPENSSL_ENABLE_PADLOCK_ENGINE - bool "enable padlock engine" - default y - help - Build the padlock engine. - config BR2_PACKAGE_LIBOPENSSL_ENABLE_MODULE bool "enable modules" default y diff --git a/package/libopenssl/libopenssl.hash b/package/libopenssl/libopenssl.hash index 46ac5589dc..68940ebf80 100644 --- a/package/libopenssl/libopenssl.hash +++ b/package/libopenssl/libopenssl.hash @@ -1,5 +1,5 @@ -# From https://github.com/openssl/openssl/releases/download/openssl-3.6.4/openssl-3.6.4.tar.gz.sha256 -sha256 9bffaa1ad1e07b354c21bd3324ec02fa15579f45a7d0494b3e74bc449b7333ef openssl-3.6.4.tar.gz +# From https://github.com/openssl/openssl/releases/download/openssl-4.0.2/openssl-4.0.2.tar.gz.sha256 +sha256 736b467530f916737b7031310ccb21d8218c6229e61e8e160cd1d3458cd543a8 openssl-4.0.2.tar.gz # License files sha256 7d5450cb2d142651b8afa315b5f238efc805dad827d91ba367d8516bc9d49e7a LICENSE.txt diff --git a/package/libopenssl/libopenssl.mk b/package/libopenssl/libopenssl.mk index 9b3eec4baa..bfd6f026fd 100644 --- a/package/libopenssl/libopenssl.mk +++ b/package/libopenssl/libopenssl.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBOPENSSL_VERSION = 3.6.4 +LIBOPENSSL_VERSION = 4.0.2 LIBOPENSSL_SITE = https://github.com/openssl/openssl/releases/download/openssl-$(LIBOPENSSL_VERSION) LIBOPENSSL_SOURCE = openssl-$(LIBOPENSSL_VERSION).tar.gz LIBOPENSSL_LICENSE = Apache-2.0 @@ -80,16 +80,13 @@ define LIBOPENSSL_CONFIGURE_CMDS --openssldir=/etc/ssl \ $(if $(BR2_TOOLCHAIN_HAS_THREADS),threads,no-threads) \ $(if $(BR2_STATIC_LIBS),no-shared,shared) \ - $(if $(BR2_PACKAGE_CRYPTODEV_LINUX),enable-devcryptoeng) \ no-rc5 \ enable-camellia \ no-docs \ no-tests \ no-fuzz-libfuzzer \ no-fuzz-afl \ - no-afalgeng \ $(if $(BR2_PACKAGE_LIBOPENSSL_BIN),,no-apps) \ - $(if $(BR2_PACKAGE_LIBOPENSSL_ENGINES),,no-engine) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_CHACHA),,no-chacha) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_RC2),,no-rc2) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4),,no-rc4) \ @@ -103,21 +100,16 @@ define LIBOPENSSL_CONFIGURE_CMDS $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160),,no-rmd160) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_WHIRLPOOL),,no-whirlpool) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_BLOWFISH),,no-bf) \ - $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL),,no-ssl) \ - $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL3),,no-ssl3) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_WEAK_SSL),,no-weak-ssl-ciphers) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_PSK),,no-psk) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_CAST),,no-cast) \ $(if $(BR2_PACKAGE_LIBOPENSSL_UNSECURE),,no-unit-test no-crypto-mdebug no-autoerrinit) \ - $(if $(BR2_PACKAGE_LIBOPENSSL_DYNAMIC_ENGINE),,no-dynamic-engine ) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_COMP),,no-comp) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_ARGON2),,no-argon2) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_CACHED_FETCH),,no-cached-fetch) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_CMP),,no-cmp) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_THREAD_POOL),,no-thread-pool no-default-thread-pool) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_ECX),,no-ecx) \ - $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_LOADER_ENGINE),,no-loadereng) \ - $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_PADLOCK_ENGINE),,no-padlockeng) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_MODULE),,no-module) \ $(if $(BR2_PACKAGE_LIBOPENSSL_ENABLE_QUIC),,no-quic) \ $(if $(BR2_PACKAGE_LIBOPENSSL_SECURE_MEMORY),,no-secure-memory) \ @@ -155,7 +147,6 @@ endef define LIBOPENSSL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install $(RM) -rf $(TARGET_DIR)/usr/lib/ssl - $(RM) -f $(TARGET_DIR)/usr/bin/c_rehash endef # libdl has no business in a static build @@ -175,12 +166,5 @@ endef LIBOPENSSL_POST_INSTALL_TARGET_HOOKS += LIBOPENSSL_REMOVE_PERL_SCRIPTS endif -ifeq ($(BR2_PACKAGE_LIBOPENSSL_ENGINES),) -define LIBOPENSSL_REMOVE_LIBOPENSSL_ENGINES - $(RM) -rf $(TARGET_DIR)/usr/lib/engines-3 -endef -LIBOPENSSL_POST_INSTALL_TARGET_HOOKS += LIBOPENSSL_REMOVE_LIBOPENSSL_ENGINES -endif - $(eval $(generic-package)) $(eval $(host-generic-package)) diff --git a/package/libp11/Config.in b/package/libp11/Config.in index 3bf13a6051..3c7ccdee27 100644 --- a/package/libp11/Config.in +++ b/package/libp11/Config.in @@ -2,7 +2,6 @@ config BR2_PACKAGE_LIBP11 bool "libp11" depends on !BR2_STATIC_LIBS # dlopen depends on BR2_TOOLCHAIN_HAS_THREADS - select BR2_PACKAGE_LIBOPENSSL_ENGINES select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL help diff --git a/package/libp11/libp11.mk b/package/libp11/libp11.mk index 38cc1c2e6d..e8c56b9db5 100644 --- a/package/libp11/libp11.mk +++ b/package/libp11/libp11.mk @@ -11,10 +11,9 @@ LIBP11_INSTALL_STAGING = YES LIBP11_LICENSE = LGPL-2.1+ LIBP11_LICENSE_FILES = COPYING -# pkg-config returns a libcrypto enginesdir prefixed with the sysroot, +# pkg-config returns a libcrypto modulesdir prefixed with the sysroot, # so let's rip it out. LIBP11_CONF_OPTS = \ - --with-enginesdir=`$(PKG_CONFIG_HOST_BINARY) --variable enginesdir libcrypto | xargs readlink -f | sed 's%^$(STAGING_DIR)%%'` \ --with-modulesdir=`$(PKG_CONFIG_HOST_BINARY) --variable modulesdir libcrypto | xargs readlink -f | sed 's%^$(STAGING_DIR)%%'` ifeq ($(BR2_PACKAGE_P11_KIT),y) diff --git a/package/librelp/Config.in b/package/librelp/Config.in index f1744bb60c..c0ae5fbe89 100644 --- a/package/librelp/Config.in +++ b/package/librelp/Config.in @@ -1,7 +1,6 @@ config BR2_PACKAGE_LIBRELP bool "librelp" depends on BR2_TOOLCHAIN_HAS_THREADS - select BR2_PACKAGE_LIBOPENSSL_ENGINES if BR2_PACKAGE_LIBOPENSSL help Reliable Event Logging Protocol library diff --git a/package/libssh/Config.in b/package/libssh/Config.in index bc9a02d9b0..1f271a692e 100644 --- a/package/libssh/Config.in +++ b/package/libssh/Config.in @@ -36,7 +36,6 @@ config BR2_PACKAGE_LIBSSH_LIBGCRYPT config BR2_PACKAGE_LIBSSH_OPENSSL bool "openssl" depends on BR2_PACKAGE_OPENSSL - select BR2_PACKAGE_LIBOPENSSL_ENGINES if BR2_PACKAGE_LIBOPENSSL endchoice diff --git a/package/luvi/Config.in b/package/luvi/Config.in index 04163141b0..bf366f020d 100644 --- a/package/luvi/Config.in +++ b/package/luvi/Config.in @@ -9,7 +9,6 @@ config BR2_PACKAGE_LUVI select BR2_PACKAGE_LIBUV select BR2_PACKAGE_LUV select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL - select BR2_PACKAGE_LIBOPENSSL_ENGINES if BR2_PACKAGE_LIBOPENSSL help A project in-between luv and luvit. The goal of this is to make building luvit and derivatives much easier. diff --git a/package/mtd/Config.in b/package/mtd/Config.in index 1054106f81..f8a9badaf6 100644 --- a/package/mtd/Config.in +++ b/package/mtd/Config.in @@ -15,7 +15,6 @@ config BR2_PACKAGE_MTD_JFFS_UTILS config BR2_PACKAGE_MTD_UBIFS_UTILS bool - select BR2_PACKAGE_LIBOPENSSL_ENGINES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID diff --git a/package/openssh/openssh.mk b/package/openssh/openssh.mk index f2e1f235c0..651d6d46ee 100644 --- a/package/openssh/openssh.mk +++ b/package/openssh/openssh.mk @@ -23,6 +23,7 @@ OPENSSH_CONF_OPTS = \ --with-pid-dir=/var/run \ --with-default-path=$(BR2_SYSTEM_DEFAULT_PATH) \ $(if $(BR2_PACKAGE_OPENSSH_SANDBOX),--with-sandbox,--without-sandbox) \ + --without-ssl-engine \ --disable-lastlog \ --disable-utmp \ --disable-utmpx \ @@ -55,13 +56,6 @@ ifeq ($(BR2_PACKAGE_LIBXCRYPT),y) OPENSSH_DEPENDENCIES += libxcrypt endif -ifeq ($(BR2_PACKAGE_CRYPTODEV_LINUX),y) -OPENSSH_DEPENDENCIES += cryptodev-linux -OPENSSH_CONF_OPTS += --with-ssl-engine -else -OPENSSH_CONF_OPTS += --without-ssl-engine -endif - ifeq ($(BR2_PACKAGE_AUDIT),y) OPENSSH_DEPENDENCIES += audit OPENSSH_CONF_OPTS += --with-audit=linux diff --git a/package/rauc/Config.in b/package/rauc/Config.in index 9a910963a3..76e9e8a651 100644 --- a/package/rauc/Config.in +++ b/package/rauc/Config.in @@ -6,8 +6,6 @@ config BR2_PACKAGE_RAUC select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL # uses X509_PURPOSE_get_by_id - # uses ENGINE_* API - select BR2_PACKAGE_LIBOPENSSL_ENGINES select BR2_PACKAGE_SQUASHFS # run-time dependency help RAUC is the Robust Auto-Update Controller developed by diff --git a/package/rauc/rauc.mk b/package/rauc/rauc.mk index 54974abc09..748da90f38 100644 --- a/package/rauc/rauc.mk +++ b/package/rauc/rauc.mk @@ -11,7 +11,7 @@ RAUC_LICENSE = LGPL-2.1 RAUC_LICENSE_FILES = COPYING RAUC_CPE_ID_VENDOR = pengutronix RAUC_DEPENDENCIES = host-pkgconf openssl libglib2 -RAUC_CONF_OPTS += -Dtests=false +RAUC_CONF_OPTS += -Dtests=false -Dpkcs11_engine=false ifeq ($(BR2_PACKAGE_RAUC_DBUS),y) RAUC_CONF_OPTS += -Dservice=true @@ -71,6 +71,7 @@ HOST_RAUC_DEPENDENCIES = \ HOST_RAUC_CONF_OPTS += \ -Djson=enabled \ -Dnetwork=false \ + -Dpkcs11_engine=false \ -Dstreaming=false \ -Dservice=false \ -Dtests=false diff --git a/package/softhsm2/Config.in b/package/softhsm2/Config.in index c790e7a2b0..c22a371cba 100644 --- a/package/softhsm2/Config.in +++ b/package/softhsm2/Config.in @@ -7,7 +7,6 @@ config BR2_PACKAGE_SOFTHSM2 select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES - select BR2_PACKAGE_LIBOPENSSL_ENGINES help SoftHSM is an implementation of a cryptographic store accessible through a PKCS#11 interface. You can use it diff --git a/package/unbound/Config.in b/package/unbound/Config.in index c8d697113c..ae2ebfd975 100644 --- a/package/unbound/Config.in +++ b/package/unbound/Config.in @@ -3,7 +3,6 @@ config BR2_PACKAGE_UNBOUND depends on !BR2_STATIC_LIBS select BR2_PACKAGE_EXPAT select BR2_PACKAGE_LIBEVENT - select BR2_PACKAGE_LIBOPENSSL_ENGINES if BR2_PACKAGE_LIBOPENSSL select BR2_PACKAGE_OPENSSL help Unbound is a validating, recursive, and caching DNS resolver. diff --git a/package/unbound/unbound.mk b/package/unbound/unbound.mk index d6886d4a5d..938f656e94 100644 --- a/package/unbound/unbound.mk +++ b/package/unbound/unbound.mk @@ -12,6 +12,7 @@ UNBOUND_LICENSE = BSD-3-Clause UNBOUND_LICENSE_FILES = LICENSE UNBOUND_CPE_ID_VENDOR = nlnetlabs UNBOUND_CONF_OPTS = \ + --disable-gost \ --disable-rpath \ --disable-debug \ --with-conf-file=/etc/unbound/unbound.conf \ -- 2.47.3 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 107+ messages in thread
end of thread, other threads:[~2026-09-25 14:47 UTC | newest]
Thread overview: 107+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-19 15:57 [Buildroot] [PATCH v2 00/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 01/77] Remove mender packages Bernd Kuhls
2026-09-20 10:14 ` Thomas Petazzoni via buildroot
2026-09-20 10:33 ` Adam Duskett
2026-09-20 10:48 ` Adam Duskett
2026-09-21 16:38 ` Thomas Petazzoni via buildroot
2026-09-21 18:04 ` Adam Duskett
2026-09-21 18:09 ` James Hilliard
2026-09-22 6:48 ` Thomas Petazzoni via buildroot
2026-09-22 7:08 ` Koen Martens
2026-09-22 6:42 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 02/77] package/heirloom-mailx: remove package Bernd Kuhls
2026-09-20 12:33 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 03/77] package/qt5/qt5opcua: " Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 04/77] package/qt5/qt5knx: " Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 05/77] package/resiprocate: " Bernd Kuhls
2026-09-20 12:35 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 06/77] package/libcpprestsdk: " Bernd Kuhls
2026-09-20 12:40 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 07/77] package/cc-tool: Fix build with Boost >= 1.89 Bernd Kuhls
2026-09-20 12:42 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 08/77] package/jwt-cpp: new package Bernd Kuhls
2026-09-20 12:56 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 09/77] package/domoticz: bump version to 2026.3 Bernd Kuhls
2026-09-20 12:58 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 10/77] package/libtorrent-rasterbar: bump version to 2.1.1 Bernd Kuhls
2026-09-20 13:01 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 11/77] package/boost: remove dependencies on Boost.DateTime Bernd Kuhls
2026-09-20 13:02 ` Thomas Petazzoni via buildroot
2026-09-25 14:47 ` Raphaël Mélotte via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 12/77] package/boost: bump version to 1.92.0 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 13/77] package/libpjsip: Add support for OpenSSL 4.0.0 Bernd Kuhls
2026-09-20 13:04 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 14/77] package/asterisk: bump bundled pjsip to 2.17 Bernd Kuhls
2026-09-20 13:06 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 15/77] package/asterisk: bump version to 22.11.0 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 16/77] package/asterisk: Fix build with OpenSSL 4.0.0 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 17/77] package/dovecot{-pigeonhole}: security bump version to 2.4.5 Bernd Kuhls
2026-09-20 13:15 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 18/77] package/ibrcommon: update patches Bernd Kuhls
2026-09-20 13:18 ` Thomas Petazzoni via buildroot
2026-09-25 14:47 ` Raphaël Mélotte via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 19/77] package/ibrcommon: Fix build with OpenSSL 4.0.0 Bernd Kuhls
2026-09-20 13:19 ` Thomas Petazzoni via buildroot
2026-09-19 15:57 ` [Buildroot] [PATCH v2 20/77] package/libp11: bump version to 0.4.20 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 21/77] package/nmap: bump version to 7.991 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 22/77] package/openvmtools: bump version to 13.1.0 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 23/77] package/poco: convert to CMake package Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 24/77] package/poco: bump version to 1.15.3 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 25/77] package/qt6: security bump version to 6.11.2 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 26/77] package/daq3: bump version to 3.0.27 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 27/77] package/snort3: fix build error with numa support Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 28/77] package/snort3: bump version to 3.12.2.0 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 29/77] package/snort3: Fix build with OpenSSL 4.0.0 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 30/77] package/xtables-addons: use kernel-module infra Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 31/77] package/xtables-addons: bump version to 3.31 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 32/77] package/apache: Add support for OpenSSL 4.0.0 Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 33/77] package/boinc: Fix build with " Bernd Kuhls
2026-09-19 15:57 ` [Buildroot] [PATCH v2 34/77] package/ca-certificates: Replace c_rehash with openssl rehash Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 35/77] package/clamav: Fix build with OpenSSL 4.0.0 Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 36/77] package/capnproto: " Bernd Kuhls
2026-09-20 12:08 ` Thomas Petazzoni via buildroot
2026-09-19 15:58 ` [Buildroot] [PATCH v2 37/77] package/ecryptfs-utils: remove OpenSSL support Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 38/77] package/freeradius-server: Add support for OpenSSL 4.0.0 Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 39/77] package/freeswitch: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 40/77] package/gloox: Fix build with " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 41/77] package/grpc: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 42/77] package/ibm-sw-tpm2: Fix build with OpenSSL 4.{0, 1} Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 43/77] package/ibrdtnd: Fix build with OpenSSL 4.0.0 Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 44/77] package/lftp: Add support for " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 45/77] package/libesmtp: Fix build with " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 46/77] package/libest: " Bernd Kuhls
2026-09-20 11:39 ` Thomas Petazzoni via buildroot
2026-09-19 15:58 ` [Buildroot] [PATCH v2 47/77] package/libkrb5: Add support for " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 48/77] package/luvi: fix build without c++ Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 49/77] package/luvi: bump version to 102-g9fa6c141a Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 50/77] package/luvi: Fix build with OpenSSL 4.0.0 Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 51/77] package/mtd: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 52/77] package/netsnmp: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 53/77] package/ntp: Add support for " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 54/77] package/omniorb: Fix build with " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 55/77] package/opensc: Add support for " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 56/77] package/perl-net-ssleay: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 57/77] package/pkcs11-helper: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 58/77] package/python3: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 59/77] package/qpid-proton: Fix build with " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 60/77] package/qt5/qt5base: Add support for " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 61/77] package/rauc: Fix build with " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 62/77] package/redis: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 63/77] package/socat: Add support for " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 64/77] package/sofia-sip: Fix build with " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 65/77] package/softhsm2: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 66/77] package/squid: " Bernd Kuhls
2026-09-20 12:06 ` Thomas Petazzoni via buildroot
2026-09-19 15:58 ` [Buildroot] [PATCH v2 67/77] package/sscep: " Bernd Kuhls
2026-09-20 11:46 ` Thomas Petazzoni via buildroot
2026-09-19 15:58 ` [Buildroot] [PATCH v2 68/77] package/sudo: Add support for " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 69/77] package/thrift: Fix build with LibreSSL and OpenSSL 4.x Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 70/77] package/thrift: Fix build with OpenSSL 4.0.0 Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 71/77] package/tpm2-openssl: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 72/77] package/trousers: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 73/77] package/turbolua: " Bernd Kuhls
2026-09-20 11:43 ` Thomas Petazzoni via buildroot
2026-09-19 15:58 ` [Buildroot] [PATCH v2 74/77] package/uboot-tools: " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 75/77] package/xmrig: Add support for " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 76/77] package/znc: Fix build with " Bernd Kuhls
2026-09-19 15:58 ` [Buildroot] [PATCH v2 77/77] package/libopenssl: bump version to 4.0.2 Bernd Kuhls
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.