Subject: linux-ftpd-ssl: ftbfs with GCC-14

From: Matthias Klose <[email-masked]>
Date: Wed, 03 Jul 2024 12:34:58 +0000

Package: src:linux-ftpd-ssl
Version: 0.17.36+really0.17-3
Severity: important
Tags: sid trixie
User: [email-masked]
Usertags: ftbfs-gcc-14

[This bug is targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-14/g++-14, but succeeds to build with gcc-13/g++-13. The
severity of this report will be raised before the trixie release.

The full build log can be found at:
http://qa-logs.debian.net/2024/07/01/linux-ftpd-ssl_0.17.36+really0.17-3_unstable_gccexp.log
The last lines of the build log are at the end of this report.

To build with GCC 14, either set CC=gcc-14 CXX=g++-14 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++ 

Common build failures are new warnings resulting in build failures with
-Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-14/porting_to.html

[...]
      |                         ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1330:25: note: declared here
 1330 |                         _pam_drop_reply(repl, replies);
      |                         ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1330:25: warning: ‘reply_i’ is deprecated [-Wdeprecated-declarations]
 1330 |                         _pam_drop_reply(repl, replies);
      |                         ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1330:25: note: declared here
 1330 |                         _pam_drop_reply(repl, replies);
      |                         ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1330:25: warning: ‘__xx__’ is deprecated [-Wdeprecated-declarations]
 1330 |                         _pam_drop_reply(repl, replies);
      |                         ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1330:25: note: declared here
 1330 |                         _pam_drop_reply(repl, replies);
      |                         ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1330:25: warning: ‘__xx__’ is deprecated [-Wdeprecated-declarations]
 1330 |                         _pam_drop_reply(repl, replies);
      |                         ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1330:25: note: declared here
 1330 |                         _pam_drop_reply(repl, replies);
      |                         ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1330:25: warning: ‘reply_i’ is deprecated [-Wdeprecated-declarations]
 1330 |                         _pam_drop_reply(repl, replies);
      |                         ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1330:25: note: declared here
 1330 |                         _pam_drop_reply(repl, replies);
      |                         ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c: In function ‘pam_doit’:
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1346:16: error: type defaults to ‘int’ in declaration of ‘old_silence_flag’ [-Wimplicit-int]
 1346 |         static old_silence_flag = 0;
      |                ^~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1347:16: error: type defaults to ‘int’ in declaration of ‘silent_password’ [-Wimplicit-int]
 1347 |         static silent_password = 0;
      |                ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c: In function ‘pass’:
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1598:28: error: passing argument 1 of ‘time’ from incompatible pointer type [-Wincompatible-pointer-types]
 1598 |                 (void)time(&utmp.ut_time);
      |                            ^
      |                            |
      |                            int32_t * {aka int *}
In file included from /<<PKGBUILDDIR>>/ftpd/ftpd.c:100:
/usr/include/time.h:76:29: note: expected ‘time_t *’ {aka ‘long int *’} but argument is of type ‘int32_t *’ {aka ‘int *’}
   76 | extern time_t time (time_t *__timer) __THROW;
      |                     ~~~~~~~~^~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c: In function ‘main’:
/<<PKGBUILDDIR>>/ftpd/ftpd.c:806:16: warning: ignoring return value of ‘freopen’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  806 |         (void) freopen(_PATH_DEVNULL, "w", stderr);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c: In function ‘end_login’:
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1241:16: warning: ignoring return value of ‘seteuid’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 1241 |         (void) seteuid((uid_t)0);
      |                ^~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c: In function ‘getdatasock’:
/<<PKGBUILDDIR>>/ftpd/ftpd.c:1904:16: warning: ignoring return value of ‘seteuid’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 1904 |         (void) seteuid((uid_t)0);
      |                ^~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/ftpd/ftpd.c: In function ‘logxfer’:
/<<PKGBUILDDIR>>/ftpd/ftpd.c:3514:17: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 3514 |                 write(statfd, buf, strlen(buf));
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [ftpd/CMakeFiles/in.ftpd.dir/build.make:87: ftpd/CMakeFiles/in.ftpd.dir/ftpd.c.o] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:119: ftpd/CMakeFiles/in.ftpd.dir/all] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j1 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:7: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2