From: zlice <zlice@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] ffmpeg6 split
Date: Sat, 06 Jul 2024 00:35:05 +0200 [thread overview]
Message-ID: <20240705223505.8B44029215@inbox.vuxu.org> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-43761@inbox.vuxu.org>
[-- Attachment #1: Type: text/plain, Size: 5624 bytes --]
There is an updated pull request by zlice against master on the void-packages repository
https://github.com/zlice/void-packages ffmpeg6-split
https://github.com/void-linux/void-packages/pull/43761
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](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#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](https://github.com/void-linux/void-packages/pull/42861) and [Intel OpenCL](https://github.com/void-linux/void-packages/pull/43084). This will also make [intel packages pr](https://github.com/void-linux/void-packages/pull/41132) 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.
- kodi (doesn't build, on version 19 - arch pkgbuild updated jul 4th 2024, looks like version 21 and ffmpeg6)
- tvheadend (download page recommends using 4.3 which compiles fine, 4.4 eta is Q1 2024)
- 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)
- flowblade/mlt - 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)
- mediastreamer (linphone links are dead, changed to github belladonne. 5.3.63 does not use ffmepg5+ still)
- `vlc` (vlc4 will support ffmpeg5, there's a patch to build 3.x with ffmpeg5 but it will lack vaapi)
- olive (has been in alpha since 2020, seems they do nightly builds and appimages)
- moc
- ~~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)
- ~~deadbeef (1.9.6 may work but requires libdispatch from apple)~~ 1.9.6 works
- ~~ccextractor~~ (master patches)
- ~~vice (3.8 compiles, needs makedepends libcurl-devel)~~ ty yosh
- ~~synfig (mlt)~~ (work with mlt7, bump synfigstudio)
- ~~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)
- ~~libextractor (1.13 compiles, remove exiv2 patch)~~ (as yosh pointed out, 1.13 just removes ffmpeg bits)
- ~~hedgewars~~ (patch for 6 https://github.com/hedgewars/hw/pull/74)
- ~~ffmpegthumbnailer~~ (patches for moviedecoder.xxx files)
- ~~ffmpegthumbs~~ (latest compiles)
- ~~omxplayer~~ (package removed, deprecated in favor of vlc)
- ~~`osg` (OpenSceneGraph plus `xine-lib`) (patches from osg issue build with ffmpeg6, [ffmpeg5.patch.txt](https://github.com/void-linux/void-packages/files/14743246/ffmpeg5.patch.txt))~~ used ffmpeg6 patch
- ~~qtav (fork has ffmpeg 5 patch - https://github.com/cmguo/QtAV)~~ qtav was absorbed by digikam, which is the only user https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270213
##### 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](https://github.com/void-linux/void-packages/pull/42861)~~ - a few packages use ffmpeg-devel and require a revbump
- ~~[Intel Packages](https://github.com/void-linux/void-packages/pull/41132) [Intel Packages v2](https://github.com/void-linux/void-packages/pull/47330) - 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/44260)~~
- ~~https://github.com/void-linux/void-packages/pull/44781 will remove from this PR~~ https://github.com/void-linux/void-packages/commit/939a712449718b8fa805e31ae781f80e3f014ef7 nv-codec-headers updated but breaks 6.0.1 and 4.4.4
A patch file from https://github.com/void-linux/void-packages/pull/43761.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg6-split-43761.patch --]
[-- Type: text/x-diff, Size: 303968 bytes --]
From fc31abb731f7b234e7787a99f60938fb12ecf596 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Thu, 4 Jul 2024 19:28:06 -0400
Subject: [PATCH 01/93] nv-codec-headers: update to 12.0.16.0
---
| 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--git a/srcpkgs/nv-codec-headers/template b/srcpkgs/nv-codec-headers/template
index 8f04477e378e55..6798f9cbd6bb2f 100644
--- a/srcpkgs/nv-codec-headers/template
+++ b/srcpkgs/nv-codec-headers/template
@@ -1,15 +1,15 @@
# Template file for 'nv-codec-headers'
pkgname=nv-codec-headers
reverts="12.2.72.0_1"
-version=11.1.5.1
-revision=2
+version=12.0.16.1
+revision=1
build_style=gnu-makefile
short_desc="FFmpeg version of headers required to interface with Nvidias codec APIs"
maintainer="Orphaned <orphan@voidlinux.org>"
license="MIT"
homepage="http://git.videolan.org/?p=ffmpeg/nv-codec-headers.git"
distfiles="https://github.com/FFmpeg/nv-codec-headers/archive/n${version}.tar.gz"
-checksum=d095fbd56aa93772471a323be0ebe65504a0f43f06c76a30b6d25da77b06ae9c
+checksum=37e31c7ed0c9bf2da74646a3ec426c38a6d29e60b1fb7bff3e03a99b9412e050
post_install() {
sed -n '4,25p' include/ffnvcodec/nvEncodeAPI.h > LICENSE
From 642622cda41207a2435804212de486e55ae75974 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Sat, 29 Jun 2024 06:55:14 -0400
Subject: [PATCH 02/93] New package: ffmpeg6-6.0.1
---
common/shlibs | 9 +
srcpkgs/ffmpeg6/patches/qsv.patch | 15 ++
srcpkgs/ffmpeg6/patches/qt6-webengine.patch | 36 +++
srcpkgs/ffmpeg6/template | 239 ++++++++++++++++++++
srcpkgs/ffplay | 2 +-
srcpkgs/libavcodec6 | 1 +
srcpkgs/libavdevice6 | 1 +
srcpkgs/libavfilter6 | 1 +
srcpkgs/libavformat6 | 1 +
srcpkgs/libavresample6 | 1 +
srcpkgs/libavutil6 | 1 +
srcpkgs/libpostproc6 | 1 +
srcpkgs/libswresample6 | 1 +
srcpkgs/libswscale6 | 1 +
14 files changed, 309 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/ffmpeg6/patches/qsv.patch
create mode 100644 srcpkgs/ffmpeg6/patches/qt6-webengine.patch
create mode 100644 srcpkgs/ffmpeg6/template
create mode 120000 srcpkgs/libavcodec6
create mode 120000 srcpkgs/libavdevice6
create mode 120000 srcpkgs/libavfilter6
create mode 120000 srcpkgs/libavformat6
create mode 120000 srcpkgs/libavresample6
create mode 120000 srcpkgs/libavutil6
create mode 120000 srcpkgs/libpostproc6
create mode 120000 srcpkgs/libswresample6
create mode 120000 srcpkgs/libswscale6
diff --git a/common/shlibs b/common/shlibs
index 07502488237efb..53936afbe2fb4c 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -392,6 +392,15 @@ libid3tag.so.0 libid3tag-0.15.1b_1
libgif.so.7 giflib-5.1.0_1
libImlib2.so.1 imlib2-1.4.2_1
libmp3lame.so.0 lame-3.98.2_1
+libmp3lame.so.0 lame-3.98.2_1
+libavdevice.so.60 libavdevice6-6.0_1
+libavformat.so.60 libavformat6-6.0_1
+libswscale.so.7 libswscale6-6.0_1
+libswresample.so.4 libswresample6-6.0_1
+libpostproc.so.57 libpostproc6-6.0_1
+libavcodec.so.60 libavcodec6-6.0_1
+libavutil.so.58 libavutil6-6.0_1
+libavfilter.so.9 libavfilter6-6.0_1
libavdevice.so.58 libavdevice-4.0_1
libavformat.so.58 libavformat-4.0_1
libswscale.so.5 libswscale-4.0_1
diff --git a/srcpkgs/ffmpeg6/patches/qsv.patch b/srcpkgs/ffmpeg6/patches/qsv.patch
new file mode 100644
index 00000000000000..94ef68f5683f3a
--- /dev/null
+++ b/srcpkgs/ffmpeg6/patches/qsv.patch
@@ -0,0 +1,15 @@
+diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
+index da700f25e9..b501964089 100644
+--- a/libavcodec/qsvdec.c
++++ b/libavcodec/qsvdec.c
+@@ -1076,6 +1076,9 @@ static int qsv_decode_frame(AVCodecContext *avctx, AVFrame *frame,
+
+ ret = qsv_process_data(avctx, &s->qsv, frame, got_frame, &s->buffer_pkt);
+ if (ret < 0){
++ if (ret == AVERROR(EAGAIN))
++ ret = 0;
++
+ /* Drop buffer_pkt when failed to decode the packet. Otherwise,
+ the decoder will keep decoding the failure packet. */
+ av_packet_unref(&s->buffer_pkt);
+
diff --git a/srcpkgs/ffmpeg6/patches/qt6-webengine.patch b/srcpkgs/ffmpeg6/patches/qt6-webengine.patch
new file mode 100644
index 00000000000000..c0b397ba849438
--- /dev/null
+++ b/srcpkgs/ffmpeg6/patches/qt6-webengine.patch
@@ -0,0 +1,36 @@
+https://aur.archlinux.org/cgit/aur.git/tree/040-ffmpeg-add-av_stream_get_first_dts-for-chromium.patch?h=ffmpeg-intel-full-git
+diff --git a/libavformat/avformat.h b/libavformat/avformat.h
+index cd7b0d941c..b4a6dce885 100644
+--- a/libavformat/avformat.h
++++ b/libavformat/avformat.h
+@@ -1025,6 +1025,10 @@
+
+ #define AV_PROGRAM_RUNNING 1
+
++// Chromium: We use the internal field first_dts vvv
++int64_t av_stream_get_first_dts(const AVStream *st);
++// Chromium: We use the internal field first_dts ^^^
++
+ /**
+ * New fields can be added to the end with minor version bumps.
+ * Removal, reordering and changes to existing fields require a major
+
+diff --git a/libavformat/utils.c b/libavformat/utils.c
+index de7580c32d..0ef0fe530e 100644
+--- a/libavformat/utils.c
++++ b/libavformat/utils.c
+@@ -152,6 +152,13 @@
+ return AV_CODEC_ID_NONE;
+ }
+
++// Chromium: We use the internal field first_dts vvv
++int64_t av_stream_get_first_dts(const AVStream *st)
++{
++ return cffstream(st)->first_dts;
++}
++// Chromium: We use the internal field first_dts ^^^
++
+ enum AVCodecID ff_get_pcm_codec_id(int bps, int flt, int be, int sflags)
+ {
+ if (bps <= 0 || bps > 64)
+
diff --git a/srcpkgs/ffmpeg6/template b/srcpkgs/ffmpeg6/template
new file mode 100644
index 00000000000000..050b103349f655
--- /dev/null
+++ b/srcpkgs/ffmpeg6/template
@@ -0,0 +1,239 @@
+# Template file for 'ffmpeg6'
+# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
+pkgname=ffmpeg6
+version=6.0.1
+revision=1
+short_desc="Decoding, encoding and streaming software"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="GPL-3.0-or-later"
+homepage="https://www.ffmpeg.org"
+changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
+distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
+checksum=9b16b8731d78e596b4be0d720428ca42df642bb2d78342881ff7f5bc29fc9623
+
+hostmakedepends="pkg-config perl"
+makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
+ libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
+ libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
+ libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
+ $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
+ $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
+ $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
+ $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
+ $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
+ $(vopt_if drm libdrm-devel) $(vopt_if svtav1 libsvt-av1-devel)
+ $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
+ $(vopt_if vulkan 'vulkan-loader-devel')
+ $(vopt_if onevpl 'oneVPL oneVPL-devel')
+ $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
+depends="ffplay>=${version}_${revision}"
+
+build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg webp sofa vulkan drm svtav1 srt rist nvdec onevpl"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
+desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
+desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
+desc_option_sofa="Enable support for AES SOFA"
+desc_option_webp="Enable support for WebP"
+
+case "$XBPS_TARGET_MACHINE" in
+ i686*)
+ build_options_default+=" vaapi vdpau nvenc nvdec"
+ hostmakedepends+=" nasm"
+ ;;
+ x86_64*)
+ hostmakedepends+=" nasm"
+ build_options_default+=" vaapi vdpau nvenc nvdec onevpl"
+ ;;
+ ppc64*) build_options_default+=" vaapi vdpau";;
+ mips*) CFLAGS="-mnan=legacy";;
+esac
+
+if [ "$XBPS_TARGET_WORDSIZE" != "32" ]; then
+ build_options_default+=" svtav1"
+fi
+
+_apply_patch() {
+ local args="$1" pname="$(basename $2)"
+
+ if [ ! -f ".${pname}_done" ]; then
+ patch -N $args -i $2
+ touch .${pname}_done
+ fi
+}
+
+post_patch() {
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
+ esac
+}
+
+do_configure() {
+ # Fix gcc on x86_64-musl only
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
+ vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
+ fi
+
+ if [ "$CROSS_BUILD" ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch="arm";;
+ aarch64*) _arch="aarch64";;
+ mips*) _arch="mips";;
+ ppc64*) _arch="ppc64";;
+ ppc*) _arch="ppc";;
+ *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
+ esac
+
+ _args+=" --enable-cross-compile
+ --sysroot=$XBPS_CROSS_BASE
+ --cross-prefix=${XBPS_CROSS_TRIPLET}-
+ --target-os=linux --arch=${_arch}"
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ ppc|ppc-musl) _args+=" --disable-altivec";;
+ esac
+
+ if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ _args+=" --extra-libs=-latomic"
+ fi
+
+ ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
+ --disable-stripping \
+ --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
+ --enable-libmp3lame --enable-libvorbis --enable-libxvid \
+ --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
+ --enable-shared --enable-static --enable-libxcb \
+ $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
+ --enable-libspeex --enable-libcelt --enable-libass \
+ --enable-libopus --enable-librtmp --enable-libjack \
+ $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
+ --disable-libopencore_amrnb --disable-libopencore_amrwb \
+ --disable-libopenjpeg --enable-libbluray \
+ --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
+ $(vopt_enable x265 libx265) \
+ $(vopt_enable v4l2 libv4l2) \
+ $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
+ --enable-libbs2b --enable-libvidstab \
+ $(vopt_enable dav1d libdav1d) \
+ $(vopt_enable zimg libzimg) \
+ $(vopt_enable webp libwebp) \
+ $(vopt_enable sofa libmysofa) \
+ $(vopt_enable vulkan) \
+ $(vopt_enable onevpl libvpl) \
+ $(vopt_enable drm libdrm) \
+ $(vopt_enable svtav1 libsvtav1) \
+ $(vopt_enable srt libsrt) \
+ $(vopt_enable rist librist) \
+ $(vopt_enable nvenc nvenc) \
+ $(vopt_enable nvdec nvdec)
+}
+
+do_build() {
+ make ${makejobs}
+ make doc/ff{mpeg,play}.1
+}
+
+do_install() {
+ make DESTDIR=${DESTDIR} install install-man
+}
+
+libavcodec6_package() {
+ short_desc="FFmpeg codec library"
+ pkg_install() {
+ vmove "usr/lib/libavcodec.so.*"
+ }
+}
+
+libavdevice6_package() {
+ short_desc="FFmpeg device handling library"
+ pkg_install() {
+ vmove "usr/lib/libavdevice.so.*"
+ }
+}
+
+libavresample6_package() {
+ short_desc="Package deprecated, removal needed"
+ build_style=meta
+}
+
+libavformat6_package() {
+ short_desc="FFmpeg file format library"
+ pkg_install() {
+ vmove "usr/lib/libavformat.so.*"
+ }
+}
+
+libavutil6_package() {
+ short_desc="FFmpeg utility library"
+ pkg_install() {
+ vmove "usr/lib/libavutil.so.*"
+ }
+}
+
+libavfilter6_package() {
+ short_desc="FFmpeg audio/video filter library"
+ pkg_install() {
+ vmove "usr/lib/libavfilter.so.*"
+ }
+}
+
+libpostproc6_package() {
+ short_desc="FFmpeg video postprocessing library"
+ pkg_install() {
+ vmove "usr/lib/libpostproc.so.*"
+ }
+}
+
+libswscale6_package() {
+ short_desc="FFmpeg video scaling library"
+ pkg_install() {
+ vmove "usr/lib/libswscale.so.*"
+ }
+}
+
+libswresample6_package() {
+ short_desc="FFmpeg video resampling library"
+ pkg_install() {
+ vmove "usr/lib/libswresample.so.*"
+ }
+}
+
+ffmpeg6-devel_package() {
+ depends="
+ libavcodec6>=${version}_${revision}
+ libavdevice6>=${version}_${revision}
+ libavformat6>=${version}_${revision}
+ libavutil6>=${version}_${revision}
+ libavfilter6>=${version}_${revision}
+ libpostproc6>=${version}_${revision}
+ libswscale6>=${version}_${revision}
+ libswresample6>=${version}_${revision}"
+ short_desc+=" - development files"
+ conflicts="ffmpeg-devel"
+ if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then
+ # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
+ nostrip_files="/usr/lib/libavfilter.a"
+ fi
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/pkgconfig
+ vmove "usr/lib/*.a"
+ vmove "usr/lib/*.so"
+ vmove usr/share/ffmpeg/examples
+ vmove usr/share/man/man3
+ }
+}
+
+ffplay_package() {
+ short_desc="Simple video player using FFmpeg and SDL2"
+ pkg_install() {
+ vmove usr/bin/ffplay
+ vmove "usr/share/man/man1/ffplay*"
+ }
+}
diff --git a/srcpkgs/ffplay b/srcpkgs/ffplay
index a9f1eea092d5e9..ccdfc6aa0e84ea 120000
--- a/srcpkgs/ffplay
+++ b/srcpkgs/ffplay
@@ -1 +1 @@
-ffmpeg
\ No newline at end of file
+ffmpeg6
\ No newline at end of file
diff --git a/srcpkgs/libavcodec6 b/srcpkgs/libavcodec6
new file mode 120000
index 00000000000000..ccdfc6aa0e84ea
--- /dev/null
+++ b/srcpkgs/libavcodec6
@@ -0,0 +1 @@
+ffmpeg6
\ No newline at end of file
diff --git a/srcpkgs/libavdevice6 b/srcpkgs/libavdevice6
new file mode 120000
index 00000000000000..ccdfc6aa0e84ea
--- /dev/null
+++ b/srcpkgs/libavdevice6
@@ -0,0 +1 @@
+ffmpeg6
\ No newline at end of file
diff --git a/srcpkgs/libavfilter6 b/srcpkgs/libavfilter6
new file mode 120000
index 00000000000000..ccdfc6aa0e84ea
--- /dev/null
+++ b/srcpkgs/libavfilter6
@@ -0,0 +1 @@
+ffmpeg6
\ No newline at end of file
diff --git a/srcpkgs/libavformat6 b/srcpkgs/libavformat6
new file mode 120000
index 00000000000000..ccdfc6aa0e84ea
--- /dev/null
+++ b/srcpkgs/libavformat6
@@ -0,0 +1 @@
+ffmpeg6
\ No newline at end of file
diff --git a/srcpkgs/libavresample6 b/srcpkgs/libavresample6
new file mode 120000
index 00000000000000..ccdfc6aa0e84ea
--- /dev/null
+++ b/srcpkgs/libavresample6
@@ -0,0 +1 @@
+ffmpeg6
\ No newline at end of file
diff --git a/srcpkgs/libavutil6 b/srcpkgs/libavutil6
new file mode 120000
index 00000000000000..ccdfc6aa0e84ea
--- /dev/null
+++ b/srcpkgs/libavutil6
@@ -0,0 +1 @@
+ffmpeg6
\ No newline at end of file
diff --git a/srcpkgs/libpostproc6 b/srcpkgs/libpostproc6
new file mode 120000
index 00000000000000..ccdfc6aa0e84ea
--- /dev/null
+++ b/srcpkgs/libpostproc6
@@ -0,0 +1 @@
+ffmpeg6
\ No newline at end of file
diff --git a/srcpkgs/libswresample6 b/srcpkgs/libswresample6
new file mode 120000
index 00000000000000..ccdfc6aa0e84ea
--- /dev/null
+++ b/srcpkgs/libswresample6
@@ -0,0 +1 @@
+ffmpeg6
\ No newline at end of file
diff --git a/srcpkgs/libswscale6 b/srcpkgs/libswscale6
new file mode 120000
index 00000000000000..ccdfc6aa0e84ea
--- /dev/null
+++ b/srcpkgs/libswscale6
@@ -0,0 +1 @@
+ffmpeg6
\ No newline at end of file
From 3573ce8d6c7b6d8b73635003efcea475a346ead5 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Sat, 29 Jun 2024 06:53:22 -0400
Subject: [PATCH 03/93] ffmpeg: revbump for ffmpeg6
---
srcpkgs/ffmpeg/template | 34 ++++++++++++++++------------------
1 file changed, 16 insertions(+), 18 deletions(-)
diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index 93618cd977537e..0dbcb99de37681 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -2,8 +2,8 @@
# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
pkgname=ffmpeg
version=4.4.4
-revision=7
-short_desc="Decoding, encoding and streaming software"
+revision=8
+short_desc="Decoding, encoding and streaming software - ffmpeg4 libraries only"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.ffmpeg.org"
@@ -27,13 +27,15 @@ makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-deve
$(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
$(vopt_if drm libdrm-devel) $(vopt_if svtav1 libsvt-av1-devel)
$(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
- $(vopt_if vulkan 'vulkan-loader-devel')
+ $(vopt_if vulkan 'vulkan-loader Vulkan-Headers')
$(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
-depends="ffplay>=${version}_${revision}"
+# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
+depends="ffmpeg6"
build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
dav1d zimg webp sofa vulkan drm svtav1 srt rist nvdec"
build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
+
desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
desc_option_sofa="Enable support for AES SOFA"
@@ -41,9 +43,9 @@ desc_option_webp="Enable support for WebP"
case "$XBPS_TARGET_MACHINE" in
i686*|x86_64*)
- hostmakedepends+=" nasm"
- build_options_default+=" vaapi vdpau nvenc nvdec"
- ;;
+ hostmakedepends+=" nasm"
+ build_options_default+=" vaapi vdpau nvenc nvdec"
+ ;;
ppc64*) build_options_default+=" vaapi vdpau";;
mips*) CFLAGS="-mnan=legacy";;
esac
@@ -52,6 +54,10 @@ if [ "$XBPS_TARGET_WORDSIZE" != "32" ]; then
build_options_default+=" svtav1"
fi
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ makedepends+=" libatomic-devel"
+fi
+
_apply_patch() {
local args="$1" pname="$(basename $2)"
@@ -112,7 +118,7 @@ do_configure() {
$(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
--disable-libopencore_amrnb --disable-libopencore_amrwb \
--disable-libopenjpeg --enable-libbluray \
- --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
+ --enable-postproc --enable-opencl ${_args} --enable-libvmaf ${_args} \
$(vopt_enable x265 libx265) \
$(vopt_enable v4l2 libv4l2) \
$(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
@@ -137,6 +143,7 @@ do_build() {
do_install() {
make DESTDIR=${DESTDIR} install install-man
+ rm -rf ${DESTDIR}/usr/bin
}
libavcodec_package() {
@@ -214,12 +221,11 @@ ffmpeg-devel_package() {
libswresample>=${version}_${revision}
libavresample>=${version}_${revision}"
short_desc+=" - development files"
-
+ conflicts="ffmpeg6-devel"
if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then
# /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
nostrip_files="/usr/lib/libavfilter.a"
fi
-
pkg_install() {
vmove usr/include
vmove usr/lib/pkgconfig
@@ -229,11 +235,3 @@ ffmpeg-devel_package() {
vmove usr/share/man/man3
}
}
-
-ffplay_package() {
- short_desc="Simple video player using FFmpeg and SDL2"
- pkg_install() {
- vmove usr/bin/ffplay
- vmove "usr/share/man/man1/ffplay*"
- }
-}
From 45dcd0d3a21619eb39ac9df6362223eedaca0c6f Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:47 -0400
Subject: [PATCH 04/93] ffmpegthumbnailer: revbump for ffmpeg6
---
.../ffmpegthumbnailer/patches/ffmpeg6.patch | 202 ++++++++++++++++++
srcpkgs/ffmpegthumbnailer/template | 8 +-
2 files changed, 206 insertions(+), 4 deletions(-)
create mode 100644 srcpkgs/ffmpegthumbnailer/patches/ffmpeg6.patch
diff --git a/srcpkgs/ffmpegthumbnailer/patches/ffmpeg6.patch b/srcpkgs/ffmpegthumbnailer/patches/ffmpeg6.patch
new file mode 100644
index 00000000000000..363ff35a28419d
--- /dev/null
+++ b/srcpkgs/ffmpegthumbnailer/patches/ffmpeg6.patch
@@ -0,0 +1,202 @@
+--- a/libffmpegthumbnailer/moviedecoder.cpp 2017-11-21 14:06:57.000000000 -0500
++++ b/libffmpegthumbnailer/moviedecoder.cpp 2023-05-05 13:14:47.946560668 -0400
+@@ -41,11 +41,6 @@
+ namespace ffmpegthumbnailer
+ {
+
+-struct SilenceLogLevel
+-{
+- SilenceLogLevel() { av_log_set_level(AV_LOG_QUIET); }
+-};
+-
+ MovieDecoder::MovieDecoder(AVFormatContext* pavContext)
+ : m_VideoStream(-1)
+ , m_pFormatContext(pavContext)
+@@ -70,8 +65,6 @@
+
+ void MovieDecoder::initialize(const string& filename, bool preferEmbeddedMetadata)
+ {
+- av_register_all();
+- avcodec_register_all();
+ avformat_network_init();
+
+ string inputFile = filename == "-" ? "pipe:" : filename;
+@@ -97,8 +90,7 @@
+ {
+ if (m_pVideoCodecContext)
+ {
+- avcodec_close(m_pVideoCodecContext);
+- m_pVideoCodecContext = nullptr;
++ avcodec_free_context(&m_pVideoCodecContext);
+ }
+
+ if ((!m_FormatContextWasGiven) && m_pFormatContext)
+@@ -152,10 +144,10 @@
+ for (unsigned int i = 0; i < m_pFormatContext->nb_streams; ++i)
+ {
+ AVStream *stream = m_pFormatContext->streams[i];
+- auto ctx = m_pFormatContext->streams[i]->codec;
+- if (ctx->codec_type == AVMEDIA_TYPE_VIDEO)
++ auto par = m_pFormatContext->streams[i]->codecpar;
++ if (par->codec_type == AVMEDIA_TYPE_VIDEO)
+ {
+- if (!preferEmbeddedMetadata || !isStillImageCodec(ctx->codec_id))
++ if (!preferEmbeddedMetadata || !isStillImageCodec(par->codec_id))
+ {
+ videoStreams.push_back(i);
+ continue;
+@@ -203,8 +195,7 @@
+ }
+
+ m_pVideoStream = m_pFormatContext->streams[m_VideoStream];
+- m_pVideoCodecContext = m_pVideoStream->codec;
+- m_pVideoCodec = avcodec_find_decoder(m_pVideoCodecContext->codec_id);
++ m_pVideoCodec = avcodec_find_decoder(m_pVideoStream->codecpar->codec_id);
+
+ if (m_pVideoCodec == nullptr)
+ {
+@@ -214,6 +205,20 @@
+ throw logic_error("Video Codec not found");
+ }
+
++ m_pVideoCodecContext = avcodec_alloc_context3(m_pVideoCodec);
++
++ if (m_pVideoCodecContext == nullptr)
++ {
++ destroy();
++ throw logic_error("Could not allocate video codec context");
++ }
++
++ if (avcodec_parameters_to_context(m_pVideoCodecContext, m_pVideoStream->codecpar) < 0)
++ {
++ destroy();
++ throw logic_error("Could not configure video codec context");
++ }
++
+ m_pVideoCodecContext->workaround_bugs = 1;
+
+ if (avcodec_open2(m_pVideoCodecContext, m_pVideoCodec, nullptr) < 0)
+@@ -386,13 +391,6 @@
+
+ void MovieDecoder::initializeFilterGraph(const AVRational& timeBase, const std::string& size, bool maintainAspectRatio)
+ {
+- static const AVPixelFormat pixelFormats[] = { AV_PIX_FMT_RGB24, AV_PIX_FMT_NONE };
+-
+- auto del = [] (AVBufferSinkParams* p) { av_freep(p); };
+- std::unique_ptr<AVBufferSinkParams, decltype(del)> buffersinkParams(av_buffersink_params_alloc(), del);
+-
+- avfilter_register_all();
+-
+ m_pFilterGraph = avfilter_graph_alloc();
+ assert(m_pFilterGraph);
+
+@@ -404,10 +402,8 @@
+
+ checkRc(avfilter_graph_create_filter(&m_pFilterSource, avfilter_get_by_name("buffer"), "thumb_buffer", ss.str().c_str(), nullptr, m_pFilterGraph),
+ "Failed to create filter source");
+- buffersinkParams->pixel_fmts = pixelFormats;
+- checkRc(avfilter_graph_create_filter(&m_pFilterSink, avfilter_get_by_name("buffersink"), "thumb_buffersink", nullptr, buffersinkParams.get(), m_pFilterGraph),
++ checkRc(avfilter_graph_create_filter(&m_pFilterSink, avfilter_get_by_name("buffersink"), "thumb_buffersink", nullptr, nullptr, m_pFilterGraph),
+ "Failed to create filter sink");
+- buffersinkParams.release();
+
+ AVFilterContext* yadifFilter = nullptr;
+ if (m_pFrame->interlaced_frame != 0)
+@@ -500,15 +496,15 @@
+ }
+
+ checkRc(av_seek_frame(m_pFormatContext, -1, timestamp, 0), "Seeking in video failed");
+- avcodec_flush_buffers(m_pFormatContext->streams[m_VideoStream]->codec);
++ avcodec_flush_buffers(m_pVideoCodecContext);
+
+ int keyFrameAttempts = 0;
+- bool gotFrame = 0;
++ bool gotFrame;
+
+ do
+ {
+ int count = 0;
+- gotFrame = 0;
++ gotFrame = false;
+
+ while (!gotFrame && count < 20)
+ {
+@@ -552,17 +548,33 @@
+ return false;
+ }
+
+- av_frame_unref(m_pFrame);
+-
+- int frameFinished;
++ int rc = avcodec_send_packet(m_pVideoCodecContext, m_pPacket);
++ if(rc == AVERROR(EAGAIN))
++ {
++ rc = 0;
++ }
+
+- int bytesDecoded = avcodec_decode_video2(m_pVideoCodecContext, m_pFrame, &frameFinished, m_pPacket);
+- if (bytesDecoded < 0)
++ if(rc == AVERROR_EOF)
++ {
++ return false;
++ }
++ else if(rc < 0)
+ {
+- throw logic_error("Failed to decode video frame: bytesDecoded < 0");
++ throw logic_error("Failed to decode video frame: avcodec_send_packet() < 0");
+ }
+
+- return frameFinished > 0;
++ rc = avcodec_receive_frame(m_pVideoCodecContext, m_pFrame);
++ switch(rc)
++ {
++ case 0:
++ return true;
++
++ case AVERROR(EAGAIN):
++ return false;
++
++ default:
++ throw logic_error("Failed to decode video frame: avcodec_receive_frame() < 0");
++ }
+ }
+
+ bool MovieDecoder::getVideoPacket()
+@@ -570,8 +582,6 @@
+ bool framesAvailable = true;
+ bool frameDecoded = false;
+
+- int attempts = 0;
+-
+ if (m_pPacket)
+ {
+ av_packet_unref(m_pPacket);
+@@ -580,6 +590,7 @@
+
+ m_pPacket = new AVPacket();
+
++
+ while (framesAvailable && !frameDecoded)
+ {
+ framesAvailable = av_read_frame(m_pFormatContext, m_pPacket) >= 0;
+@@ -644,7 +655,7 @@
+
+ int32_t MovieDecoder::getStreamRotation()
+ {
+- int32_t* matrix = reinterpret_cast<int32_t*>(av_stream_get_side_data(m_pVideoStream, AV_PKT_DATA_DISPLAYMATRIX, nullptr));
++ auto matrix = reinterpret_cast<int32_t*>(av_stream_get_side_data(m_pVideoStream, AV_PKT_DATA_DISPLAYMATRIX, nullptr));
+ if (matrix)
+ {
+ auto angle = lround(av_display_rotation_get(matrix));
+
+--- a/libffmpegthumbnailer/moviedecoder.h 2017-11-12 04:23:38.000000000 -0500
++++ b/libffmpegthumbnailer/moviedecoder.h 2023-05-05 13:26:07.095529911 -0400
+@@ -78,7 +78,7 @@
+ int m_VideoStream;
+ AVFormatContext* m_pFormatContext;
+ AVCodecContext* m_pVideoCodecContext;
+- AVCodec* m_pVideoCodec;
++ const AVCodec* m_pVideoCodec;
+ AVFilterGraph* m_pFilterGraph;
+ AVFilterContext* m_pFilterSource;
+ AVFilterContext* m_pFilterSink;
diff --git a/srcpkgs/ffmpegthumbnailer/template b/srcpkgs/ffmpegthumbnailer/template
index 039eea7622b391..add38199986eb5 100644
--- a/srcpkgs/ffmpegthumbnailer/template
+++ b/srcpkgs/ffmpegthumbnailer/template
@@ -1,16 +1,16 @@
# Template file for 'ffmpegthumbnailer'
pkgname=ffmpegthumbnailer
version=2.2.2
-revision=1
+revision=2
build_style=cmake
hostmakedepends="pkg-config"
-makedepends="libpng-devel libjpeg-turbo-devel ffmpeg-devel"
+makedepends="libpng-devel libjpeg-turbo-devel ffmpeg6-devel"
depends="ffmpeg"
short_desc="Lightweight video thumbnailer"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-2.0-or-later"
-homepage="https://github.com/dirkvdb/${pkgname}"
-distfiles="${homepage}/releases/download/${version}/${pkgname}-${version}.tar.bz2"
+homepage="https://github.com/dirkvdb"
+distfiles="${homepage}/${pkgname}/releases/download/${version}/${pkgname}-${version}.tar.bz2"
checksum=1cb24059c38223f657b300c84dd80491b7040d4b69471c4fea69be862bc99b5b
post_install() {
From f21117d37de3db898a7b651a6ca0018030d85b15 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:47 -0400
Subject: [PATCH 05/93] ffmpegthumbs: revbump for ffmpeg6
---
srcpkgs/ffmpegthumbs/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/ffmpegthumbs/template b/srcpkgs/ffmpegthumbs/template
index 66a207f7227632..93c693c2de1c16 100644
--- a/srcpkgs/ffmpegthumbs/template
+++ b/srcpkgs/ffmpegthumbs/template
@@ -1,14 +1,14 @@
# Template file for 'ffmpegthumbs'
pkgname=ffmpegthumbs
version=24.05.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DQT_MAJOR_VERSION=6 -DKF6_HOST_TOOLING=/usr/lib/cmake
-DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins"
hostmakedepends="extra-cmake-modules pkg-config gettext qt6-base
kf6-kconfig"
makedepends="qt6-base-devel kf6-kconfig-devel kf6-kio-devel kf6-ki18n-devel
- ffmpeg-devel taglib-devel"
+ ffmpeg6-devel taglib-devel"
short_desc="FFmpeg-based thumbnail creator for video files"
maintainer="Michael Straube <straubem@gmx.de>"
license="GPL-2.0-or-later"
From b18e224cfe5ca40739f745f96687041805561f14 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:47 -0400
Subject: [PATCH 06/93] guvcview: update to 2.0.8.
---
srcpkgs/guvcview/patches/fix-include.patch | 10 ++++++++++
srcpkgs/guvcview/template | 9 ++++-----
2 files changed, 14 insertions(+), 5 deletions(-)
create mode 100644 srcpkgs/guvcview/patches/fix-include.patch
diff --git a/srcpkgs/guvcview/patches/fix-include.patch b/srcpkgs/guvcview/patches/fix-include.patch
new file mode 100644
index 00000000000000..503c2af3b78c1a
--- /dev/null
+++ b/srcpkgs/guvcview/patches/fix-include.patch
@@ -0,0 +1,10 @@
+--- a/guvcview/guvcview.c
++++ b/guvcview/guvcview.c
+@@ -28,6 +28,7 @@
+ #include <sys/stat.h>
+ #include <sys/resource.h>
+ #include <errno.h>
++#include <locale.h>
+
+ #include "gview.h"
+ #include "gviewv4l2core.h"
diff --git a/srcpkgs/guvcview/template b/srcpkgs/guvcview/template
index d42fd38fa4ad12..07efdb1b9b4ae3 100644
--- a/srcpkgs/guvcview/template
+++ b/srcpkgs/guvcview/template
@@ -1,12 +1,11 @@
# Template file for 'guvcview'
pkgname=guvcview
-version=2.0.7
-revision=2
-create_wrksrc=yes
+version=2.0.8
+revision=1
build_style=gnu-configure
configure_args="--disable-static --disable-debian-menu"
hostmakedepends="pkg-config intltool autoconf automake libtool glib-devel"
-makedepends="eudev-libudev-devel gtk+3-devel SDL2-devel ffmpeg-devel libusb-devel
+makedepends="eudev-libudev-devel gtk+3-devel SDL2-devel ffmpeg6-devel libusb-devel
pulseaudio-devel v4l-utils-devel portaudio-devel gsl-devel"
depends="desktop-file-utils"
short_desc="Simple GTK interface for capturing and viewing video from UVC devices"
@@ -14,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="http://guvcview.sourceforge.net/"
distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-src-${version}.tar.bz2"
-checksum=f47d51fbd06e44eeaa1a82f4a153c927527c90d94514197a70b2956028cc8ad4
+checksum=a21f4e448286666cf27bafef5290cc953a0a1796b752e5bbe521266dc1230c81
post_patch() {
sed '31a#include <locale.h>' -i guvcview/guvcview.c
From 5fe84b1cdab0c0e64fd71e75abfbf52a870ccf52 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:48 -0400
Subject: [PATCH 07/93] handbrake: update to 1.6.1
---
.../patches/fix-missing-x265-link-flag.patch | 11 ++++++-----
.../handbrake/patches/libhb-vpl-include.patch | 15 +++++++++++++++
srcpkgs/handbrake/template | 19 +++++++++++--------
3 files changed, 32 insertions(+), 13 deletions(-)
create mode 100644 srcpkgs/handbrake/patches/libhb-vpl-include.patch
diff --git a/srcpkgs/handbrake/patches/fix-missing-x265-link-flag.patch b/srcpkgs/handbrake/patches/fix-missing-x265-link-flag.patch
index 26db03867a0c83..d6bb2eda627a36 100644
--- a/srcpkgs/handbrake/patches/fix-missing-x265-link-flag.patch
+++ b/srcpkgs/handbrake/patches/fix-missing-x265-link-flag.patch
@@ -1,14 +1,15 @@
--- a/gtk/configure.ac
+++ b/gtk/configure.ac
@@ -203,7 +203,7 @@
-
+
AM_CONDITIONAL([MINGW], [test "x$mingw_flag" = "xyes"])
-
--HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg"
-+HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg -ldl"
+
+-HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg -lSvtAv1Enc"
++HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg -lSvtAv1Enc -ldl"
HB_CPPFLAGS="$HB_CPPFLAGS $HBINC"
-
+
PKG_CHECK_MODULES([x264], [x264], sys_x264=yes, sys_x264=no)
+
--- a/test/module.defs
+++ b/test/module.defs
@@ -69,6 +69,9 @@
diff --git a/srcpkgs/handbrake/patches/libhb-vpl-include.patch b/srcpkgs/handbrake/patches/libhb-vpl-include.patch
new file mode 100644
index 00000000000000..298f9f4ab28f2a
--- /dev/null
+++ b/srcpkgs/handbrake/patches/libhb-vpl-include.patch
@@ -0,0 +1,15 @@
+--- a/libhb/module.defs 2023-01-22 11:36:49.000000000 -0500
++++ b/libhb/module.defs 2023-04-03 22:37:52.395467010 -0400
+@@ -46,11 +46,7 @@
+ LIBHB.GCC.I += $(LIBHB.build/) $(CONTRIB.build/)include
+
+ ifeq (1,$(FEATURE.qsv))
+- ifeq ($(HOST.system),freebsd))
+- LIBHB.GCC.I += $(LOCALBASE)/include/vpl
+- else
+- LIBHB.GCC.I += $(CONTRIB.build/)include/vpl
+- endif
++ LIBHB.GCC.I += /usr/include/vpl
+ endif
+
+ ifneq (,$(filter $(HOST.system),freebsd netbsd openbsd))
diff --git a/srcpkgs/handbrake/template b/srcpkgs/handbrake/template
index ca5e4571e49c37..a27d74d2458f3f 100644
--- a/srcpkgs/handbrake/template
+++ b/srcpkgs/handbrake/template
@@ -1,19 +1,22 @@
# Template file for 'handbrake'
pkgname=handbrake
-version=1.5.1
+version=1.6.1
revision=1
build_style=gnu-configure
configure_args="--force --disable-gtk-update-checks --disable-df-fetch --harden
- $(vopt_enable fdk_aac fdk-aac) $(vopt_enable nvenc)"
+ $(vopt_enable fdk_aac fdk-aac) $(vopt_enable nvenc) $(vopt_enable qsv)"
make_build_args="-C ${XBPS_TRIPLET}"
make_install_args="-C ${XBPS_TRIPLET}"
hostmakedepends="automake cmake gettext-devel glib-devel intltool libtool m4 meson nasm pkg-config python3"
-makedepends="bzip2-devel ffmpeg-devel gst-plugins-base1-devel gtk+3-devel
+makedepends="bzip2-devel ffmpeg6-devel gst-plugins-base1-devel gtk+3-devel
jansson-devel lame-devel libass-devel libbluray-devel libdav1d-devel
libdvdnav-devel libdvdread-devel libgudev-devel libnuma-devel
libsamplerate-devel libtheora-devel libvorbis-devel libvpx-devel libxml2-devel
- opus-devel speex-devel x264-devel x265-devel zimg-devel
+ opus-devel speex-devel x264-devel x265-devel zimg-devel libsvt-av1-devel
$(vopt_if fdk_aac fdk-aac-devel)
+ $(vopt_if qsv libva-devel)
+ $(vopt_if qsv libdrm-devel)
+ $(vopt_if qsv oneVPL-devel)
$(vopt_if nvenc nv-codec-headers)"
depends="desktop-file-utils gst-plugins-good1 hicolor-icon-theme"
short_desc="Multithreaded video transcoder"
@@ -21,15 +24,15 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-only"
homepage="https://handbrake.fr/"
distfiles="https://github.com/HandBrake/HandBrake/releases/download/${version}/HandBrake-${version}-source.tar.bz2"
-checksum=3999fe06d5309c819799a73a968a8ec3840e7840c2b64af8f5cdb7fd8c9430f0
+checksum=94ccfe03db917a91650000c510f7fd53f844da19f19ad4b4be1b8f6bc31a8d4c
nocross=yes
-build_options="fdk_aac nvenc"
+build_options="fdk_aac nvenc qsv"
case "$XBPS_TARGET_MACHINE" in
x86_64*|i686*)
CFLAGS="-msse"
- build_options_default="nvenc"
+ build_options_default="nvenc qsv"
;;
esac
@@ -37,7 +40,7 @@ pre_configure() {
# use system libraries, don't download them
rm -rf contrib/
for module in fdk-aac ffmpeg libbluray libdav1d libdvdnav libdvdread nvenc \
- x265 zimg; do
+ x265 zimg svt-av1 libvpl; do
vsed -i "/MODULES += contrib\/${module}/d" make/include/main.defs
done
}
From 2eeb939f36124cac8e3400e2003f327e83bb5270 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 19:59:04 -0400
Subject: [PATCH 08/93] opencv: update to 4.7.0.
---
common/shlibs | 104 ++++++++++++++++++++--------------------
srcpkgs/opencv/template | 10 ++--
2 files changed, 57 insertions(+), 57 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 53936afbe2fb4c..f064e4aad9ca86 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -2195,58 +2195,58 @@ libcapstone.so.5 capstone-5.0.1_1
libhavege.so.2 libhaveged-1.9.11_1
libnih.so.1 libnih-1.0.3_1
libnih-dbus.so.1 libnih-1.0.3_1
-libopencv_quality.so.406 libopencv-4.6.0_1
-libopencv_reg.so.406 libopencv-4.6.0_1
-libopencv_surface_matching.so.406 libopencv-4.6.0_1
-libopencv_xphoto.so.406 libopencv-4.6.0_1
-libopencv_freetype.so.406 libopencv-4.6.0_1
-libopencv_fuzzy.so.406 libopencv-4.6.0_1
-libopencv_hfs.so.406 libopencv-4.6.0_1
-libopencv_img_hash.so.406 libopencv-4.6.0_1
-libopencv_line_descriptor.so.406 libopencv-4.6.0_1
-libopencv_saliency.so.406 libopencv-4.6.0_1
-libopencv_structured_light.so.406 libopencv-4.6.0_1
-libopencv_aruco.so.406 libopencv-4.6.0_1
-libopencv_bgsegm.so.406 libopencv-4.6.0_1
-libopencv_bioinspired.so.406 libopencv-4.6.0_1
-libopencv_ccalib.so.406 libopencv-4.6.0_1
-libopencv_face.so.406 libopencv-4.6.0_1
-libopencv_tracking.so.406 libopencv-4.6.0_1
-libopencv_xfeatures2d.so.406 libopencv-4.6.0_1
-libopencv_optflow.so.406 libopencv-4.6.0_1
-libopencv_ximgproc.so.406 libopencv-4.6.0_1
-libopencv_plot.so.406 libopencv-4.6.0_1
-libopencv_text.so.406 libopencv-4.6.0_1
-libopencv_ml.so.406 libopencv-4.6.0_1
-libopencv_objdetect.so.406 libopencv-4.6.0_1
-libopencv_dnn.so.406 libopencv-4.6.0_1
-libopencv_shape.so.406 libopencv-4.6.0_1
-libopencv_stitching.so.406 libopencv-4.6.0_1
-libopencv_photo.so.406 libopencv-4.6.0_1
-libopencv_video.so.406 libopencv-4.6.0_1
-libopencv_calib3d.so.406 libopencv-4.6.0_1
-libopencv_features2d.so.406 libopencv-4.6.0_1
-libopencv_flann.so.406 libopencv-4.6.0_1
-libopencv_highgui.so.406 libopencv-4.6.0_1
-libopencv_videoio.so.406 libopencv-4.6.0_1
-libopencv_imgcodecs.so.406 libopencv-4.6.0_1
-libopencv_imgproc.so.406 libopencv-4.6.0_1
-libopencv_core.so.406 libopencv-4.6.0_1
-libopencv_superres.so.406 libopencv-4.6.0_1
-libopencv_videostab.so.406 libopencv-4.6.0_1
-libopencv_gapi.so.406 libopencv-4.6.0_1
-libopencv_xobjdetect.so.406 libopencv-4.6.0_1
-libopencv_datasets.so.406 libopencv-4.6.0_1
-libopencv_dnn_objdetect.so.406 libopencv-4.6.0_1
-libopencv_dnn_superres.so.406 libopencv-4.6.0_1
-libopencv_dpm.so.406 libopencv-4.6.0_1
-libopencv_phase_unwrapping.so.406 libopencv-4.6.0_1
-libopencv_stereo.so.406 libopencv-4.6.0_1
-libopencv_rapid.so.406 libopencv-4.6.0_1
-libopencv_intensity_transform.so.406 libopencv-4.6.0_1
-libopencv_alphamat.so.406 libopencv-4.6.0_1
-libopencv_barcode.so.406 libopencv-4.6.0_1
-libopencv_mcc.so.406 libopencv-4.6.0_1
+libopencv_quality.so.407 libopencv-4.7.0_1
+libopencv_reg.so.407 libopencv-4.7.0_1
+libopencv_surface_matching.so.407 libopencv-4.7.0_1
+libopencv_xphoto.so.407 libopencv-4.7.0_1
+libopencv_freetype.so.407 libopencv-4.7.0_1
+libopencv_fuzzy.so.407 libopencv-4.7.0_1
+libopencv_hfs.so.407 libopencv-4.7.0_1
+libopencv_img_hash.so.407 libopencv-4.7.0_1
+libopencv_line_descriptor.so.407 libopencv-4.7.0_1
+libopencv_saliency.so.407 libopencv-4.7.0_1
+libopencv_structured_light.so.407 libopencv-4.7.0_1
+libopencv_aruco.so.407 libopencv-4.7.0_1
+libopencv_bgsegm.so.407 libopencv-4.7.0_1
+libopencv_bioinspired.so.407 libopencv-4.7.0_1
+libopencv_ccalib.so.407 libopencv-4.7.0_1
+libopencv_face.so.407 libopencv-4.7.0_1
+libopencv_tracking.so.407 libopencv-4.7.0_1
+libopencv_xfeatures2d.so.407 libopencv-4.7.0_1
+libopencv_optflow.so.407 libopencv-4.7.0_1
+libopencv_ximgproc.so.407 libopencv-4.7.0_1
+libopencv_plot.so.407 libopencv-4.7.0_1
+libopencv_text.so.407 libopencv-4.7.0_1
+libopencv_ml.so.407 libopencv-4.7.0_1
+libopencv_objdetect.so.407 libopencv-4.7.0_1
+libopencv_dnn.so.407 libopencv-4.7.0_1
+libopencv_shape.so.407 libopencv-4.7.0_1
+libopencv_stitching.so.407 libopencv-4.7.0_1
+libopencv_photo.so.407 libopencv-4.7.0_1
+libopencv_video.so.407 libopencv-4.7.0_1
+libopencv_calib3d.so.407 libopencv-4.7.0_1
+libopencv_features2d.so.407 libopencv-4.7.0_1
+libopencv_flann.so.407 libopencv-4.7.0_1
+libopencv_highgui.so.407 libopencv-4.7.0_1
+libopencv_videoio.so.407 libopencv-4.7.0_1
+libopencv_imgcodecs.so.407 libopencv-4.7.0_1
+libopencv_imgproc.so.407 libopencv-4.7.0_1
+libopencv_core.so.407 libopencv-4.7.0_1
+libopencv_superres.so.407 libopencv-4.7.0_1
+libopencv_videostab.so.407 libopencv-4.7.0_1
+libopencv_gapi.so.407 libopencv-4.7.0_1
+libopencv_xobjdetect.so.407 libopencv-4.7.0_1
+libopencv_datasets.so.407 libopencv-4.7.0_1
+libopencv_dnn_objdetect.so.407 libopencv-4.7.0_1
+libopencv_dnn_superres.so.407 libopencv-4.7.0_1
+libopencv_dpm.so.407 libopencv-4.7.0_1
+libopencv_phase_unwrapping.so.407 libopencv-4.7.0_1
+libopencv_stereo.so.407 libopencv-4.7.0_1
+libopencv_rapid.so.407 libopencv-4.7.0_1
+libopencv_intensity_transform.so.407 libopencv-4.7.0_1
+libopencv_alphamat.so.407 libopencv-4.7.0_1
+libopencv_barcode.so.407 libopencv-4.7.0_1
+libopencv_mcc.so.407 libopencv-4.7.0_1
libuniconf.so.4.6 wvstreams-4.6.1_20
libwvbase.so.4.6 wvstreams-4.6.1_20
libwvutils.so.4.6 wvstreams-4.6.1_20
diff --git a/srcpkgs/opencv/template b/srcpkgs/opencv/template
index aea4bfc3a265cf..498bee789d640f 100644
--- a/srcpkgs/opencv/template
+++ b/srcpkgs/opencv/template
@@ -1,7 +1,7 @@
# Template file for 'opencv'
pkgname=opencv
-version=4.6.0
-revision=6
+version=4.7.0
+revision=1
create_wrksrc=yes
build_wrksrc=${pkgname}-${version}
build_style=cmake
@@ -13,7 +13,7 @@ configure_args="-DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_OPENMP=ON
-DBUILD_opencv_wechat_qrcode=OFF -DBUILD_opencv_rgbd=OFF
-DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF"
hostmakedepends="pkg-config eigen python3-numpy python3-setuptools"
-makedepends="ffmpeg-devel libpng-devel libjpeg-turbo-devel tiff-devel
+makedepends="ffmpeg6-devel libpng-devel libjpeg-turbo-devel tiff-devel
jasper-devel ocl-icd-devel libgomp-devel libopenexr-devel gtk+3-devel
libgphoto2-devel gst-plugins-base1-devel openblas-devel
python3-numpy python3-devel"
@@ -24,8 +24,8 @@ homepage="https://opencv.org"
changelog="https://github.com/opencv/opencv/wiki/ChangeLog"
distfiles="https://github.com/opencv/opencv/archive/${version}.tar.gz
https://github.com/opencv/opencv_contrib/archive/${version}.tar.gz>contrib.tar.gz"
-checksum="1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277
- 1777d5fd2b59029cf537e5fd6f8aa68d707075822f90bde683fcde086f85f7a7"
+checksum="8df0079cdbe179748a18d44731af62a245a45ebf5085223dc03133954c662973
+ 42df840cf9055e59d0e22c249cfb19f04743e1bdad113d31b1573d3934d62584"
patch_args="-Np1 -d ${build_wrksrc}"
# tests hang indenfinitely, even with test data included
make_check=no
From 8815a33979400ef7c43776e10f13936883343a95 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Sun, 15 Oct 2023 21:18:36 -0400
Subject: [PATCH 09/93] sumo: revbump for ffmpeg6
---
srcpkgs/sumo/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/sumo/template b/srcpkgs/sumo/template
index a730afa9fafa92..f5475ac9b5c00a 100644
--- a/srcpkgs/sumo/template
+++ b/srcpkgs/sumo/template
@@ -1,10 +1,10 @@
# Template file for 'sumo'
pkgname=sumo
version=1.12.0
-revision=7
+revision=8
build_style=cmake
hostmakedepends="libgdal-tools pkg-config swig python3-setuptools"
-makedepends="python3-devel ffmpeg-devel fox-devel gl2ps-devel libgdal-devel
+makedepends="python3-devel ffmpeg6-devel fox-devel gl2ps-devel libgdal-devel
libxerces-c-devel osg-devel proj-devel"
short_desc="SUMO (Simulation of Urban MObility) and included applications"
maintainer="Warrior Graph <marques@larces.uece.br>"
From 9c2fbbd5085b1caaa13d5031c9ed1b5252cbc3a1 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:52 -0400
Subject: [PATCH 10/93] unpaper: update to 7.0.0.
---
srcpkgs/unpaper/template | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/srcpkgs/unpaper/template b/srcpkgs/unpaper/template
index 38ed47a5840165..60d3e251754dcf 100644
--- a/srcpkgs/unpaper/template
+++ b/srcpkgs/unpaper/template
@@ -1,13 +1,13 @@
# Template file for 'unpaper'
pkgname=unpaper
-version=6.1
-revision=3
-build_style=gnu-configure
+version=7.0.0
+revision=1
+build_style=meson
+hostmakedepends="pkg-config meson libxslt"
+makedepends="ffmpeg6-devel python3-Sphinx"
+short_desc="Post-processing tool for scanned sheets of paper"
maintainer="Orphaned <orphan@voidlinux.org>"
-hostmakedepends="pkg-config libxslt"
-makedepends="ffmpeg-devel"
-license="GPL-2"
+license="GPL-2.0-or-later"
homepage="https://www.flameeyes.eu/projects/unpaper"
-short_desc="A post-processing tool for scanned sheets of paper"
distfiles="https://www.flameeyes.eu/files/${pkgname}-${version}.tar.xz"
-checksum=237c84f5da544b3f7709827f9f12c37c346cdf029b1128fb4633f9bafa5cb930
+checksum=2575fbbf26c22719d1cb882b59602c9900c7f747118ac130883f63419be46a80
From 7161390504dcb5f6914e9d5058f81756e2a981e7 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 19:59:45 -0400
Subject: [PATCH 11/93] actiona: revbump for opencv-4.7.0
---
srcpkgs/actiona/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/actiona/template b/srcpkgs/actiona/template
index cf5f0b7a2ae610..0d899311e6df75 100644
--- a/srcpkgs/actiona/template
+++ b/srcpkgs/actiona/template
@@ -1,7 +1,7 @@
# Template file for 'actiona'
pkgname=actiona
version=3.10.1
-revision=2
+revision=3
build_style=qmake
configure_args="PKGCONFIG_OPENCV=opencv4"
hostmakedepends="pkg-config qt5-plugin-mysql qt5-qmake qt5-host-tools"
From a69a94dd14affbde93c6bcaad368f3400b0c89b5 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 19:59:46 -0400
Subject: [PATCH 12/93] retroshare: revbump for opencv-4.7.0
---
srcpkgs/retroshare/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/retroshare/template b/srcpkgs/retroshare/template
index 35a2732c77f634..4b834864c4143a 100644
--- a/srcpkgs/retroshare/template
+++ b/srcpkgs/retroshare/template
@@ -1,13 +1,13 @@
# Template file for 'retroshare'
pkgname=retroshare
version=0.6.6
-revision=4
+revision=5
build_style=qmake
#XXX broadcast feature requires an ancient udp-discovery-cpp which either needs
# to be fetched+patched (FTBFS) here or packaged :/
configure_args="RS_UPNP_LIB=miniupnpc CONFIG+=no_rs_broadcast_discovery"
hostmakedepends="pkg-config qt5-qmake qt5-host-tools"
-makedepends="ffmpeg-devel libsecret-devel libmicrohttpd-devel
+makedepends="ffmpeg6-devel libsecret-devel libmicrohttpd-devel
libopencv-devel libssh-devel miniupnpc-devel libXScrnSaver-devel libxslt-devel
pulseaudio-devel qt5-multimedia-devel qt5-tools-devel qt5-x11extras-devel
speex-devel sqlcipher-devel sqlite-devel rapidjson"
From 31ae567978d33fdece4d31793c49199419b7e7ef Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 19:59:46 -0400
Subject: [PATCH 13/93] waifu2x-converter-cpp: revbump for opencv-4.7.0
---
srcpkgs/waifu2x-converter-cpp/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/waifu2x-converter-cpp/template b/srcpkgs/waifu2x-converter-cpp/template
index 361b8a23b94977..c5ac17eb54ea4c 100644
--- a/srcpkgs/waifu2x-converter-cpp/template
+++ b/srcpkgs/waifu2x-converter-cpp/template
@@ -1,7 +1,7 @@
# Template file for 'waifu2x-converter-cpp'
pkgname=waifu2x-converter-cpp
version=5.2.4
-revision=2
+revision=3
build_style=cmake
configure_args="-DINSTALL_MODELS=ON"
hostmakedepends="pkg-config"
From 8f9932188f8f66a5d786ff6346357ea84576df7d Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 17 Oct 2023 08:54:11 -0400
Subject: [PATCH 14/93] New package: spex-x replaces spek-alternative for
ffmpeg6
---
srcpkgs/spek-alternative | 1 +
srcpkgs/spek-alternative/template | 24 ------------------------
srcpkgs/spek-x/patches/musl.patch | 7 +++++++
srcpkgs/spek-x/template | 31 +++++++++++++++++++++++++++++++
4 files changed, 39 insertions(+), 24 deletions(-)
create mode 120000 srcpkgs/spek-alternative
delete mode 100644 srcpkgs/spek-alternative/template
create mode 100644 srcpkgs/spek-x/patches/musl.patch
create mode 100644 srcpkgs/spek-x/template
diff --git a/srcpkgs/spek-alternative b/srcpkgs/spek-alternative
new file mode 120000
index 00000000000000..76648236da7017
--- /dev/null
+++ b/srcpkgs/spek-alternative
@@ -0,0 +1 @@
+spek-x
\ No newline at end of file
diff --git a/srcpkgs/spek-alternative/template b/srcpkgs/spek-alternative/template
deleted file mode 100644
index d7b55c776b1d43..00000000000000
--- a/srcpkgs/spek-alternative/template
+++ /dev/null
@@ -1,24 +0,0 @@
-# Template file for 'spek-alternative'
-pkgname=spek-alternative
-version=0.8.2.3
-revision=2
-build_style=gnu-configure
-hostmakedepends="automake gettext-devel intltool libtool pkg-config
- wxWidgets-common wxWidgets-gtk3-devel"
-makedepends="ffmpeg-devel wxWidgets-gtk3-devel"
-depends="ffmpeg"
-short_desc="Acoustic spectrum analyser"
-maintainer="Kartik Singh <kartik.ynwa@gmail.com>"
-license="GPL-3.0-or-later"
-homepage="https://github.com/withmorten/spek-alternative"
-distfiles="https://github.com/withmorten/spek-alternative/archive/${version}.tar.gz"
-checksum="007ba4b84a310b078e378aa84c8e80783db5821437a757a488c3ecec377e6b2a"
-
-CXXFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-
-# Tell autogen.sh to use "wx-config-gtk3" instead of "wx-config"
-export WX_CONFIG_NAME="wx-config-gtk3"
-
-pre_configure() {
- NOCONFIGURE=1 ./autogen.sh
-}
diff --git a/srcpkgs/spek-x/patches/musl.patch b/srcpkgs/spek-x/patches/musl.patch
new file mode 100644
index 00000000000000..662f45936febc6
--- /dev/null
+++ b/srcpkgs/spek-x/patches/musl.patch
@@ -0,0 +1,7 @@
+--- 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>
diff --git a/srcpkgs/spek-x/template b/srcpkgs/spek-x/template
new file mode 100644
index 00000000000000..8a4c40a48a34cf
--- /dev/null
+++ b/srcpkgs/spek-x/template
@@ -0,0 +1,31 @@
+# Template file for 'spek-x'
+pkgname=spek-x
+version=0.9.3
+revision=1
+build_style=gnu-configure
+hostmakedepends="automake gettext-devel intltool libtool pkg-config
+ wxWidgets-common wxWidgets-gtk3-devel"
+makedepends="ffmpeg6-devel wxWidgets-gtk3-devel"
+depends="ffmpeg6"
+short_desc="Acoustic spectrum analyser"
+maintainer="zlice <zlice555@gmail.com>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/MikeWang000000/spek-x"
+distfiles="https://github.com/MikeWang000000/spek-x/archive/v${version}.tar.gz"
+checksum="7f4b109903333cdd310ab2b9176f0dc49a565891376e281a233d342cedf90ef7"
+replaces="spek-alternatives<=0.8.2.3_2"
+
+CXXFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+
+# Tell autogen.sh to use "wx-config-gtk3" instead of "wx-config"
+export WX_CONFIG_NAME="wx-config-gtk3"
+
+pre_configure() {
+ NOCONFIGURE=1 ./autogen.sh
+}
+
+spek-alternative_package() {
+ depends="spek-x"
+ short_desc+=" - transitional dummy package"
+ build_style=meta
+}
From a13c207ee5fb2139a9d0b857b36af1d5b967a7e5 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:45 -0400
Subject: [PATCH 15/93] attract: revbump for ffmpeg6
---
srcpkgs/attract/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/attract/template b/srcpkgs/attract/template
index 776cbe4ebd2c93..f6cda941c297cf 100644
--- a/srcpkgs/attract/template
+++ b/srcpkgs/attract/template
@@ -1,12 +1,12 @@
# Template file for 'attract'
pkgname=attract
version=2.7.0
-revision=2
+revision=3
build_style=gnu-makefile
make_build_args="VERBOSE=1"
make_use_env=yes
hostmakedepends="pkg-config"
-makedepends="SFML-devel ffmpeg-devel fontconfig-devel glu-devel libarchive-devel
+makedepends="SFML-devel ffmpeg6-devel fontconfig-devel glu-devel libarchive-devel
libcurl-devel libjpeg-turbo-devel libXinerama-devel libXrandr-devel"
short_desc="Attract-Mode is a graphical frontend for emulators"
maintainer="Pedro Narciso García Revington <p.revington@gmail.com>"
From 331b1bc2a1daa43d36c173a1ee3877f4d7948e70 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:45 -0400
Subject: [PATCH 16/93] aubio: revbump for ffmpeg6
---
srcpkgs/aubio/patches/ffmpeg5.patch | 25 +++++++++++++++++++++++++
srcpkgs/aubio/patches/python3.12.patch | 21 +++++++++++++++++++++
srcpkgs/aubio/template | 4 ++--
3 files changed, 48 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/aubio/patches/ffmpeg5.patch
create mode 100644 srcpkgs/aubio/patches/python3.12.patch
diff --git a/srcpkgs/aubio/patches/ffmpeg5.patch b/srcpkgs/aubio/patches/ffmpeg5.patch
new file mode 100644
index 00000000000000..aace41a6e6d9a4
--- /dev/null
+++ b/srcpkgs/aubio/patches/ffmpeg5.patch
@@ -0,0 +1,25 @@
+From 8a05420e5dd8c7b8b2447f82dc919765876511b3 Mon Sep 17 00:00:00 2001
+From: Paul Brossier <piem@piem.org>
+Date: Tue, 25 Jan 2022 18:30:27 +0100
+Subject: [PATCH] [source_avcodec] define FF_API_LAVF_AVCTX for libavcodec >
+ 59, thx @berolinux (closes gh-353)
+
+---
+ src/io/source_avcodec.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/io/source_avcodec.c b/src/io/source_avcodec.c
+index e0ae93b5..1421bd9a 100644
+--- a/src/io/source_avcodec.c
++++ b/src/io/source_avcodec.c
+@@ -68,6 +68,10 @@
+ #define AUBIO_AVCODEC_MAX_BUFFER_SIZE AV_INPUT_BUFFER_MIN_SIZE
+ #endif
+
++#if LIBAVCODEC_VERSION_MAJOR >= 59
++#define FF_API_LAVF_AVCTX 1
++#endif
++
+ struct _aubio_source_avcodec_t {
+ uint_t hop_size;
+ uint_t samplerate;
diff --git a/srcpkgs/aubio/patches/python3.12.patch b/srcpkgs/aubio/patches/python3.12.patch
new file mode 100644
index 00000000000000..81cf6d1f0f7cab
--- /dev/null
+++ b/srcpkgs/aubio/patches/python3.12.patch
@@ -0,0 +1,21 @@
+--- a/waflib/Context.py 2024-06-04 07:49:13.399793819 -0400
++++ b/waflib/Context.py 2024-06-04 08:00:35.473824306 -0400
+@@ -2,7 +2,7 @@
+ # encoding: utf-8
+ # WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+-import os,re,imp,sys
++import os,re,types,sys
+ from waflib import Utils,Errors,Logs
+ import waflib.Node
+ HEXVERSION=0x2000e00
+@@ -344,7 +344,7 @@
+ return cache_modules[path]
+ except KeyError:
+ pass
+- module=imp.new_module(WSCRIPT_FILE)
++ module=types.ModuleType(WSCRIPT_FILE)
+ try:
+ code=Utils.readf(path,m='r',encoding=encoding)
+ except EnvironmentError:
+
diff --git a/srcpkgs/aubio/template b/srcpkgs/aubio/template
index ad1c4b25699178..98b5b8168c2a25 100644
--- a/srcpkgs/aubio/template
+++ b/srcpkgs/aubio/template
@@ -1,11 +1,11 @@
# Template file for 'aubio'
pkgname=aubio
version=0.4.9
-revision=1
+revision=2
build_style=waf3
# XXX lash, pure and swig support.
hostmakedepends="pkg-config txt2man"
-makedepends="libsamplerate-devel fftw-devel jack-devel ffmpeg-devel"
+makedepends="libsamplerate-devel fftw-devel jack-devel ffmpeg6-devel"
short_desc="Library for audio labelling"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
From decf7d957ff24c836c5aed7d7da38a23a7774581 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:45 -0400
Subject: [PATCH 17/93] audacious-plugins: revbump for ffmpeg6
---
.../audacious-plugins/patches/ffmpeg5.patch | 43 +++++++++++++++++++
srcpkgs/audacious-plugins/template | 4 +-
2 files changed, 45 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/audacious-plugins/patches/ffmpeg5.patch
diff --git a/srcpkgs/audacious-plugins/patches/ffmpeg5.patch b/srcpkgs/audacious-plugins/patches/ffmpeg5.patch
new file mode 100644
index 00000000000000..4e5e34099d71c4
--- /dev/null
+++ b/srcpkgs/audacious-plugins/patches/ffmpeg5.patch
@@ -0,0 +1,43 @@
+commit 298aa371c56c2f52c25a33d9bdec4918b11cebdc
+Author: tibequadorian <tibequadorian@posteo.de>
+Date: Sat Mar 19 18:40:12 2022 +0100
+
+ audacious-plugins: rebuild against ffmpeg-5.0
+
+diff --git a/srcpkgs/audacious-plugins/patches/ffmpeg-5.0.patch b/srcpkgs/audacious-plugins/patches/ffmpeg-5.0.patch
+new file mode 100644
+index 0000000000..617c11215b
+--- /dev/null
++++ b/srcpkgs/audacious-plugins/patches/ffmpeg-5.0.patch
+@@ -0,0 +1,31 @@
++From f60beb400eeb1e4778bbfd738bc4a4ccef3de539 Mon Sep 17 00:00:00 2001
++From: John Lindgren <john@jlindgren.net>
++Date: Sat, 5 Mar 2022 12:05:34 -0500
++Subject: [PATCH] Fix build with FFmpeg 5.0
++
++---
++ src/ffaudio/ffaudio-core.cc | 4 ++--
++ 1 file changed, 2 insertions(+), 2 deletions(-)
++
++diff --git a/src/ffaudio/ffaudio-core.cc b/src/ffaudio/ffaudio-core.cc
++index 16dc63e3a..a2b95fd6c 100644
++--- a/src/ffaudio/ffaudio-core.cc
+++++ b/src/ffaudio/ffaudio-core.cc
++@@ -274,7 +274,7 @@ static AVInputFormat * get_format_by_content (const char * name, VFSFile & file)
++ AVProbeData d = {name, buf, filled};
++ score = target;
++
++- f = av_probe_input_format2 (& d, true, & score);
+++ f = (AVInputFormat *) av_probe_input_format2 (& d, true, & score);
++ if (f)
++ break;
++
++@@ -347,7 +347,7 @@ static bool find_codec (AVFormatContext * c, CodecInfo * cinfo)
++ #endif
++ if (stream && stream->codecpar && stream->codecpar->codec_type == AVMEDIA_TYPE_AUDIO)
++ {
++- AVCodec * codec = avcodec_find_decoder (stream->codecpar->codec_id);
+++ AVCodec * codec = (AVCodec *) avcodec_find_decoder (stream->codecpar->codec_id);
++
++ if (codec)
++ {
diff --git a/srcpkgs/audacious-plugins/template b/srcpkgs/audacious-plugins/template
index 4a67e362c3e91d..7a80c8c0bef675 100644
--- a/srcpkgs/audacious-plugins/template
+++ b/srcpkgs/audacious-plugins/template
@@ -2,12 +2,12 @@
# Keep in sync with audacious and audacious-base
pkgname=audacious-plugins
version=4.4
-revision=1
+revision=2
build_style=meson
configure_args="$(vopt_bool gtk) $(vopt_bool qt)"
hostmakedepends="gettext pkg-config glib-devel $(vopt_if qt qt6-tools)"
makedepends="audacious-base-devel alsa-lib-devel pulseaudio-devel jack-devel
- lame-devel libvorbis-devel libflac-devel mpg123-devel faad2-devel ffmpeg-devel
+ lame-devel libvorbis-devel libflac-devel mpg123-devel faad2-devel ffmpeg6-devel
libmodplug-devel fluidsynth-devel libcdio-paranoia-devel wavpack-devel libnotify-devel
libcurl-devel libmtp-devel neon-devel libmms-devel libxml2-devel opus-devel opusfile-devel
libbs2b-devel libsoxr-devel libsidplayfp-devel libcue-devel libopenmpt-devel pipewire-devel
From d873a439f5acdd8f2d5f5e278c19ddfbb678716b Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:45 -0400
Subject: [PATCH 18/93] audacity: update to 3.5.1
---
srcpkgs/audacity/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/audacity/template b/srcpkgs/audacity/template
index 7b838119ab2611..c88971a75a8891 100644
--- a/srcpkgs/audacity/template
+++ b/srcpkgs/audacity/template
@@ -1,6 +1,6 @@
# Template file for 'audacity'
pkgname=audacity
-version=3.4.2
+version=3.5.1
revision=1
build_style=cmake
build_helper="cmake-wxWidgets-gtk3 qemu"
@@ -12,7 +12,7 @@ configure_args="-Daudacity_use_ffmpeg=loaded -Daudacity_lib_preference=system
-Daudacity_has_updates_check=OFF -DAUDACITY_BUILD_LEVEL=2"
hostmakedepends="pkg-config gettext python3"
makedepends="wxWidgets-gtk3-devel gtk+3-devel expat-devel lame-devel
- libsoxr-devel portaudio-devel sqlite-devel ffmpeg-devel
+ libsoxr-devel portaudio-devel sqlite-devel ffmpeg6-devel
libid3tag-devel libmad-devel vamp-plugin-sdk-devel libogg-devel
libvorbis-devel libflac-devel lilv-devel lv2 serd-devel sord-devel
sratom-devel suil-devel portmidi-devel soundtouch-devel twolame-devel
@@ -25,7 +25,7 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, CC-BY-3.0"
homepage="https://www.audacityteam.org"
changelog="https://github.com/audacity/audacity/raw/master/CHANGELOG.txt"
distfiles="https://github.com/audacity/audacity/releases/download/Audacity-${version}/audacity-sources-${version}.tar.gz"
-checksum=f28dd718d2c5a2aa9f207b8351443a90c1f02b65378ca94bcc7febda42635e48
+checksum=8786a1be8d63f4793fc3f2a5f1f61c441e0a4b9a7ed9137d59277ad5f72bd512
CXXFLAGS="-D_FILE_OFFSET_BITS=64"
From a07a700eaeb308db92bc4a75301bf5ae9f907c9b Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:45 -0400
Subject: [PATCH 19/93] avidemux: revbump for ffmpeg6
---
srcpkgs/avidemux/files/negative-shift.patch | 73 +++++++++++++++++++++
srcpkgs/avidemux/template | 8 ++-
2 files changed, 79 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/avidemux/files/negative-shift.patch
diff --git a/srcpkgs/avidemux/files/negative-shift.patch b/srcpkgs/avidemux/files/negative-shift.patch
new file mode 100644
index 00000000000000..ddd3fa2a8e29aa
--- /dev/null
+++ b/srcpkgs/avidemux/files/negative-shift.patch
@@ -0,0 +1,73 @@
+
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
+Date: Sun, 16 Jul 2023 18:18:02 +0300
+Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
+ instructions within inline assembly
+
+Fixes assembling with binutil as >= 2.41
+
+Signed-off-by: James Almer <jamrial@gmail.com>
+---
+ libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h
+index 6298f5ed1983b..ca7e2dffc1076 100644
+--- libavcodec/x86/mathops.h
++++ libavcodec/x86/mathops.h
+@@ -35,12 +35,20 @@
+ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
+ {
+ int rt, dummy;
++ if (__builtin_constant_p(shift))
+ __asm__ (
+ "imull %3 \n\t"
+ "shrdl %4, %%edx, %%eax \n\t"
+ :"=a"(rt), "=d"(dummy)
+- :"a"(a), "rm"(b), "ci"((uint8_t)shift)
++ :"a"(a), "rm"(b), "i"(shift & 0x1F)
+ );
++ else
++ __asm__ (
++ "imull %3 \n\t"
++ "shrdl %4, %%edx, %%eax \n\t"
++ :"=a"(rt), "=d"(dummy)
++ :"a"(a), "rm"(b), "c"((uint8_t)shift)
++ );
+ return rt;
+ }
+
+@@ -113,19 +121,31 @@ __asm__ volatile(\
+ // avoid +32 for shift optimization (gcc should do that ...)
+ #define NEG_SSR32 NEG_SSR32
+ static inline int32_t NEG_SSR32( int32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("sarl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("sarl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+ #define NEG_USR32 NEG_USR32
+ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("shrl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("shrl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
diff --git a/srcpkgs/avidemux/template b/srcpkgs/avidemux/template
index 253a0243e22599..4ad120e1b5259b 100644
--- a/srcpkgs/avidemux/template
+++ b/srcpkgs/avidemux/template
@@ -1,14 +1,14 @@
# Template file for 'avidemux'
pkgname=avidemux
version=2.8.0
-revision=2
+revision=3
# Can't be compiled for aarch64, arm* or mips*
archs="x86_64* i686*"
hostmakedepends="cmake pkg-config qt5-host-tools qt5-devel tar yasm"
makedepends="alsa-lib-devel faac-devel faad2-devel gettext-devel jack-devel glu-devel
lame-devel libass-devel libdca-devel libvorbis-devel libXv-devel
vapoursynth-devel libmp4v2-devel sqlite-devel libva-devel libvdpau-devel
- qt5-multimedia-devel qt5-script-devel qt5-tools-devel ffmpeg-devel
+ qt5-multimedia-devel qt5-script-devel qt5-tools-devel ffmpeg6-devel
liba52-devel libmad-devel x264-devel x265-devel xvidcore-devel"
short_desc="Video editing and processing application"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -25,6 +25,10 @@ case "${XBPS_TARGET_MACHINE}" in
i686*) CFLAGS="-fno-PIC";;
esac
+post_extract() {
+ cp ${FILESDIR}/*patch ${wrksrc}/avidemux_core/ffmpeg_package/patches/
+}
+
do_configure() {
MAKEFLAGS=${makejobs} \
bash bootStrap.bash \
From 51f6e1dba5c3bb77a9a3124dce2226cd31f17f98 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:46 -0400
Subject: [PATCH 20/93] blender: revbump for ffmpeg6
---
srcpkgs/blender/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/blender/template b/srcpkgs/blender/template
index 68787b76a26c18..7e321a9ad525cd 100644
--- a/srcpkgs/blender/template
+++ b/srcpkgs/blender/template
@@ -1,7 +1,7 @@
# Template file for 'blender'
pkgname=blender
version=4.0.2
-revision=2
+revision=3
archs="x86_64* ppc64*"
build_style="cmake"
pycompile_dirs="usr/share/blender/${version%.*}/scripts"
@@ -17,7 +17,7 @@ configure_args="-DWITH_INSTALL_PORTABLE=OFF -DWITH_PYTHON_INSTALL=OFF
hostmakedepends="pkg-config"
makedepends="libgomp-devel libpng-devel tiff-devel python3-devel glu-devel
glew-devel freetype-devel jack-devel libopenal-devel libsndfile-devel
- libsamplerate-devel ffmpeg-devel fftw-devel boost-devel pcre-devel llvm
+ libsamplerate-devel ffmpeg6-devel fftw-devel boost-devel pcre-devel llvm
libopenexr-devel libopenjpeg2-devel libXi-devel openimageio-devel
opencolorio-devel opencollada-devel python3-numpy libXrender-devel
OpenSubdiv-devel tbb-devel libxml2-devel openvdb-devel alembic-devel
From 4134b894322ca25bd384ba19b184c2bd0b70c63a Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:46 -0400
Subject: [PATCH 21/93] cantata: revbump for ffmpeg6
---
srcpkgs/cantata/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/cantata/template b/srcpkgs/cantata/template
index 4b417d80d5c2da..54e82fbb85dfe8 100644
--- a/srcpkgs/cantata/template
+++ b/srcpkgs/cantata/template
@@ -1,12 +1,12 @@
# Template file for 'cantata'
pkgname=cantata
version=2.5.0
-revision=1
+revision=2
build_style=cmake
hostmakedepends="pkg-config qt5-qmake qt5-host-tools qt5-tools"
makedepends="qt5-devel qt5-tools-devel qt5-svg-devel qt5-xmlpatterns-devel
qt5-plugin-mysql qt5-plugin-pgsql qt5-plugin-sqlite qt5-plugin-odbc
- qt5-plugin-tds vlc-devel zlib-devel ffmpeg-devel taglib-devel
+ qt5-plugin-tds vlc-devel zlib-devel ffmpeg6-devel taglib-devel
taglib-extras-devel libmtp-devel mpg123-devel libcdparanoia-devel libcddb-devel
speex-devel eudev-libudev-devel udisks2-devel libmusicbrainz5-devel
qt5-multimedia-devel libcdio-paranoia-devel"
From 9194b175f28f70b13c208a9216bcc93efb96d18e Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:46 -0400
Subject: [PATCH 22/93] ccextractor: revbump for ffmpeg6
---
...5-and-tesseract-5-compatibility-1479.patch | 168 ++++++++++++++++++
srcpkgs/ccextractor/template | 4 +-
2 files changed, 170 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/ccextractor/patches/0001-fix-ffmpeg-5-and-tesseract-5-compatibility-1479.patch
diff --git a/srcpkgs/ccextractor/patches/0001-fix-ffmpeg-5-and-tesseract-5-compatibility-1479.patch b/srcpkgs/ccextractor/patches/0001-fix-ffmpeg-5-and-tesseract-5-compatibility-1479.patch
new file mode 100644
index 00000000000000..bcab4890554b9a
--- /dev/null
+++ b/srcpkgs/ccextractor/patches/0001-fix-ffmpeg-5-and-tesseract-5-compatibility-1479.patch
@@ -0,0 +1,168 @@
+From b1cbfcea9b9c687143bf0d80bc179b563e99d025 Mon Sep 17 00:00:00 2001
+From: Prateek Sunal <prtksunal@gmail.com>
+Date: Thu, 9 Mar 2023 01:44:53 +0530
+Subject: [PATCH] fix: ffmpeg 5 and tesseract 5 compatibility (#1479)
+
+* fix: replace deprecated `codec` property with `codecpar`
+
+* fix: replace deprecated method `avcodec_decode_video2` with `avcodec_receive_frame` and `avcodec_send_packet`
+
+* Update CHANGES.TXT
+
+* fix: remove deprecated `av_register_all` function
+
+* fix: formatting
+
+* fix: add support for tesseract 5
+
+* fix: tesseract v5
+
+* fix: hardsubx codec context error
+
+* fix: lint const warning
+---
+ docs/CHANGES.TXT | 1 +
+ src/lib_ccx/ffmpeg_intgr.c | 7 +++---
+ src/lib_ccx/hardsubx.c | 25 ++++++++++++------
+ src/lib_ccx/hardsubx_decoder.c | 27 ++++++++------------
+ src/lib_ccx/ocr.c | 46 ++++++++++++----------------------
+ 5 files changed, 47 insertions(+), 59 deletions(-)
+
+diff --git a/src/lib_ccx/ffmpeg_intgr.c b/src/lib_ccx/ffmpeg_intgr.c
+index be988890..e6f21e20 100644
+--- a/src/lib_ccx/ffmpeg_intgr.c
++++ b/src/lib_ccx/ffmpeg_intgr.c
+@@ -66,7 +66,6 @@ void *init_ffmpeg(const char *path)
+ struct ffmpeg_ctx *ctx;
+ AVCodec *dec = NULL;
+ avcodec_register_all();
+- av_register_all();
+
+ if (ccx_options.debug_mask & CCX_DMT_VERBOSE)
+ av_log_set_level(AV_LOG_INFO);
+@@ -133,7 +132,6 @@ int ff_get_ccframe(void *arg, unsigned char *data, int maxlen)
+ struct ffmpeg_ctx *ctx = arg;
+ int len = 0;
+ int ret = 0;
+- int got_frame;
+ AVPacket packet;
+
+ ret = av_read_frame(ctx->ifmt, &packet);
+@@ -151,12 +149,13 @@ int ff_get_ccframe(void *arg, unsigned char *data, int maxlen)
+ return AVERROR(EAGAIN);
+ }
+
+- ret = avcodec_decode_video2(ctx->dec_ctx, ctx->frame, &got_frame, &packet);
++ avcodec_send_packet(ctx->codec_ctx, &ctx->packet);
++ ret = avcodec_receive_frame(ctx->dec_ctx, ctx->frame);
+ if (ret < 0)
+ {
+ av_log(NULL, AV_LOG_ERROR, "unable to decode packet\n");
+ }
+- else if (!got_frame)
++ else if (ret != 0)
+ {
+ return AVERROR(EAGAIN);
+ }
+diff --git a/src/lib_ccx/hardsubx.c b/src/lib_ccx/hardsubx.c
+index 411377f9..fb844c91 100644
+--- a/src/lib_ccx/hardsubx.c
++++ b/src/lib_ccx/hardsubx.c
+@@ -12,9 +12,6 @@
+
+ int hardsubx_process_data(struct lib_hardsubx_ctx *ctx)
+ {
+- // Get the required media attributes and initialize structures
+- av_register_all();
+-
+ if (avformat_open_input(&ctx->format_ctx, ctx->inputfile[0], NULL, NULL) != 0)
+ {
+ fatal(EXIT_READ_ERROR, "Error reading input file!\n");
+@@ -32,7 +29,7 @@
+ ctx->video_stream_id = -1;
+ for (int i = 0; i < ctx->format_ctx->nb_streams; i++)
+ {
+- if (ctx->format_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
++ if (ctx->format_ctx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO)
+ {
+ ctx->video_stream_id = i;
+ break;
+@@ -43,8 +40,21 @@
+ fatal(EXIT_READ_ERROR, "Video Stream not found!\n");
+ }
+
+- ctx->codec_ctx = ctx->format_ctx->streams[ctx->video_stream_id]->codec;
+- ctx->codec = avcodec_find_decoder(ctx->codec_ctx->codec_id);
++ ctx->codec_ctx = avcodec_alloc_context3(NULL);
++ if (!ctx->codec_ctx)
++ {
++ fatal(EXIT_NOT_ENOUGH_MEMORY, "Could not allocate codec context!\n");
++ }
++
++ // Assign codec parameters to codec context
++ if (avcodec_parameters_to_context(ctx->codec_ctx, ctx->format_ctx->streams[ctx->video_stream_id]->codecpar) < 0)
++ {
++ fatal(EXIT_READ_ERROR, "Could not initialize codec context!\n");
++ }
++
++ // Find decoder for the codec context
++ ctx->codec = (AVCodec *)avcodec_find_decoder(ctx->codec_ctx->codec_id);
++
+ if (ctx->codec == NULL)
+ {
+ fatal(EXIT_READ_ERROR, "Input codec is not supported!\n");
+diff --git a/src/lib_ccx/hardsubx_decoder.c b/src/lib_ccx/hardsubx_decoder.c
+index bd9b0980..b5dfaec4 100644
+--- a/src/lib_ccx/hardsubx_decoder.c
++++ b/src/lib_ccx/hardsubx_decoder.c
+@@ -371,7 +371,6 @@
+ int hardsubx_process_frames_tickertext(struct lib_hardsubx_ctx *ctx, struct encoder_ctx *enc_ctx)
+ {
+ // Search for ticker text at the bottom of the screen, such as in Russia TV1 or stock prices
+- int got_frame;
+ int cur_sec = 0, total_sec, progress;
+ int frame_number = 0;
+ char *ticker_text = NULL;
+@@ -382,8 +381,8 @@
+ {
+ frame_number++;
+ //Decode the video stream packet
+- avcodec_decode_video2(ctx->codec_ctx, ctx->frame, &got_frame, &ctx->packet);
+- if (got_frame && frame_number % 1000 == 0)
++ avcodec_send_packet(ctx->codec_ctx, &ctx->packet);
++ if (avcodec_receive_frame(ctx->codec_ctx, ctx->frame) == 0 && frame_number % 1000 == 0)
+ {
+ // sws_scale is used to convert the pixel format to RGB24 from all other cases
+ sws_scale(
+@@ -434,9 +433,8 @@
+ frame_number++;
+
+ //Decode the video stream packet
+- avcodec_decode_video2(ctx->codec_ctx, ctx->frame, &got_frame, &ctx->packet);
+-
+- if (got_frame && frame_number % 25 == 0)
++ avcodec_send_packet(ctx->codec_ctx, &ctx->packet);
++ if (avcodec_receive_frame(ctx->codec_ctx, ctx->frame) == 0 && frame_number % 25 == 0)
+ {
+ float diff = (float)convert_pts_to_ms(ctx->packet.pts - prev_packet_pts, ctx->format_ctx->streams[ctx->video_stream_id]->time_base);
+ if (fabsf(diff) < 1000 * ctx->min_sub_duration) //If the minimum duration of a subtitle line is exceeded, process packet
+@@ -548,7 +546,6 @@
+ {
+ // Do a binary search over the input video for faster processing
+ // printf("Duration: %d\n", (int)ctx->format_ctx->duration);
+- int got_frame;
+ int seconds_time = 0;
+ for (seconds_time = 0; seconds_time < 20; seconds_time++)
+ {
+@@ -568,8 +565,9 @@
+ {
+ if (ctx->packet.stream_index == ctx->video_stream_id)
+ {
+- avcodec_decode_video2(ctx->codec_ctx, ctx->frame, &got_frame, &ctx->packet);
+- if (got_frame)
++ avcodec_send_packet(ctx->codec_ctx, &ctx->packet);
++ if (avcodec_receive_frame(ctx->codec_ctx, ctx->frame) == 0)
++
+ {
+ // printf("%d\n", seek_time);
+ if (ctx->packet.pts < seek_time)
diff --git a/srcpkgs/ccextractor/template b/srcpkgs/ccextractor/template
index 659af7e64fee4c..5d922ac0e442f7 100644
--- a/srcpkgs/ccextractor/template
+++ b/srcpkgs/ccextractor/template
@@ -1,12 +1,12 @@
# Template file for 'ccextractor'
pkgname=ccextractor
version=0.93
-revision=2
+revision=3
build_wrksrc="linux"
build_style=gnu-configure
configure_args="--enable-ocr --enable-hardsubx"
hostmakedepends="automake pkg-config tesseract-ocr-devel"
-makedepends="leptonica-devel tesseract-ocr-devel ffmpeg-devel"
+makedepends="leptonica-devel tesseract-ocr-devel ffmpeg6-devel"
short_desc="Extract subtitles from video streams"
maintainer="newbluemoon <blaumolch@mailbox.org>"
license="GPL-2.0-or-later"
From 064ff39ee08d83367d3b06349a1fa1c54d834004 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:46 -0400
Subject: [PATCH 23/93] chromaprint: revbump for ffmpeg6
---
srcpkgs/chromaprint/patches/ffmpeg5.patch | 569 ++++++++++++++++++++++
srcpkgs/chromaprint/template | 4 +-
2 files changed, 571 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/chromaprint/patches/ffmpeg5.patch
diff --git a/srcpkgs/chromaprint/patches/ffmpeg5.patch b/srcpkgs/chromaprint/patches/ffmpeg5.patch
new file mode 100644
index 00000000000000..a9fd307a23c8a4
--- /dev/null
+++ b/srcpkgs/chromaprint/patches/ffmpeg5.patch
@@ -0,0 +1,569 @@
+From 8ccad6937177b1b92e40ab8f4447ea27bac009a7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Lalinsk=C3=BD?= <lalinsky@gmail.com>
+Date: Fri, 4 Nov 2022 21:47:38 +0100
+Subject: [PATCH] Use FFmpeg 5.x (#120)
+
+* Use FFmpeg 5.1.2 for CI builds
+
+* Build on Ubuntu 20.04
+
+* Upgrade code to FFmpeg 5.x APIs
+
+* Only set FFmpeg include dirs if building tools
+
+* No longer needed
+
+* Use ubuntu 20.04
+---
+ .github/workflows/build.yml | 6 +-
+ CMakeLists.txt | 16 --
+ package/build.sh | 4 +-
+ src/audio/ffmpeg_audio_processor.h | 2 -
+ src/audio/ffmpeg_audio_processor_avresample.h | 72 -------
+ src/audio/ffmpeg_audio_processor_swresample.h | 18 +-
+ src/audio/ffmpeg_audio_reader.h | 197 +++++++++---------
+ tests/CMakeLists.txt | 6 +
+ 8 files changed, 122 insertions(+), 199 deletions(-)
+ delete mode 100644 src/audio/ffmpeg_audio_processor_avresample.h
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f8d6a32..4da2405 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -84,9 +84,6 @@ find_package(FFmpeg)
+ if(FFMPEG_LIBRARIES)
+ cmake_push_check_state(RESET)
+ set(CMAKE_REQUIRED_LIBRARIES ${FFMPEG_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} -lm)
+- check_function_exists(av_packet_unref HAVE_AV_PACKET_UNREF)
+- check_function_exists(av_frame_alloc HAVE_AV_FRAME_ALLOC)
+- check_function_exists(av_frame_free HAVE_AV_FRAME_FREE)
+ cmake_pop_check_state()
+ endif()
+
+@@ -163,14 +160,11 @@ message(STATUS "Using ${FFT_LIB} for FFT calculations")
+ if(NOT AUDIO_PROCESSOR_LIB)
+ if(FFMPEG_LIBSWRESAMPLE_FOUND)
+ set(AUDIO_PROCESSOR_LIB "swresample")
+- elseif(FFMPEG_LIBAVRESAMPLE_FOUND)
+- set(AUDIO_PROCESSOR_LIB "avresample")
+ endif()
+ endif()
+
+ if(AUDIO_PROCESSOR_LIB STREQUAL "swresample")
+ if(FFMPEG_LIBSWRESAMPLE_FOUND)
+- set(USE_AVRESAMPLE OFF)
+ set(USE_SWRESAMPLE ON)
+ set(AUDIO_PROCESSOR_LIBRARIES ${FFMPEG_LIBSWRESAMPLE_LIBRARIES})
+ set(AUDIO_PROCESSOR_INCLUDE_DIRS ${FFMPEG_LIBSWRESAMPLE_INCLUDE_DIRS})
+@@ -178,16 +172,6 @@ if(AUDIO_PROCESSOR_LIB STREQUAL "swresample")
+ message(FATAL_ERROR "Selected ${AUDIO_PROCESSOR_LIB} for audio processing, but the library is not found")
+ endif()
+ message(STATUS "Using ${AUDIO_PROCESSOR_LIB} for audio conversion")
+-elseif(AUDIO_PROCESSOR_LIB STREQUAL "avresample")
+- if(FFMPEG_LIBAVRESAMPLE_FOUND)
+- set(USE_AVRESAMPLE ON)
+- set(USE_SWRESAMPLE OFF)
+- set(AUDIO_PROCESSOR_LIBRARIES ${FFMPEG_LIBAVRESAMPLE_LIBRARIES})
+- set(AUDIO_PROCESSOR_INCLUDE_DIRS ${FFMPEG_LIBAVRESAMPLE_INCLUDE_DIRS})
+- else()
+- message(FATAL_ERROR "Selected ${AUDIO_PROCESSOR_LIB} for audio processing, but the library is not found")
+- endif()
+- message(STATUS "Using ${AUDIO_PROCESSOR_LIB} for audio conversion")
+ else()
+ message(STATUS "Building without audio conversion support, please install FFmpeg with libswresample")
+ endif()
+diff --git a/package/build.sh b/package/build.sh
+index da631ae..b41d36e 100755
+--- a/package/build.sh
++++ b/package/build.sh
+@@ -7,8 +7,8 @@ set -eux
+
+ BASE_DIR=$(cd $(dirname $0)/.. && pwd)
+
+-FFMPEG_VERSION=4.4.1
+-FFMPEG_BUILD_TAG=v4.4.1-1
++FFMPEG_VERSION=5.1.2
++FFMPEG_BUILD_TAG=v${FFMPEG_VERSION}-1
+
+ TMP_BUILD_DIR=$BASE_DIR/$(mktemp -d build.XXXXXXXX)
+ trap 'rm -rf $TMP_BUILD_DIR' EXIT
+diff --git a/src/audio/ffmpeg_audio_processor.h b/src/audio/ffmpeg_audio_processor.h
+index 7628fc7..39f4f6d 100644
+--- a/src/audio/ffmpeg_audio_processor.h
++++ b/src/audio/ffmpeg_audio_processor.h
+@@ -10,8 +10,6 @@
+
+ #if defined(USE_SWRESAMPLE)
+ #include "audio/ffmpeg_audio_processor_swresample.h"
+-#elif defined(USE_AVRESAMPLE)
+-#include "audio/ffmpeg_audio_processor_avresample.h"
+ #else
+ #error "no audio processing library"
+ #endif
+diff --git a/src/audio/ffmpeg_audio_processor_avresample.h b/src/audio/ffmpeg_audio_processor_avresample.h
+deleted file mode 100644
+index bd85f92..0000000
+--- a/src/audio/ffmpeg_audio_processor_avresample.h
++++ /dev/null
+@@ -1,72 +0,0 @@
+-// Copyright (C) 2016 Lukas Lalinsky
+-// Distributed under the MIT license, see the LICENSE file for details.
+-
+-#ifndef CHROMAPRINT_AUDIO_FFMPEG_AUDIO_PROCESSOR_AVRESAMPLE_H_
+-#define CHROMAPRINT_AUDIO_FFMPEG_AUDIO_PROCESSOR_AVRESAMPLE_H_
+-
+-extern "C" {
+-#include <libavresample/avresample.h>
+-}
+-
+-namespace chromaprint {
+-
+-class FFmpegAudioProcessor {
+-public:
+- FFmpegAudioProcessor() {
+- m_resample_ctx = avresample_alloc_context();
+- }
+-
+- ~FFmpegAudioProcessor() {
+- avresample_free(&m_resample_ctx);
+- }
+-
+- void SetCompatibleMode() {
+- av_opt_set_int(m_resample_ctx, "filter_size", 16, 0);
+- av_opt_set_int(m_resample_ctx, "phase_shift", 8, 0);
+- av_opt_set_int(m_resample_ctx, "linear_interp", 1, 0);
+- av_opt_set_double(m_resample_ctx, "cutoff", 0.8, 0);
+- }
+-
+- void SetInputChannelLayout(int64_t channel_layout) {
+- av_opt_set_int(m_resample_ctx, "in_channel_layout", channel_layout, 0);
+- }
+-
+- void SetInputSampleFormat(AVSampleFormat sample_format) {
+- av_opt_set_int(m_resample_ctx, "in_sample_fmt", sample_format, 0);
+- }
+-
+- void SetInputSampleRate(int sample_rate) {
+- av_opt_set_int(m_resample_ctx, "in_sample_rate", sample_rate, 0);
+- }
+-
+- void SetOutputChannelLayout(int64_t channel_layout) {
+- av_opt_set_int(m_resample_ctx, "out_channel_layout", channel_layout, 0);
+- }
+-
+- void SetOutputSampleFormat(AVSampleFormat sample_format) {
+- av_opt_set_int(m_resample_ctx, "out_sample_fmt", sample_format, 0);
+- }
+-
+- void SetOutputSampleRate(int sample_rate) {
+- av_opt_set_int(m_resample_ctx, "out_sample_fmt", sample_rate, 0);
+- }
+-
+- int Init() {
+- return avresample_open(m_resample_ctx);
+- }
+-
+- int Convert(uint8_t **out, int out_count, const uint8_t **in, int in_count) {
+- return avresample_convert(m_resample_ctx, out, 0, out_count, (uint8_t **) in, 0, in_count);
+- }
+-
+- int Flush(uint8_t **out, int out_count) {
+- return avresample_read(m_resample_ctx, out, out_count);
+- }
+-
+-private:
+- AVAudioResampleContext *m_resample_ctx = nullptr;
+-};
+-
+-}; // namespace chromaprint
+-
+-#endif
+diff --git a/src/audio/ffmpeg_audio_processor_swresample.h b/src/audio/ffmpeg_audio_processor_swresample.h
+index b86266b..b1d4bea 100644
+--- a/src/audio/ffmpeg_audio_processor_swresample.h
++++ b/src/audio/ffmpeg_audio_processor_swresample.h
+@@ -28,30 +28,28 @@ public:
+ av_opt_set_double(m_swr_ctx, "cutoff", 0.8, 0);
+ }
+
+- void SetInputChannelLayout(int64_t channel_layout) {
+- av_opt_set_int(m_swr_ctx, "icl", channel_layout, 0);
+- av_opt_set_int(m_swr_ctx, "ich", av_get_channel_layout_nb_channels(channel_layout), 0);
++ void SetInputChannelLayout(AVChannelLayout *channel_layout) {
++ av_opt_set_int(m_swr_ctx, "in_channel_layout", channel_layout->u.mask, 0);
+ }
+
+ void SetInputSampleFormat(AVSampleFormat sample_format) {
+- av_opt_set_int(m_swr_ctx, "isf", sample_format, 0);
++ av_opt_set_sample_fmt(m_swr_ctx, "in_sample_fmt", sample_format, 0);
+ }
+
+ void SetInputSampleRate(int sample_rate) {
+- av_opt_set_int(m_swr_ctx, "isr", sample_rate, 0);
++ av_opt_set_int(m_swr_ctx, "in_sample_rate", sample_rate, 0);
+ }
+
+- void SetOutputChannelLayout(int64_t channel_layout) {
+- av_opt_set_int(m_swr_ctx, "ocl", channel_layout, 0);
+- av_opt_set_int(m_swr_ctx, "och", av_get_channel_layout_nb_channels(channel_layout), 0);
++ void SetOutputChannelLayout(AVChannelLayout *channel_layout) {
++ av_opt_set_int(m_swr_ctx, "out_channel_layout", channel_layout->u.mask, 0);
+ }
+
+ void SetOutputSampleFormat(AVSampleFormat sample_format) {
+- av_opt_set_int(m_swr_ctx, "osf", sample_format, 0);
++ av_opt_set_sample_fmt(m_swr_ctx, "out_sample_fmt", sample_format, 0);
+ }
+
+ void SetOutputSampleRate(int sample_rate) {
+- av_opt_set_int(m_swr_ctx, "osr", sample_rate, 0);
++ av_opt_set_int(m_swr_ctx, "out_sample_rate", sample_rate, 0);
+ }
+
+ int Init() {
+diff --git a/src/audio/ffmpeg_audio_reader.h b/src/audio/ffmpeg_audio_reader.h
+index 5550164..1c6b346 100644
+--- a/src/audio/ffmpeg_audio_reader.h
++++ b/src/audio/ffmpeg_audio_reader.h
+@@ -62,7 +62,7 @@ public:
+ bool Read(const int16_t **data, size_t *size);
+
+ bool IsOpen() const { return m_opened; }
+- bool IsFinished() const { return m_finished && !m_got_frame; }
++ bool IsFinished() const { return !m_has_more_packets && !m_has_more_frames; }
+
+ std::string GetError() const { return m_error; }
+ int GetErrorCode() const { return m_error_code; }
+@@ -74,20 +74,19 @@ private:
+ uint8_t *m_convert_buffer[1] = { nullptr };
+ int m_convert_buffer_nb_samples = 0;
+
+- AVInputFormat *m_input_fmt = nullptr;
++ const AVInputFormat *m_input_fmt = nullptr;
+ AVDictionary *m_input_opts = nullptr;
+
+ AVFormatContext *m_format_ctx = nullptr;
+ AVCodecContext *m_codec_ctx = nullptr;
+- AVFrame *m_frame = nullptr;
+ int m_stream_index = -1;
+ std::string m_error;
+ int m_error_code = 0;
+- bool m_finished = false;
+ bool m_opened = false;
+- int m_got_frame = 0;
+- AVPacket m_packet;
+- AVPacket m_packet0;
++ bool m_has_more_packets = true;
++ bool m_has_more_frames = true;
++ AVPacket *m_packet = nullptr;
++ AVFrame *m_frame = nullptr;
+
+ int m_output_sample_rate = 0;
+ int m_output_channels = 0;
+@@ -98,19 +97,12 @@ private:
+
+ inline FFmpegAudioReader::FFmpegAudioReader() {
+ av_log_set_level(AV_LOG_QUIET);
+-
+- av_init_packet(&m_packet);
+- m_packet.data = nullptr;
+- m_packet.size = 0;
+-
+- m_packet0 = m_packet;
+ }
+
+ inline FFmpegAudioReader::~FFmpegAudioReader() {
+ Close();
+ av_dict_free(&m_input_opts);
+ av_freep(&m_convert_buffer[0]);
+- av_packet_unref(&m_packet0);
+ }
+
+ inline bool FFmpegAudioReader::SetInputFormat(const char *name) {
+@@ -135,11 +127,10 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) {
+
+ Close();
+
+- av_init_packet(&m_packet);
+- m_packet.data = nullptr;
+- m_packet.size = 0;
+-
+- m_packet0 = m_packet;
++ m_packet = av_packet_alloc();
++ if (!m_packet) {
++ return false;
++ }
+
+ ret = avformat_open_input(&m_format_ctx, file_name.c_str(), m_input_fmt, &m_input_opts);
+ if (ret < 0) {
+@@ -153,26 +144,31 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) {
+ return false;
+ }
+
+- AVCodec *codec;
++ const AVCodec *codec;
+ ret = av_find_best_stream(m_format_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, &codec, 0);
+ if (ret < 0) {
+ SetError("Could not find any audio stream in the file", ret);
+ return false;
+ }
+ m_stream_index = ret;
++ auto stream = m_format_ctx->streams[m_stream_index];
+
+- m_codec_ctx = m_format_ctx->streams[m_stream_index]->codec;
++ m_codec_ctx = avcodec_alloc_context3(codec);
+ m_codec_ctx->request_sample_fmt = AV_SAMPLE_FMT_S16;
+
++ ret = avcodec_parameters_to_context(m_codec_ctx, stream->codecpar);
++ if (ret < 0) {
++ SetError("Could not copy the stream parameters", ret);
++ return false;
++ }
++
+ ret = avcodec_open2(m_codec_ctx, codec, nullptr);
+ if (ret < 0) {
+ SetError("Could not open the codec", ret);
+ return false;
+ }
+
+- if (!m_codec_ctx->channel_layout) {
+- m_codec_ctx->channel_layout = av_get_default_channel_layout(m_codec_ctx->channels);
+- }
++ av_dump_format(m_format_ctx, 0, "foo", 0);
+
+ m_frame = av_frame_alloc();
+ if (!m_frame) {
+@@ -183,19 +179,23 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) {
+ m_output_sample_rate = m_codec_ctx->sample_rate;
+ }
+
+- if (!m_output_channels) {
+- m_output_channels = m_codec_ctx->channels;
++ AVChannelLayout output_channel_layout;
++ if (m_output_channels) {
++ av_channel_layout_default(&output_channel_layout, m_output_channels);
++ } else {
++ m_output_channels = m_codec_ctx->ch_layout.nb_channels;
++ av_channel_layout_default(&output_channel_layout, m_output_channels);
+ }
+
+- if (m_codec_ctx->sample_fmt != AV_SAMPLE_FMT_S16 || m_codec_ctx->channels != m_output_channels || m_codec_ctx->sample_rate != m_output_sample_rate) {
++ if (m_codec_ctx->sample_fmt != AV_SAMPLE_FMT_S16 || m_codec_ctx->ch_layout.nb_channels != m_output_channels || m_codec_ctx->sample_rate != m_output_sample_rate) {
+ m_converter.reset(new FFmpegAudioProcessor());
+ m_converter->SetCompatibleMode();
+ m_converter->SetInputSampleFormat(m_codec_ctx->sample_fmt);
+ m_converter->SetInputSampleRate(m_codec_ctx->sample_rate);
+- m_converter->SetInputChannelLayout(m_codec_ctx->channel_layout);
++ m_converter->SetInputChannelLayout(&(m_codec_ctx->ch_layout));
+ m_converter->SetOutputSampleFormat(AV_SAMPLE_FMT_S16);
+ m_converter->SetOutputSampleRate(m_output_sample_rate);
+- m_converter->SetOutputChannelLayout(av_get_default_channel_layout(m_output_channels));
++ m_converter->SetOutputChannelLayout(&output_channel_layout);
+ auto ret = m_converter->Init();
+ if (ret != 0) {
+ SetError("Could not create an audio converter instance", ret);
+@@ -203,10 +203,11 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) {
+ }
+ }
+
++ av_channel_layout_uninit(&output_channel_layout);
++
+ m_opened = true;
+- m_finished = false;
+- m_got_frame = 0;
+- m_nb_packets = 0;
++ m_has_more_packets = true;
++ m_has_more_frames = true;
+ m_decode_error = 0;
+
+ return true;
+@@ -214,6 +215,7 @@ inline bool FFmpegAudioReader::Open(const std::string &file_name) {
+
+ inline void FFmpegAudioReader::Close() {
+ av_frame_free(&m_frame);
++ av_packet_free(&m_packet);
+
+ m_stream_index = -1;
+
+@@ -252,91 +254,98 @@ inline bool FFmpegAudioReader::Read(const int16_t **data, size_t *size) {
+ return false;
+ }
+
++ *data = nullptr;
++ *size = 0;
++
+ int ret;
++ bool needs_packet = false;
+ while (true) {
+- while (m_packet.size <= 0) {
+- av_packet_unref(&m_packet0);
+- av_init_packet(&m_packet);
+- m_packet.data = nullptr;
+- m_packet.size = 0;
+- ret = av_read_frame(m_format_ctx, &m_packet);
++ while (needs_packet && m_packet->size == 0) {
++ ret = av_read_frame(m_format_ctx, m_packet);
+ if (ret < 0) {
+ if (ret == AVERROR_EOF) {
+- m_finished = true;
++ needs_packet = false;
++ m_has_more_packets = false;
+ break;
+- } else {
++ }
++ SetError("Error reading from the audio source", ret);
++ return false;
++ }
++ if (m_packet->stream_index == m_stream_index) {
++ needs_packet = false;
++ } else {
++ av_packet_unref(m_packet);
++ }
++ }
++
++ if (m_packet->size != 0) {
++ ret = avcodec_send_packet(m_codec_ctx, m_packet);
++ if (ret < 0) {
++ if (ret != AVERROR(EAGAIN)) {
+ SetError("Error reading from the audio source", ret);
+ return false;
+ }
+- }
+- m_packet0 = m_packet;
+- if (m_packet.stream_index != m_stream_index) {
+- m_packet.data = nullptr;
+- m_packet.size = 0;
+ } else {
+- m_nb_packets++;
++ av_packet_unref(m_packet);
+ }
+ }
+
+- ret = avcodec_decode_audio4(m_codec_ctx, m_frame, &m_got_frame, &m_packet);
++ ret = avcodec_receive_frame(m_codec_ctx, m_frame);
+ if (ret < 0) {
+- if (m_decode_error) {
+- SetError("Error decoding audio frame", m_decode_error);
+- return false;
++ if (ret == AVERROR_EOF) {
++ m_has_more_frames = false;
++ } else if (ret == AVERROR(EAGAIN)) {
++ if (m_has_more_packets) {
++ needs_packet = true;
++ continue;
++ } else {
++ m_has_more_frames = false;
++ }
+ }
+- m_decode_error = ret;
+- m_packet.data = nullptr;
+- m_packet.size = 0;
+- continue;
++ SetError("Error decoding the audio source", ret);
++ return false;
+ }
+
+- break;
+- }
+-
+- m_decode_error = 0;
+-
+- const int decoded = std::min(ret, m_packet.size);
+- m_packet.data += decoded;
+- m_packet.size -= decoded;
+-
+- if (m_got_frame) {
+- if (m_converter) {
+- if (m_frame->nb_samples > m_convert_buffer_nb_samples) {
+- int linsize;
+- av_freep(&m_convert_buffer[0]);
+- m_convert_buffer_nb_samples = std::max(1024 * 8, m_frame->nb_samples);
+- ret = av_samples_alloc(m_convert_buffer, &linsize, m_codec_ctx->channels, m_convert_buffer_nb_samples, AV_SAMPLE_FMT_S16, 1);
+- if (ret < 0) {
+- SetError("Couldn't allocate audio converter buffer", ret);
++ if (m_frame->nb_samples > 0) {
++ if (m_converter) {
++ if (m_frame->nb_samples > m_convert_buffer_nb_samples) {
++ int linsize;
++ av_freep(&m_convert_buffer[0]);
++ m_convert_buffer_nb_samples = std::max(1024 * 8, m_frame->nb_samples);
++ ret = av_samples_alloc(m_convert_buffer, &linsize, m_codec_ctx->ch_layout.nb_channels, m_convert_buffer_nb_samples, AV_SAMPLE_FMT_S16, 1);
++ if (ret < 0) {
++ SetError("Couldn't allocate audio converter buffer", ret);
++ return false;
++ }
++ }
++ auto nb_samples = m_converter->Convert(m_convert_buffer, m_convert_buffer_nb_samples, (const uint8_t **) m_frame->data, m_frame->nb_samples);
++ if (nb_samples < 0) {
++ SetError("Couldn't convert audio", ret);
+ return false;
+ }
+- }
+- auto nb_samples = m_converter->Convert(m_convert_buffer, m_convert_buffer_nb_samples, (const uint8_t **) m_frame->data, m_frame->nb_samples);
+- if (nb_samples < 0) {
+- SetError("Couldn't convert audio", ret);
+- return false;
+- }
+- *data = (const int16_t *) m_convert_buffer[0];
+- *size = nb_samples;
+- } else {
+- *data = (const int16_t *) m_frame->data[0];
+- *size = m_frame->nb_samples;
+- }
+- } else {
+- if (m_finished && m_converter) {
+- auto nb_samples = m_converter->Flush(m_convert_buffer, m_convert_buffer_nb_samples);
+- if (nb_samples < 0) {
+- SetError("Couldn't convert audio", ret);
+- return false;
+- } else if (nb_samples > 0) {
+- m_got_frame = 1;
+ *data = (const int16_t *) m_convert_buffer[0];
+ *size = nb_samples;
++ } else {
++ *data = (const int16_t *) m_frame->data[0];
++ *size = m_frame->nb_samples;
++ }
++ } else {
++ if (m_converter) {
++ if (IsFinished()) {
++ auto nb_samples = m_converter->Flush(m_convert_buffer, m_convert_buffer_nb_samples);
++ if (nb_samples < 0) {
++ SetError("Couldn't convert audio", ret);
++ return false;
++ } else if (nb_samples > 0) {
++ *data = (const int16_t *) m_convert_buffer[0];
++ *size = nb_samples;
++ }
++ }
+ }
+ }
+- }
+
+- return true;
++ return true;
++ }
+ }
+
+ inline void FFmpegAudioReader::SetError(const char *message, int errnum) {
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index a2b517b..123e643 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -38,6 +38,12 @@ set(SRCS
+
+ if(BUILD_TOOLS)
+ set(SRCS ${SRCS} ../src/audio/ffmpeg_audio_reader_test.cpp)
++ include_directories(
++ ${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS}
++ ${FFMPEG_LIBAVCODEC_INCLUDE_DIRS}
++ ${FFMPEG_LIBAVUTIL_INCLUDE_DIRS}
++ ${AUDIO_PROCESSOR_INCLUDE_DIRS}
++ )
+ link_libraries(fpcalc_libs)
+ endif()
+
+--
+2.38.1
+
+
diff --git a/srcpkgs/chromaprint/template b/srcpkgs/chromaprint/template
index 7ef7838949f3a3..1b990191b7fb02 100644
--- a/srcpkgs/chromaprint/template
+++ b/srcpkgs/chromaprint/template
@@ -1,11 +1,11 @@
# Template file for 'chromaprint'
pkgname=chromaprint
version=1.5.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DBUILD_TOOLS=ON"
make_check_target="check"
-makedepends="fftw-devel ffmpeg-devel"
+makedepends="fftw-devel ffmpeg6-devel"
short_desc="Library that extracts fingerprints from any audio source"
maintainer="Orphaned <orphan@voidlinux.org>"
license="MIT, LGPL-2.1-only"
From 85b0f886524416267c010167dd0546c48c72dfb8 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:46 -0400
Subject: [PATCH 24/93] chromium: revbump for ffmpeg6
---
srcpkgs/chromium/patches/ffmpeg5.patch | 47 ++++++++++++++++++++++++++
srcpkgs/chromium/template | 2 +-
2 files changed, 48 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/chromium/patches/ffmpeg5.patch
diff --git a/srcpkgs/chromium/patches/ffmpeg5.patch b/srcpkgs/chromium/patches/ffmpeg5.patch
new file mode 100644
index 00000000000000..24e2da38e34ca2
--- /dev/null
+++ b/srcpkgs/chromium/patches/ffmpeg5.patch
@@ -0,0 +1,47 @@
+--- a/media/filters/ffmpeg_demuxer.cc 2023-01-23 17:33:57.366213805 +0200
++++ b/media/filters/ffmpeg_demuxer.cc 2023-01-23 17:43:09.283436983 +0200
+@@ -92,24 +92,12 @@
+
+ static base::TimeDelta ExtractStartTime(AVStream* stream) {
+ // The default start time is zero.
+- base::TimeDelta start_time;
++ base::TimeDelta start_time = kNoTimestamp;
+
+ // First try to use the |start_time| value as is.
+- if (stream->start_time != kNoFFmpegTimestamp)
++ if (stream->start_time != kNoFFmpegTimestamp) // AV_NOPTS_VALUE
+ start_time = ConvertFromTimeBase(stream->time_base, stream->start_time);
+
+- // Next try to use the first DTS value, for codecs where we know PTS == DTS
+- // (excludes all H26x codecs). The start time must be returned in PTS.
+- if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp &&
+- stream->codecpar->codec_id != AV_CODEC_ID_HEVC &&
+- stream->codecpar->codec_id != AV_CODEC_ID_H264 &&
+- stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) {
+- const base::TimeDelta first_pts =
+- ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream));
+- if (first_pts < start_time)
+- start_time = first_pts;
+- }
+-
+ return start_time;
+ }
+
+@@ -1597,7 +1585,7 @@
+ for (const auto& stream : streams_) {
+ if (!stream || stream->IsEnabled() != enabled)
+ continue;
+- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker)
++ if (stream->av_stream()->start_time == AV_NOPTS_VALUE)
+ continue;
+ if (!lowest_start_time_stream ||
+ stream->start_time() < lowest_start_time_stream->start_time()) {
+@@ -1618,7 +1606,7 @@
+ if (stream->type() != DemuxerStream::VIDEO)
+ continue;
+
+- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker)
++ if (stream->av_stream()->start_time == AV_NOPTS_VALUE)
+ continue;
+
+ if (!stream->IsEnabled())
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index bd51612ed64748..2207f744f0c4ef 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -2,7 +2,7 @@
pkgname=chromium
# See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
version=126.0.6478.55
-revision=1
+revision=2
archs="i686* x86_64* aarch64* armv7l*"
hostmakedepends="
$(vopt_if clang "clang17 lld17 llvm17 compiler-rt")
From 88068f6a45f4808b54ffb29de71e0596c2f6c706 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:46 -0400
Subject: [PATCH 25/93] cmus: revbump for ffmpeg6
---
srcpkgs/chromium/patches/ffmpeg5.patch | 47 --------------------------
srcpkgs/cmus/patches/ffmpeg6.patch | 12 +++++++
srcpkgs/cmus/template | 4 +--
3 files changed, 14 insertions(+), 49 deletions(-)
delete mode 100644 srcpkgs/chromium/patches/ffmpeg5.patch
create mode 100644 srcpkgs/cmus/patches/ffmpeg6.patch
diff --git a/srcpkgs/chromium/patches/ffmpeg5.patch b/srcpkgs/chromium/patches/ffmpeg5.patch
deleted file mode 100644
index 24e2da38e34ca2..00000000000000
--- a/srcpkgs/chromium/patches/ffmpeg5.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/media/filters/ffmpeg_demuxer.cc 2023-01-23 17:33:57.366213805 +0200
-+++ b/media/filters/ffmpeg_demuxer.cc 2023-01-23 17:43:09.283436983 +0200
-@@ -92,24 +92,12 @@
-
- static base::TimeDelta ExtractStartTime(AVStream* stream) {
- // The default start time is zero.
-- base::TimeDelta start_time;
-+ base::TimeDelta start_time = kNoTimestamp;
-
- // First try to use the |start_time| value as is.
-- if (stream->start_time != kNoFFmpegTimestamp)
-+ if (stream->start_time != kNoFFmpegTimestamp) // AV_NOPTS_VALUE
- start_time = ConvertFromTimeBase(stream->time_base, stream->start_time);
-
-- // Next try to use the first DTS value, for codecs where we know PTS == DTS
-- // (excludes all H26x codecs). The start time must be returned in PTS.
-- if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp &&
-- stream->codecpar->codec_id != AV_CODEC_ID_HEVC &&
-- stream->codecpar->codec_id != AV_CODEC_ID_H264 &&
-- stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) {
-- const base::TimeDelta first_pts =
-- ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream));
-- if (first_pts < start_time)
-- start_time = first_pts;
-- }
--
- return start_time;
- }
-
-@@ -1597,7 +1585,7 @@
- for (const auto& stream : streams_) {
- if (!stream || stream->IsEnabled() != enabled)
- continue;
-- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker)
-+ if (stream->av_stream()->start_time == AV_NOPTS_VALUE)
- continue;
- if (!lowest_start_time_stream ||
- stream->start_time() < lowest_start_time_stream->start_time()) {
-@@ -1618,7 +1606,7 @@
- if (stream->type() != DemuxerStream::VIDEO)
- continue;
-
-- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker)
-+ if (stream->av_stream()->start_time == AV_NOPTS_VALUE)
- continue;
-
- if (!stream->IsEnabled())
diff --git a/srcpkgs/cmus/patches/ffmpeg6.patch b/srcpkgs/cmus/patches/ffmpeg6.patch
new file mode 100644
index 00000000000000..ffa95ab811101b
--- /dev/null
+++ b/srcpkgs/cmus/patches/ffmpeg6.patch
@@ -0,0 +1,12 @@
+--- a/ip/ffmpeg.c
++++ b/ip/ffmpeg.c
+@@ -202,9 +202,6 @@ static int ffmpeg_open(struct input_plugin_data *ip_data)
+ break;
+ }
+
+- if (codec->capabilities & AV_CODEC_CAP_TRUNCATED)
+- cc->flags |= AV_CODEC_FLAG_TRUNCATED;
+-
+ if (avcodec_open2(cc, codec, NULL) < 0) {
+ d_print("could not open codec: %d, %s\n", cc->codec_id, avcodec_get_name(cc->codec_id));
+ err = -IP_ERROR_UNSUPPORTED_FILE_TYPE;
diff --git a/srcpkgs/cmus/template b/srcpkgs/cmus/template
index 0d1436744f1b2c..4bc08a31d3fbe7 100644
--- a/srcpkgs/cmus/template
+++ b/srcpkgs/cmus/template
@@ -1,14 +1,14 @@
# Template file for 'cmus'
pkgname=cmus
version=2.10.0
-revision=3
+revision=4
build_style=configure
configure_args="prefix=/usr LD=$CC"
hostmakedepends="pkg-config"
makedepends="ncurses-devel faad2-devel libcdio-devel libcdio-paranoia-devel
libcddb-devel libdiscid-devel libflac-devel libao-devel libmad-devel
libmodplug-devel libmp4v2-devel libmpcdec-devel pulseaudio-devel
- opusfile-devel wavpack-devel alsa-lib-devel libvorbis-devel ffmpeg-devel
+ opusfile-devel wavpack-devel alsa-lib-devel libvorbis-devel ffmpeg6-devel
sndio-devel jack-devel $(vopt_if elogind elogind-devel)"
short_desc="Small, fast and powerful console music player"
maintainer="Orphaned <orphan@voidlinux.org>"
From 976880b379f3817eaaeb99f8bd82fbe192cb93d0 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:46 -0400
Subject: [PATCH 26/93] cyanrip: revbump for ffmpeg6
---
srcpkgs/cyanrip/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/cyanrip/template b/srcpkgs/cyanrip/template
index 9796e3461601a7..d725cc8b97dac4 100644
--- a/srcpkgs/cyanrip/template
+++ b/srcpkgs/cyanrip/template
@@ -1,10 +1,10 @@
# Template file for 'cyanrip'
pkgname=cyanrip
version=0.9.0
-revision=1
+revision=2
build_style=meson
hostmakedepends="pkg-config"
-makedepends="ffmpeg-devel libcdio-devel libcdio-paranoia-devel libcurl-devel libmusicbrainz5-devel"
+makedepends="ffmpeg6-devel libcdio-devel libcdio-paranoia-devel libcurl-devel libmusicbrainz5-devel"
short_desc="Bule-ish CD ripper"
maintainer="Duncaen <duncaen@voidlinux.org>"
license="LGPL-2.1-or-later"
From 94c612385dcf295852ac066b947fbe8a44c83b3c Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:46 -0400
Subject: [PATCH 27/93] droidcam-obs-plugin: revbump for ffmpeg6
---
srcpkgs/droidcam-obs-plugin/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/droidcam-obs-plugin/template b/srcpkgs/droidcam-obs-plugin/template
index 9dc6648efe94ad..ad64403e8ba843 100644
--- a/srcpkgs/droidcam-obs-plugin/template
+++ b/srcpkgs/droidcam-obs-plugin/template
@@ -1,12 +1,12 @@
# Template file for 'droidcam-obs-plugin'
pkgname=droidcam-obs-plugin
version=2.3.2
-revision=1
+revision=2
build_style=gnu-makefile
make_use_env=yes
make_build_args="ALLOW_STATIC=no"
makedepends="obs-devel libusbmuxd-devel libjpeg-turbo-devel
- ffmpeg-devel libimobiledevice-devel"
+ ffmpeg6-devel libimobiledevice-devel"
short_desc="DroidCam OBS Source"
maintainer="Michael Aldridge <maldridge@voidlinux.org>"
license="GPL-2.0-only"
From f9aabc58baa01106aeda6ed44382518b0e3f0e61 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:46 -0400
Subject: [PATCH 28/93] droidcam: revbump for ffmpeg6
---
srcpkgs/droidcam/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/droidcam/template b/srcpkgs/droidcam/template
index f727b7a64f3c8e..e5f800937d7c9b 100644
--- a/srcpkgs/droidcam/template
+++ b/srcpkgs/droidcam/template
@@ -1,12 +1,12 @@
# Template file for 'droidcam'
pkgname=droidcam
version=2.1.3
-revision=1
+revision=2
build_style=gnu-makefile
make_use_env=true
make_build_args="USBMUXD=-lusbmuxd-2.0 APPINDICATOR=ayatana-appindicator3-0.1"
hostmakedepends="pkg-config"
-makedepends="pkg-config libjpeg-turbo-devel ffmpeg-devel alsa-lib-devel
+makedepends="pkg-config libjpeg-turbo-devel ffmpeg6-devel alsa-lib-devel
speex-devel libusbmuxd-devel libplist-devel gtk+3-devel
libayatana-appindicator-devel"
depends="v4l2loopback"
From 45deb2743fb7a4fad775205e902818052a4aea6b Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:47 -0400
Subject: [PATCH 29/93] ffms2: revbump for ffmpeg6
---
srcpkgs/ffms2/patches/ffmpeg5.patch | 424 ++++++++++++++++++++++++++++
srcpkgs/ffms2/template | 4 +-
2 files changed, 426 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/ffms2/patches/ffmpeg5.patch
diff --git a/srcpkgs/ffms2/patches/ffmpeg5.patch b/srcpkgs/ffms2/patches/ffmpeg5.patch
new file mode 100644
index 00000000000000..1479fabcafcb4e
--- /dev/null
+++ b/srcpkgs/ffms2/patches/ffmpeg5.patch
@@ -0,0 +1,424 @@
+From 45673149e9a2f5586855ad472e3059084eaa36b1 Mon Sep 17 00:00:00 2001
+From: Derek Buitenhuis <derek.buitenhuis@gmail.com>
+Date: Tue, 4 May 2021 14:41:21 +0100
+Subject: [PATCH] Use auto for AVCodec
+
+The geniuses over at FFmpeg decided to constify this API, so old
+versions of the library will return AVCodec *, while new versions
+of the libary will return const AVCodec *, which, in C++, are not
+OK to convert between.
+
+Rather than use some macro hell in ffmscompat.h, we can work around
+this by using auto.
+
+Gross.
+
+Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
+---
+ src/core/audiosource.cpp | 2 +-
+ src/core/indexing.cpp | 6 +++---
+ src/core/videosource.cpp | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/core/audiosource.cpp b/src/core/audiosource.cpp
+index e4ce97c..ac09666 100644
+--- a/src/core/audiosource.cpp
++++ b/src/core/audiosource.cpp
+@@ -469,7 +469,7 @@ void FFMS_AudioSource::OpenFile() {
+
+ LAVFOpenFile(SourceFile.c_str(), FormatContext, TrackNumber);
+
+- AVCodec *Codec = avcodec_find_decoder(FormatContext->streams[TrackNumber]->codecpar->codec_id);
++ auto *Codec = avcodec_find_decoder(FormatContext->streams[TrackNumber]->codecpar->codec_id);
+ if (Codec == nullptr)
+ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC,
+ "Audio codec not found");
+diff --git a/src/core/indexing.cpp b/src/core/indexing.cpp
+index e547c5a..59fb4e8 100644
+--- a/src/core/indexing.cpp
++++ b/src/core/indexing.cpp
+@@ -384,7 +384,7 @@ FFMS_TrackType FFMS_Indexer::GetTrackType(int Track) {
+ }
+
+ const char *FFMS_Indexer::GetTrackCodec(int Track) {
+- AVCodec *codec = avcodec_find_decoder(FormatContext->streams[Track]->codecpar->codec_id);
++ auto *codec = avcodec_find_decoder(FormatContext->streams[Track]->codecpar->codec_id);
+ return codec ? codec->name : nullptr;
+ }
+
+@@ -402,7 +402,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ UseDTS);
+
+ if (IndexMask.count(i) && FormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
+- AVCodec *VideoCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id);
++ auto *VideoCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id);
+ if (!VideoCodec) {
+ FormatContext->streams[i]->discard = AVDISCARD_ALL;
+ IndexMask.erase(i);
+@@ -433,7 +433,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ IndexMask.insert(i);
+ }
+ } else if (IndexMask.count(i) && FormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
+- AVCodec *AudioCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id);
++ auto *AudioCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id);
+ if (AudioCodec == nullptr)
+ throw FFMS_Exception(FFMS_ERROR_CODEC, FFMS_ERROR_UNSUPPORTED,
+ "Audio codec not found");
+diff --git a/src/core/videosource.cpp b/src/core/videosource.cpp
+index b889970..8956c22 100644
+--- a/src/core/videosource.cpp
++++ b/src/core/videosource.cpp
+@@ -171,7 +171,7 @@ FFMS_VideoSource::FFMS_VideoSource(const char *SourceFile, FFMS_Index &Index, in
+
+ LAVFOpenFile(SourceFile, FormatContext, VideoTrack);
+
+- AVCodec *Codec = avcodec_find_decoder(FormatContext->streams[VideoTrack]->codecpar->codec_id);
++ auto *Codec = avcodec_find_decoder(FormatContext->streams[VideoTrack]->codecpar->codec_id);
+ if (Codec == nullptr)
+ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC,
+ "Video codec not found");
+--
+2.40.0
+
+From 96cbf38ea9381829a1314f432a2c60495dcefaad Mon Sep 17 00:00:00 2001
+From: Derek Buitenhuis <derek.buitenhuis@gmail.com>
+Date: Tue, 4 May 2021 14:12:41 +0100
+Subject: [PATCH] all: Update AVPacket API usage
+
+AVPackets must all be on the heap now, since it is no longer
+part of the libav* ABI.
+
+Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
+---
+ src/core/audiosource.cpp | 16 ++++++----
+ src/core/indexing.cpp | 63 ++++++++++++++++++++++------------------
+ src/core/indexing.h | 4 +--
+ src/core/utils.cpp | 6 ----
+ src/core/utils.h | 1 -
+ src/core/videosource.cpp | 30 ++++++++++---------
+ 6 files changed, 64 insertions(+), 56 deletions(-)
+
+diff --git a/src/core/audiosource.cpp b/src/core/audiosource.cpp
+index 37cf9ae..e4ce97c 100644
+--- a/src/core/audiosource.cpp
++++ b/src/core/audiosource.cpp
+@@ -285,10 +285,15 @@ FFMS_AudioSource::AudioBlock *FFMS_AudioSource::CacheBlock(CacheIterator &pos) {
+ int FFMS_AudioSource::DecodeNextBlock(CacheIterator *pos) {
+ CurrentFrame = &Frames[PacketNumber];
+
+- AVPacket Packet;
+- if (!ReadPacket(&Packet))
++ AVPacket *Packet = av_packet_alloc();
++ if (!Packet)
++ throw FFMS_Exception(FFMS_ERROR_PARSER, FFMS_ERROR_ALLOCATION_FAILED,
++ "Could not allocate packet.");
++ if (!ReadPacket(Packet)) {
++ av_packet_free(&Packet);
+ throw FFMS_Exception(FFMS_ERROR_PARSER, FFMS_ERROR_UNKNOWN,
+ "ReadPacket unexpectedly failed to read a packet");
++ }
+
+ // ReadPacket may have changed the packet number
+ CurrentFrame = &Frames[PacketNumber];
+@@ -297,8 +302,9 @@ int FFMS_AudioSource::DecodeNextBlock(CacheIterator *pos) {
+ int NumberOfSamples = 0;
+ AudioBlock *CachedBlock = nullptr;
+
+- int Ret = avcodec_send_packet(CodecContext, &Packet);
+- av_packet_unref(&Packet);
++ int Ret = avcodec_send_packet(CodecContext, Packet);
++ av_packet_unref(Packet);
++ av_packet_free(&Packet);
+
+ av_frame_unref(DecodeFrame);
+ Ret = avcodec_receive_frame(CodecContext, DecodeFrame);
+@@ -513,8 +519,6 @@ void FFMS_AudioSource::Seek() {
+ }
+
+ bool FFMS_AudioSource::ReadPacket(AVPacket *Packet) {
+- InitNullPacket(*Packet);
+-
+ while (av_read_frame(FormatContext, Packet) >= 0) {
+ if (Packet->stream_index == TrackNumber) {
+ // Required because not all audio packets, especially in ogg, have a pts. Use the previous valid packet's pts instead.
+diff --git a/src/core/indexing.cpp b/src/core/indexing.cpp
+index 23fb95b..e547c5a 100644
+--- a/src/core/indexing.cpp
++++ b/src/core/indexing.cpp
+@@ -320,7 +320,7 @@ void FFMS_Indexer::CheckAudioProperties(int Track, AVCodecContext *Context) {
+ }
+ }
+
+-void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt, int *RepeatPict,
++void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket *pkt, int *RepeatPict,
+ int *FrameType, bool *Invisible, enum AVPictureStructure *LastPicStruct) {
+ if (VideoContext.Parser) {
+ uint8_t *OB;
+@@ -330,8 +330,8 @@ void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt
+ av_parser_parse2(VideoContext.Parser,
+ VideoContext.CodecContext,
+ &OB, &OBSize,
+- pkt.data, pkt.size,
+- pkt.pts, pkt.dts, pkt.pos);
++ pkt->data, pkt->size,
++ pkt->pts, pkt->dts, pkt->pos);
+
+ // H.264 (PAFF) and HEVC may have one field per packet, so we need to track
+ // when we have a full or half frame available, and mark one of them as
+@@ -351,15 +351,15 @@ void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt
+
+ *RepeatPict = VideoContext.Parser->repeat_pict;
+ *FrameType = VideoContext.Parser->pict_type;
+- *Invisible = (IncompleteFrame || VideoContext.Parser->repeat_pict < 0 || (pkt.flags & AV_PKT_FLAG_DISCARD));
++ *Invisible = (IncompleteFrame || VideoContext.Parser->repeat_pict < 0 || (pkt->flags & AV_PKT_FLAG_DISCARD));
+ } else {
+- *Invisible = !!(pkt.flags & AV_PKT_FLAG_DISCARD);
++ *Invisible = !!(pkt->flags & AV_PKT_FLAG_DISCARD);
+ }
+
+ if (VideoContext.CodecContext->codec_id == AV_CODEC_ID_VP8)
+- ParseVP8(pkt.data[0], Invisible, FrameType);
++ ParseVP8(pkt->data[0], Invisible, FrameType);
+ else if (VideoContext.CodecContext->codec_id == AV_CODEC_ID_VP9)
+- ParseVP9(pkt.data[0], Invisible, FrameType);
++ ParseVP9(pkt->data[0], Invisible, FrameType);
+ }
+
+ void FFMS_Indexer::Free() {
+@@ -458,32 +458,36 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ }
+ }
+
+- AVPacket Packet;
+- InitNullPacket(Packet);
++ AVPacket *Packet = av_packet_alloc();
++ if (!Packet)
++ throw FFMS_Exception(FFMS_ERROR_CODEC, FFMS_ERROR_ALLOCATION_FAILED,
++ "Could not allocate packet.");
+ std::vector<int64_t> LastValidTS(FormatContext->nb_streams, AV_NOPTS_VALUE);
+
+ int64_t filesize = avio_size(FormatContext->pb);
+ enum AVPictureStructure LastPicStruct = AV_PICTURE_STRUCTURE_UNKNOWN;
+- while (av_read_frame(FormatContext, &Packet) >= 0) {
++ while (av_read_frame(FormatContext, Packet) >= 0) {
+ // Update progress
+ // FormatContext->pb can apparently be NULL when opening images.
+ if (IC && FormatContext->pb) {
+- if ((*IC)(FormatContext->pb->pos, filesize, ICPrivate))
++ if ((*IC)(FormatContext->pb->pos, filesize, ICPrivate)) {
++ av_packet_free(&Packet);
+ throw FFMS_Exception(FFMS_ERROR_CANCELLED, FFMS_ERROR_USER,
+ "Cancelled by user");
++ }
+ }
+- if (!IndexMask.count(Packet.stream_index)) {
+- av_packet_unref(&Packet);
++ if (!IndexMask.count(Packet->stream_index)) {
++ av_packet_unref(Packet);
+ continue;
+ }
+
+- int Track = Packet.stream_index;
++ int Track = Packet->stream_index;
+ FFMS_Track &TrackInfo = (*TrackIndices)[Track];
+- bool KeyFrame = !!(Packet.flags & AV_PKT_FLAG_KEY);
++ bool KeyFrame = !!(Packet->flags & AV_PKT_FLAG_KEY);
+ ReadTS(Packet, LastValidTS[Track], (*TrackIndices)[Track].UseDTS);
+
+ if (FormatContext->streams[Track]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
+- int64_t PTS = TrackInfo.UseDTS ? Packet.dts : Packet.pts;
++ int64_t PTS = TrackInfo.UseDTS ? Packet->dts : Packet->pts;
+ if (PTS == AV_NOPTS_VALUE) {
+ // VPx alt-refs are output as packets which lack timestmps or durations, since
+ // they are invisible. Currently, the timestamp mangling code in libavformat
+@@ -495,9 +499,11 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ // FFMS2 currently sorts packets by PTS, which will break decoding, otherwise.
+ bool HasAltRefs = (FormatContext->streams[Track]->codecpar->codec_id == AV_CODEC_ID_VP8 ||
+ FormatContext->streams[Track]->codecpar->codec_id == AV_CODEC_ID_VP9);
+- if (Packet.duration == 0 && !HasAltRefs)
++ if (Packet->duration == 0 && !HasAltRefs) {
++ av_packet_free(&Packet);
+ throw FFMS_Exception(FFMS_ERROR_INDEXING, FFMS_ERROR_PARSER,
+ "Invalid packet pts, dts, and duration");
++ }
+
+ if (TrackInfo.empty())
+ PTS = 0;
+@@ -513,7 +519,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ ParseVideoPacket(AVContexts[Track], Packet, &RepeatPict, &FrameType, &Invisible, &LastPicStruct);
+
+ TrackInfo.AddVideoFrame(PTS, RepeatPict, KeyFrame,
+- FrameType, Packet.pos, Invisible);
++ FrameType, Packet->pos, Invisible);
+ } else if (FormatContext->streams[Track]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
+ // For video seeking timestamps are used only if all packets have
+ // timestamps, while for audio they're used if any have timestamps,
+@@ -522,28 +528,29 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ TrackInfo.HasTS = true;
+
+ int64_t StartSample = AVContexts[Track].CurrentSample;
+- uint32_t SampleCount = IndexAudioPacket(Track, &Packet, AVContexts[Track], *TrackIndices);
++ uint32_t SampleCount = IndexAudioPacket(Track, Packet, AVContexts[Track], *TrackIndices);
+ TrackInfo.SampleRate = AVContexts[Track].CodecContext->sample_rate;
+
+ TrackInfo.AddAudioFrame(LastValidTS[Track],
+- StartSample, SampleCount, KeyFrame, Packet.pos, Packet.flags & AV_PKT_FLAG_DISCARD);
++ StartSample, SampleCount, KeyFrame, Packet->pos, Packet->flags & AV_PKT_FLAG_DISCARD);
+ }
+
+- if (!(Packet.flags & AV_PKT_FLAG_DISCARD))
+- TrackInfo.LastDuration = Packet.duration;
++ if (!(Packet->flags & AV_PKT_FLAG_DISCARD))
++ TrackInfo.LastDuration = Packet->duration;
+
+- av_packet_unref(&Packet);
++ av_packet_unref(Packet);
+ }
++ av_packet_free(&Packet);
+
+ TrackIndices->Finalize(AVContexts, FormatContext->iformat->name);
+ return TrackIndices.release();
+ }
+
+-void FFMS_Indexer::ReadTS(const AVPacket &Packet, int64_t &TS, bool &UseDTS) {
+- if (!UseDTS && Packet.pts != AV_NOPTS_VALUE)
+- TS = Packet.pts;
++void FFMS_Indexer::ReadTS(const AVPacket *Packet, int64_t &TS, bool &UseDTS) {
++ if (!UseDTS && Packet->pts != AV_NOPTS_VALUE)
++ TS = Packet->pts;
+ if (TS == AV_NOPTS_VALUE)
+ UseDTS = true;
+- if (UseDTS && Packet.dts != AV_NOPTS_VALUE)
+- TS = Packet.dts;
++ if (UseDTS && Packet->dts != AV_NOPTS_VALUE)
++ TS = Packet->dts;
+ }
+diff --git a/src/core/indexing.h b/src/core/indexing.h
+index 3cfc3c3..5c06868 100644
+--- a/src/core/indexing.h
++++ b/src/core/indexing.h
+@@ -80,10 +80,10 @@ private:
+ int64_t Filesize;
+ uint8_t Digest[20];
+
+- void ReadTS(const AVPacket &Packet, int64_t &TS, bool &UseDTS);
++ void ReadTS(const AVPacket *Packet, int64_t &TS, bool &UseDTS);
+ void CheckAudioProperties(int Track, AVCodecContext *Context);
+ uint32_t IndexAudioPacket(int Track, AVPacket *Packet, SharedAVContext &Context, FFMS_Index &TrackIndices);
+- void ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt, int *RepeatPict, int *FrameType, bool *Invisible, enum AVPictureStructure *LastPicStruct);
++ void ParseVideoPacket(SharedAVContext &VideoContext, AVPacket *pkt, int *RepeatPict, int *FrameType, bool *Invisible, enum AVPictureStructure *LastPicStruct);
+ void Free();
+ public:
+ FFMS_Indexer(const char *Filename);
+diff --git a/src/core/utils.cpp b/src/core/utils.cpp
+index ce67533..8a2e997 100644
+--- a/src/core/utils.cpp
++++ b/src/core/utils.cpp
+@@ -62,12 +62,6 @@ void ClearErrorInfo(FFMS_ErrorInfo *ErrorInfo) {
+ }
+ }
+
+-void InitNullPacket(AVPacket &pkt) {
+- av_init_packet(&pkt);
+- pkt.data = nullptr;
+- pkt.size = 0;
+-}
+-
+ void FillAP(FFMS_AudioProperties &AP, AVCodecContext *CTX, FFMS_Track &Frames) {
+ AP.SampleFormat = static_cast<FFMS_SampleFormat>(av_get_packed_sample_fmt(CTX->sample_fmt));
+ AP.BitsPerSample = av_get_bytes_per_sample(CTX->sample_fmt) * 8;
+diff --git a/src/core/utils.h b/src/core/utils.h
+index 9819dc7..003ab79 100644
+--- a/src/core/utils.h
++++ b/src/core/utils.h
+@@ -58,7 +58,6 @@ std::unique_ptr<T> make_unique(Args&&... args) {
+ }
+
+ void ClearErrorInfo(FFMS_ErrorInfo *ErrorInfo);
+-void InitNullPacket(AVPacket &pkt);
+ void FillAP(FFMS_AudioProperties &AP, AVCodecContext *CTX, FFMS_Track &Frames);
+
+ void LAVFOpenFile(const char *SourceFile, AVFormatContext *&FormatContext, int Track);
+diff --git a/src/core/videosource.cpp b/src/core/videosource.cpp
+index 06bd161..b889970 100644
+--- a/src/core/videosource.cpp
++++ b/src/core/videosource.cpp
+@@ -673,30 +673,34 @@ void FFMS_VideoSource::DecodeNextFrame(int64_t &AStartTime, int64_t &Pos) {
+ if (HasPendingDelayedFrames())
+ return;
+
+- AVPacket Packet;
+- InitNullPacket(Packet);
+-
+- while (ReadFrame(&Packet) >= 0) {
+- if (Packet.stream_index != VideoTrack) {
+- av_packet_unref(&Packet);
++ AVPacket *Packet = av_packet_alloc();
++ if (!Packet)
++ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_ALLOCATION_FAILED,
++ "Could not allocate packet.");
++
++ while (ReadFrame(Packet) >= 0) {
++ if (Packet->stream_index != VideoTrack) {
++ av_packet_unref(Packet);
+ continue;
+ }
+
+ if (AStartTime < 0)
+- AStartTime = Frames.UseDTS ? Packet.dts : Packet.pts;
++ AStartTime = Frames.UseDTS ? Packet->dts : Packet->pts;
+
+ if (Pos < 0)
+- Pos = Packet.pos;
++ Pos = Packet->pos;
+
+- bool FrameFinished = DecodePacket(&Packet);
+- av_packet_unref(&Packet);
+- if (FrameFinished)
++ bool FrameFinished = DecodePacket(Packet);
++ av_packet_unref(Packet);
++ if (FrameFinished) {
++ av_packet_free(&Packet);
+ return;
++ }
+ }
+
+ // Flush final frames
+- InitNullPacket(Packet);
+- DecodePacket(&Packet);
++ DecodePacket(Packet);
++ av_packet_free(&Packet);
+ }
+
+ bool FFMS_VideoSource::SeekTo(int n, int SeekOffset) {
+--
+2.40.0
+
+From bf9e03e9e08534c024e5a744a6437c4aac160201 Mon Sep 17 00:00:00 2001
+From: Derek Buitenhuis <derek.buitenhuis@gmail.com>
+Date: Tue, 4 May 2021 14:20:47 +0100
+Subject: [PATCH 2/3] configure: Remove deprecated API use
+
+Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b35ef80bc..d19714d0f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -102,10 +102,10 @@ CFLAGS="$_CFLAGS $FFMPEG_CFLAGS"
+
+ AC_DEFUN([TEST_FFMPEG],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+- #include <libavcodec/avcodec.h>
++ #include <libavformat/avformat.h>
+ #include <libswscale/swscale.h>
+ ]],[[
+- avcodec_register_all();
++ avformat_network_init();
+ swscale_version();
+ ]])], [eval $1=yes], [eval $1=no])
+ ])
+
diff --git a/srcpkgs/ffms2/template b/srcpkgs/ffms2/template
index 365f64d10cbabf..42f402ce680151 100644
--- a/srcpkgs/ffms2/template
+++ b/srcpkgs/ffms2/template
@@ -1,11 +1,11 @@
# Template file for 'ffms2'
pkgname=ffms2
version=2.40
-revision=1
+revision=2
build_style=gnu-configure
configure_args="--enable-shared --disable-static"
hostmakedepends="pkg-config autoconf automake libtool"
-makedepends="ffmpeg-devel zlib-devel"
+makedepends="ffmpeg6-devel zlib-devel"
short_desc="Libav/ffmpeg based frames server"
maintainer="Orphaned <orphan@voidlinux.org>"
license="MIT, GPL-3.0-or-later"
From 5f549c1460fa9192eebfe8e90b58295e731a7e6c Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:47 -0400
Subject: [PATCH 30/93] freerdp: revbump for ffmpeg6
---
srcpkgs/freerdp/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/freerdp/template b/srcpkgs/freerdp/template
index f6ca3980c4c145..57c330ba77469b 100644
--- a/srcpkgs/freerdp/template
+++ b/srcpkgs/freerdp/template
@@ -1,7 +1,7 @@
# Template file for 'freerdp'
pkgname=freerdp
version=2.11.4
-revision=2
+revision=3
build_style=cmake
configure_args="-DWITH_ALSA=ON -DWITH_CUPS=OFF -DWITH_FFMPEG=ON
-DWITH_GSTREAMER_0_10=OFF -DWITH_GSTREAMER_1_0=OFF -DWITH_JPEG=ON
@@ -10,7 +10,7 @@ configure_args="-DWITH_ALSA=ON -DWITH_CUPS=OFF -DWITH_FFMPEG=ON
-DWITH_XKBFILE=ON -DWITH_XRENDER=ON -DWITH_XV=ON -DWITH_SERVER=ON
-DWAYLAND_SCANNER=/usr/bin/wayland-scanner -DWITH_CAIRO=ON"
hostmakedepends="pkg-config xmlto wayland-devel"
-makedepends="alsa-lib-devel ffmpeg-devel glib-devel libusb-devel
+makedepends="alsa-lib-devel ffmpeg6-devel glib-devel libusb-devel
libXcursor-devel libXinerama-devel libXrandr-devel libXv-devel
libjpeg-turbo-devel openssl-devel libxkbfile-devel pulseaudio-devel
libxkbcommon-devel wayland-devel cairo-devel libXdamage-devel"
From 9b3ff84a3750a7bddf952167bfe04f2a9eb018e0 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:47 -0400
Subject: [PATCH 31/93] gerbera: revbump for ffmpeg6
---
srcpkgs/gerbera/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gerbera/template b/srcpkgs/gerbera/template
index ae14f35c767c03..5e2da9c98da86b 100644
--- a/srcpkgs/gerbera/template
+++ b/srcpkgs/gerbera/template
@@ -1,11 +1,11 @@
# Template file for 'gerbera'
pkgname=gerbera
version=1.12.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DWITH_SYSTEMD=0 -DWITH_AVCODEC=1"
hostmakedepends="pkg-config"
-makedepends="duktape-devel expat-devel ffmpeg-devel file-devel libcurl-devel
+makedepends="duktape-devel expat-devel ffmpeg6-devel file-devel libcurl-devel
libexif-devel libupnp-devel libuuid-devel sqlite-devel taglib-devel
fmt-devel spdlog pugixml-devel libebml-devel libmatroska-devel"
short_desc="UPnP Media Server based on MediaTomb"
From ec07e3ff2a73c311ff2730ee3f006494a3e20289 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:47 -0400
Subject: [PATCH 32/93] goldendict: revbump for ffmpeg6
---
srcpkgs/goldendict/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/goldendict/template b/srcpkgs/goldendict/template
index f4a05759f693d3..400a0e44f2a9de 100644
--- a/srcpkgs/goldendict/template
+++ b/srcpkgs/goldendict/template
@@ -1,16 +1,16 @@
# Template file for 'goldendict'
pkgname=goldendict
version=1.5.0
-revision=1
+revision=2
build_style=qmake
configure_args="CONFIG+=zim_support goldendict.pro"
hostmakedepends="qt5-qmake pkg-config qt5-host-tools"
makedepends="tiff-devel qt5-devel libvorbis-devel zlib-devel
libXtst-devel hunspell-devel qt5-tools-devel qt5-declarative-devel
qt5-webkit-devel lzo-devel bzip2-devel libao-devel qt5-svg-devel
- libeb-devel qt5-x11extras-devel ffmpeg-devel liblzma-devel
+ libeb-devel qt5-x11extras-devel ffmpeg6-devel liblzma-devel
qt5-multimedia-devel"
-short_desc="A feature-rich dictionary lookup program"
+short_desc="Feature-rich dictionary lookup program"
maintainer="John <me@johnnynator.dev>"
license="GPL-3.0-or-later"
homepage="http://goldendict.org/"
From 2534a91d63281f2b251ce19ee0d7a3981ec9e728 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:47 -0400
Subject: [PATCH 33/93] gst-libav: revbump for ffmpeg6
---
srcpkgs/gst-libav/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gst-libav/template b/srcpkgs/gst-libav/template
index 45ca47c48b60b8..28bfe738af7d71 100644
--- a/srcpkgs/gst-libav/template
+++ b/srcpkgs/gst-libav/template
@@ -1,10 +1,10 @@
# Template file for 'gst-libav'
pkgname=gst-libav
version=1.24.4
-revision=1
+revision=2
build_style=meson
hostmakedepends="pkg-config yasm"
-makedepends="orc-devel gst-plugins-base1-devel ffmpeg-devel"
+makedepends="orc-devel gst-plugins-base1-devel ffmpeg6-devel"
depends="orc>=0.4.18 gst-plugins-base1>=${version}"
short_desc="GStreamer libav plugin (1.x)"
maintainer="Orphaned <orphan@voidlinux.org>"
From 80ca811eb38d2fdd6ed68923915e672278838723 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Sat, 3 Feb 2024 01:52:46 -0500
Subject: [PATCH 34/93] gst-plugins-bad1: revbump for ffmpeg6
---
srcpkgs/gst-plugins-bad1/template | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template
index 5fc213e75b829c..345425785d435d 100644
--- a/srcpkgs/gst-plugins-bad1/template
+++ b/srcpkgs/gst-plugins-bad1/template
@@ -1,7 +1,7 @@
# Template file for 'gst-plugins-bad1'
pkgname=gst-plugins-bad1
version=1.24.4
-revision=1
+revision=2
build_helper="gir"
build_style=meson
configure_args="-Dpackage-origin=https://voidlinux.org -Ddoc=disabled
@@ -26,8 +26,8 @@ makedepends="alsa-lib-devel celt-devel openssl-devel exempi-devel
libgudev-devel libusb-devel libaom-devel libbs2b-devel chromaprint-devel
fdk-aac-devel flite-devel fluidsynth-devel liblrdf-devel ladspa-sdk
lilv-devel lv2 libopenjpeg2-devel sbc-devel spandsp-devel vulkan-loader-devel
- webrtc-audio-processing-devel libzbar-devel ffmpeg-devel srt-devel libva-devel
- $(vopt_if gme libgme-devel)"
+ webrtc-audio-processing-devel libzbar-devel ffmpeg6-devel
+ srt-devel libva-devel $(vopt_if onevpl oneVPL-devel) $(vopt_if gme libgme-devel)"
depends="gst-plugins-base1>=${version}"
short_desc="GStreamer plugins from the bad set (v1.x)"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -37,12 +37,13 @@ changelog="https://gstreamer.freedesktop.org/releases/${version%.*}/#${version}"
distfiles="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${version}.tar.xz"
checksum=260bd0a463b4faff9a42f41e5e028f787f10a92b779af8959aec64586f546bd3
-build_options="gir gme wayland"
+build_options="gir gme onevpl wayland"
build_options_default="gir wayland"
desc_option_gme="Build with Game Music Emulator support"
case "$XBPS_TARGET_MACHINE" in
mips*) ;; # libgme cannot be built for mips*
+ x86_64*) build_options_default+=" gme onevpl" ;; # onevpl only supports 64bit
*) build_options_default+=" gme" ;;
esac
From cbf9ad9dbe63cecc6f708cee33b19c367f4ba70f Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:47 -0400
Subject: [PATCH 35/93] gst-rtsp-server: revbump for ffmpeg6
---
srcpkgs/gst-rtsp-server/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/gst-rtsp-server/template b/srcpkgs/gst-rtsp-server/template
index b6a74181a4062d..806d336205e4e4 100644
--- a/srcpkgs/gst-rtsp-server/template
+++ b/srcpkgs/gst-rtsp-server/template
@@ -1,12 +1,12 @@
# Template file for 'gst-rtsp-server'
pkgname=gst-rtsp-server
version=1.24.4
-revision=1
+revision=2
build_style=meson
build_helper=gir
configure_args="-Dintrospection=enabled"
hostmakedepends="pkg-config python3"
-makedepends="glib-devel gst-plugins-bad1-devel gst-plugins-good1 ffmpeg-devel
+makedepends="glib-devel gst-plugins-bad1-devel gst-plugins-good1 ffmpeg6-devel
python3-gobject-devel"
short_desc="GStreamer multimedia graph framework - rtsp server"
maintainer="1is7ac3 <isaac.qa13@gmail.com>"
From a162f023cf0dbe9fa8639fcbf9c50f3ce113b3b2 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:48 -0400
Subject: [PATCH 36/93] hedgewars: revbump for ffmpeg6
---
.../0001-Add-support-for-ffmpeg-6.0.patch | 459 ++++++++++++++++++
srcpkgs/hedgewars/template | 4 +-
2 files changed, 461 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/hedgewars/patches/0001-Add-support-for-ffmpeg-6.0.patch
diff --git a/srcpkgs/hedgewars/patches/0001-Add-support-for-ffmpeg-6.0.patch b/srcpkgs/hedgewars/patches/0001-Add-support-for-ffmpeg-6.0.patch
new file mode 100644
index 00000000000000..228f329fc3802e
--- /dev/null
+++ b/srcpkgs/hedgewars/patches/0001-Add-support-for-ffmpeg-6.0.patch
@@ -0,0 +1,459 @@
+From 71691fad8654031328f4af077fc32aaf29cdb7d0 Mon Sep 17 00:00:00 2001
+From: Pekka Ristola <pekkarr@protonmail.com>
+Date: Tue, 9 May 2023 20:11:47 +0300
+Subject: [PATCH] Add support for ffmpeg 6.0
+
+- Use the new send_frame/receive_packet API for encoding
+- Use the new channel layout API for audio
+- Fix audio recording
+ - Copy codec parameters to the stream parameters
+ - Set correct pts for audio frames
+- Read audio samples from file directly to the refcounted AVFrame buffer instead of the `g_pSamples` buffer
+- Use global AVPackets allocated with `av_packet_alloc`
+- Stop trying to write more audio frames when `WriteAudioFrame` fails with a negative error code
+- Fix segfault with `g_pContainer->url`. The field has to be allocated with `av_malloc` before writing to it. It's set to `NULL` by default.
+- Properly free allocations with `avcodec_free_context` and `avformat_free_context`
+---
+ hedgewars/avwrapper/avwrapper.c | 234 +++++++++++++++++++++++++++-----
+ 1 file changed, 203 insertions(+), 31 deletions(-)
+
+diff --git a/hedgewars/avwrapper/avwrapper.c b/hedgewars/avwrapper/avwrapper.c
+index 6c0fe739b..3daeb07b7 100644
+--- a/hedgewars/avwrapper/avwrapper.c
++++ b/hedgewars/avwrapper/avwrapper.c
+@@ -42,15 +42,19 @@
+ #define UNUSED(x) (void)(x)
+
+ static AVFormatContext* g_pContainer;
+-static AVOutputFormat* g_pFormat;
++static const AVOutputFormat* g_pFormat;
+ static AVStream* g_pAStream;
+ static AVStream* g_pVStream;
+ static AVFrame* g_pAFrame;
+ static AVFrame* g_pVFrame;
+-static AVCodec* g_pACodec;
+-static AVCodec* g_pVCodec;
++static const AVCodec* g_pACodec;
++static const AVCodec* g_pVCodec;
+ static AVCodecContext* g_pAudio;
+ static AVCodecContext* g_pVideo;
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++static AVPacket* g_pAPacket;
++static AVPacket* g_pVPacket;
++#endif
+
+ static int g_Width, g_Height;
+ static uint32_t g_Frequency, g_Channels;
+@@ -58,8 +62,13 @@ static int g_VQuality;
+ static AVRational g_Framerate;
+
+ static FILE* g_pSoundFile;
++#if LIBAVUTIL_VERSION_MAJOR < 53
+ static int16_t* g_pSamples;
++#endif
+ static int g_NumSamples;
++#if LIBAVCODEC_VERSION_MAJOR >= 53
++static int64_t g_NextAudioPts;
++#endif
+
+
+ // compatibility section
+@@ -93,6 +102,8 @@ static void rescale_ts(AVPacket *pkt, AVRational ctb, AVRational stb)
+ if (pkt->duration > 0)
+ pkt->duration = av_rescale_q(pkt->duration, ctb, stb);
+ }
++
++#define avcodec_free_context(ctx) do { avcodec_close(*ctx); av_freep(ctx); } while (0)
+ #endif
+
+ #ifndef AV_CODEC_CAP_DELAY
+@@ -165,8 +176,42 @@ static void Log(const char* pFmt, ...)
+ AddFileLogRaw(Buffer);
+ }
+
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++static int EncodeAndWriteFrame(
++ const AVStream* pStream,
++ AVCodecContext* pCodecContext,
++ const AVFrame* pFrame,
++ AVPacket* pPacket)
++{
++ int ret;
++
++ ret = avcodec_send_frame(pCodecContext, pFrame);
++ if (ret < 0)
++ return FatalError("avcodec_send_frame failed: %d", ret);
++ while (1)
++ {
++ ret = avcodec_receive_packet(pCodecContext, pPacket);
++ if (ret == AVERROR(EAGAIN))
++ return 1;
++ else if (ret == AVERROR_EOF)
++ return 0;
++ else if (ret < 0)
++ return FatalError("avcodec_receive_packet failed: %d", ret);
++
++ av_packet_rescale_ts(pPacket, pCodecContext->time_base, pStream->time_base);
++
++ // Write the compressed frame to the media file.
++ pPacket->stream_index = pStream->index;
++ ret = av_interleaved_write_frame(g_pContainer, pPacket);
++ if (ret != 0)
++ return FatalError("Error while writing frame: %d", ret);
++ }
++}
++#endif
++
+ static void AddAudioStream()
+ {
++ int ret;
+ g_pAStream = avformat_new_stream(g_pContainer, g_pACodec);
+ if(!g_pAStream)
+ {
+@@ -176,20 +221,44 @@ static void AddAudioStream()
+ g_pAStream->id = 1;
+
+ #if LIBAVCODEC_VERSION_MAJOR >= 59
+- const AVCodec *audio_st_codec = avcodec_find_decoder(g_pAStream->codecpar->codec_id);
+- g_pAudio = avcodec_alloc_context3(audio_st_codec);
+- avcodec_parameters_to_context(g_pAudio, g_pAStream->codecpar);
++ g_pAudio = avcodec_alloc_context3(g_pACodec);
+ #else
+ g_pAudio = g_pAStream->codec;
+-#endif
+
+ avcodec_get_context_defaults3(g_pAudio, g_pACodec);
+ g_pAudio->codec_id = g_pACodec->id;
++#endif
+
+ // put parameters
+ g_pAudio->sample_fmt = AV_SAMPLE_FMT_S16;
+ g_pAudio->sample_rate = g_Frequency;
++#if LIBAVCODEC_VERSION_MAJOR >= 60
++ const AVChannelLayout* pChLayout = g_pACodec->ch_layouts;
++ if (pChLayout)
++ {
++ for (; pChLayout->nb_channels; pChLayout++)
++ {
++ if (pChLayout->nb_channels == g_Channels)
++ {
++ ret = av_channel_layout_copy(&g_pAudio->ch_layout, pChLayout);
++ if (ret != 0)
++ {
++ Log("Channel layout copy failed: %d\n", ret);
++ return;
++ }
++ break;
++ }
++ }
++ }
++ if (!g_pAudio->ch_layout.nb_channels)
++ {
++ // no suitable layout found
++ g_pAudio->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
++ g_pAudio->ch_layout.nb_channels = g_Channels;
++ }
++#else
+ g_pAudio->channels = g_Channels;
++#endif
+
+ // set time base as invers of sample rate
+ g_pAudio->time_base.den = g_pAStream->time_base.den = g_Frequency;
+@@ -213,6 +282,15 @@ static void AddAudioStream()
+ return;
+ }
+
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++ ret = avcodec_parameters_from_context(g_pAStream->codecpar, g_pAudio);
++ if (ret < 0)
++ {
++ Log("Could not copy parameters from codec context: %d\n", ret);
++ return;
++ }
++#endif
++
+ #if LIBAVCODEC_VERSION_MAJOR >= 54
+ if (g_pACodec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)
+ #else
+@@ -221,13 +299,46 @@ static void AddAudioStream()
+ g_NumSamples = 4096;
+ else
+ g_NumSamples = g_pAudio->frame_size;
+- g_pSamples = (int16_t*)av_malloc(g_NumSamples*g_Channels*sizeof(int16_t));
+ g_pAFrame = av_frame_alloc();
+ if (!g_pAFrame)
+ {
+ Log("Could not allocate frame\n");
+ return;
+ }
++#if LIBAVUTIL_VERSION_MAJOR >= 53
++#if LIBAVCODEC_VERSION_MAJOR >= 60
++ ret = av_channel_layout_copy(&g_pAFrame->ch_layout, &g_pAudio->ch_layout);
++ if (ret != 0)
++ {
++ Log("Channel layout copy for frame failed: %d\n", ret);
++ return;
++ }
++#else
++ g_pAFrame->channels = g_pAudio->channels;
++#endif
++ g_pAFrame->format = g_pAudio->sample_fmt;
++ g_pAFrame->sample_rate = g_pAudio->sample_rate;
++ g_pAFrame->nb_samples = g_NumSamples;
++ ret = av_frame_get_buffer(g_pAFrame, 1);
++ if (ret < 0)
++ {
++ Log("Failed to allocate frame buffer: %d\n", ret);
++ return;
++ }
++#else
++ g_pSamples = (int16_t*)av_malloc(g_NumSamples*g_Channels*sizeof(int16_t));
++#endif
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++ g_pAPacket = av_packet_alloc();
++ if (!g_pAPacket)
++ {
++ Log("Could not allocate audio packet\n");
++ return;
++ }
++#endif
++#if LIBAVCODEC_VERSION_MAJOR >= 53
++ g_NextAudioPts = 0;
++#endif
+ }
+
+ // returns non-zero if there is more sound, -1 in case of error
+@@ -236,22 +347,46 @@ static int WriteAudioFrame()
+ if (!g_pAStream)
+ return 0;
+
+- AVPacket Packet;
+- av_init_packet(&Packet);
+- Packet.data = NULL;
+- Packet.size = 0;
++ int ret;
++ int16_t* pData;
++#if LIBAVUTIL_VERSION_MAJOR >= 53
++ ret = av_frame_make_writable(g_pAFrame);
++ if (ret < 0)
++ return FatalError("Could not make audio frame writable: %d", ret);
++ pData = (int16_t*) g_pAFrame->data[0];
++#else
++ pData = g_pSamples;
++#endif
+
+- int NumSamples = fread(g_pSamples, 2*g_Channels, g_NumSamples, g_pSoundFile);
++ int NumSamples = fread(pData, 2*g_Channels, g_NumSamples, g_pSoundFile);
+
+ #if LIBAVCODEC_VERSION_MAJOR >= 53
+ AVFrame* pFrame = NULL;
+ if (NumSamples > 0)
+ {
+ g_pAFrame->nb_samples = NumSamples;
++ g_pAFrame->pts = g_NextAudioPts;
++ g_NextAudioPts += NumSamples;
++#if LIBAVUTIL_VERSION_MAJOR < 53
+ avcodec_fill_audio_frame(g_pAFrame, g_Channels, AV_SAMPLE_FMT_S16,
+- (uint8_t*)g_pSamples, NumSamples*2*g_Channels, 1);
++ (uint8_t*)pData, NumSamples*2*g_Channels, 1);
++#endif
+ pFrame = g_pAFrame;
+ }
++#endif
++
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++ ret = EncodeAndWriteFrame(g_pAStream, g_pAudio, pFrame, g_pAPacket);
++ if (ret < 0)
++ return FatalError("Audio frame processing failed");
++ return ret;
++#else
++ AVPacket Packet;
++ av_init_packet(&Packet);
++ Packet.data = NULL;
++ Packet.size = 0;
++
++#if LIBAVCODEC_VERSION_MAJOR >= 53
+ // when NumSamples == 0 we still need to call encode_audio2 to flush
+ int got_packet;
+ if (avcodec_encode_audio2(g_pAudio, &Packet, pFrame, &got_packet) != 0)
+@@ -266,7 +401,7 @@ static int WriteAudioFrame()
+ int BufferSize = OUTBUFFER_SIZE;
+ if (g_pAudio->frame_size == 0)
+ BufferSize = NumSamples*g_Channels*2;
+- Packet.size = avcodec_encode_audio(g_pAudio, g_OutBuffer, BufferSize, g_pSamples);
++ Packet.size = avcodec_encode_audio(g_pAudio, g_OutBuffer, BufferSize, pData);
+ if (Packet.size == 0)
+ return 1;
+ if (g_pAudio->coded_frame && g_pAudio->coded_frame->pts != AV_NOPTS_VALUE)
+@@ -280,25 +415,25 @@ static int WriteAudioFrame()
+ if (av_interleaved_write_frame(g_pContainer, &Packet) != 0)
+ return FatalError("Error while writing audio frame");
+ return 1;
++#endif
+ }
+
+ // add a video output stream
+ static int AddVideoStream()
+ {
++ int ret;
+ g_pVStream = avformat_new_stream(g_pContainer, g_pVCodec);
+ if (!g_pVStream)
+ return FatalError("Could not allocate video stream");
+
+ #if LIBAVCODEC_VERSION_MAJOR >= 59
+- const AVCodec *video_st_codec = avcodec_find_decoder(g_pVStream->codecpar->codec_id);
+- g_pVideo = avcodec_alloc_context3(video_st_codec);
+- avcodec_parameters_to_context(g_pVideo, g_pVStream->codecpar);
++ g_pVideo = avcodec_alloc_context3(g_pVCodec);
+ #else
+ g_pVideo = g_pVStream->codec;
+-#endif
+
+ avcodec_get_context_defaults3(g_pVideo, g_pVCodec);
+ g_pVideo->codec_id = g_pVCodec->id;
++#endif
+
+ // put parameters
+ // resolution must be a multiple of two
+@@ -361,6 +496,12 @@ static int AddVideoStream()
+ if (avcodec_open2(g_pVideo, g_pVCodec, NULL) < 0)
+ return FatalError("Could not open video codec %s", g_pVCodec->long_name);
+
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++ ret = avcodec_parameters_from_context(g_pVStream->codecpar, g_pVideo);
++ if (ret < 0)
++ return FatalError("Could not copy parameters from codec context: %d", ret);
++#endif
++
+ g_pVFrame = av_frame_alloc();
+ if (!g_pVFrame)
+ return FatalError("Could not allocate frame");
+@@ -370,6 +511,12 @@ static int AddVideoStream()
+ g_pVFrame->height = g_Height;
+ g_pVFrame->format = AV_PIX_FMT_YUV420P;
+
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++ g_pVPacket = av_packet_alloc();
++ if (!g_pVPacket)
++ return FatalError("Could not allocate packet");
++#endif
++
+ return avcodec_default_get_buffer2(g_pVideo, g_pVFrame, 0);
+ }
+
+@@ -380,6 +527,10 @@ static int WriteFrame(AVFrame* pFrame)
+ // write interleaved audio frame
+ if (g_pAStream)
+ {
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++ if (!g_pAPacket)
++ return FatalError("Error while writing video frame: g_pAPacket does not exist");
++#endif
+ VideoTime = (double)g_pVFrame->pts * g_pVStream->time_base.num/g_pVStream->time_base.den;
+ do
+ {
+@@ -388,7 +539,7 @@ static int WriteFrame(AVFrame* pFrame)
+ AudioTime = (double)g_pAFrame->pts * g_pAStream->time_base.num/g_pAStream->time_base.den;
+ ret = WriteAudioFrame();
+ }
+- while (AudioTime < VideoTime && ret);
++ while (AudioTime < VideoTime && ret > 0);
+ if (ret < 0)
+ return ret;
+ }
+@@ -396,13 +547,18 @@ static int WriteFrame(AVFrame* pFrame)
+ if (!g_pVStream)
+ return 0;
+
++ g_pVFrame->pts++;
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++ ret = EncodeAndWriteFrame(g_pVStream, g_pVideo, pFrame, g_pVPacket);
++ if (ret < 0)
++ return FatalError("Video frame processing failed");
++ return ret;
++#else
+ AVPacket Packet;
+ av_init_packet(&Packet);
+ Packet.data = NULL;
+ Packet.size = 0;
+
+- g_pVFrame->pts++;
+-#if LIBAVCODEC_VERSION_MAJOR < 58
+ if (g_pFormat->flags & AVFMT_RAWPICTURE)
+ {
+ /* raw video case. The API will change slightly in the near
+@@ -417,7 +573,6 @@ static int WriteFrame(AVFrame* pFrame)
+ return 0;
+ }
+ else
+-#endif
+ {
+ #if LIBAVCODEC_VERSION_MAJOR >= 54
+ int got_packet;
+@@ -447,6 +602,7 @@ static int WriteFrame(AVFrame* pFrame)
+
+ return 1;
+ }
++#endif
+ }
+
+ AVWRAP_DECL int AVWrapper_WriteFrame(uint8_t *buf)
+@@ -539,9 +695,13 @@ AVWRAP_DECL int AVWrapper_Init(
+ char ext[16];
+ strncpy(ext, g_pFormat->extensions, 16);
+ ext[15] = 0;
+- ext[strcspn(ext,",")] = 0;
++ size_t extLen = strcspn(ext, ",");
++ ext[extLen] = 0;
+ #if LIBAVCODEC_VERSION_MAJOR >= 59
+- snprintf(g_pContainer->url, sizeof(g_pContainer->url), "%s.%s", pFilename, ext);
++ // pFilename + dot + ext + null byte
++ size_t urlLen = strlen(pFilename) + 1 + extLen + 1;
++ g_pContainer->url = av_malloc(urlLen);
++ snprintf(g_pContainer->url, urlLen, "%s.%s", pFilename, ext);
+ #else
+ snprintf(g_pContainer->filename, sizeof(g_pContainer->filename), "%s.%s", pFilename, ext);
+ #endif
+@@ -636,21 +796,33 @@ AVWRAP_DECL int AVWrapper_Close()
+ // free everything
+ if (g_pVStream)
+ {
+- avcodec_close(g_pVideo);
+- av_free(g_pVideo);
+- av_free(g_pVStream);
++ avcodec_free_context(&g_pVideo);
+ av_frame_free(&g_pVFrame);
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++ av_packet_free(&g_pVPacket);
++#endif
+ }
+ if (g_pAStream)
+ {
+- avcodec_close(g_pAudio);
+- av_free(g_pAudio);
+- av_free(g_pAStream);
++ avcodec_free_context(&g_pAudio);
+ av_frame_free(&g_pAFrame);
++#if LIBAVCODEC_VERSION_MAJOR >= 58
++ av_packet_free(&g_pAPacket);
++#endif
++#if LIBAVUTIL_VERSION_MAJOR < 53
+ av_free(g_pSamples);
++#endif
+ fclose(g_pSoundFile);
+ }
+
++#if LIBAVCODEC_VERSION_MAJOR >= 59
++ avformat_free_context(g_pContainer);
++#else
++ if (g_pVStream)
++ av_free(g_pVStream);
++ if (g_pAStream)
++ av_free(g_pAStream);
+ av_free(g_pContainer);
++#endif
+ return 0;
+ }
+--
+2.45.2
+
diff --git a/srcpkgs/hedgewars/template b/srcpkgs/hedgewars/template
index 8dd0e4252ca8c5..85eb9cdc943db4 100644
--- a/srcpkgs/hedgewars/template
+++ b/srcpkgs/hedgewars/template
@@ -1,13 +1,13 @@
# Template file for 'hedgewars'
pkgname=hedgewars
version=1.0.2
-revision=1
+revision=2
build_style=cmake
configure_args="-DNOSERVER=1 -DDATA_INSTALL_DIR=/usr/share/${pkgname}
-DPHYSFS_SYSTEM=1 -DMINIMAL_FLAGS=1"
make_cmd=make
hostmakedepends="lua51 pkg-config qt5-qmake qt5-host-tools"
-makedepends="ffmpeg-devel lua51-devel physfs-devel qt5-tools-devel SDL2_image-devel
+makedepends="ffmpeg6-devel lua51-devel physfs-devel qt5-tools-devel SDL2_image-devel
SDL2_mixer-devel SDL2_net-devel SDL2_ttf-devel"
depends="libfreeglut"
short_desc="Funny turn-based artillery game, featuring fighting Hedgehogs!"
From c74adf10a0c1a0a933e88680d36825749466a07a Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:48 -0400
Subject: [PATCH 37/93] kid3: revbump for ffmpeg6
---
srcpkgs/kid3/patches/ffmpeg5.patch | 17 +++++++++++++++++
srcpkgs/kid3/template | 2 +-
2 files changed, 18 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/kid3/patches/ffmpeg5.patch
diff --git a/srcpkgs/kid3/patches/ffmpeg5.patch b/srcpkgs/kid3/patches/ffmpeg5.patch
new file mode 100644
index 00000000000000..135fc50e07c9ba
--- /dev/null
+++ b/srcpkgs/kid3/patches/ffmpeg5.patch
@@ -0,0 +1,17 @@
+# https://aur.archlinux.org/cgit/aur.git/diff/ffmpeg5.patch?h=kid3-cli&id=12410a74906612e7efc0ec8fbce739b4a0fef7e7
+diff --git a/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp b/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp
+index e156d424..e12b9abd 100644
+--- a/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp
++++ b/src/plugins/acoustidimport/ffmpegfingerprintdecoder.cpp
+@@ -232,7 +232,11 @@ private:
+ friend class Format;
+ friend class Converter;
+ AVCodecContext* m_ptr;
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59, 0, 0)
+ AVCodec* m_impl;
++#else
++ const AVCodec* m_impl;
++#endif
+ AVFrame* m_frame;
+ bool m_opened;
+ };
diff --git a/srcpkgs/kid3/template b/srcpkgs/kid3/template
index 0b1388ad1f0b85..accb6e29ab69c6 100644
--- a/srcpkgs/kid3/template
+++ b/srcpkgs/kid3/template
@@ -11,7 +11,7 @@ configure_args="-DWITH_APPS='CLI;$(vopt_if KDE KDE Qt)'
hostmakedepends="pkg-config python3 libxslt $(vopt_if KDE extra-cmake-modules)"
makedepends="qt5-declarative-devel qt5-multimedia-devel qt5-tools-devel docbook-xsl
readline-devel $(vopt_if KDE kio-devel) $(vopt_if vorbis libvorbis-devel)
- $(vopt_if mp4 libmp4v2-devel) $(vopt_if chromaprint 'chromaprint-devel ffmpeg-devel')
+ $(vopt_if mp4 libmp4v2-devel) $(vopt_if chromaprint 'chromaprint-devel ffmpeg6-devel')
$(vopt_if mp3 id3lib-devel) $(vopt_if flac libflac-devel) $(vopt_if taglib taglib-devel)"
depends="desktop-file-utils hicolor-icon-theme"
short_desc="MP3, Ogg/Vorbis and FLAC tag editor"
From 567deef481715a37a39b524134a99f265292a7bf Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:48 -0400
Subject: [PATCH 38/93] kpipewire: revbump for ffmpeg6
---
srcpkgs/kpipewire/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/kpipewire/template b/srcpkgs/kpipewire/template
index ea0688cd33df90..291abde20e0727 100644
--- a/srcpkgs/kpipewire/template
+++ b/srcpkgs/kpipewire/template
@@ -1,12 +1,12 @@
# Template file for 'kpipewire'
pkgname=kpipewire
version=6.1.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DKDE_INSTALL_QMLDIR=lib/qt6/qml"
hostmakedepends="extra-cmake-modules gettext qt6-base qt6-tools pkg-config
pipewire qt6-wayland-tools wayland-devel qt6-declarative-host-tools"
-makedepends="ffmpeg-devel kf6-kcoreaddons-devel kf6-kwayland-devel
+makedepends="ffmpeg6-devel kf6-kcoreaddons-devel kf6-kwayland-devel
kf6-ki18n-devel libva-devel libepoxy-devel pipewire-devel qt6-wayland-devel
plasma-wayland-protocols
wayland-devel qt6-declarative-devel qt6-base-private-devel"
From eddd0626c518b87d8b6d002ce7c2f48bece85c52 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:48 -0400
Subject: [PATCH 39/93] libopenal: revbump for ffmpeg6
---
srcpkgs/libopenal/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/libopenal/template b/srcpkgs/libopenal/template
index 88d0f11307d81a..c40570a769427a 100644
--- a/srcpkgs/libopenal/template
+++ b/srcpkgs/libopenal/template
@@ -1,11 +1,11 @@
# Template file for 'libopenal'
pkgname=libopenal
version=1.23.1
-revision=1
+revision=2
build_style=cmake
configure_args="-DALSOFT_EXAMPLES=OFF"
hostmakedepends="pkg-config"
-makedepends="zlib-devel alsa-lib-devel pulseaudio-devel SDL2-devel ffmpeg-devel
+makedepends="zlib-devel alsa-lib-devel pulseaudio-devel SDL2-devel ffmpeg6-devel
jack-devel $(vopt_if sndio sndio-devel)"
short_desc="Cross-platform 3D audio library"
maintainer="Orphaned <orphan@voidlinux.org>"
From 282794514b08fc582d77ba03cd65cbe63e9a180a Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:48 -0400
Subject: [PATCH 40/93] loudgain: revbump for ffmpeg6
---
srcpkgs/loudgain/patches/ffmpeg5.patch | 11 +++++++++++
srcpkgs/loudgain/template | 4 ++--
2 files changed, 13 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/loudgain/patches/ffmpeg5.patch
diff --git a/srcpkgs/loudgain/patches/ffmpeg5.patch b/srcpkgs/loudgain/patches/ffmpeg5.patch
new file mode 100644
index 00000000000000..16d4510ee98faa
--- /dev/null
+++ b/srcpkgs/loudgain/patches/ffmpeg5.patch
@@ -0,0 +1,11 @@
+--- a/src/scan.c 2019-09-06 11:31:19.000000000 -0400
++++ b/src/scan.c 2023-03-23 11:15:40.867968521 -0400
+@@ -69,8 +69,6 @@
+ * It is now useless
+ * https://github.com/FFmpeg/FFmpeg/blob/70d25268c21cbee5f08304da95be1f647c630c15/doc/APIchanges#L86
+ */
+- if (avformat_version() < AV_VERSION_INT(58,9,100))
+- av_register_all();
+
+ av_log_set_callback(scan_av_log);
+
diff --git a/srcpkgs/loudgain/template b/srcpkgs/loudgain/template
index da4f2d56e94c3d..8d6c6aeb772636 100644
--- a/srcpkgs/loudgain/template
+++ b/srcpkgs/loudgain/template
@@ -1,10 +1,10 @@
# Template file for 'loudgain'
pkgname=loudgain
version=0.6.8
-revision=2
+revision=3
build_style=cmake
hostmakedepends="pkg-config"
-makedepends="libebur128-devel taglib-devel ffmpeg-devel"
+makedepends="libebur128-devel taglib-devel ffmpeg6-devel"
short_desc="ReplayGain 2.0 loudness normalizer"
maintainer="Kartik Singh <kartik.ynwa@gmail.com>"
license="BSD-2-Clause"
From fd72c1b851ef5df99196606e14526c8152c0cbe5 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:48 -0400
Subject: [PATCH 41/93] mgba: revbump for ffmpeg6
---
srcpkgs/mgba/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mgba/template b/srcpkgs/mgba/template
index 6cd65650312543..c2d39cd17d86bc 100644
--- a/srcpkgs/mgba/template
+++ b/srcpkgs/mgba/template
@@ -1,10 +1,10 @@
# Template file for 'mgba'
pkgname=mgba
version=0.10.3
-revision=1
+revision=2
build_style=cmake
hostmakedepends="pkg-config qt5-host-tools qt5-qmake desktop-file-utils"
-makedepends="SDL2-devel ffmpeg-devel libedit-devel libepoxy-devel libmagick-devel
+makedepends="SDL2-devel ffmpeg6-devel libedit-devel libepoxy-devel libmagick-devel
libzip-devel qt5-multimedia-devel qt5-tools-devel"
short_desc="Game Boy Advance emulator written in C"
maintainer="fanyx <fanyx@posteo.net>"
From 3e1ff5e13491d1bcf2fe3651edc68e049ee12817 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:49 -0400
Subject: [PATCH 42/93] motion: revbump for ffmpeg6
---
srcpkgs/motion/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/motion/template b/srcpkgs/motion/template
index 607ebeb3c7b242..e334a32a8b1896 100644
--- a/srcpkgs/motion/template
+++ b/srcpkgs/motion/template
@@ -1,10 +1,10 @@
# Template file for 'motion'
pkgname=motion
version=4.6.0
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake pkg-config gettext-devel tar"
-makedepends="ffmpeg-devel libmicrohttpd-devel v4l-utils-devel gettext-devel"
+makedepends="ffmpeg6-devel libmicrohttpd-devel v4l-utils-devel gettext-devel"
short_desc="Software motion detector"
maintainer="Andrea Brancaleoni <abc@pompel.me>"
license="GPL-2.0-or-later"
From 95a9d7c145d4e3be0427fb8ca2f6899c96466da7 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Sun, 15 Oct 2023 21:18:14 -0400
Subject: [PATCH 43/93] openshot: revbump for ffmpeg6
---
srcpkgs/openshot/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/openshot/template b/srcpkgs/openshot/template
index 3849858fe963b5..13d949bae91048 100644
--- a/srcpkgs/openshot/template
+++ b/srcpkgs/openshot/template
@@ -1,10 +1,10 @@
# Template file for 'openshot'
pkgname=openshot
version=3.1.1
-revision=1
+revision=2
build_style=python3-module
hostmakedepends="python3 python3-setuptools"
-makedepends="ffmpeg-devel python3-PyQt5"
+makedepends="ffmpeg6-devel python3-PyQt5"
depends="ImageMagick libopenshot python3-PyQt5-svg
python3-PyQt5-webkit python3-httplib2 python3-pyzmq python3-requests"
short_desc="Open-source, non-linear video editor for Linux"
From c4f9dcf24a88000e1ef26985aa3725f2840e1e80 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:00:55 -0400
Subject: [PATCH 44/93] osg: revbump for ffmpeg6
---
srcpkgs/osg/patches/ffmpeg5.patch | 490 ++++++++++++++++++++++++++++++
srcpkgs/osg/template | 4 +-
2 files changed, 492 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/osg/patches/ffmpeg5.patch
diff --git a/srcpkgs/osg/patches/ffmpeg5.patch b/srcpkgs/osg/patches/ffmpeg5.patch
new file mode 100644
index 00000000000000..ae46dcd4c467e3
--- /dev/null
+++ b/srcpkgs/osg/patches/ffmpeg5.patch
@@ -0,0 +1,490 @@
+Index: openscenegraph-3.6.5+dfsg1/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp
+===================================================================
+--- openscenegraph-3.6.5+dfsg1.orig/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp
++++ openscenegraph-3.6.5+dfsg1/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp
+@@ -45,12 +45,19 @@ static int decode_audio(AVCodecContext *
+ if (!frame)
+ return AVERROR(ENOMEM);
+
+- ret = avcodec_decode_audio4(avctx, frame, &got_frame, &avpkt);
++ ret = avcodec_send_packet(avctx, &avpkt);
++ if (ret >= 0) {
++ ret = avcodec_receive_frame(avctx, frame);
++ if (ret == 0) {
++ got_frame = 1;
++ }
++ }
++
+
+ #ifdef USE_AVRESAMPLE // libav's AVFrame structure does not contain a 'channels' field
+ if (ret >= 0 && got_frame) {
+ #else
+- if (ret >= 0 && got_frame && av_frame_get_channels(frame)>0) {
++ if (ret >= 0 && got_frame && frame->ch_layout.nb_channels>0) {
+ #endif
+ int ch, plane_size;
+ int planar = av_sample_fmt_is_planar(avctx->sample_fmt);
+@@ -151,11 +158,13 @@ void FFmpegDecoderAudio::open(AVStream *
+ return;
+
+ m_stream = stream;
+- m_context = stream->codec;
+-
+- m_in_sample_rate = m_context->sample_rate;
+- m_in_nb_channels = m_context->channels;
+- m_in_sample_format = m_context->sample_fmt;
++ AVCodecParameters* avp = stream->codecpar;
++ const AVCodec * p_codec = avcodec_find_decoder(avp->codec_id);
++ m_context = avcodec_alloc_context3(p_codec);
++
++ m_in_sample_rate = avp->sample_rate;
++ m_in_nb_channels = avp->channels;
++ m_in_sample_format = ((AVSampleFormat)(avp->format));
+
+ AVDictionaryEntry *opt_out_sample_rate = av_dict_get( *parameters->getOptions(), "out_sample_rate", NULL, 0 );
+ if ( opt_out_sample_rate )
+@@ -210,11 +219,10 @@ printf("### CONVERTING from sample forma
+ }
+
+ // Check stream sanity
+- if (m_context->codec_id == AV_CODEC_ID_NONE)
++ if (avp->codec_id == AV_CODEC_ID_NONE)
+ throw std::runtime_error("invalid audio codec");;
+
+ // Find the decoder for the audio stream
+- AVCodec * const p_codec = avcodec_find_decoder(m_context->codec_id);
+
+ if (p_codec == 0)
+ throw std::runtime_error("avcodec_find_decoder() failed");
+diff -Naur old/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp new/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp
+--- old/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp 2020-01-31 21:03:07.000000000 +1000
++++ new/src/osgPlugins/ffmpeg/FFmpegDecoder.cpp 2023-11-26 08:09:37.280442193 +1000
+@@ -62,7 +62,7 @@
+ {
+ // Open video file
+ AVFormatContext * p_format_context = 0;
+- AVInputFormat *iformat = 0;
++ const AVInputFormat *iformat = 0;
+
+ if (filename.compare(0, 5, "/dev/")==0)
+ {
+@@ -304,12 +304,11 @@
+ else
+ {
+ // Make the packet data available beyond av_read_frame() logical scope.
+- if ((error = av_dup_packet(&packet)) < 0) {
+- OSG_FATAL << "av_dup_packet() returned " << AvStrError(error) << std::endl;
+- throw std::runtime_error("av_dup_packet() failed");
++ if ((error = av_packet_ref(&(m_pending_packet.packet), &packet)) < 0) {
++ OSG_FATAL << "av_packet_ref() returned " << AvStrError(error) << std::endl;
++ throw std::runtime_error("av_packet_ref() failed");
+ }
+-
+- m_pending_packet = FFmpegPacket(packet);
++ m_pending_packet.type = FFmpegPacket::PACKET_DATA;
+ }
+ }
+
+diff -Naur old/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp new/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp
+--- old/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp 2020-01-31 21:03:07.000000000 +1000
++++ new/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp 2023-11-26 13:07:02.501812075 +1000
+@@ -6,6 +6,9 @@
+ #include <stdexcept>
+ #include <string.h>
+
++#include <libavutil/imgutils.h>
++
++
+ namespace osgFFmpeg {
+
+ // TODO - add support for using RGB or RGBA pixel format.
+@@ -18,8 +21,6 @@
+ m_stream(0),
+ m_context(0),
+ m_codec(0),
+- m_packet_data(0),
+- m_bytes_remaining(0),
+ m_packet_pts(AV_NOPTS_VALUE),
+ m_writeBuffer(0),
+ m_user_data(0),
+@@ -61,8 +62,12 @@
+
+ void FFmpegDecoderVideo::open(AVStream * const stream)
+ {
++ int linesizes[4];
++
+ m_stream = stream;
+- m_context = stream->codec;
++
++ if (avcodec_parameters_to_context(m_context, stream->codecpar) < 0)
++ throw std::runtime_error("avcodec_parameters_to_context() failed inside FFMpegDecoderVideo::open()");
+
+ // Trust the video size given at this point
+ // (avcodec_open seems to sometimes return a 0x0 size)
+@@ -99,11 +104,15 @@
+
+ // Allocate converted RGB frame
+ m_frame_rgba.reset(av_frame_alloc());
+- m_buffer_rgba[0].resize(avpicture_get_size(AV_PIX_FMT_RGB24, width(), height()));
++ m_buffer_rgba[0].resize(av_image_get_buffer_size(AV_PIX_FMT_RGB24, width(), height(), 1));
+ m_buffer_rgba[1].resize(m_buffer_rgba[0].size());
+
+ // Assign appropriate parts of the buffer to image planes in m_frame_rgba
++#if BCS
+ avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], AV_PIX_FMT_RGB24, width(), height());
++#else
++ av_image_fill_arrays(m_frame_rgba.get()->data, linesizes, &(m_buffer_rgba[0])[0], AV_PIX_FMT_RGB24, width(), height(), 1);
++#endif
+
+ // Override get_buffer()/release_buffer() from codec context in order to retrieve the PTS of each frame.
+ m_context->opaque = this;
+@@ -148,128 +157,123 @@
+ }
+
+
+-
+-void FFmpegDecoderVideo::decodeLoop()
++double FFmpegDecoderVideo::calculateFramePTS(int64_t packet_dts)
+ {
+- FFmpegPacket packet;
+- double pts;
++ double pts = 0;
+
+- while (! m_exit)
++#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(57,24,102)
++ //ffmpeg-3.0 and below
++ AVRational timebase;
++ // Find out the frame pts
++ if (m_frame->pts != int64_t(AV_NOPTS_VALUE))
+ {
+- // Work on the current packet until we have decoded all of it
+-
+- while (m_bytes_remaining > 0)
+- {
+- // Save global PTS to be stored in m_frame via getBuffer()
++ pts = m_frame->pts;
++ timebase = m_context->time_base;
++ }
++ else if (packet_dts == int64_t(AV_NOPTS_VALUE) &&
++ m_frame->opaque != 0 &&
++ *reinterpret_cast<const int64_t*>(m_frame->opaque) != int64_t(AV_NOPTS_VALUE))
++ {
++ pts = *reinterpret_cast<const int64_t*>(m_frame->opaque);
++ timebase = m_stream->time_base;
++ }
++ else if (packet_dts != int64_t(AV_NOPTS_VALUE))
++ {
++ pts = packet_dts;
++ timebase = m_stream->time_base;
++ }
++ else
++ {
++ timebase = m_context->time_base;
++ }
+
+- m_packet_pts = packet.packet.pts;
++ pts *= av_q2d(timebase);
+
+- // Decode video frame
++#else
++ //above ffmpeg-3.0
++ // Find out the frame pts
++ if (m_frame->pts != int64_t(AV_NOPTS_VALUE))
++ {
++ pts = av_q2d(m_stream->time_base) * m_frame->pts;
++ }
++ else if (packet_dts == int64_t(AV_NOPTS_VALUE) &&
++ m_frame->opaque != 0 &&
++ *reinterpret_cast<const int64_t*>(m_frame->opaque) != int64_t(AV_NOPTS_VALUE))
++ {
++ pts = av_q2d(m_stream->time_base) * *reinterpret_cast<const int64_t*>(m_frame->opaque);
++ }
++ else if (packet_dts != int64_t(AV_NOPTS_VALUE))
++ {
++ pts = av_q2d(m_stream->time_base) * packet_dts;
++ }
++#endif
+
+- int frame_finished = 0;
++ return pts;
++}
+
+- // We want to use the entire packet since some codecs will require extra information for decoding
+- const int bytes_decoded = avcodec_decode_video2(m_context, m_frame.get(), &frame_finished, &(packet.packet));
+
+- if (bytes_decoded < 0)
+- throw std::runtime_error("avcodec_decode_video failed()");
++void FFmpegDecoderVideo::decodeLoop()
++{
++ bool need_more_data = true;
++ FFmpegPacket packet;
+
+- m_bytes_remaining -= bytes_decoded;
+- m_packet_data += bytes_decoded;
++ while (! m_exit)
++ {
++ if (need_more_data)
++ {
++ bool is_empty = true;
++ packet = m_packets.timedPop(is_empty, 10);
+
+- // Publish the frame if we have decoded a complete frame
+- if (frame_finished)
++ if (! is_empty)
+ {
+-#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(57,24,102)
+- //ffmpeg-3.0 and below
+- AVRational timebase;
+- // Find out the frame pts
+- if (m_frame->pts != int64_t(AV_NOPTS_VALUE))
+- {
+- pts = m_frame->pts;
+- timebase = m_context->time_base;
+- }
+- else if (packet.packet.dts == int64_t(AV_NOPTS_VALUE) &&
+- m_frame->opaque != 0 &&
+- *reinterpret_cast<const int64_t*>(m_frame->opaque) != int64_t(AV_NOPTS_VALUE))
+- {
+- pts = *reinterpret_cast<const int64_t*>(m_frame->opaque);
+- timebase = m_stream->time_base;
+- }
+- else if (packet.packet.dts != int64_t(AV_NOPTS_VALUE))
+- {
+- pts = packet.packet.dts;
+- timebase = m_stream->time_base;
+- }
+- else
+- {
+- pts = 0;
+- timebase = m_context->time_base;
+- }
+-
+- pts *= av_q2d(timebase);
++ if (packet.type == FFmpegPacket::PACKET_FLUSH)
++ avcodec_flush_buffers(m_context);
+
+-#else
+- //above ffmpeg-3.0
+- // Find out the frame pts
+- if (m_frame->pts != int64_t(AV_NOPTS_VALUE))
+- {
+- pts = av_q2d(m_stream->time_base) * m_frame->pts;
+- }
+- else if (packet.packet.dts == int64_t(AV_NOPTS_VALUE) &&
+- m_frame->opaque != 0 &&
+- *reinterpret_cast<const int64_t*>(m_frame->opaque) != int64_t(AV_NOPTS_VALUE))
+- {
+- pts = av_q2d(m_stream->time_base) * *reinterpret_cast<const int64_t*>(m_frame->opaque);
+- }
+- else if (packet.packet.dts != int64_t(AV_NOPTS_VALUE))
+- {
+- pts = av_q2d(m_stream->time_base) * packet.packet.dts;
+- }
+- else
+- {
+- pts = 0;
+- }
+-#endif
+- const double synched_pts = m_clocks.videoSynchClock(m_frame.get(), av_q2d(av_inv_q(m_context->framerate)), pts);
+- const double frame_delay = m_clocks.videoRefreshSchedule(synched_pts);
++ // Save global PTS to be stored in m_frame via getBuffer()
++ m_packet_pts = packet.packet.pts;
+
+- publishFrame(frame_delay, m_clocks.audioDisabled());
++ if (avcodec_send_packet(m_context, &packet.packet) < 0)
++ throw std::runtime_error("avcodec_send_packet() failed inside FFmpegDecoderVideo::decodeLoop()");
+ }
+- }
+-
+- while(m_paused && !m_exit)
+- {
+- microSleep(10000);
+- }
++ }
+
+- // Get the next packet
++ const int decode_status = avcodec_receive_frame(m_context, m_frame.get());
+
+- pts = 0;
++ if (decode_status == 0)
++ {
++ // Completed at least one full frame
++ need_more_data = false;
+
+- if (packet.valid())
+- packet.clear();
++ const double pts = calculateFramePTS(m_frame.get()->pkt_dts);
++ const double synched_pts = m_clocks.videoSynchClock(m_frame.get(), av_q2d(av_inv_q(m_context->framerate)), pts);
++ const double frame_delay = m_clocks.videoRefreshSchedule(synched_pts);
+
+- bool is_empty = true;
+- packet = m_packets.timedPop(is_empty, 10);
++ publishFrame(frame_delay, m_clocks.audioDisabled());
++ }
++ else if (decode_status == AVERROR(EOF))
++ {
++ // Decoder has reached end of the stream
++ return;
++ }
++ else if (decode_status == AVERROR(EAGAIN))
++ {
++ // Frame not yet complete
++ need_more_data = true;
++
++ if (packet.valid())
++ packet.clear();
++ }
++ else
++ throw std::runtime_error("avcodec_receive_frame() failed inside FFmpegDecoderVideo::decodeLoop()");
+
+- if (! is_empty)
++ while(m_paused && !m_exit)
+ {
+- if (packet.type == FFmpegPacket::PACKET_DATA)
+- {
+- m_bytes_remaining = packet.packet.size;
+- m_packet_data = packet.packet.data;
+- }
+- else if (packet.type == FFmpegPacket::PACKET_FLUSH)
+- {
+- avcodec_flush_buffers(m_context);
+- }
++ microSleep(10000);
+ }
+ }
+ }
+
+
+-
+ void FFmpegDecoderVideo::findAspectRatio()
+ {
+ float ratio = 0.0f;
+@@ -283,7 +287,8 @@
+ m_pixel_aspect_ratio = ratio;
+ }
+
+-int FFmpegDecoderVideo::convert(AVPicture *dst, int dst_pix_fmt, AVPicture *src,
++
++int FFmpegDecoderVideo::convert(AVFrame *dst, int dst_pix_fmt, AVFrame *src,
+ int src_pix_fmt, int src_width, int src_height)
+ {
+ osg::Timer_t startTick = osg::Timer::instance()->tick();
+@@ -318,6 +323,8 @@
+
+ void FFmpegDecoderVideo::publishFrame(const double delay, bool audio_disabled)
+ {
++ int linesizes[4];
++
+ // If no publishing function, just ignore the frame
+ if (m_publish_func == 0)
+ return;
+@@ -334,11 +341,11 @@
+ return;
+ #endif
+
+- AVPicture * const src = (AVPicture *) m_frame.get();
+- AVPicture * const dst = (AVPicture *) m_frame_rgba.get();
++ AVFrame * const src = (AVFrame *) m_frame.get();
++ AVFrame * const dst = (AVFrame *) m_frame_rgba.get();
+
+ // Assign appropriate parts of the buffer to image planes in m_frame_rgba
+- avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], AV_PIX_FMT_RGB24, width(), height());
++ av_image_fill_arrays(m_frame_rgba.get()->data, linesizes, &(m_buffer_rgba[m_writeBuffer])[0], AV_PIX_FMT_RGB24, width(), height(), 1);
+
+ // Convert YUVA420p (i.e. YUV420p plus alpha channel) using our own routine
+
+@@ -370,7 +377,7 @@
+
+
+
+-void FFmpegDecoderVideo::yuva420pToRgba(AVPicture * const dst, AVPicture * const src, int width, int height)
++void FFmpegDecoderVideo::yuva420pToRgba(AVFrame * const dst, AVFrame * const src, int width, int height)
+ {
+ convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width, height);
+
+diff -Naur old/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp new/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp
+--- old/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp 2020-01-31 21:03:07.000000000 +1000
++++ new/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp 2023-11-26 09:34:00.040263426 +1000
+@@ -87,10 +87,11 @@
+ void decodeLoop();
+ void findAspectRatio();
+ void publishFrame(double delay, bool audio_disabled);
++ double calculateFramePTS(int64_t packet_dts);
+ double synchronizeVideo(double pts);
+- void yuva420pToRgba(AVPicture *dst, AVPicture *src, int width, int height);
++ void yuva420pToRgba(AVFrame *dst, AVFrame *src, int width, int height);
+
+- int convert(AVPicture *dst, int dst_pix_fmt, AVPicture *src,
++ int convert(AVFrame *dst, int dst_pix_fmt, AVFrame *src,
+ int src_pix_fmt, int src_width, int src_height);
+
+
+@@ -101,9 +102,7 @@
+ FFmpegClocks & m_clocks;
+ AVStream * m_stream;
+ AVCodecContext * m_context;
+- AVCodec * m_codec;
+- const uint8_t * m_packet_data;
+- int m_bytes_remaining;
++ const AVCodec * m_codec;
+ int64_t m_packet_pts;
+
+ FramePtr m_frame;
+diff -Naur old/src/osgPlugins/ffmpeg/FFmpegPacket.hpp new/src/osgPlugins/ffmpeg/FFmpegPacket.hpp
+--- old/src/osgPlugins/ffmpeg/FFmpegPacket.hpp 2020-01-31 21:03:07.000000000 +1000
++++ new/src/osgPlugins/ffmpeg/FFmpegPacket.hpp 2023-11-26 07:20:03.739547190 +1000
+@@ -42,7 +42,7 @@
+ void clear()
+ {
+ if (packet.data != 0)
+- av_free_packet(&packet);
++ av_packet_unref(&packet);
+
+ release();
+ }
+diff -Naur old/src/osgPlugins/ffmpeg/FFmpegParameters.hpp new/src/osgPlugins/ffmpeg/FFmpegParameters.hpp
+--- old/src/osgPlugins/ffmpeg/FFmpegParameters.hpp 2020-01-31 21:03:07.000000000 +1000
++++ new/src/osgPlugins/ffmpeg/FFmpegParameters.hpp 2023-11-26 13:09:25.198807036 +1000
+@@ -20,7 +20,7 @@
+
+ bool isFormatAvailable() const { return m_format!=NULL; }
+
+- AVInputFormat* getFormat() { return m_format; }
++ const AVInputFormat* getFormat() { return m_format; }
+ AVDictionary** getOptions() { return &m_options; }
+ void setContext(AVIOContext* context) { m_context = context; }
+ AVIOContext* getContext() { return m_context; }
+@@ -29,7 +29,7 @@
+
+ protected:
+
+- AVInputFormat* m_format;
++ const AVInputFormat* m_format;
+ AVIOContext* m_context;
+ AVDictionary* m_options;
+ };
+diff -Naur old/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp new/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp
+--- old/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp 2020-01-31 21:03:07.000000000 +1000
++++ new/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp 2023-11-26 13:25:22.060773249 +1000
+@@ -20,7 +20,7 @@
+ #include <osgDB/FileUtils>
+
+
+-#if LIBAVCODEC_VERSION_MAJOR >= 53 || \
++#if (LIBAVCODEC_VERSION_MAJOR>=53 && LIBAVCODEC_VERSION_MAJOR<=58) || \
+ (LIBAVCODEC_VERSION_MAJOR==52 && LIBAVCODEC_VERSION_MINOR>=30) || \
+ (LIBAVCODEC_VERSION_MAJOR==52 && LIBAVCODEC_VERSION_MINOR==20 && LIBAVCODEC_VERSION_MICRO >= 1)
+ #define USE_AV_LOCK_MANAGER
+@@ -117,8 +117,11 @@
+ // enable thread locking
+ av_lockmgr_register(&lockMgr);
+ #endif
+- // Register all FFmpeg formats/codecs
++
++#if LIBAVCODEC_VERSION_MAJOR<=57
++ // Register all FFmpeg formats/codecs--- not required in FFmpeg 4.0 and later
+ av_register_all();
++#endif
+
+ avformat_network_init();
+ }
diff --git a/srcpkgs/osg/template b/srcpkgs/osg/template
index 8ef0efc599a1b1..2a89cf2164e133 100644
--- a/srcpkgs/osg/template
+++ b/srcpkgs/osg/template
@@ -1,14 +1,14 @@
# Template file for 'osg'
pkgname=osg
version=3.6.5
-revision=3
+revision=4
build_style=cmake
build_helper="qemu"
# don't use /usr/lib64 on 64bit platforms
configure_args="-DLIB_POSTFIX="
hostmakedepends="pkg-config xrandr"
makedepends="MesaLib-devel gtkglext-devel libcurl-devel giflib-devel librsvg-devel
- jasper-devel tiff-devel libgdal-devel libgta-devel ffmpeg-devel xine-lib-devel
+ jasper-devel tiff-devel libgdal-devel libgta-devel ffmpeg6-devel xine-lib-devel
SDL2-devel gst-plugins-base1-devel
$(vopt_if openexr libopenexr-devel)
$(vopt_if poppler poppler-glib-devel)
From ae798f607ac1a6eff05e3ed78396083f72e8034c Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:13 -0400
Subject: [PATCH 45/93] xine-lib: revbump for ffmpeg6
---
srcpkgs/xine-lib/template | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/srcpkgs/xine-lib/template b/srcpkgs/xine-lib/template
index 3be4d08eac77a3..f54ad0a91e15c7 100644
--- a/srcpkgs/xine-lib/template
+++ b/srcpkgs/xine-lib/template
@@ -1,14 +1,14 @@
# Template file for 'xine-lib'
pkgname=xine-lib
-version=1.2.12
-revision=3
+version=1.2.13
+revision=1
build_style=gnu-configure
configure_args="--disable-vcd --disable-gnomevfs --without-esound --disable-dxr3
--disable-oss"
hostmakedepends="automake gettext-devel libtool pkg-config perl"
makedepends="
zlib-devel alsa-lib-devel libxcb-devel libSM-devel libXext-devel libXv-devel
- libXvMC-devel liba52-devel libmad-devel ffmpeg-devel pulseaudio-devel
+ libXvMC-devel liba52-devel libmad-devel ffmpeg6-devel pulseaudio-devel
jack-devel samba-devel libflac-devel libmodplug-devel libmpcdec-devel
speex-devel libtheora-devel libvorbis-devel libdca-devel faad2-devel
libcdio-devel libbluray-devel aalib-devel libcaca-devel libXinerama-devel
@@ -19,7 +19,7 @@ license="GPL-2.0-or-later, LGPL-2.0-or-later"
homepage="http://www.xine-project.org"
changelog="https://sourceforge.net/projects/xine/files/xine-lib/${version}/README.txt/view"
distfiles="${SOURCEFORGE_SITE}/xine/${pkgname}-${version}.tar.xz"
-checksum=d606270468e1540c2a89c0d7f5fdf11e17ecc0c2698cc0bcb1065ff26abee098
+checksum=5f10d6d718a4a51c17ed1b32b031d4f9b80b061e8276535b2be31e5ac4b75e6f
case "$XBPS_TARGET_MACHINE" in
i686-musl)
From 5eac85a6831350763177a96003aa12ae817ef2fa Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:50 -0400
Subject: [PATCH 46/93] pianobar: revbump for ffmpeg6
---
srcpkgs/pianobar/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/pianobar/template b/srcpkgs/pianobar/template
index e3febb821a4510..25ef1ab4c34af6 100644
--- a/srcpkgs/pianobar/template
+++ b/srcpkgs/pianobar/template
@@ -1,11 +1,11 @@
# Template file for 'pianobar'
pkgname=pianobar
version=2022.04.01
-revision=1
+revision=2
build_style=gnu-makefile
make_build_args="V=1"
hostmakedepends="pkg-config"
-makedepends="faad2-devel ffmpeg-devel gnutls-devel json-c-devel libao-devel
+makedepends="faad2-devel ffmpeg6-devel gnutls-devel json-c-devel libao-devel
libcurl-devel libgcrypt-devel"
short_desc="Free/open-source, console-based client for Pandora radio"
maintainer="Orphaned <orphan@voidlinux.org>"
From d18458869e04b0d354e06bd169cdd4c438e6cb08 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:50 -0400
Subject: [PATCH 47/93] ppsspp: revbump for ffmpeg6
---
srcpkgs/ppsspp/patches/ffmpeg6.patch | 15 +++++++++++++++
srcpkgs/ppsspp/template | 5 ++---
2 files changed, 17 insertions(+), 3 deletions(-)
create mode 100644 srcpkgs/ppsspp/patches/ffmpeg6.patch
diff --git a/srcpkgs/ppsspp/patches/ffmpeg6.patch b/srcpkgs/ppsspp/patches/ffmpeg6.patch
new file mode 100644
index 00000000000000..5803c7bf227309
--- /dev/null
+++ b/srcpkgs/ppsspp/patches/ffmpeg6.patch
@@ -0,0 +1,15 @@
+--- a/Core/HW/SimpleAudioDec.cpp 2024-02-04 08:08:02.000000000 -0500
++++ b/Core/HW/SimpleAudioDec.cpp 2024-02-15 14:48:27.114362051 -0500
+@@ -81,7 +81,11 @@
+ return;
+ }
+ // Find decoder
++#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(58, 18, 100)
+ codec_ = avcodec_find_decoder((AVCodecID)audioCodecId);
++#else // this is a macro to const in the header
++ codec_ = (AVCodec*)avcodec_find_decoder((AVCodecID)audioCodecId);
++#endif
+ if (!codec_) {
+ // Eh, we shouldn't even have managed to compile. But meh.
+ ERROR_LOG(ME, "This version of FFMPEG does not support AV_CODEC_ctx for audio (%s). Update your submodule.", GetCodecName(audioType));
+
diff --git a/srcpkgs/ppsspp/template b/srcpkgs/ppsspp/template
index 2238a7601c0af8..e929fd18122c7c 100644
--- a/srcpkgs/ppsspp/template
+++ b/srcpkgs/ppsspp/template
@@ -1,7 +1,7 @@
# Template file for 'ppsspp'
pkgname=ppsspp
version=1.17.1
-revision=1
+revision=2
_glslang_commit=b34f619e1c85810dcb3c578107d2e48ba4ee2b37
_SPIRV_Cross_commit=4212eef67ed0ca048cb726a6767185504e7695e5
_armips_commit=a8d71f0f279eb0d30ecf6af51473b66ae0cf8e8d
@@ -15,7 +15,7 @@ configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON
-DUSING_QT_UI=$(vopt_if qt ON OFF) -DUSE_SYSTEM_ZSTD=ON
-DARMIPS_USE_STD_FILESYSTEM=ON"
hostmakedepends="pkg-config python3 $(vopt_if qt qt5-host-tools)"
-makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel
+makedepends="zlib-devel glew-devel ffmpeg6-devel libzip-devel
snappy-devel rapidjson libpng-devel libzstd-devel
$(vopt_if sdl2 'SDL2_ttf-devel SDL2-devel') wayland-devel
$(vopt_if qt 'qt5-devel qt5-multimedia-devel')"
@@ -91,7 +91,6 @@ post_configure() {
}
do_install() {
- vlicense LICENSE.TXT
vinstall icons/icon.svg 644 usr/share/pixmaps ppsspp.svg
vinstall Qt/PPSSPP.desktop 644 usr/share/applications
vbin build/PPSSPPHeadless ppsspp-headless
From 514ed39567af717c6d70e5f7485401ae1d420fa9 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:50 -0400
Subject: [PATCH 48/93] pqiv: revbump for ffmpeg6
---
srcpkgs/pqiv/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/pqiv/template b/srcpkgs/pqiv/template
index f9f7751196d4ee..7d638c0310582e 100644
--- a/srcpkgs/pqiv/template
+++ b/srcpkgs/pqiv/template
@@ -1,10 +1,10 @@
# Template file for 'pqiv'
pkgname=pqiv
version=2.13.1
-revision=1
+revision=2
build_style=gnu-makefile
hostmakedepends="pkg-config"
-makedepends="glib-devel gtk+3-devel $(vopt_if ffmpeg ffmpeg-devel)
+makedepends="glib-devel gtk+3-devel $(vopt_if ffmpeg ffmpeg6-devel)
$(vopt_if archive libarchive-devel) $(vopt_if ps libspectre-devel)
$(vopt_if webp libwebp-devel) $(vopt_if pdf poppler-glib-devel)"
short_desc="Powerful quick image viewer"
From 39a236826615691814efdebc9c3eb8841f0e9c9d Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:50 -0400
Subject: [PATCH 49/93] qmmp: revbump for ffmpeg6
---
srcpkgs/qmmp/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/qmmp/template b/srcpkgs/qmmp/template
index 53781ea3bc28ad..e96175b05eaed6 100644
--- a/srcpkgs/qmmp/template
+++ b/srcpkgs/qmmp/template
@@ -1,12 +1,12 @@
# Template file for 'qmmp'
pkgname=qmmp
version=1.6.1
-revision=3
+revision=4
build_style=cmake
configure_args="-DUSE_HAL:BOOL=FALSE -DQMMP_DEFAULT_UI:STRING=simple"
hostmakedepends="pkg-config qt5-host-tools qt5-qmake"
# XXX projectm
-makedepends="enca-devel faad2-devel ffmpeg-devel jack-devel libarchive-devel
+makedepends="enca-devel faad2-devel ffmpeg6-devel jack-devel libarchive-devel
libbs2b-devel libcdio-paranoia-devel libcurl-devel libgme-devel libmad-devel
libmms-devel libmodplug-devel libmpcdec-devel libsamplerate-devel libwildmidi-devel
libshout-devel libsidplayfp-devel libsoxr-devel opusfile-devel pulseaudio-devel
From f8b09fd4cfe1f48666efdd823f48723d736933a2 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:51 -0400
Subject: [PATCH 50/93] retroarch: revbump for ffmpeg6
---
srcpkgs/retroarch/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/retroarch/template b/srcpkgs/retroarch/template
index 5429d13ef3eea4..011c14b74475c1 100644
--- a/srcpkgs/retroarch/template
+++ b/srcpkgs/retroarch/template
@@ -1,7 +1,7 @@
# Template file for 'retroarch'
pkgname=retroarch
version=1.16.0.3
-revision=3
+revision=4
build_style=configure
configure_args="--prefix=/usr --sysconfdir=/etc --enable-networking
--enable-udev --disable-builtinflac --disable-builtinglslang
@@ -12,7 +12,7 @@ configure_args="--prefix=/usr --sysconfdir=/etc --enable-networking
conf_files="/etc/retroarch.cfg"
hostmakedepends="pkg-config"
makedepends="alsa-lib-devel eudev-libudev-devel freetype-devel libusb-devel libxkbcommon-devel
- mbedtls-devel zlib-devel $(vopt_if ffmpeg ffmpeg-devel) $(vopt_if flac libflac-devel)
+ mbedtls-devel zlib-devel $(vopt_if ffmpeg ffmpeg6-devel) $(vopt_if flac libflac-devel)
$(vopt_if glslang 'glslang-devel SPIRV-Tools-devel') $(vopt_if jack jack-devel)
$(vopt_if pulseaudio pulseaudio-devel)
$(vopt_if qt5 qt5-devel) $(vopt_if sdl2 SDL2-devel) $(vopt_if vulkan vulkan-loader-devel)
From 633a617ff367c86874892a5ee4dffe9782840cd7 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:51 -0400
Subject: [PATCH 51/93] scrcpy: revbump for ffmpeg6
---
srcpkgs/scrcpy/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/scrcpy/template b/srcpkgs/scrcpy/template
index ff3c356c24da6a..263aa1cdacec41 100644
--- a/srcpkgs/scrcpy/template
+++ b/srcpkgs/scrcpy/template
@@ -1,12 +1,12 @@
# Template file for 'scrcpy'
pkgname=scrcpy
version=2.5
-revision=1
+revision=2
build_style=meson
configure_args="-Dcompile_server=false
-Dprebuilt_server=/usr/share/scrcpy/scrcpy-server-v${version}"
hostmakedepends="pkg-config"
-makedepends="SDL2-devel ffmpeg-devel"
+makedepends="SDL2-devel ffmpeg6-devel"
depends="android-tools"
short_desc="Display and control your Android device"
maintainer="SolitudeSF <solitudesf@protonmail.com>"
From 5069f0a5202c919e63b881394adf32686afde5fc Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:51 -0400
Subject: [PATCH 52/93] ssr: revbump for ffmpeg6
---
.../0001-Fix-build-with-ffmpeg-5.0.patch | 241 ++++++++++++++++++
srcpkgs/ssr/template | 4 +-
2 files changed, 243 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/ssr/patches/0001-Fix-build-with-ffmpeg-5.0.patch
diff --git a/srcpkgs/ssr/patches/0001-Fix-build-with-ffmpeg-5.0.patch b/srcpkgs/ssr/patches/0001-Fix-build-with-ffmpeg-5.0.patch
new file mode 100644
index 00000000000000..4c069b5a9fc464
--- /dev/null
+++ b/srcpkgs/ssr/patches/0001-Fix-build-with-ffmpeg-5.0.patch
@@ -0,0 +1,241 @@
+From f4cbde38021d9330dc73d2e3dfa8a70da3ff5721 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <bero@lindev.ch>
+Date: Sun, 16 Jan 2022 02:40:04 +0100
+Subject: [PATCH] Fix build with ffmpeg 5.0
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Adapt to ffmpeg 5.0 requiring more const-ness for AVCodec.
+
+Signed-off-by: Bernhard Rosenkränzer <bero@lindev.ch>
+---
+ src/AV/Output/AudioEncoder.cpp | 6 +++---
+ src/AV/Output/AudioEncoder.h | 4 ++--
+ src/AV/Output/BaseEncoder.cpp | 4 ++--
+ src/AV/Output/BaseEncoder.h | 4 ++--
+ src/AV/Output/Muxer.cpp | 12 ++++++------
+ src/AV/Output/Muxer.h | 4 ++--
+ src/AV/Output/VideoEncoder.cpp | 6 +++---
+ src/AV/Output/VideoEncoder.h | 4 ++--
+ 8 files changed, 22 insertions(+), 22 deletions(-)
+
+diff --git a/src/AV/Output/AudioEncoder.cpp b/src/AV/Output/AudioEncoder.cpp
+index 34d015c..cefc2e0 100644
+--- a/src/AV/Output/AudioEncoder.cpp
++++ b/src/AV/Output/AudioEncoder.cpp
+@@ -34,7 +34,7 @@ const std::vector<AudioEncoder::SampleFormatData> AudioEncoder::SUPPORTED_SAMPLE
+
+ const unsigned int AudioEncoder::DEFAULT_FRAME_SAMPLES = 1024;
+
+-AudioEncoder::AudioEncoder(Muxer* muxer, AVStream* stream, AVCodecContext *codec_context, AVCodec* codec, AVDictionary** options)
++AudioEncoder::AudioEncoder(Muxer* muxer, AVStream* stream, AVCodecContext *codec_context, const AVCodec* codec, AVDictionary** options)
+ : BaseEncoder(muxer, stream, codec_context, codec, options) {
+
+ #if !SSR_USE_AVCODEC_ENCODE_AUDIO2
+@@ -77,7 +77,7 @@ unsigned int AudioEncoder::GetSampleRate() {
+ }
+
+ bool AudioEncoder::AVCodecIsSupported(const QString& codec_name) {
+- AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
++ const AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
+ if(codec == NULL)
+ return false;
+ if(!av_codec_is_encoder(codec))
+@@ -93,7 +93,7 @@ bool AudioEncoder::AVCodecIsSupported(const QString& codec_name) {
+ return false;
+ }
+
+-void AudioEncoder::PrepareStream(AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options, const std::vector<std::pair<QString, QString> >& codec_options,
++void AudioEncoder::PrepareStream(AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options, const std::vector<std::pair<QString, QString> >& codec_options,
+ unsigned int bit_rate, unsigned int channels, unsigned int sample_rate) {
+
+ if(channels == 0) {
+diff --git a/src/AV/Output/AudioEncoder.h b/src/AV/Output/AudioEncoder.h
+index c93278c..ae9c82e 100644
+--- a/src/AV/Output/AudioEncoder.h
++++ b/src/AV/Output/AudioEncoder.h
+@@ -40,7 +40,7 @@ private:
+ #endif
+
+ public:
+- AudioEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options);
++ AudioEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options);
+ ~AudioEncoder();
+
+ // Returns the required frame size, i.e. the number of samples (for each channel).
+@@ -57,7 +57,7 @@ public:
+
+ public:
+ static bool AVCodecIsSupported(const QString& codec_name);
+- static void PrepareStream(AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options, const std::vector<std::pair<QString, QString> >& codec_options,
++ static void PrepareStream(AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options, const std::vector<std::pair<QString, QString> >& codec_options,
+ unsigned int bit_rate, unsigned int channels, unsigned int sample_rate);
+
+ private:
+diff --git a/src/AV/Output/BaseEncoder.cpp b/src/AV/Output/BaseEncoder.cpp
+index 7c01ef3..4780aaf 100644
+--- a/src/AV/Output/BaseEncoder.cpp
++++ b/src/AV/Output/BaseEncoder.cpp
+@@ -42,7 +42,7 @@ double ParseCodecOptionDouble(const QString& key, const QString& value, double m
+ return clamp(value_double, min, max) * multiply;
+ }
+
+-BaseEncoder::BaseEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options) {
++BaseEncoder::BaseEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options) {
+
+ m_muxer = muxer;
+ m_stream = stream;
+@@ -157,7 +157,7 @@ void BaseEncoder::IncrementPacketCounter() {
+ ++lock->m_total_packets;
+ }
+
+-void BaseEncoder::Init(AVCodec* codec, AVDictionary** options) {
++void BaseEncoder::Init(const AVCodec* codec, AVDictionary** options) {
+
+ // open codec
+ if(avcodec_open2(m_codec_context, codec, options) < 0) {
+diff --git a/src/AV/Output/BaseEncoder.h b/src/AV/Output/BaseEncoder.h
+index 3d92f29..7f02bbd 100644
+--- a/src/AV/Output/BaseEncoder.h
++++ b/src/AV/Output/BaseEncoder.h
+@@ -51,7 +51,7 @@ private:
+ std::atomic<bool> m_should_stop, m_should_finish, m_is_done, m_error_occurred;
+
+ protected:
+- BaseEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options);
++ BaseEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options);
+
+ public:
+ virtual ~BaseEncoder(); // encoders will be deleted by Muxer, don't delete them yourself!
+@@ -117,7 +117,7 @@ protected:
+ void IncrementPacketCounter();
+
+ private:
+- void Init(AVCodec* codec, AVDictionary** options);
++ void Init(const AVCodec* codec, AVDictionary** options);
+ void Free();
+
+ void EncoderThread();
+diff --git a/src/AV/Output/Muxer.cpp b/src/AV/Output/Muxer.cpp
+index ad58380..14650b0 100644
+--- a/src/AV/Output/Muxer.cpp
++++ b/src/AV/Output/Muxer.cpp
+@@ -87,7 +87,7 @@ Muxer::~Muxer() {
+
+ VideoEncoder* Muxer::AddVideoEncoder(const QString& codec_name, const std::vector<std::pair<QString, QString> >& codec_options,
+ unsigned int bit_rate, unsigned int width, unsigned int height, unsigned int frame_rate) {
+- AVCodec *codec = FindCodec(codec_name);
++ const AVCodec *codec = FindCodec(codec_name);
+ AVCodecContext *codec_context = NULL;
+ AVStream *stream = AddStream(codec, &codec_context);
+ VideoEncoder *encoder;
+@@ -111,7 +111,7 @@ VideoEncoder* Muxer::AddVideoEncoder(const QString& codec_name, const std::vecto
+
+ AudioEncoder* Muxer::AddAudioEncoder(const QString& codec_name, const std::vector<std::pair<QString, QString> >& codec_options,
+ unsigned int bit_rate, unsigned int channels, unsigned int sample_rate) {
+- AVCodec *codec = FindCodec(codec_name);
++ const AVCodec *codec = FindCodec(codec_name);
+ AVCodecContext *codec_context = NULL;
+ AVStream *stream = AddStream(codec, &codec_context);
+ AudioEncoder *encoder;
+@@ -194,7 +194,7 @@ unsigned int Muxer::GetQueuedPacketCount(unsigned int stream_index) {
+ void Muxer::Init() {
+
+ // get the format we want (this is just a pointer, we don't have to free this)
+- AVOutputFormat *format = av_guess_format(m_container_name.toUtf8().constData(), NULL, NULL);
++ const AVOutputFormat *format = av_guess_format(m_container_name.toUtf8().constData(), NULL, NULL);
+ if(format == NULL) {
+ Logger::LogError("[Muxer::Init] " + Logger::tr("Error: Can't find chosen output format!"));
+ throw LibavException();
+@@ -261,8 +261,8 @@ void Muxer::Free() {
+ }
+ }
+
+-AVCodec* Muxer::FindCodec(const QString& codec_name) {
+- AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
++const AVCodec* Muxer::FindCodec(const QString& codec_name) {
++ const AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
+ if(codec == NULL) {
+ Logger::LogError("[Muxer::FindCodec] " + Logger::tr("Error: Can't find codec!"));
+ throw LibavException();
+@@ -270,7 +270,7 @@ AVCodec* Muxer::FindCodec(const QString& codec_name) {
+ return codec;
+ }
+
+-AVStream* Muxer::AddStream(AVCodec* codec, AVCodecContext** codec_context) {
++AVStream* Muxer::AddStream(const AVCodec* codec, AVCodecContext** codec_context) {
+ assert(!m_started);
+ assert(m_format_context->nb_streams < MUXER_MAX_STREAMS);
+
+diff --git a/src/AV/Output/Muxer.h b/src/AV/Output/Muxer.h
+index d72347d..b104bcb 100644
+--- a/src/AV/Output/Muxer.h
++++ b/src/AV/Output/Muxer.h
+@@ -114,8 +114,8 @@ private:
+ void Init();
+ void Free();
+
+- AVCodec* FindCodec(const QString& codec_name);
+- AVStream* AddStream(AVCodec* codec, AVCodecContext** codec_context);
++ const AVCodec* FindCodec(const QString& codec_name);
++ AVStream* AddStream(const AVCodec* codec, AVCodecContext** codec_context);
+
+ void MuxerThread();
+
+diff --git a/src/AV/Output/VideoEncoder.cpp b/src/AV/Output/VideoEncoder.cpp
+index 8087e8e..fc8b5d1 100644
+--- a/src/AV/Output/VideoEncoder.cpp
++++ b/src/AV/Output/VideoEncoder.cpp
+@@ -34,7 +34,7 @@ const std::vector<VideoEncoder::PixelFormatData> VideoEncoder::SUPPORTED_PIXEL_F
+ {"rgb", AV_PIX_FMT_RGB24, false},
+ };
+
+-VideoEncoder::VideoEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options)
++VideoEncoder::VideoEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options)
+ : BaseEncoder(muxer, stream, codec_context, codec, options) {
+
+ #if !SSR_USE_AVCODEC_ENCODE_VIDEO2
+@@ -95,7 +95,7 @@ unsigned int VideoEncoder::GetFrameRate() {
+ }
+
+ bool VideoEncoder::AVCodecIsSupported(const QString& codec_name) {
+- AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
++ const AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
+ if(codec == NULL)
+ return false;
+ if(!av_codec_is_encoder(codec))
+@@ -111,7 +111,7 @@ bool VideoEncoder::AVCodecIsSupported(const QString& codec_name) {
+ return false;
+ }
+
+-void VideoEncoder::PrepareStream(AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options, const std::vector<std::pair<QString, QString> >& codec_options,
++void VideoEncoder::PrepareStream(AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options, const std::vector<std::pair<QString, QString> >& codec_options,
+ unsigned int bit_rate, unsigned int width, unsigned int height, unsigned int frame_rate) {
+
+ if(width == 0 || height == 0) {
+diff --git a/src/AV/Output/VideoEncoder.h b/src/AV/Output/VideoEncoder.h
+index cb7ca27..68d872e 100644
+--- a/src/AV/Output/VideoEncoder.h
++++ b/src/AV/Output/VideoEncoder.h
+@@ -40,7 +40,7 @@ private:
+ #endif
+
+ public:
+- VideoEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options);
++ VideoEncoder(Muxer* muxer, AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options);
+ ~VideoEncoder();
+
+ // Returns the required pixel format.
+@@ -55,7 +55,7 @@ public:
+
+ public:
+ static bool AVCodecIsSupported(const QString& codec_name);
+- static void PrepareStream(AVStream* stream, AVCodecContext* codec_context, AVCodec* codec, AVDictionary** options, const std::vector<std::pair<QString, QString> >& codec_options,
++ static void PrepareStream(AVStream* stream, AVCodecContext* codec_context, const AVCodec* codec, AVDictionary** options, const std::vector<std::pair<QString, QString> >& codec_options,
+ unsigned int bit_rate, unsigned int width, unsigned int height, unsigned int frame_rate);
+
+ private:
+--
+2.43.0
+
diff --git a/srcpkgs/ssr/template b/srcpkgs/ssr/template
index 3097754e3cbe54..5d5c0a98d65f58 100644
--- a/srcpkgs/ssr/template
+++ b/srcpkgs/ssr/template
@@ -1,11 +1,11 @@
# Template file for 'ssr'
pkgname=ssr
version=0.4.4
-revision=2
+revision=3
build_style=cmake
configure_args="-DWITH_QT5=ON"
hostmakedepends="pkg-config"
-makedepends="alsa-lib-devel ffmpeg-devel glu-devel jack-devel pulseaudio-devel
+makedepends="alsa-lib-devel ffmpeg6-devel glu-devel jack-devel pulseaudio-devel
qt5-tools-devel qt5-x11extras-devel libXinerama-devel v4l-utils-devel"
depends="desktop-file-utils hicolor-icon-theme"
short_desc="Simple Screen Recorder for programs and games"
From 8c30ab2716ecd2978deaf8c6a255e8c9270e0cc4 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:52 -0400
Subject: [PATCH 53/93] synfig: revbump for ffmpeg6 and mlt7
---
srcpkgs/synfig/patches/ffmpeg6.patch | 71 ++++++++++++++++++++++++++++
srcpkgs/synfig/template | 8 ++--
2 files changed, 75 insertions(+), 4 deletions(-)
create mode 100644 srcpkgs/synfig/patches/ffmpeg6.patch
diff --git a/srcpkgs/synfig/patches/ffmpeg6.patch b/srcpkgs/synfig/patches/ffmpeg6.patch
new file mode 100644
index 00000000000000..10780b42782f4b
--- /dev/null
+++ b/srcpkgs/synfig/patches/ffmpeg6.patch
@@ -0,0 +1,71 @@
+--- a/src/modules/mod_libavcodec/trgt_av.cpp 2022-10-25 09:14:12.000000000 -0400
++++ b/src/modules/mod_libavcodec/trgt_av.cpp 2023-05-05 21:34:17.899194559 -0400
+@@ -38,6 +41,7 @@
+ extern "C"
+ {
+ #ifdef HAVE_LIBAVFORMAT_AVFORMAT_H
++# include <libavcodec/avcodec.h>
+ # include <libavformat/avformat.h>
+ #elif defined(HAVE_AVFORMAT_H)
+ # include <avformat.h>
+@@ -155,11 +156,11 @@
+ }
+
+ bool open_video_stream() {
+- if (avcodec_open2(video_context, NULL, NULL) < 0) {
++ if (avcodec_open2(video_context, nullptr, nullptr) < 0) {
+ synfig::error("Target_LibAVCodec: could not open video codec");
+ // seems the calling of avcodec_free_context after error will cause crash
+ // so just forget about this context
+- video_context = NULL;
++ video_context = nullptr;
+ close();
+ return false;
+ }
+@@ -234,15 +235,21 @@
+ close();
+
+ if (!av_registered) {
++#if LIBAVCODEC_VERSION_MAJOR < 58 // FFMPEG < 4.0
+ av_register_all();
++#endif
+ av_registered = true;
+ }
+
+ // guess format
+- AVOutputFormat *format = av_guess_format(NULL, filename.c_str(), NULL);
++#if LIBAVCODEC_VERSION_MAJOR < 59 // FFMPEG < 5.0
++ AVOutputFormat* format = av_guess_format(nullptr, filename.c_str(), nullptr);
++#else
++ const AVOutputFormat* format = av_guess_format(nullptr, filename.c_str(), nullptr);
++#endif
+ if (!format) {
+ synfig::warning("Target_LibAVCodec: unable to guess the output format, defaulting to MPEG");
+- format = av_guess_format("mpeg", NULL, NULL);
++ format = av_guess_format("mpeg", nullptr, nullptr);
+ }
+ if (!format) {
+ synfig::error("Target_LibAVCodec: unable to find 'mpeg' output format");
+@@ -254,6 +261,7 @@
+ context = avformat_alloc_context();
+ assert(context);
+ context->oformat = format;
++#if LIBAVCODEC_VERSION_MAJOR < 58 // FFMPEG < 4.0
+ if (filename.size() + 1 > sizeof(context->filename)) {
+ synfig::error(
+ "Target_LibAVCodec: filename too long, max length is %d, filename is '%s'",
+@@ -263,6 +271,14 @@
+ return false;
+ }
+ memcpy(context->filename, filename.c_str(), filename.size() + 1);
++#else
++ context->url = av_strndup(filename.c_str(), filename.size());
++ if (!context->url) {
++ synfig::error("Target_LibAVCodec: cannot allocate space for filename");
++ close();
++ return false;
++ }
++#endif
+
+ packet = av_packet_alloc();
+ assert(packet);
diff --git a/srcpkgs/synfig/template b/srcpkgs/synfig/template
index 510eb2b4dbf05d..6308bdf1758124 100644
--- a/srcpkgs/synfig/template
+++ b/srcpkgs/synfig/template
@@ -2,12 +2,12 @@
# Should be kept in sync with 'synfigstudio' and 'ETL'
pkgname=synfig
version=1.4.5
-revision=1
+revision=2
build_style=gnu-configure
configure_args="--with-boost-libdir=${XBPS_CROSS_BASE}/usr/lib"
hostmakedepends="boost-build ImageMagick pkg-config intltool"
-makedepends="ETL gettext-devel libxml++-devel mlt-devel libmagick-devel
- libmng-devel boost-build boost-devel libopenexr-devel ffmpeg-devel"
+makedepends="ETL gettext-devel libxml++-devel mlt7-devel libmagick-devel
+ libmng-devel boost-build boost-devel libopenexr-devel ffmpeg6-devel"
depends="ImageMagick"
short_desc="CLI 2D vector and timeline-based animation software"
maintainer="Orphaned <orphan@voidlinux.org>"
@@ -20,7 +20,7 @@ CXXFLAGS="-std=c++11 -DHAVE_LOCALE_H=1"
synfig-devel_package() {
depends="${sourcepkg}>=${version}_${revision}
- libopenexr-devel libxml++-devel mlt-devel"
+ libopenexr-devel libxml++-devel mlt7-devel"
short_desc+=" - development files"
pkg_install() {
vmove usr/bin/synfig-config
From 1d036e1aa565b5df09f91039c27c66359a693c61 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:52 -0400
Subject: [PATCH 54/93] timg: revbump for ffmpeg6
---
srcpkgs/timg/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/timg/template b/srcpkgs/timg/template
index 2a2ab763d2fddf..c4ef9765ff4e5d 100644
--- a/srcpkgs/timg/template
+++ b/srcpkgs/timg/template
@@ -1,11 +1,11 @@
# Template file for 'timg'
pkgname=timg
version=1.4.5
-revision=1
+revision=2
build_style=cmake
configure_args="-DWITH_OPENSLIDE_SUPPORT=off -Wno-dev"
hostmakedepends="pkg-config git"
-makedepends="libgraphicsmagick-devel ffmpeg-devel libjpeg-turbo-devel libexif-devel"
+makedepends="libgraphicsmagick-devel ffmpeg6-devel libjpeg-turbo-devel libexif-devel"
short_desc="24-bit color image & video viewer for terminal"
maintainer="33KK <g33kk@pm.me>"
license="GPL-2.0-only"
From 6c068341c6df61f9672e425212236e90382cc96c Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:52 -0400
Subject: [PATCH 55/93] vice: revbump for ffmpeg6
---
srcpkgs/vice/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/vice/template b/srcpkgs/vice/template
index 1c641d9ae9be22..052fa1eecc6268 100644
--- a/srcpkgs/vice/template
+++ b/srcpkgs/vice/template
@@ -1,7 +1,7 @@
# Template file for 'vice'
pkgname=vice
version=3.8
-revision=1
+revision=2
build_style=gnu-configure
configure_args="--enable-cpuhistory --enable-x64 --disable-pdf-docs
--libdir=/usr/lib$XBPS_TARGET_WORDSIZE $(vopt_enable sdl2 sdlui2)
@@ -12,7 +12,7 @@ hostmakedepends="pkg-config flex dos2unix xa perl glib-devel xdg-utils"
makedepends="zlib-devel readline-devel libpng-devel glew-devel alsa-lib-devel
libcurl-devel $(vopt_if sdl2 SDL2_mixer-devel) $(vopt_if sdl2 SDL2-devel)
$(vopt_if gtk3 gtk+3-devel) $(vopt_if gtk3 pulseaudio-devel)
- $(vopt_if ffmpeg ffmpeg-devel)"
+ $(vopt_if ffmpeg ffmpeg6-devel)"
short_desc="Emulator for C64, C128, CBM-II, PET, VIC20, Plus4 and C16"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-2.0-or-later"
From f513ed1dc5a8ddf42ccbfe95335c9142d7357e5d Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:52 -0400
Subject: [PATCH 56/93] waypipe: revbump for ffmpeg6
---
srcpkgs/waypipe/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/waypipe/template b/srcpkgs/waypipe/template
index 6da88b21bf2a19..871147b0e2148e 100644
--- a/srcpkgs/waypipe/template
+++ b/srcpkgs/waypipe/template
@@ -1,14 +1,14 @@
# Template file for 'waypipe'
pkgname=waypipe
version=0.8.6
-revision=1
+revision=2
build_style=meson
# lto is off because it causes linking errors in armv6l and armv7l (due to NEON)
configure_args="-Dwerror=false -Dwith_dmabuf=enabled -Dwith_lz4=enabled
-Dwith_zstd=enabled -Dwith_video=enabled -Dwith_vaapi=enabled -Db_lto=false"
hostmakedepends="wayland-devel scdoc pkg-config"
makedepends="liblz4-devel libzstd-devel libva-devel
- MesaLib-devel libdrm-devel ffmpeg-devel"
+ MesaLib-devel libdrm-devel ffmpeg6-devel"
depends="openssh"
short_desc="Proxy for Wayland clients"
maintainer="Érico Nogueira <ericonr@disroot.org>"
From e5eb3eee7b6e5aeb943feff8004d86abbe4fba70 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 22 Mar 2023 20:01:52 -0400
Subject: [PATCH 57/93] xpra: revbump for ffmpeg6
---
srcpkgs/xpra/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/xpra/template b/srcpkgs/xpra/template
index a5bd87040d01d3..fd1f52ac64b750 100644
--- a/srcpkgs/xpra/template
+++ b/srcpkgs/xpra/template
@@ -1,12 +1,12 @@
# Template file for 'xpra'
pkgname=xpra
version=6.0.1
-revision=1
+revision=2
build_style=python3-module
make_build_args="--without-cuda_kernels --without-cuda_rebuild"
make_install_args="$(vopt_with docs) ${make_build_args}"
hostmakedepends="pkg-config python3-Cython $(vopt_if docs pandoc)"
-makedepends="ffmpeg-devel libXcomposite-devel libXrandr-devel libXtst-devel
+makedepends="ffmpeg6-devel libXcomposite-devel libXrandr-devel libXtst-devel
libvpx-devel libwebp-devel libxkbfile-devel python3-gobject-devel x264-devel
gtk+3-devel pam-devel libXres-devel liblz4-devel libavif-devel procps-ng-devel
xxHash-devel"
From 374c262e1eaa7d1da3c947d371f327bf03dc14a7 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 31 Mar 2023 09:08:40 -0400
Subject: [PATCH 58/93] openimagedenoise: revbump for ffmpeg6
---
srcpkgs/openimagedenoise/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/openimagedenoise/template b/srcpkgs/openimagedenoise/template
index 109deb171c3f75..44edf38fb289d8 100644
--- a/srcpkgs/openimagedenoise/template
+++ b/srcpkgs/openimagedenoise/template
@@ -1,7 +1,7 @@
# Template file for 'openimagedenoise'
pkgname=openimagedenoise
version=1.4.3
-revision=2
+revision=3
archs="x86_64*"
build_style=cmake
hostmakedepends="ispc python3"
From b0692f079494506618c3b1463c07ff19aa82aaa4 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Mon, 3 Apr 2023 23:31:45 -0400
Subject: [PATCH 59/93] shotcut: revbump for ffmpeg6
---
srcpkgs/shotcut/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/shotcut/template b/srcpkgs/shotcut/template
index 13e8a08522b68f..5c9ae4e1847c92 100644
--- a/srcpkgs/shotcut/template
+++ b/srcpkgs/shotcut/template
@@ -1,14 +1,14 @@
# Template file for 'shotcut'
pkgname=shotcut
version=23.09.29
-revision=2
+revision=3
build_style=cmake
configure_args="-DSHOTCUT_VERSION=${version}"
hostmakedepends="pkg-config qt6-base qt6-tools"
makedepends="mlt7-devel qt6-declarative-devel qt6-multimedia-devel
qt6-websockets-devel qt6-plugin-mysql qt6-plugin-odbc
qt6-plugin-pgsql qt6-plugin-sqlite"
-depends="ffmpeg frei0r-plugins qt6-declarative"
+depends="ffmpeg6 frei0r-plugins qt6-declarative"
short_desc="Free, open source, cross-platform video editor"
maintainer="John <me@johnnynator.dev>"
license="GPL-3.0-or-later"
From f1759dd4411b782b097cfee89dc5370dc8bda96e Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Sun, 4 Jun 2023 11:28:26 -0400
Subject: [PATCH 60/93] siril: revbump for ffmpeg6
---
srcpkgs/siril/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/siril/template b/srcpkgs/siril/template
index 84332f79d060d2..65a7d8f84fe693 100644
--- a/srcpkgs/siril/template
+++ b/srcpkgs/siril/template
@@ -1,12 +1,12 @@
# Template file for 'siril'
pkgname=siril
version=0.9.12
-revision=10
+revision=11
build_style=gnu-configure
hostmakedepends="pkg-config intltool autoconf automake gettext-devel"
makedepends="fftw-devel libconfig-devel libopencv-devel libffms2-devel
gsl-devel libraw-devel tiff-devel libpng-devel libcurl-devel
- ffmpeg-devel gtk+3-devel cfitsio-devel gsl-devel libgomp-devel"
+ ffmpeg6-devel gtk+3-devel cfitsio-devel gsl-devel libgomp-devel"
depends="gnuplot"
short_desc="Free astronomical image processing software"
maintainer="Orphaned <orphan@voidlinux.org>"
From 1a1c1a3ca5eadf3b81c4af0bd60fe07869f428d3 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Sat, 8 Jul 2023 20:20:59 -0400
Subject: [PATCH 61/93] tracker-miners: revbump for ffmpeg6
---
srcpkgs/tracker-miners/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/tracker-miners/template b/srcpkgs/tracker-miners/template
index 169cfc58afae52..bb4126b4936423 100644
--- a/srcpkgs/tracker-miners/template
+++ b/srcpkgs/tracker-miners/template
@@ -1,7 +1,7 @@
# Template file for 'tracker-miners'
pkgname=tracker-miners
version=3.7.3
-revision=1
+revision=2
build_style=meson
build_helper=qemu
# missing libgrss for miner_rss
@@ -14,7 +14,7 @@ configure_args="-Dtracker_core=system -Dextract=true -Dcue=enabled -Dexif=enable
-Dsystemd_user_services=false -Dnetwork_manager=enabled
$(vopt_feature landlock)"
hostmakedepends="pkg-config glib-devel intltool asciidoc"
-makedepends="tracker-devel ffmpeg-devel dbus-devel exempi-devel
+makedepends="tracker-devel ffmpeg6-devel dbus-devel exempi-devel
libglib-devel libgexiv2-devel gstreamer1-devel icu-devel libcue-devel
libexif-devel libgsf-devel libgxps-devel libiptcdata-devel libjpeg-turbo-devel
libosinfo-devel libpng-devel libseccomp-devel tiff-devel libxml2-devel
From 3b981529653e7412aa1ee3476289199700f355fa Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 30 Aug 2023 09:10:02 -0400
Subject: [PATCH 62/93] tg_owt: revbump for ffmpeg6
---
srcpkgs/tg_owt/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/tg_owt/template b/srcpkgs/tg_owt/template
index 34e8fef0540569..4e13db81869a32 100644
--- a/srcpkgs/tg_owt/template
+++ b/srcpkgs/tg_owt/template
@@ -1,7 +1,7 @@
# Template file for 'tg_owt'
pkgname=tg_owt
version=0.0.0.20231221
-revision=2
+revision=3
_commit=afd9d5d31798d3eacf9ed6c30601e91d0f1e4d60
_libyuv_commit=04821d1e7d60845525e8db55c7bcd41ef5be9406
_abseil_commit=8c0b94e793a66495e0b1f34a5eb26bd7dc672db0
@@ -11,7 +11,7 @@ build_style=cmake
configure_args="-DBUILD_SHARED_LIBS=OFF -DTG_OWT_ARCH_ARMV7_USE_NEON=OFF"
hostmakedepends="pkg-config yasm protobuf"
makedepends="alsa-lib-devel pulseaudio-devel openssl-devel opus-devel
- pipewire-devel ffmpeg-devel libjpeg-turbo-devel protobuf-devel
+ pipewire-devel ffmpeg6-devel libjpeg-turbo-devel protobuf-devel
libevent-devel libXcomposite-devel libXrandr-devel libXdamage-devel
libepoxy-devel libdrm-devel libXrender-devel libglib-devel libgbm-devel
libvpx-devel"
From 77cb32715d8deb5cbb9426da771b6dbb09dad91f Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 30 Aug 2023 09:10:44 -0400
Subject: [PATCH 63/93] telegram-desktop: revbump for ffmpeg6
---
srcpkgs/telegram-desktop/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/telegram-desktop/template b/srcpkgs/telegram-desktop/template
index 4e4aa79747e64a..c57c0373a09327 100644
--- a/srcpkgs/telegram-desktop/template
+++ b/srcpkgs/telegram-desktop/template
@@ -1,7 +1,7 @@
# Template file for 'telegram-desktop'
pkgname=telegram-desktop
version=5.1.7
-revision=2
+revision=3
build_style=cmake
build_helper="qemu gir"
configure_args="-DTDESKTOP_API_ID=209235
@@ -12,7 +12,7 @@ configure_args="-DTDESKTOP_API_ID=209235
-DQT_HOST_PATH=/usr"
hostmakedepends="pkg-config qt6-base python3 extra-cmake-modules
qt6-wayland-tools wayland-devel protobuf glib-devel kf6-kcoreaddons"
-makedepends="alsa-lib-devel boost-devel fmt-devel ffmpeg-devel libglib-devel
+makedepends="alsa-lib-devel boost-devel fmt-devel ffmpeg6-devel libglib-devel
gobject-introspection libdbusmenu-glib-devel libopenal-devel
minizip-devel opus-devel xxHash-devel pulseaudio-devel range-v3
qt6-svg-devel libva-devel rapidjson liblz4-devel liblzma-devel
From 02a25d935ec586d8fedc202a5f1afa4e767c38cd Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 30 Aug 2023 09:12:09 -0400
Subject: [PATCH 64/93] openmw: revbump for ffmpeg6
---
srcpkgs/openmw/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/openmw/template b/srcpkgs/openmw/template
index 0abf5ff7cdbecc..2c6c351f606f92 100644
--- a/srcpkgs/openmw/template
+++ b/srcpkgs/openmw/template
@@ -1,7 +1,7 @@
# Template file for 'openmw'
pkgname=openmw
version=0.48.0
-revision=2
+revision=3
build_style=cmake
_recast_commit=e75adf86f91eb3082220085e42dda62679f9a3ea
_bullet_tag=3.17
@@ -10,7 +10,7 @@ _bullet_tag=3.17
configure_args="-DDESIRED_QT_VERSION=5 -DOPENMW_USE_SYSTEM_BULLET=OFF
-DOPENMW_LTO_BUILD=ON -DFETCHCONTENT_FULLY_DISCONNECTED=On"
hostmakedepends="pkg-config qt5-host-tools qt5-qmake"
-makedepends="SDL2-devel boost-devel ffmpeg-devel libXt-devel
+makedepends="SDL2-devel boost-devel ffmpeg6-devel libXt-devel
libmygui-devel libopenal-devel libunshield-devel osg-devel qt5-devel
liblz4-devel yaml-cpp-devel LuaJIT-devel"
short_desc="Open Implementation of Morrowind's Engine"
From 97a009e88a47fb9ca7a9a690a9316d51a80707ba Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Sun, 15 Oct 2023 21:47:18 -0400
Subject: [PATCH 65/93] libopenshot: revbump for ffmpeg6
---
srcpkgs/libopenshot/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/libopenshot/template b/srcpkgs/libopenshot/template
index fc45a258057079..2da22764f66e9b 100644
--- a/srcpkgs/libopenshot/template
+++ b/srcpkgs/libopenshot/template
@@ -1,13 +1,13 @@
# Template file for 'libopenshot'
pkgname=libopenshot
version=0.3.2
-revision=1
+revision=2
build_style=cmake
# Builds fail with Ruby-2.4.1
configure_args="-DENABLE_RUBY=OFF -DUSE_SYSTEM_JSONCPP=ON"
hostmakedepends="swig doxygen ruby python3 python3-setuptools pkg-config
qt5-qmake qt5-host-tools"
-makedepends="python3-devel ffmpeg-devel libmagick-devel qt5-devel libgomp-devel
+makedepends="python3-devel ffmpeg6-devel libmagick-devel qt5-devel libgomp-devel
libopenshot-audio-devel qt5-multimedia-devel unittest-cpp zeromq-devel cppzmq
jsoncpp-devel qt5-svg-devel"
depends="python3"
From 65844d61f39074aa3b4c846a9419e46cd9a31e16 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 8 Nov 2023 10:10:30 -0500
Subject: [PATCH 66/93] openimageio: revbump for ffmpeg6
---
srcpkgs/openimageio/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/openimageio/template b/srcpkgs/openimageio/template
index 27d2131bc0a61a..27a3ecd3aa92de 100644
--- a/srcpkgs/openimageio/template
+++ b/srcpkgs/openimageio/template
@@ -1,7 +1,7 @@
# Template file for 'openimageio'
pkgname=openimageio
version=2.4.9.0
-revision=8
+revision=9
build_style=cmake
build_helper=qemu
configure_args="-DUSE_QT=0 -DUSE_PYTHON=0 -DOIIO_BUILD_TESTS=0
@@ -10,7 +10,7 @@ configure_args="-DUSE_QT=0 -DUSE_PYTHON=0 -DOIIO_BUILD_TESTS=0
hostmakedepends="pkg-config git"
makedepends="boost-devel giflib-devel libraw-devel libopenjpeg-devel libwebp-devel
libjpeg-turbo-devel tiff-devel libpng-devel libopenexr-devel freetype-devel
- ffmpeg-devel opencolorio-devel ptex-devel libheif-devel openvdb-devel
+ ffmpeg6-devel opencolorio-devel ptex-devel libheif-devel openvdb-devel
robin-map fmt-devel"
short_desc="Library for reading and writing images"
maintainer="lemmi <lemmi@nerd2nerd.org>"
From 7d2689d911a045fdab16cc78fd566e346f14b66b Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Wed, 8 Nov 2023 10:11:57 -0500
Subject: [PATCH 67/93] synfigstudio: revbump for ffmpeg6
---
srcpkgs/synfigstudio/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/synfigstudio/template b/srcpkgs/synfigstudio/template
index 5cde919b703343..db86252c95d6fe 100644
--- a/srcpkgs/synfigstudio/template
+++ b/srcpkgs/synfigstudio/template
@@ -2,7 +2,7 @@
# Should be kept in sync with 'synfig' and 'ETL'
pkgname=synfigstudio
version=1.4.5
-revision=1
+revision=2
build_style=gnu-configure
configure_args="--disable-update-mimedb"
hostmakedepends="pkg-config intltool gettext synfig"
From b13103b2df2d9cff3f0924ae6a985cb2854928f3 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 10 Nov 2023 14:53:10 -0500
Subject: [PATCH 68/93] mixxx: revbump for ffmpeg6
---
srcpkgs/mixxx/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mixxx/template b/srcpkgs/mixxx/template
index 6a79b328c1abf0..3568315470a260 100644
--- a/srcpkgs/mixxx/template
+++ b/srcpkgs/mixxx/template
@@ -1,11 +1,11 @@
# Template file for 'mixxx'
pkgname=mixxx
version=2.3.3
-revision=7
+revision=8
build_style=cmake
configure_args="-DCMAKE_BUILD_TYPE=Release"
hostmakedepends="extra-cmake-modules pkg-config protobuf qt5-host-tools qt5-qmake"
-makedepends="chromaprint-devel faad2-devel ffmpeg-devel libkeyfinder-devel glu-devel
+makedepends="chromaprint-devel faad2-devel ffmpeg6-devel libkeyfinder-devel glu-devel
lame-devel libid3tag-devel libmad-devel libmodplug-devel libusb-devel
opusfile-devel libflac-devel libogg-devel libsndfile-devel libvorbis-devel
wavpack-devel portaudio-devel portmidi-devel protobuf-devel qt5-script-devel
From 60eb661065a0e0bc7b97457cda12da73b55a952a Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 10 Nov 2023 14:53:28 -0500
Subject: [PATCH 69/93] musikcube: revbump for ffmpeg6
---
srcpkgs/musikcube/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/musikcube/template b/srcpkgs/musikcube/template
index acdf51453b8c94..7b594ac432a666 100644
--- a/srcpkgs/musikcube/template
+++ b/srcpkgs/musikcube/template
@@ -1,12 +1,12 @@
# Template file for 'musikcube'
pkgname=musikcube
version=3.0.2
-revision=1
+revision=2
build_style=cmake
make_cmd=make
configure_args="-DNO_NCURSESW=1"
hostmakedepends="pkg-config"
-makedepends="libgme-devel libogg-devel libmicrohttpd-devel ffmpeg-devel
+makedepends="libgme-devel libogg-devel libmicrohttpd-devel ffmpeg6-devel
openssl-devel pulseaudio-devel lame-devel zlib-devel alsa-lib-devel
libvorbis-devel libcurl-devel ncurses-devel libev-devel taglib-devel
sndio-devel pipewire-devel ncurses-libtinfo-devel libopenmpt-devel
From 255f2043df98821ef3c64d4db312215299a244f3 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 10 Nov 2023 14:54:13 -0500
Subject: [PATCH 70/93] wf-recorder: revbump for ffmpeg6
---
srcpkgs/wf-recorder/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/wf-recorder/template b/srcpkgs/wf-recorder/template
index 08f986b0310067..7a1bc7afc509ec 100644
--- a/srcpkgs/wf-recorder/template
+++ b/srcpkgs/wf-recorder/template
@@ -1,10 +1,10 @@
# Template file for 'wf-recorder'
pkgname=wf-recorder
version=0.4.1
-revision=2
+revision=3
build_style=meson
hostmakedepends="pkg-config scdoc wayland-devel"
-makedepends="wayland-protocols wayland-devel ffmpeg-devel libgbm-devel x264-devel
+makedepends="wayland-protocols wayland-devel ffmpeg6-devel libgbm-devel x264-devel
pulseaudio-devel"
short_desc="Screen recorder for wlroots-based compositors"
maintainer="Jony <maybe-one-day-ubermensch@protonmail.com>"
From f53fc8762c260dd4538938e50fc7c03185484a5d Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 10 Nov 2023 14:54:26 -0500
Subject: [PATCH 71/93] obs: revbump for ffmpeg6
---
srcpkgs/obs/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/obs/template b/srcpkgs/obs/template
index feb9649977a8d4..dc2f6bd54f6c7e 100644
--- a/srcpkgs/obs/template
+++ b/srcpkgs/obs/template
@@ -1,14 +1,14 @@
# Template file for 'obs'
pkgname=obs
version=30.1.1
-revision=1
+revision=2
archs="i686* x86_64* ppc64le* aarch64* riscv64*"
build_style=cmake
configure_args="-DOBS_VERSION_OVERRIDE=${version} -DENABLE_JACK=ON
-DENABLE_VST=OFF -DENABLE_AJA=OFF -DCALM_DEPRECATION=ON
-DENABLE_SCRIPTING_LUA=$(vopt_if luajit 'ON' 'OFF')"
-hostmakedepends="pkg-config swig python3-devel qt6-base"
-makedepends="$(vopt_if luajit LuaJIT-devel) fdk-aac-devel ffmpeg-devel glu-devel
+hostmakedepends="pkg-config swig python3-devel qt6-base qt6-base-private-devel"
+makedepends="$(vopt_if luajit LuaJIT-devel) fdk-aac-devel ffmpeg6-devel glu-devel
jack-devel libXcomposite-devel libcurl-devel libva-devel
pulseaudio-devel python3-devel speexdsp-devel v4l-utils-devel
vlc-devel qt6-svg-devel x264-devel mbedtls-devel jansson-devel
From 236ac02e28f4e5dc70e19effa66d3c3f14c47f09 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 10 Nov 2023 14:54:36 -0500
Subject: [PATCH 72/93] mlt7: revbump for ffmpeg6
---
srcpkgs/mlt7/template | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/srcpkgs/mlt7/template b/srcpkgs/mlt7/template
index 80ab2781baf106..7daa9354b4ee9c 100644
--- a/srcpkgs/mlt7/template
+++ b/srcpkgs/mlt7/template
@@ -1,13 +1,13 @@
# Template file for 'mlt7'
pkgname=mlt7
version=7.24.0
-revision=1
+revision=2
build_style=cmake
configure_args="-DSWIG_PYTHON=ON -DMOD_QT6=ON"
hostmakedepends="doxygen pkg-config ladspa-sdk swig python3 which
qt5-host-tools qt5-qmake qt6-base qt6-tools"
-makedepends="alsa-lib-devel ffmpeg-devel gtk+-devel jack-devel ladspa-sdk
- libexif-devel libsamplerate-devel libxml2-devel sox-devel SDL_image-devel
+makedepends="alsa-lib-devel ffmpeg6-devel gtk+-devel jack-devel ladspa-sdk
+ libexif-devel libsamplerate-devel libxml2-devel sox-devel SDL2_image-devel
fftw-devel frei0r-plugins python3-devel pulseaudio-devel movit-devel
libvidstab-devel qt5-svg-devel qt6-svg-devel qt6-qt5compat-devel"
depends="mlt7-data>=${version}_${revision} ladspa-sdk-example-plugins"
From 7d1c9a59344271d8a4e2b50b40920beca61266a4 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 10 Nov 2023 15:00:15 -0500
Subject: [PATCH 73/93] baresip: revbump for ffmpeg6
---
srcpkgs/baresip/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/baresip/template b/srcpkgs/baresip/template
index e6c845637bb50e..f591afd6c4d53a 100644
--- a/srcpkgs/baresip/template
+++ b/srcpkgs/baresip/template
@@ -1,13 +1,13 @@
# Template file for 'baresip'
pkgname=baresip
version=3.11.0
-revision=1
+revision=2
build_style=cmake
hostmakedepends="pkg-config glib-devel"
makedepends="libgsm-devel libpng-devel openssl-devel libsndfile-devel
opus-devel re-devel spandsp-devel speex-devel speexdsp-devel
tiff-devel twolame-devel cairo-devel gst-plugins-base1-devel jack-devel
- gstreamer1-devel gtk+3-devel mpg123-devel SDL2-devel ffmpeg-devel libvpx-devel
+ gstreamer1-devel gtk+3-devel mpg123-devel SDL2-devel ffmpeg6-devel libvpx-devel
libX11-devel v4l-utils-devel x265-devel libXext-devel webrtc-audio-processing-devel
fdk-aac-devel libmosquitto-devel codec2-devel"
# sndio-devel Currently not hooked up in their cmake build system
From 0f6f191eb6fca3f85668fbe563dd34b8bb03e321 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 10 Nov 2023 15:02:30 -0500
Subject: [PATCH 74/93] QMPlay2: revbump for ffmpeg6
---
srcpkgs/QMPlay2/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/QMPlay2/template b/srcpkgs/QMPlay2/template
index 054b7bad0452f7..b58ef7c089bd4e 100644
--- a/srcpkgs/QMPlay2/template
+++ b/srcpkgs/QMPlay2/template
@@ -1,10 +1,10 @@
# Template file for 'QMPlay2'
pkgname=QMPlay2
version=24.06.16
-revision=1
+revision=2
build_style=cmake
hostmakedepends="pkg-config qt5-qmake qt5-host-tools"
-makedepends="alsa-lib-devel ffmpeg-devel libass-devel libcdio-devel libgme-devel
+makedepends="alsa-lib-devel ffmpeg6-devel libass-devel libcdio-devel libgme-devel
libsidplayfp-devel libva-glx-devel libXv-devel pulseaudio-devel
qt5-svg-devel qt5-tools-devel qt5-x11extras-devel taglib-devel
libcdio-paranoia-devel qt5-declarative-devel"
From 929ce99c84f3ba1c3e41cc48b4b88f6a32a68762 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 10 Nov 2023 15:02:34 -0500
Subject: [PATCH 75/93] alsa-plugins: revbump for ffmpeg6
---
srcpkgs/alsa-plugins/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/alsa-plugins/template b/srcpkgs/alsa-plugins/template
index 4c892ed730d9a5..7948570cc0003d 100644
--- a/srcpkgs/alsa-plugins/template
+++ b/srcpkgs/alsa-plugins/template
@@ -1,11 +1,11 @@
# Template file for 'alsa-plugins'
pkgname=alsa-plugins
version=1.2.12
-revision=1
+revision=2
build_style=gnu-configure
configure_args="--disable-maemo-plugin"
hostmakedepends="pkg-config"
-makedepends="ffmpeg-devel jack-devel libsamplerate-devel pulseaudio-devel"
+makedepends="ffmpeg6-devel jack-devel libsamplerate-devel pulseaudio-devel"
short_desc="Advanced Linux Sound Architecture (ALSA) extra plugins"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later"
From de67f8f82f8c8c5fa68f3445e0fb511ca8da5007 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 10 Nov 2023 15:02:43 -0500
Subject: [PATCH 76/93] minidlna: revbump for ffmpeg6
---
srcpkgs/minidlna/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/minidlna/template b/srcpkgs/minidlna/template
index 5fa929f3a0c124..473c9a95aeaf43 100644
--- a/srcpkgs/minidlna/template
+++ b/srcpkgs/minidlna/template
@@ -1,7 +1,7 @@
# Template file for 'minidlna'
pkgname=minidlna
version=1.3.3
-revision=2
+revision=3
build_style=gnu-configure
configure_args="
--sbindir=/usr/bin
@@ -12,7 +12,7 @@ make_dirs="
/var/lib/minidlna 0750 minidlna minidlna
/var/log/minidlna 0750 minidlna minidlna"
hostmakedepends="pkg-config gettext"
-makedepends="ffmpeg-devel libjpeg-turbo-devel sqlite-devel libexif-devel
+makedepends="ffmpeg6-devel libjpeg-turbo-devel sqlite-devel libexif-devel
libid3tag-devel libvorbis-devel libflac-devel"
short_desc="DLNA/UPnP-AV compliant media server"
maintainer="Duncaen <duncaen@voidlinux.org>"
From 240bba3de0c52570c2781780f78ac89a658c117b Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Mon, 20 Nov 2023 17:57:47 -0500
Subject: [PATCH 77/93] mpv: revbump for ffmpeg6
---
srcpkgs/mpv/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mpv/template b/srcpkgs/mpv/template
index 32dd956c6bf6b6..644b92f2856337 100644
--- a/srcpkgs/mpv/template
+++ b/srcpkgs/mpv/template
@@ -1,7 +1,7 @@
# Template file for 'mpv'
pkgname=mpv
version=0.38.0
-revision=2
+revision=3
build_style=meson
configure_args="-Dcdda=enabled -Ddvbin=enabled -Ddvdnav=enabled
-Dlibmpv=true -Dcplugins=enabled
@@ -21,7 +21,7 @@ configure_args="-Dcdda=enabled -Ddvbin=enabled -Ddvdnav=enabled
$(vopt_feature pipewire pipewire)
$(vopt_feature sndio sndio)"
hostmakedepends="pkg-config python3-docutils $(vopt_if wayland wayland-devel)"
-makedepends="MesaLib-devel ffmpeg-devel harfbuzz-devel libXv-devel libass-devel
+makedepends="MesaLib-devel ffmpeg6-devel harfbuzz-devel libXv-devel libass-devel
libbluray-devel libcdio-paranoia-devel libdvdnav-devel libuuid-devel
libva-devel rubberband-devel uchardet-devel libplacebo-devel libarchive-devel
$(vopt_if alsa alsa-lib-devel) $(vopt_if caca libcaca-devel)
From b595c71db563a03f484ddca86a046a4b14b1116c Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Mon, 20 Nov 2023 18:00:36 -0500
Subject: [PATCH 78/93] kfilemetadata5: revbump for ffmpeg6
---
srcpkgs/kfilemetadata5/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/kfilemetadata5/template b/srcpkgs/kfilemetadata5/template
index a0c4d809395323..51450e80a620fc 100644
--- a/srcpkgs/kfilemetadata5/template
+++ b/srcpkgs/kfilemetadata5/template
@@ -1,12 +1,12 @@
# Template file for 'kfilemetadata5'
pkgname=kfilemetadata5
version=5.115.0
-revision=1
+revision=2
build_style=cmake
hostmakedepends="kcoreaddons extra-cmake-modules pkg-config qt5-host-tools qt5-qmake
gettext kcoreaddons python3"
makedepends="karchive-devel ki18n-devel poppler-qt5-devel kcoreaddons-devel
- taglib-devel exiv2-devel ffmpeg-devel attr-devel ebook-tools-devel
+ taglib-devel exiv2-devel ffmpeg6-devel attr-devel ebook-tools-devel
libqmobipocket-devel"
short_desc="Simple library for extracting the text and metadata"
maintainer="John <me@johnnynator.dev>"
From cb959700c5915e377264f3a316196a41135654d1 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 8 Dec 2023 11:46:01 -0500
Subject: [PATCH 79/93] vba-m: revbump for ffmpeg6
---
srcpkgs/vba-m/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/vba-m/template b/srcpkgs/vba-m/template
index 3d135efa1d0b69..b88d8cf72fdbf4 100644
--- a/srcpkgs/vba-m/template
+++ b/srcpkgs/vba-m/template
@@ -2,12 +2,12 @@
pkgname=vba-m
reverts=1292_2
version=2.1.9
-revision=1
+revision=2
build_style=cmake
configure_args="-DENABLE_GTK=TRUE -DENABLE_FFMPEG=TRUE -DENABLE_LINK=TRUE -DCMAKE_BUILD_TYPE=Release"
hostmakedepends="gettext pkg-config unzip zip yasm wxWidgets-gtk3-devel"
makedepends="zlib-devel libpng-devel MesaLib-devel libopenal-devel SDL2-devel
- gtkmm2-devel ffmpeg-devel gtk+3-devel
+ gtkmm2-devel ffmpeg6-devel gtk+3-devel
SFML-devel wxWidgets-gtk3-devel libgomp-devel"
short_desc="Gameboy Advance Emulator"
maintainer="Andrea Brancaleoni <abc@pompel.me>"
From 102b6907b2afdc54145d7a0f5540692df91f169a Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 8 Dec 2023 11:46:19 -0500
Subject: [PATCH 80/93] dolphin-emu: revbump for ffmpeg6
---
srcpkgs/audacity/patches/hscroll.patch | 26 +++++++++++++++++++++++
srcpkgs/dolphin-emu/patches/ipproto.patch | 13 ++++++++++++
srcpkgs/dolphin-emu/template | 4 ++--
3 files changed, 41 insertions(+), 2 deletions(-)
create mode 100644 srcpkgs/audacity/patches/hscroll.patch
create mode 100644 srcpkgs/dolphin-emu/patches/ipproto.patch
diff --git a/srcpkgs/audacity/patches/hscroll.patch b/srcpkgs/audacity/patches/hscroll.patch
new file mode 100644
index 00000000000000..2e083792d8e114
--- /dev/null
+++ b/srcpkgs/audacity/patches/hscroll.patch
@@ -0,0 +1,26 @@
+--- a/libraries/lib-viewport/Viewport.cpp 2024-06-01 09:25:58.915855057 -0400
++++ b/libraries/lib-viewport/Viewport.cpp 2024-06-01 11:06:08.779799589 -0400
+@@ -326,10 +326,10 @@
+ bool newvstate = panelHeight < totalHeight;
+
+ // Hide scrollbar thumbs and buttons if not scrollable
+- if (mpCallbacks) {
+- mpCallbacks->ShowHorizontalScrollbar(newhstate);
+- mpCallbacks->ShowVerticalScrollbar(newvstate);
+- }
++ //if (mpCallbacks) {
++ // mpCallbacks->ShowHorizontalScrollbar(newhstate);
++ // mpCallbacks->ShowVerticalScrollbar(newvstate);
++ //}
+
+ // When not scrollable in either axis, align viewport to top or left and
+ // repaint it later
+@@ -378,7 +378,7 @@
+ totalHeight / scrollStep,
+ panelHeight / scrollStep, true);
+
+- rescroll = (rescroll &&
++ rescroll = (rescroll ||
+ (viewInfo.GetScreenEndTime() - viewInfo.hpos) < total);
+ Publish({ (refresh || rescroll),
+ (oldhstate != newhstate || oldvstate != newvstate), false });
diff --git a/srcpkgs/dolphin-emu/patches/ipproto.patch b/srcpkgs/dolphin-emu/patches/ipproto.patch
new file mode 100644
index 00000000000000..67c371f0b6a900
--- /dev/null
+++ b/srcpkgs/dolphin-emu/patches/ipproto.patch
@@ -0,0 +1,13 @@
+--- a/Source/Core/Core/HW/EXI/BBA/BuiltIn.h 2023-05-11 17:02:30.000000000 -0400
++++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.h 2024-06-04 09:24:19.476262345 -0400
+@@ -20,9 +20,6 @@
+ constexpr u16 TCP_FLAG_FIN = 0x1;
+ constexpr u16 TCP_FLAG_RST = 0x4;
+
+-constexpr u16 IP_PROTOCOL = 0x800;
+-constexpr u16 ARP_PROTOCOL = 0x806;
+-
+ constexpr u8 MAX_TCP_BUFFER = 4;
+ constexpr u16 MAX_UDP_LENGTH = 1500;
+ constexpr u16 MAX_TCP_LENGTH = 440;
+
diff --git a/srcpkgs/dolphin-emu/template b/srcpkgs/dolphin-emu/template
index 862d3ae964eec4..c4a6ad40162834 100644
--- a/srcpkgs/dolphin-emu/template
+++ b/srcpkgs/dolphin-emu/template
@@ -1,7 +1,7 @@
# Template file for 'dolphin-emu'
pkgname=dolphin-emu
version=5.0.19368
-revision=3
+revision=4
_dolphin_commit=dadbeb4bae7e7fa23af2b46e0add4143094dc107
_mgba_commit=44e074a15e9651481f7f652ac006a7c9d58cbeb9
_googletest_commit=be03d00f5f0cc3a997d1a368bee8a1fe93651f48
@@ -24,7 +24,7 @@ configure_args="-DUSE_SHARED_ENET=ON
hostmakedepends="pkg-config qt6-tools qt6-base gettext-devel"
makedepends="
zlib-devel glew-devel libusb-devel qt6-base-devel miniupnpc-devel libevdev-devel
- SDL2-devel pulseaudio-devel alsa-lib-devel ffmpeg-devel libgomp-devel libcurl-devel
+ SDL2-devel pulseaudio-devel alsa-lib-devel ffmpeg6-devel libgomp-devel libcurl-devel
portaudio-devel libopenal-devel soundtouch-devel lzo-devel libbluetooth-devel
mbedtls-devel SFML-devel libenet-devel liblzma-devel pugixml-devel"
depends="desktop-file-utils"
From 12d47ab4647684c6e4cad2d46ce35ec63ffe50a1 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Thu, 11 Jan 2024 11:52:00 -0500
Subject: [PATCH 81/93] arcan: revbump for ffmpeg6
---
srcpkgs/arcan/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/arcan/template b/srcpkgs/arcan/template
index ff9091f90ebb10..6dfd7ea30859c1 100644
--- a/srcpkgs/arcan/template
+++ b/srcpkgs/arcan/template
@@ -2,7 +2,7 @@
# !! keep synced with: acfgfs aclip aloadimage
pkgname=arcan
version=0.6.2.1
-revision=2
+revision=3
create_wrksrc=yes
build_wrksrc=arcan/src
build_style=cmake
@@ -12,7 +12,7 @@ configure_args="-DDISTR_TAG='Void Linux' -DVIDEO_PLATFORM=egl-dri
$(vopt_if luajit '-DDISABLE_JIT=OFF' '-DDISABLE_JIT=ON')"
hostmakedepends="pkg-config
$(vopt_if wayland wayland-devel)"
-makedepends="MesaLib-devel ffmpeg-devel file-devel freetype-devel liblzma-devel
+makedepends="MesaLib-devel ffmpeg6-devel file-devel freetype-devel liblzma-devel
libopenal-devel libusb-devel libvncserver-devel libxkbcommon-devel sqlite-devel
vlc-devel SDL2-devel xcb-util-devel xcb-util-wm-devel
$(vopt_if tts 'libespeak-ng-devel')
From 70895ed8cff3b1b4a41d18dde09ed4ec2b249495 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Thu, 11 Jan 2024 11:52:10 -0500
Subject: [PATCH 82/93] notcurses: revbump for ffmpeg6
---
srcpkgs/notcurses/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/notcurses/template b/srcpkgs/notcurses/template
index 48a7463cb68eb9..5704c264d66844 100644
--- a/srcpkgs/notcurses/template
+++ b/srcpkgs/notcurses/template
@@ -1,11 +1,11 @@
# Template file for 'notcurses'
pkgname=notcurses
version=3.0.9
-revision=2
+revision=3
build_style=cmake
configure_args="-DUSE_STATIC=ON -DUSE_QRCODEGEN=On $(vopt_bool man USE_PANDOC)"
hostmakedepends="pkg-config $(vopt_if man pandoc)"
-makedepends="libunistring-devel ffmpeg-devel ncurses-libtinfo-devel qrcodegen
+makedepends="libunistring-devel ffmpeg6-devel ncurses-libtinfo-devel qrcodegen
doctest-devel libdeflate-devel"
depends="ncurses-base"
short_desc="Blingful character graphics/TUI library"
From 9efa8ec63bde7dd5a77445e9cb89d8270c3d70d0 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Mon, 3 Jun 2024 19:45:29 -0400
Subject: [PATCH 83/93] mpd: revbump for ffmpeg6
---
srcpkgs/mpd/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mpd/template b/srcpkgs/mpd/template
index b8e2bd4c1b59c8..7e059ca3f78af5 100644
--- a/srcpkgs/mpd/template
+++ b/srcpkgs/mpd/template
@@ -1,7 +1,7 @@
# Template file for 'mpd'
pkgname=mpd
version=0.23.15
-revision=2
+revision=3
build_style=meson
configure_args="-Dopus=enabled -Dmikmod=enabled -Dneighbor=true
-Dsoundcloud=enabled -Dpipe=true -Dtwolame=enabled -Dbzip2=enabled
@@ -18,7 +18,7 @@ configure_args="-Dopus=enabled -Dmikmod=enabled -Dneighbor=true
$(vopt_feature openmpt openmpt) $(vopt_feature pipewire pipewire)"
conf_files="/etc/mpd.conf"
hostmakedepends="pkg-config python3-Sphinx"
-makedepends="avahi-glib-libs-devel boost-devel faad2-devel ffmpeg-devel
+makedepends="avahi-glib-libs-devel boost-devel faad2-devel ffmpeg6-devel
libcurl-devel libid3tag-devel libmad-devel libmikmod-devel libmms-devel
libmodplug-devel libmpdclient-devel libnfs-devel libsamplerate-devel
libnpupnp-devel mpg123-devel opus-devel yajl-devel pcre2-devel icu-devel
From 69bbdf47886cea51f22c93574d67f631ebe020a2 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 4 Jun 2024 09:05:18 -0400
Subject: [PATCH 84/93] kf6-kfilemetadata: revbump for ffmpeg6
---
srcpkgs/kf6-kfilemetadata/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/kf6-kfilemetadata/template b/srcpkgs/kf6-kfilemetadata/template
index e16935aa52b51b..154b134a46e437 100644
--- a/srcpkgs/kf6-kfilemetadata/template
+++ b/srcpkgs/kf6-kfilemetadata/template
@@ -1,14 +1,14 @@
# Template file for 'kf6-kfilemetadata'
pkgname=kf6-kfilemetadata
version=6.3.0
-revision=1
+revision=2
build_style=cmake
configure_args="-DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins"
hostmakedepends="extra-cmake-modules qt6-tools qt6-base
gettext pkg-config"
makedepends="qt6-base-devel kf6-kcodecs-devel kf6-ki18n-devel kf6-karchive-devel
kf6-kcoreaddons-devel kf6-kconfig-devel attr-devel taglib-devel libqmobipocket6-devel
- exiv2-devel ffmpeg-devel ebook-tools-devel poppler-qt6-devel"
+ exiv2-devel ffmpeg6-devel ebook-tools-devel poppler-qt6-devel"
short_desc="Library for extracting file metadata"
maintainer="John <me@johnnynator.dev>"
license="LGPL-2.1-or-later"
From eb0283c2e6c078d96549b38136d5ee58500e0126 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Mon, 3 Apr 2023 23:33:30 -0400
Subject: [PATCH 85/93] shiboken2: revbump for qt5-5.15.11
---
srcpkgs/shiboken2/patches/importlib-machinery-bypass.patch | 1 +
1 file changed, 1 insertion(+)
create mode 120000 srcpkgs/shiboken2/patches/importlib-machinery-bypass.patch
diff --git a/srcpkgs/shiboken2/patches/importlib-machinery-bypass.patch b/srcpkgs/shiboken2/patches/importlib-machinery-bypass.patch
new file mode 120000
index 00000000000000..efcf3249bd8854
--- /dev/null
+++ b/srcpkgs/shiboken2/patches/importlib-machinery-bypass.patch
@@ -0,0 +1 @@
+../../python3-pyside2/patches/importlib-machinery-bypass.patch
\ No newline at end of file
From 1a3cf9322a911c65ffd17e1a58924c9adf57dc55 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Mon, 3 Apr 2023 23:33:53 -0400
Subject: [PATCH 86/93] python3-pyside2: revbump for qt5-5.15.11
---
.../patches/importlib-machinery-bypass.patch | 15 +++++++++++++++
srcpkgs/python3-pyside2/template | 2 +-
2 files changed, 16 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/python3-pyside2/patches/importlib-machinery-bypass.patch
diff --git a/srcpkgs/python3-pyside2/patches/importlib-machinery-bypass.patch b/srcpkgs/python3-pyside2/patches/importlib-machinery-bypass.patch
new file mode 100644
index 00000000000000..64c429584776b5
--- /dev/null
+++ b/srcpkgs/python3-pyside2/patches/importlib-machinery-bypass.patch
@@ -0,0 +1,15 @@
+Using this prevents an error around line 220 below it.
+"AttributeError: module 'importlib' has no attribute 'machinery'"
+The old backup logic is in place and compiles without issues.
+--- a/sources/shiboken2/libshiboken/embed/signature_bootstrap.py 2023-04-02 23:09:34.688912402 -0400
++++ b/sources/shiboken2/libshiboken/embed/signature_bootstrap.py 2023-04-02 23:10:03.395529582 -0400
+@@ -170,9 +170,6 @@
+
+ # 'zipstring_sequence' comes from signature.cpp
+ zipbytes = base64.b64decode(''.join(zipstring_sequence))
+- if sys.version_info[0] >= 3:
+- vzip = zipfile.ZipFile(io.BytesIO(zipbytes))
+- return sys.meta_path, EmbeddableZipImporter(vzip)
+
+ # Old version for Python 2.7, only.
+ import os
diff --git a/srcpkgs/python3-pyside2/template b/srcpkgs/python3-pyside2/template
index 249efa90988425..52626436ce75f2 100644
--- a/srcpkgs/python3-pyside2/template
+++ b/srcpkgs/python3-pyside2/template
@@ -1,7 +1,7 @@
# Template file for 'python3-pyside2'
pkgname=python3-pyside2
version=5.15.10
-revision=1
+revision=2
_pkgname="pyside-setup-opensource-src-${version}"
build_wrksrc="sources/pyside2"
build_style=cmake
From 2c5b9cc206784dbc224bcb701b8e33ce57c037bf Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Thu, 4 Jul 2024 07:23:38 -0400
Subject: [PATCH 87/93] freerdp3: revbump for ffmpeg6
---
etc/xbps.d/repos-remote.conf | 14 ++++++++++----
srcpkgs/flowblade/template | 21 ++++++++++++++++-----
srcpkgs/freerdp3/template | 4 ++--
srcpkgs/gifski/template | 7 +++++--
srcpkgs/lld-devel | 2 +-
srcpkgs/lxdm/template | 2 +-
srcpkgs/wine/template | 8 ++++++--
srcpkgs/zig/template | 10 +++++-----
8 files changed, 46 insertions(+), 22 deletions(-)
diff --git a/etc/xbps.d/repos-remote.conf b/etc/xbps.d/repos-remote.conf
index e171ed53c2d4ba..f6fab9747388f7 100644
--- a/etc/xbps.d/repos-remote.conf
+++ b/etc/xbps.d/repos-remote.conf
@@ -1,5 +1,11 @@
# voidlinux remote repositories (glibc)
-repository=https://repo-default.voidlinux.org/current/bootstrap
-repository=https://repo-default.voidlinux.org/current
-repository=https://repo-default.voidlinux.org/current/nonfree
-repository=https://repo-default.voidlinux.org/current/debug
+#repository=https://repo-default.voidlinux.org/current/bootstrap
+#repository=https://repo-default.voidlinux.org/current
+#repository=https://repo-default.voidlinux.org/current/nonfree
+#repository=https://repo-default.voidlinux.org/current/debug
+
+repository=https://mirrors.servercentral.com/voidlinux/current
+repository=https://mirrors.servercentral.com/voidlinux/current/nonfree
+repository=https://mirrors.servercentral.com/voidlinux/current/multilib
+repository=https://mirrors.servercentral.com/voidlinux/current/multilib/nonfree
+repository=https://mirrors.servercentral.com/voidlinux/current/debug
diff --git a/srcpkgs/flowblade/template b/srcpkgs/flowblade/template
index f1a43ae189ed7a..de1b946f556dbe 100644
--- a/srcpkgs/flowblade/template
+++ b/srcpkgs/flowblade/template
@@ -1,17 +1,28 @@
# Template file for 'flowblade'
pkgname=flowblade
-version=2.8.0.3
+version=2.16.2
revision=1
build_wrksrc=flowblade-trunk
build_style=python3-module
make_install_args="--install-lib=${DESTDIR}/usr/share/flowblade"
hostmakedepends="python3-setuptools"
# https://github.com/jliljebl/flowblade/blob/master/flowblade-trunk/docs/DEPENDENCIES.md
-depends="frei0r-plugins gmic mlt-python3 python3-Pillow python3-dbus gtk+3
- python3-gobject python3-numpy swh-plugins"
+depends="frei0r-plugins gmic mlt7 mlt7-python3 python3-cairo python3-Pillow python3-gobject python3-numpy
+ gtk4 swh-plugins gdk-pixbuf pango librsvg SDL_image swh-plugins python3-libusb1"
short_desc="Non-linear video editor for Linux"
maintainer="shizonic <realtiaz@gmail.com>"
license="GPL-3.0-or-later"
homepage="https://jliljebl.github.io/flowblade/"
-distfiles="https://github.com/jliljebl/flowblade/archive/v${version}.tar.gz"
-checksum=3753363d15caa6f1901118132a87f92d3b5e843c325775dbd83b30ee4d2a9bbf
+distfiles="https://github.com/jliljebl/flowblade/archive/v${version}.tar.gz>${pkgname}-v${version}.tar.gz"
+checksum=53c6d153ae8b14ae4c4bda704ef7f0e989d895a9037c70f0654ac5a28699a6fb
+make_check=no # no tests to run
+
+do_patch() {
+ # Desktop file should run /usr/bin/flowblade.sh
+ vsed -i installdata/io.github.jliljebl.Flowblade.desktop -e 's#env.*#/usr/bin/flowblade.sh %f#'
+}
+
+#post_install() {
+# # Enforce X11, otherwise it crashes on wayland
+# vbin "${FILESDIR}/enforce-x11.sh" flowblade.sh
+#}
diff --git a/srcpkgs/freerdp3/template b/srcpkgs/freerdp3/template
index e419b48804a7c5..464d7f43cc2d21 100644
--- a/srcpkgs/freerdp3/template
+++ b/srcpkgs/freerdp3/template
@@ -1,7 +1,7 @@
# Template file for 'freerdp3'
pkgname=freerdp3
version=3.6.2
-revision=1
+revision=2
build_style=cmake
build_helper=qemu
configure_args="-DCHANNEL_URBDRC_CLIENT=ON -DDOCBOOKXSL_DIR=/usr/share/xsl/docbook
@@ -25,7 +25,7 @@ makedepends="alsa-lib-devel cups-devel fuse3-devel icu-devel libXcursor-devel
libXdamage-devel libXinerama-devel libXrandr-devel libXv-devel
libjpeg-turbo-devel libusb-devel libxkbfile-devel mit-krb5-devel openssl-devel
pulseaudio-devel uriparser-devel $(vopt_if aad cJSON-devel)
- $(vopt_if ffmpeg ffmpeg-devel cairo-devel) $(vopt_if sdl2 SDL2_ttf-devel)
+ $(vopt_if ffmpeg ffmpeg6-devel cairo-devel) $(vopt_if sdl2 SDL2_ttf-devel)
$(vopt_if smartcard 'pcsclite-devel pkcs11-helper-devel')
$(vopt_if wayland 'libxkbcommon-devel wayland-devel')
$(vopt_if webview libwebkit2gtk41-devel)"
diff --git a/srcpkgs/gifski/template b/srcpkgs/gifski/template
index f7228b0db94f68..3d3dd831f68a20 100644
--- a/srcpkgs/gifski/template
+++ b/srcpkgs/gifski/template
@@ -1,15 +1,18 @@
# Template file for 'gifski'
pkgname=gifski
-version=1.14.4
+version=1.32.0
revision=1
build_style=cargo
+configure_args="--features video"
+hostmakedepends="clang17 pkg-config"
+makedepends="ffmpeg-devel"
short_desc="Highest-quality GIF encoder based on pngquant"
maintainer="Benjamín Albiñana <benalb@gmail.com>"
license="AGPL-3.0-only"
homepage="https://gif.ski"
changelog="https://github.com/ImageOptim/gifski/releases"
distfiles="https://github.com/ImageOptim/gifski/archive/refs/tags/${version}.tar.gz"
-checksum=7d6b1400833c31f6a24aac3a1b5d44c466e07f98af6d6c17487a7c8c6f4aa519
+checksum=9a9145c31936f6e6e3b30e7feb8a741bcc02e8bcec6fd480d03c25ffa55f372c
pre_build() {
# https://github.com/ImageOptim/gifski/issues/300#issuecomment-1553003435
diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel
index ad57a969b9f9cf..1d42ed7632a635 120000
--- a/srcpkgs/lld-devel
+++ b/srcpkgs/lld-devel
@@ -1 +1 @@
-llvm15
\ No newline at end of file
+llvm14
\ No newline at end of file
diff --git a/srcpkgs/lxdm/template b/srcpkgs/lxdm/template
index d9e532be58ac35..3c634de7c65878 100644
--- a/srcpkgs/lxdm/template
+++ b/srcpkgs/lxdm/template
@@ -1,7 +1,7 @@
# Template file for 'lxdm'
pkgname=lxdm
version=0.5.3
-revision=5
+revision=6
build_style=gnu-configure
configure_args="--disable-consolekit --with-pam --enable-gtk3"
hostmakedepends="automake gettext-devel libtool pkg-config intltool"
diff --git a/srcpkgs/wine/template b/srcpkgs/wine/template
index dbc531a0cce0c6..96d3de17fdd045 100644
--- a/srcpkgs/wine/template
+++ b/srcpkgs/wine/template
@@ -6,7 +6,8 @@ _pkgver=${version/r/-r}
create_wrksrc=yes
build_wrksrc=wine-${_pkgver}
build_style=gnu-configure
-configure_args="--bindir=/usr/libexec/wine $(vopt_with xshm)"
+configure_args="--bindir=/usr/libexec/wine $(vopt_with xshm) --with-wayland
+ --enable-win64 --libdir=/usr/lib"
short_desc="Run Microsoft Windows applications"
maintainer="Helmut Pozimski <helmut@pozimski.eu>"
license="LGPL-2.1-or-later"
@@ -49,7 +50,7 @@ makedepends="gettext-devel ncurses-devel glu-devel libSM-devel
freetype-devel pulseaudio-devel giflib-devel
v4l-utils-devel fontconfig-devel gnutls-devel dbus-devel sane-devel
libpcap-devel cups-devel ocl-icd-devel vulkan-loader-devel gst-plugins-base1-devel
- SDL2-devel"
+ SDL2-devel wayland-devel libxkbcommon-devel"
depends="libXi libXinerama libXcomposite libXcursor libOSMesa
desktop-file-utils hicolor-icon-theme liberation-fonts-ttf
gnutls SDL2 wine-common>=${version}_${revision}"
@@ -74,6 +75,9 @@ if [ "$XBPS_LIBC" = "glibc" ]; then
hostmakedepends+=" prelink"
fi
+# win64
+configure_args+=" --enable-archs=i386,x86_64"
+makedepends+=" cross-i686-w64-mingw32"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
configure_args+=" --enable-archs=i386,x86_64"
makedepends+=" cross-i686-w64-mingw32"
diff --git a/srcpkgs/zig/template b/srcpkgs/zig/template
index 52cda7e8e0cee7..9cebec03ddb286 100644
--- a/srcpkgs/zig/template
+++ b/srcpkgs/zig/template
@@ -1,20 +1,20 @@
# Template file for 'zig'
pkgname=zig
-version=0.10.1
-revision=3
+version=0.12.0
+revision=1
archs="x86_64* aarch64*"
build_style=cmake
-configure_args="-DZIG_TARGET_MCPU=baseline"
+configure_args="-DZIG_TARGET_MCPU=baseline -DZIG_STATIC_ZLIB=ON"
make_cmd=make
# we add xml2, zstd, zlib and ncurses
# because our lld is static-only and requires those to work
-makedepends="clang15 llvm15 lld15-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
+makedepends="clang17-devel llvm17-devel lld17-devel libxml2-devel libzstd-devel ncurses-devel zlib-devel"
short_desc="Programming language designed for robustness, optimality, and clarity"
maintainer="Orphaned <orphan@voidlinux.org>"
license="MIT"
homepage="https://ziglang.org"
distfiles="https://ziglang.org/download/${version}/zig-${version}.tar.xz"
-checksum=69459bc804333df077d441ef052ffa143d53012b655a51f04cfef1414c04168c
+checksum=a6744ef84b6716f976dad923075b2f54dc4f785f200ae6c8ea07997bd9d9bd9a
nopie=yes
nocross=yes
From 9c530e2b7b0800f6598d5e61dedb079bf07ce9c5 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Thu, 4 Jul 2024 07:31:49 -0400
Subject: [PATCH 88/93] lms: revbump for ffmpeg6
---
srcpkgs/lms/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/lms/template b/srcpkgs/lms/template
index 5d155ce01968fc..eb946615daf3e7 100644
--- a/srcpkgs/lms/template
+++ b/srcpkgs/lms/template
@@ -1,10 +1,10 @@
# Template file for 'lms'
pkgname=lms
version=3.51.1
-revision=2
+revision=3
build_style=cmake
hostmakedepends="pkg-config"
-makedepends="wt-devel ffmpeg-devel boost-devel libconfig++-devel taglib-devel pam-devel libgraphicsmagick-devel gtest-devel libarchive-devel"
+makedepends="wt-devel ffmpeg6-devel boost-devel libconfig++-devel taglib-devel pam-devel libgraphicsmagick-devel gtest-devel libarchive-devel"
conf_files="/etc/lms.conf /etc/pam.d/lms"
short_desc="Lightweight Music Server"
maintainer="danoloan10 <danoloan10@tutanota.com>"
From 1e2d57e6d3d04b1b148f26f58aeae6116316dedc Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 5 Jul 2024 13:05:30 -0400
Subject: [PATCH 89/93] qtav: remove for digikam 8.0.0+
---
common/shlibs | 2 --
srcpkgs/digikam/template | 4 ++--
srcpkgs/qtav/patches/disable-cuda.patch | 16 ----------------
srcpkgs/qtav/patches/qt5-5.15.0.patch | 20 --------------------
srcpkgs/qtav/template | 24 ------------------------
srcpkgs/removed-packages/template | 1 +
6 files changed, 3 insertions(+), 64 deletions(-)
delete mode 100644 srcpkgs/qtav/patches/disable-cuda.patch
delete mode 100644 srcpkgs/qtav/patches/qt5-5.15.0.patch
delete mode 100644 srcpkgs/qtav/template
diff --git a/common/shlibs b/common/shlibs
index f064e4aad9ca86..adcae8b2d0621b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3037,8 +3037,6 @@ libCGAL.so.13 cgal-4.10_1
libCGAL_Core.so.13 cgal-4.10_1
libCGAL_ImageIO.so.14 cgal-4.14_1
libqscintilla2_qt5.so.15 qscintilla-qt5-2.11_1
-libQtAVWidgets.so.1 qtav-1.12.0_1
-libQtAV.so.1 qtav-1.12.0_1
liblxpanel.so.0 lxpanel-0.9.3_1
libuim.so.8 uim-1.8.6_1
libuim-scm.so.0 uim-1.8.6_1
diff --git a/srcpkgs/digikam/template b/srcpkgs/digikam/template
index 0a029e44c0afe6..57e256e73e64ca 100644
--- a/srcpkgs/digikam/template
+++ b/srcpkgs/digikam/template
@@ -1,7 +1,7 @@
# Template file for 'digikam'
pkgname=digikam
version=8.3.0
-revision=2
+revision=3
build_style=cmake
configure_args="-DBUILD_TESTING=OFF -DKF6_HOST_TOOLING=/usr/lib/cmake
-DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins -DBUILD_WITH_QT6=ON
@@ -15,7 +15,7 @@ makedepends="qt6-base-private-devel libjpeg-turbo-devel qt6-scxml-devel
kf6-solid-devel kf6-ki18n-devel kf6-kio-devel kf6-kiconthemes-devel
kf6-knotifyconfig-devel kf6-knotifications-devel kf6-threadweaver-devel
akonadi-contacts-devel libksane6-devel kf6-kcalendarcore-devel tiff-devel
- lcms2-devel qtav libopencv-devel liblqr-devel libgphoto2-devel qt6-webengine-devel
+ lcms2-devel libopencv-devel liblqr-devel libgphoto2-devel qt6-webengine-devel
lensfun-devel eigen jasper-devel MesaLib-devel glu-devel qt6-webchannel-devel
kf6-kconfigwidgets-devel kf6-kwidgetsaddons-devel libheif-devel qt6-networkauth-devel
libmagick-devel"
diff --git a/srcpkgs/qtav/patches/disable-cuda.patch b/srcpkgs/qtav/patches/disable-cuda.patch
deleted file mode 100644
index 00bdac9b313c15..00000000000000
--- a/srcpkgs/qtav/patches/disable-cuda.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-src: https://build.opensuse.org/package/view_file/openSUSE:Factory/QtAV/disable_cuda.patch
-
-diff --git a/src/libQtAV.pro b/src/libQtAV.pro
-index 27c1570..dc74ceb 100644
---- a/src/libQtAV.pro
-+++ b/src/libQtAV.pro
-@@ -233,7 +233,7 @@ config_pulseaudio {
- DEFINES *= QTAV_HAVE_PULSEAUDIO=1
- LIBS += -lpulse
- }
--CONFIG += config_cuda
-+#CONFIG += config_cuda
- #CONFIG += config_cuda_link
- config_cuda {
- DEFINES += QTAV_HAVE_CUDA=1
-
diff --git a/srcpkgs/qtav/patches/qt5-5.15.0.patch b/srcpkgs/qtav/patches/qt5-5.15.0.patch
deleted file mode 100644
index 182a690ef688e6..00000000000000
--- a/srcpkgs/qtav/patches/qt5-5.15.0.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/src/QtAV/FilterContext.h 2019-07-11 02:58:59.000000000 +0200
-+++ b/src/QtAV/FilterContext.h 2020-07-25 11:16:49.931296324 +0200
-@@ -26,6 +26,7 @@
- #include <QtCore/QByteArray>
- #include <QtCore/QRect>
- #include <QtGui/QPainter>
-+#include <QtGui/QPainterPath>
- /*
- * QPainterFilterContext, D2DFilterContext, ...
- */
---- a/qml/SGVideoNode.cpp 2019-07-11 02:58:59.000000000 +0200
-+++ b/qml/SGVideoNode.cpp 2020-07-25 11:20:28.307307590 +0200
-@@ -25,6 +25,7 @@
- #include "QtAV/VideoFrame.h"
- #include <QtCore/QScopedPointer>
- #include <QtGui/QOpenGLFunctions>
-+#include <QtQuick/QSGMaterial>
- #include <QtQuick/QSGMaterialShader>
-
- // all in QSGRenderThread
diff --git a/srcpkgs/qtav/template b/srcpkgs/qtav/template
deleted file mode 100644
index 775d5a139a9efa..00000000000000
--- a/srcpkgs/qtav/template
+++ /dev/null
@@ -1,24 +0,0 @@
-# Template file for 'qtav'
-pkgname=qtav
-version=1.13.0
-revision=2
-build_style=qmake
-hostmakedepends="qt5-qmake qt5-host-tools"
-makedepends="ffmpeg-devel libass-devel libopenal-devel
- libva-glx-devel libXv-devel pulseaudio-devel
- qt5-declarative-devel qt5-svg-devel
- qt5-quickcontrols"
-depends="desktop-file-utils hicolor-icon-theme qt5-svg"
-short_desc="Cross-platform multimedia playback framework based on Qt and FFmpeg"
-maintainer="Orphaned <orphan@voidlinux.org>"
-license="LGPL-2.1-or-later, GPL-3.0-or-later"
-homepage="http://www.qtav.org"
-changelog="https://raw.githubusercontent.com/wang-bin/QtAV/master/Changelog"
-distfiles="https://github.com/wang-bin/QtAV/archive/v${version}.tar.gz"
-checksum=a493d54d105b32c526f05188e4d7a8cf3508ecac697aae088721ffad20982288
-
-post_install() {
- vmkdir usr/bin
- ln -s /usr/lib/qt5/bin/Player ${DESTDIR}/usr/bin/Player
- ln -s /usr/lib/qt5/bin/QMLPlayer ${DESTDIR}/usr/bin/QMLPlayer
-}
diff --git a/srcpkgs/removed-packages/template b/srcpkgs/removed-packages/template
index 7413b7dc49d7ad..1e2e65f7e82340 100644
--- a/srcpkgs/removed-packages/template
+++ b/srcpkgs/removed-packages/template
@@ -660,6 +660,7 @@ replaces="
python3-txacme<=0.9.3_3
qimageblitz<=0.0.6_4
qqc2-desktop-style<=5.115.0_1
+ qtav<=1.13.0_2
qt-designer-devel<=4.8.7_29
qt-designer-libs<=4.8.7_29
qt-designer<=4.8.7_29
From b4560d454ced67afeee0c20db10e40cf0c2eb0d8 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 5 Jul 2024 13:06:59 -0400
Subject: [PATCH 90/93] New package: libdispatch-5.10.1
---
common/shlibs | 2 ++
srcpkgs/libdispatch-devel | 1 +
srcpkgs/libdispatch/patches/libkqueue.patch | 12 +++++++++
srcpkgs/libdispatch/patches/musl.patch | 12 +++++++++
srcpkgs/libdispatch/patches/werror.patch | 10 +++++++
srcpkgs/libdispatch/template | 29 +++++++++++++++++++++
6 files changed, 66 insertions(+)
create mode 120000 srcpkgs/libdispatch-devel
create mode 100644 srcpkgs/libdispatch/patches/libkqueue.patch
create mode 100644 srcpkgs/libdispatch/patches/musl.patch
create mode 100644 srcpkgs/libdispatch/patches/werror.patch
create mode 100644 srcpkgs/libdispatch/template
diff --git a/common/shlibs b/common/shlibs
index adcae8b2d0621b..f56dd38e45105b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -393,6 +393,8 @@ libgif.so.7 giflib-5.1.0_1
libImlib2.so.1 imlib2-1.4.2_1
libmp3lame.so.0 lame-3.98.2_1
libmp3lame.so.0 lame-3.98.2_1
+libdispatch.so libdispatch-5.10.1_1
+libBlocksRuntime.so libdispatch-5.10.1_1
libavdevice.so.60 libavdevice6-6.0_1
libavformat.so.60 libavformat6-6.0_1
libswscale.so.7 libswscale6-6.0_1
diff --git a/srcpkgs/libdispatch-devel b/srcpkgs/libdispatch-devel
new file mode 120000
index 00000000000000..78bdc5db708295
--- /dev/null
+++ b/srcpkgs/libdispatch-devel
@@ -0,0 +1 @@
+libdispatch
\ No newline at end of file
diff --git a/srcpkgs/libdispatch/patches/libkqueue.patch b/srcpkgs/libdispatch/patches/libkqueue.patch
new file mode 100644
index 00000000000000..639f2190efb415
--- /dev/null
+++ b/srcpkgs/libdispatch/patches/libkqueue.patch
@@ -0,0 +1,12 @@
+https://aur.archlinux.org/cgit/aur.git/tree/avoid-libkqueue.patch?h=libdispatch
+--- a/tests/dispatch_test.c
++++ a/tests/dispatch_test.c
+@@ -30,7 +30,7 @@
+ #include <stdio.h>
+ #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
+ #include <unistd.h>
+-#if __has_include(<sys/event.h>)
++#if __has_include(<sys/event.h>) && !defined(__linux__)
+ #define HAS_SYS_EVENT_H 1
+ #include <sys/event.h>
+ #else
diff --git a/srcpkgs/libdispatch/patches/musl.patch b/srcpkgs/libdispatch/patches/musl.patch
new file mode 100644
index 00000000000000..9444a5378393f1
--- /dev/null
+++ b/srcpkgs/libdispatch/patches/musl.patch
@@ -0,0 +1,12 @@
+https://git.alpinelinux.org/aports/tree/community/libdispatch/getprogname-musl.patch
+--- a/src/shims/getprogname.h
++++ b/src/shims/getprogname.h
+@@ -37,7 +37,7 @@
+ static inline char *
+ getprogname(void)
+ {
+-# if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
++# if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME || !(defined(__GLIBC__))
+ return program_invocation_short_name;
+ # elif defined(__ANDROID__)
+ return __progname;
diff --git a/srcpkgs/libdispatch/patches/werror.patch b/srcpkgs/libdispatch/patches/werror.patch
new file mode 100644
index 00000000000000..4e3981e2c24cf0
--- /dev/null
+++ b/srcpkgs/libdispatch/patches/werror.patch
@@ -0,0 +1,10 @@
+https://aur.archlinux.org/cgit/aur.git/tree/remove-werror.patch?h=libdispatch
+--- a/cmake/modules/DispatchCompilerWarnings.cmake 2020-05-12 13:13:59.619689872 +0300
++++ b/cmake/modules/DispatchCompilerWarnings.cmake 2020-05-12 13:13:35.216171428 +0300
+@@ -2,7 +2,6 @@
+ if("${CMAKE_C_SIMULATE_ID}" STREQUAL "MSVC")
+ # TODO: someone needs to provide the msvc equivalent warning flags
+ else()
+- add_compile_options($<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:CXX>>:-Werror>)
+ add_compile_options($<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:CXX>>:-Wall>)
+ add_compile_options($<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:CXX>>:-Wextra>)
diff --git a/srcpkgs/libdispatch/template b/srcpkgs/libdispatch/template
new file mode 100644
index 00000000000000..0a7af2eadf47ef
--- /dev/null
+++ b/srcpkgs/libdispatch/template
@@ -0,0 +1,29 @@
+# Template file for 'libdispatch'
+pkgname=libdispatch
+version=5.10.1
+revision=1
+build_style=cmake
+hostmakedepends="clang"
+short_desc="Concurrent multicore library"
+maintainer="zlice <zlice555@gmail.com>"
+license="Apache-2.0"
+homepage="https://github.com/apple/swift-corelibs-libdispatch"
+distfiles="https://github.com/apple/swift-corelibs-libdispatch/archive/refs/tags/swift-${version}-RELEASE.tar.gz"
+checksum=affa3544b0fdb60f8f175bc0d2846177436d5848ef8ca73e3e560d23986f38b3
+
+pre_configure() {
+ export CC=clang
+ export CXX=clang++
+}
+
+post_install() {
+ vlicense LICENSE
+}
+
+libdispatch-devel_package() {
+ short_desc+=" - development files"
+ depends="${makedepends} ${sourcepkg}-${version}_${revision}"
+ pkg_install() {
+ vmove usr/include
+ }
+}
From 2bb302ce61b36b1627066b022921912585933cd3 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 5 Jul 2024 13:37:53 -0400
Subject: [PATCH 91/93] deadbeef: update to 1.9.6
---
.../patch_skip_glade_translations.patch | 157 ------------------
srcpkgs/deadbeef/patches/ppc-musl.patch | 17 --
.../{musl_strdupa.patch => strdupa.patch} | 5 +-
srcpkgs/deadbeef/template | 47 +++---
4 files changed, 31 insertions(+), 195 deletions(-)
delete mode 100644 srcpkgs/deadbeef/patches/patch_skip_glade_translations.patch
delete mode 100644 srcpkgs/deadbeef/patches/ppc-musl.patch
rename srcpkgs/deadbeef/patches/{musl_strdupa.patch => strdupa.patch} (74%)
diff --git a/srcpkgs/deadbeef/patches/patch_skip_glade_translations.patch b/srcpkgs/deadbeef/patches/patch_skip_glade_translations.patch
deleted file mode 100644
index 2768dff2cc9518..00000000000000
--- a/srcpkgs/deadbeef/patches/patch_skip_glade_translations.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-Upstream packages a number of tools which define translations for gettext to
-process. The glade files don't appear to actually have translation marks which
-causes the build to complain and, in the case of packaging, fail.
-
---- a/po/POTFILES.skip 2021-02-20 21:51:50.867875091 -0800
-+++ b/po/POTFILES.skip 2021-02-20 21:51:57.689896618 -0800
-@@ -4,3 +4,151 @@
- plugins/pltbrowser/support.c
- plugins/gtkui/support.c
-+tools/glade/examples/editor/editor.glade
-+tools/glade/examples/editor/src/interface.c
-+tools/glade/examples/editor/src/support.c
-+tools/glade/glade-2.desktop.in
-+tools/glade/glade/editor.c
-+tools/glade/glade/gbwidget.c
-+tools/glade/glade/gbwidgets/gbaboutdialog.c
-+tools/glade/glade/gbwidgets/gbaccellabel.c
-+tools/glade/glade/gbwidgets/gbalignment.c
-+tools/glade/glade/gbwidgets/gbarrow.c
-+tools/glade/glade/gbwidgets/gbaspectframe.c
-+tools/glade/glade/gbwidgets/gbbutton.c
-+tools/glade/glade/gbwidgets/gbcalendar.c
-+tools/glade/glade/gbwidgets/gbcellview.c
-+tools/glade/glade/gbwidgets/gbcheckbutton.c
-+tools/glade/glade/gbwidgets/gbcheckmenuitem.c
-+tools/glade/glade/gbwidgets/gbclist.c
-+tools/glade/glade/gbwidgets/gbcolorbutton.c
-+tools/glade/glade/gbwidgets/gbcolorselection.c
-+tools/glade/glade/gbwidgets/gbcolorselectiondialog.c
-+tools/glade/glade/gbwidgets/gbcombo.c
-+tools/glade/glade/gbwidgets/gbcombobox.c
-+tools/glade/glade/gbwidgets/gbcomboboxentry.c
-+tools/glade/glade/gbwidgets/gbctree.c
-+tools/glade/glade/gbwidgets/gbcurve.c
-+tools/glade/glade/gbwidgets/gbcustom.c
-+tools/glade/glade/gbwidgets/gbdialog.c
-+tools/glade/glade/gbwidgets/gbdrawingarea.c
-+tools/glade/glade/gbwidgets/gbentry.c
-+tools/glade/glade/gbwidgets/gbeventbox.c
-+tools/glade/glade/gbwidgets/gbexpander.c
-+tools/glade/glade/gbwidgets/gbfilechooserbutton.c
-+tools/glade/glade/gbwidgets/gbfilechooserdialog.c
-+tools/glade/glade/gbwidgets/gbfilechooserwidget.c
-+tools/glade/glade/gbwidgets/gbfileselection.c
-+tools/glade/glade/gbwidgets/gbfixed.c
-+tools/glade/glade/gbwidgets/gbfontbutton.c
-+tools/glade/glade/gbwidgets/gbfontselection.c
-+tools/glade/glade/gbwidgets/gbfontselectiondialog.c
-+tools/glade/glade/gbwidgets/gbframe.c
-+tools/glade/glade/gbwidgets/gbgammacurve.c
-+tools/glade/glade/gbwidgets/gbhandlebox.c
-+tools/glade/glade/gbwidgets/gbhbox.c
-+tools/glade/glade/gbwidgets/gbhbuttonbox.c
-+tools/glade/glade/gbwidgets/gbhpaned.c
-+tools/glade/glade/gbwidgets/gbhruler.c
-+tools/glade/glade/gbwidgets/gbhscale.c
-+tools/glade/glade/gbwidgets/gbhscrollbar.c
-+tools/glade/glade/gbwidgets/gbhseparator.c
-+tools/glade/glade/gbwidgets/gbiconview.c
-+tools/glade/glade/gbwidgets/gbimage.c
-+tools/glade/glade/gbwidgets/gbimagemenuitem.c
-+tools/glade/glade/gbwidgets/gbinputdialog.c
-+tools/glade/glade/gbwidgets/gblabel.c
-+tools/glade/glade/gbwidgets/gblayout.c
-+tools/glade/glade/gbwidgets/gblist.c
-+tools/glade/glade/gbwidgets/gblistitem.c
-+tools/glade/glade/gbwidgets/gbmenu.c
-+tools/glade/glade/gbwidgets/gbmenubar.c
-+tools/glade/glade/gbwidgets/gbmenuitem.c
-+tools/glade/glade/gbwidgets/gbmenutoolbutton.c
-+tools/glade/glade/gbwidgets/gbnotebook.c
-+tools/glade/glade/gbwidgets/gboptionmenu.c
-+tools/glade/glade/gbwidgets/gbpreview.c
-+tools/glade/glade/gbwidgets/gbprogressbar.c
-+tools/glade/glade/gbwidgets/gbradiobutton.c
-+tools/glade/glade/gbwidgets/gbradiomenuitem.c
-+tools/glade/glade/gbwidgets/gbradiotoolbutton.c
-+tools/glade/glade/gbwidgets/gbscrolledwindow.c
-+tools/glade/glade/gbwidgets/gbseparatormenuitem.c
-+tools/glade/glade/gbwidgets/gbseparatortoolitem.c
-+tools/glade/glade/gbwidgets/gbspinbutton.c
-+tools/glade/glade/gbwidgets/gbstatusbar.c
-+tools/glade/glade/gbwidgets/gbtable.c
-+tools/glade/glade/gbwidgets/gbtextview.c
-+tools/glade/glade/gbwidgets/gbtogglebutton.c
-+tools/glade/glade/gbwidgets/gbtoggletoolbutton.c
-+tools/glade/glade/gbwidgets/gbtoolbar.c
-+tools/glade/glade/gbwidgets/gbtoolbutton.c
-+tools/glade/glade/gbwidgets/gbtoolitem.c
-+tools/glade/glade/gbwidgets/gbtreeview.c
-+tools/glade/glade/gbwidgets/gbvbox.c
-+tools/glade/glade/gbwidgets/gbvbuttonbox.c
-+tools/glade/glade/gbwidgets/gbviewport.c
-+tools/glade/glade/gbwidgets/gbvpaned.c
-+tools/glade/glade/gbwidgets/gbvruler.c
-+tools/glade/glade/gbwidgets/gbvscale.c
-+tools/glade/glade/gbwidgets/gbvscrollbar.c
-+tools/glade/glade/gbwidgets/gbvseparator.c
-+tools/glade/glade/gbwidgets/gbwindow.c
-+tools/glade/glade/glade.c
-+tools/glade/glade/glade_atk.c
-+tools/glade/glade/glade_clipboard.c
-+tools/glade/glade/glade_gnome.c
-+tools/glade/glade/glade_gnomelib.c
-+tools/glade/glade/glade_gtk12lib.c
-+tools/glade/glade/glade_keys_dialog.c
-+tools/glade/glade/glade_menu_editor.c
-+tools/glade/glade/glade_palette.c
-+tools/glade/glade/glade_project.c
-+tools/glade/glade/glade_project_options.c
-+tools/glade/glade/glade_project_window.c
-+tools/glade/glade/gnome-db/gnomedbcombo.c
-+tools/glade/glade/gnome-db/gnomedbconnectprop.c
-+tools/glade/glade/gnome-db/gnomedbdsnconfig.c
-+tools/glade/glade/gnome-db/gnomedbdsndruid.c
-+tools/glade/glade/gnome-db/gnomedbeditor.c
-+tools/glade/glade/gnome-db/gnomedberror.c
-+tools/glade/glade/gnome-db/gnomedberrordlg.c
-+tools/glade/glade/gnome-db/gnomedbform.c
-+tools/glade/glade/gnome-db/gnomedbgraybar.c
-+tools/glade/glade/gnome-db/gnomedbgrid.c
-+tools/glade/glade/gnome-db/gnomedblogin.c
-+tools/glade/glade/gnome-db/gnomedblogindlg.c
-+tools/glade/glade/gnome-db/gnomedbprovidersel.c
-+tools/glade/glade/gnome-db/gnomedbsourcesel.c
-+tools/glade/glade/gnome-db/gnomedbtableeditor.c
-+tools/glade/glade/gnome/bonobodock.c
-+tools/glade/glade/gnome/bonobodockitem.c
-+tools/glade/glade/gnome/gnomeabout.c
-+tools/glade/glade/gnome/gnomeapp.c
-+tools/glade/glade/gnome/gnomeappbar.c
-+tools/glade/glade/gnome/gnomecanvas.c
-+tools/glade/glade/gnome/gnomecolorpicker.c
-+tools/glade/glade/gnome/gnomecontrol.c
-+tools/glade/glade/gnome/gnomedateedit.c
-+tools/glade/glade/gnome/gnomedialog.c
-+tools/glade/glade/gnome/gnomedruid.c
-+tools/glade/glade/gnome/gnomedruidpageedge.c
-+tools/glade/glade/gnome/gnomedruidpagestandard.c
-+tools/glade/glade/gnome/gnomeentry.c
-+tools/glade/glade/gnome/gnomefileentry.c
-+tools/glade/glade/gnome/gnomefontpicker.c
-+tools/glade/glade/gnome/gnomehref.c
-+tools/glade/glade/gnome/gnomeiconentry.c
-+tools/glade/glade/gnome/gnomeiconlist.c
-+tools/glade/glade/gnome/gnomeiconselection.c
-+tools/glade/glade/gnome/gnomemessagebox.c
-+tools/glade/glade/gnome/gnomepixmap.c
-+tools/glade/glade/gnome/gnomepixmapentry.c
-+tools/glade/glade/gnome/gnomepropertybox.c
-+tools/glade/glade/main.c
-+tools/glade/glade/palette.c
-+tools/glade/glade/property.c
-+tools/glade/glade/save.c
-+tools/glade/glade/source.c
-+tools/glade/glade/tree.c
-+tools/glade/glade/utils.c
diff --git a/srcpkgs/deadbeef/patches/ppc-musl.patch b/srcpkgs/deadbeef/patches/ppc-musl.patch
deleted file mode 100644
index 2cd101026493ec..00000000000000
--- a/srcpkgs/deadbeef/patches/ppc-musl.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-This removes an invalid assumption that results in both BLARGG_LITTLE_ENDIAN
-and BLARGG_BIG_ENDIAN being defined on little endian musl, as we're already
-covered by __LITTLE_ENDIAN__/__BIG_ENDIAN__ (which is specified as a part
-of the ELFv2 ABI itself to be always present). Glibc was not broken because
-it has its own check before that.
-
---- a/plugins/gme/game-music-emu-0.6pre/gme/blargg_endian.h
-+++ b/plugins/gme/game-music-emu-0.6pre/gme/blargg_endian.h
-@@ -36,7 +36,7 @@
- #endif
-
- #if defined (MSB_FIRST) || defined (__BIG_ENDIAN__) || defined (WORDS_BIGENDIAN) || \
-- defined (__sparc__) || BLARGG_CPU_POWERPC || \
-+ defined (__sparc__) || \
- (defined (BIG_ENDIAN) && BIG_ENDIAN+0 != 4321)
- #define BLARGG_BIG_ENDIAN 1
- #elif !defined (__mips__)
diff --git a/srcpkgs/deadbeef/patches/musl_strdupa.patch b/srcpkgs/deadbeef/patches/strdupa.patch
similarity index 74%
rename from srcpkgs/deadbeef/patches/musl_strdupa.patch
rename to srcpkgs/deadbeef/patches/strdupa.patch
index e4bbbcbaadcd5f..3a3e96abfd5baa 100644
--- a/srcpkgs/deadbeef/patches/musl_strdupa.patch
+++ b/srcpkgs/deadbeef/patches/strdupa.patch
@@ -1,8 +1,9 @@
+https://git.alpinelinux.org/aports/tree/community/deadbeef/strdupa.patch
musl strdupa() fails to compile in c++ due to a missing cast
use deadbeef's fallback version instead
---- a/strdupa.h
-+++ b/strdupa.h
+--- a/include/deadbeef/strdupa.h
++++ b/include/deadbeef/strdupa.h
@@ -26,6 +26,10 @@
#include <string.h>
diff --git a/srcpkgs/deadbeef/template b/srcpkgs/deadbeef/template
index f5f4bf24b8cb6d..0bd5cc76e10484 100644
--- a/srcpkgs/deadbeef/template
+++ b/srcpkgs/deadbeef/template
@@ -1,37 +1,40 @@
# Template file for 'deadbeef'
pkgname=deadbeef
-version=1.8.8
-revision=3
+version=1.9.6
+revision=1
create_wrksrc=yes
build_style=gnu-configure
-configure_args="--disable-oss --disable-lfm --disable-notify --disable-gtk2"
+configure_args="--disable-oss --disable-lfm --disable-gtk2 --disable-libretro"
hostmakedepends="automake libtool gettext gettext-devel intltool pkg-config
yasm clang glib-devel"
+
makedepends="
- alsa-lib-devel dbus-devel faad2-devel ffmpeg-devel gtk+3-devel imlib2-devel
- jansson-devel libcddb-devel libcdio-devel libcurl-devel libflac-devel
- libmad-devel libpng-devel libsamplerate-devel libsndfile-devel libvorbis-devel
- libzip-devel mpg123-devel opusfile-devel pulseaudio-devel wavpack-devel"
+ alsa-lib-devel libdispatch-devel ffmpeg-devel faad2-devel gtk+3-devel jansson-devel
+ libcurl-devel libflac-devel libmad-devel libsndfile-devel libvorbis-devel libzip-devel
+ libcddb-devel libcdio-devel opusfile-devel mpg123-devel dbus-devel pulseaudio-devel
+ pipewire-devel libsamplerate-devel wavpack-devel"
depends="desktop-file-utils hicolor-icon-theme"
short_desc="Ultimate Music Player for GNU/Linux"
maintainer="Orphaned <orphan@voidlinux.org>"
license="Zlib, GPL-2.0-or-later, LGPL-2.1-or-later"
-_apbuild_commit=c64f490e54447e3902fae54784d01ab59fa7dc95
-_mp4p_commit=77ac9f2ecaa3a2f6e232fb45cd7f8550e13cc3d3
+_libretro_commit=b4d3db19566398603069d02eeacb3b06987a1b74
+_output_pw_commit=0b099d13ab0e89d9934aabdeb2872f0f66ea6960
+_mp4p_commit=156195ccb635f016dc34b89425bfbecf046c90d4
homepage="https://deadbeef.sourceforge.io"
changelog="https://deadbeef.sourceforge.io/news0.html"
distfiles="https://github.com/DeaDBeeF-Player/deadbeef/archive/${version}.tar.gz>${pkgname}-${version}.tar.gz
- https://github.com/DeaDBeeF-Player/apbuild/archive/${_apbuild_commit}.tar.gz>apbuild-${_apbuild_commit}.tar.gz
+ https://github.com/DeaDBeeF-Player/ddb_dsp_libretro/archive/${_libretro_commit}.tar.gz>libretro-${_libretro_commit}.tar.gz
+ https://github.com/DeaDBeeF-Player/ddb_output_pw/archive/${_output_pw_commit}.tar.gz>output_pw-${_output_pw_commit}.tar.gz
https://github.com/DeaDBeeF-Player/mp4p/archive/${_mp4p_commit}.tar.gz>mp4p-${_mp4p_commit}.tar.gz"
-checksum="a667d55b787d76bc9d3593882b57ae9a449a99e93e1c11f85ec638566e10877d
- c5eeb3fa116d51d251fe7c7e5c44798680f6478c43a1fffdcb28c4caf1c68286
- d0ba1b4ad062cb5c056c4a59ed55769d79371fc9b3bf9aaa0ca48f508e3eba75"
-LDFLAGS+=" -Wl,-z,stack-size=1048576"
+checksum="53ed535335e637437adf77eb4bcadb781eddbf5539f74373d5a863389df5e2d0
+444d4d89edbd51b9d2305c83a49e18949e0f21a42eec2a95ce03efd752a81049
+59115ddcd0378aa2f5914138c5c256198d66339bfbb3d65389b9bf4fa327f9ee
+3b5bdbcb2808d12b9f5af630a91e77be1036aeb487d5fa0a323ce8080918439b"
# The soundtouchup plugin was made default in 1.8.4 and fails to build on i686.
# Fixing that might be a good maintainer task.
case "$XBPS_TARGET_MACHINE" in
- i686*) configure_args+=" --disable-soundtouch" ;;
+ i686*) configure_args+=" --disable-soundtouch --disable-ffap" ;;
esac
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -40,14 +43,20 @@ fi
post_extract() {
mv deadbeef-${version}/* .
- rm -rf external/apbuild
rm -rf external/mp4p
- mv -v apbuild-${_apbuild_commit} external/apbuild
+ rm -rf external/ddb_dsp_libretro
+ rm -rf external/ddb_output_pw
+ mv -v ddb_dsp_libretro-${_libretro_commit} external/ddb_dsp_libretro
+ mv -v ddb_output_pw-${_output_pw_commit} external/ddb_output_pw
mv -v mp4p-${_mp4p_commit} external/mp4p
}
-pre_configure() {
- NOCONFIGURE=1 ./autogen.sh
+# musl complaining about <sys/cdefs.h> deprecation
+do_configure() {
+ export CC=clang
+ export CXX=clang++
+ ./autogen.sh
+ CFLAGS="-Wno-error" ./configure ${configure_args}
}
post_install() {
From 9157b3d55d31fd58edf2b8a0b4a698aea90b9713 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 5 Jul 2024 18:33:23 -0400
Subject: [PATCH 92/93] libwaylandpp: update to 1.0.0
---
common/shlibs | 8 ++++----
srcpkgs/libwaylandpp/template | 6 ++++--
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index f56dd38e45105b..a2c0326f29b4d7 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4211,10 +4211,10 @@ libec.so.10 eclib-20220621_1
libsymmetrica.so.2 symmetrica-3.0.1_1
libLfunction.so.1 lcalc-2.0.4_1
liblrcalc.so.2 lrcalc-2.1_1
-libwayland-client++.so.0 libwaylandpp-0.2.8_1
-libwayland-cursor++.so.0 libwaylandpp-0.2.8_1
-libwayland-egl++.so.0 libwaylandpp-0.2.8_1
-libwayland-client-extra++.so.0 libwaylandpp-0.2.8_1
+libwayland-client++.so.1 libwaylandpp-1.0.0_1
+libwayland-cursor++.so.1 libwaylandpp-1.0.0_1
+libwayland-egl++.so.1 libwaylandpp-1.0.0_1
+libwayland-client-extra++.so.1 libwaylandpp-1.0.0_1
libspdlog.so.1.11 libspdlog-1.11.0_1
libmd.so.0 libmd-1.0.3_1
libldacBT_abr.so.2 ldacBT-2.0.2.3_1
diff --git a/srcpkgs/libwaylandpp/template b/srcpkgs/libwaylandpp/template
index 99d1d50cdbe980..d42d5b35109da8 100644
--- a/srcpkgs/libwaylandpp/template
+++ b/srcpkgs/libwaylandpp/template
@@ -1,6 +1,6 @@
# Template file for 'libwaylandpp'
pkgname=libwaylandpp
-version=0.2.8
+version=1.0.0
revision=1
build_style=cmake
configure_args="-DBUILD_SCANNER=TRUE -DBUILD_LIBRARIES=TRUE
@@ -13,8 +13,10 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="MIT"
homepage="https://github.com/NilsBrause/waylandpp"
distfiles="https://github.com/NilsBrause/waylandpp/archive/${version}.tar.gz"
-checksum=e7f486165d3568c3558b5c7099133aea4a285b82820eeafad329fc10271c654d
+checksum=b20b45917382c6b87e9380130c9a1a1c563da2f498de5830df12fbce326dd9f5
subpackages="libwaylandpp-doc wayland-scanner++ libwaylandpp-devel"
+# cstdint defines std::uint32_t types
+CXXFLAGS="-include cstdint"
if [ "$CROSS_BUILD" ]; then
hostmakedepends+=" wayland-scanner++"
From e741c1e677418fc9f188891357ab363844f55ae6 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Fri, 5 Jul 2024 18:33:34 -0400
Subject: [PATCH 93/93] kodi: update to 21.0
---
.../kodi/patches/add-missing-includes.patch | 10 --
.../disable-static-texturepacker-build.patch | 11 --
srcpkgs/kodi/patches/fix-fileemu.patch | 74 ------------
srcpkgs/kodi/patches/fix-musl.patch | 11 --
srcpkgs/kodi/patches/fmt-9.patch | 44 -------
srcpkgs/kodi/patches/fortify-source-fix.patch | 13 ---
srcpkgs/kodi/patches/mesa-22.3.patch | 54 ---------
srcpkgs/kodi/patches/musl.patch | 97 ++++++++++++++++
srcpkgs/kodi/patches/ppc64.patch | 15 ---
srcpkgs/kodi/template | 109 ++++++++++++++----
10 files changed, 182 insertions(+), 256 deletions(-)
delete mode 100644 srcpkgs/kodi/patches/add-missing-includes.patch
delete mode 100644 srcpkgs/kodi/patches/disable-static-texturepacker-build.patch
delete mode 100644 srcpkgs/kodi/patches/fix-fileemu.patch
delete mode 100644 srcpkgs/kodi/patches/fix-musl.patch
delete mode 100644 srcpkgs/kodi/patches/fmt-9.patch
delete mode 100644 srcpkgs/kodi/patches/fortify-source-fix.patch
delete mode 100644 srcpkgs/kodi/patches/mesa-22.3.patch
create mode 100644 srcpkgs/kodi/patches/musl.patch
delete mode 100644 srcpkgs/kodi/patches/ppc64.patch
diff --git a/srcpkgs/kodi/patches/add-missing-includes.patch b/srcpkgs/kodi/patches/add-missing-includes.patch
deleted file mode 100644
index 1b9a4509744c0a..00000000000000
--- a/srcpkgs/kodi/patches/add-missing-includes.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/xbmc/filesystem/ZipManager.h.orig
-+++ b/xbmc/filesystem/ZipManager.h
-@@ -22,6 +22,7 @@
- #include <string>
- #include <vector>
- #include <map>
-+#include <cstdint>
-
- class CURL;
-
diff --git a/srcpkgs/kodi/patches/disable-static-texturepacker-build.patch b/srcpkgs/kodi/patches/disable-static-texturepacker-build.patch
deleted file mode 100644
index 766cae2005c88e..00000000000000
--- a/srcpkgs/kodi/patches/disable-static-texturepacker-build.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/tools/depends/native/TexturePacker/Makefile 2016-04-24 08:48:30.000000000 +0200
-+++ b/tools/depends/native/TexturePacker/Makefile 2016-07-16 15:12:39.875911293 +0200
-@@ -38,7 +38,7 @@
- -rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
- cd $(PLATFORM); cp -a $(SOURCE)/* .
- cd $(PLATFORM); ./autogen.sh
-- cd $(PLATFORM); ./configure --prefix=$(PREFIX) $(EXTRA_CONFIGURE) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)"
-+ cd $(PLATFORM); ./configure --prefix=$(PREFIX) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)"
-
-
- $(APP): $(PLATFORM)
diff --git a/srcpkgs/kodi/patches/fix-fileemu.patch b/srcpkgs/kodi/patches/fix-fileemu.patch
deleted file mode 100644
index a16fcb9ffa29f3..00000000000000
--- a/srcpkgs/kodi/patches/fix-fileemu.patch
+++ /dev/null
@@ -1,74 +0,0 @@
---- a/xbmc/cores/DllLoader/exports/emu_msvcrt.h 2019-01-30 19:20:09.336910851 +0100
-+++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.h 2019-01-30 19:20:25.423668836 +0100
-@@ -17,7 +17,7 @@
- #define _onexit_t void*
- #endif
-
--#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
- typedef off_t __off_t;
- typedef int64_t off64_t;
- typedef off64_t __off64_t;
---- a/xbmc/cores/DllLoader/exports/wrapper.c 2019-01-30 19:24:16.396348561 +0100
-+++ b/xbmc/cores/DllLoader/exports/wrapper.c 2019-01-30 19:25:38.562176774 +0100
-@@ -23,7 +23,7 @@
- #include <dirent.h>
- #include <dlfcn.h>
-
--#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
- typedef off_t __off_t;
- typedef int64_t off64_t;
- typedef off64_t __off64_t;
---- a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp 2019-01-30 19:29:02.249253971 +0100
-+++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp 2019-01-30 19:39:34.911053272 +0100
-@@ -38,6 +38,7 @@
- #include <fcntl.h>
- #include <time.h>
- #include <signal.h>
-+#include <paths.h>
- #ifdef TARGET_POSIX
- #include "PlatformDefs.h" // for __stat64
- #endif
-@@ -1479,7 +1480,7 @@ extern "C"
- int ret;
-
- ret = dll_fgetpos64(stream, &tmpPos);
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
- *pos = (fpos_t)tmpPos;
- #else
- pos->__pos = (off_t)tmpPos.__pos;
-@@ -1492,8 +1493,9 @@ extern "C"
- CFile* pFile = g_emuFileWrapper.GetFileXbmcByStream(stream);
- if (pFile != NULL)
- {
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-- *pos = pFile->GetPosition();
-+#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
-+ uint64_t *ppos = (uint64_t *) pos;
-+ *ppos = pFile->GetPosition();
- #else
- pos->__pos = pFile->GetPosition();
- #endif
-@@ -1508,8 +1510,9 @@ extern "C"
- int fd = g_emuFileWrapper.GetDescriptorByStream(stream);
- if (fd >= 0)
- {
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-- if (dll_lseeki64(fd, *pos, SEEK_SET) >= 0)
-+#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
-+ const uint64_t *ppos = (const uint64_t *) pos;
-+ if (dll_lseeki64(fd, *ppos, SEEK_SET) >= 0)
- #else
- if (dll_lseeki64(fd, (__off64_t)pos->__pos, SEEK_SET) >= 0)
- #endif
-@@ -1531,7 +1534,7 @@ extern "C"
- if (fd >= 0)
- {
- fpos64_t tmpPos;
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
- tmpPos= *pos;
- #else
- tmpPos.__pos = (off64_t)(pos->__pos);
diff --git a/srcpkgs/kodi/patches/fix-musl.patch b/srcpkgs/kodi/patches/fix-musl.patch
deleted file mode 100644
index 89120411841137..00000000000000
--- a/srcpkgs/kodi/patches/fix-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/xbmc/cores/DllLoader/ldt_keeper.c 2019-01-30 20:08:15.532823846 +0100
-+++ b/xbmc/cores/DllLoader/ldt_keeper.c 2019-01-30 20:08:34.139580225 +0100
-@@ -53,7 +53,7 @@
- #ifdef __cplusplus
- extern "C" {
- #endif
--#if defined(TARGET_ANDROID) && (defined(__i386__) || defined(__x86_64__)) && !defined(modify_ldt)
-+#if defined(__linux__) && (defined(__i386__) || defined(__x86_64__)) && !defined(modify_ldt)
- #define modify_ldt(a,b,c) syscall( __NR_modify_ldt, a, b, c);
- #else
- int modify_ldt(int func, void *ptr, unsigned long bytecount);
diff --git a/srcpkgs/kodi/patches/fmt-9.patch b/srcpkgs/kodi/patches/fmt-9.patch
deleted file mode 100644
index aba5f9b67b567f..00000000000000
--- a/srcpkgs/kodi/patches/fmt-9.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-The original type is const unsigned char *
---- a/xbmc/windowing/X11/WinSystemX11.cpp
-+++ b/xbmc/windowing/X11/WinSystemX11.cpp
-@@ -1038,7 +1038,7 @@ bool CWinSystemX11::HasWindowManager()
-
- if(status == Success && items_read)
- {
-- CLog::Log(LOGDEBUG,"Window Manager Name: %s", data);
-+ CLog::Log(LOGDEBUG,"Window Manager Name: %s", (char *)data);
- }
- else
- CLog::Log(LOGDEBUG,"Window Manager Name: ");
---- a/xbmc/utils/GLUtils.cpp
-+++ b/xbmc/utils/GLUtils.cpp
-@@ -152,25 +152,25 @@ void LogGraphicsInfo()
-
- s = glGetString(GL_VENDOR);
- if (s)
-- CLog::Log(LOGINFO, "GL_VENDOR = %s", s);
-+ CLog::Log(LOGINFO, "GL_VENDOR = %s", (char *)(s));
- else
- CLog::Log(LOGINFO, "GL_VENDOR = NULL");
-
- s = glGetString(GL_RENDERER);
- if (s)
-- CLog::Log(LOGINFO, "GL_RENDERER = %s", s);
-+ CLog::Log(LOGINFO, "GL_RENDERER = %s", (char *)(s));
- else
- CLog::Log(LOGINFO, "GL_RENDERER = NULL");
-
- s = glGetString(GL_VERSION);
- if (s)
-- CLog::Log(LOGINFO, "GL_VERSION = %s", s);
-+ CLog::Log(LOGINFO, "GL_VERSION = %s", (char *)(s));
- else
- CLog::Log(LOGINFO, "GL_VERSION = NULL");
-
- s = glGetString(GL_SHADING_LANGUAGE_VERSION);
- if (s)
-- CLog::Log(LOGINFO, "GL_SHADING_LANGUAGE_VERSION = %s", s);
-+ CLog::Log(LOGINFO, "GL_SHADING_LANGUAGE_VERSION = %s", (char *)(s));
- else
- CLog::Log(LOGINFO, "GL_SHADING_LANGUAGE_VERSION = NULL");
-
diff --git a/srcpkgs/kodi/patches/fortify-source-fix.patch b/srcpkgs/kodi/patches/fortify-source-fix.patch
deleted file mode 100644
index 5a314718a70f65..00000000000000
--- a/srcpkgs/kodi/patches/fortify-source-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: xbmc-19.0-Matrix/xbmc/cores/DllLoader/exports/wrapper.c
-===================================================================
---- xbmc-19.0-Matrix.orig/xbmc/cores/DllLoader/exports/wrapper.c
-+++ xbmc-19.0-Matrix/xbmc/cores/DllLoader/exports/wrapper.c
-@@ -449,7 +449,7 @@ struct mntent *__wrap_getmntent(FILE *fp
- // are actually #defines which are inlined when compiled with -O. Those defines
- // actually call __*chk (for example, __fread_chk). We need to bypass this whole
- // thing to actually call our wrapped functions.
--#if _FORTIFY_SOURCE > 1
-+#if defined(__GLIBC__) && _FORTIFY_SOURCE > 1
-
- size_t __wrap___fread_chk(void * ptr, size_t ptrlen, size_t size, size_t n, FILE * stream)
- {
diff --git a/srcpkgs/kodi/patches/mesa-22.3.patch b/srcpkgs/kodi/patches/mesa-22.3.patch
deleted file mode 100644
index f95aab7750bdf0..00000000000000
--- a/srcpkgs/kodi/patches/mesa-22.3.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 5449652abf0bb9dddd0d796de4120e60f19f89a5 Mon Sep 17 00:00:00 2001
-From: Alan Swanson <reiver@improbability.net>
-Date: Mon, 19 Dec 2022 21:28:13 +0200
-Subject: [PATCH] Work around Mesa eglchromium.h removal
-
-I have polished Alan's snippet to buildable state and tested
-on Kodi from Debian sid.
-
-Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
----
- cmake/modules/FindEGL.cmake | 6 ++++++
- xbmc/windowing/X11/GLContextEGL.h | 4 ++++
- 2 files changed, 10 insertions(+)
-
-diff --git a/cmake/modules/FindEGL.cmake b/cmake/modules/FindEGL.cmake
-index b00fe08a25f95..a68a8db901222 100644
---- a/cmake/modules/FindEGL.cmake
-+++ b/cmake/modules/FindEGL.cmake
-@@ -9,6 +9,7 @@
- # EGL_INCLUDE_DIRS - the EGL include directory
- # EGL_LIBRARIES - the EGL libraries
- # EGL_DEFINITIONS - the EGL definitions
-+# HAVE_EGLEXTANGLE - if eglext_angle.h exists else use eglextchromium.h
- #
- # and the following imported targets::
- #
-@@ -35,6 +36,11 @@ if(EGL_FOUND)
- set(EGL_LIBRARIES ${EGL_LIBRARY})
- set(EGL_INCLUDE_DIRS ${EGL_INCLUDE_DIR})
- set(EGL_DEFINITIONS -DHAS_EGL=1)
-+ include(CheckIncludeFiles)
-+ check_include_files("EGL/egl.h;EGL/eglext.h;EGL/eglext_angle.h" HAVE_EGLEXTANGLE)
-+ if(HAVE_EGLEXTANGLE)
-+ list(APPEND EGL_DEFINITIONS "-DHAVE_EGLEXTANGLE=1")
-+ endif()
-
- if(NOT TARGET EGL::EGL)
- add_library(EGL::EGL UNKNOWN IMPORTED)
-diff --git a/xbmc/windowing/X11/GLContextEGL.h b/xbmc/windowing/X11/GLContextEGL.h
-index 99a6a9024e8c6..afea0b7c43eac 100644
---- a/xbmc/windowing/X11/GLContextEGL.h
-+++ b/xbmc/windowing/X11/GLContextEGL.h
-@@ -13,7 +13,11 @@
- #include "threads/CriticalSection.h"
-
- #include <EGL/eglext.h>
-+#ifdef HAVE_EGLEXTANGLE
-+#include <EGL/eglext_angle.h>
-+#else
- #include <EGL/eglextchromium.h>
-+#endif
- #include <X11/Xutil.h>
-
- class CGLContextEGL : public CGLContext
diff --git a/srcpkgs/kodi/patches/musl.patch b/srcpkgs/kodi/patches/musl.patch
new file mode 100644
index 00000000000000..a421c6707f7ffb
--- /dev/null
+++ b/srcpkgs/kodi/patches/musl.patch
@@ -0,0 +1,97 @@
+https://git.alpinelinux.org/aports/tree/community/kodi/fix-musl-incompability.patch
+
+diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
+index 1d5564c8c5..73c07fb586 100644
+--- a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
++++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
+@@ -72,6 +72,13 @@
+ #include "platform/win32/CharsetConverter.h"
+ #endif
+
++#ifndef _PATH_MOUNTED
++#define _PATH_MOUNTED "/proc/mounts"
++#endif
++#ifndef _PATH_MNTTAB
++#define _PATH_MNTTAB "/etc/fstab"
++#endif
++
+ using namespace XFILE;
+
+ struct SDirData
+@@ -124,7 +131,7 @@ extern "C" void __stdcall init_emu_environ()
+ dll_putenv("OS=win10");
+ #elif defined(TARGET_DARWIN)
+ dll_putenv("OS=darwin");
+-#elif defined(TARGET_POSIX)
++#elif defined(TARGET_POSIX) || !defined(__GLIBC__)
+ dll_putenv("OS=linux");
+ #else
+ dll_putenv("OS=unknown");
+@@ -1480,7 +1487,7 @@ extern "C"
+ int ret;
+
+ ret = dll_fgetpos64(stream, &tmpPos);
+-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
++#if !defined(__GLIBC__) || !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
+ *pos = (fpos_t)tmpPos;
+ #else
+ pos->__pos = (off_t)tmpPos.__pos;
+@@ -1493,8 +1500,9 @@ extern "C"
+ CFile* pFile = g_emuFileWrapper.GetFileXbmcByStream(stream);
+ if (pFile != NULL)
+ {
+-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
+- *pos = pFile->GetPosition();
++#if !defined(__GLIBC__) || !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
++ uint64_t *ppos = (uint64_t *)pos;
++ *ppos = pFile->GetPosition();
+ #else
+ pos->__pos = pFile->GetPosition();
+ #endif
+@@ -1509,8 +1517,9 @@ extern "C"
+ int fd = g_emuFileWrapper.GetDescriptorByStream(stream);
+ if (fd >= 0)
+ {
+-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
+- if (dll_lseeki64(fd, *pos, SEEK_SET) >= 0)
++#if !defined(TARGET_POSIX) || !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
++ const uint64_t *ppos = (const uint64_t *) pos;
++ if (dll_lseeki64(fd, *ppos, SEEK_SET) >= 0)
+ #else
+ if (dll_lseeki64(fd, (__off64_t)pos->__pos, SEEK_SET) >= 0)
+ #endif
+@@ -1532,7 +1541,7 @@ extern "C"
+ if (fd >= 0)
+ {
+ fpos64_t tmpPos;
+-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
++#if !defined(__GLIBC__) || !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
+ tmpPos= *pos;
+ #else
+ tmpPos.__pos = (off64_t)(pos->__pos);
+diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.h b/xbmc/cores/DllLoader/exports/emu_msvcrt.h
+index 7869dc221c..3b86d6b45b 100644
+--- a/xbmc/cores/DllLoader/exports/emu_msvcrt.h
++++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.h
+@@ -17,7 +17,7 @@
+ #define _onexit_t void*
+ #endif
+
+-#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
++#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
+ typedef off_t __off_t;
+ typedef int64_t off64_t;
+ typedef off64_t __off64_t;
+diff --git a/xbmc/cores/DllLoader/exports/wrapper.c b/xbmc/cores/DllLoader/exports/wrapper.c
+index 33ab3437c1..5a68de2c64 100644
+--- a/xbmc/cores/DllLoader/exports/wrapper.c
++++ b/xbmc/cores/DllLoader/exports/wrapper.c
+@@ -23,7 +23,7 @@
+ #include <dirent.h>
+ #include <dlfcn.h>
+
+-#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
++#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
+ typedef off_t __off_t;
+ typedef int64_t off64_t;
+ typedef off64_t __off64_t;
diff --git a/srcpkgs/kodi/patches/ppc64.patch b/srcpkgs/kodi/patches/ppc64.patch
deleted file mode 100644
index 8bd3e7661ca4ac..00000000000000
--- a/srcpkgs/kodi/patches/ppc64.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/cmake/scripts/linux/ArchSetup.cmake 2019-01-30 21:03:03.146025973 +0100
-+++ b/cmake/scripts/linux/ArchSetup.cmake 2019-01-30 21:03:47.810441038 +0100
-@@ -35,6 +35,12 @@
- elseif(CPU MATCHES riscv64)
- set(ARCH riscv64)
- set(NEON False)
-+ elseif(CPU MATCHES ppc64le)
-+ set(ARCH ppc64le-linux)
-+ set(NEON False)
-+ elseif(CPU MATCHES ppc64)
-+ set(ARCH ppc64-linux)
-+ set(NEON False)
- else()
- message(SEND_ERROR "Unknown CPU: ${CPU}")
- endif()
diff --git a/srcpkgs/kodi/template b/srcpkgs/kodi/template
index d37a5918cd6758..4b7c12728beec0 100644
--- a/srcpkgs/kodi/template
+++ b/srcpkgs/kodi/template
@@ -1,37 +1,87 @@
# Template file for 'kodi'
pkgname=kodi
-version=19.4
-revision=9
-_codename="Matrix"
+version=21.0
+revision=1
+_codename="Omega"
build_style=cmake
+_crossguid_ver="ca1bf4b810e2d188d04cb6286f957008ee1b7681"
+_dvdcss_ver="1.4.3-Next-Nexus-Alpha2-2"
+_dvdread_ver="6.1.3-Next-Nexus-Alpha2-2"
+_dvdnav_ver="6.1.1-Next-Nexus-Alpha2-2"
+_fstrcmp_ver="0.7.D001"
+_flatbuffers_ver="23.3.3"
+_udfread_ver="1.1.2"
configure_args="-DWITH_FFMPEG=/usr -DENABLE_LDGOLD=OFF
-DAPP_RENDER_SYSTEM=gl -DENABLE_INTERNAL_CROSSGUID=ON
- -DCROSSGUID_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/crossguid-8f399e8bd4.tar.gz
- -Dlibdvdcss_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/libdvdcss-1.4.2-Leia-Beta-5.tar.gz
- -Dlibdvdread_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/libdvdread-6.0.0-Leia-Alpha-3.tar.gz
- -Dlibdvdnav_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/libdvdnav-6.0.0-Leia-Alpha-3.tar.gz"
+ -DCMAKE_BUILD_TYPE=Release
+ -DCMAKE_INSTALL_PREFIX=/usr
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib
+ -DENABLE_LDGOLD=OFF
+ -DENABLE_AIRTUNES=ON
+ -DENABLE_AVAHI=ON
+ -DENABLE_BLURAY=ON
+ -DENABLE_CEC=ON
+ -DENABLE_DBUS=ON
+ -DENABLE_DVDCSS=ON
+ -DENABLE_EGL=ON
+ -DENABLE_EVENTCLIENTS=ON
+ -DENABLE_MICROHTTPD=ON
+ -DENABLE_MYSQLCLIENT=ON
+ -DENABLE_NFS=ON
+ -DENABLE_OPTICAL=ON
+ -DENABLE_SMBCLIENT=ON
+ -DENABLE_UDEV=ON
+ -DENABLE_UPNP=ON
+ -DENABLE_VAAPI=ON
+ -DENABLE_VDPAU=ON
+ -DENABLE_XSLT=ON
+ -DENABLE_LIRCCLIENT=OFF
+ -DENABLE_INTERNAL_RapidJSON=OFF
+ -DENABLE_INTERNAL_CROSSGUID=ON
+ -DENABLE_INTERNAL_FSTRCMP=ON
+ -DENABLE_INTERNAL_FLATBUFFERS=ON
+ -DENABLE_INTERNAL_UDFREAD=ON
+ -DCROSSGUID_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/crossguid-${_crossguid_ver}.tar.gz
+ -Dlibdvdcss_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/libdvdcss-${_dvdcss_ver}.tar.gz
+ -Dlibdvdnav_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/libdvdnav-${_dvdnav_ver}.tar.gz
+ -Dlibdvdread_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/libdvdread-${_dvdread_ver}.tar.gz
+ -DFSTRCMP_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/fstrcmp-${_fstrcmp_ver}.tar.gz
+ -DFLATBUFFERS_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/flatbuffers-${_flatbuffers_ver}.tar.gz
+ -DUDFREAD_URL=${XBPS_SRCDISTDIR}/${pkgname}-${version}/libudfread-${_udfread_ver}.tar.gz"
make_build_target="all"
short_desc="Software media player and entertainment hub for digital media"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-2.0-or-later"
homepage="http://www.kodi.tv"
distfiles="https://github.com/xbmc/xbmc/archive/${version}-${_codename}.tar.gz"
-checksum=cc026f59fd6e37ae90f3449df50810f1cefa37da9444e1188302d910518710da
+checksum=7f54c1fd8456ac46221fbc85e447362bdc209163c6cb19fca98d106560071b7c
# Add CrossGUID dependency
-distfiles+=" http://mirrors.kodi.tv/build-deps/sources/crossguid-8f399e8bd4.tar.gz"
-checksum+=" 3d77d09a5df0de510aeeb940df4cb534787ddff3bb1828779753f5dfa1229d10"
+distfiles+=" http://mirrors.kodi.tv/build-deps/sources/crossguid-${_crossguid_ver}.tar.gz"
+checksum+=" 6be27e0b3a4907f0cd3cfadec255ee1b925569e1bd06e67a4d2f4267299b69c4"
# Add libdvdcss dependency
-distfiles+=" https://github.com/xbmc/libdvdcss/archive/1.4.2-Leia-Beta-5.tar.gz>libdvdcss-1.4.2-Leia-Beta-5.tar.gz"
-checksum+=" 38816f8373e243bc5950449b4f3b18938c4e1c59348e3411e23f31db4072e40d"
+distfiles+=" https://github.com/xbmc/libdvdcss/archive/${_dvdcss_ver}.tar.gz>libdvdcss-${_dvdcss_ver}.tar.gz"
+checksum+=" f38c4a4e7a4f4da6d8e83b8852489aa3bb6588a915dc41f5ee89d9aad305a06e"
# Add libdvdread dependency
-distfiles+=" https://github.com/xbmc/libdvdread/archive/6.0.0-Leia-Alpha-3.tar.gz>libdvdread-6.0.0-Leia-Alpha-3.tar.gz"
-checksum+=" a30b6aa0aad0f2c505bc77948af2d5531a80b6e68112addb4c123fca24d5d3bf"
+distfiles+=" https://github.com/xbmc/libdvdread/archive/${_dvdread_ver}.tar.gz>libdvdread-${_dvdread_ver}.tar.gz"
+checksum+=" 719130091e3adc9725ba72df808f24a14737a009dca5a4c38c601c0c76449b62"
# Add libdvdnav dependency
-distfiles+=" https://github.com/xbmc/libdvdnav/archive/6.0.0-Leia-Alpha-3.tar.gz>libdvdnav-6.0.0-Leia-Alpha-3.tar.gz"
-checksum+=" 071e414e61b795f2ff9015b21a85fc009dde967f27780d23092643916538a57a"
-skip_extraction="crossguid-8f399e8bd4.tar.gz libdvdcss-1.4.2-Leia-Beta-5.tar.gz
- libdvdread-6.0.0-Leia-Alpha-3.tar.gz libdvdnav-6.0.0-Leia-Alpha-3.tar.gz"
+distfiles+=" https://github.com/xbmc/libdvdnav/archive/${_dvdnav_ver}.tar.gz>libdvdnav-${_dvdnav_ver}.tar.gz"
+checksum+=" 584f62a3896794408d46368e2ecf2c6217ab9c676ce85921b2d68b8961f49dfc"
+# Add fstrcmp dependency
+distfiles+=" https://mirrors.kodi.tv/build-deps/sources/fstrcmp-${_fstrcmp_ver}.tar.gz>fstrcmp-${_fstrcmp_ver}.tar.gz"
+checksum+=" e4018e850f80700acee8da296e56e15b1eef711ab15157e542e7d7e1237c3476"
+# Add flatbuffers dependency
+distfiles+=" https://mirrors.kodi.tv/build-deps/sources/flatbuffers-${_flatbuffers_ver}.tar.gz>flatbuffers-${_flatbuffers_ver}.tar.gz"
+checksum+=" 8aff985da30aaab37edf8e5b02fda33ed4cbdd962699a8e2af98fdef306f4e4d"
+# Add libudfread dependency
+distfiles+=" https://mirrors.kodi.tv/build-deps/sources/libudfread-${_udfread_ver}.tar.gz>libudfread-${_udfread_ver}.tar.gz"
+checksum+=" 2bf16726ac98d093156195bb049a663e07d3323e079c26912546f4e05c77bac5"
+skip_extraction="crossguid-${_crossguid_ver}.tar.gz libdvdcss-${_dvdcss_ver}.tar.gz
+ libdvdread-${_dvdread}.tar.gz libdvdnav-${_dvdnav}.tar.gz
+ flatbuffers-${_flatbuffers_ver}.tar.gz libudfread-${_libudfread_ver}.tar.gz"
python_version=3
+# cstdint defines std::uint32_t types
+CXXFLAGS="-include cstdint"
LDFLAGS="-Wl,-z,stack-size=1048576"
if [ "$XBPS_WORDSIZE" = 32 ]; then
@@ -53,12 +103,12 @@ makedepends="
jasper-devel faac-devel SDL2_image-devel faad2-devel libmodplug-devel openssl-devel
libmad-devel fontconfig-devel libXinerama-devel libsamplerate-devel libmms-devel
enca-devel boost-devel libcurl-devel libva-devel libvdpau-devel libass-devel
- libbluetooth-devel yajl-devel libplist-devel librtmp-devel tinyxml-devel
- taglib-devel libcap-devel lame-devel libbluray-devel libnfs-devel ffmpeg-devel
- giflib-devel libxslt-devel gnutls-devel libssh-devel libmicrohttpd-devel
- libcec-devel dcadec-devel flatbuffers-devel fmt-devel lcms2-devel
- libfstrcmp-devel rapidjson libcdio-paranoia spdlog libwaylandpp-devel
- libinput-devel libdav1d-devel gtest-devel python3-devel"
+ libbluetooth-devel yajl-devel libplist-devel librtmp-devel libdisplay-info-devel
+ tinyxml-devel tinyxml2-devel taglib-devel libcap-devel lame-devel libbluray-devel
+ libnfs-devel ffmpeg6-devel giflib-devel libxslt-devel gnutls-devel libssh-devel
+ libmicrohttpd-devel libcec-devel dcadec-devel flatbuffers-devel fmt-devel lcms2-devel
+ libfstrcmp-devel rapidjson libcdio-paranoia spdlog libwaylandpp-devel libinput-devel
+ libdav1d-devel gtest-devel python3-devel"
# The following dependencies are dlopen(3)ed.
depends="libbluray libmad libvorbis libcurl libflac libmodplug libass libmpeg2
@@ -95,6 +145,11 @@ else
libwaylandpp-devel"
fi
+post_extract() {
+ mv xbmc-${version}-${_codename}/* .
+# sed '10 a#include <cstdint>' -i xbmc/windowing/wayland/Connection.h
+}
+
pre_configure() {
if [ "$CROSS_BUILD" ]; then
find -type f | \
@@ -118,6 +173,12 @@ pre_configure() {
fi
}
+post_configure() {
+# sed '2 a#include <cstdint>' -i build/wayland-extra-protocols.hpp
+ # do this here so configure steps don't break
+ export CFLAGS="-include cstdint"
+}
+
do_check() {
./build/kodi-test --gtest_filter="${_gtest_filter}"
}
next prev parent reply other threads:[~2024-07-05 22:35 UTC|newest]
Thread overview: 175+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-05 13:20 [PR PATCH] " zlice
2023-05-05 13:27 ` [PR PATCH] [Updated] " zlice
2023-05-05 13:53 ` zlice
2023-05-05 18:04 ` [PR PATCH] [Updated] " zlice
2023-05-07 19:26 ` paper42
2023-05-07 22:00 ` zlice
2023-05-07 22:00 ` [PR PATCH] [Updated] " zlice
2023-05-08 0:23 ` zlice
2023-05-29 1:43 ` zlice
2023-06-04 15:47 ` zlice
2023-06-10 5:04 ` zlice
2023-06-17 19:17 ` zlice
2023-06-17 19:28 ` zlice
2023-06-19 20:19 ` zlice
2023-06-22 14:28 ` zlice
2023-06-23 20:37 ` [PR PATCH] [Updated] " zlice
2023-07-04 13:30 ` zlice
2023-07-04 14:18 ` zlice
2023-07-04 14:19 ` zlice
2023-07-09 14:54 ` zlice
2023-07-09 14:58 ` zlice
2023-07-17 19:52 ` [PR PATCH] [Updated] " zlice
2023-08-02 14:18 ` zlice
2023-08-30 13:18 ` zlice
2023-10-02 0:04 ` yoshiyoshyosh
2023-10-11 12:27 ` zlice
2023-10-11 17:06 ` SpidFightFR
2023-10-11 17:07 ` SpidFightFR
2023-10-16 12:11 ` [PR PATCH] [Updated] " zlice
2023-10-16 12:12 ` zlice
2023-10-16 12:19 ` SpidFightFR
2023-10-16 12:19 ` SpidFightFR
2023-10-16 12:26 ` SpidFightFR
2023-10-16 12:27 ` SpidFightFR
2023-10-16 12:27 ` SpidFightFR
2023-10-17 12:58 ` [PR PATCH] [Updated] " zlice
2023-10-17 12:59 ` zlice
2023-11-08 15:12 ` [PR PATCH] [Updated] " zlice
2023-11-10 20:08 ` zlice
2023-11-14 13:43 ` zlice
2023-11-20 23:00 ` zlice
2023-12-03 16:39 ` mhmdanas
2023-12-03 16:45 ` [PR PATCH] [Updated] " zlice
2023-12-03 16:59 ` zlice
2023-12-05 16:30 ` mhmdanas
2023-12-09 17:37 ` [PR PATCH] [Updated] " zlice
2023-12-09 17:39 ` zlice
2023-12-14 18:28 ` [PR PATCH] [Updated] " zlice
2023-12-19 20:48 ` zlice
2023-12-29 17:30 ` zlice
2023-12-29 17:30 ` zlice
2023-12-29 17:47 ` [PR PATCH] [Updated] " zlice
2024-01-05 13:07 ` zlice
2024-01-11 16:52 ` zlice
2024-01-17 22:35 ` zlice
2024-01-17 22:50 ` zlice
2024-01-28 18:46 ` zlice
2024-02-02 22:44 ` zlice
2024-02-02 22:46 ` zlice
2024-02-02 22:48 ` zlice
2024-02-03 20:31 ` [PR PATCH] [Updated] " zlice
2024-02-03 20:38 ` zlice
2024-02-03 22:46 ` [PR PATCH] [Updated] " zlice
2024-02-06 5:34 ` Luciogi
2024-02-11 17:28 ` [PR PATCH] [Updated] " zlice
2024-02-11 22:49 ` zlice
2024-02-15 19:52 ` zlice
2024-02-20 18:21 ` zlice
2024-02-22 17:25 ` yoshiyoshyosh
2024-02-22 17:34 ` zlice
2024-02-24 2:34 ` yoshiyoshyosh
2024-02-24 2:34 ` yoshiyoshyosh
2024-02-25 17:32 ` [PR PATCH] [Updated] " zlice
2024-02-25 17:33 ` zlice
2024-02-25 19:08 ` yoshiyoshyosh
2024-02-25 19:08 ` yoshiyoshyosh
2024-02-25 19:09 ` yoshiyoshyosh
2024-02-25 19:09 ` yoshiyoshyosh
2024-02-25 19:28 ` yoshiyoshyosh
2024-02-25 19:28 ` zlice
2024-02-25 19:32 ` yoshiyoshyosh
2024-02-25 19:33 ` yoshiyoshyosh
2024-02-25 20:20 ` yoshiyoshyosh
2024-02-25 21:45 ` yoshiyoshyosh
2024-02-25 21:58 ` yoshiyoshyosh
2024-03-01 15:58 ` [PR PATCH] [Updated] " zlice
2024-03-06 21:24 ` zlice
2024-03-09 22:24 ` yoshiyoshyosh
2024-03-09 22:41 ` [PR PATCH] [Updated] " zlice
2024-03-09 22:43 ` zlice
2024-03-09 22:56 ` yoshiyoshyosh
2024-03-10 0:03 ` zlice
2024-03-12 17:08 ` [PR PATCH] [Updated] " zlice
2024-03-18 20:07 ` zlice
2024-03-21 21:29 ` zlice
2024-03-21 21:51 ` zlice
2024-03-28 17:21 ` zlice
2024-04-13 14:47 ` zlice
2024-04-26 12:45 ` zlice
2024-05-09 13:32 ` zlice
2024-05-13 17:56 ` zlice
2024-05-16 16:36 ` zlice
2024-05-17 13:38 ` Luciogi
2024-05-17 13:40 ` zlice
2024-05-17 13:48 ` zlice
2024-05-17 13:49 ` zlice
2024-05-21 0:20 ` [PR PATCH] [Updated] " zlice
2024-05-27 13:30 ` zlice
2024-05-27 22:54 ` zlice
2024-05-29 22:15 ` zlice
2024-05-29 22:19 ` zlice
2024-06-03 23:13 ` [PR PATCH] [Updated] " zlice
2024-06-04 13:16 ` zlice
2024-06-04 13:20 ` zlice
2024-06-04 14:07 ` [PR PATCH] [Updated] " zlice
2024-06-04 14:08 ` zlice
2024-06-04 14:10 ` [PR PATCH] [Updated] " zlice
2024-06-04 18:40 ` zlice
2024-06-06 13:42 ` [PR PATCH] [Updated] " zlice
2024-06-21 18:12 ` [PR REVIEW] " ahesford
2024-06-23 16:08 ` zlice
2024-06-23 21:57 ` zlice
2024-06-25 15:53 ` ahesford
2024-06-25 17:43 ` [PR PATCH] [Updated] " zlice
2024-06-26 12:28 ` zlice
2024-06-29 11:22 ` zlice
2024-06-29 11:24 ` zlice
2024-06-29 11:24 ` zlice
2024-06-29 11:34 ` [PR PATCH] [Updated] " zlice
2024-06-29 15:14 ` zlice
2024-06-29 15:16 ` zlice
2024-07-04 11:32 ` [PR PATCH] [Updated] " zlice
2024-07-04 16:17 ` chrysos349
2024-07-04 16:27 ` chrysos349
2024-07-04 16:36 ` classabbyamp
2024-07-05 17:56 ` [PR PATCH] [Updated] " zlice
2024-07-05 18:02 ` zlice
2024-07-05 18:04 ` zlice
2024-07-05 18:07 ` classabbyamp
2024-07-05 18:07 ` classabbyamp
2024-07-05 18:10 ` classabbyamp
2024-07-05 18:11 ` classabbyamp
2024-07-05 18:50 ` ahesford
2024-07-05 22:03 ` zlice
2024-07-05 22:35 ` zlice [this message]
2024-07-05 22:42 ` [PR PATCH] [Updated] " zlice
2024-07-05 22:47 ` classabbyamp
2024-07-05 23:10 ` zlice
2024-07-06 0:10 ` zlice
2024-07-06 13:31 ` zlice
2024-07-06 13:31 ` zlice
2024-07-06 20:07 ` zlice
2024-07-06 20:08 ` zlice
2024-07-14 2:50 ` [PR PATCH] [Updated] " zlice
2024-07-19 20:32 ` Pestdoktor
2024-07-19 20:34 ` [PR PATCH] [Updated] " zlice
2024-07-21 23:13 ` classabbyamp
2024-07-21 23:20 ` zlice
2024-07-21 23:30 ` classabbyamp
2024-07-28 23:02 ` classabbyamp
2024-07-28 23:02 ` [PR PATCH] [Closed]: " classabbyamp
2024-07-28 23:07 ` classabbyamp
2024-07-28 23:12 ` classabbyamp
2024-07-28 23:12 ` classabbyamp
2024-07-28 23:12 ` classabbyamp
2024-07-28 23:12 ` classabbyamp
2024-07-28 23:13 ` classabbyamp
2024-07-28 23:13 ` classabbyamp
2024-07-28 23:29 ` classabbyamp
2024-07-28 23:29 ` classabbyamp
2024-07-29 0:36 ` classabbyamp
2024-07-29 0:36 ` classabbyamp
2024-07-29 0:36 ` classabbyamp
2024-07-29 1:35 ` zlice
2024-07-29 3:39 ` classabbyamp
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240705223505.8B44029215@inbox.vuxu.org \
--to=zlice@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).