[Pkg-javascript-devel] Bug#1138323: nodejs: FTBFS with openssl 4.0
Sebastian Andrzej Siewior
sebastian at breakpoint.cc
Sat May 30 16:53:35 BST 2026
Package: nodejs
Version: 22.22.2+dfsg+~cs22.19.15-3
Severity: normal
Tags: sid
control: affects -1 src:openssl
User: pkg-openssl-devel at lists.alioth.debian.org
Usertags: openssl-4.0
OpenSSL 4.0 is in experimental. This package fails to build against it:
| g++ -o /build/reproducible-path/nodejs-22.22.2+dfsg+~cs22.19.15/out/Release/obj.target/ncrypto/deps/ncrypto/ncrypto.o ../deps/ncrypto/ncrypto.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_FILE_OFFSET_BITS=64' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_CERT_STORE' '-DICU_NO_USER_DATA_OVERRIDE' '-DNODE_SHARED_BUILTIN_CJS_MODULE_LEXER_LEXER_PATH=/usr/share/nodejs/cjs-module-lexer/lexer.js' '-DNODE_SHARED_BUILTIN_CJS_MODULE_LEXER_DIST_LEXER_PATH=/usr/share/nodejs/cjs-module-lexer/dist/lexer.js' '-DNODE_SHARED_BUILTIN_UNDICI_UNDICI_PATH=/usr/share/nodejs/undici/undici-fetch.js' '-DNODE_SHARED_BUILTIN_ACORN_PATH=/usr/share/nodejs/acorn/dist/acorn.js' '-DNODE_SHARED_BUILTIN_ACORN_WALK_PATH=/usr/share/nodejs/acorn-walk/dist/walk.js' '-D__STDC_FORMAT_MACROS' -I../deps/ncrypto -pthread -Wall -Wextra -Wno-unused-parameter -fPIC -m64 -O3 -fno-omit-frame-pointer -fno-rtti -fno-exceptions -fno-strict-aliasing -std=gnu++20 -MMD -MF /build/reproducible-path/nodejs-22.22.2+dfsg+~cs22.19.15/out/Release/.deps//build/reproducible-path/nodejs-22.22.2+dfsg+~cs22.19.15/out/Release/obj.target/ncrypto/deps/ncrypto/ncrypto.o.d.raw -fPIC -g -fPIC -g -c
| In file included from ../deps/ncrypto/ncrypto.cc:1:
| ../deps/ncrypto/ncrypto.h:208:59: warning: ‘void HMAC_CTX_free(HMAC_CTX*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
| 208 | using HMACCtxPointer = DeleteFnPtr<HMAC_CTX, HMAC_CTX_free>;
| | ^
| In file included from ../deps/ncrypto/ncrypto.h:10:
| /usr/include/openssl/hmac.h:35:28: note: declared here
| 35 | OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_free(HMAC_CTX *ctx);
| | ^~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.h:211:45: warning: ‘void RSA_free(RSA*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
| 211 | using RSAPointer = DeleteFnPtr<RSA, RSA_free>;
| | ^
| In file included from ../deps/ncrypto/ncrypto.h:12:
| /usr/include/openssl/rsa.h:302:28: note: declared here
| 302 | OSSL_DEPRECATEDIN_3_0 void RSA_free(RSA *r);
| | ^~~~~~~~
| ../deps/ncrypto/ncrypto.h:658:26: warning: ‘void DH_free(DH*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
| 658 | DeleteFnPtr<DH, DH_free> dh_;
| | ^
| In file included from ../deps/ncrypto/ncrypto.h:5:
| /usr/include/openssl/dh.h:211:28: note: declared here
| 211 | OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh);
| | ^~~~~~~
| ../deps/ncrypto/ncrypto.h:948:34: warning: ‘void EC_KEY_free(EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
| 948 | DeleteFnPtr<EC_KEY, EC_KEY_free> key_;
| | ^
| In file included from ../deps/ncrypto/ncrypto.h:7:
| /usr/include/openssl/ec.h:1022:28: note: declared here
| 1022 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| | ^~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc: In member function ‘int ncrypto::BignumPointer::isPrime(int, PrimeCheckCallback) const’:
| ../deps/ncrypto/ncrypto.cc:330:24: warning: ‘int BN_is_prime_ex(const BIGNUM*, int, BN_CTX*, BN_GENCB*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
| 330 | return BN_is_prime_ex(get(), nchecks, ctx.get(), cb.get());
| | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| In file included from ../deps/ncrypto/ncrypto.h:4:
| /usr/include/openssl/bn.h:379:5: note: declared here
| 379 | int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb);
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc: In function ‘bool ncrypto::{anonymous}::PrintGeneralName(const ncrypto::BIOPointer&, const GENERAL_NAME*)’:
| ../deps/ncrypto/ncrypto.cc:646:57: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 646 | PrintAltName(out, reinterpret_cast<const char*>(name->data), name->length);
| | ^~
| In file included from /usr/include/openssl/crypto.h:38,
| from /usr/include/openssl/bio.h:32,
| from ../deps/ncrypto/ncrypto.h:3:
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:646:70: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 646 | PrintAltName(out, reinterpret_cast<const char*>(name->data), name->length);
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:650:57: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 650 | PrintAltName(out, reinterpret_cast<const char*>(name->data), name->length);
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:650:70: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 650 | PrintAltName(out, reinterpret_cast<const char*>(name->data), name->length);
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:658:57: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 658 | PrintAltName(out, reinterpret_cast<const char*>(name->data), name->length);
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:658:70: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 658 | PrintAltName(out, reinterpret_cast<const char*>(name->data), name->length);
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:691:32: error: invalid use of incomplete type ‘const ASN1_OCTET_STRING’ {aka ‘const struct asn1_string_st’}
| 691 | const unsigned char* b = ip->data;
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:692:11: error: invalid use of incomplete type ‘const ASN1_OCTET_STRING’ {aka ‘const struct asn1_string_st’}
| 692 | if (ip->length == 4) {
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:694:18: error: invalid use of incomplete type ‘const ASN1_OCTET_STRING’ {aka ‘const struct asn1_string_st’}
| 694 | } else if (ip->length == 16) {
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:701:54: error: invalid use of incomplete type ‘const ASN1_OCTET_STRING’ {aka ‘const struct asn1_string_st’}
| 701 | BIO_printf(out.get(), "<invalid length=%d>", ip->length);
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:751:56: error: invalid use of incomplete type ‘struct asn1_string_st’
| 751 | reinterpret_cast<const char*>(name->data),
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘struct asn1_string_st’
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:752:26: error: invalid use of incomplete type ‘struct asn1_string_st’
| 752 | name->length,
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘struct asn1_string_st’
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:758:56: error: invalid use of incomplete type ‘struct asn1_string_st’
| 758 | reinterpret_cast<const char*>(name->data),
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘struct asn1_string_st’
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc:759:26: error: invalid use of incomplete type ‘struct asn1_string_st’
| 759 | name->length,
| | ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘struct asn1_string_st’
| 57 | typedef struct asn1_string_st ASN1_INTEGER;
| | ^~~~~~~~~~~~~~
| ../deps/ncrypto/ncrypto.cc: In function ‘bool ncrypto::SafeX509SubjectAltNamePrint(const BIOPointer&, X509_EXTENSION*)’:
| ../deps/ncrypto/ncrypto.cc:781:8: warning: unused variable ‘ret’ [-Wunused-variable]
| 781 | auto ret = OBJ_obj2nid(X509_EXTENSION_get_object(ext));
| | ^~~
| ../deps/ncrypto/ncrypto.cc: In function ‘bool ncrypto::SafeX509InfoAccessPrint(const BIOPointer&, X509_EXTENSION*)’:
| ../deps/ncrypto/ncrypto.cc:804:8: warning: unused variable ‘ret’ [-Wunused-variable]
| 804 | auto ret = OBJ_obj2nid(X509_EXTENSION_get_object(ext));
| | ^~~
| ../deps/ncrypto/ncrypto.cc: In member function ‘ncrypto::BIOPointer ncrypto::X509View::getSubjectAltName() const’:
| ../deps/ncrypto/ncrypto.cc:903:53: error: invalid conversion from ‘const X509_EXTENSION*’ {aka ‘const X509_extension_st*’} to ‘X509_EXTENSION*’ {aka ‘X509_extension_st*’} [-fpermissive]
| 903 | !SafeX509SubjectAltNamePrint(bio, X509_get_ext(cert_, index))) {
| | ~~~~~~~~~~~~^~~~~~~~~~~~~~
| | |
| | const X509_EXTENSION* {aka const X509_extension_st*}
| ../deps/ncrypto/ncrypto.cc:780:73: note: initializing argument 2 of ‘bool ncrypto::SafeX509SubjectAltNamePrint(const BIOPointer&, X509_EXTENSION*)’
| 780 | bool SafeX509SubjectAltNamePrint(const BIOPointer& out, X509_EXTENSION* ext) {
| | ~~~~~~~~~~~~~~~~^~~
| ../deps/ncrypto/ncrypto.cc: In member function ‘ncrypto::BIOPointer ncrypto::X509View::getInfoAccess() const’:
| ../deps/ncrypto/ncrypto.cc:929:49: error: invalid conversion from ‘const X509_EXTENSION*’ {aka ‘const X509_extension_st*’} to ‘X509_EXTENSION*’ {aka ‘X509_extension_st*’} [-fpermissive]
| 929 | if (!SafeX509InfoAccessPrint(bio, X509_get_ext(cert_, index))) {
| | ~~~~~~~~~~~~^~~~~~~~~~~~~~
| | |
| | const X509_EXTENSION* {aka const X509_extension_st*}
…
Full buildlog
https://breakpoint.cc/openssl-rebuild/logs-4/attempted/nodejs_22.22.2+dfsg+~cs22.19.15-3_amd64-2026-04-19T10:58:58Z
Sebastian
More information about the Pkg-javascript-devel
mailing list