#1098020 ttyrec: ftbfs with GCC-15

#1098020#5
Date:
2025-02-17 17:57:55 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/ttyrec_1.0.8-5.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

[...]

Applying patch 11_sigaction.diff
patching file ttyrec.c

Applying patch 12_ttyplay_fix_select.diff
patching file ttyplay.c

Applying patch 13_ttyplay_fread.diff
patching file ttyplay.c

Applying patch 14_ttyplay_man.diff
patching file ttyplay.1

Applying patch 15_ttyrec_dont_record_query.diff
patching file ttyrec.c

Applying patch 16_ttyrec_XCASE.diff
patching file ttyrec.c
Hunk #1 succeeded at 371 (offset 19 lines).

Applying patch 17_remove_stropts.patch
patching file ttyrec.c

Now at patch 17_remove_stropts.patch
   dh_update_autotools_config
   dh_auto_configure
dh_auto_configure: warning: Compatibility levels before 10 are deprecated (level 7 in use)
   debian/rules override_dh_auto_build
make[1]: Entering directory '/build/reproducible-path/ttyrec-1.0.8'
uudecode debian/sample1.tty.uue
dh_auto_build
dh_auto_build: warning: Compatibility levels before 10 are deprecated (level 7 in use)
	make -j1
make[2]: Entering directory '/build/reproducible-path/ttyrec-1.0.8'
gcc -O2 -g -fomit-frame-pointer -Wall -DSVR4 -D_GNU_SOURCE   -c -o ttyrec.o ttyrec.c
ttyrec.c: In function ‘main’:
ttyrec.c:123:1: warning: old-style function definition [-Wold-style-definition]
  123 | main(argc, argv)
      | ^~~~
ttyrec.c:131:15: error: conflicting types for ‘getenv’; have ‘char *(void)’
  131 |         char *getenv();
      |               ^~~~~~
In file included from ttyrec.c:56:
/usr/include/stdlib.h:773:14: note: previous declaration of ‘getenv’ with type ‘char *(const char *)’
  773 | extern char *getenv (const char *__name) __THROW __nonnull ((1)) __wur;
      |              ^~~~~~
ttyrec.c:164:17: error: too many arguments to function ‘getenv’; expected 0, have 1
  164 |         shell = getenv("SHELL");
      |                 ^~~~~~ ~~~~~~~
ttyrec.c:131:15: note: declared here
  131 |         char *getenv();
      |               ^~~~~~
ttyrec.c:173:23: error: assignment to ‘__sighandler_t’ {aka ‘void (*)(int)’} from incompatible pointer type ‘void (*)(void)’ [-Wincompatible-pointer-types]
  173 |         sa.sa_handler = finish;
      |                       ^
ttyrec.c:130:14: note: ‘finish’ declared here
  130 |         void finish();
      |              ^~~~~~
In file included from /usr/include/x86_64-linux-gnu/sys/signal.h:1,
                 from ttyrec.c:51:
/usr/include/signal.h:72:16: note: ‘__sighandler_t’ declared here
   72 | typedef void (*__sighandler_t) (int);
      |                ^~~~~~~~~~~~~~
make[2]: *** [<builtin>: ttyrec.o] Error 1
make[2]: Leaving directory '/build/reproducible-path/ttyrec-1.0.8'
dh_auto_build: error: make -j1 returned exit code 2
make[1]: *** [debian/rules:16: override_dh_auto_build] Error 255
make[1]: Leaving directory '/build/reproducible-path/ttyrec-1.0.8'
make: *** [debian/rules:8: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1098020#10
Date:
2025-08-21 17:06:30 UTC
From:
To:
This was fixed in upstream 1.1.7.1.
Format: 1.8
Date: Sat, 25 Jan 2025 18:45:05 +0100
Source: ttyrec
Architecture: source
Version: 1.1.7.1-1
Distribution: unstable
Urgency: medium
Maintainer: Package Salvaging Team <team+salvage@tracker.debian.org>
Changed-By: наб <nabijaczleweli@nabijaczleweli.xyz>
Closes: 414949 564826 564952 987407 1082108 1094191
Changes:
 ttyrec (1.1.7.1-1) unstable; urgency=medium
 .
   * Team upload.
 .
   [ Andreas Tille ]
   * Maintain in Package Salvage team
     Closes: #1094191
   * Point Homepage to maintained fork
     Closes: #1082108
   * Point watch file to maintained fork
   * Do not Build-Depends: quilt
   * New upstream version
   * Standards-Version: 4.7.0 (routine-update)
   * debhelper-compat 13 (routine-update)
   * Rules-Requires-Root: no (routine-update)
   * No tab in license text (routine-update)
   * Trim trailing whitespace.
 .
   [ наб ]
   * d/control: redo Description for new upstream
   * Build-Depends: drop sharutils, deuuencode debian/sample1.tty
   * Rebase patches:
     - 01_Makefile.diff  upstream makefile works
     - 02_minor_cleanup.diff  superseded upstream
     - 03_io_h.diff  superseded upstream
     + 04_64-bit.diff  respelled with <endian.h>
     + 05_WINSZ.diff
     + 06_pause.diff
     - 07_ttyrec_man.diff  superseded upstream
     - 08_sigchld.diff  upstream's new process model makes this work
                         without the patch, and the patch breaks it
     - 09_sigwinch.diff  implemented upstream
     - 10_control_tty.diff  implemented upstream
     - 11_sigaction.diff  implemented upstream
     + 12_ttyplay_fix_select.diff
     + 13_ttyplay_fread.diff
     - 14_ttyplay_man.diff  squashed into 06_pause.diff
     - 16_ttyrec_XCASE.diff  properly detected upstream
     - 17_remove_stropts.patch  properly detected upstream
   * debian/README.source: drop (just quilt)
   * debian/dirs: drop (not needed in new upstream)
   * d/copyright: update for new upstream, DEP-5
   * d/control: Build-Depends: libzstd-dev for full-fledged upstream support
     + d/rules: force libzstd.so instead of possibly autoselecting .a
   * New patches:
     + 0007: Replace set_progname() that allocates with err(3)
     + 0008: docs/ttyrec.1: lintian useless-whatis-entry
     + 0009: ttyplay: add bind q to quit
                     (and -s <0 does the same instead of breaking weirdly)
             Closes: #564952
     + 0010: ttyplay: don't use uninitialised memory on partial header read
     + 0020: ttyplay -p: wait for input with inotify, if available
             Closes: #564826
     + 0030: Don't try to exec((char *)1) if $SHELL doesn't have a /
             Closes: #414949
   * d/docs: update for new upstream
   * d/manpages: update for new upstream
   * debian/mime: quoted-placeholder-in-mailcap-entry '%s' (Closes: #987407)
Checksums-Sha1:
 434484aad14ddc9a47f815e2408c2abb7c14017d 1927 ttyrec_1.1.7.1-1.dsc
 8bc494fb36247d06c6bcac5aa9ad0ebae6a406da 53976 ttyrec_1.1.7.1.orig.tar.gz
 ab8213f1e6e08d666b607f4de12cf593698255a0 25104 ttyrec_1.1.7.1-1.debian.tar.xz
 fb257d4df9e476f4ff2982cd55e172f48a0dce64 6068 ttyrec_1.1.7.1-1_amd64.buildinfo
Checksums-Sha256:
 747a1b3171d8bd30ebf96a02a2d239b63b2428dfb98ec580b37b1dd8b12df0f0 1927 ttyrec_1.1.7.1-1.dsc
 ffd700f7c6f9f01d7dd62d88aceaa21aa97fc4a1eaf67304d2479d69051f2335 53976 ttyrec_1.1.7.1.orig.tar.gz
 bae6879c4f5f5eac409f3994f176d81b1ff2c2866bf0bb55867c3c93bd6e2638 25104 ttyrec_1.1.7.1-1.debian.tar.xz
 6a3d04b4ae5e10e090b4ea63b7105750a657f848cadf489f761e6e611e8077c3 6068 ttyrec_1.1.7.1-1_amd64.buildinfo
Files:
 4e63a3b1b847ae1390fa0719cc312bc2 1927 misc optional ttyrec_1.1.7.1-1.dsc
 ca810b3c05e6e3d12fee7ad7d5a08bca 53976 misc optional ttyrec_1.1.7.1.orig.tar.gz
 03c9e12035247abed83d1940db068325 25104 misc optional ttyrec_1.1.7.1-1.debian.tar.xz
 4a38bb39b0c66ee683e2e016f6ac3c40 6068 misc optional ttyrec_1.1.7.1-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEE8fAHMgoDVUHwpmPKV4oElNHGRtEFAmewYC0RHHRpbGxlQGRl
Ymlhbi5vcmcACgkQV4oElNHGRtGSARAAmy8hNBLBM91ZwWDS+J3eCbsTN1V/0EE+
U3JzO7tGVslfbzkFdw40Tufs6aM0U+DIC1Xbm1/O0Vq+L1m5Bzx7XblD/dfOFzEF
KuHpJQBbFE7M8fjaV1c/bWkbEMSDWmJOA/CKF1B/wTyL3XULP5z4RWH/2oelarGj
SrRz9rvKfMzgTZLDuHLiSSRnA4YhAhHbtcH97IOh56E4o9YbR6ZHP1wU5Y4wiZSk
ZtWmOmpC1i6dDKps5UAmoDrnvo+T5FvM0ELQlzclOmiMU78JfIgE0m/ngI42ebY6
ds4esO1m6H78HKNRQNjxiIfdV5UyguEIqRCLbsHldsfY9bjPFbW0AzRj1ag24ndX
kTTkP8on/vT7pfoMLitzCgOq6SYbzElpw4O0giXTSgTbxiYXGPvlsCDXpeuHVS1L
sO9iJUk6JrrmnEu1qLVrJ3teNc12II9C9xrPxBm9qVHbQCQ0/mWU52uT1OH2Zo84
gmfe8a3DUgQ3GAHH3mlllp6o9zWVmxQr/6yRFPUHgptP3daA7aWXU7japnXWJ7Vv
/Lbt1s5uPHjOrqvs/jEniXNxb9G/0BNfG98dROHd9raGaKi9Y913d/j1jhpDAR/e
QJJDCCASKVOWh4ujTYQ++ZDi30nnZ+4wQN/5pLCKlWjXAsu+YoT+1mwmL+f9F6B0
cp0P288WfGw=
=nYGy
-----END PGP SIGNATURE-----