#1144022 wf-recorder: FTBFS with ffmpeg 9.0

Package:
src:wf-recorder
Source:
src:wf-recorder
Submitter:
Sebastian Ramacher
Date:
2026-08-15 08:09:04 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?