void-packages
void-packages copied to clipboard
ffmpeg6 split
[ci skip]
Testing the changes
- I tested the changes in this PR: YES
main testing has been vaapi in Firefox Nightly and enc/dec in Shotcut on Intel A770
New package
- This new package conforms to the package requirements: YES
Local build testing
- I built this PR locally for my native architecture, x86_64
Discussion
Continuation of https://github.com/void-linux/void-packages/pull/36315
libavresample
is deprecated, but marked as a dependency when trying to build other packages and install ffmpeg
(6). I think the right way to handle this is make a meta package and the add to removals?
Commit naming / misc
~~Commits are 'dirty' right now, running with gstreamer 1.22.1 updates and Intel OpenCL. This will also make intel packages pr obsolete.~~ (see Requirements below)
Maintainer for previous ffmpeg(4) was orphaned, I can put my name in there if that matters, though I don't exactly see myself keeping up on ffmpeg.
~~This updates QT5 which looks like it is usually hosted by Johnny. Not sure if there's any reason to stay there or these sources are fine.~~ Using qt5.15.11 now, revbumps and some patches.
STILL FFMPEG4
These are a mix of emulators, games and/or older packages.
- ~~attract~~ (2.7 builds)
- ~~audacity (https://github.com/audacity/audacity/issues/2305 and https://sourceforge.net/p/portmedia/wiki/portsmf/ is 'beta')~~ (updated to 3.x, compiles with ffmpeg6)
- ~~ccextractor~~ (master patches)
- ~~vice (3.8 compiles, needs makedepends libcurl-devel)~~ ty yosh
- kodi (doesn't build)
- mlt (only dep left is flowblade - flowblade 2.12.0.2 with mlt7-python3 can 'render' videos with cpu and gpu - ~~https://github.com/void-linux/void-packages/pull/47195~~ https://github.com/void-linux/void-packages/pull/50385)
- ~~synfig (mlt)~~ (work with mlt7, bump synfigstudio)
- tvheadend (download page recommends using 4.3 which compiles fine, 4.4 eta is Q1 2024)
- ~~ssr~~ (patches)
- ~~spek-alternative~~ (replace with spek-x)
- ~~ppsspp~~ ~~(1.17.1 is out, but there's 5+ distfiles that are all git commits)~~ (minor patch)
- olive (has been in alpha since 2020, seems they do nightly builds and appimages)
- moc
- mediastreamer (linphone links are dead, changed to github belladonne. their stuff never worked for me but there are updates if someone wants to give it a try)
- ~~libextractor (1.13 compiles, remove exiv2 patch)~~ (as yosh pointed out, 1.13 just removes ffmpeg bits)
- idjc (0.9.8 compiles, remove python3.10 patch, needs makedepends libebur128-devel and libshout-idjc 2.4.6 with '-r1' for distfile - https://github.com/void-linux/void-packages/pull/48944)
- ~~hedgewars~~ (patch for 6 https://github.com/hedgewars/hw/pull/74)
- ~~ffmpegthumbnailer~~ (patches for moviedecoder.xxx files)
- ~~ffmpegthumbs~~ (latest compiles)
- deadbeef (1.9.6 may work but requires libdispatch from apple)
- ~~omxplayer~~ (package removed, deprecated in favor of vlc)
- qtav (fork has ffmpeg 5 patch - https://github.com/cmguo/QtAV)
-
vlc
(vlc4 will support ffmpeg5, there's a patch to build 3.x with ffmpeg5 but it will lack vaapi) - ~~
osg
(OpenSceneGraph plusxine-lib
) (patches from osg issue build with ffmpeg6, ffmpeg5.patch.txt)~~ used ffmpeg6 patch
HAVE NOT BUILT YET
- ~~omxplayer (rpi only? ffmpeg4)~~ (removed)
- kodi (big, but ffmpeg4)
UPDATED (for ffmpeg6)
- ~~blender: update to 3.5.1~~ ~~will be revbump with~~ https://github.com/void-linux/void-packages/pull/43992
- unpaper: update to 7.0.0.
- guvcview: update to 2.0.8.
- ~~qt5: update to 5.15.8~~ updated by another PR to 5.15.11
- ~~qt5-webengine: update to 5.18.15~~ updated by another PR to 5.15.16 (some patching for ffmpeg build)
- ~~shiboken2: revbump for qt5.15.8 (patch)~~ updated by another PR to 5.15.10
- ~~python3-pyside2: update to 5.15.8 (patch)~~ updated by another PR to 5.15.10
- New package: spex-x replaces spek-alternative for ffmpeg-6.0
Requirements
-
~~gstreamer 1.22.2~~ - a few packages use ffmpeg-devel and require a revbump
-
~~Intel Packages Intel Packages v2 - ffmpeg4 uses different libraries than 6 (libmfx / Intel-MediaSDK vs only oneVPL that Intel is moving to), both are included here~~. Using replacement oneVPL from OBS update.
-
~~shotcut 23.05.14~~
-
https://github.com/void-linux/void-packages/pull/44781 will remove from this PR
xlint questions
============ qt5 ===============
qt5:35: verify python_version and remove "#unverified"
qt5:529: use <pkgname>-doc subpackage for documentation
what counts as 'verified' for python?
does doc pkg need changed? looks like a separate package (still on 5.15.2 and out of sync with current qt5 5.15.7)
edit: per irc i was told docs is nothing to worry about rn. the python2 vs 3 thing i guess i can't verify because i don't use any qt scripts for that
are the commits for a blender update, gstreamer and new intel packages really necessary for this PR? If not, please drop them. If yes and they could be merged before merging this PR, please split them to a separate PR and mention that it should be merged before this PR in this PR's description.
Intel OpenCL commits removed
blender - uses ffmpeg-devel, added to update list
gstreamer - added to 'Requirements' section and only revbumped the appropriate packages
Intel Packages - added to 'Requirements'
ICU updated, and many other things since my last full build test. building fine for now
we can replace spek-alternative
with spek-x
, a more actively maintained fork that supports ffmpeg6. the original spek
has also become maintained again, but it claims to only support up to ffmpeg 5.1.
Blocked by https://github.com/void-linux/void-packages/pull/46172
Already quite a few updates to sift through and I don't feel comfortable trying until I know I can update mesa.
Blocked by #46172
Already quite a few updates to sift through and I don't feel comfortable trying until I know I can update mesa.
Sup, 23.1.8 should build, but it doesn't work because 32-bit subpackage problem. i still don't know how to solve this issue. EDIT: on my personal way, i'm currently running mesa 23.2.1 on my void-install, no issues whatsoever.
Got 64/32bit x86 building again. tyvm spid
Got 64/32bit x86 building again. tyvm spid
it's not ready yet, i believe there is an issue with arm and aarch64 archs. Mesa still can't be updated atm.
Edit, if i'm lucky, i might get it ready for tonight, but nothing's set in the stone.
see here: https://github.com/void-linux/void-packages/issues/46674
we can replace
spek-alternative
withspek-x
, a more actively maintained fork that supports ffmpeg6. the originalspek
has also become maintained again, but it claims to only support up to ffmpeg 5.1.
added to here, separate PR was building off ffmpeg4 and looked like everything was bombing out.
not sure if i did the transitional dummy package to replace spek-alternative with spek-x right
I'd like to help move this along, is there anything I can do?
I'd like to help move this along, is there anything I can do?
I know paper mentioned splitting things where appropriate but I made some QT(5) changes to get this to work. Sure there are some revbumps missing there. Not sure if QT stuff should be separated first.
Have not tested electronXX builds in a bit because they're long.
Have not built kodi or omxplayer, but should work fine since they're still 4.
I suspect hedgewars
could be made to work fine with 6. I haven't checked if there's any updates or patches in a while.
Any misc packages could be tested for sanity but should work fine. I only run a few vaapi/ffmpeg things regularly: shotcut
, firefox(nightly)
, discord
, mpv
. Other packages "use" ffmpeg but for side features I never touch like dolphin-emu
and blender
.
The spek-alternative
replacement idk if I did the 'remove old package' thing right.
Did not test 'depends' of packages that bring in 4, just kind of installed it and am able to remove 4 in case of reinstall conflicts. I assume that's good enough to be covered in patch notes?
Thanks for all the info, when I get a bit more time (hopefully in a couple weeks), I'll sift through the items you mentioned. :)
Using QT 5.15.11 that was just updated. Revbump for qt5 and some hacky patch to build qt5-webengine by forcing -system-ffmpeg
and knocking out the test was complaining. If that should be fixed properly lmk.
tbd: new gonic package - https://github.com/void-linux/void-packages/pull/46013
updated comments for ffmpeg4 packages. flowblade seems to work for me with mlt7-python3, should be the last user of mlt (6), so mlt may be good to remove
vice, libextractor and idjc i wouldn't know how to test. mediastreamer is linphone based so i didn't check beyond seeing a new version (complained about optr cmake files?)
I'm about to make all revisions 99 until this is about to merge x-x
add flowblade PR link: https://github.com/void-linux/void-packages/pull/47195
heya, I have enough time that I'd like to help move this along. has much changed in terms of what needs to be done since your last comment about what needs to be done?
i don't think much more can be done besides vice, libextractor and idjc
being tested real quick. tvheadend
update should hit at some point. nvidia headers could be merged. mlt (flowblade)
can happen after. new gonic
package can use ffmpeg6.
really just need to clean up commits and double check things.
as for testing, even slackware has ffmpeg 6.1, so i'm sure package compatibility fine at least for glibc.
vice and idjc work well (well, idjc spews a bunch of syntax parsing warnings but that's python stuff rather than ffmpeg stuff). libextractor's throwing an error with exiv2 and I'm not sure if that's affecting the ffmpeg part or not--no video/audio stuff is being returned
vice and idjc work well
@yoshiyoshyosh would you mind making PRs to update vice/idjc version since you tested them? then i'll bump them in here
@yoshiyoshyosh would you mind making PRs to update vice/idjc version since you tested them? then i'll bump them in here
@zlice sounds good. also, I figured out something with libextractor: it doesn't need ffmpeg or any of ffmpeg's core libraries anymore with the latest versions (commit 2332716ae48d6b899e4d2bb07f468e8c076d2608
). can also make a pr to update it and you can remove the revbump here
must be why it built lol. odd, they removed it and didn't replace it with anything so opus and thumbnails are gone? only thing that uses it is gnunet
. thanks
so opus and [video] thumbnails are gone?
~~yup. I think it's just a symptom of being really old and half-abandoned by now haha~~
actually, they use gstreamer now, so opus is still there. video thumbnails are gone though
it seems like the latest idjc versions can build and run the ffmpeg-required portions with ffmpeg6 perfectly fine.
it's almost the same with vice? they started using the ffmpeg executable as a fork rather than relying on the library functions. h264 encoding works but not h265
idk if you did tests for spek-x when building it but they seem to fail for me without this patch:
--- a/tests/perf.cc 2024-03-09 17:13:49.086603418 -0500
+++ b/tests/perf.cc 2024-03-09 17:13:59.453603753 -0500
@@ -1,3 +1,4 @@
+#include <cstdint>
#include <cstdlib>
#include <iostream>
#include <fstream>
idk if you did tests for spek-x when building it but they seem to fail for me without this patch:
haven't done full builds for musl yet. when your PRs get merged i'll probably start bugging people. coming up on a year now and my updates just needed another kick. probably doing a full reinstall once this merges.
haven't done full builds for musl yet
that's odd, it was failing while I was testing on glibc O.o, wonder if there's some differing strict compiler flags present somewhere. whatever, so long as it works