#1144022 wf-recorder: FTBFS with ffmpeg 9.0

Package:
src:wf-recorder
Source:
src:wf-recorder
Submitter:
Sebastian Ramacher
Date:
2026-10-19 11:51:01 UTC
Severity:
normal
Tags:
#1144022#5
Date:
2026-08-09 20:25:28 UTC
From:
To:
Source: wf-recorder
Version: 0.6.0-1
Severity: important
Tags: ftbfs sid forky
X-Debbugs-Cc: sramacher@debian.org
Usertags: ffmpeg-9.0

Dear maintainer,

wf-recorder FTBFS with ffmpeg 9.0 (available in experimental):

FAILED: [code=1] wf-recorder.p/src_frame-writer.cpp.o
c++ -Iwf-recorder.p -I. -I.. -I/usr/include/aarch64-linux-gnu -I/usr/include/libdrm -I/usr/include/pipewire-0.3 -I/usr/include/spa-0.2 -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++17 '-DWFRECORDER_VERSION="0.6.0"' -Wno-deprecated-declarations -g -O2 -ffile-prefix-map=/build/reproducible-path/wf-recorder-0.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fno-strict-aliasing -fno-strict-overflow -D_REENTRANT -pthread -MD -MQ wf-recorder.p/src_frame-writer.cpp.o -MF wf-recorder.p/src_frame-writer.cpp.o.d -o wf-recorder.p/src_frame-writer.cpp.o -c ../src/frame-writer.cpp
../src/frame-writer.cpp: In member function ‘AVPixelFormat FrameWriter::handle_buffersink_pix_fmt(const AVCodec*)’:
../src/frame-writer.cpp:195:17: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘pix_fmts’
  195 |     if (!codec->pix_fmts)
      |                 ^~~~~~~~
../src/frame-writer.cpp:200:41: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘pix_fmts’
  200 |     if (is_fmt_supported(in_fmt, codec->pix_fmts))
      |                                         ^~~~~~~~
../src/frame-writer.cpp:206:28: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘pix_fmts’
  206 |     for (int i = 0; codec->pix_fmts[i] != AV_PIX_FMT_NONE; i++) {
      |                            ^~~~~~~~
../src/frame-writer.cpp:209:20: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘pix_fmts’
  209 |             codec->pix_fmts[i], in_fmt, false, &loss);
      |                    ^~~~~~~~
../src/frame-writer.cpp: In function ‘uint64_t get_codec_channel_layout(const AVCodec*)’:
../src/frame-writer.cpp:521:17: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘ch_layouts’
  521 |     if (!codec->ch_layouts)
      |                 ^~~~~~~~~~
../src/frame-writer.cpp:524:46: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘ch_layouts’
  524 |         if (!av_channel_layout_check(&codec->ch_layouts[i]))
      |                                              ^~~~~~~~~~
../src/frame-writer.cpp:526:20: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘ch_layouts’
  526 |         if (codec->ch_layouts[i].u.mask == AV_CH_LAYOUT_STEREO)
      |                    ^~~~~~~~~~
../src/frame-writer.cpp:527:27: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘ch_layouts’
  527 |             return codec->ch_layouts[i].u.mask;
      |                           ^~~~~~~~~~
../src/frame-writer.cpp:530:19: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘ch_layouts’
  530 |     return codec->ch_layouts[0].u.mask;
      |                   ^~~~~~~~~~
../src/frame-writer.cpp: In function ‘AVSampleFormat get_codec_auto_sample_fmt(const AVCodec*)’:
../src/frame-writer.cpp:552:17: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘sample_fmts’
  552 |     if (!codec->sample_fmts)
      |                 ^~~~~~~~~~~
../src/frame-writer.cpp:555:20: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘sample_fmts’
  555 |         if (codec->sample_fmts[i] == -1)
      |                    ^~~~~~~~~~~
../src/frame-writer.cpp:557:44: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘sample_fmts’
  557 |         if (av_get_bytes_per_sample(codec->sample_fmts[i]) >= 2)
      |                                            ^~~~~~~~~~~
../src/frame-writer.cpp:558:27: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘sample_fmts’
  558 |             return codec->sample_fmts[i];
      |                           ^~~~~~~~~~~
../src/frame-writer.cpp:561:19: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘sample_fmts’
  561 |     return codec->sample_fmts[0];
      |                   ^~~~~~~~~~~
../src/frame-writer.cpp: In function ‘bool check_fmt_available(const AVCodec*, AVSampleFormat)’:
../src/frame-writer.cpp:565:59: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘sample_fmts’
  565 |     for (const enum AVSampleFormat *sample_ptr = codec -> sample_fmts; *sample_ptr != -1; sample_ptr++)
      |                                                           ^~~~~~~~~~~
../src/frame-writer.cpp: In function ‘AVSampleFormat convert_codec_sample_fmt(const AVCodec*, std::string)’:
../src/frame-writer.cpp:582:24: error: ‘const AVCodec’ {aka ‘const struct AVCodec’} has no member named ‘sample_fmts’
  582 |     } else if (!codec->sample_fmts || check_fmt_available(codec, converted_fmt))
      |                        ^~~~~~~~~~~
../src/frame-writer.cpp:591:1: warning: control reaches end of non-void function [-Wreturn-type]
  591 | }
      | ^
