#1097837 safecat: ftbfs with GCC-15

#1097837#5
Date:
2025-02-17 17:52:02 UTC
From:
To:
[This bug is NOT 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-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/safecat_1.13+git20170317.185e8bf-1_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

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

  apt-get -t=experimental install g++

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other 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-15/porting_to.html

[...]
cc -Isafecat.p -I. -I.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wno-misleading-indentation -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/safecat-1.13+git20170317.185e8bf=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ safecat.p/byte_cr.c.o -MF safecat.p/byte_cr.c.o.d -o safecat.p/byte_cr.c.o -c ../byte_cr.c
../byte_cr.c: In function ‘byte_copyr’:
../byte_cr.c:3:6: warning: old-style function definition [-Wold-style-definition]
    3 | void byte_copyr(to,n,from)
      |      ^~~~~~~~~~
../byte_cr.c:7:1: error: number of arguments doesn’t match prototype
    7 | {
      | ^
In file included from ../byte_cr.c:1:
../byte.h:7:13: error: prototype declaration
    7 | extern void byte_copyr();
      |             ^~~~~~~~~~
[4/34] cc -Isafecat.p -I. -I.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wno-misleading-indentation -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/safecat-1.13+git20170317.185e8bf=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ safecat.p/error.c.o -MF safecat.p/error.c.o.d -o safecat.p/error.c.o -c ../error.c
[5/34] cc -Isafecat.p -I. -I.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wno-misleading-indentation -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/safecat-1.13+git20170317.185e8bf=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ safecat.p/fmt_uint64.c.o -MF safecat.p/fmt_uint64.c.o.d -o safecat.p/fmt_uint64.c.o -c ../fmt_uint64.c
FAILED: safecat.p/fmt_uint64.c.o
cc -Isafecat.p -I. -I.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wno-misleading-indentation -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/safecat-1.13+git20170317.185e8bf=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ safecat.p/fmt_uint64.c.o -MF safecat.p/fmt_uint64.c.o.d -o safecat.p/fmt_uint64.c.o -c ../fmt_uint64.c
../fmt_uint64.c: In function ‘fmt_uint64’:
../fmt_uint64.c:4:14: warning: old-style function definition [-Wold-style-definition]
    4 | unsigned int fmt_uint64(s,u) register char *s; register uint64_t u;
      |              ^~~~~~~~~~
../fmt_uint64.c:5:1: error: number of arguments doesn’t match prototype
    5 | {
      | ^
In file included from ../fmt_uint64.c:1:
../fmt.h:7:21: error: prototype declaration
    7 | extern unsigned int fmt_uint64();
      |                     ^~~~~~~~~~
[6/34] cc -Isafecat.p -I. -I.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wno-misleading-indentation -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/safecat-1.13+git20170317.185e8bf=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ safecat.p/alloc.c.o -MF safecat.p/alloc.c.o.d -o safecat.p/alloc.c.o -c ../alloc.c
FAILED: safecat.p/alloc.c.o
cc -Isafecat.p -I. -I.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wno-misleading-indentation -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/safecat-1.13+git20170317.185e8bf=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ safecat.p/alloc.c.o -MF safecat.p/alloc.c.o.d -o safecat.p/alloc.c.o -c ../alloc.c
../alloc.c: In function ‘alloc’:
../alloc.c:13:26: warning: old-style function definition [-Wold-style-definition]
   13 | /*@null@*//*@out@*/char *alloc(n)
      |                          ^~~~~
../alloc.c:15:1: error: number of arguments doesn’t match prototype
   15 | {
      | ^
In file included from ../alloc.c:1:
../alloc.h:4:33: error: prototype declaration
    4 | extern /*@null@*//*@out@*/char *alloc();
      |                                 ^~~~~
../alloc.c: In function ‘alloc_free’:
../alloc.c:24:6: warning: old-style function definition [-Wold-style-definition]
   24 | void alloc_free(x)
      |      ^~~~~~~~~~
../alloc.c:26:1: error: number of arguments doesn’t match prototype
   26 | {
      | ^
../alloc.h:5:13: error: prototype declaration
    5 | extern void alloc_free();
      |             ^~~~~~~~~~
[7/34] cc -Isafecat.p -I. -I.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wno-misleading-indentation -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/safecat-1.13+git20170317.185e8bf=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ safecat.p/hostname.c.o -MF safecat.p/hostname.c.o.d -o safecat.p/hostname.c.o -c ../hostname.c
FAILED: safecat.p/hostname.c.o
cc -Isafecat.p -I. -I.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wno-misleading-indentation -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/safecat-1.13+git20170317.185e8bf=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ safecat.p/hostname.c.o -MF safecat.p/hostname.c.o.d -o safecat.p/hostname.c.o -c ../hostname.c
In file included from ../hostname.c:3:
../hostname.c: In function ‘get_hostname’:
../strerr.h:65:1: error: too many arguments to function ‘strerr_die’; expected 0, have 8
   65 | strerr_die((e),(x1),(char *) 0,(char *) 0,(char *) 0,(char *) 0,(char *) 0,&strerr_sys)
      | ^~~~~~~~~~ ~~~
../hostname.c:11:3: note: in expansion of macro ‘strerr_die1sys’
   11 |   strerr_die1sys(111, "safecat: fatal: can't determine hostname: ");
      |   ^~~~~~~~~~~~~~
../strerr.h:18:13: note: declared here
   18 | extern void strerr_die();
      |             ^~~~~~~~~~
[8/34] cc -Isafecat.p -I. -I.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wno-misleading-indentation -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/safecat-1.13+git20170317.185e8bf=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ safecat.p/error_str.c.o -MF safecat.p/error_str.c.o.d -o safecat.p/error_str.c.o -c ../error_str.c
ninja: build stopped: subcommand failed.
dh_auto_build: error: cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1097837#10
Date:
2025-08-22 16:23:36 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
safecat, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1097837@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
наб <nabijaczleweli@nabijaczleweli.xyz> (supplier of updated safecat package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 22 Aug 2025 18:02:19 +0200
Source: safecat
Architecture: source
Version: 1.13+git20170317.185e8bf-2
Distribution: unstable
Urgency: medium
Maintainer: Package Salvaging Team <team+salvage@tracker.debian.org>
Changed-By: наб <nabijaczleweli@nabijaczleweli.xyz>
Closes: 1097837
Changes:
 safecat (1.13+git20170317.185e8bf-2) unstable; urgency=medium
 .
   * Salvage Team upload.
   * d/p/:
     0004: Properly prototype the code (Closes: #1097837)
           This includes de1999ifying it a lot and fixing some bugs
           (like an off-by-10 that would put the files 10s in the future)
           and removing a reimplementation of like half of libc
     0005: sigaction(2) is always available
     0006: Drop needless -Wno-misleading-indentation check
     0007: Remove the only user of subfdoutsmall (repalce with stdio)
     0008: Remove the only user of subfderr (replace with stdio)
     0009: Replace substdio and the resulting read(512)/write(512) loop
           with voreutils-derived splice/c_f_r/sendfile/[read(64k)/fwrite()]
     0010: renameat2(RENAME_NOREPLACE) temp -> dest,
           only fall back to link+unlink if that fails or is unavailable
     0011: Avoid TOCTTOU on tempdir and destdir
     0012: Fix TOCTTOU on creating temporary file
     0013: Drop unneeded bespoke string allocation library
           (this should degrade gracefuller with overlong hostnames)
   * d/source/options: drop, no longer needed
Checksums-Sha1:
 22cd17f57c5f7fae26f7170b777071c11cb65e5a 2080 safecat_1.13+git20170317.185e8bf-2.dsc
 e8d10cc0ea671e45e06de6cfbb38c588a88bee90 20088 safecat_1.13+git20170317.185e8bf.orig.tar.xz
 71b035b7f361a8697f53e4c7d10b5d2ee19bf069 22892 safecat_1.13+git20170317.185e8bf-2.debian.tar.xz
 e6886811db4fa875b36bcd67e0d51adbd33923f6 7644 safecat_1.13+git20170317.185e8bf-2_source.buildinfo
Checksums-Sha256:
 fb8cbd1c50da94a93fdbf09910130d20b6882c3af1aeb8c8f0633883b4771679 2080 safecat_1.13+git20170317.185e8bf-2.dsc
 5475d85c1337d440bef18d215c8129f9f5d64874d950e50519aaa8dee9a56733 20088 safecat_1.13+git20170317.185e8bf.orig.tar.xz
 66cb6d1315052c34aab3741f7a56fd1ff74c9b61543b4342b8bdc436ade71e7e 22892 safecat_1.13+git20170317.185e8bf-2.debian.tar.xz
 4da08080d83a5bc765e2087433a405c4296bcfbb4a08d60793341bdaced1d8e4 7644 safecat_1.13+git20170317.185e8bf-2_source.buildinfo
Files:
 e8fc02760abdbd8eef31ba3bdd56345c 2080 utils optional safecat_1.13+git20170317.185e8bf-2.dsc
 e2be3b7b710a11bdff63022a0bb36b79 20088 utils optional safecat_1.13+git20170317.185e8bf.orig.tar.xz
 087b536ec35d81a79789a5a28872fb4a 22892 utils optional safecat_1.13+git20170317.185e8bf-2.debian.tar.xz
 5e6a9926bfe6d983dd31bff5800258f7 7644 utils optional safecat_1.13+git20170317.185e8bf-2_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJWBAEBCgBAFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmiolRUiHG5hYmlqYWN6
bGV3ZWxpQG5hYmlqYWN6bGV3ZWxpLnh5egAKCRC8/QsBjSZY8SAuD/40wo5c/spT
xBPG9BAHkaok0p7tFErA/NbuzxpQDbdJFsuMWjUswD221t6hBrx96jYnXWXllT4u
ztHYtWJM/b8B86/2gOPBa053MigUpoignENWiXl5oxijGydRC9EMspXrMk4x8ZP4
pAxYovfJ9k9SIQr3e3gv/EL9oZTULQT6hia2ILOqppjHdyihbuWUqs9MiuBJmrRJ
KGUjQwRu9Rvw/HHsXBfd+RU5xtrbV2EnyA+B9+gWSeeqqLVc8PrZwWQkeP2e7UAY
cDl+5NKgRctVtgNchhqwP9+2k8VJBtBkt5+RC5x5YlDCuXapoQXIAosWG8IezBea
5YUSjxjgp6m/wajpE5gr8wnqCMhG27adDbFrEjfHPvI8pFymDZUww+1x8EG3HUAo
p/WJQCmZIi4w/+8+O7QQbAI++3nfCMI0lWa/r8s2xsWwxlW2hckrh6hH0nN7K+Eh
APLokMI/fQF7+glEcioLR+b8cTnX7fhEEP2Tqm25Eg+sa+Mp78dY0ApymAe759rq
EAzfBBZCj975b2x5QJ67hF04HG6B7N1i1Zz1GksS/cjp3UZDM5LWTJv26YTXS1/Y
YtuzJF8Ddh29dUbvzOX48SpIp5thFfqrRx+eicK3zHX4VbcoxqGtw6AD71VBc5UB
Xt0VeU4Zarwg0H1BmppIrm6Xc6AI5m94xQ==
=8VVa
-----END PGP SIGNATURE-----