Fixed in the upstream, will be pushed as part of TQSL 2.8.6.
-Rick
On Sat, May 30, 2026 at 11:58 AM Sebastian Andrzej Siewior <
[email protected]> wrote:
> Package: trustedqsl
> Version: 2.8.4-1
> Severity: normal
> Tags: sid
> control: affects -1 src:openssl
> User: [email protected]
> Usertags: openssl-4.0
>
> OpenSSL 4.0 is in experimental. This package fails to build against it:
>
> | [ 7%] Building CXX object src/CMakeFiles/tqsllib.dir/openssl_cert.cpp.o
> | cd /build/reproducible-path/trustedqsl-2.8.4/obj-x86_64-linux-gnu/src &&
> /usr/bin/c++ -DCONFDIR=\"/usr/share/TrustedQSL/\" -DTQSLLIB_VERSION_MAJOR=2
> -DTQSLLIB_VERSION_MINOR=6 -DTQSL_VERSION_MAJOR=2 -DTQSL_VERSION_MINOR=8
> -DTQSL_VERSION_PATCH=0 -DTQSL_VERSION_UPDATE=4 -Dtqsllib_EXPORTS -g -O2
> -ffile-prefix-map=/build/reproducible-path/trustedqsl-2.8.4=.
> -fstack-protector-strong -fstack-clash-protection -Wformat
> -Werror=format-security -fcf-protection -DNDEBUG -Wdate-time
> -D_FORTIFY_SOURCE=2 -fPIC -fPIC -MD -MT
> src/CMakeFiles/tqsllib.dir/openssl_cert.cpp.o -MF
> CMakeFiles/tqsllib.dir/openssl_cert.cpp.o.d -o
> CMakeFiles/tqsllib.dir/openssl_cert.cpp.o -c
> /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp: In
> function ‘int tqsl_createCertRequest(const char*, TQSL_CERT_REQ*, int
> (*)(char*, int, void*), void*)’:
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:667:41:
> error: invalid conversion from ‘const X509_NAME*’ {aka ‘const
> X509_name_st*’} to ‘X509_NAME*’ {aka ‘X509_name_st*’}
> [-fpermissive]
> | 667 | subj = X509_REQ_get_subject_name(xr);
> | | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
> | | |
> | | const X509_NAME* {aka
> const X509_name_st*}
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp: In
> function ‘int tqsl_getCertificateIssuerOrganization(tQSL_Cert, char*,
> int)’:
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:1921:40:
> error: invalid conversion from ‘const X509_NAME*’ {aka ‘const
> X509_name_st*’} to ‘X509_NAME*’ {aka ‘X509_name_st*’}
> [-fpermissive]
> | 1921 | if ((iss =
> X509_get_issuer_name(TQSL_API_TO_CERT(cert)->cert)) == NULL) {
> | |
> ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | | |
> | | const X509_NAME* {aka
> const X509_name_st*}
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp: In
> function ‘int tqsl_getCertificateIssuerOrganizationalUnit(tQSL_Cert,
> char*, int)’:
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:1959:40:
> error: invalid conversion from ‘const X509_NAME*’ {aka ‘const
> X509_name_st*’} to ‘X509_NAME*’ {aka ‘X509_name_st*’}
> [-fpermissive]
> | 1959 | if ((iss =
> X509_get_issuer_name(TQSL_API_TO_CERT(cert)->cert)) == NULL) {
> | |
> ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | | |
> | | const X509_NAME* {aka
> const X509_name_st*}
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp: In
> function ‘std::string
> tqsl_asn1_octet_string_to_hex(ASN1_OCTET_STRING*)’:
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:2771:31:
> error: invalid use of incomplete type ‘ASN1_OCTET_STRING’ {aka
> ‘struct asn1_string_st’}
> | 2771 | for (int k = 0; k < os->length; k++) {
> | | ^~
> | In file included from /usr/include/openssl/err.h:30,
> | from
> /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:153:
> | /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;
> | | ^~~~~~~~~~~~~~
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:2773:30:
> error: invalid use of incomplete type ‘ASN1_OCTET_STRING’ {aka
> ‘struct asn1_string_st’}
> | 2773 | hex[0] = ((os->data[k] >> 4) & 0xf) + '0';
> | | ^~
> | /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;
> | | ^~~~~~~~~~~~~~
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:2775:29:
> error: invalid use of incomplete type ‘ASN1_OCTET_STRING’ {aka
> ‘struct asn1_string_st’}
> | 2775 | hex[1] = (os->data[k] & 0xf) + '0';
> | | ^~
> | /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;
> | | ^~~~~~~~~~~~~~
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp: In
> function ‘int tqsl_get_bag_attribute(PKCS12_SAFEBAG*, const char*,
> std::string&)’:
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:2800:56:
> error: invalid use of incomplete type ‘ASN1_BMPSTRING’ {aka ‘struct
> asn1_string_st’}
> | 2800 | char *c = uni2asc(attr->value.bmpstring->data,
> attr->value.bmpstring->length);
> | | ^~
> | /usr/include/openssl/types.h:57:16: note: forward declaration of
> ‘ASN1_BMPSTRING’ {aka ‘struct asn1_string_st’}
> | 57 | typedef struct asn1_string_st ASN1_INTEGER;
> | | ^~~~~~~~~~~~~~
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:2800:85:
> error: invalid use of incomplete type ‘ASN1_BMPSTRING’ {aka ‘struct
> asn1_string_st’}
> | 2800 | char *c = uni2asc(attr->value.bmpstring->data,
> attr->value.bmpstring->length);
> | |
> ^~
> | /usr/include/openssl/types.h:57:16: note: forward declaration of
> ‘ASN1_BMPSTRING’ {aka ‘struct asn1_string_st’}
> | 57 | typedef struct asn1_string_st ASN1_INTEGER;
> | | ^~~~~~~~~~~~~~
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp: In
> function ‘stack_st_X509* tqsl_filter_cert_list(stack_st_X509*, const
> char*, int, const tQSL_Date*, const TQSL_PROVIDER*, int)’:
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:3850:56:
> error: invalid conversion from ‘const X509_NAME*’ {aka ‘const
> X509_name_st*’} to ‘X509_NAME*’ {aka ‘X509_name_st*’}
> [-fpermissive]
> | 3850 | if ((iss = X509_get_issuer_name(x)) ==
> NULL)
> | | ~~~~~~~~~~~~~~~~~~~~^~~
> | | |
> | | const
> X509_NAME* {aka const X509_name_st*}
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp: In
> function ‘int tqsl_get_name_stuff(X509_NAME_ENTRY*,
> TQSL_X509_NAME_ITEM*)’:
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:4095:41:
> error: invalid conversion from ‘const ASN1_OBJECT*’ {aka ‘const
> asn1_object_st*’} to ‘ASN1_OBJECT*’ {aka ‘asn1_object_st*’}
> [-fpermissive]
> | 4095 | obj = X509_NAME_ENTRY_get_object(entry);
> | | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
> | | |
> | | const ASN1_OBJECT* {aka
> const asn1_object_st*}
> | /build/reproducible-path/trustedqsl-2.8.4/src/openssl_cert.cpp:4110:49:
> error: invalid conversion from ‘const ASN1_STRING*’ {aka ‘const
> asn1_string_st*’} to ‘ASN1_STRING*’ {aka ‘asn1_string_st*’}
> [-fpermissive]
> | 4110 | value = X509_NAME_ENTRY_get_data(entry);
> | | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
> | | |
> | | const
> ASN1_STRING* {aka const asn1_string_st*}
> …
>
> Full buildlog
>
> https://breakpoint.cc/openssl-rebuild/logs-4/attempted/trustedqsl_2.8.4-1_amd64-2026-04-19T08:16:17Z
>
> Sebastian
>
--
Rick Murphy, D.Sc., CISSP-ISSAP, K1MU/4, Annandale VA USA