[15/20] c++ -Iwf-recorder.p -I. -I.. -I/usr/include/aarch64-linux-gnu -I/usr/include/libdrm -I/usr/include/pipewire-0.3 -I/usr/include/spa-0.2 -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++17 '-DWFRECORDER_VERSION="0.6.0"' -Wno-deprecated-declarations -g -O2 -ffile-prefix-map=/build/reproducible-path/wf-recorder-0.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fno-strict-aliasing -fno-strict-overflow -D_REENTRANT -pthread -MD -MQ wf-recorder.p/src_main.cpp.o -MF wf-recorder.p/src_main.cpp.o.d -o wf-recorder.p/src_main.cpp.o -c ../src/main.cpp
ninja: build stopped: subcommand failed.

dh_auto_build: error: cd obj-aarch64-linux-gnu && LC_ALL=C.UTF-8 ninja -j2 -v returned exit code 1
For more details, see the attached log.

Cheers

#1144022#10
Date:
2026-08-10 08:54:53 UTC
From:
To:
Control: forwarded -1 https://github.com/ammen99/wf-recorder/issues/350
Control: tag -1 upstream

Debian is not alone, updated metadata accordingly.

#1144022#19
Date:
2026-08-11 11:45:04 UTC
From:
To:
Control: tag -1 patch
https://gitlab.archlinux.org/archlinux/packaging/packages/wf-recorder/-/blob/d85efa2704043e629f2c47002fea6f98b02ee497/ffmpeg-9.patch

I _suspect_ that upstream may (eventually?) want a different patch like
https://github.com/ammen99/wf-recorder/pull/326
which contains ``#if LIBAVFILTER_VERSION_INT < AV_VERSION_INT(10, 6, 100)``
for full(er) backwards compatibility.
But certainly for the time being it seems good enough?

#1144022#30
Date:
2026-10-17 19:16:20 UTC
From:
To:
Dear maintainer,

I've prepared an NMU for wf-recorder (versioned as 0.6.0-1.1) and
uploaded it to DELAYED/2. Please feel free to tell me if I should
cancel it.

cu
Adrian

#1144022#37
Date:
2026-10-19 11:49:47 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
wf-recorder, 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 1144022@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Adrian Bunk <bunk@debian.org> (supplier of updated wf-recorder 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: Sat, 17 Oct 2026 22:09:56 +0300
Source: wf-recorder
Architecture: source
Version: 0.6.0-1.1
Distribution: unstable
Urgency: medium
Maintainer: Sway and related packages team <team+swaywm@tracker.debian.org>
Changed-By: Adrian Bunk <bunk@debian.org>
Closes: 1144022
Changes:
 wf-recorder (0.6.0-1.1) unstable; urgency=medium
 .
   * Non-maintainer upload.
   * Add upstream proposed fix for FTBFS with FFmpeg 9.
     (Closes: #1144022)
Checksums-Sha1:
 00207939a52b2fd42e7da059c952a9a82d46f867 2217 wf-recorder_0.6.0-1.1.dsc
 b3334f1b579557378ef81549da83d2ba0c0501e0 4992 wf-recorder_0.6.0-1.1.debian.tar.xz
Checksums-Sha256:
 d19eb08568c972920ca869389bc1ffad81f331e6cff3017511d00ca54b4781ee 2217 wf-recorder_0.6.0-1.1.dsc
 1481cb688608192b6e860504a2df182049f9c110c8102e58fc625cb18cc1fa8a 4992 wf-recorder_0.6.0-1.1.debian.tar.xz
Files:
 cb5d760814b85807f0d99c2cde7b6f8a 2217 x11 optional wf-recorder_0.6.0-1.1.dsc
 f8d0a3266234daba30ca628a3a5e6595 4992 x11 optional wf-recorder_0.6.0-1.1.debian.tar.xz
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEOvp1f6xuoR0v9F3wiNJCh6LYmLEFAmrTyOMACgkQiNJCh6LY
mLGKRQ/9HV1UclXHf+UdvHnGjV4pMloqQzJJkaopXIZ6xntLC0P4ksk55NepG8lm
Lvopkmtgs+YR2BRdva3T1j1PaAkfVeL9E9LBvfmbjDLJaExjeSvvjvfz94iw4tna
FpWUSP7ApC/xGOBN20AlSlVyrF9G4kHBuxXOKILbKxdjYBbfwUFSxboFZPWlrBa5
LJTra9CL8HA1ZUgPHydsuD58a83eben6aUiUHmLTABesqRhDTK2EdLwN+lyGCgOR
1/LcCHj6yS4WrUHFtrdwuafnUQE3fUKXhPfXNiJGGm+gsx8xFf4Qt2HRrb8UB6It
HxZr02LOKeFGE1Cx0xjDh+Hvsk4cYTwhNmXjWZKSc71pDWoag6arsekcLNfswQvQ
wkS2ABxGVzwP3b0tRDvrPXJz735v7CwKYokkDQRJnIbgBipJjtg8Ys6NpieAdG3C
ELjgYZT35gy2TZbyMwnahz0yEOVnMzvbRso+ZpE9EPLM0t5Pz8MxYyrEqLwuZJ/4
SWBdWPoVx1Kr9YwGAyt1vgOWpD0T3ePLe1F6kU6VEk9ikH47OdtKygWSDOfg7qCM
GPdC6jQMB6VMv4Cb9a8FColr1FAmCTyuHtSZItmMq/RdH6sI+BEl8tsteRs3krCR
lisVzy6pGIcdNyzXzjpUnB1c0q9fhpquYuI12pzHKWHFLUbvTj0=
=n66S
-----END PGP SIGNATURE-----