Bug#1138481: proftpd-dfsg: FTBFS with openssl 4.0

Hilmar Preuße hille42 at web.de
Sun May 31 11:47:03 BST 2026


Control: forwarded -1 https://github.com/proftpd/proftpd/issues/2120

30.05.2026 18:23:24 Sebastian Andrzej Siewior <sebastian at breakpoint.cc>:

> Package: proftpd-dfsg
> Version: 1.3.9~dfsg-4
> 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:
> 
> | libtool: compile:  gcc -Wdate-time -D_FORTIFY_SOURCE=2 -DHAVE_CONFIG_H -DLINUX -I.. -I../include -I../include -I/usr/include/mariadb/mysql -I/usr/include/mariadb -I/usr/include/postgresql -I/usr/include/mariadb -I/usr/include/mariadb/mysql -I/usr/include/postgresql -Wdate-time -D_FORTIFY_SOURCE=2 -g2 -g -O2 -Werror=implicit-function-declaration "-ffile-prefix-map=/build/reproducible-path/proftpd-dfsg-1.3.9~dfsg=." -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -fno-omit-frame-pointer -fno-strict-aliasing -Werror=implicit-function-declaration -g -O2 -Werror=implicit-function-declaration "-ffile-prefix-map=/build/reproducible-path/proftpd-dfsg-1.3.9~dfsg/modules=." -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DPR_SHARED_MODULE -c ../modules/mod_tls.c  -fPIC -DPIC -o .libs/mod_tls.o
> | ../modules/mod_tls.c: In function ‘tls_get_cert_cn’:
> | ../modules/mod_tls.c:2768:13: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  2768 |   subj_name = X509_get_subject_name(cert);
> |       |             ^
> | ../modules/mod_tls.c:2780:12: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  2780 |   cn_entry = X509_NAME_get_entry(subj_name, idx);
> |       |            ^
> | ../modules/mod_tls.c:2787:11: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  2787 |   cn_asn1 = X509_NAME_ENTRY_get_data(cn_entry);
> |       |           ^
> | ../modules/mod_tls.c: In function ‘tls_cert_must_staple’:
> | ../modules/mod_tls.c:6234:9: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  6234 |     ext = X509_get_ext(cert, i);
> |       |         ^
> | ../modules/mod_tls.c:6239:9: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  6239 |     obj = X509_EXTENSION_get_object(ext);
> |       |         ^
> | ../modules/mod_tls.c:6250:13: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  6250 |       value = X509_EXTENSION_get_data(ext);
> |       |             ^
> | ../modules/mod_tls.c: In function ‘tls_get_subj_name’:
> | ../modules/mod_tls.c:9178:40: warning: passing argument 1 of ‘tls_x509_name_oneline’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  9178 |     char *name = tls_x509_name_oneline(X509_get_subject_name(cert));
> |       |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> | ../modules/mod_tls.c:803:36: note: expected ‘X509_NAME *’ {aka ‘struct X509_name_st *’} but argument is of type ‘const X509_NAME *’ {aka ‘const struct X509_name_st *’}
> |   803 | static char *tls_x509_name_oneline(X509_NAME *);
> |       |                                    ^~~~~~~~~~~
> | ../modules/mod_tls.c: In function ‘tls_cert_to_user’:
> | ../modules/mod_tls.c:9417:10: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  9417 |     name = X509_get_subject_name(client_cert);
> |       |          ^
> | ../modules/mod_tls.c:9432:13: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  9432 |       entry = X509_NAME_get_entry(name, pos);
> |       |             ^
> | ../modules/mod_tls.c:9433:12: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  9433 |       data = X509_NAME_ENTRY_get_data(entry);
> |       |            ^
> | ../modules/mod_tls.c:9538:13: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  9538 |         ext = X509_get_ext(client_cert, i);
> |       |             ^
> | ../modules/mod_tls.c:9539:20: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  9539 |         asn_object = X509_EXTENSION_get_object(ext);
> |       |                    ^
> | ../modules/mod_tls.c:9549:22: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  9549 |             asn_data = X509_EXTENSION_get_data(ext);
> |       |                      ^
> | ../modules/mod_tls.c: In function ‘tls_setup_cert_dn_environ’:
> | ../modules/mod_tls.c:9861:11: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  9861 |     entry = X509_NAME_get_entry(name, i);
> |       |           ^
> | ../modules/mod_tls.c: In function ‘tls_setup_cert_environ’:
> | ../modules/mod_tls.c:9981:15: error: invalid use of incomplete typedef ‘ASN1_INTEGER’ {aka ‘struct asn1_string_st’}
> |  9981 |     if (serial->length < 4) {
> |       |               ^~
> | ../modules/mod_tls.c:9999:42: warning: passing argument 1 of ‘tls_x509_name_oneline’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> |  9999 |     v = pstrdup(p, tls_x509_name_oneline(X509_get_subject_name(cert)));
> |       |                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> | ../modules/mod_tls.c:803:36: note: expected ‘X509_NAME *’ {aka ‘struct X509_name_st *’} but argument is of type ‘const X509_NAME *’ {aka ‘const struct X509_name_st *’}
> |   803 | static char *tls_x509_name_oneline(X509_NAME *);
> |       |                                    ^~~~~~~~~~~
> | ../modules/mod_tls.c:10003:14: warning: passing argument 2 of ‘tls_setup_cert_dn_environ’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 10003 |       NULL), X509_get_subject_name(cert));
> |       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> | ../modules/mod_tls.c:9842:74: note: expected ‘X509_NAME *’ {aka ‘struct X509_name_st *’} but argument is of type ‘const X509_NAME *’ {aka ‘const struct X509_name_st *’}
> |  9842 | static void tls_setup_cert_dn_environ(const char *env_prefix, X509_NAME *name) {
> |       |                                                               ~~~~~~~~~~~^~~~
> | ../modules/mod_tls.c:10006:42: warning: passing argument 1 of ‘tls_x509_name_oneline’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 10006 |     v = pstrdup(p, tls_x509_name_oneline(X509_get_issuer_name(cert)));
> |       |                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
> | ../modules/mod_tls.c:803:36: note: expected ‘X509_NAME *’ {aka ‘struct X509_name_st *’} but argument is of type ‘const X509_NAME *’ {aka ‘const struct X509_name_st *’}
> |   803 | static char *tls_x509_name_oneline(X509_NAME *);
> |       |                                    ^~~~~~~~~~~
> | ../modules/mod_tls.c:10010:7: warning: passing argument 2 of ‘tls_setup_cert_dn_environ’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 10010 |       X509_get_issuer_name(cert));
> |       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
> | ../modules/mod_tls.c:9842:74: note: expected ‘X509_NAME *’ {aka ‘struct X509_name_st *’} but argument is of type ‘const X509_NAME *’ {aka ‘const struct X509_name_st *’}
> |  9842 | static void tls_setup_cert_dn_environ(const char *env_prefix, X509_NAME *name) {
> |       |                                                               ~~~~~~~~~~~^~~~
> | ../modules/mod_tls.c:10066:12: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 10066 |     pubkey = X509_get_X509_PUBKEY(cert);
> |       |            ^
> | ../modules/mod_tls.c: In function ‘tls_setup_notes’:
> | ../modules/mod_tls.c:10275:12: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 10275 |     pubkey = X509_get_X509_PUBKEY(client_cert);
> |       |            ^
> | ../modules/mod_tls.c: In function ‘tls_verify_cb’:
> | ../modules/mod_tls.c:10407:7: warning: passing argument 1 of ‘tls_x509_name_oneline’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 10407 |       X509_get_subject_name(cert)));
> |       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> | ../modules/mod_tls.c:803:36: note: expected ‘X509_NAME *’ {aka ‘struct X509_name_st *’} but argument is of type ‘const X509_NAME *’ {aka ‘const struct X509_name_st *’}
> |   803 | static char *tls_x509_name_oneline(X509_NAME *);
> |       |                                    ^~~~~~~~~~~
> | ../modules/mod_tls.c:10409:7: warning: passing argument 1 of ‘tls_x509_name_oneline’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 10409 |       X509_get_issuer_name(cert)));
> |       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
> | ../modules/mod_tls.c:803:36: note: expected ‘X509_NAME *’ {aka ‘struct X509_name_st *’} but argument is of type ‘const X509_NAME *’ {aka ‘const struct X509_name_st *’}
> |   803 | static char *tls_x509_name_oneline(X509_NAME *);
> |       |                                    ^~~~~~~~~~~
> | ../modules/mod_tls.c: In function ‘tls_verify_crl’:
> | ../modules/mod_tls.c:10497:11: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 10497 |   subject = X509_get_subject_name(xs);
> |       |           ^
> | ../modules/mod_tls.c:10501:10: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 10501 |   issuer = X509_get_issuer_name(xs);
> |       |          ^
> | ../modules/mod_tls.c: In function ‘tls_verify_ocsp_url’:
> | ../modules/mod_tls.c:10734:8: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 10734 |   subj = X509_get_subject_name(cert);
> |       |        ^
> | ../modules/mod_tls.c: In function ‘tls_verify_ocsp’:
> | ../modules/mod_tls.c:11109:32: warning: passing argument 1 of ‘tls_x509_name_oneline’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
> | 11109 |   subj = tls_x509_name_oneline(X509_get_subject_name(cert));
> |       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> | ../modules/mod_tls.c:803:36: note: expected ‘X509_NAME *’ {aka ‘struct X509_name_st *’} but argument is of type ‘const X509_NAME *’ {aka ‘const struct X509_name_st *’}
> |   803 | static char *tls_x509_name_oneline(X509_NAME *);
> |       |                                    ^~~~~~~~~~~
> | ../modules/mod_tls.c:11137:61: error: invalid use of incomplete typedef ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
> | 11137 |         (char *) desc->location->d.uniformResourceIdentifier->data);
> |       |                                                             ^~
> | make[3]: *** [Makefile:34: mod_tls.la] Error 1
> | make[3]: Leaving directory '/build/reproducible-path/proftpd-dfsg-1.3.9~dfsg/modules'
> 
> 
> Full buildlog
>     https://breakpoint.cc/openssl-rebuild/logs-4/attempted/proftpd-dfsg_1.3.9~dfsg-4_amd64-2026-04-19T08:10:04Z
> 
> Sebastian
> 
> _______________________________________________
> Pkg-proftpd-maintainers mailing list
> Pkg-proftpd-maintainers at alioth-lists.debian.net
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-proftpd-maintainers



More information about the Pkg-proftpd-maintainers mailing list