Skip to content

Conversation

@zlice
Copy link
Contributor

@zlice zlice commented Dec 22, 2025

Testing the changes

  • I tested the changes in this PR: tbd (end of year and all)

fwiw someone on reddit said they tested 8 for some other bug.

Local build testing

  • I built this PR locally for my native architecture, x86_64
  • I built this PR locally for these architectures (if supported. mark crossbuilds):
    • x86_64-musl
    • aarch64-musl
    • armv7l
    • armv6l-musl
    • i686

[skip ci] [ci skip] [no ci]

Build issues

cmus

not ready - cmus/cmus#1459

fooyin - fixed with libgme bump jkkt mentioned

wasn't building with 8, updated, still doesnt build.

fooyin/fooyin#779

fooyin/fooyin#780

something with c++23 ? tons of

/usr/include/qt6/QtCore/qline.h:122:26: error: 'const class QPoint' has no member named 'yp'; did you mean 'y'?
  122 |     return (pt2.yp - pt1.yp).value();
      |                          ^~
      |                          y

ssr

simple-screen-recorder does not have a ffmpeg8 ready release. supposedly git works fine. seen some other packages have a version but just use git...and more projects have been going this way (see tvheadend which still uses ffmpeg4 on the last 'release' version - #56647)

kodi

could use -DENABLE_INTERNAL_FFMPEG=ON. the next release is due to have ffmpeg8 support. similar to qt5/6.

internal ffmpeg does not seem to obey void's cmake vars and fails to configure. get some -R/usr/lib for aarch64-gcc.

RFC

qt5-webengine and qt6-pdf

update: qt6 apparently builds fine, and it was easier to copy other distros homework for qt5 than mess with the inline asm in their packaged ffmpeg and whatever compiler stuff was going on.

i think qt should use its own packaged ffmpeg. they do not really support over 5 and patching+building becomes a pain. i know this was done with chromium a while back so i figure it should be fine for qt too.

(i have these revbumped from testing but building would require more patching, and that will likely go on forever)

ffmpeg 8 vs 4 package names - ffmpeg=8, ffmpeg4=4

the previous idea was to move ffmpeg8 into ffmpeg and ffmpeg into ffmpeg4, re-rev/dep things for 8 vs 4.

is that still the desired way to go about this? currently this branch is just a new package for ffmpeg8, didn't touch 6 or 4.

it looks like the only ffmpeg4 packages left are vlc, tvheadend and ppsspp which was backed out from 6 because it doesn't play videos in certain games. alternatively for 4, the few stragglers may have their own ffmpeg bundled versions that can be used, and 4 could be removed entirely.

tracking issue - #51522

ppsspp backout - 59fd9d1

ccextractor

please check my rust-isms. some other packages seem to do similar XBPS_RUST_CROSS_TARGET seds or symlinks.

gifski

please check my rust-isms. looks like ffmpeg6 was patched for do_check ? but cross says it doesn't do checks for me, maybe it runs check ci or build server side.

some changes were post_extract but that botches patching for ffmpeg8, moved to post_patch - if still needed then we can move around extract/patch/cfg etc. not sure if the cache clear function is needed since lock was removed.

also needed to remove --lock to download the ffmpeg8 crate

chromaprint

do_check is no longer make_check_target=check but all_tests. however all_tests runs with BUILD_TESTS so? do_check essentially does squat...

mlt7

semi dupe of shotcut update #56922 - updated by johnny def5079

new version builds for 8

Updated packages

  • kid3: update to 3.9.7- kid3: update to 3.9.7. #58268
  • video-compare: update to 20250928
  • timg: update to 1.6.3
  • notcurses: update to 3.0.17
  • guvcview: update to 2.2.2
  • idjc: update to 0.9.10
  • libshould-idjc: update to 2.4.6-r2
  • ffms2: update to 5.0
  • droidcam-obs-plugin: update to 2.4.1
  • chromaprint: update to 1.6.0
  • ffmpegthumbnailer: update to 2.2.4
  • spek-x: update to 0.9.4
  • ccextractor: update to 0.94

@zlice zlice changed the title [WIP] ffmpeg8 [skip ci] [WIP] ffmpeg8 [skip ci] [ci skip] [no ci] Dec 22, 2025
@ahesford
Copy link
Member

I would like to move away from versioned ffmpeg packages with every release. We should try mightily to update everything for the newest version and just call that ffmpeg. If we need to keep legacy versions around for compatibility with a few packages, we can always make, e.g., ffmpeg8 when we move ffmpeg to 9 at some point in the future. But making ffmpeg8 up front just means that those packages will stick around the repos when we make ffmpeg9 later, and they may not even be required for legacy compatibility when that time comes.

I made this point in an earlier ffmpeg7 PR, and nobody made a compelling argument about why introducing versioned names up front is beneficial.

For Qt5, we can do whatever; eventually we'll retire Qt5 outright, so it can languish with an old, vendored FFmpeg now. For Qt6, I don't have a strong opinion.

@zlice
Copy link
Contributor Author

zlice commented Dec 22, 2025

I would like to move away from versioned ffmpeg packages with every release.

Alright, I'll update the versioning in this to ffmpeg as 8 and ffmpeg4 with the few deps.

I'll check qt5/6 for packaged ffmpeg too and probably do separate prs and ping johnny.

@JkktBkkt
Copy link
Contributor

fooyin: revbump libgme (sgn added the necessary patch but didn't bump both it and fooyin when mass-rebuilding for qt6.10)
This will also be necessary for 0.9.2 to build: https://github.com/fooyin/fooyin/commit/7b171c0da2b9289468696424fe51f76e1c365bb5.patch

@zlice
Copy link
Contributor Author

zlice commented Dec 23, 2025

looks like that works for fooyin, thanks!

edit: k looks like repo is just in the middle of sync or something

small problem, repo looks like it needs a fix? had to change from default to build arm7

armv7l

=> ERROR: libgme-0.6.3_2: failed to install target dependencies! (error 16)

ERROR: [trans] failed to download `xorgproto-2025.1_1' signature from `https://repo-default.voidlinux.org/current': Not Found
ERROR: Transaction failed! see above for errors.

@zlice
Copy link
Contributor Author

zlice commented Dec 24, 2025

the libgme thing a39927f seems to break gst-plugins-bad1 and probably other packages ?

assume the internal bit strips the functions?

edit: removing the patch/cxxflags does allow gst-plugins-bad1 to build


FAILED: [code=1] ext/gme/libgstgme.so 
cc  -o ext/gme/libgstgme.so ext/gme/libgstgme.so.p/gstgme.c.o -flto -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,-soname,libgstgme.so -Wl,-Bsymbolic-functions -Wl,-z,nodelete -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe -ffile-prefix-map=/builddir/gst-plugins-bad1-1.26.5/build=. -O2 -Wl,-rpath,/usr/lib64 -Wl,--start-group /usr/lib64/libgstaudio-1.0.so /usr/lib64/libgstbase-1.0.so /usr/lib64/libgstreamer-1.0.so /usr/lib64/libgobject-2.0.so /usr/lib64/libglib-2.0.so -lgme -Wl,--end-group
/usr/bin/ld: /tmp/ccp9q0lq.ltrans0.ltrans.o: in function `gst_gme_dec_src_query':
<artificial>:(.text+0x312): undefined reference to `gme_tell'
/usr/bin/ld: /tmp/ccp9q0lq.ltrans0.ltrans.o: in function `gst_gme_play':
<artificial>:(.text+0x3c6): undefined reference to `gme_tell'
/usr/bin/ld: <artificial>:(.text+0x3fa): undefined reference to `gme_play'
/usr/bin/ld: <artificial>:(.text+0x465): undefined reference to `gme_tell'
/usr/bin/ld: <artificial>:(.text+0x4be): undefined reference to `gme_seek'
/usr/bin/ld: /tmp/ccp9q0lq.ltrans0.ltrans.o: in function `gst_gme_dec_sink_event':
<artificial>:(.text+0x8b9): undefined reference to `gme_track_info'
/usr/bin/ld: <artificial>:(.text+0x9ab): undefined reference to `gme_start_track'
/usr/bin/ld: <artificial>:(.text+0x9bf): undefined reference to `gme_set_fade'
/usr/bin/ld: <artificial>:(.text+0xbb9): undefined reference to `gme_open_data'
/usr/bin/ld: <artificial>:(.text+0xbe9): undefined reference to `gme_delete'
/usr/bin/ld: <artificial>:(.text+0xf7c): undefined reference to `gme_start_track'
/usr/bin/ld: /tmp/ccp9q0lq.ltrans0.ltrans.o: in function `gst_gme_dec_src_event':
<artificial>:(.text+0x1101): undefined reference to `gme_tell'
/usr/bin/ld: /tmp/ccp9q0lq.ltrans0.ltrans.o: in function `gst_gme_dec_change_state':
<artificial>:(.text+0x1331): undefined reference to `gme_delete'
collect2: error: ld returned 1 exit status

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants