diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index dc0acca9af..5959a61167 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -73,6 +73,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard (optional). # Commenting out will disable upload of results to your repo's Code Scanning dashboard - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@68bde559dea0fdcac2102bfdf6230c5f70eb485e # v4 + uses: github/codeql-action/upload-sarif@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4 with: sarif_file: results.sarif diff --git a/README.md b/README.md index 2c71d59f8c..9664ba64bb 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ On Fedora, you can optionally install the Terra subrepos. Extra care and caution - Install `terra-release-extras` to enable the Extras subrepo. This repo contains packages which conflict with Fedora packages in some way, such as being a patched version of the same package. - Install `terra-release-mesa` to install the Mesa subrepo which contains a patched and codec complete Mesa. - Install `terra-release-nvidia` to install the NVIDIA subrepo which contains NVIDIA drivers. -- Install `terra-release-multimedia` for multimedia packages in Terra. This repository is currently considered a work in progress. +- Install `terra-release-multimedia` for multimedia packages in Terra. **This repository is currently considered unstable and a work in progress.** ### Enterprise Linux (EL) diff --git a/anda/apps/KTailctl/KTailctl.spec b/anda/apps/KTailctl/KTailctl.spec new file mode 100644 index 0000000000..fd3410975e --- /dev/null +++ b/anda/apps/KTailctl/KTailctl.spec @@ -0,0 +1,74 @@ +Name: ktailctl +Version: 0.21.5 +Release: 1%{?dist} +Summary: A GUI to monitor and manage Tailscale on your Linux desktop +License: GPL-3.0-only +URL: https://github.com/f-koehler/KTailctl +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +BuildRequires: cmake +BuildRequires: extra-cmake-modules +BuildRequires: gcc-c++ +BuildRequires: golang +BuildRequires: json-devel +BuildRequires: golang +BuildRequires: kf6-breeze-icons-devel +BuildRequires: kf6-kconfig-devel +BuildRequires: kf6-kcoreaddons-devel +BuildRequires: kf6-kdbusaddons-devel +BuildRequires: kf6-kguiaddons-devel +BuildRequires: kf6-ki18n-devel +BuildRequires: kf6-kirigami-addons-devel +BuildRequires: kf6-kirigami-devel +BuildRequires: kf6-knotifications-devel +BuildRequires: kf6-kwindowsystem-devel +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-qtdeclarative-devel +BuildRequires: qt6-qtsvg-devel + +Requires: tailscale +Requires: kf5-qqc2-desktop-style +Requires: hicolor-icon-theme + +Provides: KTailctl + +Packager: Owen Zimmerman + +%description +%{summary}. + +%package static +%pkg_static_files + +%prep +%autosetup -n KTailctl-%{version} +cd src/wrapper +go mod vendor + +%conf +%cmake + +%build +%cmake_build + +%install +%cmake_install + +%files +%doc README.md +%license LICENSE.txt +%{_bindir}/ktailctl +%{_libdir}/qt6/qml/org/fkoehler/KTailctl/Components/*.qml +%{_libdir}/qt6/qml/org/fkoehler/KTailctl/Components/*.version +%{_libdir}/qt6/qml/org/fkoehler/KTailctl/Components/*.qmltypes +%{_libdir}/qt6/qml/org/fkoehler/KTailctl/Components/qmldir +# Exclusive libs that the package needs to run +%{_libdir}/qt6/qml/org/fkoehler/KTailctl/Components/libktailctl_components.so +%{_libdir}/libktailctl_wrapper_logging.so +%{_appsdir}/org.fkoehler.KTailctl.desktop +%{_scalableiconsdir}/org.fkoehler.KTailctl.svg +%{_metainfodir}/org.fkoehler.KTailctl.metainfo.xml + +%changelog +* Sat May 23 2026 Owen Zimmerman - 0.21.5-1 +- Initial commit diff --git a/anda/apps/KTailctl/anda.hcl b/anda/apps/KTailctl/anda.hcl new file mode 100644 index 0000000000..00907a20bf --- /dev/null +++ b/anda/apps/KTailctl/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "KTailctl.spec" + } +} diff --git a/anda/apps/KTailctl/update.rhai b/anda/apps/KTailctl/update.rhai new file mode 100644 index 0000000000..64025dab4f --- /dev/null +++ b/anda/apps/KTailctl/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("f-koehler/KTailctl")); diff --git a/anda/apps/bitwarden/cli.bin/bitwarden-cli.bin.spec b/anda/apps/bitwarden/cli.bin/bitwarden-cli.bin.spec index ee5ef79f33..e92e227551 100644 --- a/anda/apps/bitwarden/cli.bin/bitwarden-cli.bin.spec +++ b/anda/apps/bitwarden/cli.bin/bitwarden-cli.bin.spec @@ -1,5 +1,5 @@ Name: bitwarden-cli.bin -Version: 2026.4.1 +Version: 2026.5.0 Release: 1%{?dist} Summary: Bitwarden command-line client License: GPL-3.0-only diff --git a/anda/apps/bitwarden/cli/bitwarden-cli.spec b/anda/apps/bitwarden/cli/bitwarden-cli.spec index a32c0bd6b9..e36b04eef3 100644 --- a/anda/apps/bitwarden/cli/bitwarden-cli.spec +++ b/anda/apps/bitwarden/cli/bitwarden-cli.spec @@ -6,7 +6,7 @@ %endif Name: bitwarden-cli -Version: 2026.4.1 +Version: 2026.5.0 Release: 1%{?dist} Summary: Bitwarden command-line client License: GPL-3.0-only diff --git a/anda/apps/chdig/chdig.spec b/anda/apps/chdig/chdig.spec index d61626ce29..d6247f0239 100644 --- a/anda/apps/chdig/chdig.spec +++ b/anda/apps/chdig/chdig.spec @@ -1,7 +1,7 @@ %undefine __brp_mangle_shebangs Name: chdig -Version: 26.4.3 +Version: 26.5.1 Release: 1%{?dist} Summary: Dig into ClickHouse with TUI interface URL: https://github.com/azat/chdig diff --git a/anda/apps/coolercontrol/coolercontrol.spec b/anda/apps/coolercontrol/coolercontrol.spec index adddb4f33d..26c67629c5 100644 --- a/anda/apps/coolercontrol/coolercontrol.spec +++ b/anda/apps/coolercontrol/coolercontrol.spec @@ -8,7 +8,7 @@ for background device management, as well as a GUI to expertly customize your se %global __brp_mangle_shebangs %{nil} Name: coolercontrol -Version: 4.3.0 +Version: 4.3.1 Release: 1%{?dist} Summary: Cooling device control for Linux ExclusiveArch: x86_64 aarch64 diff --git a/anda/apps/discord-canary-openasar/discord-canary-openasar.spec b/anda/apps/discord-canary-openasar/discord-canary-openasar.spec index 8120e7bd5e..79cb5ccf6a 100644 --- a/anda/apps/discord-canary-openasar/discord-canary-openasar.spec +++ b/anda/apps/discord-canary-openasar/discord-canary-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-canary-openasar -Version: 1.0.1123 +Version: 1.0.1174 Release: 1%{?dist} Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord-canary/discord-canary.spec b/anda/apps/discord-canary/discord-canary.spec index 41851eb2b9..6cf481377b 100644 --- a/anda/apps/discord-canary/discord-canary.spec +++ b/anda/apps/discord-canary/discord-canary.spec @@ -1,5 +1,5 @@ Name: discord-canary -Version: 1.0.1123 +Version: 1.0.1174 Release: 1%{?dist} Summary: Free Voice and Text Chat for Gamers URL: discord.com diff --git a/anda/apps/discord-openasar/discord-openasar.spec b/anda/apps/discord-openasar/discord-openasar.spec index 5efc6333ab..7d342e0e40 100644 --- a/anda/apps/discord-openasar/discord-openasar.spec +++ b/anda/apps/discord-openasar/discord-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-openasar -Version: 1.0.139 +Version: 1.0.140 Release: 1%{?dist} Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec b/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec index e5d7f217f6..630fb17208 100644 --- a/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec +++ b/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-ptb-openasar -Version: 1.0.191 +Version: 1.0.193 Release: 1%{?dist} Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord-ptb/discord-ptb.spec b/anda/apps/discord-ptb/discord-ptb.spec index 0ad8e089b4..1d2f9a1f2e 100644 --- a/anda/apps/discord-ptb/discord-ptb.spec +++ b/anda/apps/discord-ptb/discord-ptb.spec @@ -1,5 +1,5 @@ Name: discord-ptb -Version: 1.0.191 +Version: 1.0.193 Release: 1%{?dist} Summary: Free Voice and Text Chat for Gamers. URL: https://discord.com diff --git a/anda/apps/discord/discord.spec b/anda/apps/discord/discord.spec index c1469e579a..5232cc20b7 100644 --- a/anda/apps/discord/discord.spec +++ b/anda/apps/discord/discord.spec @@ -1,5 +1,5 @@ Name: discord -Version: 1.0.139 +Version: 1.0.140 Release: 1%{?dist} Summary: Free Voice and Text Chat for Gamers URL: https://discord.com diff --git a/anda/apps/falcond-gui/falcond-gui.spec b/anda/apps/falcond-gui/falcond-gui.spec index ce7e7c0bee..6017aff3a4 100644 --- a/anda/apps/falcond-gui/falcond-gui.spec +++ b/anda/apps/falcond-gui/falcond-gui.spec @@ -1,6 +1,8 @@ +%global appid com.pikaos.falcondgui + Name: falcond-gui -Version: 1.0.2 -Release: 1%?dist +Version: 1.0.3 +Release: 1%{?dist} Summary: A GTK4/LibAdwaita application to control and monitor the Falcond gaming optimization daemon SourceLicense: MIT License: (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND CC0-1.0 AND ISC AND (MIT OR Apache-2.0) AND MIT AND (Unlicense OR MIT) @@ -30,12 +32,12 @@ falcond-gui provides a user-friendly graphical interface for managing falcond. I %install %cargo_install -desktop-file-install res/%{name}.desktop -install -Dm644 res/falcond.png -t %{buildroot}%{_hicolordir}/512x512/apps/ +%desktop_file_install res/%{appid}.desktop +install -Dm644 res/%{appid}.png -t %{buildroot}%{_hicolordir}/512x512/apps/ %{cargo_license_online} > LICENSE.dependencies %check -desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop +%desktop_file_validate %{buildroot}%{_datadir}/applications/%{appid}.desktop %posttrans /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor/ &>/dev/null || : @@ -44,8 +46,8 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop %doc ../README.md %license ../LICENSE.md %{_bindir}/%{name} -%{_hicolordir}/512x512/apps/falcond.png -%{_appsdir}/%{name}.desktop +%{_hicolordir}/512x512/apps/%{appid}.png +%{_appsdir}/%{appid}.desktop %changelog * Thu Jan 1 2026 Gilver E. - 1.0.0-1 diff --git a/anda/apps/falcond-gui/update.rhai b/anda/apps/falcond-gui/update.rhai index 9c81c2f668..7661da48e9 100644 --- a/anda/apps/falcond-gui/update.rhai +++ b/anda/apps/falcond-gui/update.rhai @@ -1 +1 @@ -rpm.version(get("https://git.pika-os.com/api/v1/repos/general-packages/falcond-gui/releases").json_arr()[0].tag_name); +rpm.version(gitea("git.pika-os.com", "general-packages/falcond-gui")); diff --git a/anda/apps/feishin/feishin.spec b/anda/apps/feishin/feishin.spec index 1ff803c0f0..9b3d95993f 100644 --- a/anda/apps/feishin/feishin.spec +++ b/anda/apps/feishin/feishin.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: feishin -Version: 1.11.0 +Version: 1.12.1 Release: 1%{?dist} Summary: A modern self-hosted music player License: GPL-3.0 diff --git a/anda/apps/flameshot/flameshot-nightly.spec b/anda/apps/flameshot/flameshot-nightly.spec index 8acd38be9d..cd2a68821d 100644 --- a/anda/apps/flameshot/flameshot-nightly.spec +++ b/anda/apps/flameshot/flameshot-nightly.spec @@ -1,9 +1,9 @@ #? https://github.com/flameshot-org/flameshot/blob/master/packaging/rpm/fedora/flameshot.spec %global ver 13.3.0 -%global commit 95032bd2b752c711860ed06b9f0225243a4b6cbd +%global commit f3e81d2608aa2e1269c53765ce61823c8ed2aea7 %global shortcommit %{sub %{commit} 1 7} -%global commit_date 20260513 +%global commit_date 20260529 %global devel_name QtColorWidgets %global _distro_extra_cflags -fuse-ld=mold %global _distro_extra_cxxflags -fuse-ld=mold diff --git a/anda/apps/halloy/halloy.spec b/anda/apps/halloy/halloy.spec index 723b17527b..7d926f8bdd 100644 --- a/anda/apps/halloy/halloy.spec +++ b/anda/apps/halloy/halloy.spec @@ -4,7 +4,7 @@ %global crate halloy Name: halloy -Version: 2026.6 +Version: 2026.7 Release: 1%{?dist} Summary: An open-source IRC client written in Rust, with the Iced GUI library Packager: Yoong jin diff --git a/anda/apps/helium-browser-bin/helium-browser-bin.spec b/anda/apps/helium-browser-bin/helium-browser-bin.spec index 9e7b8ca887..08b9f4d700 100644 --- a/anda/apps/helium-browser-bin/helium-browser-bin.spec +++ b/anda/apps/helium-browser-bin/helium-browser-bin.spec @@ -11,7 +11,7 @@ %endif Name: helium-browser-bin -Version: 0.12.4.1 +Version: 0.12.5.1 Release: 1%{?dist} Summary: Private, fast, and honest web browser based on Chromium diff --git a/anda/apps/legcord/nightly/legcord-nightly.spec b/anda/apps/legcord/nightly/legcord-nightly.spec index ce49cef646..3b0da0eb94 100644 --- a/anda/apps/legcord/nightly/legcord-nightly.spec +++ b/anda/apps/legcord/nightly/legcord-nightly.spec @@ -1,5 +1,5 @@ -%global commit 5c4e9d0707dca9cfde324b83a6423497a251e6c4 -%global commit_date 20260517 +%global commit 9ac2f6b627bb4cbed62e3aeb76009ffff77bae70 +%global commit_date 20260529 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global debug_package %nil %global __strip /bin/true diff --git a/anda/apps/mpv/mpv-nightly.spec b/anda/apps/mpv/mpv-nightly.spec index 08a6a98b22..76dbe9f7cc 100644 --- a/anda/apps/mpv/mpv-nightly.spec +++ b/anda/apps/mpv/mpv-nightly.spec @@ -1,9 +1,9 @@ # Disable X11 for RHEL 10+ %bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10] -%global commit 1fe37856cb47c87c30c823c2e66728f5c0ffe282 +%global commit 74271a7d80f6c59185699d0d6d2d0b64bcbe90ae %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20260520 +%global commit_date 20260531 %global ver 0.41.0 Name: mpv-nightly diff --git a/anda/apps/proton-vpn/proton-vpn.spec b/anda/apps/proton-vpn/proton-vpn.spec index 6eb9f75150..9347da69b0 100644 --- a/anda/apps/proton-vpn/proton-vpn.spec +++ b/anda/apps/proton-vpn/proton-vpn.spec @@ -1,7 +1,7 @@ -%global metainfo_commit f467512129f94bc4c90187e86192202ecc78e820 +%global metainfo_commit 6599eae1839ec24e04a4f8805a3517f432190df6 Name: proton-vpn-gtk-app -Version: 4.16.2 +Version: 4.16.4 Release: 1%{?dist} Summary: Official ProtonVPN Linux app License: GPL-3.0-only diff --git a/anda/apps/rp-bookshelf/rp-bookshelf.spec b/anda/apps/rp-bookshelf/rp-bookshelf.spec index 76772d5774..202f05fd6a 100644 --- a/anda/apps/rp-bookshelf/rp-bookshelf.spec +++ b/anda/apps/rp-bookshelf/rp-bookshelf.spec @@ -1,5 +1,5 @@ -%global commit 8f3eb2a32cafad88250fb604cc57bd5b8ddd5f47 -%global commit_date 20260520 +%global commit 8d837571ef02a4c1c4d74e419ebc59d66b47b685 +%global commit_date 20260521 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: rp-bookshelf diff --git a/anda/apps/ruffle/ruffle-nightly.spec b/anda/apps/ruffle/ruffle-nightly.spec index 2f90abb7f7..9d6c97a510 100644 --- a/anda/apps/ruffle/ruffle-nightly.spec +++ b/anda/apps/ruffle/ruffle-nightly.spec @@ -1,4 +1,4 @@ -%global ver 2026-05-21 +%global ver 2026-05-31 %global goodver %(echo %ver | sed 's/-//g') %global __brp_mangle_shebangs %{nil} %bcond_without mold diff --git a/anda/apps/signal-desktop/signal-desktop.spec b/anda/apps/signal-desktop/signal-desktop.spec index a936072e18..12092eef5f 100644 --- a/anda/apps/signal-desktop/signal-desktop.spec +++ b/anda/apps/signal-desktop/signal-desktop.spec @@ -2,7 +2,7 @@ Name: signal-desktop %electronmeta -aD -Version: 8.11.0 +Version: 8.12.0 Release: 1%{?dist} Summary: A private messenger for Windows, macOS, and Linux URL: https://signal.org diff --git a/anda/apps/tauon/tauon.spec b/anda/apps/tauon/tauon.spec index c0d6529b32..a5825c4e54 100644 --- a/anda/apps/tauon/tauon.spec +++ b/anda/apps/tauon/tauon.spec @@ -3,7 +3,7 @@ %undefine __brp_mangle_shebangs Name: python-tauon -Version: 10.0.0 +Version: 10.0.1 Release: 1%{?dist} Summary: A music player for the desktop. Designed to be powerful and streamlined License: GPL-3.0-or-later diff --git a/anda/apps/throne/throne.spec b/anda/apps/throne/throne.spec index 337d160f26..dc38e3a248 100644 --- a/anda/apps/throne/throne.spec +++ b/anda/apps/throne/throne.spec @@ -1,7 +1,7 @@ #? https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=throne-git Name: throne -Version: 1.1.3 +Version: 1.1.4 Release: 1%{?dist} Summary: Qt based cross-platform GUI proxy configuration manager (backend: sing-box) URL: https://github.com/throneproj/Throne diff --git a/anda/apps/wavemon/anda.hcl b/anda/apps/wavemon/anda.hcl new file mode 100644 index 0000000000..ddf5adf02d --- /dev/null +++ b/anda/apps/wavemon/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "wavemon.spec" + } +} diff --git a/anda/apps/wavemon/update.rhai b/anda/apps/wavemon/update.rhai new file mode 100644 index 0000000000..f56cea9e0b --- /dev/null +++ b/anda/apps/wavemon/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("uoaerg/wavemon")); diff --git a/anda/apps/wavemon/wavemon.spec b/anda/apps/wavemon/wavemon.spec new file mode 100644 index 0000000000..5f6b3e8327 --- /dev/null +++ b/anda/apps/wavemon/wavemon.spec @@ -0,0 +1,48 @@ +Name: wavemon +Version: 0.9.7 +Release: 1%{?dist} +Summary: ncurses-based monitoring application for wireless network devices on Linux +License: GPL-3.0-or-later +URL: https://github.com/uoaerg/wavemon +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +Packager: Owen Zimmerman + +BuildRequires: gcc +BuildRequires: ncurses-devel +BuildRequires: pkgconfig(libnl-3.0) +BuildRequires: autoconf +BuildRequires: automake + +%description +%{summary}. + +%prep +%autosetup +sed -e '/^CFLAGS=/d' -i configure.ac +sed -r 's|\?=|=|g' -i Makefile.in +autoreconf -fiv + +%conf +CFLAGS="$RPM_OPT_FLAGS -fPIC -pie -Wl,-z,relro -Wl,-z,now" +CXXFLAGS="$RPM_OPT_FLAGS -fPIC -pie -Wl,-z,relro -Wl,-z,now" +export CFLAGS +export CXXFLAGS +%configure + +%build +%make_build + +%install +%make_install +# Delete wrong placed readme and license +rm -rf %{buildroot}%{_datadir}/%{name}/* + +%files +%doc README.md +%license LICENSE +%{_mandir}/man*/%{name}*.* +%{_bindir}/%{name} + +%changelog +* Tue May 19 2026 Owen Zimmerman +- Initial commit diff --git a/anda/apps/winetricks/git/winetricks-git.spec b/anda/apps/winetricks/git/winetricks-git.spec index d75a454055..5d87f36b35 100644 --- a/anda/apps/winetricks/git/winetricks-git.spec +++ b/anda/apps/winetricks/git/winetricks-git.spec @@ -1,9 +1,9 @@ # Fedora sometimes sources the snapshots under stable versions and just bumps release # For user clarity I have separated these into different packages -%global commit 14b802e419aff260b9d630e71027d88855e224e7 +%global commit 08304e81f9ac9a83c552a6bd78689040d174bf95 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global ver 20260125 -%global commit_date 20260411 +%global commit_date 20260531 Name: winetricks-git Version: %{ver}^%{commit_date}git.%{shortcommit} diff --git a/anda/buildsys/anda/anda.spec b/anda/buildsys/anda/anda.spec index 2db4ec04ba..f8279e0a4e 100644 --- a/anda/buildsys/anda/anda.spec +++ b/anda/buildsys/anda/anda.spec @@ -3,8 +3,8 @@ %global crate anda Name: anda -Version: 0.5.4 -Release: 2%{?dist} +Version: 0.6.0 +Release: 1%{?dist} Summary: Andaman Build toolchain SourceLicense: MIT License: ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND ISC) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND BSL-1.0 AND CDLA-Permissive-2.0 AND ISC AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND MPL-2.0-or-later AND MPL-2.0-only AND Unicode-3.0 AND (Unlicense OR MIT) diff --git a/anda/buildsys/mise/rust-mise.spec b/anda/buildsys/mise/rust-mise.spec index 92c3b3035e..4297b3a388 100644 --- a/anda/buildsys/mise/rust-mise.spec +++ b/anda/buildsys/mise/rust-mise.spec @@ -5,7 +5,7 @@ %global crate mise Name: rust-mise -Version: 2026.5.12 +Version: 2026.5.17 Release: 1%{?dist} Summary: Front-end to your dev env diff --git a/anda/desktops/driftwm/driftwm.spec b/anda/desktops/driftwm/driftwm.spec index 37b200b1c3..4420e6433e 100644 --- a/anda/desktops/driftwm/driftwm.spec +++ b/anda/desktops/driftwm/driftwm.spec @@ -1,5 +1,5 @@ Name: driftwm -Version: 0.7.0 +Version: 0.8.1 Release: 1%{?dist} Summary: A trackpad-first infinite canvas Wayland compositor License: GPL-3.0-or-later diff --git a/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/gnome-shell-extension-multi-monitors-bar.spec b/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/gnome-shell-extension-multi-monitors-bar.spec index bbf4a59826..d59a26573c 100644 --- a/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/gnome-shell-extension-multi-monitors-bar.spec +++ b/anda/desktops/gnome/gnome-shell-extension-multi-monitors-bar/gnome-shell-extension-multi-monitors-bar.spec @@ -1,5 +1,5 @@ -%global commit 5d5bb105380a90b2f9767df328eb846009299ddb -%global commit_date 20260513 +%global commit c9dde8ec3f9a027ee2080b4beda2af9bc20fc927 +%global commit_date 20260522 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global extension multi-monitors-bar diff --git a/anda/desktops/gnome/gnome-shell/gnome-shell.spec b/anda/desktops/gnome/gnome-shell/gnome-shell.spec index b835be6c66..f22b79af03 100644 --- a/anda/desktops/gnome/gnome-shell/gnome-shell.spec +++ b/anda/desktops/gnome/gnome-shell/gnome-shell.spec @@ -1,6 +1,6 @@ %global tarball_version %%(echo %{version} | tr '~' '.') %global major_version 50 -%global minor_version 1 +%global minor_version 2 %if 0%{?rhel} %global portal_helper 0 diff --git a/anda/desktops/hyprland/hyprutils/hyprutils.nightly.spec b/anda/desktops/hyprland/hyprutils/hyprutils.nightly.spec index 38ff1b2e9e..c5fa593276 100644 --- a/anda/desktops/hyprland/hyprutils/hyprutils.nightly.spec +++ b/anda/desktops/hyprland/hyprutils/hyprutils.nightly.spec @@ -3,8 +3,8 @@ %global realname hyprutils %global ver 0.13.1 -%global commit a2dbd8a4cc51f7cbe4224732668392bb1aa79df2 -%global commit_date 20260509 +%global commit 3cd3972b2ee658a14d2610d8494e09259e530124 +%global commit_date 20260523 %global shortcommit %{sub %commit 1 7} Name: %realname.nightly diff --git a/anda/desktops/kde/plasma6-applet-appgrid/plasma6-applet-appgrid.spec b/anda/desktops/kde/plasma6-applet-appgrid/plasma6-applet-appgrid.spec index 4171ee886e..342ef6e743 100644 --- a/anda/desktops/kde/plasma6-applet-appgrid/plasma6-applet-appgrid.spec +++ b/anda/desktops/kde/plasma6-applet-appgrid/plasma6-applet-appgrid.spec @@ -1,6 +1,6 @@ Name: plasma6-applet-appgrid -Version: 1.7.10 -Release: 1%{?dist} +Version: 1.8.5 +Release: 2%{?dist} Summary: A modern fullscreen application launcher for KDE Plasma # Main code: GPL-2.0-or-later # dev.xarbit.appgrid.metainfo.xml: CC0-1.0 @@ -28,20 +28,23 @@ BuildRequires: cmake(Plasma) BuildRequires: cmake(PlasmaQuick) BuildRequires: cmake(LayerShellQt) BuildRequires: cmake(KF6IconThemes) +BuildRequires: cmake(PlasmaActivities) +BuildRequires: cmake(LibKWorkspace) Requires: plasma-workspace Requires: plasma-desktop Requires: kf6-kiconthemes %description -AppGrid is a modern application launcher for KDE Plasma 6, inspired by -macOS Launchpad, COSMIC, and Pantheon. +A modern application launcher for KDE Plasma. It offers unified +search, favorites, categories, and both a panel and a centered popup +presentation. %prep %autosetup -n plasma6-applet-appgrid-%{version} %conf -%cmake +%cmake -DAPPGRID_VERSION_OVERRIDE=%{version} %build %cmake_build @@ -58,8 +61,15 @@ macOS Launchpad, COSMIC, and Pantheon. %{_datadir}/plasma/plasmoids/dev.xarbit.appgrid/ %{_datadir}/plasma/plasmoids/dev.xarbit.appgrid.panel/ %{_metainfodir}/dev.xarbit.appgrid.metainfo.xml +%{_datadir}/icons/hicolor/scalable/apps/dev.xarbit.appgrid.svg %changelog +* Fri May 29 2026 hilltty <49129010+hilltty@users.noreply.github.com> - 1.8.5-1 +- pass version to cmake, update description + +* Mon May 25 2026 hilltty <49129010+hilltty@users.noreply.github.com> - 1.8.0-1 +- fix: add cmake(PlasmaActivities) BuildRequires, add icon to files + * Tue May 19 2026 hilltty <49129010+hilltty@users.noreply.github.com> - 1.7.10-1 - Sync with upstream: add icon to files, update Requires, update URL diff --git a/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec b/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec index f9b5bf24e2..6d20a5bc19 100644 --- a/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec +++ b/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec @@ -1,5 +1,5 @@ %global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings -%global commit a89f1ddabe58351a5e4b4a3e3180ea84d8e6ff10 +%global commit 0583175c167ef52678fbd3ba78cc3510695cfdc6 %forgemeta Name: lomiri-system-settings diff --git a/anda/desktops/mangowm/mangowm.spec b/anda/desktops/mangowm/mangowm.spec index 6c33ef7ac9..4bf215798d 100644 --- a/anda/desktops/mangowm/mangowm.spec +++ b/anda/desktops/mangowm/mangowm.spec @@ -1,7 +1,7 @@ %global mangowc_ver 0.12.5-1 Name: mangowm -Version: 0.13.0 +Version: 0.14.0 Release: 1%{?dist} Summary: A modern, lightweight, high-performance Wayland compositor built on dwl License: GPL-3.0-or-later AND MIT AND X11 AND CC0-1.0 @@ -21,6 +21,7 @@ BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(libinput) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(libpcre2-8) +BuildRequires: pkgconfig(libcjson) BuildRequires: scenefx-devel Conflicts: mangowc < %{mangowc_ver} diff --git a/anda/desktops/noctalia-qs/VERSION_qt6-qtbase.txt b/anda/desktops/noctalia-qs/VERSION_qt6-qtbase.txt new file mode 100644 index 0000000000..fac714a322 --- /dev/null +++ b/anda/desktops/noctalia-qs/VERSION_qt6-qtbase.txt @@ -0,0 +1 @@ +6.11.1 diff --git a/anda/desktops/noctalia-qs/anda.hcl b/anda/desktops/noctalia-qs/anda.hcl index 2f51b5f5ef..96830e8080 100644 --- a/anda/desktops/noctalia-qs/anda.hcl +++ b/anda/desktops/noctalia-qs/anda.hcl @@ -1,5 +1,8 @@ project pkg { - rpm { - spec = "noctalia-qs.spec" - } + rpm { + spec = "noctalia-qs.spec" + } + labels { + updbranch = 1 + } } diff --git a/anda/desktops/noctalia-qs/noctalia-qs.spec b/anda/desktops/noctalia-qs/noctalia-qs.spec index 8a86ee7e39..ad9bc942a9 100644 --- a/anda/desktops/noctalia-qs/noctalia-qs.spec +++ b/anda/desktops/noctalia-qs/noctalia-qs.spec @@ -2,7 +2,7 @@ Name: noctalia-qs Version: 0.0.12 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Flexible QtQuick based desktop shell toolkit License: LGPL-3.0-only AND GPL-3.0-only URL: https://github.com/noctalia-dev/noctalia-qs @@ -73,11 +73,14 @@ Flexible QtQuick based desktop shell toolkit. %{_libdir}/qt6/qml/Quickshell %changelog +* Thu May 21 2026 Willow C Reed +- Add update script so that release bumps when Qt updates its minor version, triggering a rebuild + * Sun Mar 29 2026 Willow C Reed - Add provides for a polkit agent and desktop notification daemon (so gnome doesn't get installed) * Thu Mar 05 2026 Willow C Reed -- Fix reision to actually be defined as a specific git commit since it never gets initialized rn +- Fix revision to actually be defined as a specific git commit since it never gets initialized rn - Also fix that noctalia-qs is replacing quickshell overall and not just for noctlaia users * Fri Feb 27 2026 Willow C Reed diff --git a/anda/desktops/noctalia-qs/update.rhai b/anda/desktops/noctalia-qs/update.rhai index 7872e1741f..d54c2b9e2d 100644 --- a/anda/desktops/noctalia-qs/update.rhai +++ b/anda/desktops/noctalia-qs/update.rhai @@ -1,7 +1,19 @@ -let release = get(`https://api.github.com/repos/noctalia-dev/noctalia-qs/tags`).json_arr()[0]; +import "andax/bump_extras.rhai" as bump; +import "andax/spec.rhai" as spec; -rpm.version(release.name); +let version = find(`quickshell VERSION "([\d.]+)"`, gh_rawfile("noctalia-dev/noctalia-qs", "master", "CMakeLists.txt"), 1); + +rpm.version(version); if rpm.changed() { - rpm.global("commit", release.commit.sha); + let commit = get(`https://api.github.com/repos/noctalia-dev/noctalia-qs/tags`).json_arr()[0].commit.sha; + rpm.global("commit", commit); +} + +open_file("anda/desktops/noctalia-qs/VERSION_qt6-qtbase.txt", "w").write(bump::bodhi("qt6-qtbase", bump::as_bodhi_ver(labels.branch))); // will trig rebuild when changed + +let dir = sub(`/[^/]+$`, "", __script_path); +if sh("[[ `git status " + dir + " --porcelain` ]] && exit 1 || exit 0", #{}).ctx.rc == 1 { + let rel = spec::get_release(rpm).parse_int(); + rpm.release(rel + 1); } \ No newline at end of file diff --git a/anda/desktops/noctalia-shell/update.rhai b/anda/desktops/noctalia-shell/update.rhai index 1c9be28be7..b80a58a4e6 100644 --- a/anda/desktops/noctalia-shell/update.rhai +++ b/anda/desktops/noctalia-shell/update.rhai @@ -1 +1,6 @@ -rpm.version(gh("noctalia-dev/noctalia-shell")); +let v = gh("noctalia-dev/noctalia-shell"); +v.crop(1); + +if v < "5" { + rpm.version(v); +} \ No newline at end of file diff --git a/anda/desktops/scroll/scroll.spec b/anda/desktops/scroll/scroll.spec index 15b390c7bc..2f7cee24fb 100644 --- a/anda/desktops/scroll/scroll.spec +++ b/anda/desktops/scroll/scroll.spec @@ -1,5 +1,5 @@ Name: scroll -Version: 1.12.11 +Version: 1.12.15 Release: 1%{?dist} Summary: i3-compatible Wayland compositor (sway) with a PaperWM layout like niri or hyprscroller License: MIT diff --git a/anda/desktops/singularity/libsingularity/libsingularity.spec b/anda/desktops/singularity/libsingularity/libsingularity.spec index e9736e635a..4af41e5348 100644 --- a/anda/desktops/singularity/libsingularity/libsingularity.spec +++ b/anda/desktops/singularity/libsingularity/libsingularity.spec @@ -1,5 +1,5 @@ -%global commit f0997ee20a4c7502e0634bbb689ea678e26c0ea3 -%global commit_date 20260519 +%global commit 434d1d8bcf68058e8fd44db75bb1b468abaad3e3 +%global commit_date 20260531 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: libsingularity @@ -18,6 +18,7 @@ BuildRequires: pkgconfig(gtk4-layer-shell-0) BuildRequires: pkgconfig(gee-0.8) BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(libpeas-2) +BuildRequires: pkgconfig(libsoup-3.0) Packager: Owen Zimmerman diff --git a/anda/desktops/swayfx/swayfx.spec b/anda/desktops/swayfx/swayfx.spec index 1fb8767b37..5f2b248b52 100644 --- a/anda/desktops/swayfx/swayfx.spec +++ b/anda/desktops/swayfx/swayfx.spec @@ -1,4 +1,4 @@ -%global swayVersion 1.11 +%global swayVersion 1.12 Name: swayfx Version: 0.5.2 diff --git a/anda/desktops/waylands/mangobar/anda.hcl b/anda/desktops/waylands/mangobar/anda.hcl new file mode 100644 index 0000000000..90be7645da --- /dev/null +++ b/anda/desktops/waylands/mangobar/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "mangobar.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/waylands/mangobar/mangobar.spec b/anda/desktops/waylands/mangobar/mangobar.spec new file mode 100644 index 0000000000..ca6c69d62a --- /dev/null +++ b/anda/desktops/waylands/mangobar/mangobar.spec @@ -0,0 +1,50 @@ +%global commit c0138d9067d6a779c753aa7da72ce85d44f528da +%global commit_date 20260527 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: mangobar +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: A suckless-esc bar for mangowc +URL: https://github.com/Gur0v/mangobar +Source0: %{url}/archive/%{commit}/mangobar-%{commit}.tar.gz +SourceLicense: GPL-3.0-or-later +License: %{sourcelicense} AND (Apache-2.0 OR MIT) AND MIT AND GPL-3.0 AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (Unlicense OR MIT) + +BuildRequires: rust +BuildRequires: cargo-rpm-macros +BuildRequires: gtk4 +BuildRequires: gtk4-devel +BuildRequires: gtk4-layer-shell +BuildRequires: gtk4-layer-shell-devel +BuildRequires: gdk-pixbuf2 +BuildRequires: gdk-pixbuf2-devel +BuildRequires: wireplumber + +Suggests: mangowm +Packager: Its-J + +%description +%{summary}. + +%prep +%autosetup -n mangobar-%{commit} +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm 755 target/rpm/mangobar %{buildroot}%{_bindir}/mangobar +%cargo_license_summary_online +%{cargo_license_online} > LICENSE.dependencies + +%files +%{_bindir}/mangobar +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sat May 23 2026 Its-J +- Package mangobar diff --git a/anda/desktops/waylands/mangobar/update.rhai b/anda/desktops/waylands/mangobar/update.rhai new file mode 100644 index 0000000000..864ae82f8b --- /dev/null +++ b/anda/desktops/waylands/mangobar/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("Gur0v/mangobar")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/desktops/waylands/vibepanel/anda.hcl b/anda/desktops/waylands/vibepanel/anda.hcl new file mode 100644 index 0000000000..416d24f2bc --- /dev/null +++ b/anda/desktops/waylands/vibepanel/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "vibepanel.spec" + } +} diff --git a/anda/desktops/waylands/vibepanel/update.rhai b/anda/desktops/waylands/vibepanel/update.rhai new file mode 100644 index 0000000000..5562243d33 --- /dev/null +++ b/anda/desktops/waylands/vibepanel/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("prankstr/vibepanel")); diff --git a/anda/desktops/waylands/vibepanel/vibepanel.spec b/anda/desktops/waylands/vibepanel/vibepanel.spec new file mode 100644 index 0000000000..6c38da44a5 --- /dev/null +++ b/anda/desktops/waylands/vibepanel/vibepanel.spec @@ -0,0 +1,52 @@ +Name: vibepanel +Version: 0.14.1 +Release: 2%{?dist} +Summary: GTK4 panel for Wayland with notifications, OSD, and quick settings – between a status bar and a desktop shell +URL: https://github.com/prankstr/vibepanel +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +SourceLicense: MIT +License: %{sourcelicense} AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (0BSD OR MIT OR Apache-2.0) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND MPL-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND CC0-1.0 AND Apache-2.0 AND ISC AND (BSD-3-Clause OR Apache-2.0) AND ISC AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (Unlicense OR MIT) + +BuildRequires: rust +BuildRequires: cargo-rpm-macros +BuildRequires: gcc +BuildRequires: gtk4-devel +BuildRequires: gtk4-layer-shell-devel +BuildRequires: pulseaudio-libs-devel +BuildRequires: systemd-devel +BuildRequires: dbus-devel + +Requires: gtk4 +Requires: gtk4-layer-shell +Requires: pulseaudio-libs +Requires: upower +Requires: NetworkManager +Requires: bluez + +Recommends: power-profiles-daemon + +Packager: Its-J + +%description +%{summary}. + +%prep +%autosetup -n vibepanel-%{version} +%cargo_prep_online + +%build +%cargo_build + +%install +install -Dm 755 target/rpm/vibepanel %{buildroot}%{_bindir}/vibepanel +%{cargo_license_online} > LICENSE.dependencies + +%files +%{_bindir}/vibepanel +%license LICENSE +%license LICENSE.dependencies +%doc README.md + +%changelog +* Sat May 23 2026 Its-J +- Package vibepanel diff --git a/anda/desktops/waylands/wpaperd/wpaperd.spec b/anda/desktops/waylands/wpaperd/wpaperd.spec index 88e02a43a1..c3f1075cb6 100644 --- a/anda/desktops/waylands/wpaperd/wpaperd.spec +++ b/anda/desktops/waylands/wpaperd/wpaperd.spec @@ -1,8 +1,8 @@ %bcond check 0 Name: wpaperd -Version: 1.2.2 -Release: 2%?dist +Version: 1.3.0 +Release: 1%{?dist} Summary: Modern wallpaper daemon for Wayland License: (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CC0-1.0 AND (CC0-1.0 OR Apache-2.0) AND (CC0-1.0 OR Artistic-2.0) AND GPL-3.0+ AND ISC AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR NCSA) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) SourceLicense: GPL-3.0-or-later diff --git a/anda/devs/android-studio/canary/android-studio-canary.spec b/anda/devs/android-studio/canary/android-studio-canary.spec index 30633a0591..4199e64ebb 100644 --- a/anda/devs/android-studio/canary/android-studio-canary.spec +++ b/anda/devs/android-studio/canary/android-studio-canary.spec @@ -16,7 +16,7 @@ %global __requires_exclude ^libaaudio\\.so.*|^libandroid\\.so.*|^libmediandk\\.so.*|^liblog\\.so.*|^libc\\.so.*|^libm\\.so.*|^libdl\\.so.*|^libcrypt\\.so.*|^libstdc\\+\\+\\.so.*|^libncursesw\\.so.*|^libtinfo\\.so.*|^libnsl\\.so.*|^libpanelw\\.so.*$ Name: android-studio-canary -Version: 2026.1.2.1 +Version: 2026.1.2.4 Release: 1%{?dist} Summary: Official IDE for Android development (Canary build) License: Apache-2.0 @@ -24,7 +24,7 @@ Packager: veuxit ExclusiveArch: x86_64 URL: https://developer.android.com/studio/preview -%define suffixS quail2-canary1 +%define suffixS quail2-canary4 Source0: https://dl.google.com/dl/android/studio/ide-zips/%{version}/android-studio-%{suffixS}-linux.tar.gz diff --git a/anda/devs/codium/codium.spec b/anda/devs/codium/codium.spec index 767121b07a..8a6fb05b5c 100644 --- a/anda/devs/codium/codium.spec +++ b/anda/devs/codium/codium.spec @@ -1,7 +1,7 @@ %global appid com.vscodium.VSCodium Name: codium -Version: 1.116.02821 +Version: 1.121.03429 %electronmeta -D %global __requires_exclude %{__requires_exclude}|libcurl.so|libmsalruntime.so Release: 1%{?dist} diff --git a/anda/devs/deno/rust-deno.spec b/anda/devs/deno/rust-deno.spec index 7e39eab1ac..334a6b8660 100644 --- a/anda/devs/deno/rust-deno.spec +++ b/anda/devs/deno/rust-deno.spec @@ -6,7 +6,7 @@ %global crate deno Name: rust-deno -Version: 2.7.14 +Version: 2.8.1 Release: 1%{?dist} Summary: Deno executable diff --git a/anda/devs/edit/edit.spec b/anda/devs/edit/edit.spec index 5125c59d42..91a8538e1b 100644 --- a/anda/devs/edit/edit.spec +++ b/anda/devs/edit/edit.spec @@ -37,7 +37,9 @@ Packager: Gilver E. %install %crate_install_bin -%{cargo_license_online} > LICENSE.dependencies +pushd crates/edit +%{cargo_license_online} > ../../LICENSE.dependencies +popd install -Dm644 assets/edit.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/%{appid}.svg sed -i "s|^Icon=edit$|Icon=%{appid}|g" assets/%{appid}.desktop diff --git a/anda/devs/ghostty/nightly/ghostty-nightly.spec b/anda/devs/ghostty/nightly/ghostty-nightly.spec index b05204dada..0d137a1d97 100644 --- a/anda/devs/ghostty/nightly/ghostty-nightly.spec +++ b/anda/devs/ghostty/nightly/ghostty-nightly.spec @@ -1,6 +1,6 @@ -%global commit 19e20f7664dc7a755d2d7a16ab545b2503f26caf +%global commit 2c62d182cec246764ff725096a70b9ef44996f7f %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global fulldate 2026-05-20 +%global fulldate 2026-05-30 %global commit_date %(echo %{fulldate} | sed 's/-//g') %global public_key RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV %global ver 1.3.2 diff --git a/anda/devs/micro/micro-nightly.spec b/anda/devs/micro/micro-nightly.spec index 86ef60b850..04c93a08f8 100644 --- a/anda/devs/micro/micro-nightly.spec +++ b/anda/devs/micro/micro-nightly.spec @@ -12,8 +12,8 @@ # Naming variable as something other than "commit" is necessary # to stop %%gometa from putting commit hash in release -%global commit_hash 85a3d79f97bda50a1a6121a9f20ff6482aa952a9 -%global commit_date 20260520 +%global commit_hash 0b551d813fe21b9ab6f03fc97672fa8b89531a82 +%global commit_date 20260529 %global shortcommit %{sub %{commit_hash} 1 7} %global ver 2.0.15 diff --git a/anda/devs/powershell/powershell.spec b/anda/devs/powershell/powershell.spec index e94a6301c4..8d5139dae9 100644 --- a/anda/devs/powershell/powershell.spec +++ b/anda/devs/powershell/powershell.spec @@ -18,8 +18,8 @@ %bcond test 1 Name: powershell -Version: 7.6.1 -Release: 2%{?dist} +Version: 7.6.2 +Release: 1%{?dist} Summary: A cross-platform automation and configuration tool/framework SourceLicense: MIT License: Apache-2.0 AND BSD-2-Clause AND MIT diff --git a/anda/devs/turbowarp/turbowarp.spec b/anda/devs/turbowarp/turbowarp.spec index 6fb36cd822..1d93897d70 100644 --- a/anda/devs/turbowarp/turbowarp.spec +++ b/anda/devs/turbowarp/turbowarp.spec @@ -2,7 +2,7 @@ Name: turbowarp-desktop %electronmeta -D -Version: 1.15.5 +Version: 1.16.0 Release: 1%{?dist} Summary: A better offline editor for Scratch 3 URL: https://desktop.turbowarp.org/ @@ -94,6 +94,7 @@ Packager: junefish %build %npm_build -c -B -r fetch,webpack:prod +echo "Electron Builder" > %{rpmbuilddir}/webapp-tool.txt %install %electron_install -i %appid -I build/ diff --git a/anda/devs/yarn-berry/yarnpkg-berry.spec b/anda/devs/yarn-berry/yarnpkg-berry.spec index fbd707b87d..d5762c6329 100644 --- a/anda/devs/yarn-berry/yarnpkg-berry.spec +++ b/anda/devs/yarn-berry/yarnpkg-berry.spec @@ -2,7 +2,7 @@ Name: yarnpkg-berry Version: 4.15.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Active development version of Yarn License: BSD-2-Clause URL: https://yarnpkg.com diff --git a/anda/devs/zed/nightly/zed-nightly.spec b/anda/devs/zed/nightly/zed-nightly.spec index fe2952bd78..76dbb61344 100644 --- a/anda/devs/zed/nightly/zed-nightly.spec +++ b/anda/devs/zed/nightly/zed-nightly.spec @@ -1,7 +1,7 @@ -%global commit 068d64edd637be2e7e2a44b99ef4965550885b67 +%global commit 09165c15dc5d1fea93604231eaf30ca4c25f1cd6 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20260520 -%global ver 1.4.0 +%global commit_date 20260531 +%global ver 1.6.0 %bcond_with check %bcond_with debug_no_build diff --git a/anda/devs/zed/preview/zed-preview.spec b/anda/devs/zed/preview/zed-preview.spec index 4c7efaa29b..a3a734d91d 100644 --- a/anda/devs/zed/preview/zed-preview.spec +++ b/anda/devs/zed/preview/zed-preview.spec @@ -7,7 +7,7 @@ %global debug_package %{nil} %endif -%global ver 1.4.0-pre +%global ver 1.5.3-pre # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ diff --git a/anda/devs/zed/stable/zed.spec b/anda/devs/zed/stable/zed.spec index 8bbcaa3b88..b194fc06fd 100644 --- a/anda/devs/zed/stable/zed.spec +++ b/anda/devs/zed/stable/zed.spec @@ -17,7 +17,7 @@ %global rustflags_debuginfo 0 Name: zed -Version: 1.3.5 +Version: 1.4.4 Release: 1%{?dist} Summary: Zed is a high-performance, multiplayer code editor SourceLicense: AGPL-3.0-only AND Apache-2.0 AND GPL-3.0-or-later diff --git a/anda/fonts/iosevka/iosevka-fonts.spec b/anda/fonts/iosevka/iosevka-fonts.spec index bcf010940c..a4eeb979ed 100644 --- a/anda/fonts/iosevka/iosevka-fonts.spec +++ b/anda/fonts/iosevka/iosevka-fonts.spec @@ -52,7 +52,7 @@ %global fontdescription %{expand: Versatile typeface for code, from code.} -Version: 34.5.0 +Version: 34.6.1 Release: 1%{?dist} Packager: Cappy Ishihara Summary: Versatile typeface for code, from code. diff --git a/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec b/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec index a435e105fd..ee6f30f91a 100644 --- a/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec +++ b/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec @@ -1,5 +1,5 @@ Name: sarasa-gothic-fonts -Version: 1.0.37 +Version: 1.0.39 Release: 1%{?dist} URL: https://github.com/be5invis/Sarasa-Gothic Source0: %url/releases/download/v%version/Sarasa-TTC-%version.7z diff --git a/anda/games/chess-tui/rust-chess-tui.spec b/anda/games/chess-tui/rust-chess-tui.spec index b72395b7b4..2046adf809 100644 --- a/anda/games/chess-tui/rust-chess-tui.spec +++ b/anda/games/chess-tui/rust-chess-tui.spec @@ -4,7 +4,7 @@ %global crate chess-tui Name: rust-chess-tui -Version: 2.7.0 +Version: 2.7.1 Release: 1%{?dist} Summary: Rusty chess game in your terminal 🦀 diff --git a/anda/games/inputplumber/inputplumber.spec b/anda/games/inputplumber/inputplumber.spec index a3fc07b95f..697270bc95 100644 --- a/anda/games/inputplumber/inputplumber.spec +++ b/anda/games/inputplumber/inputplumber.spec @@ -1,7 +1,7 @@ %global __brp_mangle_shebangs %{nil} Name: inputplumber -Version: 0.77.1 +Version: 0.77.2 Release: 1%{?dist} Summary: Open source input router and remapper daemon for Linux License: GPL-3.0-or-later @@ -52,6 +52,7 @@ keyboards) and translate their input to a variety of virtual device formats. %_datadir/dbus-1/system.d/org.shadowblip.InputPlumber.conf %_datadir/inputplumber/ %{_udevrulesdir}/99-inputplumber-device-setup.rules +%{_udevrulesdir}/50-8bitdo-u2-controller.rules %{_datadir}/polkit-1/actions/org.shadowblip.InputPlumber.policy %{_datadir}/polkit-1/rules.d/org.shadowblip.InputPlumber.rules diff --git a/anda/games/launcher.moe/sleepy-launcher/sleepy-launcher.spec b/anda/games/launcher.moe/sleepy-launcher/sleepy-launcher.spec index eb983e0e92..2a231b1586 100644 --- a/anda/games/launcher.moe/sleepy-launcher/sleepy-launcher.spec +++ b/anda/games/launcher.moe/sleepy-launcher/sleepy-launcher.spec @@ -2,7 +2,7 @@ %global crate sleepy-launcher %global appid moe.launcher.sleepy-launcher Name: %{crate} -Version: 1.6.5 +Version: 1.6.6 Release: 1%{?dist} Summary: Sleepy Game Launcher for Linux with automatic patching and telemetry disabling diff --git a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec index 1c33f3a11d..3d82dabc32 100644 --- a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec +++ b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec @@ -3,10 +3,10 @@ %global name_pretty %{quote:Prism Launcher (Nightly)} %global appid org.prismlauncher.PrismLauncher-nightly -%global commit 43c11a8555788c870895bf1b67cec56a3a4cf61a +%global commit f5d7e76ac4865aed7d033b25a9129913e1f1b520 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20260519 +%global commit_date 20260528 %global snapshot_info %{commit_date}.%{shortcommit} # Change this variables if you want to use custom keys diff --git a/anda/games/rpcs3/rpcs3.spec b/anda/games/rpcs3/rpcs3.spec index e6bcc63073..331b00a897 100644 --- a/anda/games/rpcs3/rpcs3.spec +++ b/anda/games/rpcs3/rpcs3.spec @@ -9,8 +9,8 @@ # GLIBCXX_ASSERTIONS is known to break RPCS3 %global build_cflags %(echo "%{__build_flags_lang_c}" | sed 's|-Wp,-D_GLIBCXX_ASSERTIONS ||g') %{?_distro_extra_cflags} %global build_cxxflags %(echo "%{__build_flags_lang_cxx}" | sed 's|-Wp,-D_GLIBCXX_ASSERTIONS ||g') %{?_distro_extra_cflags} -%global commit 67464f97df8679d5d540256987551f34fe00d4cc -%global ver 0.0.40-19389 +%global commit ecf77ecef0c190b6adf4619447cda165aa5ebad5 +%global ver 0.0.40-19415 Name: rpcs3 Version: %(echo %{ver} | sed 's/-/^/g') @@ -74,8 +74,6 @@ export LLVM_DIR=%{_libdir}/llvm%{?llvm_major}/%{_lib}/cmake -DCMAKE_SKIP_RPATH=ON \ -DBUILD_SHARED_LIBS:BOOL=OFF \ -DUSE_NATIVE_INSTRUCTIONS=OFF \ - -DCMAKE_C_FLAGS="$CFLAGS" \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DSTATIC_LINK_LLVM=OFF \ -DUSE_SYSTEM_FAUDIO=ON \ -DUSE_SDL=ON \ @@ -88,11 +86,8 @@ export LLVM_DIR=%{_libdir}/llvm%{?llvm_major}/%{_lib}/cmake -DUSE_SYSTEM_ZLIB=ON \ -DUSE_SYSTEM_OPENCV=ON \ -DUSE_SYSTEM_CURL=ON \ - -DUSE_SYSTEM_FLATBUFFERS=OFF \ -DUSE_SYSTEM_PUGIXML=OFF \ -DUSE_SYSTEM_WOLFSSL=OFF \ - -DCMAKE_C_COMPILER="$CC" \ - -DCMAKE_CXX_COMPILER="$CXX" \ -DCMAKE_LINKER=mold \ -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -fuse-ld=mold" \ -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -fuse-ld=mold" diff --git a/anda/games/steamos-manager-powerstation/steamos-manager-powerstation.spec b/anda/games/steamos-manager-powerstation/steamos-manager-powerstation.spec index c0578c4844..a726713bd8 100644 --- a/anda/games/steamos-manager-powerstation/steamos-manager-powerstation.spec +++ b/anda/games/steamos-manager-powerstation/steamos-manager-powerstation.spec @@ -1,10 +1,10 @@ -%global commit 7b4d0f49351a60d1f93d48f081b4c0e35e10fa6d +%global commit 37d1cb6f98e02b76221190b10af3c6e1c6b7534d %global shortcommit %{sub %{commit} 0 7} -%global commitdate 20260325 +%global commitdate 20260528 Name: steamos-manager-powerstation Version: 0~%{commitdate}.git%{shortcommit} -Release: 3%{?dist} +Release: 1%{?dist} Summary: SteamOS Manager is a system daemon that aims to abstract Steam's interactions with the operating system License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (Apache-2.0 OR BSL-1.0) AND Apache-2.0 OR MIT AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND ISC AND (LGPL-2.1 OR MIT OR Apache-2.0) AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) URL: https://github.com/OpenGamingCollective/steamos-manager diff --git a/anda/games/steamos-manager-powerstation/steamos_manager.te b/anda/games/steamos-manager-powerstation/steamos_manager.te index 6a4cf229c2..1a2be9e713 100644 --- a/anda/games/steamos-manager-powerstation/steamos_manager.te +++ b/anda/games/steamos-manager-powerstation/steamos_manager.te @@ -19,6 +19,9 @@ files_config_file(steamos_manager_conf_t) # Allow systemd to manage the service (start/stop/status) init_dbus_chat(steamos_manager_t) +# Query systemd and overall system status (init_t:system status) +init_status(steamos_manager_t) + ######################################## # Process permissions ######################################## @@ -77,6 +80,19 @@ domain_read_all_domains_state(steamos_manager_t) kernel_read_debugfs(steamos_manager_t) kernel_manage_debugfs(steamos_manager_t) +gen_require(` + type tracefs_t; +') +allow steamos_manager_t tracefs_t:dir search; +allow steamos_manager_t tracefs_t:dir write; + +######################################## +# Cgroup access +######################################## + +# Search the cgroup hierarchy under /sys/fs/cgroup +fs_search_cgroup_dirs(steamos_manager_t) + ######################################## # Device access ######################################## @@ -185,6 +201,27 @@ corenet_tcp_connect_all_ports(steamos_manager_t) logging_send_syslog_msg(steamos_manager_t) +######################################## +# bootupd (bootloader management) +######################################## + +# steamos-manager invokes bootupctl, which runs in its own bootupd_t domain. +optional_policy(` + gen_require(` + type bootupd_t; + type mount_var_run_t; + ') + + # NSS user/group lookups: /etc/passwd, systemd-userdbd, systemd-homed + auth_use_nsswitch(bootupd_t) + + # Read /proc system state + kernel_read_system_state(bootupd_t) + + # Search the mount runtime directory under /run + allow bootupd_t mount_var_run_t:dir search; +') + ######################################## # Miscellaneous ######################################## diff --git a/anda/games/steamos-manager/steamos-manager.spec b/anda/games/steamos-manager/steamos-manager.spec index a4d65309f6..10cc4d8fbd 100644 --- a/anda/games/steamos-manager/steamos-manager.spec +++ b/anda/games/steamos-manager/steamos-manager.spec @@ -1,5 +1,5 @@ Name: steamos-manager -Version: 26.1.0 +Version: 26.2.0 Release: 1%{?dist} Summary: SteamOS Manager is a system daemon that aims to abstract Steam's interactions with the operating system. License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND Apache-2.0 OR BSL-1.0 AND Apache-2.0 OR MIT AND Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT AND BSD-3-Clause OR MIT OR Apache-2.0 AND ISC AND LGPL-2.1 OR MIT OR Apache-2.0 AND MIT AND MIT OR Apache-2.0 AND MIT OR Apache-2.0 OR LGPL-2.1-or-later AND Unlicense OR MIT AND Zlib OR Apache-2.0 OR MIT diff --git a/anda/games/twintaillauncher/twintaillauncher.spec b/anda/games/twintaillauncher/twintaillauncher.spec index 6a16f40f40..aa39395498 100644 --- a/anda/games/twintaillauncher/twintaillauncher.spec +++ b/anda/games/twintaillauncher/twintaillauncher.spec @@ -6,7 +6,7 @@ Name: twintaillauncher -Version: 2.1.1 +Version: 2.2.1 Release: 1%{?dist} Summary: A multi-platform launcher for your anime games Packager: Yoong Jin diff --git a/anda/games/vulkan-low-latency-layer/anda.hcl b/anda/games/vulkan-low-latency-layer/anda.hcl new file mode 100644 index 0000000000..aa25923b8a --- /dev/null +++ b/anda/games/vulkan-low-latency-layer/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64", "aarch64"] + rpm { + spec = "vulkan-low-latency-layer.spec" + } +} diff --git a/anda/games/vulkan-low-latency-layer/update.rhai b/anda/games/vulkan-low-latency-layer/update.rhai new file mode 100644 index 0000000000..00ee4c8e1a --- /dev/null +++ b/anda/games/vulkan-low-latency-layer/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("Korthos-Software/low_latency_layer")); diff --git a/anda/games/vulkan-low-latency-layer/vulkan-low-latency-layer.spec b/anda/games/vulkan-low-latency-layer/vulkan-low-latency-layer.spec new file mode 100644 index 0000000000..ad43f3f03c --- /dev/null +++ b/anda/games/vulkan-low-latency-layer/vulkan-low-latency-layer.spec @@ -0,0 +1,45 @@ +Name: vulkan-low-latency-layer +Version: 0.2.0 +Release: 1%{?dist} +Summary: Vulkan layer for hardware agnostic input latency reduction +Packager: Kyle Gospodnetich + +License: MIT +URL: https://github.com/Korthos-Software/low_latency_layer +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: vulkan-headers +BuildRequires: cmake(VulkanUtilityLibraries) +BuildRequires: pkgconfig(vulkan) + +Requires: vulkan-loader + +%description +A Vulkan layer that reduces click-to-photon latency by +implementing both AMD and NVIDIA's latency reduction technologies, +providing hardware-agnostic implementations of the VK_NV_low_latency2 +and VK_AMD_anti_lag device extensions. + +%prep +%autosetup -n low_latency_layer-%{version} + +%conf +%cmake + +%build +%cmake_build + +%install +%cmake_install + +%files +%license LICENSE +%doc README.md +%{_libdir}/libVkLayer_KORTHOS_LowLatency.so +%{_datadir}/vulkan/implicit_layer.d/low_latency_layer.json + +%changelog +* Fri May 22 2026 Kyle Gospodnetich - 0.1.0-1 +- Initial package diff --git a/anda/langs/amaranth/amaranth.spec b/anda/langs/amaranth/amaranth.spec index 24940614b4..8b683c43b7 100644 --- a/anda/langs/amaranth/amaranth.spec +++ b/anda/langs/amaranth/amaranth.spec @@ -5,7 +5,7 @@ Name: python-%{pypi_name} Version: 0.5.8 -Release: 2%?dist +Release: 3%?dist Summary: A modern hardware definition language and toolchain based on Python License: BSD-2-Clause URL: https://github.com/amaranth-lang/amaranth @@ -54,8 +54,6 @@ export PDM_BUILD_SCM_VERSION=%{version} %doc README.md CONTRIBUTING.txt %license LICENSE.txt %{_bindir}/amaranth-rpc -%ghost %python3_sitelib/__pycache__/*.cpython-*.pyc -%ghost %python3_sitelib/%{name}/subcommands/__pycache__/*.cpython-*.pyc %changelog * Sun Sep 28 2025 Owen Zimmerman diff --git a/anda/langs/crystal/blahaj/blahaj.spec b/anda/langs/crystal/blahaj/blahaj.spec index d10a2a3908..6b01be237b 100644 --- a/anda/langs/crystal/blahaj/blahaj.spec +++ b/anda/langs/crystal/blahaj/blahaj.spec @@ -5,7 +5,7 @@ Summary: Gay sharks at your local terminal - lolcat-like CLI tool License: BSD-2-Clause URL: https://blahaj.geopjr.dev/ Source0: https://codeberg.org/GeopJr/BLAHAJ/archive/v%{version}.tar.gz -BuildRequires: crystal shards make gcc libyaml-devel pcre-devel libgc-devel libevent-devel bash +BuildRequires: crystal shards make gcc libyaml-devel pcre2-devel libgc-devel libevent-devel bash ExclusiveArch: x86_64 %description diff --git a/anda/langs/crystal/crystal/crystal.spec b/anda/langs/crystal/crystal/crystal.spec index c580c36f82..cc7ac5fa13 100644 --- a/anda/langs/crystal/crystal/crystal.spec +++ b/anda/langs/crystal/crystal/crystal.spec @@ -3,7 +3,7 @@ Name: crystal Version: 1.20.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A general-purpose, object-oriented programming language License: Apache-2.0 Packager: Carl Hörberg diff --git a/anda/langs/crystal/shards/shards.spec b/anda/langs/crystal/shards/shards.spec index 7178a2fdea..7a17f5d48e 100644 --- a/anda/langs/crystal/shards/shards.spec +++ b/anda/langs/crystal/shards/shards.spec @@ -1,13 +1,13 @@ Name: shards Version: 0.20.0 -Release: 1%?dist +Release: 2%?dist Summary: Dependency manager for the Crystal language License: Apache-2.0 Packager: Carl Hörberg URL: https://crystal-lang.org/ Source0: https://github.com/crystal-lang/shards/archive/refs/tags/v%version.tar.gz BuildRequires: crystal make -BuildRequires: gcc gc-devel libyaml-devel pcre-devel +BuildRequires: gcc gc-devel libyaml-devel pcre2-devel Suggests: git make Supplements: crystal @@ -15,7 +15,7 @@ Supplements: crystal Shards is a dependency manager for the Crystal programming language. It allows you to easily manage and install external libraries (called "shards") that your Crystal projects depend on. %prep -%setup -q +%autosetup %build %make_build release=1 FLAGS="--link-flags=\"%{build_ldflags}\"" @@ -24,6 +24,8 @@ Shards is a dependency manager for the Crystal programming language. It allows y %make_install PREFIX=%{_prefix} %files +%license LICENSE +%doc README.md CHANGELOG.md %{_bindir}/shards %{_mandir}/man1/shards.1.gz %{_mandir}/man5/shard.yml.5.gz diff --git a/anda/langs/dart/dart.spec b/anda/langs/dart/dart.spec index b089adfcdd..d55d03744f 100644 --- a/anda/langs/dart/dart.spec +++ b/anda/langs/dart/dart.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} Name: dart -Version: 3.12.0 +Version: 3.12.1 Release: 1%{?dist} Summary: The Dart Language License: BSD-3-Clause diff --git a/anda/langs/go/gendesk/golang-github-xyproto-gendesk.spec b/anda/langs/go/gendesk/golang-github-xyproto-gendesk.spec index 3ee06e8a30..89cac32a28 100644 --- a/anda/langs/go/gendesk/golang-github-xyproto-gendesk.spec +++ b/anda/langs/go/gendesk/golang-github-xyproto-gendesk.spec @@ -5,7 +5,7 @@ # https://github.com/xyproto/gendesk %global goipath github.com/xyproto/gendesk -Version: 1.0.13 +Version: 1.0.15 %global tag 1.0.9 %global commit f074161864697100fdc21a99e09b567e82aeb1b9 diff --git a/anda/langs/go/lazygit/golang-github-jesseduffield-lazygit.spec b/anda/langs/go/lazygit/golang-github-jesseduffield-lazygit.spec index c64db04d7c..c35dfd9842 100644 --- a/anda/langs/go/lazygit/golang-github-jesseduffield-lazygit.spec +++ b/anda/langs/go/lazygit/golang-github-jesseduffield-lazygit.spec @@ -2,7 +2,7 @@ # https://github.com/jesseduffield/lazygit %global goipath github.com/jesseduffield/lazygit -Version: 0.61.1 +Version: 0.62.1 %gometa -f diff --git a/anda/langs/go/xray/nightly/xray-nightly.spec b/anda/langs/go/xray/nightly/xray-nightly.spec index c6d83aff4f..ef9262c642 100644 --- a/anda/langs/go/xray/nightly/xray-nightly.spec +++ b/anda/langs/go/xray/nightly/xray-nightly.spec @@ -1,7 +1,7 @@ -%global commit 1bdb488c9ec09ea51e6899697d5b7437f3cf6eb2 +%global commit 455f6bc2d5915be0465d66fe6d7d06974c2729d3 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global ver v26.3.27 -%global commit_date 20260510 +%global commit_date 20260531 %global goipath github.com/XTLS/Xray-core Version: %{ver}^%{commit_date}git.%{shortcommit} diff --git a/anda/langs/kotlin/kotlin-native/kotlin-native.spec b/anda/langs/kotlin/kotlin-native/kotlin-native.spec index d9405826ba..446922e762 100644 --- a/anda/langs/kotlin/kotlin-native/kotlin-native.spec +++ b/anda/langs/kotlin/kotlin-native/kotlin-native.spec @@ -1,6 +1,5 @@ %define _binaries_in_noarch_packages_terminate_build 0 -BuildRoot: %{_tmppath}/%{name}-%{version}-build Name: kotlin-native Version: 2.3.21 Release: 1%{?dist} diff --git a/anda/langs/lily/lily.spec b/anda/langs/lily/lily.spec index 94eb02687e..7cabc6f1ef 100644 --- a/anda/langs/lily/lily.spec +++ b/anda/langs/lily/lily.spec @@ -22,8 +22,10 @@ Requires: %{name} %prep %autosetup -n %{name}-%{version} -%build +%conf %cmake + +%build %cmake_build %install diff --git a/anda/langs/nim/nim-nightly/nim-nightly.spec b/anda/langs/nim/nim-nightly/nim-nightly.spec index 3247087cca..ec3ffbd048 100644 --- a/anda/langs/nim/nim-nightly/nim-nightly.spec +++ b/anda/langs/nim/nim-nightly/nim-nightly.spec @@ -1,8 +1,8 @@ %global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10 -%global commit 9f5c193c1d17d767cd0c3fb938b312e2c23a9ebd +%global commit 7813bd8b92824cacec9cddb5152f8c9ed645e03c %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global ver 2.3.1 -%global commit_date 20260520 +%global commit_date 20260530 %global debug_package %nil Name: nim-nightly @@ -12,10 +12,7 @@ Summary: Imperative, multi-paradigm, compiled programming language License: MIT and BSD URL: https://nim-lang.org Source0: https://github.com/nim-lang/Nim/archive/%commit.tar.gz -Source1: nim.1 -Source2: nimgrep.1 -Source4: nimsuggest.1 -BuildRequires: gcc mold git gcc-c++ nodejs openssl-devel pkgconfig(bash-completion) gc-devel pcre pcre-devel +BuildRequires: gcc mold git gcc-c++ nodejs openssl-devel pkgconfig(bash-completion) gc-devel help2man Requires: redhat-rpm-config gcc Conflicts: choosenim # somehow wrong name and never noticed @@ -57,8 +54,13 @@ order of priority). This package provides documentation and reference manual for the language and its standard library. + %endif +%pkg_completion -Bz nim nimble +%pkg_completion -Bn nimgrep +%pkg_completion -Bn nimpretty +%pkg_completion -Bn nimsuggest %prep %autosetup -n Nim-%commit @@ -81,17 +83,14 @@ nim c --noNimblePath --skipUserCfg --skipParentCfg --hints:off -d:danger koch.ni koch boot -d:release -d:nimStrictMode --lib:lib %ifarch x86_64 -koch docs & +./koch docs --skipUserCfg --skipParentCfg --hints:off & %endif (cd lib; nim c --app:lib -d:danger -d:createNimRtl -t:-fPIE -l:-pie nimrtl.nim) & koch tools --skipUserCfg --skipParentCfg --hints:off -d:release -t:-fPIE -l:-pie & -nim c -d:danger -t:-fPIE -l:-pie nimsuggest/nimsuggest.nim & wait -%ifarch x86_64 -sed -i '/ - 2.3.1^20260522.561b417 +- more manfiles +- no more nimgrep manfile (cannot generate) +- no longer dep on pcre diff --git a/anda/langs/nim/nim/nim.spec b/anda/langs/nim/nim/nim.spec index 52391ed970..91a106df47 100644 --- a/anda/langs/nim/nim/nim.spec +++ b/anda/langs/nim/nim/nim.spec @@ -11,7 +11,7 @@ Source1: nim.1 Source2: nimgrep.1 Source3: nimble.1 Source4: nimsuggest.1 -BuildRequires: gcc mold git-core gcc-c++ nodejs openssl-devel pkgconfig(bash-completion) gc-devel pcre-devel +BuildRequires: gcc mold git-core gcc-c++ nodejs openssl-devel pkgconfig(bash-completion) gc-devel pcre2-devel BuildRequires: redhat-rpm-config anda-srpm-macros Requires: gcc Recommends: nim-tools diff --git a/anda/langs/python/consolekit/anda.hcl b/anda/langs/python/consolekit/anda.hcl index 42675cf9ac..b6209800b6 100644 --- a/anda/langs/python/consolekit/anda.hcl +++ b/anda/langs/python/consolekit/anda.hcl @@ -3,6 +3,4 @@ project pkg { rpm { spec = "consolekit.spec" } - labels { - } } diff --git a/anda/langs/python/datasets/anda.hcl b/anda/langs/python/datasets/anda.hcl new file mode 100644 index 0000000000..b876eff6df --- /dev/null +++ b/anda/langs/python/datasets/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "datasets.spec" + } +} diff --git a/anda/langs/python/datasets/datasets.spec b/anda/langs/python/datasets/datasets.spec new file mode 100644 index 0000000000..e536fab8f2 --- /dev/null +++ b/anda/langs/python/datasets/datasets.spec @@ -0,0 +1,50 @@ +%global pypi_name datasets +%global _desc The largest hub of ready-to-use datasets for AI models with fast, easy-to-use and efficient data manipulation tools. + +Name: python-%{pypi_name} +Version: 4.8.5 +Release: 1%{?dist} +Summary: The largest hub of ready-to-use datasets for AI models with fast, easy-to-use and efficient data manipulation tools +License: Apache-2.0 +URL: https://github.com/huggingface/datasets +Source0: %{pypi_source} + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-importlib-metadata +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildArch: noarch + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%pyproject_patch_dependency pyarrow:drop_constraints + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/datasets-cli + +%changelog +* Sun May 24 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/datasets/update.rhai b/anda/langs/python/datasets/update.rhai new file mode 100644 index 0000000000..f9a78949d7 --- /dev/null +++ b/anda/langs/python/datasets/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("datasets")); diff --git a/anda/langs/python/lhotse/anda.hcl b/anda/langs/python/lhotse/anda.hcl new file mode 100644 index 0000000000..e5e6e4be9f --- /dev/null +++ b/anda/langs/python/lhotse/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "lhotse.spec" + } +} diff --git a/anda/langs/python/lhotse/lhotse.spec b/anda/langs/python/lhotse/lhotse.spec new file mode 100644 index 0000000000..0d39e94e5e --- /dev/null +++ b/anda/langs/python/lhotse/lhotse.spec @@ -0,0 +1,46 @@ +%global pypi_name lhotse +%global _desc Tools for handling multimodal data in machine learning projects. + +Name: python-%{pypi_name} +Version: 1.33.0 +Release: 1%{?dist} +Summary: Tools for handling multimodal data in machine learning projects +License: Apache-2.0 +URL: https://lhotse.readthedocs.io/en/latest/ +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%git_clone https://github.com/lhotse-speech/lhotse.git %{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE +%{_bindir}/lhotse + +%changelog +* Sun May 24 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/lhotse/update.rhai b/anda/langs/python/lhotse/update.rhai new file mode 100644 index 0000000000..5115d3c16a --- /dev/null +++ b/anda/langs/python/lhotse/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("lhotse")); diff --git a/anda/langs/python/posthog/posthog.spec b/anda/langs/python/posthog/posthog.spec index d03990aab5..38874dbaf1 100644 --- a/anda/langs/python/posthog/posthog.spec +++ b/anda/langs/python/posthog/posthog.spec @@ -2,7 +2,7 @@ %global _desc Send usage data from your Python code to PostHog. Name: python-%{pypi_name} -Version: 7.15.0 +Version: 7.16.2 Release: 1%{?dist} Summary: Send usage data from your Python code to PostHog License: MIT diff --git a/anda/langs/python/proton-vpn-api-core/proton-vpn-api-core.spec b/anda/langs/python/proton-vpn-api-core/proton-vpn-api-core.spec index 67e8b5885f..6044e78e83 100644 --- a/anda/langs/python/proton-vpn-api-core/proton-vpn-api-core.spec +++ b/anda/langs/python/proton-vpn-api-core/proton-vpn-api-core.spec @@ -4,7 +4,7 @@ %global __requires_exclude ^python3\\.14dist\\(proton-vpn-local-agent\\)$ Name: python-%{pypi_name} -Version: 5.1.2 +Version: 5.2.3 Release: 1%{?dist} Summary: A facade to the other Proton VPN components License: GPL-3.0-Only diff --git a/anda/langs/python/proton-vpn-local-agent/proton-vpn-local-agent.spec b/anda/langs/python/proton-vpn-local-agent/proton-vpn-local-agent.spec index 1ceef4dd18..0046338006 100644 --- a/anda/langs/python/proton-vpn-local-agent/proton-vpn-local-agent.spec +++ b/anda/langs/python/proton-vpn-local-agent/proton-vpn-local-agent.spec @@ -4,7 +4,7 @@ %global _desc Proton VPN local agent written in Rust. Name: python-%{pypi_name} -Version: 1.6.1 +Version: 1.6.2 Release: 1%{?dist} Summary: Proton VPN local agent written in Rust License: GPL-3.0-only diff --git a/anda/langs/python/pyfluidsynth/pyfluidsynth.spec b/anda/langs/python/pyfluidsynth/pyfluidsynth.spec index 6b105a8db5..5fc71b7501 100644 --- a/anda/langs/python/pyfluidsynth/pyfluidsynth.spec +++ b/anda/langs/python/pyfluidsynth/pyfluidsynth.spec @@ -2,8 +2,8 @@ %global _desc Python bindings for FluidSynth. Name: python-%{pypi_name} -Version: 1.3.4 -Release: 1%?dist +Version: 1.4.0 +Release: 1%{?dist} Summary: Python bindings for FluidSynth License: LGPL-2.1 URL: https://github.com/nwhitehead/pyfluidsynth @@ -35,14 +35,12 @@ Summary: %{summary} %install %pyproject_install +%pyproject_save_files fluidsynth -%files -n python3-%{pypi_name} +%files -n python3-%{pypi_name} -f %{pyproject_files} %doc README.md %license LICENSE -%{_usr}/lib/python3.14/site-packages/__pycache__/fluidsynth.*.pyc -%{_usr}/lib/python3.14/site-packages/__pycache__/fluidsynth.*.*.pyc -%{_usr}/lib/python3.14/site-packages/fluidsynth.py -%{_usr}/lib/python3.14/site-packages/%{pypi_name}-%{version}.dist-info/* +%{python3_sitelib}/fluidsynth.py %changelog * Sat Jan 24 2026 Owen Zimmerman diff --git a/anda/langs/python/superisoupdater/superisoupdater.spec b/anda/langs/python/superisoupdater/superisoupdater.spec index 7c39e276ea..deca687b0b 100644 --- a/anda/langs/python/superisoupdater/superisoupdater.spec +++ b/anda/langs/python/superisoupdater/superisoupdater.spec @@ -2,7 +2,7 @@ %global _desc A powerful tool to conveniently update all of your ISOs! Name: python-%{pypi_name} -Version: 2.2.0 +Version: 2.3.0 Release: 1%{?dist} Summary: %{_desc} License: GPLv3 diff --git a/anda/langs/python/types-colorama/types-colorama.spec b/anda/langs/python/types-colorama/types-colorama.spec index b409c89931..4616c23ce8 100644 --- a/anda/langs/python/types-colorama/types-colorama.spec +++ b/anda/langs/python/types-colorama/types-colorama.spec @@ -1,5 +1,5 @@ -%global commit 60a6695e77b81d0e1b5a088c316af78c7510941f -%global commit_date 20260520 +%global commit 54bea668cb7c976500c1e1f890351c8cdaabd080 +%global commit_date 20260531 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global pypi_name types-colorama diff --git a/anda/langs/python/upiano/upiano.spec b/anda/langs/python/upiano/upiano.spec index 4345218d4c..403ae7f2a1 100644 --- a/anda/langs/python/upiano/upiano.spec +++ b/anda/langs/python/upiano/upiano.spec @@ -3,7 +3,7 @@ Name: python-%{pypi_name} Version: 0.1.2 -Release: 1%?dist +Release: 3%?dist Summary: Terminal Piano App License: MIT URL: https://github.com/eliasdorneles/upiano @@ -17,6 +17,8 @@ BuildRequires: python3-setuptools BuildRequires: python3-pip BuildRequires: python3-poetry-core +Requires: fluidsynth + Packager: Owen Zimmerman %description @@ -33,6 +35,9 @@ Summary: %{summary} %autosetup -n upiano-%{version} cp %{SOURCE1} . +%pyproject_patch_dependency pyfluidsynth:drop_constraints +%pyproject_patch_dependency textual:drop_constraints + %build %pyproject_wheel diff --git a/anda/langs/python/uroman/anda.hcl b/anda/langs/python/uroman/anda.hcl new file mode 100644 index 0000000000..3bda26f105 --- /dev/null +++ b/anda/langs/python/uroman/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "uroman.spec" + } +} diff --git a/anda/langs/python/uroman/update.rhai b/anda/langs/python/uroman/update.rhai new file mode 100644 index 0000000000..169a84812a --- /dev/null +++ b/anda/langs/python/uroman/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("uroman")); diff --git a/anda/langs/python/uroman/uroman.spec b/anda/langs/python/uroman/uroman.spec new file mode 100644 index 0000000000..9d44f9a4b0 --- /dev/null +++ b/anda/langs/python/uroman/uroman.spec @@ -0,0 +1,52 @@ +%global pypi_name uroman +%global _desc Universal Romanizer that can convert any unicode script to roman (latin) script. + +Name: python-%{pypi_name} +Version: 1.3.1.1 +Release: 1%{?dist} +Summary: Universal Romanizer that can convert any unicode script to roman (latin) script +License: GPL-3.0-or-later +URL: https://github.com/isi-nlp/uroman +Source0: %{pypi_source} +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-wheel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-hatchling + +Packager: Owen Zimmerman + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{pypi_name}-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files %{pypi_name} +rm -r %{buildroot}%{python3_sitelib}/LICENSE.txt +rm -r %{buildroot}%{python3_sitelib}/README.md +rm -r %{buildroot}%{python3_sitelib}/pyproject.toml +rm -r %{buildroot}%{python3_sitelib}/requirements.txt + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.md +%license LICENSE.txt +%{_bindir}/uroman + +%changelog +* Sun May 24 2026 Owen Zimmerman +- Initial commit diff --git a/anda/langs/python/wget/anda.hcl b/anda/langs/python/wget/anda.hcl new file mode 100644 index 0000000000..34e120a05f --- /dev/null +++ b/anda/langs/python/wget/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "wget.spec" + } +} diff --git a/anda/langs/python/wget/update.rhai b/anda/langs/python/wget/update.rhai new file mode 100644 index 0000000000..e1b4acd9d8 --- /dev/null +++ b/anda/langs/python/wget/update.rhai @@ -0,0 +1 @@ +rpm.version(pypi("wget")); diff --git a/anda/langs/python/wget/wget.spec b/anda/langs/python/wget/wget.spec new file mode 100644 index 0000000000..bde7ac1748 --- /dev/null +++ b/anda/langs/python/wget/wget.spec @@ -0,0 +1,50 @@ +%global pypi_name wget +%global _desc Pure Python download utility. + +%global commit fdd3a0f8404ccab90f939f9952af139e6c55142a +%global commit_date 20141004 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: python-%{pypi_name} +Version: 3.2 +Release: 1%{?dist} +Summary: Pure Python download utility +License: LicenseRef-Fedora-Public-Domain +URL: https://pypi.org/project/wget/ +Source0: https://github.com/steveej/python-wget/archive/%commit/python-wget-%commit.zip +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: python3-importlib-metadata +BuildRequires: python3-wheel +BuildRequires: python3-setuptools + +Packager: Its-J + +%description +%_desc + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +%_desc + +%prep +%autosetup -n %{name}-%{commit} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files wget + +%files -n python3-%{pypi_name} -f %{pyproject_files} +%doc README.txt + +%changelog +* Sun May 24 2026 Its-J +- Initial commit diff --git a/anda/langs/rust/fresh/fresh.spec b/anda/langs/rust/fresh/fresh.spec index 6120b6a02b..982d549df5 100644 --- a/anda/langs/rust/fresh/fresh.spec +++ b/anda/langs/rust/fresh/fresh.spec @@ -1,7 +1,7 @@ %undefine __brp_mangle_shebangs Name: fresh -Version: 0.3.7 +Version: 0.3.10 Release: 1%{?dist} Summary: Text editor for your terminal: easy, powerful and fast URL: https://getfresh.dev diff --git a/anda/langs/rust/gitoxide/rust-gitoxide.spec b/anda/langs/rust/gitoxide/rust-gitoxide.spec index 2ccae8cb66..c5e42b5c26 100644 --- a/anda/langs/rust/gitoxide/rust-gitoxide.spec +++ b/anda/langs/rust/gitoxide/rust-gitoxide.spec @@ -5,7 +5,7 @@ %global crate gitoxide Name: rust-gitoxide -Version: 0.53.0 +Version: 0.54.0 Release: 1%{?dist} Summary: Command-line application for interacting with git repositories diff --git a/anda/langs/rust/ouch/rust-ouch.spec b/anda/langs/rust/ouch/rust-ouch.spec index ababa97206..53a9b31389 100644 --- a/anda/langs/rust/ouch/rust-ouch.spec +++ b/anda/langs/rust/ouch/rust-ouch.spec @@ -1,10 +1,11 @@ # Generated by rust2rpm 27 %bcond check 1 +%global __brp_mangle_shebangs %{nil} %global crate ouch Name: rust-ouch -Version: 0.7.1 +Version: 0.8.0 Release: 1%{?dist} Summary: Command-line utility for easily compressing and decompressing files and directories @@ -12,10 +13,11 @@ License: MIT URL: https://crates.io/crates/ouch Source: %{crates_source} # Automatically generated patch to strip dependencies and normalize metadata -Patch: ouch-fix-metadata-auto.diff +%dnl Patch: ouch-fix-metadata-auto.diff BuildRequires: anda-srpm-macros cargo-rpm-macros >= 24 BuildRequires: gcc-c++ +BuildRequires: clang-devel %global _description %{expand: A command-line utility for easily compressing and decompressing files @@ -39,7 +41,7 @@ License: (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR MI %{_bindir}/ouch %prep -%autosetup -n %{crate}-%{version} -p1 +%autosetup -n %{crate}-%{version} %cargo_prep_online %build diff --git a/anda/langs/rust/usage/rust-usage-cli.spec b/anda/langs/rust/usage/rust-usage-cli.spec index 535a49ba9d..675e8ec3d2 100644 --- a/anda/langs/rust/usage/rust-usage-cli.spec +++ b/anda/langs/rust/usage/rust-usage-cli.spec @@ -4,7 +4,7 @@ %global crate usage-cli Name: rust-usage-cli -Version: 3.3.0 +Version: 3.4.0 Release: 1%{?dist} Summary: CLI for working with usage-based CLIs diff --git a/anda/langs/rust/wild/rust-wild-linker.spec b/anda/langs/rust/wild/rust-wild-linker.spec index 296e08539e..f4d2f8624f 100644 --- a/anda/langs/rust/wild/rust-wild-linker.spec +++ b/anda/langs/rust/wild/rust-wild-linker.spec @@ -4,8 +4,8 @@ %global crate wild-linker Name: rust-wild-linker -Version: 0.8.0 -Release: 1%?dist +Version: 0.9.0 +Release: 1%{?dist} Summary: Very fast linker for Linux License: MIT OR Apache-2.0 diff --git a/anda/langs/rust/zoi/rust-zoi-rs.spec b/anda/langs/rust/zoi/rust-zoi-rs.spec index 45e9ebc2e7..edbe07a3d5 100644 --- a/anda/langs/rust/zoi/rust-zoi-rs.spec +++ b/anda/langs/rust/zoi/rust-zoi-rs.spec @@ -1,7 +1,7 @@ %define __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ %global crate zoi-rs -%global crate_version 1.13.0 +%global crate_version 1.15.0 Name: rust-zoi-rs Version: %(echo %crate_version | sed 's/-/~/g') diff --git a/anda/langs/vala/vala-nightly/vala-nightly.spec b/anda/langs/vala/vala-nightly/vala-nightly.spec index b4ffc1a675..1c7c3c33e4 100644 --- a/anda/langs/vala/vala-nightly/vala-nightly.spec +++ b/anda/langs/vala/vala-nightly/vala-nightly.spec @@ -3,11 +3,11 @@ %global priority 90 %global real_name vala -%global commit 7a80e9901b4640dab0a11e96a9158545df6d6937 +%global commit c5d31b3fcdb9d564dc3340714a129f72a072391f %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global repo https://gitlab.gnome.org/GNOME/%{real_name}.git -%global commit_date 20260517 +%global commit_date 20260528 %global snapshot_info %{commit_date}.%{shortcommit} Name: vala-nightly diff --git a/anda/langs/zig/bootstrap/setup.sh b/anda/langs/zig/bootstrap/setup.sh index 86bc29848c..b0b3d4bd53 100755 --- a/anda/langs/zig/bootstrap/setup.sh +++ b/anda/langs/zig/bootstrap/setup.sh @@ -1,6 +1,6 @@ #!/usr/bin/bash -version=0.17.0-dev.314+eae06cf5c +version=0.17.0-dev.633+9c5655093 mirrors=() diff --git a/anda/langs/zig/bootstrap/zig-master-bootstrap.spec b/anda/langs/zig/bootstrap/zig-master-bootstrap.spec index c4c0629d23..d8e35efbda 100644 --- a/anda/langs/zig/bootstrap/zig-master-bootstrap.spec +++ b/anda/langs/zig/bootstrap/zig-master-bootstrap.spec @@ -6,7 +6,7 @@ %define llvm_compat 22 %endif %global llvm_version 22.0.0 -%global ver 0.17.0-dev.314+eae06cf5c +%global ver 0.17.0-dev.633+9c5655093 %bcond bootstrap 1 %bcond docs %{without bootstrap} %bcond test 1 diff --git a/anda/langs/zig/master/zig-master.spec b/anda/langs/zig/master/zig-master.spec index 524eb94b29..0059c25dce 100644 --- a/anda/langs/zig/master/zig-master.spec +++ b/anda/langs/zig/master/zig-master.spec @@ -18,7 +18,7 @@ %global zig_cache_dir %{builddir}/zig-cache Name: zig-master -Version: 0.17.0~dev.314+eae06cf5c +Version: 0.17.0~dev.633+9c5655093 Release: 2%{?dist} Summary: Master builds of the Zig language License: MIT AND NCSA AND LGPL-2.1-or-later AND LGPL-2.1-or-later WITH GCC-exception-2.0 AND GPL-2.0-or-later AND GPL-2.0-or-later WITH GCC-exception-2.0 AND BSD-3-Clause AND Inner-Net-2.0 AND ISC AND LicenseRef-Fedora-Public-Domain AND GFDL-1.1-or-later AND ZPL-2.1 diff --git a/anda/lib/astal/astal-gtk/astal-gtk.spec b/anda/lib/astal/astal-gtk/astal-gtk.spec index 21b580e3e4..383a1cd34e 100644 --- a/anda/lib/astal/astal-gtk/astal-gtk.spec +++ b/anda/lib/astal/astal-gtk/astal-gtk.spec @@ -1,6 +1,6 @@ -%global commit f58cae8f268dedffb6d1448b5b32f39b71953958 -%global shortcommit f58cae8 -%global commit_date 20260520 +%global commit d8738f97ed01f4d87f668df35fa7bbad795c9e49 +%global shortcommit d8738f9 +%global commit_date 20260523 Name: astal Version: 0^%commit_date.%commit diff --git a/anda/lib/astal/astal/astal.spec b/anda/lib/astal/astal/astal.spec index d2ce9fd936..df4d649261 100644 --- a/anda/lib/astal/astal/astal.spec +++ b/anda/lib/astal/astal/astal.spec @@ -1,7 +1,7 @@ -%global commit f58cae8f268dedffb6d1448b5b32f39b71953958 +%global commit d8738f97ed01f4d87f668df35fa7bbad795c9e49 %global shortcommit %{sub %commit 1 7} -%global commit_date 20260520 +%global commit_date 20260523 Name: astal Version: 0^%commit_date.%shortcommit diff --git a/anda/lib/directxshadercompiler/DirectXShaderCompiler.spec b/anda/lib/directxshadercompiler/DirectXShaderCompiler.spec index 5e51088eca..3a4eb97e68 100644 --- a/anda/lib/directxshadercompiler/DirectXShaderCompiler.spec +++ b/anda/lib/directxshadercompiler/DirectXShaderCompiler.spec @@ -3,7 +3,7 @@ # Metadata. Name: DirectXShaderCompiler -Version: 1.10.2605.2 +Version: 1.10.2605.24 Release: 1%{?dist} Summary: A Direct X Shader compiler. License: MIT diff --git a/anda/lib/fdk-aac/anda.hcl b/anda/lib/fdk-aac/anda.hcl index 1c976b995e..37bf464291 100644 --- a/anda/lib/fdk-aac/anda.hcl +++ b/anda/lib/fdk-aac/anda.hcl @@ -4,8 +4,8 @@ project pkg { spec = "fdk-aac.spec" } labels { - mock=1 + mock = 1 subrepo = "multimedia" - weekly = 1 + updbranch = 1 } } diff --git a/anda/lib/fdk-aac/update.rhai b/anda/lib/fdk-aac/update.rhai index 9b3efb2d09..9ec7817f5b 100644 --- a/anda/lib/fdk-aac/update.rhai +++ b/anda/lib/fdk-aac/update.rhai @@ -1 +1,3 @@ -rpm.version(gh_tag("mstorsjo/fdk-aac")); +import "andax/bump_extras.rhai" as bump; + +rpm.version(bump::bodhi("fdk-aac-free", bump::as_bodhi_ver(labels.branch))); diff --git a/anda/lib/glaze/glaze.spec b/anda/lib/glaze/glaze.spec index f949cde8ba..b28523ca18 100644 --- a/anda/lib/glaze/glaze.spec +++ b/anda/lib/glaze/glaze.spec @@ -2,7 +2,7 @@ %global debug_package %{nil} Name: glaze-devel -Version: 7.6.0 +Version: 7.7.1 Release: 1%{?dist} License: MIT URL: https://stephenberry.github.io/glaze diff --git a/anda/lib/libde265/libde265.spec b/anda/lib/libde265/libde265.spec index b725ecb840..85886fdce0 100644 --- a/anda/lib/libde265/libde265.spec +++ b/anda/lib/libde265/libde265.spec @@ -1,6 +1,6 @@ Name: libde265 Summary: Open H.265 video codec implementation -Version: 1.0.19 +Version: 1.1.0 Release: 1%{?dist} License: LGPL-3.0-or-later URL: https://www.libde265.org/ diff --git a/anda/lib/nvidia/cuda-cudart/cuda-cudart.spec b/anda/lib/nvidia/cuda-cudart/cuda-cudart.spec index a531ae18a2..b088a0226f 100644 --- a/anda/lib/nvidia/cuda-cudart/cuda-cudart.spec +++ b/anda/lib/nvidia/cuda-cudart/cuda-cudart.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.75 +Version: 13.3.29 Release: 1%{?dist} Summary: CUDA Runtime API library License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-cudnn/cuda-cudnn.spec b/anda/lib/nvidia/cuda-cudnn/cuda-cudnn.spec index b8c302a2cc..83de0a88e2 100644 --- a/anda/lib/nvidia/cuda-cudnn/cuda-cudnn.spec +++ b/anda/lib/nvidia/cuda-cudnn/cuda-cudnn.spec @@ -5,7 +5,7 @@ %global cuda_version 13 Name: cuda-cudnn -Version: 9.22.0.52 +Version: 9.23.0.39 Release: 1%{?dist} Epoch: 1 Summary: NVIDIA CUDA Deep Neural Network library (cuDNN) diff --git a/anda/lib/nvidia/cuda-culibos/cuda-culibos.spec b/anda/lib/nvidia/cuda-culibos/cuda-culibos.spec index e7e384a94b..ac30881f6e 100644 --- a/anda/lib/nvidia/cuda-culibos/cuda-culibos.spec +++ b/anda/lib/nvidia/cuda-culibos/cuda-culibos.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-')-devel Epoch: 1 -Version: 13.2.75 +Version: 13.3.33 Release: 1%{?dist} Summary: CUDA Culibos Math development library License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-cuobjdump/cuda-cuobjdump.spec b/anda/lib/nvidia/cuda-cuobjdump/cuda-cuobjdump.spec index ef6f98e43a..aa66714977 100644 --- a/anda/lib/nvidia/cuda-cuobjdump/cuda-cuobjdump.spec +++ b/anda/lib/nvidia/cuda-cuobjdump/cuda-cuobjdump.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.78 +Version: 13.3.29 Release: 1%{?dist} Summary: Utility to extract information from CUDA binary files License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-cupti/cuda-cupti.spec b/anda/lib/nvidia/cuda-cupti/cuda-cupti.spec index 342d91a132..ba6ddfe531 100644 --- a/anda/lib/nvidia/cuda-cupti/cuda-cupti.spec +++ b/anda/lib/nvidia/cuda-cupti/cuda-cupti.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.75 +Version: 13.3.35 Release: 1%{?dist} Summary: NVIDIA CUDA Profiling Tools Interface (CUPTI) library License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-cuxxfilt/cuda-cuxxfilt.spec b/anda/lib/nvidia/cuda-cuxxfilt/cuda-cuxxfilt.spec index 54ef59bade..6dcccc115f 100644 --- a/anda/lib/nvidia/cuda-cuxxfilt/cuda-cuxxfilt.spec +++ b/anda/lib/nvidia/cuda-cuxxfilt/cuda-cuxxfilt.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.78 +Version: 13.3.29 Release: 1%{?dist} Summary: CUDA cuxxfilt (demangler) License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-gdb/cuda-gdb.spec b/anda/lib/nvidia/cuda-gdb/cuda-gdb.spec index 3b0dd5982d..03c474d5cb 100644 --- a/anda/lib/nvidia/cuda-gdb/cuda-gdb.spec +++ b/anda/lib/nvidia/cuda-gdb/cuda-gdb.spec @@ -7,8 +7,8 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.75 -Release: 2%{?dist} +Version: 13.3.27 +Release: 1%{?dist} Summary: CUDA GDB License: GPL-3.0-or-later AND GPL-3.0-or-later with exceptions AND GPL-2.0-or-later AND GPL-2.0-or-later with exceptions AND GPL-1.0-or-later AND LGPL-2.0-or-later AND LGPL-3.0-or-later AND BSD AND LicenseRef-Fedora-Public-Domain AND GFDL URL: https://developer.nvidia.com/cuda-toolkit diff --git a/anda/lib/nvidia/cuda-nvdisasm/cuda-nvdisasm.spec b/anda/lib/nvidia/cuda-nvdisasm/cuda-nvdisasm.spec index 4fd11a21b2..5c3ba80d0f 100644 --- a/anda/lib/nvidia/cuda-nvdisasm/cuda-nvdisasm.spec +++ b/anda/lib/nvidia/cuda-nvdisasm/cuda-nvdisasm.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.78 +Version: 13.3.29 Release: 1%{?dist} Summary: Utility to extract information from CUDA binary files License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-nvml/cuda-nvml.spec b/anda/lib/nvidia/cuda-nvml/cuda-nvml.spec index d9604741f4..2e58cbe62e 100644 --- a/anda/lib/nvidia/cuda-nvml/cuda-nvml.spec +++ b/anda/lib/nvidia/cuda-nvml/cuda-nvml.spec @@ -8,7 +8,7 @@ Name: cuda-nvml Epoch: 1 -Version: 13.2.82 +Version: 13.3.29 Release: 1%{?dist} Summary: NVIDIA Management library (NVML) License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-nvprune/cuda-nvprune.spec b/anda/lib/nvidia/cuda-nvprune/cuda-nvprune.spec index fb57e966aa..b4a577b7b9 100644 --- a/anda/lib/nvidia/cuda-nvprune/cuda-nvprune.spec +++ b/anda/lib/nvidia/cuda-nvprune/cuda-nvprune.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.78 +Version: 13.3.29 Release: 1%{?dist} Summary: CUDA nvprune License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-nvrtc/cuda-nvrtc.spec b/anda/lib/nvidia/cuda-nvrtc/cuda-nvrtc.spec index 4cb43cadec..20ad6478be 100644 --- a/anda/lib/nvidia/cuda-nvrtc/cuda-nvrtc.spec +++ b/anda/lib/nvidia/cuda-nvrtc/cuda-nvrtc.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.78 +Version: 13.3.33 Release: 1%{?dist} Summary: CUDA runtime compilation library (NVRTC) License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-nvtx/cuda-nvtx.spec b/anda/lib/nvidia/cuda-nvtx/cuda-nvtx.spec index 6742f0c1e6..c01bd7338a 100644 --- a/anda/lib/nvidia/cuda-nvtx/cuda-nvtx.spec +++ b/anda/lib/nvidia/cuda-nvtx/cuda-nvtx.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.75 +Version: 13.3.29 Release: 1%{?dist} Summary: NVIDIA Tools Extension (NVTX) library License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-profiler/cuda-profiler.spec b/anda/lib/nvidia/cuda-profiler/cuda-profiler.spec index 07231d98de..56cff10f83 100644 --- a/anda/lib/nvidia/cuda-profiler/cuda-profiler.spec +++ b/anda/lib/nvidia/cuda-profiler/cuda-profiler.spec @@ -5,7 +5,7 @@ Name: cuda-profiler Epoch: 1 -Version: 13.2.75 +Version: 13.3.27 Release: 1%{?dist} Summary: CUDA Profiler API License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-sandbox/cuda-sandbox.spec b/anda/lib/nvidia/cuda-sandbox/cuda-sandbox.spec index f93fc480a9..6b44011535 100644 --- a/anda/lib/nvidia/cuda-sandbox/cuda-sandbox.spec +++ b/anda/lib/nvidia/cuda-sandbox/cuda-sandbox.spec @@ -8,7 +8,7 @@ Name: cuda-sandbox Epoch: 1 -Version: 13.2.82 +Version: 13.3.29 Release: 1%{?dist} Summary: CUDA nvsandboxutils License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda-sanitizer/cuda-sanitizer.spec b/anda/lib/nvidia/cuda-sanitizer/cuda-sanitizer.spec index 438e97ce3a..58151b33f3 100644 --- a/anda/lib/nvidia/cuda-sanitizer/cuda-sanitizer.spec +++ b/anda/lib/nvidia/cuda-sanitizer/cuda-sanitizer.spec @@ -8,7 +8,7 @@ Name: cuda-sanitizer Epoch: 1 -Version: 13.2.76 +Version: 13.3.27 Release: 1%{?dist} Summary: CUDA Compute Sanitizer API License: CUDA Toolkit diff --git a/anda/lib/nvidia/cuda/cuda.spec b/anda/lib/nvidia/cuda/cuda.spec index bb9e5ebac9..6ab7b6fd32 100644 --- a/anda/lib/nvidia/cuda/cuda.spec +++ b/anda/lib/nvidia/cuda/cuda.spec @@ -2,7 +2,7 @@ %global major_package_version 13-0 Name: cuda -Version: 13.2.75 +Version: 13.3.40 Release: 1%{?dist} Summary: NVIDIA Compute Unified Device Architecture Toolkit Epoch: 1 diff --git a/anda/lib/nvidia/libcublas/libcublas.spec b/anda/lib/nvidia/libcublas/libcublas.spec index 8888c7f914..8e3e01a4fd 100644 --- a/anda/lib/nvidia/libcublas/libcublas.spec +++ b/anda/lib/nvidia/libcublas/libcublas.spec @@ -6,7 +6,7 @@ Name: libcublas Epoch: 1 -Version: 13.4.0.1 +Version: 13.5.1.27 Release: 1%{?dist} Summary: NVIDIA CUDA Basic Linear Algebra Subroutines (cuBLAS) libraries License: CUDA Toolkit diff --git a/anda/lib/nvidia/libcudla/libcudla.spec b/anda/lib/nvidia/libcudla/libcudla.spec index 97a4e28233..d149a2f7f9 100644 --- a/anda/lib/nvidia/libcudla/libcudla.spec +++ b/anda/lib/nvidia/libcudla/libcudla.spec @@ -6,7 +6,7 @@ Name: libcudla Epoch: 1 -Version: 13.2.75 +Version: 13.3.29 Release: 1%{?dist} Summary: NVIDIA CUDA Deep Learning Accelerator (DLA) engines (Jetson Xavier + Orin) License: CUDA Toolkit diff --git a/anda/lib/nvidia/libcufft/libcufft.spec b/anda/lib/nvidia/libcufft/libcufft.spec index 6ec176a5ec..1af10a9d10 100644 --- a/anda/lib/nvidia/libcufft/libcufft.spec +++ b/anda/lib/nvidia/libcufft/libcufft.spec @@ -6,7 +6,7 @@ Name: libcufft Epoch: 2 -Version: 12.2.0.46 +Version: 12.3.0.29 Release: 1%{?dist} Summary: NVIDIA CUDA Fast Fourier Transform library (cuFFT) libraries License: CUDA Toolkit diff --git a/anda/lib/nvidia/libcufile/libcufile.spec b/anda/lib/nvidia/libcufile/libcufile.spec index ed17599098..a2f5d529a4 100644 --- a/anda/lib/nvidia/libcufile/libcufile.spec +++ b/anda/lib/nvidia/libcufile/libcufile.spec @@ -6,7 +6,7 @@ Name: libcufile Epoch: 1 -Version: 1.17.1.22 +Version: 1.18.0.66 Release: 1%{?dist} Summary: NVIDIA GPUDirect Storage library (cuFile) License: CUDA Toolkit diff --git a/anda/lib/nvidia/libcurand/libcurand.spec b/anda/lib/nvidia/libcurand/libcurand.spec index cb96a7f02e..c575b58ff5 100644 --- a/anda/lib/nvidia/libcurand/libcurand.spec +++ b/anda/lib/nvidia/libcurand/libcurand.spec @@ -6,7 +6,7 @@ Name: libcurand Epoch: 2 -Version: 10.4.2.55 +Version: 10.4.3.29 Release: 1%{?dist} Summary: NVIDIA CUDA Random Number Generation library (cuRAND) License: CUDA Toolkit diff --git a/anda/lib/nvidia/libcusolver/libcusolver.spec b/anda/lib/nvidia/libcusolver/libcusolver.spec index 37c93b7ebd..8a4ee7bf3b 100644 --- a/anda/lib/nvidia/libcusolver/libcusolver.spec +++ b/anda/lib/nvidia/libcusolver/libcusolver.spec @@ -6,7 +6,7 @@ Name: libcusolver Epoch: 2 -Version: 12.2.0.1 +Version: 12.2.2.18 Release: 1%{?dist} Summary: NVIDIA cuSOLVER library License: CUDA Toolkit diff --git a/anda/lib/nvidia/libcusparse/libcusparse.spec b/anda/lib/nvidia/libcusparse/libcusparse.spec index 6ce77a2c32..7d63693edc 100644 --- a/anda/lib/nvidia/libcusparse/libcusparse.spec +++ b/anda/lib/nvidia/libcusparse/libcusparse.spec @@ -6,7 +6,7 @@ Name: libcusparse Epoch: 1 -Version: 12.7.10.1 +Version: 12.8.1.7 Release: 1%{?dist} Summary: NVIDIA CUDA Sparse Matrix library (cuSPARSE) library License: CUDA Toolkit diff --git a/anda/lib/nvidia/libnpp/libnpp.spec b/anda/lib/nvidia/libnpp/libnpp.spec index fe92f28c28..f7223c4b91 100644 --- a/anda/lib/nvidia/libnpp/libnpp.spec +++ b/anda/lib/nvidia/libnpp/libnpp.spec @@ -6,7 +6,7 @@ Name: libnpp Epoch: 1 -Version: 13.1.0.48 +Version: 13.1.2.48 Release: 1%{?dist} Summary: NVIDIA Performance Primitives libraries License: CUDA Toolkit diff --git a/anda/lib/nvidia/libnvfatbin/libnvfatbin.spec b/anda/lib/nvidia/libnvfatbin/libnvfatbin.spec index 20729b2d5b..21b4d2de30 100644 --- a/anda/lib/nvidia/libnvfatbin/libnvfatbin.spec +++ b/anda/lib/nvidia/libnvfatbin/libnvfatbin.spec @@ -6,7 +6,7 @@ Name: libnvfatbin Epoch: 1 -Version: 13.2.78 +Version: 13.3.29 Release: 1%{?dist} Summary: CUDA Fatbin Creator API License: CUDA Toolkit diff --git a/anda/lib/nvidia/libnvjitlink/libnvjitlink.spec b/anda/lib/nvidia/libnvjitlink/libnvjitlink.spec index d1057dee2c..8370a21283 100644 --- a/anda/lib/nvidia/libnvjitlink/libnvjitlink.spec +++ b/anda/lib/nvidia/libnvjitlink/libnvjitlink.spec @@ -6,7 +6,7 @@ Name: libnvjitlink Epoch: 1 -Version: 13.2.78 +Version: 13.3.33 Release: 1%{?dist} Summary: NVIDIA compiler library for JIT LTO functionality License: CUDA Toolkit diff --git a/anda/lib/nvidia/libnvjpeg/libnvjpeg.spec b/anda/lib/nvidia/libnvjpeg/libnvjpeg.spec index 0762d1b7e7..ecbde9fe72 100644 --- a/anda/lib/nvidia/libnvjpeg/libnvjpeg.spec +++ b/anda/lib/nvidia/libnvjpeg/libnvjpeg.spec @@ -6,7 +6,7 @@ Name: libnvjpeg Epoch: 1 -Version: 13.1.0.48 +Version: 13.2.0.21 Release: 1%{?dist} Summary: CUDA NVIDIA JPEG decoder (nvJPEG) License: CUDA Toolkit diff --git a/anda/lib/nvidia/libnvptxcompiler-devel/libnvptxcompiler-devel.spec b/anda/lib/nvidia/libnvptxcompiler-devel/libnvptxcompiler-devel.spec index a5895ff3ff..8bdfc7d93f 100644 --- a/anda/lib/nvidia/libnvptxcompiler-devel/libnvptxcompiler-devel.spec +++ b/anda/lib/nvidia/libnvptxcompiler-devel/libnvptxcompiler-devel.spec @@ -8,7 +8,7 @@ Name: %{real_name}-devel Epoch: 1 -Version: 13.2.78 +Version: 13.3.33 Release: 1%{?dist} Summary: CUDA nvptxcompiler License: CUDA Toolkit diff --git a/anda/lib/nvidia/libnvvm/libnvvm.spec b/anda/lib/nvidia/libnvvm/libnvvm.spec index 2917336fad..0cc5b8ccfc 100644 --- a/anda/lib/nvidia/libnvvm/libnvvm.spec +++ b/anda/lib/nvidia/libnvvm/libnvvm.spec @@ -7,7 +7,7 @@ %global major_package_version 13-0 Name: %(echo %real_name | tr '_' '-') -Version: 13.2.78 +Version: 13.3.33 Release: 1%{?dist} Summary: CUDA NVVM License: CUDA Toolkit diff --git a/anda/lib/quickjs-ng/quickjs-ng.spec b/anda/lib/quickjs-ng/quickjs-ng.spec index ea2869749b..a2876380c7 100644 --- a/anda/lib/quickjs-ng/quickjs-ng.spec +++ b/anda/lib/quickjs-ng/quickjs-ng.spec @@ -1,7 +1,7 @@ %global _distro_extra_cflags -Wno-discarded-qualifiers -Wno-maybe-uninitialized Name: quickjs-ng -Version: 0.14.0 +Version: 0.15.0 Release: 1%{?dist} License: MIT Summary: A mighty JavaScript engine diff --git a/anda/misc/fx-autoconfig/anda.hcl b/anda/misc/fx-autoconfig/anda.hcl new file mode 100644 index 0000000000..d76c74f4d9 --- /dev/null +++ b/anda/misc/fx-autoconfig/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "fx-autoconfig.spec" + } +} diff --git a/anda/misc/fx-autoconfig/fx-autoconfig.spec b/anda/misc/fx-autoconfig/fx-autoconfig.spec new file mode 100644 index 0000000000..2df1ea1ae2 --- /dev/null +++ b/anda/misc/fx-autoconfig/fx-autoconfig.spec @@ -0,0 +1,39 @@ +%global commit d469a80f12e286c0e937d8b93c01dfc2d55dca8f +%global commit_date 20260504 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: fx-autoconfig +Version: 0~%{commit_date}git.%{shortcommit} +Release: 1%{?dist} +Summary: Firefox userChrome.js manager +Packager: Anna Simmons + +License: MPL-2.0 +URL: https://github.com/MrOtherGuy/fx-autoconfig +Source0: https://github.com/MrOtherGuy/fx-autoconfig/archive/%commit.tar.gz +Requires: firefox +BuildArch: noarch + +%description +%{summary}. + +%prep +%autosetup -n fx-autoconfig-%commit + +%build + +%install +mkdir -p %{buildroot}%{_libdir}/firefox + +install -Dm644 program/config.js %{buildroot}%{_libdir}/firefox/ +cp -pr program/defaults %{buildroot}%{_libdir}/firefox/defaults + +%files +%license LICENSE +%doc readme.md +%{_libdir}/firefox/config.js +%{_libdir}/firefox/defaults/ + +%changelog +* Thu May 21 2026 Anna Simmons +- Initial package build diff --git a/anda/misc/fx-autoconfig/update.rhai b/anda/misc/fx-autoconfig/update.rhai new file mode 100644 index 0000000000..af3101ce9c --- /dev/null +++ b/anda/misc/fx-autoconfig/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("MrOtherGuy/fx-autoconfig")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/misc/sass/sass.spec b/anda/misc/sass/sass.spec index 6856ffec95..b994444a52 100644 --- a/anda/misc/sass/sass.spec +++ b/anda/misc/sass/sass.spec @@ -4,7 +4,7 @@ %define _build_id_links none Name: sass -Version: 1.99.0 +Version: 1.100.0 Release: 1%{?dist} Summary: The reference implementation of Sass, written in Dart License: MIT diff --git a/anda/misc/signal-cli/signal-cli.spec b/anda/misc/signal-cli/signal-cli.spec index 9d9fc83a46..c30c38cd19 100644 --- a/anda/misc/signal-cli/signal-cli.spec +++ b/anda/misc/signal-cli/signal-cli.spec @@ -3,7 +3,7 @@ %define debug_package %{nil} Name: signal-cli -Version: 0.14.3 +Version: 0.14.4.1 Release: 1%{?dist} Summary: signal-cli provides an unofficial commandline, JSON-RPC and dbus interface for the Signal messenger License: GPL-3.0-only diff --git a/anda/misc/tail-tray/anda.hcl b/anda/misc/tail-tray/anda.hcl new file mode 100644 index 0000000000..a317bddfb9 --- /dev/null +++ b/anda/misc/tail-tray/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "tail-tray.spec" + } +} diff --git a/anda/misc/tail-tray/tail-tray.spec b/anda/misc/tail-tray/tail-tray.spec new file mode 100644 index 0000000000..4e47a8557a --- /dev/null +++ b/anda/misc/tail-tray/tail-tray.spec @@ -0,0 +1,46 @@ +Name: tail-tray +Version: 0.2.32 +Release: 1%{?dist} +Summary: Tailscale tray menu and UI for the KDE Plasma Desktop +License: GPL-3.0-or-later +URL: https://github.com/SneWs/tail-tray +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: glib2-devel +BuildRequires: gettext +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-qttools-devel + +Requires: tailscale +Suggests: davfs2 + +Packager: Owen Zimmerman + +%description +%{summary}. + +%prep +%autosetup + +%conf +%cmake + +%build +%cmake_build + +%install +%cmake_install + +%files +%doc README.md +%license LICENSE +%{_bindir}/%{name} +%{_appsdir}/%{name}.desktop +%{_scalableiconsdir}/tail-tray-dark.svg +%{_scalableiconsdir}/tail-tray.svg + +%changelog +* Sat May 23 2026 Owen Zimmerman +- Initial commit diff --git a/anda/misc/tail-tray/update.rhai b/anda/misc/tail-tray/update.rhai new file mode 100644 index 0000000000..bcb25762b9 --- /dev/null +++ b/anda/misc/tail-tray/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("SneWs/tail-tray")); diff --git a/anda/misc/v2ray-domain-list-community/v2ray-domain-list-community.spec b/anda/misc/v2ray-domain-list-community/v2ray-domain-list-community.spec index ea4c9042a7..682a0e94db 100644 --- a/anda/misc/v2ray-domain-list-community/v2ray-domain-list-community.spec +++ b/anda/misc/v2ray-domain-list-community/v2ray-domain-list-community.spec @@ -1,7 +1,7 @@ -%global commit a18dbf7a81b6de6160c157dbc31b0eb3b8098780 +%global commit 971f4e2fb13ab9b1eb0f73dad370036b36316707 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global ver 20260519154239 -%global commit_date 20260520 +%global ver 20260531040030 +%global commit_date 20260531 Name: v2ray-domain-list-community Version: %{ver}^%{commit_date}git.%{shortcommit} diff --git a/anda/multimedia/ffmpeg/.gitignore b/anda/multimedia/ffmpeg/.gitignore new file mode 100644 index 0000000000..5505c91bc5 --- /dev/null +++ b/anda/multimedia/ffmpeg/.gitignore @@ -0,0 +1,3 @@ +# FFmpeg keys +ffmpeg-devel.asc +ffmpeg.keyring diff --git a/anda/multimedia/ffmpeg/anda.hcl b/anda/multimedia/ffmpeg/anda.hcl index 002c167e92..a6ef9db24e 100644 --- a/anda/multimedia/ffmpeg/anda.hcl +++ b/anda/multimedia/ffmpeg/anda.hcl @@ -2,7 +2,7 @@ project pkg { arches = ["x86_64", "aarch64", "i386"] rpm { spec = "ffmpeg.spec" - extra_repos = ["https://repos.fyralabs.com/terrarawhide-nvidia", "https://repos.fyralabs.com/terrarawhide-multimedia"] + extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"] } labels { updbranch = 1 diff --git a/anda/multimedia/ffmpeg/enable_decoders b/anda/multimedia/ffmpeg/enable_decoders new file mode 100644 index 0000000000..b03967c46d --- /dev/null +++ b/anda/multimedia/ffmpeg/enable_decoders @@ -0,0 +1,479 @@ +## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review) +aac +aasc +libfdk_aac # fdk-aac-free +ac3 +acelp_kelvin +adpcm_4xm +adpcm_adx +adpcm_afc +adpcm_agm +adpcm_aica +adpcm_argo +adpcm_ct +adpcm_dtk +adpcm_ea +adpcm_ea_maxis_xa +adpcm_ea_r1 +adpcm_ea_r2 +adpcm_ea_r3 +adpcm_ea_xas +adpcm_g722 +adpcm_g726 +adpcm_g726le +adpcm_ima_acorn +adpcm_ima_alp +adpcm_ima_amv +adpcm_ima_apc +adpcm_ima_apm +adpcm_ima_cunning +adpcm_ima_dat4 +adpcm_ima_dk3 +adpcm_ima_dk4 +adpcm_ima_ea_eacs +adpcm_ima_ea_sead +adpcm_ima_iss +adpcm_ima_moflex +adpcm_ima_mtf +adpcm_ima_oki +adpcm_ima_qt +adpcm_ima_rad +adpcm_ima_smjpeg +adpcm_ima_ssi +adpcm_ima_wav +adpcm_ima_ws +adpcm_ms +adpcm_mtaf +adpcm_psx +adpcm_sbpro_2 +adpcm_sbpro_3 +adpcm_sbpro_4 +adpcm_swf +adpcm_thp +adpcm_thp_le +adpcm_vima +adpcm_xa +adpcm_xmd +adpcm_yamaha +adpcm_zork +aic +alac +alias_pix +amrnb +amrwb +amv +anm +ansi # trivial +anull +apac +ape +apng # animated png +apv +arbc +argo +ass # trivial +asv1 +asv2 +atrac1 +atrac3 +atrac3al +atrac3p +atrac3pal +aura +aura2 +av1 # libaom +av1_qsv # libaom +bethsoftvid # trivial +bfi # trivial +bink +binkaudio_dct +binkaudio_rdft +bintext +bitpacked # trivial +bmp # trivial +bmv_audio +bmv_video +bonk +brender_pix +c93 +cbd2_dpcm +ccaption +cdgraphics +cdtoons +cdxl +cinepak +clearvideo +cljr +cook +cpia +cscd +cyuv +dca +dds +derf_dpcm +dfa +dfpwm +dirac # dirac +dnxhd +dnxhr +dolby_e +dpx +dsd_lsbf +dsd_msbf +dsicinaudio +dsicinvideo +dss_sp +dvaudio +dvbsub +dvdsub +dvvideo +dxa +dxtory +eacmv +eamad +eatgq +eatgv +eatqi +eightbps +eightsvx_exp +eightsvx_fib +escape124 +escape130 +evrc +exr # openEXR +ffv1 # ffmpeg +ffvhuff # ffmpeg +ffwavesynth # pseudo +fits +flac # libFLAC +flashsv +flashsv2 +flic +flv +fmvc +fourxm +ftr # fdk-aac +g723_1 +g729 +gdv +gem +gif # libpng +gremlin_dpcm +gsm # libgsm +gsm_ms +h261 +h263 +h263_v4l2m2m # hardware +h263i +h263p +hap +hca +hcom +hdr +hnm4_video +hq_hqa +hqx +huffyuv # trivial+zlib +hymt # huffyuv-mt +iac +idcin +idf +iff_ilbm +ilbc # ilbc +imc +indeo2 +indeo3 +indeo4 +indeo5 +interplay_acm +interplay_dpcm +interplay_video +ipu +jacosub +jpeg2000 # openjpeg2 +jpegls +jv +kgv1 +kmvc +lagarith +libaribb24 # aribb24 +libaribcaption # libaribcaption +libaom # libaom +libaom_av1 # libaom +libcodec2 # codec2 +libdav1d # av1 +libgsm # libgsm +libgsm_ms # libgsm +libilbc # ilbc +libjxl # libjxl +liblc3 # liblc3 +libopencore_amrnb # opencore-amr +libopencore_amrwb # opencore-amr +libopenh264 # openh264 +libopenjpeg # openjpeg +libopus # opus +librsvg # librsvg +libschroedinger # schroedinger +libspeex # speex +libvorbis # libvorbis +libvpx_vp8 # libvpx +libvpx_vp9 # libvpx +libxevd +libzvbi_teletext # zvbi +loco +lscr +m101 +mace3 +mace6 +mdec +media100 +metasound +microdvd +mimic +misc4 +mjpeg # mjpegtools +mjpeg_qsv # mjpegtools +mjpegb +mlp +mmvideo +motionpixels +movtext +mp1 # twolame/lame +mp1float # twolame/lame +mp2 # twolame +mp2float # twolame +mp3 # lame +mp3adu +mp3adufloat +mp3float # lame +mp3on4 +mp3on4float +mpc7 +mpc8 +mpeg1_v4l2m2m +mpeg1video +mpeg2_qsv +mpeg2_v4l2m2m +mpeg2video +mpeg4 +mpeg4_v4l2m2m # hardware +mpegvideo +mpl2 +msa1 +mscc +msmpeg4v1 +msmpeg4v2 +msmpeg4v3 +msnsiren +msp2 +msrle +mss1 +msvideo1 +mszh +mts2 +mv30 +mvc1 +mvc2 +mvdv +mvha +mwsc +mxpeg +nellymoser +nuv +on2avc +opus # libopus +paf_audio +paf_video +pam # trivial +pbm # trivial +pcm_alaw # trivial +pcm_bluray +pcm_dvd +pcm_f16le # trivial +pcm_f24le # trivial +pcm_f32be # trivial +pcm_f32le # trivial +pcm_f64be # trivial +pcm_f64le # trivial +pcm_lxf # trivial +pcm_mulaw # trivial +pcm_s16be # trivial +pcm_s16be_planar # trivial +pcm_s16le # trivial +pcm_s16le_planar # trivial +pcm_s24be # trivial +pcm_s24daud # trivial +pcm_s24le # trivial +pcm_s24le_planar # trivial +pcm_s32be # trivial +pcm_s32le # trivial +pcm_s32le_planar # trivial +pcm_s64be # trivial +pcm_s64le # trivial +pcm_s8 # trivial +pcm_s8_planar # trivial +pcm_sga # trivial +pcm_u16be # trivial +pcm_u16le # trivial +pcm_u24be # trivial +pcm_u24le # trivial +pcm_u32be # trivial +pcm_u32le # trivial +pcm_u8 # trivial +pcm_vidc # trivial +pcx +pfm # trivial +pgm # trivial +pgmyuv # trivial +pgssub # mkvtoolnix +pgx +phm # trivial +photocd +pictor +pjs +png # libpng +ppm # trivial +prores +prores_raw +prosumer +psd +ptx +qcelp +qdm2 +qdmc +qdraw +qoa +qoi +qpeg +qtrle +r10k +r210 +ra_144 +ra_288 +rasc +rawvideo # trivial +realtext +rka +rl2 +roq +roq_dpcm +rpza +rscc +rv10 +rv20 +s302m +sami +sanm +sbc +screenpresso +sdx2_dpcm +sgi # trivial +sgirle # trivial +shorten +simbiosis_imx +sipr +siren +smackaud +smacker +smc +smvjpeg +snow +sol_dpcm +sonic +sp5x +speedhq +speex +srgc +srt # trivial +ssa # trivial +stl +subrip +subviewer +subviewer1 +sunrast # trivial +svq1 +svq3 +tak +targa # trivial +targa_y216 +tdsc +text # trivial +theora # libtheora +thp +tiertexseqvideo +tiff # libtiff +tmv +truehd +truemotion1 +truemotion2 +truemotion2rt +truespeech +tscc +tscc2 +tta +twinvq +txd +ulti +utvideo +v210 # trivial +v210x # trivial +v308 # trivial +v408 # trivial +v410 # trivial +vb +vble +vcr1 +vmdaudio +vmdvideo +vmnc +vnull +vorbis # libvorbis +vp3 # libav +vp4 # libav +vp5 # libav +vp6 # libav +vp6a # libav +vp6f # libav +vp7 # libav +vp8 # libvpx +vp8_qsv # libvpx +vp8_v4l2m2m # libvpx +vp9 # libvpx +vp9_qsv # libvpx +vp9_v4l2m2m # libvpx +vplayer +vqa +vqc +wady_dpcm +wavarc +wavpack +wbmp +wcmv +webp # libwebp +webvtt # trivial +wmav1 +wmav2 +wmavoice +wmv1 +wmv2 +wnv1 +wrapped_avframe # passthrough +ws_snd1 +xan_dpcm +xan_wc3 +xan_wc4 +xbin +xbm # trivial +xface +xl +xpm +xsub +xwd # xwd +y41p # trivial +ylc +yop +yuv4 # trivial +zero12v +zerocodec +zlib # zlib +zmbv # dosbox diff --git a/anda/multimedia/ffmpeg/enable_encoders b/anda/multimedia/ffmpeg/enable_encoders new file mode 100644 index 0000000000..d49e1a9514 --- /dev/null +++ b/anda/multimedia/ffmpeg/enable_encoders @@ -0,0 +1,216 @@ +## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review) +a64multi +a64multi5 +aac +libfdk_aac # fdk-aac-free +ac3 +adpcm_adx +adpcm_argo +adpcm_g722 +adpcm_g726 +adpcm_g726le +adpcm_ima_alp +adpcm_ima_amv +adpcm_ima_apm +adpcm_ima_qt +adpcm_ima_ssi +adpcm_ima_wav +adpcm_ima_ws +adpcm_ms +adpcm_swf +adpcm_yamaha +alac +alias_pix +amv +anull +apng # libpng +ass # trivial +asv1 +asv2 +av1_amf +av1_nvenc +av1_qsv +av1_vaapi +bitpacked # trivial +bmp # trivial +cinepak +cljr +dca +dfpwm +dnxhd +dnxhr +dpx +dvbsub +dvdsub +dvvideo +exr +ffv1 +ffvhuff # trivial+zlib +flac # libFLAC +flashsv +flashsv2 +flv +g723_1 +gif # libpng +h261 +h263 +h263_v4l2m2m # hardware +h263p +h264_amf # hardware +h264_nvenc # hardware +h264_qsv # hardware +h264_v4l2m2m # hardware +h264_vaapi # hardware +hap +hdr +hevc_amf # hardware +hevc_nvenc # hardware +hevc_qsv # hardware +hevc_v4l2m2m # hardware +hevc_vaapi # hardware +huffyuv # trivial+zlib +ilbc # ilbc +jpeg2000 +jpegls +libaom +libaom_av1 # libaom +libcodec2 # codec2 +libgsm # libgsm +libgsm_ms # libgsm +libilbc # ilbc +libjxl # libjxl +liblc3 # liblc3 +libmp3lame # lame +liboapv +libopencore_amrnb +libopenh264 # openh264 +libopenjpeg # openjpeg +libopus # opus +librav1e # rav1e +libspeex # speex +libsvtav1 +libtheora # libtheora +libtwolame # twolame +libvo_amrwbenc +libvorbis # libvorbis +libvpx_vp8 # libvpx +libvpx_vp9 # libvpx +libwebp # libwebp +libwebp_anim # libwebp +libxeve +libxvid # xvidcore +mjpeg # mjpegtools +mjpeg_qsv # mjpegtools +mjpeg_vaapi # mjpegtools +mlp +movtext +mp2 # twolame +mp2fixed # twolame +mpeg1video +mpeg2_qsv +mpeg2_vaapi +mpeg2video +mpeg4 +mpeg4_v4l2m2m # hardware +msmpeg4v2 +msmpeg4v3 +msvideo1 +nellymoser +opus # opus +pam +pbm # trivial +pcm_alaw # trivial +pcm_f32be # trivial +pcm_f32le # trivial +pcm_f64be # trivial +pcm_f64le # trivial +pcm_mulaw # trivial +pcm_s16be # trivial +pcm_s16be_planar # trivial +pcm_s16le # trivial +pcm_s16le_planar # trivial +pcm_s24be # trivial +pcm_s24le # trivial +pcm_s24le_planar # trivial +pcm_s32be # trivial +pcm_s32le # trivial +pcm_s32le_planar # trivial +pcm_s8 # trivial +pcm_s8_planar # trivial +pcm_u16be # trivial +pcm_u16le # trivial +pcm_u24be # trivial +pcm_u24le # trivial +pcm_u32be # trivial +pcm_u32le # trivial +pcm_u8 # trivial +pcx +pgm # trivial +pgmyuv # trivial +phm # trivial +png # libpng +ppm # trivial +prores +prores_aw +prores_ks +qoi +qtrle +r10k # trivial +r210 # trivial +ra_144 +rawvideo # trivial +roq +roq_dpcm +rpza +rv10 +rv20 +s302m +sbc +sgi # trivial +smc +snow +sonic +sonic_ls +speedhq +srt # trivial +ssa # trivial +subrip # trivial +sunrast # trivial +svq1 +targa # trivial +text # trivial +tiff # libtiff +truehd +tta +ttml +utvideo +v210 # trivial +v308 # trivial +v408 # trivial +v410 # trivial +vc1_qsv # hardware +vc1_v4l2m2m # hardware +vc2 # dirac +vnull +vorbis # libvorbis +vp8_qsv # libvpx +vp8_v4l2m2m # libvpx +vp8_vaapi # libvpx +vp9_qsv # libvpx +vp9_vaapi # libvpx +wavpack +wbmp +webvtt # trivial +wmav1 +wmav2 +wmv1 +wmv2 +wrapped_avframe # passthrough +xbm # (X11) +xface +xsub +xwd # xwd +y41p # trivial +yuv4 # trivial +zlib # zlib +zmbv # dosbox diff --git a/anda/multimedia/ffmpeg/ffmpeg-HandBrake.patch b/anda/multimedia/ffmpeg/ffmpeg-HandBrake.patch index e34c256b10..40eaff17d7 100644 --- a/anda/multimedia/ffmpeg/ffmpeg-HandBrake.patch +++ b/anda/multimedia/ffmpeg/ffmpeg-HandBrake.patch @@ -1,878 +1,65 @@ -diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure ---- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:02.407490033 +0100 -+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:02.458434476 +0100 -@@ -2466,6 +2466,7 @@ - kCMVideoCodecType_HEVC - kCMVideoCodecType_HEVCWithAlpha - kCMVideoCodecType_VP9 -+ kCMVideoCodecType_AV1 - kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange - kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange - kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange -@@ -3172,6 +3173,8 @@ - av1_vaapi_hwaccel_select="av1_decoder" - av1_vdpau_hwaccel_deps="vdpau VdpPictureInfoAV1" - av1_vdpau_hwaccel_select="av1_decoder" -+av1_videotoolbox_hwaccel_deps="videotoolbox" -+av1_videotoolbox_hwaccel_select="av1_decoder" - av1_vulkan_hwaccel_deps="vulkan" - av1_vulkan_hwaccel_select="av1_decoder" - h263_vaapi_hwaccel_deps="vaapi" -@@ -3342,6 +3345,7 @@ - av1_mediacodec_decoder_deps="mediacodec" - av1_mediacodec_encoder_deps="mediacodec" - av1_mediacodec_encoder_select="extract_extradata_bsf" -+av1_mf_encoder_deps="mediafoundation" - av1_nvenc_encoder_deps="nvenc NV_ENC_PIC_PARAMS_AV1" - av1_nvenc_encoder_select="atsc_a53" - av1_qsv_decoder_select="qsvdec" -@@ -6724,6 +6728,7 @@ - check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVC "-framework CoreMedia" - check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVCWithAlpha "-framework CoreMedia" - check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_VP9 "-framework CoreMedia" -+ check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_AV1 "-framework CoreMedia" - check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange "-framework CoreVideo" - check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange "-framework CoreVideo" - check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange "-framework CoreVideo" -diff -Naur ffmpeg-7.1.2.old/libavcodec/ac3dec.c ffmpeg-7.1.2/libavcodec/ac3dec.c ---- ffmpeg-7.1.2.old/libavcodec/ac3dec.c 2025-10-27 10:07:00.254471036 +0100 -+++ ffmpeg-7.1.2/libavcodec/ac3dec.c 2025-10-27 10:07:02.463169316 +0100 -@@ -253,72 +253,6 @@ - } - - /** -- * Parse the 'sync info' and 'bit stream info' from the AC-3 bitstream. -- * GetBitContext within AC3DecodeContext must point to -- * the start of the synchronized AC-3 bitstream. -- */ --static int ac3_parse_header(AC3DecodeContext *s) --{ -- GetBitContext *gbc = &s->gbc; -- int i; -- -- /* read the rest of the bsi. read twice for dual mono mode. */ -- i = !s->channel_mode; -- do { -- s->dialog_normalization[(!s->channel_mode)-i] = -get_bits(gbc, 5); -- if (s->dialog_normalization[(!s->channel_mode)-i] == 0) { -- s->dialog_normalization[(!s->channel_mode)-i] = -31; -- } -- if (s->target_level != 0) { -- s->level_gain[(!s->channel_mode)-i] = powf(2.0f, -- (float)(s->target_level - -- s->dialog_normalization[(!s->channel_mode)-i])/6.0f); -- } -- if (s->compression_exists[(!s->channel_mode)-i] = get_bits1(gbc)) { -- s->heavy_dynamic_range[(!s->channel_mode)-i] = -- AC3_HEAVY_RANGE(get_bits(gbc, 8)); -- } -- if (get_bits1(gbc)) -- skip_bits(gbc, 8); //skip language code -- if (get_bits1(gbc)) -- skip_bits(gbc, 7); //skip audio production information -- } while (i--); -- -- skip_bits(gbc, 2); //skip copyright bit and original bitstream bit -- -- /* skip the timecodes or parse the Alternate Bit Stream Syntax */ -- if (s->bitstream_id != 6) { -- if (get_bits1(gbc)) -- skip_bits(gbc, 14); //skip timecode1 -- if (get_bits1(gbc)) -- skip_bits(gbc, 14); //skip timecode2 -- } else { -- if (get_bits1(gbc)) { -- s->preferred_downmix = get_bits(gbc, 2); -- s->center_mix_level_ltrt = get_bits(gbc, 3); -- s->surround_mix_level_ltrt = av_clip(get_bits(gbc, 3), 3, 7); -- s->center_mix_level = get_bits(gbc, 3); -- s->surround_mix_level = av_clip(get_bits(gbc, 3), 3, 7); -- } -- if (get_bits1(gbc)) { -- s->dolby_surround_ex_mode = get_bits(gbc, 2); -- s->dolby_headphone_mode = get_bits(gbc, 2); -- skip_bits(gbc, 10); // skip adconvtyp (1), xbsi2 (8), encinfo (1) -- } -- } -- -- /* skip additional bitstream info */ -- if (get_bits1(gbc)) { -- i = get_bits(gbc, 6); -- do { -- skip_bits(gbc, 8); -- } while (i--); -- } -- -- return 0; --} -- --/** - * Common function to parse AC-3 or E-AC-3 frame header - */ - static int parse_frame_header(AC3DecodeContext *s) -@@ -375,10 +309,25 @@ - s->dba_syntax = 1; - s->skip_syntax = 1; - memset(s->channel_uses_aht, 0, sizeof(s->channel_uses_aht)); -- return ac3_parse_header(s); -+ /* volume control params */ -+ for (int i = 0; i < (s->channel_mode ? 1 : 2); i++) { -+ s->dialog_normalization[i] = hdr.dialog_normalization[i]; -+ if (s->dialog_normalization[i] == 0) { -+ s->dialog_normalization[i] = -31; -+ } -+ if (s->target_level != 0) { -+ s->level_gain[i] = powf(2.0f, -+ (float)(s->target_level - s->dialog_normalization[i])/6.0f); -+ } -+ s->compression_exists[i] = hdr.compression_exists[i]; -+ if (s->compression_exists[i]) { -+ s->heavy_dynamic_range[i] = AC3_HEAVY_RANGE(hdr.heavy_dynamic_range[i]); -+ } -+ } -+ return 0; - } else if (CONFIG_EAC3_DECODER) { - s->eac3 = 1; -- return ff_eac3_parse_header(s); -+ return ff_eac3_parse_header(s, &hdr); - } else { - av_log(s->avctx, AV_LOG_ERROR, "E-AC-3 support not compiled in\n"); - return AVERROR(ENOSYS); -@@ -1562,6 +1511,9 @@ - av_log(avctx, AV_LOG_ERROR, "invalid frame type\n"); - } - break; -+ case AC3_PARSE_ERROR_CHANNEL_MAP: -+ av_log(avctx, AV_LOG_ERROR, "invalid channel map\n"); -+ return AVERROR_INVALIDDATA; - case AC3_PARSE_ERROR_CRC: - break; - default: // Normal AVERROR do not try to recover. -diff -Naur ffmpeg-7.1.2.old/libavcodec/ac3dec.h ffmpeg-7.1.2/libavcodec/ac3dec.h ---- ffmpeg-7.1.2.old/libavcodec/ac3dec.h 2025-10-27 10:07:00.587473974 +0100 -+++ ffmpeg-7.1.2/libavcodec/ac3dec.h 2025-10-27 10:07:02.463287298 +0100 -@@ -255,11 +255,12 @@ - AVChannelLayout downmix_layout; - } AC3DecodeContext; - -+struct AC3HeaderInfo; - /** - * Parse the E-AC-3 frame header. - * This parses both the bit stream info and audio frame header. - */ --static int ff_eac3_parse_header(AC3DecodeContext *s); -+static int ff_eac3_parse_header(AC3DecodeContext *s, const struct AC3HeaderInfo *hdr); - - /** - * Decode mantissas in a single channel for the entire frame. -diff -Naur ffmpeg-7.1.2.old/libavcodec/ac3defs.h ffmpeg-7.1.2/libavcodec/ac3defs.h ---- ffmpeg-7.1.2.old/libavcodec/ac3defs.h 2025-10-27 10:07:00.586473965 +0100 -+++ ffmpeg-7.1.2/libavcodec/ac3defs.h 2025-10-27 10:07:02.463340118 +0100 -@@ -34,6 +34,8 @@ - #define AC3_CRITICAL_BANDS 50 - #define AC3_MAX_CPL_BANDS 18 - -+#define EAC3_SR_CODE_REDUCED 3 -+ - /* exponent encoding strategy */ - #define EXP_REUSE 0 - #define EXP_NEW 1 -diff -Naur ffmpeg-7.1.2.old/libavcodec/ac3_parser.c ffmpeg-7.1.2/libavcodec/ac3_parser.c ---- ffmpeg-7.1.2.old/libavcodec/ac3_parser.c 2025-10-27 10:07:00.290471354 +0100 -+++ ffmpeg-7.1.2/libavcodec/ac3_parser.c 2025-10-27 10:07:02.462962336 +0100 -@@ -73,6 +73,217 @@ - return i; - } - -+/** -+ * Parse the 'sync info' and 'bit stream info' from the AC-3 bitstream. -+ * GetBitContext within AC3DecodeContext must point to -+ * the start of the synchronized AC-3 bitstream. -+ */ -+static int ac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr) -+{ -+ /* read the rest of the bsi. read twice for dual mono mode. */ -+ for (int i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { -+ hdr->dialog_normalization[i] = -get_bits(gbc, 5); -+ hdr->compression_exists[i] = get_bits1(gbc); -+ if (hdr->compression_exists[i]) -+ hdr->heavy_dynamic_range[i] = get_bits(gbc, 8); -+ if (get_bits1(gbc)) -+ skip_bits(gbc, 8); //skip language code -+ if (get_bits1(gbc)) -+ skip_bits(gbc, 7); //skip audio production information -+ } -+ -+ skip_bits(gbc, 2); //skip copyright bit and original bitstream bit -+ -+ /* skip the timecodes or parse the Alternate Bit Stream Syntax */ -+ if (hdr->bitstream_id != 6) { -+ if (get_bits1(gbc)) -+ skip_bits(gbc, 14); //skip timecode1 -+ if (get_bits1(gbc)) -+ skip_bits(gbc, 14); //skip timecode2 -+ } else { -+ if (get_bits1(gbc)) { -+ hdr->preferred_downmix = get_bits(gbc, 2); -+ hdr->center_mix_level_ltrt = get_bits(gbc, 3); -+ hdr->surround_mix_level_ltrt = av_clip(get_bits(gbc, 3), 3, 7); -+ hdr->center_mix_level = get_bits(gbc, 3); -+ hdr->surround_mix_level = av_clip(get_bits(gbc, 3), 3, 7); -+ } -+ if (get_bits1(gbc)) { -+ hdr->dolby_surround_ex_mode = get_bits(gbc, 2); -+ hdr->dolby_headphone_mode = get_bits(gbc, 2); -+ skip_bits(gbc, 10); // skip adconvtyp (1), xbsi2 (8), encinfo (1) -+ } -+ } -+ -+ /* skip additional bitstream info */ -+ if (get_bits1(gbc)) { -+ int i = get_bits(gbc, 6); -+ do { -+ skip_bits(gbc, 8); -+ } while (i--); -+ } -+ -+ return 0; -+} -+ -+static int eac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr) -+{ -+ if (hdr->frame_type == EAC3_FRAME_TYPE_RESERVED) -+ return AC3_PARSE_ERROR_FRAME_TYPE; -+ if (hdr->substreamid) -+ return AC3_PARSE_ERROR_FRAME_TYPE; -+ -+ skip_bits(gbc, 5); // skip bitstream id -+ -+ /* volume control params */ -+ for (int i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { -+ hdr->dialog_normalization[i] = -get_bits(gbc, 5); -+ hdr->compression_exists[i] = get_bits1(gbc); -+ if (hdr->compression_exists[i]) -+ hdr->heavy_dynamic_range[i] = get_bits(gbc, 8); -+ } -+ -+ /* dependent stream channel map */ -+ if (hdr->frame_type == EAC3_FRAME_TYPE_DEPENDENT) { -+ hdr->channel_map_present = get_bits1(gbc); -+ if (hdr->channel_map_present) { -+ int64_t channel_layout = 0; -+ int channel_map = get_bits(gbc, 16); -+ -+ for (int i = 0; i < 16; i++) -+ if (channel_map & (1 << (EAC3_MAX_CHANNELS - i - 1))) -+ channel_layout |= ff_eac3_custom_channel_map_locations[i][1]; -+ -+ if (av_popcount64(channel_layout) > EAC3_MAX_CHANNELS) { -+ return AC3_PARSE_ERROR_CHANNEL_MAP; -+ } -+ hdr->channel_map = channel_map; -+ } -+ } -+ -+ /* mixing metadata */ -+ if (get_bits1(gbc)) { -+ /* center and surround mix levels */ -+ if (hdr->channel_mode > AC3_CHMODE_STEREO) { -+ hdr->preferred_downmix = get_bits(gbc, 2); -+ if (hdr->channel_mode & 1) { -+ /* if three front channels exist */ -+ hdr->center_mix_level_ltrt = get_bits(gbc, 3); -+ hdr->center_mix_level = get_bits(gbc, 3); -+ } -+ if (hdr->channel_mode & 4) { -+ /* if a surround channel exists */ -+ hdr->surround_mix_level_ltrt = av_clip(get_bits(gbc, 3), 3, 7); -+ hdr->surround_mix_level = av_clip(get_bits(gbc, 3), 3, 7); -+ } -+ } -+ -+ /* lfe mix level */ -+ if (hdr->lfe_on && (hdr->lfe_mix_level_exists = get_bits1(gbc))) { -+ hdr->lfe_mix_level = get_bits(gbc, 5); -+ } -+ -+ /* info for mixing with other streams and substreams */ -+ if (hdr->frame_type == EAC3_FRAME_TYPE_INDEPENDENT) { -+ for (int i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { -+ // TODO: apply program scale factor -+ if (get_bits1(gbc)) { -+ skip_bits(gbc, 6); // skip program scale factor -+ } -+ } -+ if (get_bits1(gbc)) { -+ skip_bits(gbc, 6); // skip external program scale factor -+ } -+ /* skip mixing parameter data */ -+ switch(get_bits(gbc, 2)) { -+ case 1: skip_bits(gbc, 5); break; -+ case 2: skip_bits(gbc, 12); break; -+ case 3: { -+ int mix_data_size = (get_bits(gbc, 5) + 2) << 3; -+ skip_bits_long(gbc, mix_data_size); -+ break; -+ } -+ } -+ /* skip pan information for mono or dual mono source */ -+ if (hdr->channel_mode < AC3_CHMODE_STEREO) { -+ for (int i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { -+ if (get_bits1(gbc)) { -+ /* note: this is not in the ATSC A/52B specification -+ reference: ETSI TS 102 366 V1.1.1 -+ section: E.1.3.1.25 */ -+ skip_bits(gbc, 8); // skip pan mean direction index -+ skip_bits(gbc, 6); // skip reserved paninfo bits -+ } -+ } -+ } -+ /* skip mixing configuration information */ -+ if (get_bits1(gbc)) { -+ for (int i = 0; i < hdr->num_blocks; i++) { -+ if (hdr->num_blocks == 1 || get_bits1(gbc)) { -+ skip_bits(gbc, 5); -+ } -+ } -+ } -+ } -+ } -+ -+ /* informational metadata */ -+ if (get_bits1(gbc)) { -+ hdr->bitstream_mode = get_bits(gbc, 3); -+ skip_bits(gbc, 2); // skip copyright bit and original bitstream bit -+ if (hdr->channel_mode == AC3_CHMODE_STEREO) { -+ hdr->dolby_surround_mode = get_bits(gbc, 2); -+ hdr->dolby_headphone_mode = get_bits(gbc, 2); -+ } -+ if (hdr->channel_mode >= AC3_CHMODE_2F2R) { -+ hdr->dolby_surround_ex_mode = get_bits(gbc, 2); -+ } -+ for (int i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { -+ if (get_bits1(gbc)) { -+ skip_bits(gbc, 8); // skip mix level, room type, and A/D converter type -+ } -+ } -+ if (hdr->sr_code != EAC3_SR_CODE_REDUCED) { -+ skip_bits1(gbc); // skip source sample rate code -+ } -+ } -+ -+ /* converter synchronization flag -+ If frames are less than six blocks, this bit should be turned on -+ once every 6 blocks to indicate the start of a frame set. -+ reference: RFC 4598, Section 2.1.3 Frame Sets */ -+ if (hdr->frame_type == EAC3_FRAME_TYPE_INDEPENDENT && hdr->num_blocks != 6) { -+ skip_bits1(gbc); // skip converter synchronization flag -+ } -+ -+ /* original frame size code if this stream was converted from AC-3 */ -+ if (hdr->frame_type == EAC3_FRAME_TYPE_AC3_CONVERT && -+ (hdr->num_blocks == 6 || get_bits1(gbc))) { -+ skip_bits(gbc, 6); // skip frame size code -+ } -+ -+ /* additional bitstream info */ -+ if (get_bits1(gbc)) { -+ int addbsil = get_bits(gbc, 6); -+ for (int i = 0; i < addbsil + 1; i++) { -+ if (i == 0) { -+ /* In this 8 bit chunk, the LSB is equal to flag_ec3_extension_type_a -+ which can be used to detect Atmos presence */ -+ skip_bits(gbc, 7); -+ hdr->eac3_extension_type_a = get_bits1(gbc); -+ if (hdr->eac3_extension_type_a) { -+ hdr->complexity_index_type_a = get_bits(gbc, 8); -+ i++; -+ } -+ } else { -+ skip_bits(gbc, 8); // skip additional bit stream info -+ } -+ } -+ } -+ -+ return 0; -+} -+ - int ff_ac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr) - { - int frame_size_code; -@@ -133,6 +344,10 @@ - hdr->frame_size = ff_ac3_frame_size_tab[frame_size_code][hdr->sr_code] * 2; - hdr->frame_type = EAC3_FRAME_TYPE_AC3_CONVERT; //EAC3_FRAME_TYPE_INDEPENDENT; - hdr->substreamid = 0; -+ -+ int ret = ac3_parse_header(gbc, hdr); -+ if (ret < 0) -+ return ret; - } else { - /* Enhanced AC-3 */ - hdr->crc1 = 0; -@@ -165,6 +380,10 @@ - hdr->bit_rate = 8LL * hdr->frame_size * hdr->sample_rate / - (hdr->num_blocks * 256); - hdr->channels = ff_ac3_channels_tab[hdr->channel_mode] + hdr->lfe_on; -+ -+ int ret = eac3_parse_header(gbc, hdr); -+ if (ret < 0) -+ return ret; - } - hdr->channel_layout = ff_ac3_channel_layout_tab[hdr->channel_mode]; - if (hdr->lfe_on) -@@ -202,9 +421,13 @@ - { - GetBitContext gb; - AC3HeaderInfo hdr; -+ uint8_t tmp[32 + AV_INPUT_BUFFER_PADDING_SIZE]; - int err; - -- err = init_get_bits8(&gb, buf, size); -+ size = FFMIN(32, size); -+ memcpy(tmp, buf, size); -+ memset(tmp + size, 0, AV_INPUT_BUFFER_PADDING_SIZE); -+ err = init_get_bits8(&gb, tmp, size); - if (err < 0) - return AVERROR_INVALIDDATA; - err = ff_ac3_parse_header(&gb, &hdr); -diff -Naur ffmpeg-7.1.2.old/libavcodec/ac3_parser_internal.h ffmpeg-7.1.2/libavcodec/ac3_parser_internal.h ---- ffmpeg-7.1.2.old/libavcodec/ac3_parser_internal.h 2025-10-27 10:07:00.519473374 +0100 -+++ ffmpeg-7.1.2/libavcodec/ac3_parser_internal.h 2025-10-27 10:07:02.463059088 +0100 -@@ -46,6 +46,7 @@ - int substreamid; ///< substream identification - int center_mix_level; ///< Center mix level index - int surround_mix_level; ///< Surround mix level index -+ uint8_t channel_map_present; - uint16_t channel_map; - int num_blocks; ///< number of audio blocks - int dolby_surround_mode; -@@ -62,6 +63,23 @@ - uint64_t channel_layout; - int8_t ac3_bit_rate_code; - /** @} */ -+ -+ /** @name enhanced eac3 extension coded elements -+ * @{ -+ */ -+ int8_t dialog_normalization[2]; -+ uint8_t compression_exists[2]; -+ uint8_t heavy_dynamic_range[2]; -+ uint8_t center_mix_level_ltrt; ///< Center mix level index -+ uint8_t surround_mix_level_ltrt; ///< Surround mix level index -+ uint8_t dolby_headphone_mode; -+ uint8_t dolby_surround_ex_mode; -+ uint8_t lfe_mix_level_exists; -+ uint8_t lfe_mix_level; -+ uint8_t preferred_downmix; -+ uint8_t eac3_extension_type_a; -+ uint8_t complexity_index_type_a; -+ /** @} */ - } AC3HeaderInfo; - - typedef enum { -@@ -71,6 +89,7 @@ - AC3_PARSE_ERROR_FRAME_SIZE = -0x4030c0a, - AC3_PARSE_ERROR_FRAME_TYPE = -0x5030c0a, - AC3_PARSE_ERROR_CRC = -0x6030c0a, -+ AC3_PARSE_ERROR_CHANNEL_MAP = -0x7030c0a, - } AC3ParseError; - - /** -diff -Naur ffmpeg-7.1.2.old/libavcodec/allcodecs.c ffmpeg-7.1.2/libavcodec/allcodecs.c ---- ffmpeg-7.1.2.old/libavcodec/allcodecs.c 2025-10-27 10:07:01.864539025 +0100 -+++ ffmpeg-7.1.2/libavcodec/allcodecs.c 2025-10-27 10:07:02.458796899 +0100 -@@ -839,6 +839,7 @@ - extern const FFCodec ff_av1_qsv_decoder; - extern const FFCodec ff_av1_qsv_encoder; - extern const FFCodec ff_av1_amf_encoder; -+extern const FFCodec ff_av1_mf_encoder; - extern const FFCodec ff_av1_vaapi_encoder; - extern const FFCodec ff_libopenh264_encoder; - extern const FFCodec ff_libopenh264_decoder; -diff -Naur ffmpeg-7.1.2.old/libavcodec/amfenc_av1.c ffmpeg-7.1.2/libavcodec/amfenc_av1.c ---- ffmpeg-7.1.2.old/libavcodec/amfenc_av1.c 2025-10-27 10:07:00.536473524 +0100 -+++ ffmpeg-7.1.2/libavcodec/amfenc_av1.c 2025-10-27 10:07:02.440481173 +0100 -@@ -116,6 +116,7 @@ - { "none", "no adaptive quantization", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_AQ_MODE_NONE }, 0, 0, VE, .unit = "adaptive_quantisation_mode" }, - { "caq", "context adaptive quantization", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_AQ_MODE_CAQ }, 0, 0, VE, .unit = "adaptive_quantisation_mode" }, - -+ { "forced_idr", "Force I frames to be IDR frames", OFFSET(forced_idr), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, - - { "align", "alignment mode", OFFSET(align), AV_OPT_TYPE_INT, {.i64 = AMF_VIDEO_ENCODER_AV1_ALIGNMENT_MODE_NO_RESTRICTIONS }, AMF_VIDEO_ENCODER_AV1_ALIGNMENT_MODE_64X16_ONLY, AMF_VIDEO_ENCODER_AV1_ALIGNMENT_MODE_NO_RESTRICTIONS, VE, .unit = "align" }, - { "64x16", "", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_ALIGNMENT_MODE_64X16_ONLY }, 0, 0, VE, .unit = "align" }, -@@ -186,6 +187,8 @@ - AMFRate framerate; - AMFSize framesize = AMFConstructSize(avctx->width, avctx->height); - amf_int64 color_depth; -+ amf_int64 color_primaries; -+ amf_int64 transfer_characteristic; - amf_int64 color_profile; - enum AVPixelFormat pix_fmt; - -@@ -238,7 +241,11 @@ - } - - /// Color profile -+ color_primaries = ff_amf_get_color_primaries(avctx); -+ transfer_characteristic = ff_amf_get_transfer_characteristic(avctx); - color_profile = ff_amf_get_color_profile(avctx); -+ AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PRIMARIES, color_primaries); -+ AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_TRANSFER_CHARACTERISTIC, transfer_characteristic); - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PROFILE, color_profile); - - /// Color Depth -@@ -250,16 +257,6 @@ - } - - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_COLOR_BIT_DEPTH, color_depth); -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PROFILE, color_profile); -- if (color_depth == AMF_COLOR_BIT_DEPTH_8) { -- /// Color Transfer Characteristics (AMF matches ISO/IEC) -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_TRANSFER_CHARACTERISTIC, AMF_COLOR_TRANSFER_CHARACTERISTIC_BT709); -- /// Color Primaries (AMF matches ISO/IEC) -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PRIMARIES, AMF_COLOR_PRIMARIES_BT709); -- } else { -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_TRANSFER_CHARACTERISTIC, AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE2084); -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PRIMARIES, AMF_COLOR_PRIMARIES_BT2020); -- } - - profile_level = avctx->level; - if (profile_level == AV_LEVEL_UNKNOWN) { -diff -Naur ffmpeg-7.1.2.old/libavcodec/amfenc.c ffmpeg-7.1.2/libavcodec/amfenc.c ---- ffmpeg-7.1.2.old/libavcodec/amfenc.c 2025-10-27 10:07:00.387472209 +0100 -+++ ffmpeg-7.1.2/libavcodec/amfenc.c 2025-10-27 10:07:02.445244447 +0100 -@@ -415,10 +415,6 @@ +From 21520e59d165b9f614d312db4114053d06d04750 Mon Sep 17 00:00:00 2001 +From: Terra Packaging Team +Date: Sun, 31 May 2026 03:05:02 -0500 +Subject: [PATCH] Patch for HandBrake + +Patch based off a very similar patch by Negativo17 but formatted as a Git patch. + +See: https://github.com/HandBrake/HandBrake/tree/2f464fcf93d411ebdd969b39d67739ed658c5e58 +--- + libavcodec/amfenc.c | 4 - + libavcodec/av1dec.c | 14 + + libavcodec/ccaption_dec.c | 9 +- + libavcodec/dvdsubdec.c | 42 ++- + libavcodec/libdav1d.c | 14 + + libavcodec/mfenc.c | 13 +- + libavcodec/nvenc.c | 4 +- + libavcodec/pgssubdec.c | 554 ++++++++++++++++++----------- + libavcodec/qsvenc.c | 49 +++ + libavcodec/qsvenc.h | 8 +- + libavcodec/qsvenc_av1.c | 4 + + libavcodec/videotoolbox.c | 22 +- + libavfilter/vf_vpp_qsv.c | 6 +- + libavformat/isom.h | 3 + + libavformat/matroskaenc.c | 10 + + libavformat/mov.c | 204 ++++++++++- + libavformat/movenc.c | 231 +++++++++--- + libavutil/frame.h | 6 + + libavutil/hwcontext_d3d11va.c | 45 ++- + libavutil/hwcontext_videotoolbox.c | 12 +- + libavutil/side_data.c | 1 + + 21 files changed, 963 insertions(+), 292 deletions(-) + +diff --git a/libavcodec/amfenc.c b/libavcodec/amfenc.c +index 329ce29..86fa5ec 100644 +--- a/libavcodec/amfenc.c ++++ b/libavcodec/amfenc.c +@@ -173,10 +173,6 @@ static int amf_init_encoder(AVCodecContext *avctx) else pix_fmt = avctx->pix_fmt; - if (pix_fmt == AV_PIX_FMT_P010) { -- AMF_RETURN_IF_FALSE(ctx, ctx->version >= AMF_MAKE_FULL_VERSION(1, 4, 32, 0), AVERROR_UNKNOWN, "10-bit encoder is not supported by AMD GPU drivers versions lower than 23.30.\n"); +- AMF_RETURN_IF_FALSE(ctx, amf_device_ctx->version >= AMF_MAKE_FULL_VERSION(1, 4, 32, 0), AVERROR_UNKNOWN, "10-bit encoder is not supported by AMD GPU drivers versions lower than 23.30.\n"); - } - - ctx->format = amf_av_to_amf_format(pix_fmt); + ctx->format = av_av_to_amf_format(pix_fmt); AMF_RETURN_IF_FALSE(ctx, ctx->format != AMF_SURFACE_UNKNOWN, AVERROR(EINVAL), "Format %s is not supported\n", av_get_pix_fmt_name(pix_fmt)); -@@ -766,11 +762,50 @@ - switch (avctx->codec->id) { - case AV_CODEC_ID_H264: - AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_INSERT_AUD, !!ctx->aud); -+ switch (frame->pict_type) { -+ case AV_PICTURE_TYPE_I: -+ if (ctx->forced_idr) { -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_INSERT_SPS, 1); -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_INSERT_PPS, 1); -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_FORCE_PICTURE_TYPE, AMF_VIDEO_ENCODER_PICTURE_TYPE_IDR); -+ } else { -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_FORCE_PICTURE_TYPE, AMF_VIDEO_ENCODER_PICTURE_TYPE_I); -+ } -+ break; -+ case AV_PICTURE_TYPE_P: -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_FORCE_PICTURE_TYPE, AMF_VIDEO_ENCODER_PICTURE_TYPE_P); -+ break; -+ case AV_PICTURE_TYPE_B: -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_FORCE_PICTURE_TYPE, AMF_VIDEO_ENCODER_PICTURE_TYPE_B); -+ break; -+ } - break; - case AV_CODEC_ID_HEVC: - AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_HEVC_INSERT_AUD, !!ctx->aud); -+ switch (frame->pict_type) { -+ case AV_PICTURE_TYPE_I: -+ if (ctx->forced_idr) { -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_HEVC_INSERT_HEADER, 1); -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_HEVC_FORCE_PICTURE_TYPE, AMF_VIDEO_ENCODER_HEVC_PICTURE_TYPE_IDR); -+ } else { -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_HEVC_FORCE_PICTURE_TYPE, AMF_VIDEO_ENCODER_HEVC_PICTURE_TYPE_I); -+ } -+ break; -+ case AV_PICTURE_TYPE_P: -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_HEVC_FORCE_PICTURE_TYPE, AMF_VIDEO_ENCODER_HEVC_PICTURE_TYPE_P); -+ break; -+ } -+ break; -+ case AV_CODEC_ID_AV1: -+ if (frame->pict_type == AV_PICTURE_TYPE_I) { -+ if (ctx->forced_idr) { -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_AV1_FORCE_INSERT_SEQUENCE_HEADER, 1); -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_AV1_FORCE_FRAME_TYPE, AMF_VIDEO_ENCODER_AV1_FORCE_FRAME_TYPE_KEY); -+ } else { -+ AMF_ASSIGN_PROPERTY_INT64(res, surface, AMF_VIDEO_ENCODER_AV1_FORCE_FRAME_TYPE, AMF_VIDEO_ENCODER_AV1_FORCE_FRAME_TYPE_INTRA_ONLY); -+ } -+ } - break; -- //case AV_CODEC_ID_AV1 not supported - default: - break; - } -@@ -878,6 +913,115 @@ - return ret; - } - -+int ff_amf_get_color_primaries(AVCodecContext *avctx) -+{ -+ amf_int64 color_primaries = AMF_COLOR_PRIMARIES_UNDEFINED; -+ switch (avctx->color_primaries) { -+ case AVCOL_PRI_BT709: -+ color_primaries = AMF_COLOR_PRIMARIES_BT709; -+ break; -+ case AVCOL_PRI_UNSPECIFIED: -+ color_primaries = AMF_COLOR_PRIMARIES_UNSPECIFIED; -+ break; -+ case AVCOL_PRI_RESERVED: -+ color_primaries = AMF_COLOR_PRIMARIES_RESERVED; -+ break; -+ case AVCOL_PRI_BT470M: -+ color_primaries = AMF_COLOR_PRIMARIES_BT470M; -+ break; -+ case AVCOL_PRI_BT470BG: -+ color_primaries = AMF_COLOR_PRIMARIES_BT470BG; -+ break; -+ case AVCOL_PRI_SMPTE170M: -+ color_primaries = AMF_COLOR_PRIMARIES_SMPTE170M; -+ break; -+ case AVCOL_PRI_SMPTE240M: -+ color_primaries = AMF_COLOR_PRIMARIES_SMPTE240M; -+ break; -+ case AVCOL_PRI_FILM: -+ color_primaries = AMF_COLOR_PRIMARIES_FILM; -+ break; -+ case AVCOL_PRI_BT2020: -+ color_primaries = AMF_COLOR_PRIMARIES_BT2020; -+ break; -+ case AVCOL_PRI_SMPTE428: -+ color_primaries = AMF_COLOR_PRIMARIES_SMPTE428; -+ break; -+ case AVCOL_PRI_SMPTE431: -+ color_primaries = AMF_COLOR_PRIMARIES_SMPTE431; -+ break; -+ case AVCOL_PRI_SMPTE432: -+ color_primaries = AMF_COLOR_PRIMARIES_SMPTE432; -+ break; -+ case AVCOL_PRI_EBU3213: -+ color_primaries = AMF_COLOR_PRIMARIES_JEDEC_P22; -+ break; -+ } -+ return color_primaries; -+} -+ -+int ff_amf_get_transfer_characteristic(AVCodecContext *avctx) -+{ -+ amf_int64 transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_UNDEFINED; -+ switch (avctx->color_trc) { -+ case AVCOL_TRC_BT709: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_BT709; -+ break; -+ case AVCOL_TRC_UNSPECIFIED: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_UNSPECIFIED; -+ break; -+ case AVCOL_TRC_RESERVED: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_RESERVED; -+ break; -+ case AVCOL_TRC_GAMMA22: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_GAMMA22; -+ break; -+ case AVCOL_TRC_GAMMA28: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_GAMMA28; -+ break; -+ case AVCOL_TRC_SMPTE170M: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE170M; -+ break; -+ case AVCOL_TRC_SMPTE240M: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE240M; -+ break; -+ case AVCOL_TRC_LINEAR: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_LINEAR; -+ break; -+ case AVCOL_TRC_LOG: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_LOG; -+ break; -+ case AVCOL_TRC_LOG_SQRT: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_LOG_SQRT; -+ break; -+ case AVCOL_TRC_IEC61966_2_4: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_IEC61966_2_4; -+ break; -+ case AVCOL_TRC_BT1361_ECG: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_BT1361_ECG; -+ break; -+ case AVCOL_TRC_IEC61966_2_1: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_IEC61966_2_1; -+ break; -+ case AVCOL_TRC_BT2020_10: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_BT2020_10; -+ break; -+ case AVCOL_TRC_BT2020_12: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_BT2020_12; -+ break; -+ case AVCOL_TRC_SMPTE2084: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE2084; -+ break; -+ case AVCOL_TRC_SMPTE428: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE428; -+ break; -+ case AVCOL_TRC_ARIB_STD_B67: -+ transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_ARIB_STD_B67; -+ break; -+ } -+ return transfer_characteristic; -+} -+ - int ff_amf_get_color_profile(AVCodecContext *avctx) - { - amf_int64 color_profile = AMF_VIDEO_CONVERTER_COLOR_PROFILE_UNKNOWN; -diff -Naur ffmpeg-7.1.2.old/libavcodec/amfenc.h ffmpeg-7.1.2/libavcodec/amfenc.h ---- ffmpeg-7.1.2.old/libavcodec/amfenc.h 2025-10-27 10:07:00.322471636 +0100 -+++ ffmpeg-7.1.2/libavcodec/amfenc.h 2025-10-27 10:07:02.440421671 +0100 -@@ -114,6 +114,7 @@ - int max_b_frames; - int qvbr_quality_level; - int hw_high_motion_quality_boost; -+ int forced_idr; - - // HEVC - specific options - -@@ -173,6 +174,8 @@ - */ - extern const enum AVPixelFormat ff_amf_pix_fmts[]; - -+int ff_amf_get_color_primaries(AVCodecContext *avctx); -+int ff_amf_get_transfer_characteristic(AVCodecContext *avctx); - int ff_amf_get_color_profile(AVCodecContext *avctx); - - /** -diff -Naur ffmpeg-7.1.2.old/libavcodec/amfenc_h264.c ffmpeg-7.1.2/libavcodec/amfenc_h264.c ---- ffmpeg-7.1.2.old/libavcodec/amfenc_h264.c 2025-10-27 10:07:00.604474124 +0100 -+++ ffmpeg-7.1.2/libavcodec/amfenc_h264.c 2025-10-27 10:07:02.440571423 +0100 -@@ -133,6 +133,7 @@ - { "me_half_pel", "Enable ME Half Pixel", OFFSET(me_half_pel), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VE }, - { "me_quarter_pel", "Enable ME Quarter Pixel", OFFSET(me_quarter_pel),AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VE }, - -+ { "forced_idr", "Force I frames to be IDR frames", OFFSET(forced_idr) , AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, - { "aud", "Inserts AU Delimiter NAL unit", OFFSET(aud) , AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VE }, - - -@@ -201,6 +202,8 @@ - AMFRate framerate; - AMFSize framesize = AMFConstructSize(avctx->width, avctx->height); - int deblocking_filter = (avctx->flags & AV_CODEC_FLAG_LOOP_FILTER) ? 1 : 0; -+ amf_int64 color_primaries; -+ amf_int64 transfer_characteristic; - amf_int64 color_profile; - enum AVPixelFormat pix_fmt; - -@@ -273,7 +276,11 @@ - AMF_ASSIGN_PROPERTY_RATIO(res, ctx->encoder, AMF_VIDEO_ENCODER_ASPECT_RATIO, ratio); - } - -+ color_primaries = ff_amf_get_color_primaries(avctx); -+ transfer_characteristic = ff_amf_get_transfer_characteristic(avctx); - color_profile = ff_amf_get_color_profile(avctx); -+ AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_OUTPUT_COLOR_PRIMARIES, color_primaries); -+ AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_OUTPUT_TRANSFER_CHARACTERISTIC, transfer_characteristic); - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_OUTPUT_COLOR_PROFILE, color_profile); - - /// Color Range (Support for older Drivers) -@@ -287,10 +294,6 @@ - AMF_RETURN_IF_FALSE(ctx, pix_fmt != AV_PIX_FMT_P010, AVERROR_INVALIDDATA, "10-bit input video is not supported by AMF H264 encoder\n"); - - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_COLOR_BIT_DEPTH, AMF_COLOR_BIT_DEPTH_8); -- /// Color Transfer Characteristics (AMF matches ISO/IEC) -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_OUTPUT_TRANSFER_CHARACTERISTIC, (amf_int64)avctx->color_trc); -- /// Color Primaries (AMF matches ISO/IEC) -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_OUTPUT_COLOR_PRIMARIES, (amf_int64)avctx->color_primaries); - - // autodetect rate control method - if (ctx->rate_control_mode == AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_UNKNOWN) { -diff -Naur ffmpeg-7.1.2.old/libavcodec/amfenc_hevc.c ffmpeg-7.1.2/libavcodec/amfenc_hevc.c ---- ffmpeg-7.1.2.old/libavcodec/amfenc_hevc.c 2025-10-27 10:07:00.324471654 +0100 -+++ ffmpeg-7.1.2/libavcodec/amfenc_hevc.c 2025-10-27 10:07:02.440657756 +0100 -@@ -100,6 +100,7 @@ - { "me_half_pel", "Enable ME Half Pixel", OFFSET(me_half_pel), AV_OPT_TYPE_BOOL,{ .i64 = -1 }, -1, 1, VE }, - { "me_quarter_pel", "Enable ME Quarter Pixel ", OFFSET(me_quarter_pel),AV_OPT_TYPE_BOOL,{ .i64 = -1 }, -1, 1, VE }, - -+ { "forced_idr", "Force I frames to be IDR frames", OFFSET(forced_idr) ,AV_OPT_TYPE_BOOL,{ .i64 = 0 }, 0, 1, VE }, - { "aud", "Inserts AU Delimiter NAL unit", OFFSET(aud) ,AV_OPT_TYPE_BOOL,{ .i64 = -1 }, -1, 1, VE }, - - -@@ -167,6 +168,8 @@ - AMFSize framesize = AMFConstructSize(avctx->width, avctx->height); - int deblocking_filter = (avctx->flags & AV_CODEC_FLAG_LOOP_FILTER) ? 1 : 0; - amf_int64 color_depth; -+ amf_int64 color_primaries; -+ amf_int64 transfer_characteristic; - amf_int64 color_profile; - enum AVPixelFormat pix_fmt; - -@@ -241,7 +244,11 @@ - AMF_ASSIGN_PROPERTY_RATIO(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_ASPECT_RATIO, ratio); - } - -+ color_primaries = ff_amf_get_color_primaries(avctx); -+ transfer_characteristic = ff_amf_get_transfer_characteristic(avctx); - color_profile = ff_amf_get_color_profile(avctx); -+ AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_COLOR_PRIMARIES, color_primaries); -+ AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_TRANSFER_CHARACTERISTIC, transfer_characteristic); - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_COLOR_PROFILE, color_profile); - /// Color Range (Support for older Drivers) - AMF_ASSIGN_PROPERTY_BOOL(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_NOMINAL_RANGE, !!(avctx->color_range == AVCOL_RANGE_JPEG)); -@@ -253,15 +260,6 @@ - color_depth = AMF_COLOR_BIT_DEPTH_10; - } - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_COLOR_BIT_DEPTH, color_depth); -- if (color_depth == AMF_COLOR_BIT_DEPTH_8) { -- /// Color Transfer Characteristics (AMF matches ISO/IEC) -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_TRANSFER_CHARACTERISTIC, AMF_COLOR_TRANSFER_CHARACTERISTIC_BT709); -- /// Color Primaries (AMF matches ISO/IEC) -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_COLOR_PRIMARIES, AMF_COLOR_PRIMARIES_BT709); -- } else { -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_TRANSFER_CHARACTERISTIC, AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE2084); -- AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_COLOR_PRIMARIES, AMF_COLOR_PRIMARIES_BT2020); -- } - - // Picture control properties - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_NUM_GOPS_PER_IDR, ctx->gops_per_idr); -diff -Naur ffmpeg-7.1.2.old/libavcodec/av1dec.c ffmpeg-7.1.2/libavcodec/av1dec.c ---- ffmpeg-7.1.2.old/libavcodec/av1dec.c 2025-10-27 10:07:00.478473013 +0100 -+++ ffmpeg-7.1.2/libavcodec/av1dec.c 2025-10-27 10:07:02.454638605 +0100 -@@ -541,6 +541,7 @@ - CONFIG_AV1_NVDEC_HWACCEL + \ - CONFIG_AV1_VAAPI_HWACCEL + \ - CONFIG_AV1_VDPAU_HWACCEL + \ -+ CONFIG_AV1_VIDEOTOOLBOX_HWACCEL + \ - CONFIG_AV1_VULKAN_HWACCEL) - enum AVPixelFormat pix_fmts[HWACCEL_MAX + 2], *fmtp = pix_fmts; - -@@ -568,6 +569,9 @@ - #if CONFIG_AV1_VDPAU_HWACCEL - *fmtp++ = AV_PIX_FMT_VDPAU; - #endif -+#if CONFIG_AV1_VIDEOTOOLBOX_HWACCEL -+ *fmtp++ = AV_PIX_FMT_VIDEOTOOLBOX; -+#endif - #if CONFIG_AV1_VULKAN_HWACCEL - *fmtp++ = AV_PIX_FMT_VULKAN; - #endif -@@ -592,6 +596,9 @@ - #if CONFIG_AV1_VDPAU_HWACCEL - *fmtp++ = AV_PIX_FMT_VDPAU; - #endif -+#if CONFIG_AV1_VIDEOTOOLBOX_HWACCEL -+ *fmtp++ = AV_PIX_FMT_VIDEOTOOLBOX; -+#endif - #if CONFIG_AV1_VULKAN_HWACCEL - *fmtp++ = AV_PIX_FMT_VULKAN; - #endif -@@ -1002,6 +1009,8 @@ - break; - } - case ITU_T_T35_PROVIDER_CODE_DOLBY: { +diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c +index 2b3a36a..5dc813d 100644 +--- a/libavcodec/av1dec.c ++++ b/libavcodec/av1dec.c +@@ -1019,6 +1019,8 @@ FF_ENABLE_DEPRECATION_WARNINGS + if (ret < 0) + return ret; + } else if (country_code == ITU_T_T35_COUNTRY_CODE_US && provider_code == ITU_T_T35_PROVIDER_CODE_DOLBY) { + AVBufferRef *rpu_buf; + AVFrameSideData *rpu; int provider_oriented_code = bytestream2_get_be32(&gb); - if (itut_t35->itu_t_t35_country_code != ITU_T_T35_COUNTRY_CODE_US || - provider_oriented_code != 0x800) -@@ -1014,6 +1023,18 @@ - break; // ignore + if (provider_oriented_code != 0x800) + return 0; // ignore +@@ -1030,6 +1032,18 @@ FF_ENABLE_DEPRECATION_WARNINGS + return 0; // ignore } + rpu_buf = av_buffer_alloc(itut_t35->payload_size); @@ -890,110 +77,14 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/av1dec.c ffmpeg-7.1.2/libavcodec/av1dec.c ret = ff_dovi_attach_side_data(&s->dovi, frame); if (ret < 0) return ret; -@@ -1439,6 +1460,10 @@ - - if (raw_tile_group && (s->tile_num == raw_tile_group->tg_end + 1)) { - int show_frame = s->raw_frame_header->show_frame; -+ // Set nb_unit to point at the next OBU, to indicate which -+ // OBUs have been processed for this current frame. (If this -+ // frame gets output, we set nb_unit to this value later too.) -+ s->nb_unit = i + 1; - if (avctx->hwaccel && s->cur_frame.f) { - ret = FF_HW_SIMPLE_CALL(avctx, end_frame); - if (ret < 0) { -@@ -1449,6 +1474,8 @@ - - update_reference_list(avctx); - -+ // Set start_unit to indicate the first OBU of the next frame. -+ s->start_unit = s->nb_unit; - raw_tile_group = NULL; - s->raw_frame_header = NULL; - -@@ -1478,7 +1505,7 @@ - s->raw_frame_header = NULL; - av_packet_unref(s->pkt); - ff_cbs_fragment_reset(&s->current_obu); -- s->nb_unit = 0; -+ s->nb_unit = s->start_unit = 0; - } - if (!ret && !frame->buf[0]) - ret = AVERROR(EAGAIN); -@@ -1505,7 +1532,7 @@ - return ret; - } - -- s->nb_unit = 0; -+ s->nb_unit = s->start_unit = 0; - av_log(avctx, AV_LOG_DEBUG, "Total OBUs on this packet: %d.\n", - s->current_obu.nb_units); - } -@@ -1526,7 +1553,7 @@ - - av1_frame_unref(&s->cur_frame); - s->operating_point_idc = 0; -- s->nb_unit = 0; -+ s->nb_unit = s->start_unit = 0; - s->raw_frame_header = NULL; - s->raw_seq = NULL; - s->cll = NULL; -@@ -1594,6 +1621,9 @@ - #if CONFIG_AV1_VDPAU_HWACCEL - HWACCEL_VDPAU(av1), - #endif -+#if CONFIG_AV1_VIDEOTOOLBOX_HWACCEL -+ HWACCEL_VIDEOTOOLBOX(av1), -+#endif - #if CONFIG_AV1_VULKAN_HWACCEL - HWACCEL_VULKAN(av1), - #endif -diff -Naur ffmpeg-7.1.2.old/libavcodec/av1dec.h ffmpeg-7.1.2/libavcodec/av1dec.h ---- ffmpeg-7.1.2.old/libavcodec/av1dec.h 2025-10-27 10:07:00.402472342 +0100 -+++ ffmpeg-7.1.2/libavcodec/av1dec.h 2025-10-27 10:07:02.454762738 +0100 -@@ -114,7 +114,8 @@ - AV1Frame ref[AV1_NUM_REF_FRAMES]; - AV1Frame cur_frame; - -- int nb_unit; -+ int nb_unit; ///< The index of the next OBU to be processed. -+ int start_unit; ///< The index of the first OBU of the current frame. - - // AVOptions - int operating_point; -diff -Naur ffmpeg-7.1.2.old/libavcodec/bsf/hevc_mp4toannexb.c ffmpeg-7.1.2/libavcodec/bsf/hevc_mp4toannexb.c ---- ffmpeg-7.1.2.old/libavcodec/bsf/hevc_mp4toannexb.c 2025-10-27 10:07:00.449472757 +0100 -+++ ffmpeg-7.1.2/libavcodec/bsf/hevc_mp4toannexb.c 2025-10-27 10:07:02.435022530 +0100 -@@ -125,6 +125,7 @@ - AVPacket *in; - GetByteContext gb; - -+ int has_sps = 0, has_pps = 0; - int got_irap = 0; - int i, ret = 0; - -@@ -158,11 +159,14 @@ - } - - nalu_type = (bytestream2_peek_byte(&gb) >> 1) & 0x3f; -+ has_sps = (has_sps || nalu_type == HEVC_NAL_SPS); -+ has_pps = (has_pps || nalu_type == HEVC_NAL_PPS); - - /* prepend extradata to IRAP frames */ - is_irap = nalu_type >= HEVC_NAL_BLA_W_LP && - nalu_type <= HEVC_NAL_RSV_IRAP_VCL23; -- add_extradata = is_irap && !got_irap; -+ /* ignore the extradata if IRAP frame has sps and pps */ -+ add_extradata = is_irap && !got_irap && !(has_sps && has_pps); - extra_size = add_extradata * ctx->par_out->extradata_size; - got_irap |= is_irap; - -diff -Naur ffmpeg-7.1.2.old/libavcodec/ccaption_dec.c ffmpeg-7.1.2/libavcodec/ccaption_dec.c ---- ffmpeg-7.1.2.old/libavcodec/ccaption_dec.c 2025-10-27 10:07:00.593474027 +0100 -+++ ffmpeg-7.1.2/libavcodec/ccaption_dec.c 2025-10-27 10:07:02.429490227 +0100 -@@ -889,12 +889,13 @@ +diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c +index 9b6c766..399296e 100644 +--- a/libavcodec/ccaption_dec.c ++++ b/libavcodec/ccaption_dec.c +@@ -893,12 +893,13 @@ static int decode(AVCodecContext *avctx, AVSubtitle *sub, if (ctx->buffer[bidx].str[0] || ctx->real_time) { - ff_dlog(ctx, "cdp writing data (%s)\n", ctx->buffer[bidx].str); + ff_dlog(avctx, "cdp writing data (%s)\n", ctx->buffer[bidx].str); - start_time = ctx->buffer_time[0]; - sub->pts = start_time; - end_time = ctx->buffer_time[1]; @@ -1008,10 +99,11 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/ccaption_dec.c ffmpeg-7.1.2/libavcodec/cc else sub->end_display_time = -1; ret = ff_ass_add_rect2(sub, ctx->buffer[bidx].str, ctx->readorder++, 0, NULL, NULL, &nb_rect_allocated); -diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsubdec.c ---- ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c 2025-10-27 10:07:00.303471468 +0100 -+++ ffmpeg-7.1.2/libavcodec/dvdsubdec.c 2025-10-27 10:07:02.428490218 +0100 -@@ -45,6 +45,8 @@ +diff --git a/libavcodec/dvdsubdec.c b/libavcodec/dvdsubdec.c +index 9f9845b..1beb1fc 100644 +--- a/libavcodec/dvdsubdec.c ++++ b/libavcodec/dvdsubdec.c +@@ -45,6 +45,8 @@ typedef struct DVDSubContext int buf_size; int forced_subs_only; uint8_t used_color[256]; @@ -1020,7 +112,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsu } DVDSubContext; static void yuv_a_to_rgba(const uint8_t *ycbcr, const uint8_t *alpha, uint32_t *rgba, int num_values) -@@ -230,7 +232,10 @@ +@@ -230,7 +232,10 @@ static int decode_dvd_subtitles(void *logctx, DVDSubContext *ctx, uint32_t size; int64_t offset1, offset2; @@ -1032,7 +124,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsu return -1; if (AV_RB16(buf) == 0) { /* HD subpicture with 4-byte offsets */ -@@ -243,15 +248,22 @@ +@@ -243,15 +248,21 @@ static int decode_dvd_subtitles(void *logctx, DVDSubContext *ctx, cmd_pos = 2; } @@ -1041,15 +133,14 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsu + size = READ_OFFSET(buf + (big_offsets ? 2 : 0)); - cmd_pos = READ_OFFSET(buf + cmd_pos); ++ if (size == 0) ++ return -1; - if (cmd_pos < 0 || cmd_pos > buf_size - 2 - offset_size) { - if (cmd_pos > size) { -- av_log(ctx, AV_LOG_ERROR, "Discarding invalid packet\n"); +- av_log(logctx, AV_LOG_ERROR, "Discarding invalid packet\n"); - return 0; - } -+ if (size == 0) -+ return -1; -+ + if (buf_size < size) return AVERROR(EAGAIN); + @@ -1061,7 +152,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsu } while (cmd_pos > 0 && cmd_pos < buf_size - 2 - offset_size) { -@@ -524,10 +536,13 @@ +@@ -524,10 +535,13 @@ static int dvdsub_decode(AVCodecContext *avctx, AVSubtitle *sub, int appended = 0; int is_menu; @@ -1075,8 +166,8 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsu return ret; } buf = ctx->buf; -@@ -538,7 +553,12 @@ - is_menu = decode_dvd_subtitles(ctx, sub, buf, buf_size); +@@ -538,7 +552,12 @@ static int dvdsub_decode(AVCodecContext *avctx, AVSubtitle *sub, + is_menu = decode_dvd_subtitles(avctx, ctx, sub, buf, buf_size); if (is_menu == AVERROR(EAGAIN)) { *data_size = 0; - return appended ? 0 : append_to_cached_buf(avctx, buf, buf_size); @@ -1089,7 +180,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsu } if (is_menu < 0) { -@@ -547,9 +567,10 @@ +@@ -547,9 +566,10 @@ static int dvdsub_decode(AVCodecContext *avctx, AVSubtitle *sub, reset_rects(sub); *data_size = 0; @@ -1101,7 +192,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsu goto no_subtitle; if (ctx->forced_subs_only && !(sub->rects[0]->flags & AV_SUBTITLE_FLAG_FORCED)) -@@ -557,6 +578,8 @@ +@@ -557,6 +577,8 @@ static int dvdsub_decode(AVCodecContext *avctx, AVSubtitle *sub, ctx->buf_size = 0; *data_size = 1; @@ -1110,15 +201,15 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsu return buf_size; } -@@ -682,6 +705,7 @@ +@@ -683,6 +705,7 @@ static av_cold int dvdsub_init(AVCodecContext *avctx) av_log(avctx, AV_LOG_DEBUG, " 0x%06"PRIx32, ctx->palette[i]); av_log(avctx, AV_LOG_DEBUG, "\n"); } + ctx->pts = AV_NOPTS_VALUE; - return 1; + return 0; } -@@ -698,6 +722,7 @@ +@@ -699,6 +722,7 @@ static const AVOption options[] = { { "palette", "set the global palette", OFFSET(palette_str), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, SD }, { "ifo_palette", "obtain the global palette from .IFO file", OFFSET(ifo_str), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, SD }, { "forced_subs_only", "Only show forced subtitles", OFFSET(forced_subs_only), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, SD}, @@ -1126,297 +217,88 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/dvdsubdec.c ffmpeg-7.1.2/libavcodec/dvdsu { NULL } }; static const AVClass dvdsub_class = { -diff -Naur ffmpeg-7.1.2.old/libavcodec/eac3dec.c ffmpeg-7.1.2/libavcodec/eac3dec.c ---- ffmpeg-7.1.2.old/libavcodec/eac3dec.c 2025-10-27 10:07:00.490473118 +0100 -+++ ffmpeg-7.1.2/libavcodec/eac3dec.c 2025-10-27 10:07:02.463392296 +0100 -@@ -53,8 +53,6 @@ - EAC3_GAQ_124 - } EAC3GaqMode; - --#define EAC3_SR_CODE_REDUCED 3 -- - static void ff_eac3_apply_spectral_extension(AC3DecodeContext *s) - { - int bin, bnd, ch, i; -@@ -287,7 +285,7 @@ - } - } - --static int ff_eac3_parse_header(AC3DecodeContext *s) -+static int ff_eac3_parse_header(AC3DecodeContext *s, const AC3HeaderInfo *hdr) - { - int i, blk, ch; - int ac3_exponent_strategy, parse_aht_info, parse_spx_atten_data; -@@ -323,11 +321,10 @@ - avpriv_request_sample(s->avctx, "Reduced sampling rate"); - return AVERROR_PATCHWELCOME; - } -- skip_bits(gbc, 5); // skip bitstream id - - /* volume control params */ - for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { -- s->dialog_normalization[i] = -get_bits(gbc, 5); -+ s->dialog_normalization[i] = hdr->dialog_normalization[i]; - if (s->dialog_normalization[i] == 0) { - s->dialog_normalization[i] = -31; +diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c +index 14ec984..90aa2ba 100644 +--- a/libavcodec/libdav1d.c ++++ b/libavcodec/libdav1d.c +@@ -415,6 +415,8 @@ FF_ENABLE_DEPRECATION_WARNINGS + if (res < 0) + return res; + } else if (country_code == ITU_T_T35_COUNTRY_CODE_US && provider_code == ITU_T_T35_PROVIDER_CODE_DOLBY) { ++ AVBufferRef *rpu_buf; ++ AVFrameSideData *rpu; + int provider_oriented_code = bytestream2_get_be32(&gb); + if (provider_oriented_code != 0x800) + return 0; // ignore +@@ -426,6 +428,18 @@ FF_ENABLE_DEPRECATION_WARNINGS + return 0; // ignore } -@@ -335,147 +332,30 @@ - s->level_gain[i] = powf(2.0f, - (float)(s->target_level - s->dialog_normalization[i])/6.0f); - } -- s->compression_exists[i] = get_bits1(gbc); -- if (s->compression_exists[i]) { -- s->heavy_dynamic_range[i] = AC3_HEAVY_RANGE(get_bits(gbc, 8)); -+ if (hdr->compression_exists[i]) { -+ s->heavy_dynamic_range[i] = AC3_HEAVY_RANGE(hdr->heavy_dynamic_range[i]); - } - } -- /* dependent stream channel map */ -- if (s->frame_type == EAC3_FRAME_TYPE_DEPENDENT) { -- if (get_bits1(gbc)) { -- int64_t channel_layout = 0; -- int channel_map = get_bits(gbc, 16); -- av_log(s->avctx, AV_LOG_DEBUG, "channel_map: %0X\n", channel_map); -- -- for (i = 0; i < 16; i++) -- if (channel_map & (1 << (EAC3_MAX_CHANNELS - i - 1))) -- channel_layout |= ff_eac3_custom_channel_map_locations[i][1]; -- -- if (av_popcount64(channel_layout) > EAC3_MAX_CHANNELS) { -- return AVERROR_INVALIDDATA; -- } -- s->channel_map = channel_map; -- } -- } -+ s->channel_map = hdr->channel_map; - - /* mixing metadata */ -- if (get_bits1(gbc)) { -- /* center and surround mix levels */ -- if (s->channel_mode > AC3_CHMODE_STEREO) { -- s->preferred_downmix = get_bits(gbc, 2); -- if (s->channel_mode & 1) { -- /* if three front channels exist */ -- s->center_mix_level_ltrt = get_bits(gbc, 3); -- s->center_mix_level = get_bits(gbc, 3); -- } -- if (s->channel_mode & 4) { -- /* if a surround channel exists */ -- s->surround_mix_level_ltrt = av_clip(get_bits(gbc, 3), 3, 7); -- s->surround_mix_level = av_clip(get_bits(gbc, 3), 3, 7); -- } -- } -- -- /* lfe mix level */ -- if (s->lfe_on && (s->lfe_mix_level_exists = get_bits1(gbc))) { -- s->lfe_mix_level = get_bits(gbc, 5); -- } -- -- /* info for mixing with other streams and substreams */ -- if (s->frame_type == EAC3_FRAME_TYPE_INDEPENDENT) { -- for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { -- // TODO: apply program scale factor -- if (get_bits1(gbc)) { -- skip_bits(gbc, 6); // skip program scale factor -- } -- } -- if (get_bits1(gbc)) { -- skip_bits(gbc, 6); // skip external program scale factor -- } -- /* skip mixing parameter data */ -- switch(get_bits(gbc, 2)) { -- case 1: skip_bits(gbc, 5); break; -- case 2: skip_bits(gbc, 12); break; -- case 3: { -- int mix_data_size = (get_bits(gbc, 5) + 2) << 3; -- skip_bits_long(gbc, mix_data_size); -- break; -- } -- } -- /* skip pan information for mono or dual mono source */ -- if (s->channel_mode < AC3_CHMODE_STEREO) { -- for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { -- if (get_bits1(gbc)) { -- /* note: this is not in the ATSC A/52B specification -- reference: ETSI TS 102 366 V1.1.1 -- section: E.1.3.1.25 */ -- skip_bits(gbc, 8); // skip pan mean direction index -- skip_bits(gbc, 6); // skip reserved paninfo bits -- } -- } -- } -- /* skip mixing configuration information */ -- if (get_bits1(gbc)) { -- for (blk = 0; blk < s->num_blocks; blk++) { -- if (s->num_blocks == 1 || get_bits1(gbc)) { -- skip_bits(gbc, 5); -- } -- } -- } -- } -- } -+ s->preferred_downmix = hdr->preferred_downmix; -+ s->center_mix_level_ltrt = hdr->center_mix_level_ltrt; -+ s->center_mix_level = hdr->center_mix_level; -+ s->surround_mix_level_ltrt = hdr->surround_mix_level_ltrt; -+ s->surround_mix_level = hdr->surround_mix_level; -+ s->lfe_mix_level_exists = hdr->lfe_mix_level_exists; -+ s->lfe_mix_level = hdr->lfe_mix_level; -+ s->dolby_surround_mode = hdr->dolby_surround_mode; -+ s->dolby_headphone_mode = hdr->dolby_headphone_mode; -+ s->dolby_surround_ex_mode = hdr->dolby_surround_ex_mode; - - /* informational metadata */ -- if (get_bits1(gbc)) { -- s->bitstream_mode = get_bits(gbc, 3); -- skip_bits(gbc, 2); // skip copyright bit and original bitstream bit -- if (s->channel_mode == AC3_CHMODE_STEREO) { -- s->dolby_surround_mode = get_bits(gbc, 2); -- s->dolby_headphone_mode = get_bits(gbc, 2); -- } -- if (s->channel_mode >= AC3_CHMODE_2F2R) { -- s->dolby_surround_ex_mode = get_bits(gbc, 2); -- } -- for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { -- if (get_bits1(gbc)) { -- skip_bits(gbc, 8); // skip mix level, room type, and A/D converter type -- } -- } -- if (s->bit_alloc_params.sr_code != EAC3_SR_CODE_REDUCED) { -- skip_bits1(gbc); // skip source sample rate code -- } -- } -- -- /* converter synchronization flag -- If frames are less than six blocks, this bit should be turned on -- once every 6 blocks to indicate the start of a frame set. -- reference: RFC 4598, Section 2.1.3 Frame Sets */ -- if (s->frame_type == EAC3_FRAME_TYPE_INDEPENDENT && s->num_blocks != 6) { -- skip_bits1(gbc); // skip converter synchronization flag -- } -- -- /* original frame size code if this stream was converted from AC-3 */ -- if (s->frame_type == EAC3_FRAME_TYPE_AC3_CONVERT && -- (s->num_blocks == 6 || get_bits1(gbc))) { -- skip_bits(gbc, 6); // skip frame size code -- } -+ s->bitstream_mode = hdr->bitstream_mode; - - /* additional bitstream info */ -- if (get_bits1(gbc)) { -- int addbsil = get_bits(gbc, 6); -- for (i = 0; i < addbsil + 1; i++) { -- if (i == 0) { -- /* In this 8 bit chunk, the LSB is equal to flag_ec3_extension_type_a -- which can be used to detect Atmos presence */ -- skip_bits(gbc, 7); -- if (get_bits1(gbc)) { -- s->eac3_extension_type_a = 1; -- } -- } else { -- skip_bits(gbc, 8); // skip additional bit stream info -- } -- } -- } -+ s->eac3_extension_type_a = hdr->eac3_extension_type_a; - - /* audio frame syntax flags, strategy data, and per-frame data */ - -diff -Naur ffmpeg-7.1.2.old/libavcodec/hwaccels.h ffmpeg-7.1.2/libavcodec/hwaccels.h ---- ffmpeg-7.1.2.old/libavcodec/hwaccels.h 2025-10-27 10:07:00.251471009 +0100 -+++ ffmpeg-7.1.2/libavcodec/hwaccels.h 2025-10-27 10:07:02.454807062 +0100 -@@ -26,6 +26,7 @@ - extern const struct FFHWAccel ff_av1_nvdec_hwaccel; - extern const struct FFHWAccel ff_av1_vaapi_hwaccel; - extern const struct FFHWAccel ff_av1_vdpau_hwaccel; -+extern const struct FFHWAccel ff_av1_videotoolbox_hwaccel; - extern const struct FFHWAccel ff_av1_vulkan_hwaccel; - extern const struct FFHWAccel ff_h263_vaapi_hwaccel; - extern const struct FFHWAccel ff_h263_videotoolbox_hwaccel; -diff -Naur ffmpeg-7.1.2.old/libavcodec/libdav1d.c ffmpeg-7.1.2/libavcodec/libdav1d.c ---- ffmpeg-7.1.2.old/libavcodec/libdav1d.c 2025-10-27 10:07:00.474472977 +0100 -+++ ffmpeg-7.1.2/libavcodec/libdav1d.c 2025-10-27 10:07:02.436286040 +0100 -@@ -563,6 +563,8 @@ - break; - } - case ITU_T_T35_PROVIDER_CODE_DOLBY: { -+ AVBufferRef *rpu_buf; -+ AVFrameSideData *rpu; - int provider_oriented_code = bytestream2_get_be32(&gb); - if (itut_t35->country_code != ITU_T_T35_COUNTRY_CODE_US || - provider_oriented_code != 0x800) -@@ -575,6 +577,18 @@ - break; // ignore - } - -+ rpu_buf = av_buffer_alloc(itut_t35->payload_size); -+ if (rpu_buf) { -+ memcpy(rpu_buf->data, itut_t35->payload, itut_t35->payload_size); -+ rpu = av_frame_new_side_data_from_buf(frame, AV_FRAME_DATA_DOVI_RPU_BUFFER_T35, rpu_buf); -+ if (!rpu) { -+ av_buffer_unref(&rpu_buf); -+ goto fail; -+ } -+ } else { -+ goto fail; ++ rpu_buf = av_buffer_alloc(itut_t35->payload_size); ++ if (rpu_buf) { ++ memcpy(rpu_buf->data, itut_t35->payload, itut_t35->payload_size); ++ rpu = av_frame_new_side_data_from_buf(frame, AV_FRAME_DATA_DOVI_RPU_BUFFER_T35, rpu_buf); ++ if (!rpu) { ++ av_buffer_unref(&rpu_buf); ++ return AVERROR(ENOMEM); + } ++ } else { ++ return AVERROR(ENOMEM); ++ } + - res = ff_dovi_attach_side_data(&dav1d->dovi, frame); - if (res < 0) - goto fail; -diff -Naur ffmpeg-7.1.2.old/libavcodec/Makefile ffmpeg-7.1.2/libavcodec/Makefile ---- ffmpeg-7.1.2.old/libavcodec/Makefile 2025-10-27 10:07:01.865180885 +0100 -+++ ffmpeg-7.1.2/libavcodec/Makefile 2025-10-27 10:07:02.454516424 +0100 -@@ -1008,6 +1008,7 @@ - OBJS-$(CONFIG_AV1_NVDEC_HWACCEL) += nvdec_av1.o - OBJS-$(CONFIG_AV1_VAAPI_HWACCEL) += vaapi_av1.o - OBJS-$(CONFIG_AV1_VDPAU_HWACCEL) += vdpau_av1.o -+OBJS-$(CONFIG_AV1_VIDEOTOOLBOX_HWACCEL) += videotoolbox_av1.o - OBJS-$(CONFIG_AV1_VULKAN_HWACCEL) += vulkan_decode.o vulkan_av1.o - OBJS-$(CONFIG_H263_VAAPI_HWACCEL) += vaapi_mpeg4.o - OBJS-$(CONFIG_H263_VIDEOTOOLBOX_HWACCEL) += videotoolbox.o -diff -Naur ffmpeg-7.1.2.old/libavcodec/mfenc.c ffmpeg-7.1.2/libavcodec/mfenc.c ---- ffmpeg-7.1.2.old/libavcodec/mfenc.c 2025-10-27 10:07:00.524473418 +0100 -+++ ffmpeg-7.1.2/libavcodec/mfenc.c 2025-10-27 10:07:02.459027162 +0100 -@@ -1315,3 +1315,4 @@ - - MF_ENCODER(VIDEO, h264, H264, venc_opts, VFMTS, VCAPS, defaults); - MF_ENCODER(VIDEO, hevc, HEVC, venc_opts, VFMTS, VCAPS, defaults); -+MF_ENCODER(VIDEO, av1, AV1, venc_opts, VFMTS, VCAPS, defaults); -diff -Naur ffmpeg-7.1.2.old/libavcodec/mf_utils.c ffmpeg-7.1.2/libavcodec/mf_utils.c ---- ffmpeg-7.1.2.old/libavcodec/mf_utils.c 2025-10-27 10:07:00.467472915 +0100 -+++ ffmpeg-7.1.2/libavcodec/mf_utils.c 2025-10-27 10:07:02.458887429 +0100 -@@ -240,6 +240,7 @@ - GUID_ENTRY(MFMediaType_Video), - GUID_ENTRY(MFAudioFormat_PCM), - GUID_ENTRY(MFAudioFormat_Float), -+ GUID_ENTRY(ff_MFVideoFormat_AV1), - GUID_ENTRY(MFVideoFormat_H264), - GUID_ENTRY(MFVideoFormat_H264_ES), - GUID_ENTRY(ff_MFVideoFormat_HEVC), -@@ -507,6 +508,7 @@ - const CLSID *ff_codec_to_mf_subtype(enum AVCodecID codec) + res = ff_dovi_attach_side_data(&dav1d->dovi, frame); + if (res < 0) + return res; +diff --git a/libavcodec/mfenc.c b/libavcodec/mfenc.c +index 541f7fb..b517352 100644 +--- a/libavcodec/mfenc.c ++++ b/libavcodec/mfenc.c +@@ -904,6 +904,8 @@ static int64_t mf_encv_input_score(AVCodecContext *avctx, IMFMediaType *type) + static int mf_encv_input_adjust(AVCodecContext *avctx, IMFMediaType *type) { - switch (codec) { -+ case AV_CODEC_ID_AV1: return &ff_MFVideoFormat_AV1; - case AV_CODEC_ID_H264: return &MFVideoFormat_H264; - case AV_CODEC_ID_HEVC: return &ff_MFVideoFormat_HEVC; - case AV_CODEC_ID_AC3: return &MFAudioFormat_Dolby_AC3; -diff -Naur ffmpeg-7.1.2.old/libavcodec/mf_utils.h ffmpeg-7.1.2/libavcodec/mf_utils.h ---- ffmpeg-7.1.2.old/libavcodec/mf_utils.h 2025-10-27 10:07:00.429472580 +0100 -+++ ffmpeg-7.1.2/libavcodec/mf_utils.h 2025-10-27 10:07:02.458955668 +0100 -@@ -113,6 +113,7 @@ + enum AVPixelFormat pix_fmt = ff_media_type_to_pix_fmt((IMFAttributes *)type); ++ AVRational framerate; ++ + if (avctx->pix_fmt == AV_PIX_FMT_D3D11) { + if (pix_fmt != AV_PIX_FMT_NV12 && pix_fmt != AV_PIX_FMT_D3D11) { + av_log(avctx, AV_LOG_ERROR, "unsupported input pixel format set\n"); +@@ -916,7 +918,16 @@ static int mf_encv_input_adjust(AVCodecContext *avctx, IMFMediaType *type) + } + } - DEFINE_MEDIATYPE_GUID(ff_MFVideoFormat_HEVC, 0x43564548); // FCC('HEVC') - DEFINE_MEDIATYPE_GUID(ff_MFVideoFormat_HEVC_ES, 0x53564548); // FCC('HEVS') -+DEFINE_MEDIATYPE_GUID(ff_MFVideoFormat_AV1, 0x31305641); // FCC('AV01') +- //ff_MFSetAttributeSize((IMFAttributes *)type, &MF_MT_FRAME_SIZE, avctx->width, avctx->height); ++ ff_MFSetAttributeSize((IMFAttributes *)type, &MF_MT_FRAME_SIZE, avctx->width, avctx->height); ++ IMFAttributes_SetUINT32(type, &MF_MT_INTERLACE_MODE, MFVideoInterlace_Progressive); ++ ++ if (avctx->framerate.num > 0 && avctx->framerate.den > 0) { ++ framerate = avctx->framerate; ++ } else { ++ framerate = av_inv_q(avctx->time_base); ++ } ++ ++ ff_MFSetAttributeRatio((IMFAttributes *)type, &MF_MT_FRAME_RATE, framerate.num, framerate.den); + return 0; + } +diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c +index 3922305..8c02815 100644 +--- a/libavcodec/nvenc.c ++++ b/libavcodec/nvenc.c +@@ -680,7 +680,9 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) - // This enum is missing from mingw-w64's codecapi.h by v7.0.0. -diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssubdec.c ---- ffmpeg-7.1.2.old/libavcodec/pgssubdec.c 2025-10-27 10:07:00.318471601 +0100 -+++ ffmpeg-7.1.2/libavcodec/pgssubdec.c 2025-10-27 10:07:02.446191090 +0100 + #ifdef NVENC_HAVE_MVHEVC + ctx->multiview_supported = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_MVHEVC_ENCODE) > 0; +- if(ctx->profile == NV_ENC_HEVC_PROFILE_MULTIVIEW_MAIN && !ctx->multiview_supported) { ++ if (avctx->codec_id == AV_CODEC_ID_HEVC && ++ ctx->profile == NV_ENC_HEVC_PROFILE_MULTIVIEW_MAIN && ++ !ctx->multiview_supported) { + av_log(avctx, AV_LOG_WARNING, "Multiview not supported by the device\n"); + return AVERROR(ENOSYS); + } +diff --git a/libavcodec/pgssubdec.c b/libavcodec/pgssubdec.c +index 20583c9..b43ce23 100644 +--- a/libavcodec/pgssubdec.c ++++ b/libavcodec/pgssubdec.c @@ -35,9 +35,11 @@ #include "libavutil/opt.h" @@ -1432,7 +314,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu enum SegmentType { PALETTE_SEGMENT = 0x14, -@@ -48,57 +50,80 @@ +@@ -48,57 +50,80 @@ enum SegmentType { }; typedef struct PGSSubObjectRef { @@ -1536,7 +418,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu static void flush_cache(AVCodecContext *avctx) { PGSSubContext *ctx = avctx->priv_data; -@@ -106,8 +131,11 @@ +@@ -106,8 +131,11 @@ static void flush_cache(AVCodecContext *avctx) for (i = 0; i < ctx->objects.count; i++) { av_freep(&ctx->objects.object[i].rle); @@ -1549,7 +431,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu } ctx->objects.count = 0; ctx->palettes.count = 0; -@@ -144,6 +172,7 @@ +@@ -144,6 +172,7 @@ static av_cold int init_decoder(AVCodecContext *avctx) static av_cold int close_decoder(AVCodecContext *avctx) { @@ -1557,7 +439,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu flush_cache(avctx); return 0; -@@ -159,48 +188,51 @@ +@@ -159,48 +188,51 @@ static av_cold int close_decoder(AVCodecContext *avctx) * @param buf pointer to the RLE data to process * @param buf_size size of the RLE data to process */ @@ -1626,7 +508,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu if (avctx->err_recognition & AV_EF_EXPLODE) { return AVERROR_INVALIDDATA; } -@@ -209,13 +241,11 @@ +@@ -209,13 +241,11 @@ static int decode_rle(AVCodecContext *avctx, AVSubtitleRect *rect, } } @@ -1643,7 +525,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu return 0; } -@@ -237,7 +267,7 @@ +@@ -237,7 +267,7 @@ static int parse_object_segment(AVCodecContext *avctx, uint8_t sequence_desc; unsigned int rle_bitmap_len, width, height; @@ -1652,7 +534,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu if (buf_size <= 4) return AVERROR_INVALIDDATA; -@@ -260,57 +290,71 @@ +@@ -260,57 +290,71 @@ static int parse_object_segment(AVCodecContext *avctx, /* Read the Sequence Description to determine if start of RLE data or appended to previous RLE */ sequence_desc = bytestream_get_byte(&buf); @@ -1696,17 +578,16 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu + /* Get bitmap dimensions from data */ + width = bytestream_get_be16(&buf); + height = bytestream_get_be16(&buf); -+ + +- /* Get bitmap dimensions from data */ +- width = bytestream_get_be16(&buf); +- height = bytestream_get_be16(&buf); + /* Make sure the bitmap is not too large */ + if (MAX_OBJECT_WH < width || MAX_OBJECT_WH < height || !width || !height) { + av_log(avctx, AV_LOG_ERROR, "Bitmap dimensions (%dx%d) invalid.\n", width, height); + return AVERROR_INVALIDDATA; + } -- /* Get bitmap dimensions from data */ -- width = bytestream_get_be16(&buf); -- height = bytestream_get_be16(&buf); -- - /* Make sure the bitmap is not too large */ - if (avctx->width < width || avctx->height < height || !width || !height) { - av_log(avctx, AV_LOG_ERROR, "Bitmap dimensions (%dx%d) invalid.\n", width, height); @@ -1738,14 +619,10 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu - object->rle_remaining_len = 0; - return AVERROR(ENOMEM); + memcpy(object->rle + object->rle_data_len, buf, buf_size); - } ++ } + object->rle_data_len += buf_size; + object->rle_remaining_len -= buf_size; - -- memcpy(object->rle, buf, buf_size); -- object->rle_data_len = buf_size; -- object->rle_remaining_len = rle_bitmap_len - buf_size; -- ++ + /* Last in sequence object definition (can be both first and last) */ + if (sequence_desc & 0x40) { + /* Attempt decoding if data is valid */ @@ -1761,11 +638,16 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu + if (avctx->err_recognition & AV_EF_EXPLODE) + return AVERROR_INVALIDDATA; + } -+ } + } +- +- memcpy(object->rle, buf, buf_size); +- object->rle_data_len = buf_size; +- object->rle_remaining_len = rle_bitmap_len - buf_size; +- return 0; } -@@ -318,7 +362,7 @@ +@@ -318,7 +362,7 @@ static int parse_object_segment(AVCodecContext *avctx, * Parse the palette segment packet. * * The palette segment contains details of the palette, @@ -1774,7 +656,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu * * @param avctx contains the current codec context * @param buf pointer to the packet to process -@@ -391,13 +435,17 @@ +@@ -391,13 +435,17 @@ static int parse_presentation_segment(AVCodecContext *avctx, int64_t pts) { PGSSubContext *ctx = avctx->priv_data; @@ -1793,7 +675,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu ctx->presentation.pts = pts; ff_dlog(avctx, "Video Dimensions %dx%d\n", -@@ -406,88 +454,121 @@ +@@ -406,88 +454,121 @@ static int parse_presentation_segment(AVCodecContext *avctx, if (ret < 0) return ret; @@ -1863,50 +745,29 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu - for (i = 0; i < ctx->presentation.object_count; i++) - { - PGSSubObjectRef *const object = &ctx->presentation.objects[i]; -- ++ if (buf_end - buf < 8) { ++ av_log(avctx, AV_LOG_ERROR, "Insufficient space for object\n"); ++ ctx->presentation.object_count = i; ++ return AVERROR_INVALIDDATA; ++ } + - if (buf_end - buf < 8) { -- av_log(avctx, AV_LOG_ERROR, "Insufficent space for object\n"); +- av_log(avctx, AV_LOG_ERROR, "Insufficient space for object\n"); - ctx->presentation.object_count = i; - return AVERROR_INVALIDDATA; - } -- -- object->id = bytestream_get_be16(&buf); -- object->window_id = bytestream_get_byte(&buf); -- object->composition_flag = bytestream_get_byte(&buf); -- -- object->x = bytestream_get_be16(&buf); -- object->y = bytestream_get_be16(&buf); -- -- // If cropping -- if (object->composition_flag & 0x80) { -- object->crop_x = bytestream_get_be16(&buf); -- object->crop_y = bytestream_get_be16(&buf); -- object->crop_w = bytestream_get_be16(&buf); -- object->crop_h = bytestream_get_be16(&buf); -- } -- -- ff_dlog(avctx, "Subtitle Placement x=%d, y=%d\n", -- object->x, object->y); -- -- if (object->x > avctx->width || object->y > avctx->height) { -- av_log(avctx, AV_LOG_ERROR, "Subtitle out of video bounds. x = %d, y = %d, video width = %d, video height = %d.\n", -- object->x, object->y, -- avctx->width, avctx->height); -- object->y = object->x = 0; -- if (avctx->err_recognition & AV_EF_EXPLODE) { -+ if (buf_end - buf < 8) { -+ av_log(avctx, AV_LOG_ERROR, "Insufficent space for object\n"); -+ ctx->presentation.object_count = i; - return AVERROR_INVALIDDATA; - } -+ + object->id = bytestream_get_be16(&buf); + object->window_id = bytestream_get_byte(&buf); + object->composition_flag = bytestream_get_byte(&buf); -+ + +- object->id = bytestream_get_be16(&buf); +- object->window_id = bytestream_get_byte(&buf); +- object->composition_flag = bytestream_get_byte(&buf); + object->x = bytestream_get_be16(&buf); + object->y = bytestream_get_be16(&buf); -+ + +- object->x = bytestream_get_be16(&buf); +- object->y = bytestream_get_be16(&buf); + // If cropping + if (object->composition_flag & 0x80) { + object->crop_x = bytestream_get_be16(&buf); @@ -1914,15 +775,23 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu + object->crop_w = bytestream_get_be16(&buf); + object->crop_h = bytestream_get_be16(&buf); + } -+ + +- // If cropping +- if (object->composition_flag & 0x80) { +- object->crop_x = bytestream_get_be16(&buf); +- object->crop_y = bytestream_get_be16(&buf); +- object->crop_w = bytestream_get_be16(&buf); +- object->crop_h = bytestream_get_be16(&buf); + /* Placement is checked at decode after cropping. */ + ff_dlog(avctx, "Subtitle Placement x=%d, y=%d\n", + object->x, object->y); } - } ++ } + return 0; +} -+ + +- ff_dlog(avctx, "Subtitle Placement x=%d, y=%d\n", +- object->x, object->y); +/** + * Parse the window segment packet. + * @@ -1935,12 +804,21 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu + int buf_size) +{ + PGSSubContext *ctx = (PGSSubContext *)avctx->priv_data; -+ + +- if (object->x > avctx->width || object->y > avctx->height) { +- av_log(avctx, AV_LOG_ERROR, "Subtitle out of video bounds. x = %d, y = %d, video width = %d, video height = %d.\n", +- object->x, object->y, +- avctx->width, avctx->height); +- object->y = object->x = 0; +- if (avctx->err_recognition & AV_EF_EXPLODE) { +- return AVERROR_INVALIDDATA; +- } +- } + // 1 byte: number of windows defined + if (bytestream_get_byte(&buf) > MAX_OBJECT_REFS) { + av_log(avctx, AV_LOG_ERROR, "Too many windows defined.\n"); + return AVERROR_INVALIDDATA; -+ } + } + /* TODO: mask objects with windows when transfering to the graphic plane + * Window Segment Structure @@ -1968,7 +846,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu * * @param avctx contains the current codec context * @param data pointer to the data pertaining the subtitle to display -@@ -500,26 +581,33 @@ +@@ -500,26 +581,33 @@ static int display_end_segment(AVCodecContext *avctx, AVSubtitle *sub, PGSSubContext *ctx = avctx->priv_data; int64_t pts; PGSSubPalette *palette; @@ -2010,7 +888,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu palette = find_palette(ctx->presentation.palette_id, &ctx->palettes); if (!palette) { // Missing palette. Should only happen with damaged streams. -@@ -528,57 +616,128 @@ +@@ -528,57 +616,128 @@ static int display_end_segment(AVCodecContext *avctx, AVSubtitle *sub, avsubtitle_free(sub); return AVERROR_INVALIDDATA; } @@ -2022,6 +900,20 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu - return AVERROR(ENOMEM); - sub->rects[sub->num_rects++] = rect; - rect->type = SUBTITLE_BITMAP; +- +- /* Process bitmap */ +- object = find_object(ctx->presentation.objects[i].id, &ctx->objects); +- if (!object) { +- // Missing object. Should only happen with damaged streams. +- av_log(avctx, AV_LOG_ERROR, "Invalid object id %d\n", +- ctx->presentation.objects[i].id); +- if (avctx->err_recognition & AV_EF_EXPLODE) +- return AVERROR_INVALIDDATA; +- // Leaves rect empty with 0 width and height. +- continue; +- } +- if (ctx->presentation.objects[i].composition_flag & 0x40) +- rect->flags |= AV_SUBTITLE_FLAG_FORCED; + for (i = 0; i < ctx->plane.count; i++) { + const PGSSubObjectRef *sub_object = &ctx->presentation.objects[i]; + AVSubtitleRect *const gp_rect = &ctx->plane.visible_rect[i]; @@ -2044,25 +936,10 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu + } + if (sub_object->composition_flag & 0x40) + gp_rect->flags |= AV_SUBTITLE_FLAG_FORCED; - -- /* Process bitmap */ -- object = find_object(ctx->presentation.objects[i].id, &ctx->objects); -- if (!object) { -- // Missing object. Should only happen with damaged streams. -- av_log(avctx, AV_LOG_ERROR, "Invalid object id %d\n", -- ctx->presentation.objects[i].id); -- if (avctx->err_recognition & AV_EF_EXPLODE) -- return AVERROR_INVALIDDATA; -- // Leaves rect empty with 0 width and height. -- continue; -- } -- if (ctx->presentation.objects[i].composition_flag & 0x40) -- rect->flags |= AV_SUBTITLE_FLAG_FORCED; ++ + gp_rect->x = sub_object->x; + gp_rect->y = sub_object->y; - -- rect->x = ctx->presentation.objects[i].x; -- rect->y = ctx->presentation.objects[i].y; ++ + if (object->rle) { + int out_of_picture = 0; + gp_rect->w = object->w; @@ -2099,10 +976,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu + gp_rect->linesize[0] = sub_object->crop_w; + } + } - -- if (object->rle) { -- rect->w = object->w; -- rect->h = object->h; ++ + /* Make sure the subtitle is not out of picture. */ + if (avctx->width < gp_rect->x + gp_rect->w || !gp_rect->w) + out_of_picture = 1; @@ -2120,13 +994,26 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu + continue; + } -- rect->linesize[0] = object->w; +- rect->x = ctx->presentation.objects[i].x; +- rect->y = ctx->presentation.objects[i].y; + if (!object->bitmap_size || object->rle_remaining_len) { + gp_rect->w = 0; + gp_rect->h = 0; + continue; + } +- if (object->rle) { +- rect->w = object->w; +- rect->h = object->h; ++ gp_rect->data[0] = av_malloc_array(gp_rect->w, gp_rect->h); ++ if (!gp_rect->data[0]) ++ return AVERROR(ENOMEM); + +- rect->linesize[0] = object->w; ++ if (sub_object->composition_flag & 0x80) { ++ /* Copy cropped bitmap. */ ++ int y; + - if (object->rle_remaining_len) { - av_log(avctx, AV_LOG_ERROR, "RLE data length %u is %u bytes shorter than expected\n", - object->rle_data_len, object->rle_remaining_len); @@ -2138,14 +1025,6 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu - if ((avctx->err_recognition & AV_EF_EXPLODE) || - ret == AVERROR(ENOMEM)) { - return ret; -+ gp_rect->data[0] = av_malloc_array(gp_rect->w, gp_rect->h); -+ if (!gp_rect->data[0]) -+ return AVERROR(ENOMEM); -+ -+ if (sub_object->composition_flag & 0x80) { -+ /* Copy cropped bitmap. */ -+ int y; -+ + for (y = 0; y < sub_object->crop_h; y++) { + memcpy(&gp_rect->data[0][y * sub_object->crop_w], + &object->bitmap[(sub_object->crop_y + y) * @@ -2181,7 +1060,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu rect->data[1] = av_mallocz(AVPALETTE_SIZE); if (!rect->data[1]) return AVERROR(ENOMEM); -@@ -641,14 +800,7 @@ +@@ -641,14 +800,7 @@ static int decode(AVCodecContext *avctx, AVSubtitle *sub, ret = parse_presentation_segment(avctx, buf, segment_length, sub->pts); break; case WINDOW_SEGMENT: @@ -2197,24 +1076,11 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/pgssubdec.c ffmpeg-7.1.2/libavcodec/pgssu break; case DISPLAY_SEGMENT: if (*got_sub_ptr) { -diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc_av1.c ffmpeg-7.1.2/libavcodec/qsvenc_av1.c ---- ffmpeg-7.1.2.old/libavcodec/qsvenc_av1.c 2025-10-27 10:07:00.531473480 +0100 -+++ ffmpeg-7.1.2/libavcodec/qsvenc_av1.c 2025-10-27 10:07:02.443863055 +0100 -@@ -189,6 +189,10 @@ - { "tile_cols", "Number of columns for tiled encoding", OFFSET(qsv.tile_cols), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, UINT16_MAX, VE }, - { "tile_rows", "Number of rows for tiled encoding", OFFSET(qsv.tile_rows), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, UINT16_MAX, VE }, - { "look_ahead_depth", "Depth of look ahead in number frames, available when extbrc option is enabled", OFFSET(qsv.look_ahead_depth), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 100, VE }, -+#if QSV_HAVE_EXT_AV1_SCC -+ { "palette_mode", "Enable palette mode of Screen Content Tool for encoding", OFFSET(qsv.palette_mode), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, VE}, -+ { "intrabc", "Enable intra block copy of Screen Content Tool for encoding", OFFSET(qsv.intrabc), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, VE}, -+#endif - { NULL }, - }; - -diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.c ffmpeg-7.1.2/libavcodec/qsvenc.c ---- ffmpeg-7.1.2.old/libavcodec/qsvenc.c 2025-10-27 10:07:00.592474018 +0100 -+++ ffmpeg-7.1.2/libavcodec/qsvenc.c 2025-10-27 10:07:02.443621469 +0100 -@@ -494,6 +494,9 @@ +diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c +index fc1b879..eb0c116 100644 +--- a/libavcodec/qsvenc.c ++++ b/libavcodec/qsvenc.c +@@ -492,6 +492,9 @@ static void dump_video_av1_param(AVCodecContext *avctx, QSVEncContext *q, mfxExtAV1BitstreamParam *av1_bs_param = (mfxExtAV1BitstreamParam *)coding_opts[1]; mfxExtCodingOption2 *co2 = (mfxExtCodingOption2*)coding_opts[2]; mfxExtCodingOption3 *co3 = (mfxExtCodingOption3*)coding_opts[3]; @@ -2224,7 +1090,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.c ffmpeg-7.1.2/libavcodec/qsvenc.c av_log(avctx, AV_LOG_VERBOSE, "profile: %s; level: %"PRIu16"\n", print_profile(avctx->codec_id, info->CodecProfile), info->CodecLevel); -@@ -566,6 +569,13 @@ +@@ -564,6 +567,13 @@ static void dump_video_av1_param(AVCodecContext *avctx, QSVEncContext *q, print_threestate(av1_bs_param->WriteIVFHeaders)); av_log(avctx, AV_LOG_VERBOSE, "LowDelayBRC: %s\n", print_threestate(co3->LowDelayBRC)); av_log(avctx, AV_LOG_VERBOSE, "MaxFrameSize: %d;\n", co2->MaxFrameSize); @@ -2238,7 +1104,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.c ffmpeg-7.1.2/libavcodec/qsvenc.c } #endif -@@ -1282,6 +1292,28 @@ +@@ -1280,6 +1290,28 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q) } #endif @@ -2267,7 +1133,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.c ffmpeg-7.1.2/libavcodec/qsvenc.c if (!check_enc_param(avctx,q)) { av_log(avctx, AV_LOG_ERROR, "some encoding parameters are not supported by the QSV " -@@ -1389,11 +1421,21 @@ +@@ -1387,11 +1419,21 @@ static int qsv_retrieve_enc_av1_params(AVCodecContext *avctx, QSVEncContext *q) .Header.BufferSz = sizeof(co3), }; @@ -2289,7 +1155,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.c ffmpeg-7.1.2/libavcodec/qsvenc.c }; if (!QSV_RUNTIME_VERSION_ATLEAST(q->ver, 2, 5)) { -@@ -1842,6 +1884,13 @@ +@@ -1840,6 +1882,13 @@ int ff_qsv_enc_init(AVCodecContext *avctx, QSVEncContext *q) return ret; } @@ -2303,9 +1169,10 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.c ffmpeg-7.1.2/libavcodec/qsvenc.c q->avctx = avctx; return 0; -diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.h ffmpeg-7.1.2/libavcodec/qsvenc.h ---- ffmpeg-7.1.2.old/libavcodec/qsvenc.h 2025-10-27 10:07:00.282471283 +0100 -+++ ffmpeg-7.1.2/libavcodec/qsvenc.h 2025-10-27 10:07:02.443799916 +0100 +diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h +index 4bc77f2..2e0a19b 100644 +--- a/libavcodec/qsvenc.h ++++ b/libavcodec/qsvenc.h @@ -38,6 +38,7 @@ #define QSV_HAVE_EXT_VP9_TILES QSV_VERSION_ATLEAST(1, 29) @@ -2314,7 +1181,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.h ffmpeg-7.1.2/libavcodec/qsvenc.h #if defined(_WIN32) || defined(__CYGWIN__) #define QSV_HAVE_AVBR 1 -@@ -188,10 +189,13 @@ +@@ -188,10 +189,13 @@ typedef struct QSVEncContext { mfxFrameSurface1 **opaque_surfaces; AVBufferRef *opaque_alloc_buf; #endif @@ -2329,7 +1196,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.h ffmpeg-7.1.2/libavcodec/qsvenc.h int nb_extparam_internal; mfxExtBuffer **extparam_str; -@@ -319,6 +323,8 @@ +@@ -319,6 +323,8 @@ typedef struct QSVEncContext { int dual_gfx; AVDictionary *qsv_params; @@ -2338,157 +1205,26 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/qsvenc.h ffmpeg-7.1.2/libavcodec/qsvenc.h } QSVEncContext; int ff_qsv_enc_init(AVCodecContext *avctx, QSVEncContext *q); -diff -Naur ffmpeg-7.1.2.old/libavcodec/videotoolbox_av1.c ffmpeg-7.1.2/libavcodec/videotoolbox_av1.c ---- ffmpeg-7.1.2.old/libavcodec/videotoolbox_av1.c 1970-01-01 01:00:00.000000000 +0100 -+++ ffmpeg-7.1.2/libavcodec/videotoolbox_av1.c 2025-10-27 10:07:02.455024552 +0100 -@@ -0,0 +1,105 @@ -+/* -+ * Videotoolbox hardware acceleration for AV1 -+ * Copyright (c) 2023 Jan Ekström -+ * Copyright (c) 2024 Ruslan Chernenko -+ * Copyright (c) 2024 Martin Storsjö -+ * -+ * This file is part of FFmpeg. -+ * -+ * FFmpeg is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * FFmpeg is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with FFmpeg; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+ */ -+ -+#include "libavutil/mem.h" -+ -+#include "av1dec.h" -+#include "hwaccel_internal.h" -+#include "internal.h" -+#include "vt_internal.h" -+ -+CFDataRef ff_videotoolbox_av1c_extradata_create(AVCodecContext *avctx) -+{ -+ AV1DecContext *s = avctx->priv_data; -+ uint8_t *buf; -+ CFDataRef data; -+ if (!s->raw_seq) -+ return NULL; -+ -+ buf = av_malloc(s->seq_data_ref->size + 4); -+ if (!buf) -+ return NULL; -+ buf[0] = 0x81; // version and marker (constant) -+ buf[1] = s->raw_seq->seq_profile << 5 | s->raw_seq->seq_level_idx[0]; -+ buf[2] = s->raw_seq->seq_tier[0] << 7 | -+ s->raw_seq->color_config.high_bitdepth << 6 | -+ s->raw_seq->color_config.twelve_bit << 5 | -+ s->raw_seq->color_config.mono_chrome << 4 | -+ s->raw_seq->color_config.subsampling_x << 3 | -+ s->raw_seq->color_config.subsampling_y << 2 | -+ s->raw_seq->color_config.chroma_sample_position; -+ -+ if (s->raw_seq->initial_display_delay_present_flag) -+ buf[3] = 0 << 5 | -+ s->raw_seq->initial_display_delay_present_flag << 4 | -+ s->raw_seq->initial_display_delay_minus_1[0]; -+ else -+ buf[3] = 0x00; -+ memcpy(buf + 4, s->seq_data_ref->data, s->seq_data_ref->size); -+ data = CFDataCreate(kCFAllocatorDefault, buf, s->seq_data_ref->size + 4); -+ av_free(buf); -+ return data; -+}; -+ -+ -+static int videotoolbox_av1_start_frame(AVCodecContext *avctx, -+ const uint8_t *buffer, -+ uint32_t size) -+{ -+ return 0; -+} -+ -+static int videotoolbox_av1_decode_slice(AVCodecContext *avctx, -+ const uint8_t *buffer, -+ uint32_t size) -+{ -+ return 0; -+} -+ -+static int videotoolbox_av1_end_frame(AVCodecContext *avctx) -+{ -+ const AV1DecContext *s = avctx->priv_data; -+ VTContext *vtctx = avctx->internal->hwaccel_priv_data; -+ AVFrame *frame = s->cur_frame.f; -+ -+ vtctx->bitstream_size = 0; -+ for (int i = s->start_unit; i < s->nb_unit; i++) -+ ff_videotoolbox_buffer_append(vtctx, s->current_obu.units[i].data, -+ s->current_obu.units[i].data_size); -+ return ff_videotoolbox_common_end_frame(avctx, frame); -+} -+ -+const FFHWAccel ff_av1_videotoolbox_hwaccel = { -+ .p.name = "av1_videotoolbox", -+ .p.type = AVMEDIA_TYPE_VIDEO, -+ .p.id = AV_CODEC_ID_AV1, -+ .p.pix_fmt = AV_PIX_FMT_VIDEOTOOLBOX, -+ .alloc_frame = ff_videotoolbox_alloc_frame, -+ .start_frame = videotoolbox_av1_start_frame, -+ .decode_slice = videotoolbox_av1_decode_slice, -+ .end_frame = videotoolbox_av1_end_frame, -+ .frame_params = ff_videotoolbox_frame_params, -+ .init = ff_videotoolbox_common_init, -+ .uninit = ff_videotoolbox_uninit, -+ .priv_data_size = sizeof(VTContext), -+}; -diff -Naur ffmpeg-7.1.2.old/libavcodec/videotoolbox.c ffmpeg-7.1.2/libavcodec/videotoolbox.c ---- ffmpeg-7.1.2.old/libavcodec/videotoolbox.c 2025-10-27 10:07:00.379472139 +0100 -+++ ffmpeg-7.1.2/libavcodec/videotoolbox.c 2025-10-27 10:07:02.456490466 +0100 -@@ -56,6 +56,10 @@ - enum { kCMVideoCodecType_VP9 = 'vp09' }; - #endif - -+#if !HAVE_KCMVIDEOCODECTYPE_AV1 -+enum { kCMVideoCodecType_AV1 = 'av01' }; +diff --git a/libavcodec/qsvenc_av1.c b/libavcodec/qsvenc_av1.c +index c7aa6e5..5edb5f3 100644 +--- a/libavcodec/qsvenc_av1.c ++++ b/libavcodec/qsvenc_av1.c +@@ -189,6 +189,10 @@ static const AVOption options[] = { + { "tile_cols", "Number of columns for tiled encoding", OFFSET(qsv.tile_cols), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, UINT16_MAX, VE }, + { "tile_rows", "Number of rows for tiled encoding", OFFSET(qsv.tile_rows), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, UINT16_MAX, VE }, + { "look_ahead_depth", "Depth of look ahead in number frames, available when extbrc option is enabled", OFFSET(qsv.look_ahead_depth), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 100, VE }, ++#if QSV_HAVE_EXT_AV1_SCC ++ { "palette_mode", "Enable palette mode of Screen Content Tool for encoding", OFFSET(qsv.palette_mode), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, VE}, ++ { "intrabc", "Enable intra block copy of Screen Content Tool for encoding", OFFSET(qsv.intrabc), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, VE}, +#endif -+ - #define VIDEOTOOLBOX_ESDS_EXTRADATA_PADDING 12 + { NULL }, + }; - typedef struct VTHWFrame { -@@ -92,6 +96,26 @@ - return 0; - } - -+int ff_videotoolbox_buffer_append(VTContext *vtctx, -+ const uint8_t *buffer, -+ uint32_t size) -+{ -+ void *tmp; -+ -+ tmp = av_fast_realloc(vtctx->bitstream, -+ &vtctx->allocated_size, -+ vtctx->bitstream_size + size); -+ -+ if (!tmp) -+ return AVERROR(ENOMEM); -+ -+ vtctx->bitstream = tmp; -+ memcpy(vtctx->bitstream + vtctx->bitstream_size, buffer, size); -+ vtctx->bitstream_size += size; -+ -+ return 0; -+} -+ - static int videotoolbox_postproc_frame(void *avctx, AVFrame *frame) - { - int ret; -@@ -108,9 +132,6 @@ +diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c +index 2cd22cb..247ac19 100644 +--- a/libavcodec/videotoolbox.c ++++ b/libavcodec/videotoolbox.c +@@ -132,9 +132,6 @@ static int videotoolbox_postproc_frame(void *avctx, AVFrame *frame) frame->crop_top = 0; frame->crop_bottom = 0; @@ -2498,7 +1234,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/videotoolbox.c ffmpeg-7.1.2/libavcodec/vi frame->data[3] = (uint8_t*)ref->pixbuf; if (ref->hw_frames_ctx) { -@@ -790,7 +811,7 @@ +@@ -820,7 +817,7 @@ static CFDictionaryRef videotoolbox_buffer_attributes_create(int width, #if TARGET_OS_IPHONE CFDictionarySetValue(buffer_attributes, kCVPixelBufferOpenGLESCompatibilityKey, kCFBooleanTrue); #else @@ -2507,28 +1243,7 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/videotoolbox.c ffmpeg-7.1.2/libavcodec/vi #endif CFRelease(io_surface_properties); -@@ -847,6 +868,13 @@ - CFDictionarySetValue(avc_info, CFSTR("vpcC"), data); - break; - #endif -+#if CONFIG_AV1_VIDEOTOOLBOX_HWACCEL -+ case kCMVideoCodecType_AV1 : -+ data = ff_videotoolbox_av1c_extradata_create(avctx); -+ if (data) -+ CFDictionarySetValue(avc_info, CFSTR("av1C"), data); -+ break; -+#endif - default: - break; - } -@@ -912,10 +940,30 @@ - case AV_CODEC_ID_VP9 : - videotoolbox->cm_codec_type = kCMVideoCodecType_VP9; - break; -+ case AV_CODEC_ID_AV1 : -+ videotoolbox->cm_codec_type = kCMVideoCodecType_AV1; -+ break; - default : +@@ -956,6 +953,23 @@ static int videotoolbox_start(AVCodecContext *avctx) break; } @@ -2552,31 +1267,11 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/videotoolbox.c ffmpeg-7.1.2/libavcodec/vi #if defined(MAC_OS_X_VERSION_10_9) && !TARGET_OS_IPHONE && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_9) && AV_HAS_BUILTIN(__builtin_available) if (avctx->codec_id == AV_CODEC_ID_PRORES) { if (__builtin_available(macOS 10.9, *)) { -diff -Naur ffmpeg-7.1.2.old/libavcodec/vt_internal.h ffmpeg-7.1.2/libavcodec/vt_internal.h ---- ffmpeg-7.1.2.old/libavcodec/vt_internal.h 2025-10-27 10:07:00.531473480 +0100 -+++ ffmpeg-7.1.2/libavcodec/vt_internal.h 2025-10-27 10:07:02.455086969 +0100 -@@ -56,6 +56,9 @@ - int ff_videotoolbox_buffer_copy(VTContext *vtctx, - const uint8_t *buffer, - uint32_t size); -+int ff_videotoolbox_buffer_append(VTContext *vtctx, -+ const uint8_t *buffer, -+ uint32_t size); - int ff_videotoolbox_uninit(AVCodecContext *avctx); - int ff_videotoolbox_h264_start_frame(AVCodecContext *avctx, - const uint8_t *buffer, -@@ -64,6 +67,7 @@ - const uint8_t *buffer, - uint32_t size); - int ff_videotoolbox_common_end_frame(AVCodecContext *avctx, AVFrame *frame); -+CFDataRef ff_videotoolbox_av1c_extradata_create(AVCodecContext *avctx); - CFDataRef ff_videotoolbox_avcc_extradata_create(AVCodecContext *avctx); - CFDataRef ff_videotoolbox_hvcc_extradata_create(AVCodecContext *avctx); - CFDataRef ff_videotoolbox_vpcc_extradata_create(AVCodecContext *avctx); -diff -Naur ffmpeg-7.1.2.old/libavfilter/vf_vpp_qsv.c ffmpeg-7.1.2/libavfilter/vf_vpp_qsv.c ---- ffmpeg-7.1.2.old/libavfilter/vf_vpp_qsv.c 2025-10-27 10:07:00.764475536 +0100 -+++ ffmpeg-7.1.2/libavfilter/vf_vpp_qsv.c 2025-10-27 10:07:02.461658339 +0100 -@@ -494,9 +494,9 @@ +diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c +index 4de99d6..182bbf7 100644 +--- a/libavfilter/vf_vpp_qsv.c ++++ b/libavfilter/vf_vpp_qsv.c +@@ -494,9 +494,9 @@ static int vpp_set_frame_ext_params(AVFilterContext *ctx, const AVFrame *in, AVF outvsi_conf.Header.BufferId = MFX_EXTBUFF_VIDEO_SIGNAL_INFO_OUT; outvsi_conf.Header.BufferSz = sizeof(mfxExtVideoSignalInfo); outvsi_conf.VideoFullRange = (out->color_range == AVCOL_RANGE_JPEG); @@ -2589,10 +1284,11 @@ diff -Naur ffmpeg-7.1.2.old/libavfilter/vf_vpp_qsv.c ffmpeg-7.1.2/libavfilter/vf outvsi_conf.ColourDescriptionPresent = 1; if (memcmp(&vpp->invsi_conf, &invsi_conf, sizeof(mfxExtVideoSignalInfo)) || -diff -Naur ffmpeg-7.1.2.old/libavformat/isom.h ffmpeg-7.1.2/libavformat/isom.h ---- ffmpeg-7.1.2.old/libavformat/isom.h 2025-10-27 10:07:00.909476815 +0100 -+++ ffmpeg-7.1.2/libavformat/isom.h 2025-10-27 10:07:02.422783282 +0100 -@@ -272,6 +272,9 @@ +diff --git a/libavformat/isom.h b/libavformat/isom.h +index d7e1385..8fbc4d0 100644 +--- a/libavformat/isom.h ++++ b/libavformat/isom.h +@@ -282,6 +282,9 @@ typedef struct MOVStreamContext { MOVEncryptionIndex *encryption_index; } cenc; @@ -2600,12 +1296,13 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/isom.h ffmpeg-7.1.2/libavformat/isom.h + int fallback; + struct IAMFDemuxContext *iamf; + int iamf_stream_offset; } MOVStreamContext; - -diff -Naur ffmpeg-7.1.2.old/libavformat/matroskaenc.c ffmpeg-7.1.2/libavformat/matroskaenc.c ---- ffmpeg-7.1.2.old/libavformat/matroskaenc.c 2025-10-27 10:07:00.955477221 +0100 -+++ ffmpeg-7.1.2/libavformat/matroskaenc.c 2025-10-27 10:07:02.430490236 +0100 -@@ -2933,6 +2933,16 @@ +diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c +index 2c85672..8250c96 100644 +--- a/libavformat/matroskaenc.c ++++ b/libavformat/matroskaenc.c +@@ -2994,6 +2994,16 @@ static int mkv_check_new_extra_data(AVFormatContext *s, const AVPacket *pkt) case AV_CODEC_ID_AAC: if (side_data_size && mkv->track.bc) { int output_sample_rate = 0; @@ -2622,10 +1319,11 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/matroskaenc.c ffmpeg-7.1.2/libavformat/m ret = get_aac_sample_rates(s, mkv, side_data, side_data_size, &track->sample_rate, &output_sample_rate); if (ret < 0) -diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c ---- ffmpeg-7.1.2.old/libavformat/mov.c 2025-10-27 10:07:00.889476639 +0100 -+++ ffmpeg-7.1.2/libavformat/mov.c 2025-10-27 10:07:02.447584145 +0100 -@@ -56,6 +56,7 @@ +diff --git a/libavformat/mov.c b/libavformat/mov.c +index 222d79e..eb0de62 100644 +--- a/libavformat/mov.c ++++ b/libavformat/mov.c +@@ -57,6 +57,7 @@ #include "libavcodec/mpegaudiodecheader.h" #include "libavcodec/mlp_parse.h" #include "avformat.h" @@ -2633,7 +1331,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c #include "internal.h" #include "avio_internal.h" #include "demux.h" -@@ -131,6 +132,33 @@ +@@ -131,6 +132,33 @@ static int mov_metadata_int8_no_padding(MOVContext *c, AVIOContext *pb, return 0; } @@ -2667,7 +1365,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c static int mov_metadata_gnre(MOVContext *c, AVIOContext *pb, unsigned len, const char *key) { -@@ -342,6 +370,73 @@ +@@ -342,6 +370,73 @@ static int mov_metadata_hmmt(MOVContext *c, AVIOContext *pb, unsigned len) return 0; } @@ -2741,15 +1439,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) { char tmp_key[AV_FOURCC_MAX_STRING_SIZE] = {0}; -@@ -354,6 +449,7 @@ - int (*parse)(MOVContext*, AVIOContext*, unsigned, const char*) = NULL; - int raw = 0; - int num = 0; -+ AVDictionary *metadata; - - switch (atom.type) { - case MKTAG( '@','P','R','M'): key = "premiere_version"; raw = 1; break; -@@ -364,35 +460,71 @@ +@@ -370,36 +465,71 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) case MKTAG( 'a','k','I','D'): key = "account_type"; parse = mov_metadata_int8_no_padding; break; case MKTAG( 'a','p','I','D'): key = "account_id"; break; @@ -2806,6 +1496,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c return mov_metadata_loci(c, pb, atom.size); case MKTAG( 'm','a','n','u'): key = "make"; break; case MKTAG( 'm','o','d','l'): key = "model"; break; +- case MKTAG( 'n','a','m','e'): key = "name"; break; + case MKTAG( 'n','a','m','e'): key = "title"; raw = 1; break; case MKTAG( 'p','c','s','t'): key = "podcast"; parse = mov_metadata_int8_no_padding; break; @@ -2824,7 +1515,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c case MKTAG( 's','o','a','a'): key = "sort_album_artist"; break; case MKTAG( 's','o','a','l'): key = "sort_album"; break; case MKTAG( 's','o','a','r'): key = "sort_artist"; break; -@@ -401,6 +533,8 @@ +@@ -408,6 +538,8 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) case MKTAG( 's','o','s','n'): key = "sort_show"; break; case MKTAG( 's','t','i','k'): key = "media_type"; parse = mov_metadata_int8_no_padding; break; @@ -2833,7 +1524,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c case MKTAG( 't','r','k','n'): key = "track"; parse = mov_metadata_track_or_disc_number; break; case MKTAG( 't','v','e','n'): key = "episode_id"; break; -@@ -410,17 +544,23 @@ +@@ -417,17 +549,23 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) case MKTAG( 't','v','s','h'): key = "show"; break; case MKTAG( 't','v','s','n'): key = "season_number"; parse = mov_metadata_int8_bypass_padding; break; @@ -2858,7 +1549,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c case MKTAG(0xa9,'e','d','1'): key = "edit_date"; break; case MKTAG(0xa9,'e','n','c'): key = "encoder"; break; case MKTAG(0xa9,'f','m','t'): key = "original_format"; break; -@@ -428,23 +568,45 @@ +@@ -435,23 +573,45 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) case MKTAG(0xa9,'g','r','p'): key = "grouping"; break; case MKTAG(0xa9,'h','s','t'): key = "host_computer"; break; case MKTAG(0xa9,'i','n','f'): key = "comment"; break; @@ -2904,40 +1595,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c } retry: if (c->itunes_metadata && atom.size > 8) { -@@ -571,17 +733,23 @@ - } - str[str_size] = 0; - } -- c->fc->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; -- av_dict_set(&c->fc->metadata, key, str, 0); -+ if (c->trak_index < 0) { -+ metadata = c->fc->metadata; -+ c->fc->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; -+ if (!strcmp(key, "encoder")) { -+ int major, minor, micro; -+ if (sscanf(str, "HandBrake %d.%d.%d", &major, &minor, µ) == 3) { -+ c->handbrake_version = 1000000*major + 1000*minor + micro; -+ } -+ } -+ } -+ else { -+ metadata = c->fc->streams[c->trak_index]->metadata; -+ } -+ av_dict_set(&metadata, key, str, 0); - if (*language && strcmp(language, "und")) { - snprintf(key2, sizeof(key2), "%s-%s", key, language); -- av_dict_set(&c->fc->metadata, key2, str, 0); -- } -- if (!strcmp(key, "encoder")) { -- int major, minor, micro; -- if (sscanf(str, "HandBrake %d.%d.%d", &major, &minor, µ) == 3) { -- c->handbrake_version = 1000000*major + 1000*minor + micro; -- } -+ av_dict_set(&metadata, key2, str, 0); - } - } - -@@ -9088,6 +9256,23 @@ +@@ -9514,6 +9674,22 @@ fail: return ret; } @@ -2956,12 +1614,11 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c + + return 0; +} -+ + static const MOVParseTableEntry mov_default_parse_table[] = { { MKTAG('A','C','L','R'), mov_read_aclr }, { MKTAG('A','P','R','G'), mov_read_avid }, -@@ -9190,6 +9375,7 @@ +@@ -9616,6 +9792,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = { { MKTAG('v','p','c','C'), mov_read_vpcc }, { MKTAG('m','d','c','v'), mov_read_mdcv }, { MKTAG('c','l','l','i'), mov_read_clli }, @@ -2969,7 +1626,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c { MKTAG('d','v','c','C'), mov_read_dvcc_dvvc }, { MKTAG('d','v','v','C'), mov_read_dvcc_dvvc }, { MKTAG('d','v','w','C'), mov_read_dvcc_dvvc }, -@@ -10374,6 +10560,23 @@ +@@ -11071,6 +11248,23 @@ static int mov_read_header(AVFormatContext *s) err = ff_replaygain_export(st, s->metadata); if (err < 0) return err; @@ -2979,9 +1636,9 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c + AVPacketSideData *sd; + int *fallback; + sd = av_packet_side_data_new(&st->codecpar->coded_side_data, -+ &st->codecpar->nb_coded_side_data, -+ AV_PKT_DATA_FALLBACK_TRACK, -+ sizeof(int), 0); ++ &st->codecpar->nb_coded_side_data, ++ AV_PKT_DATA_FALLBACK_TRACK, ++ sizeof(int), 0); + if (!sd) + return AVERROR(ENOMEM); + fallback = (int*)sd->data; @@ -2993,9 +1650,10 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/mov.c ffmpeg-7.1.2/libavformat/mov.c break; case AVMEDIA_TYPE_VIDEO: if (sc->display_matrix) { -diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc.c ---- ffmpeg-7.1.2.old/libavformat/movenc.c 2025-10-27 10:07:00.933477027 +0100 -+++ ffmpeg-7.1.2/libavformat/movenc.c 2025-10-27 10:07:02.463726465 +0100 +diff --git a/libavformat/movenc.c b/libavformat/movenc.c +index fe6b259..89ec962 100644 +--- a/libavformat/movenc.c ++++ b/libavformat/movenc.c @@ -28,6 +28,7 @@ #include "movenc.h" @@ -3004,78 +1662,39 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc #include "avio_internal.h" #include "dovi_isom.h" #include "riff.h" -@@ -393,6 +394,8 @@ - uint16_t chan_loc; - /* if there is no dependent substream, then one bit reserved instead */ - } substream[1]; /* TODO: support 8 independent substreams */ -+ /* indicates the decoding complexity, 8 bits */ -+ uint8_t complexity_index_type_a; - }; +@@ -1001,6 +1002,15 @@ static int mov_write_chan_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *tra + if (track->multichannel_as_mono) + return 0; - static int mov_write_ac3_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) -@@ -474,6 +477,8 @@ - info->data_rate = FFMAX(info->data_rate, hdr->bit_rate / 1000); - info->ac3_bit_rate_code = FFMAX(info->ac3_bit_rate_code, - hdr->ac3_bit_rate_code); -+ info->complexity_index_type_a = hdr->complexity_index_type_a; -+ - num_blocks = hdr->num_blocks; - - if (!info->ec3_done) { -@@ -532,8 +537,6 @@ - int parent = hdr->substreamid; - - while (cumul_size != pkt->size) { -- GetBitContext gbc; -- int i; - ret = avpriv_ac3_parse_header(&hdr, pkt->data + cumul_size, pkt->size - cumul_size); - if (ret < 0) - goto end; -@@ -544,20 +547,9 @@ - info->substream[parent].num_dep_sub++; - ret /= 8; - -- /* header is parsed up to lfeon, but custom channel map may be needed */ -- init_get_bits8(&gbc, pkt->data + cumul_size + ret, pkt->size - cumul_size - ret); -- /* skip bsid */ -- skip_bits(&gbc, 5); -- /* skip volume control params */ -- for (i = 0; i < (hdr->channel_mode ? 1 : 2); i++) { -- skip_bits(&gbc, 5); // skip dialog normalization -- if (get_bits1(&gbc)) { -- skip_bits(&gbc, 8); // skip compression gain word -- } -- } - /* get the dependent stream channel map, if exists */ -- if (get_bits1(&gbc)) -- info->substream[parent].chan_loc |= (get_bits(&gbc, 16) >> 5) & 0x1f; -+ if (hdr->channel_map_present) -+ info->substream[parent].chan_loc |= (hdr->channel_map >> 5) & 0x1f; - else - info->substream[parent].chan_loc |= hdr->channel_mode; - cumul_size += hdr->frame_size; -@@ -614,7 +606,7 @@ - } - - info = track->eac3_priv; -- size = 2 + ((32 * (info->num_ind_sub + 1) + 7) >> 3); -+ size = 2 + (4 * (info->num_ind_sub + 1)) + (2 * !!info->complexity_index_type_a); - buf = av_malloc(size); - if (!buf) { - return AVERROR(ENOMEM); -@@ -639,6 +631,11 @@ - put_bits(&pbc, 9, info->substream[i].chan_loc); - } - } -+ if (info->complexity_index_type_a) { -+ put_bits(&pbc, 7, 0); /* reserved */ -+ put_bits(&pbc, 1, 1); // flag_eac3_extension_type_a -+ put_bits(&pbc, 8, info->complexity_index_type_a); ++ // Custom channels layout is not handled properly for these formats ++ // unset it for now, it will fallback to the layout stored in the extradata ++ // TODO: find the reason ++ if (track->par->codec_id == AV_CODEC_ID_AAC || ++ track->par->codec_id == AV_CODEC_ID_ALAC) ++ { ++ return 0; + } - flush_put_bits(&pbc); - size = put_bytes_output(&pbc); ++ + ret = ff_mov_get_channel_layout_tag(track->par, &layout_tag, + &bitmap, &channel_desc); -@@ -4055,6 +4052,41 @@ +@@ -1373,11 +1383,13 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex + int64_t pos = avio_tell(pb); + int version = 0; + uint32_t tag = track->tag; ++ int lpcm_flags = 0; + int ret = 0; + + if (track->mode == MODE_MOV) { +- if (track->timescale > UINT16_MAX || !track->par->ch_layout.nb_channels) { +- if (mov_get_lpcm_flags(track->par->codec_id)) ++ lpcm_flags = mov_get_lpcm_flags(track->par->codec_id); ++ if (track->timescale > UINT16_MAX || track->par->ch_layout.nb_channels > 2 || lpcm_flags) { ++ if (lpcm_flags) + tag = AV_RL32("lpcm"); + version = 2; + } else if (track->audio_vbr || mov_pcm_le_gt16(track->par->codec_id) || +@@ -4244,6 +4256,41 @@ static int mov_write_udta_sdp(AVIOContext *pb, MOVTrack *track) return len + 24; } @@ -3117,7 +1736,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc static int mov_write_track_metadata(AVIOContext *pb, AVStream *st, const char *tag, const char *str) { -@@ -4129,8 +4161,23 @@ +@@ -4318,8 +4365,23 @@ static int mov_write_track_udta_tag(AVIOContext *pb, MOVMuxContext *mov, if (ret < 0) return ret; @@ -3142,7 +1761,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc if (mov->mode & MODE_MP4) { if ((ret = mov_write_track_kinds(pb_buf, st)) < 0) -@@ -4505,20 +4552,66 @@ +@@ -4694,20 +4756,66 @@ static int mov_write_trkn_tag(AVIOContext *pb, MOVMuxContext *mov, return size; } @@ -3212,7 +1831,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc avio_wb32(pb, size); ffio_wfourcc(pb, name); -@@ -4526,7 +4619,9 @@ +@@ -4715,7 +4823,9 @@ static int mov_write_int8_metadata(AVFormatContext *s, AVIOContext *pb, ffio_wfourcc(pb, "data"); avio_wb32(pb, 0x15); avio_wb32(pb, 0); @@ -3223,7 +1842,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc else avio_w8 (pb, num); return size; -@@ -4582,6 +4677,8 @@ +@@ -4771,6 +4881,8 @@ static int mov_write_ilst_tag(AVIOContext *pb, MOVMuxContext *mov, mov_write_string_metadata(s, pb, "\251lyr", "lyrics" , 1); mov_write_string_metadata(s, pb, "desc", "description",1); mov_write_string_metadata(s, pb, "ldes", "synopsis" , 1); @@ -3232,7 +1851,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc mov_write_string_metadata(s, pb, "tvsh", "show" , 1); mov_write_string_metadata(s, pb, "tven", "episode_id",1); mov_write_string_metadata(s, pb, "tvnn", "network" , 1); -@@ -4592,10 +4689,67 @@ +@@ -4781,10 +4893,67 @@ static int mov_write_ilst_tag(AVIOContext *pb, MOVMuxContext *mov, mov_write_int8_metadata (s, pb, "hdvd", "hd_video", 1); mov_write_int8_metadata (s, pb, "pgap", "gapless_playback",1); mov_write_int8_metadata (s, pb, "cpil", "compilation", 1); @@ -3300,7 +1919,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc return update_size(pb, pos); } -@@ -4727,35 +4881,6 @@ +@@ -4916,35 +5085,6 @@ static int ascii_to_wc(AVIOContext *pb, const uint8_t *b) return 0; } @@ -3336,7 +1955,7 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc static int mov_write_chpl_tag(AVIOContext *pb, AVFormatContext *s) { int64_t pos = avio_tell(pb); -@@ -4794,14 +4919,14 @@ +@@ -4983,14 +5123,14 @@ static int mov_write_udta_tag(AVIOContext *pb, MOVMuxContext *mov, return ret; if (mov->mode & MODE_3GP) { @@ -3359,37 +1978,117 @@ diff -Naur ffmpeg-7.1.2.old/libavformat/movenc.c ffmpeg-7.1.2/libavformat/movenc mov_write_loci_tag(s, pb_buf); } else if (mov->mode == MODE_MOV && !(mov->flags & FF_MOV_FLAG_USE_MDTA)) { // the title field breaks gtkpod with mp4 and my suspicion is that stuff is not valid in mp4 mov_write_string_metadata(s, pb_buf, "\251ART", "artist", 0); -diff -Naur ffmpeg-7.1.2.old/libavutil/frame.c ffmpeg-7.1.2/libavutil/frame.c ---- ffmpeg-7.1.2.old/libavutil/frame.c 2025-10-27 10:07:00.804475889 +0100 -+++ ffmpeg-7.1.2/libavutil/frame.c 2025-10-27 10:07:02.436386459 +0100 -@@ -45,6 +45,7 @@ - [AV_FRAME_DATA_FILM_GRAIN_PARAMS] = { "Film grain parameters" }, - [AV_FRAME_DATA_DETECTION_BBOXES] = { "Bounding boxes for object detection and classification" }, - [AV_FRAME_DATA_DOVI_RPU_BUFFER] = { "Dolby Vision RPU Data" }, -+ [AV_FRAME_DATA_DOVI_RPU_BUFFER_T35] = { "Dolby Vision RPU ITU T35 Data" }, - [AV_FRAME_DATA_DOVI_METADATA] = { "Dolby Vision Metadata" }, - [AV_FRAME_DATA_LCEVC] = { "LCEVC NAL data" }, - [AV_FRAME_DATA_VIEW_ID] = { "View ID" }, -diff -Naur ffmpeg-7.1.2.old/libavutil/frame.h ffmpeg-7.1.2/libavutil/frame.h ---- ffmpeg-7.1.2.old/libavutil/frame.h 2025-10-27 10:07:00.786475730 +0100 -+++ ffmpeg-7.1.2/libavutil/frame.h 2025-10-27 10:07:02.436480126 +0100 -@@ -201,6 +201,12 @@ +@@ -7542,6 +7682,7 @@ static int mov_create_chapter_track(AVFormatContext *s, int tracknum) + track->tag = MKTAG('t','e','x','t'); + track->timescale = mov->movie_timescale; + track->par = avcodec_parameters_alloc(); ++ track->language = mov->tracks[0].language; + if (!track->par) + return AVERROR(ENOMEM); + track->par->codec_type = AVMEDIA_TYPE_SUBTITLE; +@@ -7779,7 +7920,7 @@ static int mov_create_dvd_sub_decoder_specific_info(MOVTrack *track, + int i, width = 720, height = 480; + int have_palette = 0, have_size = 0; + uint32_t palette[16]; +- char *cur = track->extradata[track->last_stsd_index]; ++ char *cur = st->codecpar->extradata; + + while (cur && *cur) { + if (strncmp("palette:", cur, 8) == 0) { +diff --git a/libavutil/frame.h b/libavutil/frame.h +index 771c9ce..4aba0c8 100644 +--- a/libavutil/frame.h ++++ b/libavutil/frame.h +@@ -200,6 +200,12 @@ enum AVFrameSideDataType { + */ AV_FRAME_DATA_DOVI_RPU_BUFFER, - /** ++ /** + * Dolby Vision RPU ITU T35 raw data, suitable for passing to SVT-AV1 + * or other libraries. Array of uint8_t. + */ + AV_FRAME_DATA_DOVI_RPU_BUFFER_T35, + -+ /** + /** * Parsed Dolby Vision metadata, suitable for passing to a software * implementation. The payload is the AVDOVIMetadata struct defined in - * libavutil/dovi_meta.h. -diff -Naur ffmpeg-7.1.2.old/libavutil/hwcontext_videotoolbox.c ffmpeg-7.1.2/libavutil/hwcontext_videotoolbox.c ---- ffmpeg-7.1.2.old/libavutil/hwcontext_videotoolbox.c 2025-10-27 10:07:00.813475968 +0100 -+++ ffmpeg-7.1.2/libavutil/hwcontext_videotoolbox.c 2025-10-27 10:07:02.457067390 +0100 -@@ -183,7 +183,8 @@ +diff --git a/libavutil/hwcontext_d3d11va.c b/libavutil/hwcontext_d3d11va.c +index 418fe9d..4369d80 100644 +--- a/libavutil/hwcontext_d3d11va.c ++++ b/libavutil/hwcontext_d3d11va.c +@@ -85,6 +85,9 @@ typedef struct D3D11VAFramesContext { + int nb_surfaces; + int nb_surfaces_used; + ++ int max_retries; ++ int retries; ++ + DXGI_FORMAT format; + + ID3D11Texture2D *staging_texture; +@@ -260,7 +263,9 @@ static AVBufferRef *d3d11va_pool_alloc(void *opaque, size_t size) + ID3D11Texture2D_GetDesc(hwctx->texture, &texDesc); + + if (s->nb_surfaces_used >= texDesc.ArraySize) { +- av_log(ctx, AV_LOG_ERROR, "Static surface pool size exceeded.\n"); ++ if (s->retries >= s->max_retries) { ++ av_log(ctx, AV_LOG_ERROR, "Static surface pool size exceeded.\n"); ++ } + return NULL; + } + +@@ -346,20 +351,34 @@ static int d3d11va_frames_init(AVHWFramesContext *ctx) + static int d3d11va_get_buffer(AVHWFramesContext *ctx, AVFrame *frame) + { + AVD3D11FrameDescriptor *desc; ++ D3D11VAFramesContext *s = ctx->hwctx; ++ s->retries = 0; ++ s->max_retries = 50; + +- frame->buf[0] = av_buffer_pool_get(ctx->pool); +- if (!frame->buf[0]) +- return AVERROR(ENOMEM); +- +- desc = (AVD3D11FrameDescriptor *)frame->buf[0]->data; +- +- frame->data[0] = (uint8_t *)desc->texture; +- frame->data[1] = (uint8_t *)desc->index; +- frame->format = AV_PIX_FMT_D3D11; +- frame->width = ctx->width; +- frame->height = ctx->height; ++ /** ++ * Loop until a buffer becomes available from the pool. ++ * In a full hardware pipeline, all buffers may be temporarily in use by ++ * other modules (encoder/filter/decoder). Rather than immediately failing ++ * with ENOMEM, we wait for a buffer to be released back to the pool, which ++ * maintains pipeline flow and prevents unnecessary allocation failures ++ * during normal operation. ++ */ ++ while (s->retries < s->max_retries) { ++ frame->buf[0] = av_buffer_pool_get(ctx->pool); ++ if (frame->buf[0]) { ++ desc = (AVD3D11FrameDescriptor *)frame->buf[0]->data; ++ frame->data[0] = (uint8_t *)desc->texture; ++ frame->data[1] = (uint8_t *)desc->index; ++ frame->format = AV_PIX_FMT_D3D11; ++ frame->width = ctx->width; ++ frame->height = ctx->height; ++ return 0; ++ } + +- return 0; ++ av_usleep(1000); ++ } ++ ++ return AVERROR(ENOMEM); + } + + static int d3d11va_transfer_get_formats(AVHWFramesContext *ctx, +diff --git a/libavutil/hwcontext_videotoolbox.c b/libavutil/hwcontext_videotoolbox.c +index 2764097..9c5c999 100644 +--- a/libavutil/hwcontext_videotoolbox.c ++++ b/libavutil/hwcontext_videotoolbox.c +@@ -191,7 +191,8 @@ static int vt_pool_alloc(AVHWFramesContext *ctx) VTFramesContext *fctx = ctx->hwctx; AVVTFramesContext *hw_ctx = &fctx->p; CVReturn err; @@ -3399,7 +2098,7 @@ diff -Naur ffmpeg-7.1.2.old/libavutil/hwcontext_videotoolbox.c ffmpeg-7.1.2/liba uint32_t cv_pixfmt; CFMutableDictionaryRef attributes, iosurface_properties; -@@ -216,6 +217,15 @@ +@@ -224,6 +225,15 @@ static int vt_pool_alloc(AVHWFramesContext *ctx) CFRelease(w); CFRelease(h); @@ -3415,27 +2114,18 @@ diff -Naur ffmpeg-7.1.2.old/libavutil/hwcontext_videotoolbox.c ffmpeg-7.1.2/liba err = CVPixelBufferPoolCreate( NULL, NULL, -diff -Naur ffmpeg-7.1.2.old/libswscale/swscale_unscaled.c ffmpeg-7.1.2/libswscale/swscale_unscaled.c ---- ffmpeg-7.1.2.old/libswscale/swscale_unscaled.c 2025-10-27 10:07:00.644474477 +0100 -+++ ffmpeg-7.1.2/libswscale/swscale_unscaled.c 2025-10-27 10:07:02.433490262 +0100 -@@ -341,7 +341,7 @@ - const uint8_t *tsrc0 = src[0]; - for (x = c->srcW; x > 0; x--) { - t = *tsrc0++; -- output_pixel(tdstY++, t | (t << 8)); -+ output_pixel(tdstY++, (t << 8)); - } - src[0] += srcStride[0]; - dstY += dstStride[0] / 2; -@@ -352,9 +352,9 @@ - const uint8_t *tsrc2 = src[2]; - for (x = c->srcW / 2; x > 0; x--) { - t = *tsrc1++; -- output_pixel(tdstUV++, t | (t << 8)); -+ output_pixel(tdstUV++, (t << 8)); - t = *tsrc2++; -- output_pixel(tdstUV++, t | (t << 8)); -+ output_pixel(tdstUV++, (t << 8)); - } - src[1] += srcStride[1]; - src[2] += srcStride[2]; +diff --git a/libavutil/side_data.c b/libavutil/side_data.c +index bbbeb70..c635365 100644 +--- a/libavutil/side_data.c ++++ b/libavutil/side_data.c +@@ -42,6 +42,7 @@ static const AVSideDataDescriptor sd_props[] = { + [AV_FRAME_DATA_DETECTION_BBOXES] = { "Bounding boxes for object detection and classification", AV_SIDE_DATA_PROP_SIZE_DEPENDENT }, + [AV_FRAME_DATA_DOVI_RPU_BUFFER] = { "Dolby Vision RPU Data", AV_SIDE_DATA_PROP_COLOR_DEPENDENT }, + [AV_FRAME_DATA_DOVI_METADATA] = { "Dolby Vision Metadata", AV_SIDE_DATA_PROP_COLOR_DEPENDENT }, ++ [AV_FRAME_DATA_DOVI_RPU_BUFFER_T35] = { "Dolby Vision RPU ITU T35 Data", AV_SIDE_DATA_PROP_COLOR_DEPENDENT }, + [AV_FRAME_DATA_LCEVC] = { "LCEVC NAL data", AV_SIDE_DATA_PROP_SIZE_DEPENDENT }, + [AV_FRAME_DATA_VIEW_ID] = { "View ID" }, + [AV_FRAME_DATA_STEREO3D] = { "Stereo 3D", AV_SIDE_DATA_PROP_GLOBAL }, +-- +2.54.0 + diff --git a/anda/multimedia/ffmpeg/ffmpeg-LCEVCdec-4.patch b/anda/multimedia/ffmpeg/ffmpeg-LCEVCdec-4.patch deleted file mode 100644 index ae0aa51e88..0000000000 --- a/anda/multimedia/ffmpeg/ffmpeg-LCEVCdec-4.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -Naur ffmpeg-7.1.2.old/libavcodec/lcevcdec.c ffmpeg-7.1.2/libavcodec/lcevcdec.c ---- ffmpeg-7.1.2.old/libavcodec/lcevcdec.c 2025-10-27 10:07:00.369472051 +0100 -+++ ffmpeg-7.1.2/libavcodec/lcevcdec.c 2025-10-27 10:07:01.223246583 +0100 -@@ -139,7 +139,7 @@ - if (!sd) - return 1; - -- res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, in->pts, 0, sd->data, sd->size); -+ res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, (uint64_t) in->pts, sd->data, sd->size); - if (res != LCEVC_Success) - return AVERROR_EXTERNAL; - -@@ -147,7 +147,7 @@ - if (ret < 0) - return ret; - -- res = LCEVC_SendDecoderBase(lcevc->decoder, in->pts, 0, picture, -1, NULL); -+ res = LCEVC_SendDecoderBase(lcevc->decoder, (uint64_t) in->pts, picture, -1, NULL); - if (res != LCEVC_Success) - return AVERROR_EXTERNAL; - -diff -Naur ffmpeg-7.1.2.old/libavfilter/vf_lcevc.c ffmpeg-7.1.2/libavfilter/vf_lcevc.c ---- ffmpeg-7.1.2.old/libavfilter/vf_lcevc.c 2025-10-27 10:07:00.732521928 +0100 -+++ ffmpeg-7.1.2/libavfilter/vf_lcevc.c 2025-10-27 10:07:01.223846623 +0100 -@@ -139,7 +139,7 @@ - return ret; - - if (sd) { -- res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, in->pts, 0, sd->data, sd->size); -+ res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, (uint64_t) in->pts, sd->data, sd->size); - if (res == LCEVC_Again) - return AVERROR(EAGAIN); - else if (res != LCEVC_Success) { -@@ -148,7 +148,7 @@ - } - } - -- res = LCEVC_SendDecoderBase(lcevc->decoder, in->pts, 0, picture, -1, in); -+ res = LCEVC_SendDecoderBase(lcevc->decoder, (uint64_t) in->pts, picture, -1, in); - if (res != LCEVC_Success) { - av_log(ctx, AV_LOG_ERROR, "LCEVC_SendDecoderBase failed\n"); - LCEVC_FreePicture(lcevc->decoder, picture); diff --git a/anda/multimedia/ffmpeg/ffmpeg-allow-fdk-aac-free.patch b/anda/multimedia/ffmpeg/ffmpeg-allow-fdk-aac-free.patch new file mode 100644 index 0000000000..3e0e4ff155 --- /dev/null +++ b/anda/multimedia/ffmpeg/ffmpeg-allow-fdk-aac-free.patch @@ -0,0 +1,33 @@ +From 26eb0232fa41d603a2f016faf5610de79f694c02 Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +Date: Sun, 10 May 2026 00:10:38 +0200 +Subject: [PATCH] fdk-aac-free-devel is GPL compatible + +See https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112 +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 1759694..6cf4f08 100755 +--- a/configure ++++ b/configure +@@ -2003,7 +2003,6 @@ EXTERNAL_LIBRARY_GPL_LIST=" + + EXTERNAL_LIBRARY_NONFREE_LIST=" + decklink +- libfdk_aac + libmpeghdec + " + +@@ -2044,6 +2043,7 @@ EXTERNAL_LIBRARY_LIST=" + libcodec2 + libdav1d + libdc1394 ++ libfdk_aac + libflite + libfontconfig + libfreetype +-- +2.54.0 + diff --git a/anda/multimedia/ffmpeg/ffmpeg-chromium.patch b/anda/multimedia/ffmpeg/ffmpeg-chromium.patch index 5c8c6cbfd9..9872622869 100644 --- a/anda/multimedia/ffmpeg/ffmpeg-chromium.patch +++ b/anda/multimedia/ffmpeg/ffmpeg-chromium.patch @@ -1,31 +1,46 @@ -diff -Naur ffmpeg-7.1.2.old/libavformat/avformat.h ffmpeg-7.1.2/libavformat/avformat.h ---- ffmpeg-7.1.2.old/libavformat/avformat.h 2025-10-27 10:07:00.895476692 +0100 -+++ ffmpeg-7.1.2/libavformat/avformat.h 2025-10-27 10:07:01.866348795 +0100 -@@ -1202,6 +1202,10 @@ - +From d32aacab65a322b66d6a1b48f6cdb03e42bde0f9 Mon Sep 17 00:00:00 2001 +From: Frank Liberato +Date: Wed, 7 Jul 2021 19:01:22 -0700 +Subject: [PATCH] Add av_stream_get_first_dts for Chromium + +--- + libavformat/avformat.h | 4 ++++ + libavformat/utils.c | 7 +++++++ + 2 files changed, 11 insertions(+) + +diff --git a/libavformat/avformat.h b/libavformat/avformat.h +index 1916aa2dc5..e6682849fa 100644 +--- a/libavformat/avformat.h ++++ b/libavformat/avformat.h +@@ -1170,6 +1170,10 @@ typedef struct AVStreamGroup { + struct AVCodecParserContext *av_stream_get_parser(const AVStream *s); - + +// 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 ^^^ + #define AV_PROGRAM_RUNNING 1 - + /** -diff -Naur ffmpeg-7.1.2.old/libavformat/utils.c ffmpeg-7.1.2/libavformat/utils.c ---- ffmpeg-7.1.2.old/libavformat/utils.c 2025-10-27 10:07:00.899476727 +0100 -+++ ffmpeg-7.1.2/libavformat/utils.c 2025-10-27 10:07:01.866992658 +0100 -@@ -44,6 +44,13 @@ +diff --git a/libavformat/utils.c b/libavformat/utils.c +index cf4d68bff9..7d750abf88 100644 +--- a/libavformat/utils.c ++++ b/libavformat/utils.c +@@ -56,6 +56,13 @@ int ff_unlock_avformat(void) * various utility functions for use within FFmpeg */ +// Chromium: We use the internal field first_dts vvv +int64_t av_stream_get_first_dts(const AVStream *st) +{ -+ return cffstream(st)->first_dts; ++ return cffstream(st)->first_dts; +} +// Chromium: We use the internal field first_dts ^^^ + /* an arbitrarily chosen "sane" max packet size -- 50M */ #define SANE_CHUNK_SIZE (50000000) - + +-- +2.41.0 + diff --git a/anda/multimedia/ffmpeg/ffmpeg-codec-choice.patch b/anda/multimedia/ffmpeg/ffmpeg-codec-choice.patch new file mode 100644 index 0000000000..f6a4ead570 --- /dev/null +++ b/anda/multimedia/ffmpeg/ffmpeg-codec-choice.patch @@ -0,0 +1,58 @@ +From: Jan Engelhardt + +Edit the default codec selection such that + + ffmpeg -i youtube.blah.webm foobar.mkv + +without any further arguments can produce a result even on a +reduced codec selection list. + +--- + libavformat/matroskaenc.c | 20 ++++++++++++++------ + 1 file changed, 14 insertions(+), 6 deletions(-) + +Index: ffmpeg-7.0/libavformat/matroskaenc.c +=================================================================== +--- ffmpeg-7.0.orig/libavformat/matroskaenc.c ++++ ffmpeg-7.0/libavformat/matroskaenc.c +@@ -3540,16 +3540,25 @@ static int mkv_query_codec(enum AVCodecI + return 0; + } + ++#define PREFAUDIO \ ++ CONFIG_LIBOPUS_ENCODER ? AV_CODEC_ID_OPUS : \ ++ CONFIG_AAC_ENCODER ? AV_CODEC_ID_AAC : \ ++ CONFIG_VORBIS_ENCODER ? AV_CODEC_ID_VORBIS : \ ++ AV_CODEC_ID_AC3 ++ + const FFOutputFormat ff_matroska_muxer = { + .p.name = "matroska", + .p.long_name = NULL_IF_CONFIG_SMALL("Matroska"), + .p.mime_type = "video/x-matroska", + .p.extensions = "mkv", + .priv_data_size = sizeof(MatroskaMuxContext), +- .p.audio_codec = CONFIG_LIBVORBIS_ENCODER ? +- AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3, +- .p.video_codec = CONFIG_LIBX264_ENCODER ? +- AV_CODEC_ID_H264 : AV_CODEC_ID_MPEG4, ++ .p.audio_codec = PREFAUDIO, ++ .p.video_codec = ++ CONFIG_LIBVPX_VP9_ENCODER ? AV_CODEC_ID_VP9 : \ ++ CONFIG_LIBX264_ENCODER ? AV_CODEC_ID_H264 : \ ++ CONFIG_LIBVPX_VP8_ENCODER ? AV_CODEC_ID_VP8 : \ ++ CONFIG_MPEG4_ENCODER ? AV_CODEC_ID_MPEG4 : \ ++ AV_CODEC_ID_THEORA, + .init = mkv_init, + .deinit = mkv_deinit, + .write_header = mkv_write_header, +@@ -3617,8 +3626,7 @@ const FFOutputFormat ff_matroska_audio_m + .p.mime_type = "audio/x-matroska", + .p.extensions = "mka", + .priv_data_size = sizeof(MatroskaMuxContext), +- .p.audio_codec = CONFIG_LIBVORBIS_ENCODER ? +- AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3, ++ .p.audio_codec = PREFAUDIO, + .p.video_codec = AV_CODEC_ID_NONE, + .init = mkv_init, + .deinit = mkv_deinit, + diff --git a/anda/multimedia/ffmpeg/ffmpeg-cuda-13.patch b/anda/multimedia/ffmpeg/ffmpeg-cuda-13.patch deleted file mode 100644 index 28bba4a1a7..0000000000 --- a/anda/multimedia/ffmpeg/ffmpeg-cuda-13.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure ---- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:02.273543997 +0100 -+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:02.276510125 +0100 -@@ -4710,6 +4710,9 @@ - if $nvcc $nvccflags_default 2>&1 | grep -qi unsupported; then - nvccflags_default="-gencode arch=compute_60,code=sm_60 -O2" - fi -+ if $nvcc $nvccflags_default 2>&1 | grep -qi unsupported; then -+ nvccflags_default="-gencode arch=compute_75,code=sm_75 -O2" -+ fi - fi - - set_default arch cc cxx doxygen pkg_config ranlib strip sysinclude \ diff --git a/anda/multimedia/ffmpeg/ffmpeg-decklink-14.patch b/anda/multimedia/ffmpeg/ffmpeg-decklink-14.patch deleted file mode 100644 index 779e398257..0000000000 --- a/anda/multimedia/ffmpeg/ffmpeg-decklink-14.patch +++ /dev/null @@ -1,454 +0,0 @@ -diff -Naur ffmpeg-7.1.2.old/doc/outdevs.texi ffmpeg-7.1.2/doc/outdevs.texi ---- ffmpeg-7.1.2.old/doc/outdevs.texi 2025-10-27 10:07:00.979477433 +0100 -+++ ffmpeg-7.1.2/doc/outdevs.texi 2025-10-27 10:07:02.002148270 +0100 -@@ -240,6 +240,10 @@ - outgoing VANC data will be dropped. - Defaults to @samp{1048576}. - -+@item block_until_available -+Retries output if device appears unavailable. Retry rate is 60 times a second. -+Defaults to @option{0}. -+ - @end table - - @subsection Examples -diff -Naur ffmpeg-7.1.2.old/fftools/ffmpeg_sched.c ffmpeg-7.1.2/fftools/ffmpeg_sched.c ---- ffmpeg-7.1.2.old/fftools/ffmpeg_sched.c 2025-10-27 10:07:01.220479559 +0100 -+++ ffmpeg-7.1.2/fftools/ffmpeg_sched.c 2025-10-27 10:07:02.002549025 +0100 -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - #include "cmdutils.h" - #include "ffmpeg_sched.h" -diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common_c.h ffmpeg-7.1.2/libavdevice/decklink_common_c.h ---- ffmpeg-7.1.2.old/libavdevice/decklink_common_c.h 2025-10-27 10:07:00.829476109 +0100 -+++ ffmpeg-7.1.2/libavdevice/decklink_common_c.h 2025-10-27 10:07:02.003002589 +0100 -@@ -74,6 +74,7 @@ - int64_t timestamp_align; - int timing_offset; - int wait_for_tc; -+ int block_until_available; - DecklinkSignalLossAction signal_loss_action; - }; - -diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common.cpp ffmpeg-7.1.2/libavdevice/decklink_common.cpp ---- ffmpeg-7.1.2.old/libavdevice/decklink_common.cpp 2025-10-27 10:07:00.828476101 +0100 -+++ ffmpeg-7.1.2/libavdevice/decklink_common.cpp 2025-10-27 10:07:02.003115933 +0100 -@@ -25,7 +25,7 @@ - #include "libavformat/internal.h" - } - --#include -+#include - #ifdef _WIN32 - #include - #else -@@ -53,6 +53,7 @@ - - #include "decklink_common.h" - -+ - static IDeckLinkIterator *decklink_create_iterator(AVFormatContext *avctx) - { - IDeckLinkIterator *iter; -@@ -512,8 +513,8 @@ - return AVERROR(EIO); - - while (ret == 0 && iter->Next(&dl) == S_OK) { -- IDeckLinkOutput *output_config; -- IDeckLinkInput *input_config; -+ IDeckLinkOutput_v14_2_1 *output_config; -+ IDeckLinkInput_v14_2_1 *input_config; - const char *display_name = NULL; - const char *unique_name = NULL; - AVDeviceInfo *new_device = NULL; -@@ -527,14 +528,14 @@ - goto next; - - if (show_outputs) { -- if (dl->QueryInterface(IID_IDeckLinkOutput, (void **)&output_config) == S_OK) { -+ if (dl->QueryInterface(IID_IDeckLinkOutput_v14_2_1, (void **)&output_config) == S_OK) { - output_config->Release(); - add = 1; - } - } - - if (show_inputs) { -- if (dl->QueryInterface(IID_IDeckLinkInput, (void **)&input_config) == S_OK) { -+ if (dl->QueryInterface(IID_IDeckLinkInput_v14_2_1, (void **)&input_config) == S_OK) { - input_config->Release(); - add = 1; - } -diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common.h ffmpeg-7.1.2/libavdevice/decklink_common.h ---- ffmpeg-7.1.2.old/libavdevice/decklink_common.h 2025-10-27 10:07:00.831476127 +0100 -+++ ffmpeg-7.1.2/libavdevice/decklink_common.h 2025-10-27 10:07:02.003408083 +0100 -@@ -93,8 +93,8 @@ - struct decklink_ctx { - /* DeckLink SDK interfaces */ - IDeckLink *dl; -- IDeckLinkOutput *dlo; -- IDeckLinkInput *dli; -+ IDeckLinkOutput_v14_2_1 *dlo; -+ IDeckLinkInput_v14_2_1 *dli; - IDeckLinkConfiguration *cfg; - IDeckLinkProfileAttributes *attr; - decklink_output_callback *output_callback; -@@ -134,7 +134,6 @@ - AVStream *klv_st; - AVStream *teletext_st; - uint16_t cdp_sequence_num; -- - /* Options */ - int list_devices; - int list_formats; -@@ -149,13 +148,16 @@ - BMDPixelFormat raw_format; - DecklinkSignalLossAction signal_loss_action; - -+ - int frames_preroll; - int frames_buffer; - - pthread_mutex_t mutex; - pthread_cond_t cond; - int frames_buffer_available_spots; -+ int outstanding_frames; - int autodetect; -+ int block_until_available; - - #if CONFIG_LIBKLVANC - struct klvanc_context_s *vanc_ctx; -@@ -249,3 +251,4 @@ - int64_t ff_decklink_packet_queue_peekpts(DecklinkPacketQueue *q); - - #endif /* AVDEVICE_DECKLINK_COMMON_H */ -+ -diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_dec.cpp ffmpeg-7.1.2/libavdevice/decklink_dec.cpp ---- ffmpeg-7.1.2.old/libavdevice/decklink_dec.cpp 2025-10-27 10:07:00.828476101 +0100 -+++ ffmpeg-7.1.2/libavdevice/decklink_dec.cpp 2025-10-27 10:07:02.003669356 +0100 -@@ -31,7 +31,7 @@ - #include "libavformat/internal.h" - } - --#include -+#include - - extern "C" { - #include "config.h" -@@ -56,6 +56,7 @@ - #include "decklink_common.h" - #include "decklink_dec.h" - -+extern bool operator==(const REFIID& me, const REFIID& other); - #define MAX_WIDTH_VANC 1920 - const BMDDisplayMode AUTODETECT_DEFAULT_MODE = bmdModeNTSC; - -@@ -105,13 +106,13 @@ - {bmdModeUnknown, 0, -1, -1, -1} - }; - --class decklink_allocator : public IDeckLinkMemoryAllocator -+class decklink_allocator : public IDeckLinkMemoryAllocator_v14_2_1 - { - public: - decklink_allocator(): _refs(1) { } - virtual ~decklink_allocator() { } - -- // IDeckLinkMemoryAllocator methods -+ // IDeckLinkMemoryAllocator_v14_2_1 methods - virtual HRESULT STDMETHODCALLTYPE AllocateBuffer(unsigned int bufferSize, void* *allocatedBuffer) - { - void *buf = av_malloc(bufferSize + AV_INPUT_BUFFER_PADDING_SIZE); -@@ -129,7 +130,15 @@ - virtual HRESULT STDMETHODCALLTYPE Decommit() { return S_OK; } - - // IUnknown methods -- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; } -+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) -+ { -+ if (iid == IID_IDeckLinkMemoryAllocator_v14_2_1) { -+ *ppv = (IDeckLinkMemoryAllocator_v14_2_1*)this; -+ AddRef(); -+ return S_OK; -+ } -+ return E_NOINTERFACE; -+ } - virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; } - virtual ULONG STDMETHODCALLTYPE Release(void) - { -@@ -472,7 +481,7 @@ - } - - --static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideoInputFrame *videoFrame, int64_t pts) -+static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, int64_t pts) - { - const uint8_t KLV_DID = 0x44; - const uint8_t KLV_IN_VANC_SDID = 0x04; -@@ -574,17 +583,25 @@ - } - } - --class decklink_input_callback : public IDeckLinkInputCallback -+class decklink_input_callback : public IDeckLinkInputCallback_v14_2_1 - { - public: - explicit decklink_input_callback(AVFormatContext *_avctx); - ~decklink_input_callback(); - -- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; } -+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) -+ { -+ if (iid == IID_IDeckLinkInputCallback_v14_2_1) { -+ *ppv = (IDeckLinkInputCallback_v14_2_1*)this; -+ AddRef(); -+ return S_OK; -+ } -+ return E_NOINTERFACE; -+ } - virtual ULONG STDMETHODCALLTYPE AddRef(void); - virtual ULONG STDMETHODCALLTYPE Release(void); - virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(BMDVideoInputFormatChangedEvents, IDeckLinkDisplayMode*, BMDDetectedVideoInputFormatFlags); -- virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*); -+ virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame_v14_2_1*, IDeckLinkAudioInputPacket*); - - private: - std::atomic _refs; -@@ -593,7 +610,7 @@ - int no_video; - int64_t initial_video_pts; - int64_t initial_audio_pts; -- IDeckLinkVideoInputFrame* last_video_frame; -+ IDeckLinkVideoInputFrame_v14_2_1* last_video_frame; - }; - - decklink_input_callback::decklink_input_callback(AVFormatContext *_avctx) : _refs(1) -@@ -625,7 +642,7 @@ - return ret; - } - --static int64_t get_pkt_pts(IDeckLinkVideoInputFrame *videoFrame, -+static int64_t get_pkt_pts(IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, - IDeckLinkAudioInputPacket *audioFrame, - int64_t wallclock, - int64_t abs_wallclock, -@@ -679,7 +696,7 @@ - return pts; - } - --static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational frame_rate, BMDTimecodeFormat tc_format, IDeckLinkVideoInputFrame *videoFrame) -+static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational frame_rate, BMDTimecodeFormat tc_format, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame) - { - IDeckLinkTimecode *timecode; - int ret = AVERROR(ENOENT); -@@ -701,7 +718,7 @@ - return ret; - } - --static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimecode *tc, IDeckLinkVideoInputFrame *videoFrame) -+static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimecode *tc, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame) - { - AVRational frame_rate = ctx->video_st->r_frame_rate; - int ret; -@@ -726,7 +743,7 @@ - } - - HRESULT decklink_input_callback::VideoInputFrameArrived( -- IDeckLinkVideoInputFrame *videoFrame, IDeckLinkAudioInputPacket *audioFrame) -+ IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, IDeckLinkAudioInputPacket *audioFrame) - { - void *frameBytes; - void *audioFrameBytes; -@@ -1141,7 +1158,7 @@ - goto error; - - /* Get input device. */ -- if (ctx->dl->QueryInterface(IID_IDeckLinkInput, (void **) &ctx->dli) != S_OK) { -+ if (ctx->dl->QueryInterface(IID_IDeckLinkInput_v14_2_1, (void **) &ctx->dli) != S_OK) { - av_log(avctx, AV_LOG_ERROR, "Could not open input device from '%s'\n", - avctx->url); - ret = AVERROR(EIO); -diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_enc_c.c ffmpeg-7.1.2/libavdevice/decklink_enc_c.c ---- ffmpeg-7.1.2.old/libavdevice/decklink_enc_c.c 2025-10-27 10:07:00.833476145 +0100 -+++ ffmpeg-7.1.2/libavdevice/decklink_enc_c.c 2025-10-27 10:07:02.004050964 +0100 -@@ -32,6 +32,7 @@ - { "list_devices", "use ffmpeg -sinks decklink instead", OFFSET(list_devices), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC | AV_OPT_FLAG_DEPRECATED}, - { "list_formats", "list supported formats" , OFFSET(list_formats), AV_OPT_TYPE_INT , { .i64 = 0 }, 0, 1, ENC }, - { "preroll" , "video preroll in seconds", OFFSET(preroll ), AV_OPT_TYPE_DOUBLE, { .dbl = 0.5 }, 0, 5, ENC }, -+ { "block_until_available", "wait for device to become available instead of raising error", OFFSET(block_until_available), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC }, - { "vanc_queue_size", "VANC queue buffer size", OFFSET(vanc_queue_size), AV_OPT_TYPE_INT64, { .i64 = (1024 * 1024)}, 0, INT64_MAX, ENC }, - #if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000 - { "duplex_mode" , "duplex mode" , OFFSET(duplex_mode ), AV_OPT_TYPE_INT , { .i64 = 0 }, 0, 5, ENC, .unit = "duplex_mode"}, -diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_enc.cpp ffmpeg-7.1.2/libavdevice/decklink_enc.cpp ---- ffmpeg-7.1.2.old/libavdevice/decklink_enc.cpp 2025-10-27 10:07:00.832476136 +0100 -+++ ffmpeg-7.1.2/libavdevice/decklink_enc.cpp 2025-10-27 10:07:02.004296918 +0100 -@@ -20,6 +20,8 @@ - */ - - #include -+#include -+ - using std::atomic; - - /* Include internal.h first to avoid conflict between winsock.h (used by -@@ -28,7 +30,7 @@ - #include "libavformat/internal.h" - } - --#include -+#include - - extern "C" { - #include "libavformat/avformat.h" -@@ -47,8 +49,26 @@ - #include "libklvanc/pixels.h" - #endif - -+extern bool operator==(const REFIID& me, const REFIID& other){ -+ return me.byte0 == other.byte0 && -+ me.byte1 == other.byte1 && -+ me.byte2 == other.byte2 && -+ me.byte3 == other.byte3 && -+ me.byte4 == other.byte4 && -+ me.byte5 == other.byte5 && -+ me.byte6 == other.byte6 && -+ me.byte7 == other.byte7 && -+ me.byte8 == other.byte8 && -+ me.byte9 == other.byte9 && -+ me.byte10 == other.byte10 && -+ me.byte11 == other.byte11 && -+ me.byte12 == other.byte12 && -+ me.byte13 == other.byte13 && -+ me.byte14 == other.byte14 && -+ me.byte15 == other.byte15; -+} - /* DeckLink callback class declaration */ --class decklink_frame : public IDeckLinkVideoFrame -+class decklink_frame : public IDeckLinkVideoFrame_v14_2_1 - { - public: - decklink_frame(struct decklink_ctx *ctx, AVFrame *avframe, AVCodecID codec_id, int height, int width) : -@@ -111,7 +131,16 @@ - _ancillary->AddRef(); - return S_OK; - } -- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; } -+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) -+ { -+ if (iid == IID_IDeckLinkVideoFrame_v14_2_1) -+ { -+ *ppv = (IDeckLinkVideoFrame_v14_2_1*)this; -+ AddRef(); -+ return S_OK; -+ } -+ return E_NOINTERFACE; -+ } - virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; } - virtual ULONG STDMETHODCALLTYPE Release(void) - { -@@ -138,10 +167,10 @@ - std::atomic _refs; - }; - --class decklink_output_callback : public IDeckLinkVideoOutputCallback -+class decklink_output_callback : public IDeckLinkVideoOutputCallback_v14_2_1 - { - public: -- virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame *_frame, BMDOutputFrameCompletionResult result) -+ virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame_v14_2_1 *_frame, BMDOutputFrameCompletionResult result) - { - decklink_frame *frame = static_cast(_frame); - struct decklink_ctx *ctx = frame->_ctx; -@@ -155,11 +184,22 @@ - ctx->frames_buffer_available_spots++; - pthread_cond_broadcast(&ctx->cond); - pthread_mutex_unlock(&ctx->mutex); -- -+ pthread_mutex_lock(&ctx->mutex); -+ ctx->outstanding_frames--; -+ pthread_mutex_unlock(&ctx->mutex); - return S_OK; - } - virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped(void) { return S_OK; } -- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; } -+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) -+ { -+ if (iid == IID_IDeckLinkVideoOutputCallback_v14_2_1) -+ { -+ *ppv = (IDeckLinkVideoOutputCallback_v14_2_1*)this; -+ AddRef(); -+ return S_OK; -+ } -+ return E_NOINTERFACE; -+ } - virtual ULONG STDMETHODCALLTYPE AddRef(void) { return 1; } - virtual ULONG STDMETHODCALLTYPE Release(void) { return 1; } - }; -@@ -204,9 +244,14 @@ - av_log(avctx, AV_LOG_WARNING, "Could not enable video output with VANC! Trying without...\n"); - ctx->supports_vanc = 0; - } -- if (!ctx->supports_vanc && ctx->dlo->EnableVideoOutput(ctx->bmd_mode, bmdVideoOutputFlagDefault) != S_OK) { -- av_log(avctx, AV_LOG_ERROR, "Could not enable video output!\n"); -- return -1; -+ while (!ctx->supports_vanc && ctx->dlo->EnableVideoOutput(ctx->bmd_mode, bmdVideoOutputFlagDefault) != S_OK) { -+ if (!ctx->block_until_available) { -+ av_log(avctx, AV_LOG_ERROR, "Could not enable video output!\n"); -+ return -1; -+ }; -+ av_log(avctx, AV_LOG_WARNING, "Could not enable video output, waiting for device...\n"); -+ usleep(1000000 / 60); -+ continue; - } - - /* Set callback. */ -@@ -370,6 +415,10 @@ - struct decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data; - struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx; - -+ av_log(avctx, AV_LOG_DEBUG, "Wating for %d outstanding frames to return their results\n", ctx->outstanding_frames); -+ while (ctx->outstanding_frames > 0){ -+ usleep(1); -+ } - if (ctx->playback_started) { - BMDTimeValue actual; - ctx->dlo->StopScheduledPlayback(ctx->last_pts * ctx->bmd_tb_num, -@@ -739,7 +788,7 @@ - ctx->first_pts = pkt->pts; - - /* Schedule frame for playback. */ -- hr = ctx->dlo->ScheduleVideoFrame((class IDeckLinkVideoFrame *) frame, -+ hr = ctx->dlo->ScheduleVideoFrame((class IDeckLinkVideoFrame_v14_2_1 *) frame, - pkt->pts * ctx->bmd_tb_num, - ctx->bmd_tb_num, ctx->bmd_tb_den); - /* Pass ownership to DeckLink, or release on failure */ -@@ -750,6 +799,9 @@ - return AVERROR(EIO); - } - -+ pthread_mutex_lock(&ctx->mutex); -+ ctx->outstanding_frames++; -+ pthread_mutex_unlock(&ctx->mutex); - ctx->dlo->GetBufferedVideoFrameCount(&buffered); - av_log(avctx, AV_LOG_DEBUG, "Buffered video frames: %d.\n", (int) buffered); - if (pkt->pts > 2 && buffered <= 2) -@@ -850,6 +902,7 @@ - ctx->list_devices = cctx->list_devices; - ctx->list_formats = cctx->list_formats; - ctx->preroll = cctx->preroll; -+ ctx->block_until_available = cctx->block_until_available; - ctx->duplex_mode = cctx->duplex_mode; - ctx->first_pts = AV_NOPTS_VALUE; - if (cctx->link > 0 && (unsigned int)cctx->link < FF_ARRAY_ELEMS(decklink_link_conf_map)) -@@ -874,7 +927,7 @@ - return ret; - - /* Get output device. */ -- if (ctx->dl->QueryInterface(IID_IDeckLinkOutput, (void **) &ctx->dlo) != S_OK) { -+ if (ctx->dl->QueryInterface(IID_IDeckLinkOutput_v14_2_1, (void **) &ctx->dlo) != S_OK) { - av_log(avctx, AV_LOG_ERROR, "Could not open output device from '%s'\n", - avctx->url); - ret = AVERROR(EIO); diff --git a/anda/multimedia/ffmpeg/ffmpeg-nvcc.patch b/anda/multimedia/ffmpeg/ffmpeg-nvcc.patch deleted file mode 100644 index 7dcf2259c3..0000000000 --- a/anda/multimedia/ffmpeg/ffmpeg-nvcc.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure ---- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:01.862821941 +0100 -+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:02.140469997 +0100 -@@ -6766,7 +6766,7 @@ - nvccflags=$nvccflags_default - fi - --nvccflags="$nvccflags -std=c++11" -+nvccflags="$nvccflags -std=c++14" - - if enabled x86_64 || enabled ppc64 || enabled aarch64; then - nvccflags="$nvccflags -m64" diff --git a/anda/multimedia/ffmpeg/ffmpeg-svt-vp9.patch b/anda/multimedia/ffmpeg/ffmpeg-svt-vp9.patch index 6bdae213ed..a0deafb52f 100644 --- a/anda/multimedia/ffmpeg/ffmpeg-svt-vp9.patch +++ b/anda/multimedia/ffmpeg/ffmpeg-svt-vp9.patch @@ -1,15 +1,24 @@ -diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure ---- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:00.645474486 +0100 -+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:01.726484024 +0100 -@@ -278,6 +278,7 @@ - --enable-libsrt enable Haivision SRT protocol via libsrt [no] - --enable-libssh enable SFTP protocol via libssh [no] - --enable-libsvtav1 enable AV1 encoding via SVT [no] -+ --enable-libsvtvp9 enable VP9 encoding via svt [no] - --enable-libtensorflow enable TensorFlow as a DNN module backend - for DNN based filters like sr [no] - --enable-libtesseract enable Tesseract, needed for ocr filter [no] -@@ -1955,6 +1956,7 @@ +From fed3505f256f4eecc967f9bec4252cb1b15375bd Mon Sep 17 00:00:00 2001 +From: Terra Packaging Team +Date: Sun, 31 May 2026 03:01:18 -0500 +Subject: [PATCH] Patch for SVT-VP9 plugin + +See: https://github.com/OpenVisualCloud/SVT-VP9/tree/master/ffmpeg_plugin +--- + configure | 3 + + configure.rej | 10 + + libavcodec/Makefile | 1 + + libavcodec/allcodecs.c | 1 + + libavcodec/libsvt_vp9.c | 701 ++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 716 insertions(+) + create mode 100644 configure.rej + create mode 100644 libavcodec/libsvt_vp9.c + +diff --git a/configure b/configure +index 1759694..4b63d8e 100755 +--- a/configure ++++ b/configure +@@ -2083,6 +2083,7 @@ EXTERNAL_LIBRARY_LIST=" libshaderc libshine libsmbclient @@ -17,7 +26,7 @@ diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure libsnappy libsoxr libspeex -@@ -3579,6 +3581,7 @@ +@@ -3825,6 +3826,7 @@ libvpx_vp8_decoder_deps="libvpx" libvpx_vp8_encoder_deps="libvpx" libvpx_vp9_decoder_deps="libvpx" libvpx_vp9_encoder_deps="libvpx" @@ -25,7 +34,7 @@ diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure libvvenc_encoder_deps="libvvenc" libwebp_encoder_deps="libwebp" libwebp_anim_encoder_deps="libwebp" -@@ -7028,6 +7031,7 @@ +@@ -7387,6 +7389,7 @@ enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } enabled libuavs3d && require_pkg_config libuavs3d "uavs3d >= 1.1.41" uavs3d.h uavs3d_decode enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl @@ -33,10 +42,39 @@ diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 2.0.0" libvmaf.h vmaf_init enabled libvmaf && check_pkg_config libvmaf_cuda "libvmaf >= 2.0.0" libvmaf_cuda.h vmaf_cuda_state_init -diff -Naur ffmpeg-7.1.2.old/libavcodec/allcodecs.c ffmpeg-7.1.2/libavcodec/allcodecs.c ---- ffmpeg-7.1.2.old/libavcodec/allcodecs.c 2025-10-27 10:07:00.517473357 +0100 -+++ ffmpeg-7.1.2/libavcodec/allcodecs.c 2025-10-27 10:07:01.728697010 +0100 -@@ -796,6 +796,7 @@ +diff --git a/configure.rej b/configure.rej +new file mode 100644 +index 0000000..3de8351 +--- /dev/null ++++ b/configure.rej +@@ -0,0 +1,10 @@ ++--- configure 2026-03-10 10:00:58.102559577 +0100 +++++ configure 2026-03-10 10:00:58.530928613 +0100 ++@@ -278,6 +278,7 @@ ++ --enable-libsrt enable Haivision SRT protocol via libsrt [no] ++ --enable-libssh enable SFTP protocol via libssh [no] ++ --enable-libsvtav1 enable AV1 encoding via SVT [no] +++ --enable-libsvtvp9 enable VP9 encoding via svt [no] ++ --enable-libtensorflow enable TensorFlow as a DNN module backend ++ for DNN based filters like sr [no] ++ --enable-libtesseract enable Tesseract, needed for ocr filter [no] +diff --git a/libavcodec/Makefile b/libavcodec/Makefile +index 1410bd8..9310a97 100644 +--- a/libavcodec/Makefile ++++ b/libavcodec/Makefile +@@ -1217,6 +1217,7 @@ OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) += libvo-amrwbenc.o + OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o + OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \ + vorbis_data.o ++OBJS-$(CONFIG_LIBSVT_VP9_ENCODER) += libsvt_vp9.o + OBJS-$(CONFIG_LIBVPX_VP8_DECODER) += libvpxdec.o + OBJS-$(CONFIG_LIBVPX_VP8_ENCODER) += libvpxenc.o + OBJS-$(CONFIG_LIBVPX_VP9_DECODER) += libvpxdec.o +diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c +index 695214f..8eaa76a 100644 +--- a/libavcodec/allcodecs.c ++++ b/libavcodec/allcodecs.c +@@ -826,6 +826,7 @@ extern const FFCodec ff_libuavs3d_decoder; extern const FFCodec ff_libvo_amrwbenc_encoder; extern const FFCodec ff_libvorbis_encoder; extern const FFCodec ff_libvorbis_decoder; @@ -44,9 +82,11 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/allcodecs.c ffmpeg-7.1.2/libavcodec/allco extern const FFCodec ff_libvpx_vp8_encoder; extern const FFCodec ff_libvpx_vp8_decoder; extern FFCodec ff_libvpx_vp9_encoder; -diff -Naur ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.2/libavcodec/libsvt_vp9.c ---- ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c 1970-01-01 01:00:00.000000000 +0100 -+++ ffmpeg-7.1.2/libavcodec/libsvt_vp9.c 2025-10-27 10:07:01.729099438 +0100 +diff --git a/libavcodec/libsvt_vp9.c b/libavcodec/libsvt_vp9.c +new file mode 100644 +index 0000000..90ed5cb +--- /dev/null ++++ b/libavcodec/libsvt_vp9.c @@ -0,0 +1,701 @@ +/* +* Scalable Video Technology for VP9 encoder library plugin @@ -749,14 +789,6 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.2/libavcodec/libs + .defaults = eb_enc_defaults, + .p.wrapper_name = "libsvt_vp9", +}; -diff -Naur ffmpeg-7.1.2.old/libavcodec/Makefile ffmpeg-7.1.2/libavcodec/Makefile ---- ffmpeg-7.1.2.old/libavcodec/Makefile 2025-10-27 10:07:00.259471080 +0100 -+++ ffmpeg-7.1.2/libavcodec/Makefile 2025-10-27 10:07:01.729297932 +0100 -@@ -1157,6 +1157,7 @@ - OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o - OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \ - vorbis_data.o -+OBJS-$(CONFIG_LIBSVT_VP9_ENCODER) += libsvt_vp9.o - OBJS-$(CONFIG_LIBVPX_VP8_DECODER) += libvpxdec.o - OBJS-$(CONFIG_LIBVPX_VP8_ENCODER) += libvpxenc.o - OBJS-$(CONFIG_LIBVPX_VP9_DECODER) += libvpxdec.o +-- +2.54.0 + diff --git a/anda/multimedia/ffmpeg/ffmpeg-vapoursynth-script-soname.patch b/anda/multimedia/ffmpeg/ffmpeg-vapoursynth-script-soname.patch new file mode 100644 index 0000000000..a1747fc373 --- /dev/null +++ b/anda/multimedia/ffmpeg/ffmpeg-vapoursynth-script-soname.patch @@ -0,0 +1,26 @@ +From 03ce488cabd436b353aaa4bef1b848493e17317f Mon Sep 17 00:00:00 2001 +From: Terra Packaging Team +Date: Sun, 31 May 2026 03:08:52 -0500 +Subject: [PATCH] Fix VapourSynth dlopen + +See: https://bugzilla.redhat.com/show_bug.cgi?id=2345698 +--- + libavformat/vapoursynth.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libavformat/vapoursynth.c b/libavformat/vapoursynth.c +index 0fa5aff..e6ac20b 100644 +--- a/libavformat/vapoursynth.c ++++ b/libavformat/vapoursynth.c +@@ -49,7 +49,7 @@ + #else + #include + #define VSSCRIPT_NAME "libvapoursynth-script" +- #define VSSCRIPT_LIB VSSCRIPT_NAME SLIBSUF ++ #define VSSCRIPT_LIB VSSCRIPT_NAME SLIBSUF ".0" + #endif + + struct VSState { +-- +2.54.0 + diff --git a/anda/multimedia/ffmpeg/ffmpeg.spec b/anda/multimedia/ffmpeg/ffmpeg.spec index bcb49817fa..fe5a29a0cf 100644 --- a/anda/multimedia/ffmpeg/ffmpeg.spec +++ b/anda/multimedia/ffmpeg/ffmpeg.spec @@ -1,432 +1,741 @@ -%bcond bootstrap 1 +# For a complete build enable this +%bcond all_codecs 1 -%if %{with bootstrap} -%bcond chromaprint 0 -%bcond lcevcdec 0 +# Break dependency cycles by disabling certain optional dependencies. +%bcond bootstrap 0 + +# If building with all codecs, then set the pkg_suffix to %%nil. +# We can't handle this with a conditional, as srpm +# generation would not take it into account. +%global pkg_suffix %{!?with_all_codecs:-free}%{?with_all_codecs:%{nil}} + +# For alternative builds (do not enable in Fedora!) +%bcond freeworld_lavc 0 + +%if %{with freeworld_lavc} +# Freeworld builds enable all codecs +%global with_all_codecs 1 +# Freeworld builds do not need a package suffix +%global pkg_suffix %{nil} +%global basepkg_suffix -free +%endif + +# Fails due to asm issue +%ifarch %{ix86} %{arm} +%bcond lto 0 +# relocations in .text from nasm-compiled code on i686 only +# https://bugzilla.redhat.com/show_bug.cgi?id=2428281 +%global _pkg_extra_ldflags "-Wl,-z,notext" %else -%bcond chromaprint 1 -%bcond lcevcdec 1 -%endif - -%global _lto_cflags %{nil} - -%global avcodec_soversion 61 -%global avdevice_soversion 61 -%global avfilter_soversion 10 -%global avformat_soversion 61 -%global avutil_soversion 59 -%global postproc_soversion 58 -%global swresample_soversion 5 -%global swscale_soversion 8 - -Summary: A complete solution to record, convert and stream audio and video -Name: ffmpeg -Version: 8.1.1 -Release: 1%{?dist} -License: LGPLv3+ -URL: http://%{name}.org/ -Epoch: 1 - -Source0: http://%{name}.org/releases/%{name}-%{version}.tar.xz - -# https://github.com/OpenVisualCloud/SVT-VP9/tree/master/ffmpeg_plugin -Patch0: %{name}-svt-vp9.patch -# https://github.com/HandBrake/HandBrake/tree/8902805364f00e0d420c4d4b33053a31d27045ab -Patch1: %{name}-HandBrake.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=2240127 -# Reference: https://crbug.com/1306560 -Patch2: %{name}-chromium.patch -# Fix build with recent NVCC: -Patch3: %{name}-nvcc.patch -# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/f8a300c6739ea2ca648579d7faf3ae9811b9f19a -Patch4: %{name}-cuda-13.patch -# Support LCEVCdec 4.0+: -Patch5: https://aur.archlinux.org/cgit/aur.git/plain/080-ffmpeg-lcevcdec4.0.0-fix.patch?h=ffmpeg-full#/%{name}-LCEVCdec-4.patch -# https://github.com/magarnicle/FFmpeg/commits/DeckLink_SDK_14_4/ -Patch6: %{name}-decklink-14.patch - -BuildRequires: AMF-devel >= 1.4.28 -BuildRequires: bzip2-devel -BuildRequires: codec2-devel -BuildRequires: decklink-devel >= 14.2 -BuildRequires: doxygen -BuildRequires: frei0r-devel -BuildRequires: gmp-devel -BuildRequires: gsm-devel -BuildRequires: ilbc-devel -BuildRequires: lame-devel >= 3.98.3 -BuildRequires: ladspa-devel -BuildRequires: libavc1394-devel -%if %{with chromaprint} -BuildRequires: libchromaprint-devel -%endif -BuildRequires: libgcrypt-devel -BuildRequires: libiec61883-devel -BuildRequires: libklvanc-devel -BuildRequires: libtheora-devel -BuildRequires: libvdpau-devel -BuildRequires: libxavs-devel -BuildRequires: mesa-libGL-devel -BuildRequires: nasm -BuildRequires: ocl-icd-devel -BuildRequires: openal-soft-devel -BuildRequires: opencore-amr-devel -BuildRequires: perl(Pod::Man) -BuildRequires: snappy-devel -BuildRequires: soxr-devel -BuildRequires: subversion -BuildRequires: texinfo -BuildRequires: twolame-devel >= 0.3.10 -BuildRequires: vo-amrwbenc-devel -BuildRequires: xvidcore-devel -BuildRequires: xz-devel - -BuildRequires: pkgconfig(alsa) -BuildRequires: pkgconfig(aom) >= 1.0.0 -BuildRequires: pkgconfig(aribb24) >= 1.0.3 -BuildRequires: pkgconfig(caca) -BuildRequires: pkgconfig(dav1d) >= 0.5.0 -BuildRequires: pkgconfig(davs2) >= 1.6.0 -BuildRequires: pkgconfig(dvdnav) >= 6.1.1 -BuildRequires: pkgconfig(fdk-aac) -BuildRequires: pkgconfig(fontconfig) -BuildRequires: pkgconfig(freetype2) -BuildRequires: pkgconfig(fribidi) -BuildRequires: pkgconfig(harfbuzz) -BuildRequires: pkgconfig(jack) -BuildRequires: pkgconfig(kvazaar) >= 0.8.1 -BuildRequires: pkgconfig(lc3) >= 1.1.0 -BuildRequires: pkgconfig(lcms2) >= 2.13 -%if %{with lcevcdec} -BuildRequires: pkgconfig(lcevc_dec) >= 2.0.0 -%endif -BuildRequires: pkgconfig(libaribcaption) >= 1.1.1 -BuildRequires: pkgconfig(libass) >= 0.11.0 -BuildRequires: pkgconfig(libbluray) -BuildRequires: pkgconfig(libbs2b) -BuildRequires: pkgconfig(libcdio_paranoia) -BuildRequires: pkgconfig(libdc1394-2) -BuildRequires: pkgconfig(libdrm) -BuildRequires: pkgconfig(libgme) -BuildRequires: pkgconfig(libjxl) >= 0.7.0 -#BuildRequires: pkgconfig(lensfun) > 0.3.95 -BuildRequires: pkgconfig(libmodplug) -BuildRequires: pkgconfig(libmysofa) -BuildRequires: pkgconfig(libopenjp2) >= 2.1.0 -BuildRequires: pkgconfig(libopenmpt) >= 0.2.6557 -BuildRequires: pkgconfig(libplacebo) >= 4.192.0 -BuildRequires: pkgconfig(libpulse) -BuildRequires: pkgconfig(libqrencode) -#BuildRequires: pkgconfig(libquirc) -BuildRequires: pkgconfig(librabbitmq) >= 0.7.1 -BuildRequires: pkgconfig(librist) >= 0.2.7 -BuildRequires: pkgconfig(librtmp) -BuildRequires: pkgconfig(librsvg-2.0) -BuildRequires: pkgconfig(libssh) -BuildRequires: pkgconfig(libtcmalloc) -BuildRequires: pkgconfig(libva) >= 0.35.0 -BuildRequires: pkgconfig(libva-drm) -BuildRequires: pkgconfig(libva-x11) -BuildRequires: pkgconfig(libv4l2) -BuildRequires: pkgconfig(libvvenc) >= 1.11.0 -BuildRequires: pkgconfig(libwebp) -BuildRequires: pkgconfig(libwebpmux) >= 0.4.0 -BuildRequires: pkgconfig(libxml-2.0) -BuildRequires: pkgconfig(libzmq) >= 4.2.1 -BuildRequires: pkgconfig(lilv-0) -BuildRequires: pkgconfig(lv2) -#BuildRequires: pkgconfig(OpenCL) -#BuildRequires: pkgconfig(opencv) -BuildRequires: pkgconfig(openh264) -BuildRequires: pkgconfig(openssl) -BuildRequires: pkgconfig(opus) -BuildRequires: pkgconfig(rav1e) >= 0.4.0 -BuildRequires: pkgconfig(rubberband) >= 1.8.1 -BuildRequires: pkgconfig(sdl2) -BuildRequires: pkgconfig(shaderc) >= 2019.1 -#BuildRequires: pkgconfig(shine) -BuildRequires: pkgconfig(smbclient) -BuildRequires: pkgconfig(speex) -BuildRequires: pkgconfig(srt) >= 1.3.0 -BuildRequires: pkgconfig(SvtAv1Enc) >= 0.9.0 -BuildRequires: pkgconfig(tesseract) -BuildRequires: pkgconfig(uavs3d) >= 1.1.41 -BuildRequires: pkgconfig(vapoursynth-script) >= 42 -BuildRequires: pkgconfig(vidstab) >= 0.98 -BuildRequires: pkgconfig(vorbis) -BuildRequires: pkgconfig(vorbisenc) -BuildRequires: pkgconfig(vpx) >= 1.4.0 -BuildRequires: pkgconfig(vulkan) >= 1.3.277 -BuildRequires: pkgconfig(xavs2) >= 1.3.0 -BuildRequires: pkgconfig(xcb) >= 1.4 -BuildRequires: pkgconfig(xcb-shape) -BuildRequires: pkgconfig(xcb-shm) -BuildRequires: pkgconfig(xcb-xfixes) -BuildRequires: pkgconfig(xevd) >= 0.4.1 -BuildRequires: pkgconfig(xeve) >= 0.4.3 -BuildRequires: pkgconfig(xext) -BuildRequires: pkgconfig(x11) -BuildRequires: pkgconfig(x264) -BuildRequires: pkgconfig(x265) -BuildRequires: pkgconfig(xv) -BuildRequires: pkgconfig(zimg) >= 2.7.0 -BuildRequires: pkgconfig(zlib) -BuildRequires: pkgconfig(zvbi-0.2) >= 0.2.28 - -%ifarch x86_64 aarch64 -BuildRequires: cuda-cudart-devel -BuildRequires: cuda-nvcc -BuildRequires: pkgconfig(ffnvcodec) >= 12.0.16.0 +%bcond lto 1 %endif %ifarch x86_64 -BuildRequires: pkgconfig(libmfx) -BuildRequires: pkgconfig(libvmaf) >= 2.0.0 -BuildRequires: pkgconfig(SvtVp9Enc) -BuildRequires: pkgconfig(vpl) >= 2.6 +%bcond vpl 1 +%bcond vmaf 1 +%else +%bcond vpl 0 +%bcond vmaf 0 %endif -Obsoletes: %{name}-free < %{epoch}:%{version}-%{release} -Provides: %{name}-free = %{epoch}:%{version}-%{release} +%ifarch s390 s390x riscv64 +%bcond dc1394 0 +%bcond ffnvcodec 0 +%else +%bcond dc1394 1 +%bcond ffnvcodec 1 +%endif + +%if 0%{?rhel} +# Disable dependencies not available or wanted on RHEL/EPEL +%bcond chromaprint 0 +%bcond flite 0 +%else +# Break chromaprint dependency cycle (Fedora-only): +# ffmpeg (libavcodec-free) → chromaprint → ffmpeg +%bcond chromaprint %{without boostrap} +%bcond flite 1 +%endif + +%if 0%{?rhel} && 0%{?rhel} <= 9 +# Disable some features because RHEL 9 packages are too old +%bcond lcms2 0 +%bcond placebo 0 +%else +%bcond lcms2 1 +%bcond placebo 1 +%endif + +%if 0%{?el10} +# Disable temporarily while we want for liblc3 to be upgraded +# Cf. https://issues.redhat.com/browse/RHEL-127169 +%bcond lc3 0 +%else +%bcond lc3 1 +%endif + +# For using an alternative build of EVC codecs +%bcond evc_main 0 + +%if %{with all_codecs} +%bcond rtmp 1 +%bcond vvc 1 +%bcond x264 1 +%bcond x265 1 +%else +%bcond rtmp 0 +%bcond vvc 0 +%bcond x264 0 +%bcond x265 0 +%endif + +%if %{without lto} +%global _lto_cflags %{nil} +%endif + +# FIXME: GCC says there's incompatible pointer casts going on in libavdevice... +%global build_type_safety_c 2 + +%global av_codec_soversion 62 +%global av_device_soversion 62 +%global av_filter_soversion 11 +%global av_format_soversion 62 +%global av_util_soversion 60 +%global swresample_soversion 6 +%global swscale_soversion 9 + +Name: ffmpeg +%global pkg_name %{name}%{?pkg_suffix} + +Version: 8.1.1 +Release: 1%{?dist} +Epoch: 1 +Summary: A complete solution to record, convert and stream audio and video +License: GPL-3.0-or-later +URL: https://ffmpeg.org/ +Source0: https://ffmpeg.org/releases/ffmpeg-%{version}.tar.xz +Source1: https://ffmpeg.org/releases/ffmpeg-%{version}.tar.xz.asc +# https://ffmpeg.org/ffmpeg-devel.asc +# gpg2 --import --import-options import-export,import-minimal ffmpeg-devel.asc > ./ffmpeg.keyring +Source2: ffmpeg.keyring +Source20: enable_decoders +Source21: enable_encoders + +%if %{without all_codecs} +# Fixes for reduced codec selection on free build +Patch1: ffmpeg-codec-choice.patch +%endif +# Allow to build with fdk-aac-free +# See https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112 +Patch2: ffmpeg-allow-fdk-aac-free.patch + +# HandBrake patches +Patch3: ffmpeg-svt-vp9.patch +Patch4: ffmpeg-HandBrake.patch + +# https://code.ffmpeg.org/FFmpeg/FFmpeg/issues/23211 +Patch5: ffmpeg-vapoursynth-script-soname.patch + +# Add first_dts getter to libavformat for Chromium +# See: https://bugzilla.redhat.com/show_bug.cgi?id=2240127 +# Reference: https://crbug.com/1306560 +Patch1002: ffmpeg-chromium.patch + + +Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavfilter%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release} + +BuildRequires: AMF-devel +# NOTE: This MUST be done otherwise the binary is NOT REDISTRIBUTABLE. +# Even though FDK itself may be redistributable. +# See: https://ffmpeg.org/doxygen/4.4/md_LICENSE.html +# DO NOT change this to pkgconfig(fdk-aac). +BuildRequires: fdk-aac-free-devel +%if %{with flite} +BuildRequires: flite-devel >= 2.2 +%endif +BuildRequires: game-music-emu-devel +BuildRequires: gcc +BuildRequires: git-core +BuildRequires: gnupg2 +BuildRequires: gsm-devel +BuildRequires: ladspa-devel +BuildRequires: lame-devel +BuildRequires: libgcrypt-devel +BuildRequires: libklvanc-devel +BuildRequires: libmysofa-devel +BuildRequires: libX11-devel +BuildRequires: libXext-devel +BuildRequires: libXv-devel +BuildRequires: make +BuildRequires: nasm +BuildRequires: perl(Pod::Man) +BuildRequires: pkgconfig(alsa) +BuildRequires: pkgconfig(aom) +BuildRequires: pkgconfig(aribb24) >= 1.0.3 +BuildRequires: pkgconfig(bzip2) +BuildRequires: pkgconfig(caca) +BuildRequires: pkgconfig(codec2) +BuildRequires: pkgconfig(dav1d) +BuildRequires: pkgconfig(dvdnav) +BuildRequires: pkgconfig(dvdread) +BuildRequires: pkgconfig(ffnvcodec) +BuildRequires: pkgconfig(flac) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(frei0r) +BuildRequires: pkgconfig(fribidi) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(gnutls) +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: pkgconfig(libilbc) +BuildRequires: pkgconfig(jack) +%if %{with lc3} +BuildRequires: pkgconfig(lc3) >= 1.1.0 +%endif +%if %{with lcms2} +BuildRequires: pkgconfig(lcms2) >= 2.13 +%endif +BuildRequires: pkgconfig(libaribcaption) >= 1.1.1 +BuildRequires: pkgconfig(libass) +BuildRequires: pkgconfig(libbluray) +BuildRequires: pkgconfig(libbs2b) +BuildRequires: pkgconfig(libcdio) +BuildRequires: pkgconfig(libcdio_paranoia) +%if %{with chromaprint} +BuildRequires: pkgconfig(libchromaprint) +%endif +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libjxl) >= 0.7.0 +BuildRequires: pkgconfig(libmodplug) +BuildRequires: pkgconfig(libopenjp2) +BuildRequires: pkgconfig(libopenmpt) +%if %{with placebo} +BuildRequires: pkgconfig(libplacebo) >= 4.192.0 +%endif +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(librabbitmq) +BuildRequires: pkgconfig(librist) +BuildRequires: pkgconfig(librsvg-2.0) +BuildRequires: pkgconfig(libssh) +BuildRequires: pkgconfig(libv4l2) +BuildRequires: pkgconfig(libva) +BuildRequires: pkgconfig(libva-drm) +BuildRequires: pkgconfig(libva-x11) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libzmq) +BuildRequires: pkgconfig(lilv-0) +BuildRequires: pkgconfig(lv2) +BuildRequires: pkgconfig(oapv) +BuildRequires: pkgconfig(ogg) +BuildRequires: pkgconfig(openal) +BuildRequires: pkgconfig(opencore-amrnb) +BuildRequires: pkgconfig(OpenCL) +BuildRequires: pkgconfig(openh264) +BuildRequires: pkgconfig(opus) +BuildRequires: pkgconfig(rav1e) +BuildRequires: pkgconfig(rubberband) +BuildRequires: pkgconfig(sdl2) +BuildRequires: pkgconfig(shaderc) >= 2019.1 +BuildRequires: pkgconfig(smbclient) +BuildRequires: pkgconfig(snappy) +BuildRequires: pkgconfig(soxr) +BuildRequires: pkgconfig(speex) +BuildRequires: pkgconfig(srt) +BuildRequires: pkgconfig(SvtAv1Enc) >= 0.9.0 +BuildRequires: pkgconfig(tesseract) +BuildRequires: pkgconfig(theora) +BuildRequires: pkgconfig(twolame) +BuildRequires: pkgconfig(vapoursynth) +BuildRequires: pkgconfig(vdpau) +BuildRequires: pkgconfig(vidstab) +BuildRequires: pkgconfig(vorbis) +BuildRequires: pkgconfig(vo-amrwbenc) +BuildRequires: pkgconfig(vpx) +BuildRequires: pkgconfig(vulkan) >= 1.3.255 +BuildRequires: pkgconfig(wavpack) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xcb-render) +BuildRequires: pkgconfig(xcb-shape) +BuildRequires: pkgconfig(xcb-shm) +BuildRequires: pkgconfig(xcb-xfixes) +BuildRequires: pkgconfig(zimg) +BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(zvbi-0.2) +BuildRequires: texinfo +BuildRequires: xvidcore-devel + +%if %{with dc1394} +BuildRequires: pkgconfig(libavc1394) +BuildRequires: pkgconfig(libdc1394-2) +BuildRequires: pkgconfig(libiec61883) +%endif +%if %{with rtmp} +BuildRequires: librtmp-devel +%endif +%if %{with vpl} +BuildRequires: pkgconfig(vpl) >= 2.6 +%endif +%if %{with evc_main} +BuildRequires: pkgconfig(xevd) +BuildRequires: pkgconfig(xeve) +%else +BuildRequires: pkgconfig(xevdb) +BuildRequires: pkgconfig(xeveb) +%endif +%if %{with x264} +BuildRequires: pkgconfig(x264) +%endif +%if %{with x265} +BuildRequires: pkgconfig(x265) +%endif +%if %{with vmaf} +BuildRequires: pkgconfig(libvmaf) +%endif +# Prevent build from pulling full FDK-AAC builds. +# WARNING: This MUST be ensured otherwise the binary is NOT REDISTRIBUTABLE. +# Even though FDK itself may be redistributable. +# See: https://ffmpeg.org/doxygen/4.4/md_LICENSE.html +# DO NOT remove this. +BuildConflicts: fdk-aac-devel + +Packager: Terra Packaging Team %description -FFmpeg is a complete and free Internet live audio and video -broadcasting solution for Linux/Unix. It also includes a digital -VCR. It can encode in real time in many formats including MPEG1 audio -and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. +FFmpeg is a leading multimedia framework, able to decode, encode, transcode, +mux, demux, stream, filter and play pretty much anything that humans and +machines have created. It supports the most obscure ancient formats up to the +cutting edge. No matter if they were designed by some standards committee, the +community or a corporation. -%package libs -Summary: Metapackage for %{name} libraries -Requires: libavcodec%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavdevice%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavfilter%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavformat%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavutil%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libpostproc%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libswresample%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libswscale%{?_isa} = %{epoch}:%{version}-%{release} +%if %{without all_codecs} +This build of ffmpeg is limited in the number of codecs supported. +%endif -%description libs -FFmpeg is a complete and free Internet live audio and video -broadcasting solution for Linux/Unix. It also includes a digital -VCR. It can encode in real time in many formats including MPEG1 audio -and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. -This metapackage pulls in all the %{name} libraries. +%dnl -------------------------------------------------------------------------------- -%package devel -Summary: Metapackage for %{name} development files -Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +%if ! %{with freeworld_lavc} + +%if "x%{?pkg_suffix}" != "x" +%package -n %{pkg_name} +Summary: A complete solution to record, convert and stream audio and video +Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavfilter%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release} + + +%description -n %{pkg_name} +FFmpeg is a leading multimedia framework, able to decode, encode, transcode, +mux, demux, stream, filter and play pretty much anything that humans and +machines have created. It supports the most obscure ancient formats up to the +cutting edge. No matter if they were designed by some standards committee, the +community or a corporation. + +%if %{without all_codecs} +This build of ffmpeg is limited in the number of codecs supported. +%endif + +#/ "x%%{?pkg_suffix}" != "x" +%endif + +%files -n %{pkg_name} +%doc CREDITS README.md +%{_bindir}/ffmpeg +%{_bindir}/ffplay +%{_bindir}/ffprobe +%{_mandir}/man1/ff*.1* +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/ffprobe.xsd +%{_datadir}/%{name}/libvpx-*.ffpreset + +%dnl -------------------------------------------------------------------------------- + +%package -n %{pkg_name}-devel +Summary: Development package for %{name} +Requires: libavcodec%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavdevice%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavfilter%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavformat%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libswresample%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libswscale%{?pkg_suffix}-devel = %{version}-%{release} Requires: pkgconfig -%description devel -FFmpeg is a complete and free Internet live audio and video broadcasting -solution for Linux/Unix. It also includes a digital VCR. It can encode in real -time in many formats. This package contains development files for %{name}. +%description -n %{pkg_name}-devel +FFmpeg is a leading multimedia framework, able to decode, encode, transcode, +mux, demux, stream, filter and play pretty much anything that humans and +machines have created. It supports the most obscure ancient formats up to the +cutting edge. No matter if they were designed by some standards committee, the +community or a corporation. -%package -n libavcodec +%files -n %{pkg_name}-devel +%doc MAINTAINERS doc/APIchanges doc/*.txt +%doc _doc/examples + +%dnl -------------------------------------------------------------------------------- + +%package -n libavcodec%{?pkg_suffix} Summary: FFmpeg codec library -Obsoletes: libavcodec-free < %{epoch}:%{version}-%{release} -Provides: libavcodec-free = %{epoch}:%{version}-%{release} +Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release} +# We require libopenh264 library, which has a dummy implementation and a real one +# In the event that this is being installed, we want to prefer openh264 if available +Suggests: openh264%{_isa} -%description -n libavcodec -The libavcodec library provides a generic encoding/decoding framework and -contains multiple decoders and encoders for audio, video and subtitle streams, -and several bitstream filters. +%description -n libavcodec%{?pkg_suffix} +The libavcodec library provides a generic encoding/decoding framework +and contains multiple decoders and encoders for audio, video and +subtitle streams, and several bitstream filters. -%package -n libavcodec-devel +%if %{without all_codecs} +This build of ffmpeg is limited in the number of codecs supported. +%endif + +%files -n libavcodec%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavcodec.so.%{av_codec_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + +%package -n libavcodec%{?pkg_suffix}-devel Summary: Development files for FFmpeg's codec library -Requires: libavcodec%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavutil-devel%{?_isa} = %{epoch}:%{version}-%{release} +Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: pkgconfig -Obsoletes: libavcodec-free-devel < %{epoch}:%{version}-%{release} -Provides: libavcodec-free-devel = %{epoch}:%{version}-%{release} -%description -n libavcodec-devel -The libavcodec library provides a generic encoding/decoding framework and -contains multiple decoders and encoders for audio, video and subtitle streams, -and several bitstream filters. +%description -n libavcodec%{?pkg_suffix}-devel +The libavcodec library provides a generic encoding/decoding framework +and contains multiple decoders and encoders for audio, video and +subtitle streams, and several bitstream filters. This subpackage contains the headers for FFmpeg libavcodec. -%package -n libavdevice -Summary: FFMpeg devices muxing/demuxing library -Obsoletes: libavdevice-free < %{epoch}:%{version}-%{release} -Provides: libavdevice-free = %{epoch}:%{version}-%{release} +%files -n libavcodec%{?pkg_suffix}-devel +%{_includedir}/%{name}/libavcodec +%{_libdir}/pkgconfig/libavcodec.pc +%{_libdir}/libavcodec.so +%{_mandir}/man3/libavcodec.3* -%description -n libavdevice -Libavdevice is a complementary library to libavf "libavformat". It provides -various "special" platform-specific muxers and demuxers, e.g. for grabbing -devices, audio capture and playback etc. +%dnl -------------------------------------------------------------------------------- -%package -n libavdevice-devel -Summary: Development files for FFMpeg devices muxing/demuxing library -Requires: libavcodec-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavdevice%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavfilter-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavformat-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavutil-devel%{?_isa} = %{epoch}:%{version}-%{release} +%package -n libavdevice%{?pkg_suffix} +Summary: FFmpeg device library +Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavfilter%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} + +%description -n libavdevice%{?pkg_suffix} +The libavdevice library provides a generic framework for grabbing from +and rendering to many common multimedia input/output devices, and +supports several input and output devices, including Video4Linux2, VfW, +DShow, and ALSA. + +%files -n libavdevice%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavdevice.so.%{av_device_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + +%package -n libavdevice%{?pkg_suffix}-devel +Summary: Development files for FFmpeg's device library +Requires: libavcodec%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavfilter%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavformat%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libswresample%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libswscale%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: pkgconfig -Obsoletes: libavdevice-free-devel < %{epoch}:%{version}-%{release} -Provides: libavdevice-free-devel = %{epoch}:%{version}-%{release} -%description -n libavdevice-devel +%description -n libavdevice%{?pkg_suffix}-devel +The libavdevice library provides a generic framework for grabbing from +and rendering to many common multimedia input/output devices, and +supports several input and output devices, including Video4Linux2, VfW, +DShow, and ALSA. + This subpackage contains the headers for FFmpeg libavdevice. -%package -n libavfilter +%files -n libavdevice%{?pkg_suffix}-devel +%{_includedir}/%{name}/libavdevice +%{_libdir}/pkgconfig/libavdevice.pc +%{_libdir}/libavdevice.so +%{_mandir}/man3/libavdevice.3* + +%dnl -------------------------------------------------------------------------------- + +%package -n libavfilter%{?pkg_suffix} Summary: FFmpeg audio and video filtering library -Requires: libavcodec%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavformat%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavutil%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libpostproc%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libswresample%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libswscale%{?_isa} = %{epoch}:%{version}-%{release} -Obsoletes: libavfilter-free < %{epoch}:%{version}-%{release} -Provides: libavfilter-free = %{epoch}:%{version}-%{release} +Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release} -%description -n libavfilter -The libavfilter library provides a generic audio/video filtering framework -containing several filters, sources and sinks. +%description -n libavfilter%{?pkg_suffix} +The libavfilter library provides a generic audio/video filtering +framework containing several filters, sources and sinks. -%package -n libavfilter-devel +%files -n libavfilter%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavfilter.so.%{av_filter_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + +%package -n libavfilter%{?pkg_suffix}-devel Summary: Development files for FFmpeg's audio/video filter library -Requires: libavcodec-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavfilter%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavformat-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavutil-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libpostproc-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libswresample-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libswscale-devel%{?_isa} = %{epoch}:%{version}-%{release} +Requires: libavcodec%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavformat%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libswresample%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libswscale%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavfilter%{?pkg_suffix} = %{version}-%{release} Requires: pkgconfig -Obsoletes: libavfilter-free-devel < %{epoch}:%{version}-%{release} -Provides: libavfilter-free-devel = %{epoch}:%{version}-%{release} -%description -n libavfilter-devel +%description -n libavfilter%{?pkg_suffix}-devel +The libavfilter library provides a generic audio/video filtering +framework containing several filters, sources and sinks. + This subpackage contains the headers for FFmpeg libavfilter. -%package -n libavformat +%files -n libavfilter%{?pkg_suffix}-devel +%{_includedir}/%{name}/libavfilter +%{_libdir}/pkgconfig/libavfilter.pc +%{_libdir}/libavfilter.so +%{_mandir}/man3/libavfilter.3* + +%dnl -------------------------------------------------------------------------------- + +%package -n libavformat%{?pkg_suffix} Summary: FFmpeg's stream format library -Obsoletes: libavformat-free < %{epoch}:%{version}-%{release} -Provides: libavformat-free = %{epoch}:%{version}-%{release} +Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} -%description -n libavformat -The libavformat library provides a generic framework for multiplexing and -demultiplexing (muxing and demuxing) audio, video and subtitle streams. -It encompasses multiple muxers and demuxers for multimedia container formats. +%description -n libavformat%{?pkg_suffix} +The libavformat library provides a generic framework for multiplexing +and demultiplexing (muxing and demuxing) audio, video and subtitle +streams. It encompasses multiple muxers and demuxers for multimedia +container formats. -%package -n libavformat-devel +%if %{without all_codecs} +This build of ffmpeg is limited in the number of codecs supported. +%endif + +%files -n libavformat%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavformat.so.%{av_format_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + +%package -n libavformat%{?pkg_suffix}-devel Summary: Development files for FFmpeg's stream format library -Requires: libavcodec-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavformat%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libavutil-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libswresample-devel%{?_isa} = %{epoch}:%{version}-%{release} +Requires: libavcodec%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libswresample%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: pkgconfig -Obsoletes: libavformat-free-devel < %{epoch}:%{version}-%{release} -Provides: libavformat-free-devel = %{epoch}:%{version}-%{release} -%description -n libavformat-devel +%description -n libavformat%{?pkg_suffix}-devel +The libavformat library provides a generic framework for multiplexing +and demultiplexing (muxing and demuxing) audio, video and subtitle +streams. It encompasses multiple muxers and demuxers for multimedia +container formats. + This subpackage contains the headers for FFmpeg libavformat. -%package -n libavutil -Summary: FFmpeg's utility library -Obsoletes: libavutil-free < %{epoch}:%{version}-%{release} -Provides: libavutil-free = %{epoch}:%{version}-%{release} +%files -n libavformat%{?pkg_suffix}-devel +%{_includedir}/%{name}/libavformat +%{_libdir}/pkgconfig/libavformat.pc +%{_libdir}/libavformat.so +%{_mandir}/man3/libavformat.3* -%description -n libavutil +%dnl -------------------------------------------------------------------------------- + +%package -n libavutil%{?pkg_suffix} +Summary: FFmpeg's utility library +Group: System/Libraries +Obsoletes: libpostproc%{?pkg_suffix} < 8.0 + +%description -n libavutil%{?pkg_suffix} The libavutil library is a utility library to aid portable multimedia programming. It contains safe portable string functions, random number generators, data structures, additional mathematics functions, cryptography and multimedia related functionality (like enumerations for pixel and sample formats). -%package -n libavutil-devel -Summary: Development files for FFmpeg's utility library -Requires: libavutil%{?_isa} = %{epoch}:%{version}-%{release} -Requires: pkgconfig -Obsoletes: libavutil-free-devel < %{epoch}:%{version}-%{release} -Provides: libavutil-free-devel = %{epoch}:%{version}-%{release} +%files -n libavutil%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavutil.so.%{av_util_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + +%package -n libavutil%{?pkg_suffix}-devel +Summary: Development files for FFmpeg's utility library +Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} +Requires: pkgconfig +Obsoletes: libpostproc%{?pkg_suffix}-devel < 8.0 + +%description -n libavutil%{?pkg_suffix}-devel +The libavutil library is a utility library to aid portable multimedia +programming. It contains safe portable string functions, random +number generators, data structures, additional mathematics functions, +cryptography and multimedia related functionality (like enumerations +for pixel and sample formats). -%description -n libavutil-devel This subpackage contains the headers for FFmpeg libavutil. -%package -n libpostproc -Summary: FFmpeg post-processing library -Obsoletes: libpostproc-free < %{epoch}:%{version}-%{release} -Provides: libpostproc-free = %{epoch}:%{version}-%{release} +%files -n libavutil%{?pkg_suffix}-devel +%{_includedir}/%{name}/libavutil +%{_libdir}/pkgconfig/libavutil.pc +%{_libdir}/libavutil.so +%{_mandir}/man3/libavutil.3* -%description -n libpostproc -A library with video postprocessing filters, such as deblocking and -deringing filters, noise reduction, automatic contrast and brightness -correction, linear/cubic interpolating deinterlacing. +%dnl -------------------------------------------------------------------------------- -%package -n libpostproc-devel -Summary: Development files for the FFmpeg post-processing library -Requires: libavutil-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libpostproc%{?_isa} = %{epoch}:%{version}-%{release} -Requires: pkgconfig -Obsoletes: libpostproc-free-devel < %{epoch}:%{version}-%{release} -Provides: libpostproc-free-devel = %{epoch}:%{version}-%{release} - -%description -n libpostproc-devel -This subpackage contains the headers for FFmpeg libpostproc. - -%package -n libswresample +%package -n libswresample%{?pkg_suffix} Summary: FFmpeg software resampling library -Requires: libavutil%{?_isa} = %{epoch}:%{version}-%{release} -Obsoletes: libavresemple < %{epoch}:%{version}-%{release} -Provides: libavresemple = %{epoch}:%{version}-%{release} -Obsoletes: libswresample-free < %{epoch}:%{version}-%{release} -Provides: libswresample-free = %{epoch}:%{version}-%{release} +Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} -%description -n libswresample +%description -n libswresample%{?pkg_suffix} The libswresample library performs audio conversion between different sample rates, channel layout and channel formats. -%package -n libswresample-devel -Summary: Development files for the FFmpeg software resampling library -Requires: libavutil-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libswresample%{?_isa} = %{epoch}:%{version}-%{release} -Obsoletes: libavresemple-devel < %{epoch}:%{version}-%{release} -Provides: libavresemple-devel = %{epoch}:%{version}-%{release} -Obsoletes: libswresample-free-devel < %{epoch}:%{version}-%{release} -Provides: libswresample-free-devel = %{epoch}:%{version}-%{release} +%files -n libswresample%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libswresample.so.%{swresample_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + +%package -n libswresample%{?pkg_suffix}-devel +Summary: Development files for the FFmpeg software resampling library +Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release} + +%description -n libswresample%{?pkg_suffix}-devel +The libswresample library performs audio conversion between different +sample rates, channel layout and channel formats. -%description -n libswresample-devel This subpackage contains the headers for FFmpeg libswresample. -%package -n libswscale -Summary: FFmpeg image scaling and colorspace/pixel conversion library -Obsoletes: libswscale-free < %{epoch}:%{version}-%{release} -Provides: libswscale-free = %{epoch}:%{version}-%{release} +%files -n libswresample%{?pkg_suffix}-devel +%{_includedir}/%{name}/libswresample +%{_libdir}/pkgconfig/libswresample.pc +%{_libdir}/libswresample.so +%{_mandir}/man3/libswresample.3* -%description -n libswscale +%dnl -------------------------------------------------------------------------------- + +%package -n libswscale%{?pkg_suffix} +Summary: FFmpeg image scaling and colorspace/pixel conversion library +Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} + +%description -n libswscale%{?pkg_suffix} The libswscale library performs image scaling and colorspace and pixel format conversion operations. -%package -n libswscale-devel -Summary: Development files for FFmpeg's image scaling and colorspace library -Requires: libavutil-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: libswscale%{?_isa} = %{epoch}:%{version}-%{release} -Obsoletes: libswscale-free-devel < %{epoch}:%{version}-%{release} -Provides: libswscale-free-devel = %{epoch}:%{version}-%{release} +%files -n libswscale%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libswscale.so.%{swscale_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + +%package -n libswscale%{?pkg_suffix}-devel +Summary: Development files for FFmpeg's image scaling and colorspace library +Provides: libswscale%{?pkg_suffix}-devel = %{version}-%{release} +Conflicts: libswscale%{?pkg_suffix}-devel < %{version}-%{release} +Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} +Requires: libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release} + +%description -n libswscale%{?pkg_suffix}-devel +The libswscale library performs image scaling and colorspace and +pixel format conversion operations. -%description -n libswscale-devel This subpackage contains the headers for FFmpeg libswscale. +%files -n libswscale%{?pkg_suffix}-devel +%{_includedir}/%{name}/libswscale +%{_libdir}/pkgconfig/libswscale.pc +%{_libdir}/libswscale.so +%{_mandir}/man3/libswscale.3* + +%endif +# freeworld_lavc bcond + +%dnl -------------------------------------------------------------------------------- + +%if %{with freeworld_lavc} +%package -n libavcodec-freeworld +Summary: FFmpeg codec library - freeworld overlay +Requires: libavutil%{?basepkg_suffix}%{_isa} >= %{version}-%{release} +Requires: libswresample%{?basepkg_suffix}%{_isa} >= %{version}-%{release} +Supplements: libavcodec%{?basepkg_suffix}%{_isa} >= %{version}-%{release} +# We require libopenh264 library, which has a dummy implementation and a real one +# In the event that this is being installed, we want to install this version +Requires: openh264%{_isa} + +%description -n libavcodec-freeworld +The libavcodec library provides a generic encoding/decoding framework +and contains multiple decoders and encoders for audio, video and +subtitle streams, and several bitstream filters. + +This build includes the full range of codecs offered by ffmpeg. + +%files -n libavcodec-freeworld +%{_sysconfdir}/ld.so.conf.d/%{name}-%{_lib}.conf +%{_libdir}/%{name}/libavcodec.so.%{av_codec_soversion}{,.*} + +# Re-enable ldconfig_scriptlets macros +%{!?ldconfig:%global ldconfig /sbin/ldconfig} +%ldconfig_scriptlets -n libavcodec-freeworld + +%endif + +%dnl -------------------------------------------------------------------------------- + %prep -%autosetup -p1 +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -# Uncomment to enable debugging while configuring -#sed -i -e 's|#!/bin/sh|#!/bin/sh -x|g' configure +%autosetup -S git_am +install -m 0644 %{SOURCE20} enable_decoders +install -m 0644 %{SOURCE21} enable_encoders +# fix -O3 -g in host_cflags +sed -i "s|check_host_cflags -O3|check_host_cflags %{optflags}|" configure +install -m0755 -d _doc/examples +cp -a doc/examples/{*.c,Makefile,README} _doc/examples/ -%build +%conf %set_build_flags +# This is not a normal configure script, don't use %%configure ./configure \ - --arch=%{_target_cpu} \ + --prefix=%{_prefix} \ --bindir=%{_bindir} \ --datadir=%{_datadir}/%{name} \ + --docdir=%{_docdir}/%{name} \ + --incdir=%{_includedir}/%{name} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --arch=%{_target_cpu} \ + --optflags="%{build_cflags}" \ + --extra-ldflags="%{build_ldflags}" \ + --disable-htmlpages \ --disable-static \ --disable-stripping \ + --enable-pic \ + --enable-shared \ + --enable-gpl \ + --enable-version3 \ --enable-amf \ --enable-avcodec \ --enable-avdevice \ @@ -439,15 +748,21 @@ This subpackage contains the headers for FFmpeg libswscale. %else --disable-chromaprint \ %endif - --enable-decklink \ + --disable-cuda-nvcc \ +%if %{with ffnvcodec} + --enable-cuvid \ +%endif + --disable-decklink \ --enable-frei0r \ --enable-gcrypt \ --enable-gmp \ - --enable-gpl \ + --enable-gnutls \ --enable-gray \ --enable-iconv \ --enable-ladspa \ +%if %{with lcms2} --enable-lcms2 \ +%endif --enable-libaom \ --enable-libaribb24 \ --enable-libaribcaption \ @@ -458,30 +773,33 @@ This subpackage contains the headers for FFmpeg libswscale. --enable-libcdio \ --enable-libcodec2 \ --enable-libdav1d \ - --enable-libdavs2 \ + --disable-libdavs2 \ +%if %{with dc1394} --enable-libdc1394 \ - --enable-libdrm \ +%endif --enable-libdvdnav \ --enable-libdvdread \ --enable-libfdk-aac \ +%if %{with flite} + --enable-libflite \ +%endif --enable-libfontconfig \ --enable-libfreetype \ --enable-libfribidi \ --enable-libgme \ - --enable-libgsm \ --enable-libharfbuzz \ + --enable-libgsm \ +%if %{with dc1394} --enable-libiec61883 \ +%endif --enable-libilbc \ --enable-libjack \ --enable-libjxl \ --enable-libklvanc \ - --enable-libkvazaar \ - --enable-liblc3 \ --disable-liblensfun \ -%if %{with lcevcdec} - --enable-liblcevc-dec \ -%else --disable-liblcevc-dec \ +%if %{with lc3} + --enable-liblc3 \ %endif --enable-libmodplug \ --enable-libmp3lame \ @@ -490,11 +808,14 @@ This subpackage contains the headers for FFmpeg libswscale. --enable-libopencore-amrnb \ --enable-libopencore-amrwb \ --disable-libopencv \ + --enable-liboapv \ --enable-libopenh264 \ --enable-libopenjpeg \ --enable-libopenmpt \ --enable-libopus \ +%if %{with placebo} --enable-libplacebo \ +%endif --enable-libpulse \ --enable-libqrencode \ --disable-libquirc \ @@ -502,7 +823,9 @@ This subpackage contains the headers for FFmpeg libswscale. --enable-librav1e \ --enable-librist \ --enable-librsvg \ +%if %{with librtmp} --enable-librtmp \ +%endif --enable-librubberband \ --enable-libshaderc \ --disable-libshine \ @@ -517,39 +840,57 @@ This subpackage contains the headers for FFmpeg libswscale. --enable-libtesseract \ --enable-libtheora \ --disable-libtorch \ + --disable-libuavs3d \ --enable-libtwolame \ - --enable-libuavs3d \ --enable-libv4l2 \ --enable-libvidstab \ +%if %{with vmaf} + --enable-libvmaf \ +%endif --enable-libvo-amrwbenc \ --enable-libvorbis \ +%if %{with vpl} + --enable-libvpl \ +%endif --enable-libvpx \ - --enable-libvvenc \ --enable-libwebp \ +%if %{with x264} --enable-libx264 \ +%endif +%if %{with x265} --enable-libx265 \ - --enable-libxavs2 \ - --enable-libxavs \ +%endif + --disable-libxavs2 \ + --disable-libxavs \ --enable-libxcb \ --enable-libxcb-shape \ --enable-libxcb-shm \ --enable-libxcb-xfixes \ - --enable-libxevd \ +%if %{with evc_main} --enable-libxeve \ + --enable-libxevd \ +%else + --enable-libxeveb \ + --enable-libxevdb \ +%endif --enable-libxml2 \ --enable-libxvid \ --enable-libzimg \ --enable-libzmq \ --enable-libzvbi \ +%if %{with lto} + --enable-lto \ +%endif --enable-lv2 \ --enable-lzma \ - --enable-nonfree \ --enable-manpages \ +%if %{with ffnvcodec} + --enable-nvdec \ + --enable-nvenc \ +%endif --enable-openal \ - --enable-opencl \ - --enable-opengl \ - --enable-openssl \ - --enable-postproc \ + --disable-openssl \ + --enable-pthreads \ --enable-sdl2 \ --enable-shared \ --enable-swresample \ @@ -557,140 +898,486 @@ This subpackage contains the headers for FFmpeg libswscale. --enable-v4l2-m2m \ --enable-vaapi \ --enable-vapoursynth \ - --enable-version3 \ --enable-vdpau \ --enable-vulkan \ --enable-xlib \ --enable-zlib \ - --extra-ldflags="%{build_ldflags}" \ - --incdir=%{_includedir} \ - --libdir=%{_libdir} \ - --mandir=%{_mandir} \ - --optflags="%{build_cflags}" \ - --prefix=%{_prefix} \ - --shlibdir=%{_libdir} \ -%ifarch x86_64 aarch64 - --enable-cuda-llvm \ - --enable-cuda-nvcc \ - --enable-cuvid \ - --enable-ffnvcodec \ - --enable-nvdec \ - --enable-nvenc \ - --extra-cflags="-I%{_includedir}/cuda" \ +%if %{without all_codecs} + --enable-muxers \ + --enable-demuxers \ + --enable-hwaccels \ + --disable-encoders \ + --disable-decoders \ + --disable-decoder="h264,hevc,vc1,vvc" \ + --enable-encoder="$(perl -pe 's{^(\w*).*}{$1,}gs' %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_lib}.conf +cp -pa %{buildroot}%{_libdir}/libavcodec.so.%{av_codec_soversion}{,.*} %{buildroot}%{_libdir}/%{name} +# Drop unneeded stuff +rm -f %{buildroot}%{_libdir}/*.* +rm -rf %{buildroot}%{_libdir}/pkgconfig +rm -rf %{buildroot}%{_includedir} +rm -rf %{buildroot}%{_bindir} +rm -rf %{buildroot}%{_datadir} +%endif -%files devel -%doc doc/APIchanges doc/*.txt -%doc doc/html doc/examples - -%files -n libavcodec -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libavcodec.so.%{avcodec_soversion}* - -%files -n libavcodec-devel -%{_includedir}/libavcodec -%{_libdir}/pkgconfig/libavcodec.pc -%{_libdir}/libavcodec.so -%{_mandir}/man3/libavcodec.3* - -%files -n libavdevice -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libavdevice.so.%{avdevice_soversion}* - -%files -n libavdevice-devel -%{_includedir}/libavdevice -%{_libdir}/pkgconfig/libavdevice.pc -%{_libdir}/libavdevice.so -%{_mandir}/man3/libavdevice.3* - -%files -n libavfilter -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libavfilter.so.%{avfilter_soversion}* - -%files -n libavfilter-devel -%{_includedir}/libavfilter -%{_libdir}/pkgconfig/libavfilter.pc -%{_libdir}/libavfilter.so -%{_mandir}/man3/libavfilter.3* - -%files -n libavformat -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libavformat.so.%{avformat_soversion}* - -%files -n libavformat-devel -%{_includedir}/libavformat -%{_libdir}/pkgconfig/libavformat.pc -%{_libdir}/libavformat.so -%{_mandir}/man3/libavformat.3* - -%files -n libavutil -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libavutil.so.%{avutil_soversion}* - -%files -n libavutil-devel -%{_includedir}/libavutil -%{_libdir}/pkgconfig/libavutil.pc -%{_libdir}/libavutil.so -%{_mandir}/man3/libavutil.3* - -%files -n libpostproc -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libpostproc.so.%{postproc_soversion}* - -%files -n libpostproc-devel -%{_includedir}/libpostproc -%{_libdir}/pkgconfig/libpostproc.pc -%{_libdir}/libpostproc.so - -%files -n libswresample -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libswresample.so.%{swresample_soversion}* - -%files -n libswresample-devel -%{_includedir}/libswresample -%{_libdir}/pkgconfig/libswresample.pc -%{_libdir}/libswresample.so -%{_mandir}/man3/libswresample.3* - -%files -n libswscale -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libswscale.so.%{swscale_soversion}* - -%files -n libswscale-devel -%{_includedir}/libswscale -%{_libdir}/pkgconfig/libswscale.pc -%{_libdir}/libswscale.so -%{_mandir}/man3/libswscale.3* %changelog -%autochangelog +* Sun May 31 2026 Gilver E. - 1:8.1.1-1 +- Rebased build onto Fedora spec with full redistributable codec support +- Ported to Terra with permission + +* Sat May 09 2026 Dominik Mierzejewski - 8.1.1-1 +- Update to 8.1.1 +- Drop merged patch + +* Wed Apr 15 2026 Nicolas Chauvet - 8.0.1-7 +- Rebuilt for vmaf-3.1.0 + +* Thu Mar 19 2026 Nicolas Chauvet - 8.0.1-6 +- Rebuilt for libplacebo + +* Mon Mar 09 2026 Dominik Mierzejewski - 8.0.1-5 +- Rebuilt for libvpx 1.16.0 + +* Mon Feb 16 2026 Nick White - 8.0.1-4 +- Enable mov_text encoder and decoder + +* Fri Jan 16 2026 Fedora Release Engineering - 8.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Thu Dec 04 2025 Marcin Juszkiewicz - 8.0.1-2 +- disable dc1394 and ffnvcodec on risc-v + +* Fri Nov 21 2025 Dominik Mierzejewski - 8.0.1-1 +- Update to 8.0.1 (resolves rhbz#2416044) +- Split configure step to conf stage + +* Fri Nov 14 2025 Neal Gompa - 8.0-2 +- Disable lc3 only on RHEL 10 + +* Sun Nov 02 2025 Neal Gompa - 8.0-1 +- Rebase to version 8.0 + +* Sun Nov 02 2025 Dominik Mierzejewski - 7.1.2-3 +- Re-enable openal support (dropped by accident in commit 5917b714, resolves rhbz#2404091) + +* Thu Oct 02 2025 Robert-André Mauchin - 7.1.2-2 +- Rebuild for svt-av1 soname bump + +* Wed Sep 24 2025 Simone Caronni - 7.1.2-1 +- Update to 7.1.2. +- Enable VANC processing for SDI. +- Explicitly list all implicitly enabled/disabled options. + +* Tue Aug 26 2025 Neal Gompa - 7.1.1-10 +- Disable all subpackages except libavcodec-freeworld with the freeworld bcond + +* Mon Aug 25 2025 Neal Gompa - 7.1.1-9 +- Enable support for MPEG-5/EVC + +* Thu Aug 21 2025 Neal Gompa - 7.1.1-8 +- Reorganize spec to group subpackage definitions together +- Add freeworld conditional for third-party builds +- Drop unneeded scriptlets + +* Fri Aug 01 2025 Neal Gompa - 7.1.1-7 +- Always verify sources + +* Tue Jul 29 2025 Nicolas Chauvet - 7.1.1-6 +- Rebuilt for libplacebo + +* Wed Jul 23 2025 Fedora Release Engineering - 7.1.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jun 13 2025 Neal Gompa - 7.1.1-4 +- Switch to regular upstream sources for package build +- Enable more codecs + +* Sat Mar 22 2025 Songsong Zhang - 7.1.1-3 +- Add missing source files for riscv64 + +* Thu Mar 13 2025 Fabio Valentini - 7.1.1-2 +- Rebuild for noopenh264 2.6.0 + +* Thu Mar 06 2025 Dominik Mierzejewski - 7.1.1-1 +- Update to 7.1.1 (resolves rhbz#2349351) +- Enable LC3 codec via liblc3 +- Backport fix for CVE-2025-22921 (resolves rhbz#2346558) + +* Fri Feb 07 2025 Yaakov Selkowitz - 7.1-1 +- Rebase to 7.1 (rhbz#2273572) + +* Wed Feb 05 2025 Robert-André Mauchin - 7.0.2-13 +- Rebuilt for aom 3.11.0 + +* Sun Feb 02 2025 Sérgio Basto - 7.0.2-12 +- Rebuild for jpegxl (libjxl) 0.11.1 + +* Wed Jan 29 2025 Simone Caronni - 7.0.2-11 +- Rebuild for updated VapourSynth. + +* Thu Jan 16 2025 Fedora Release Engineering - 7.0.2-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Jan 09 2025 Michel Lind - 7.0.2-9 +- Rebuilt for rubberband 4 + +* Tue Nov 12 2024 Sandro Mani - 7.0.2-8 +- Rebuild (tesseract) + +* Mon Oct 07 2024 Yaakov Selkowitz - 7.0.2-7 +- Properly enable aribb24/libaribcaption +- Disable VANC dependency as it depends on decklink + +* Mon Oct 07 2024 Neal Gompa - 7.0.2-6 +- Enable SDI data processing (Kernel Labs VANC) processing +- Enable Japanese DVD subtitles/teletext (aribb24/libaribcaption) + +* Mon Oct 07 2024 Yaakov Selkowitz - 7.0.2-5 +- Properly enable noopenh264 + +* Wed Oct 02 2024 Neal Gompa - 7.0.2-4 +- Fix chromaprint bcond + +* Wed Sep 25 2024 Michel Lind - 7.0.2-3 +- Disable omxil completely, it's now retired +- Rebuild for tesseract-5.4.1-3 (soversion change from 5.4.1 to just 5.4) + +* Fri Sep 20 2024 Neal Gompa - 7.0.2-2 +- Rebuild for newer ffnvcodec + +* Fri Sep 06 2024 Neal Gompa - 7.0.2-1 +- Rebase to 7.0.2 (rhbz#2273572) +- Drop OpenH264 dlopen headers as we use noopenh264 now +- Use modern bconds + +* Sat Aug 24 2024 Fabio Valentini - 6.1.2-1 +- Update to 6.1.2 + +* Sat Jul 20 2024 Neal Gompa - 6.1.1-19 +- Backport fixes for Mesa 24.0.6+ / 21.1.4+ changes for VA-API + +* Wed Jul 17 2024 Fedora Release Engineering - 6.1.1-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jul 16 2024 Nicolas Chauvet - 6.1.1-17 +- Rebuilt for libplacebo/vmaf + +* Wed Jun 19 2024 Dominik Mierzejewski - 6.1.1-16 +- Backport fix for CVE-2023-49528 + +* Thu Jun 13 2024 Sandro Mani - 6.1.1-15 +- Rebuild for tesseract-5.4.1 + +* Wed May 29 2024 Robert-André Mauchin - 6.1.1-14 +- Rebuild for svt-av1 2.1.0 + +* Wed May 22 2024 Simone Caronni - 6.1.1-13 +- Rebuild for updated VapourSynth. + +* Tue Apr 23 2024 Kalev Lember - 6.1.1-12 +- Stop using bundled openh264 headers in F40+ and build against noopenh264 +- Backport a fix to build with Vulkan headers >= 1.3.280.0 + +* Wed Mar 13 2024 Sérgio Basto - 6.1.1-11 +- Rebuild for jpegxl (libjxl) 0.10.2 + +* Tue Mar 12 2024 Dominik Mierzejewski - 6.1.1-10 +- Enable drawtext filter (requires libharfbuzz) + +* Wed Feb 14 2024 Sérgio Basto - 6.1.1-9 +- Rebuild for jpegxl (libjxl) 0.9.2 with soname bump + +* Wed Feb 07 2024 Pete Walter - 6.1.1-8 +- Rebuild for libvpx 1.14.x + +* Sun Jan 28 2024 Sandro Mani - 6.1.1-7 +- Rebuild (tesseract) + +* Wed Jan 24 2024 Fedora Release Engineering - 6.1.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 6.1.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 15 2024 Neal Gompa - 6.1.1-4 +- Add missing files for some of the libraries to fix riscv64 builds + +* Fri Jan 12 2024 Fabio Valentini - 6.1.1-3 +- Rebuild for dav1d 1.3.0 + +* Fri Jan 05 2024 Florian Weimer - 6.1.1-2 +- Backport upstream patch to fix C compatibility issues + +* Thu Jan 04 2024 Neal Gompa - 6.1.1-1 +- Update to 6.1.1 + +* Thu Jan 04 2024 Neal Gompa - 6.1-1 +- Rebase to 6.1 + +* Wed Dec 06 2023 Kalev Lember - 6.0.1-2 +- Prefer openh264 over noopenh264 +- Backport upstream patch to drop openh264 runtime version checks + +* Sat Nov 11 2023 Neal Gompa - 6.0.1-1 +- Update to 6.0.1 +- Add ffmpeg chromium support patch (#2240127) +- Use git to apply patches + +* Fri Nov 10 2023 Neal Gompa - 6.0-16 +- Add patches to support enhanced RTMP and AV1 encoding through VA-API +- Force AAC decoding through fdk-aac-free + +* Sun Oct 08 2023 Dominik Mierzejewski - 6.0-15 +- Backport upstream patch to fix segfault when passing non-existent filter + option (rfbz#6773) + +* Sat Oct 07 2023 Sandro Mani - 6.0-14 +- Rebuild (tesseract) + +* Fri Sep 29 2023 Nicolas Chauvet - 6.0-13 +- Rebuilt for libplacebo + +* Fri Aug 25 2023 Dominik Mierzejewski - 6.0-12 +- Backport upstream patch to fix assembly with binutils 2.41. + +* Sat Aug 05 2023 Richard Shaw - 6.0-11 +- Rebuild for codec2. + +* Fri Jul 28 2023 Dominik Mierzejewski - 6.0-10 +- Rebuild for libplacebo + +* Wed Jul 19 2023 Fedora Release Engineering - 6.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jul 14 2023 Sandro Mani - 6.0-8 +- Rebuild (tesseract) + +* Sun Jun 18 2023 Sérgio Basto - 6.0-7 +- Mass rebuild for jpegxl-0.8.1 + +* Mon Jun 12 2023 Dominik Mierzejewski - 6.0-6 +- Rebuild for libdc1394 + +* Thu Apr 06 2023 Adam Williamson - 6.0-5 +- Rebuild (tesseract) again + +* Mon Apr 03 2023 Neal Gompa - 6.0-4 +- Include RISC-V support sources in the tarball + +* Mon Apr 03 2023 Sandro Mani - 6.0-3 +- Rebuild (tesseract) + +* Wed Mar 22 2023 Nicolas Chauvet - 6.0-2 +- Backport upstream patches for libplacebo support + +* Sun Mar 12 2023 Neal Gompa - 6.0-1 +- Rebase to version 6.0 +- Enable SVT-AV1 on all architectures +- Use oneVPL for QSV +- Switch to SPDX license identifiers + +* Wed Feb 15 2023 Neal Gompa - 5.1.2-12 +- Enable support for the RIST protocol through librist + +* Wed Feb 15 2023 Tom Callaway - 5.1.2-11 +- bootstrap off + +* Wed Feb 15 2023 Tom Callaway - 5.1.2-10 +- rebuild for libvpx (bootstrap) + +* Mon Feb 13 2023 Yaakov Selkowitz - 5.1.2-9 +- Enable lcms2, lv2, placebo, rabbitmq, xv + +* Mon Feb 13 2023 Neal Gompa - 5.1.2-8 +- Disable flite for RHEL 9 as flite is too old + +* Fri Feb 03 2023 Yaakov Selkowitz - 5.1.2-7 +- Properly enable caca, flite, gme, iec61883 + +* Mon Jan 30 2023 Neal Gompa - 5.1.2-6 +- Enable more approved codecs + +* Thu Jan 19 2023 Fedora Release Engineering - 5.1.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sun Jan 15 2023 Yaakov Selkowitz - 5.1.2-4 +- Properly enable libzvbi_teletext decoder + +* Fri Dec 23 2022 Sandro Mani - 5.1.2-3 +- Rebuild (tesseract) + +* Wed Nov 09 2022 Neal Gompa - 5.1.2-2 +- Unconditionally enable Vulkan + +* Wed Oct 12 2022 Neal Gompa - 5.1.2-1 +- Update to version 5.1.2 +- Refresh dlopen headers and patch for OpenH264 2.3.1 + +* Sun Sep 04 2022 Neal Gompa - 5.1.1-1 +- Update to version 5.1.1 +- Refresh dlopen headers for OpenH264 2.3.0 +- Disable omxil and crystalhd for RHEL + +* Wed Aug 24 2022 Neal Gompa - 5.1-1 +- Rebase to version 5.1 + +* Thu Jul 21 2022 Fedora Release Engineering - 5.0.1-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jul 09 2022 Richard Shaw - 5.0.1-15 +- Rebuild for codec2 1.0.4. + +* Fri Jul 08 2022 Sandro Mani - 5.0.1-14 +- Rebuild (tesseract) + +* Wed Jun 22 2022 Robert-André Mauchin - 5.0.1-13 +- Rebuilt for new aom, dav1d, rav1e and svt-av1 + +* Fri Jun 17 2022 Mamoru TASAKA - 5.0.1-12 +- Rebuild for new srt + +* Thu Jun 09 2022 Neal Gompa - 5.0.1-11 +- Ensure libavdevice-devel is pulled in with devel metapackage + +* Sun Jun 05 2022 Neal Gompa - 5.0.1-10 +- Update for OpenH264 2.2.0 + +* Tue May 31 2022 Neal Gompa - 5.0.1-9 +- Rebuild for ilbc-3.0.4 + +* Thu May 26 2022 Benjamin A. Beasley - 5.0.1-9 +- Rebuild for ilbc-3.0.4 (bootstrap) + +* Sat May 21 2022 Sandro Mani - 5.0.1-8 +- Rebuild for gdal-3.5.0 and/or openjpeg-2.5.0 + +* Fri May 20 2022 Sandro Mani - 5.0.1-7 +- Rebuild for gdal-3.5.0 and/or openjpeg-2.5.0 + +* Sun Apr 24 2022 Neal Gompa - 5.0.1-6 +- Add VAAPI encoders for mjpeg, mpeg2, vp8, and vp9 +- Ensure hwaccels for enabled codecs are turned on + +* Tue Apr 19 2022 Neal Gompa - 5.0.1-5 +- Drop unused enca build dependency + +* Tue Apr 19 2022 Neal Gompa - 5.0.1-4 +- Use shaderc for Vulkan support + +* Mon Apr 18 2022 Neal Gompa - 5.0.1-3 +- Fix codec2 support enablement + +* Mon Apr 18 2022 Dominik Mierzejewski - 5.0.1-2 +- Properly enable decoding and encoding ilbc + +* Tue Apr 12 2022 Neal Gompa - 5.0.1-1 +- Update to 5.0.1 to fix crashes with muxing MP4 video (#2073980) + +* Tue Apr 05 2022 Dominik Mierzejewski - 5.0-11 +- Enable OpenCL acceleration +- be explicit about enabled external features in configure +- enable gcrypt +- drop duplicate CFLAGS and use Fedora LDFLAGS + +* Thu Mar 10 2022 Sandro Mani - 5.0-10 +- Rebuild for tesseract 5.1.0 + +* Tue Mar 08 2022 Neal Gompa - 5.0-9 +- Drop ffmpeg chromium support patch (#2061392) + +* Fri Feb 18 2022 Neal Gompa - 5.0-8 +- Add patch to return correct AVERROR with bad OpenH264 versions + +* Fri Feb 18 2022 Neal Gompa - 5.0-7 +- Update OpenH264 dlopen patch to split dlopen code into c and h files + +* Thu Feb 17 2022 Neal Gompa - 5.0-6 +- Update OpenH264 dlopen patch to use AVERROR return codes correctly + +* Tue Feb 15 2022 Neal Gompa - 5.0-5 +- Disable hardware decoders due to broken failure modes + +* Tue Feb 15 2022 Neal Gompa - 5.0-4 +- Add support for dlopening OpenH264 +- Add tarball scripts as sources + +* Sun Feb 13 2022 Neal Gompa - 5.0-3 +- Enable more QSV and V4L2M2M codecs + +* Sun Feb 13 2022 Neal Gompa - 5.0-2 +- Enable support for more hardware codecs + +* Fri Feb 11 2022 Andreas Schneider - 5.0-1 +- Initial import (fedora#2051008) diff --git a/anda/multimedia/ffmpeg/pre.rhai b/anda/multimedia/ffmpeg/pre.rhai new file mode 100644 index 0000000000..474b0ed137 --- /dev/null +++ b/anda/multimedia/ffmpeg/pre.rhai @@ -0,0 +1,5 @@ +let key = get("https://ffmpeg.org/ffmpeg-devel.asc"); +let dir = sub(`/[^/]+$`, "", __script_path); + +open_file(`${dir}/ffmpeg-devel.asc`, "w").write(key); +sh(`gpg2 --import --import-options import-export,import-minimal ffmpeg-devel.asc > ./ffmpeg.keyring`, #{ "cwd": dir }); diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/VERSION_ffmpeg.txt b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/VERSION_ffmpeg.txt index ce0abf6b25..ef40fc45d0 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/VERSION_ffmpeg.txt +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/VERSION_ffmpeg.txt @@ -1 +1 @@ -7.1.2 +8.1.1 diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec index 87884bd8f5..9b8be9e9e1 100644 --- a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec @@ -1,6 +1,6 @@ Name: gstreamer1-plugin-libav Version: 1.28.3 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 1 Summary: GStreamer Libav plugin License: LGPL-2.0-or-later diff --git a/anda/multimedia/vgmstream/vgmstream.spec b/anda/multimedia/vgmstream/vgmstream.spec index 0046e55076..53ffcf04b9 100644 --- a/anda/multimedia/vgmstream/vgmstream.spec +++ b/anda/multimedia/vgmstream/vgmstream.spec @@ -1,6 +1,6 @@ -%global commit 1abc049db00beca137c8e43f797ccdc5093cf94a +%global commit d73e324a6cf283810c9629558a9bdec237dfb37b %global shortcommit %{sub %{commit} 1 7} -%global commit_date 20260520 +%global commit_date 20260523 Name: vgmstream Version: 0~%{commit_date}git.%shortcommit diff --git a/anda/multimedia/zrythm/zrythm.spec b/anda/multimedia/zrythm/zrythm.spec index f8ae490aee..4a4019201e 100644 --- a/anda/multimedia/zrythm/zrythm.spec +++ b/anda/multimedia/zrythm/zrythm.spec @@ -1,4 +1,4 @@ -%global v v2.0.0-alpha.0 +%global v v2.0.0-alpha.1 Name: zrythm Version: %(echo %v | sed 's@-@~@g' | sed 's@^v@@') diff --git a/anda/system/cardwire/cardwire.spec b/anda/system/cardwire/cardwire.spec index 18f6d4e18a..8f3d532b33 100644 --- a/anda/system/cardwire/cardwire.spec +++ b/anda/system/cardwire/cardwire.spec @@ -1,6 +1,6 @@ Name: cardwire Version: 0.8.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A GPU Manager for linux that uses eBPF LSM hooks to block GPUs URL: https://opengamingcollective.github.io/cardwire/ Source0: https://github.com/OpenGamingCollective/cardwire/archive/refs/tags/v%{version}.tar.gz @@ -10,6 +10,9 @@ BuildRequires: systemd-rpm-macros BuildRequires: libbpf-devel BuildRequires: clang-devel +Requires: hwdata +Requires: upower + Packager: Owen Zimmerman %description diff --git a/anda/system/cloud-hypervisor/nightly/cloud-hypervisor-nightly.spec b/anda/system/cloud-hypervisor/nightly/cloud-hypervisor-nightly.spec index d2bcf389d4..011f863fb9 100644 --- a/anda/system/cloud-hypervisor/nightly/cloud-hypervisor-nightly.spec +++ b/anda/system/cloud-hypervisor/nightly/cloud-hypervisor-nightly.spec @@ -1,5 +1,5 @@ -%global commit fe57bb88466a7e8549f649da81cb51d7b9c2a17b -%global commit_date 20260520 +%global commit 683afbf22aa41728846d63c0c8ddf9020613eebe +%global commit_date 20260530 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: cloud-hypervisor-nightly diff --git a/anda/system/falcond-profiles/falcond-profiles.spec b/anda/system/falcond-profiles/falcond-profiles.spec index e465fc4b6c..1c6d293d0e 100644 --- a/anda/system/falcond-profiles/falcond-profiles.spec +++ b/anda/system/falcond-profiles/falcond-profiles.spec @@ -1,10 +1,10 @@ -%global commit a3e0e63303c0a310a504c5f3e2a9d71496d7aaab +%global commit 5023a846980685812334586ae265f8f6a1ded38b %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20260206 +%global commit_date 20260523 Name: falcond-profiles Version: 0^%{commit_date}git.%{shortcommit} -Release: 1%?dist +Release: 1%{?dist} Summary: Profiles for falcond License: MIT URL: https://github.com/PikaOS-Linux/falcond-profiles diff --git a/anda/system/falcond/falcond.spec b/anda/system/falcond/falcond.spec index fd725e9530..04690fa283 100644 --- a/anda/system/falcond/falcond.spec +++ b/anda/system/falcond/falcond.spec @@ -1,5 +1,5 @@ Name: falcond -Version: 2.0.6 +Version: 2.0.8 Release: 1%{?dist} Summary: Advanced Linux Gaming Performance Daemon License: MIT diff --git a/anda/system/falcond/update.rhai b/anda/system/falcond/update.rhai index 97d99c287b..7cfa7602f0 100644 --- a/anda/system/falcond/update.rhai +++ b/anda/system/falcond/update.rhai @@ -1 +1 @@ -rpm.version(get("https://git.pika-os.com/api/v1/repos/general-packages/falcond/releases").json_arr()[0].tag_name); +rpm.version(gitea("git.pika-os.com", "general-packages/falcond")); diff --git a/anda/system/hid-fanatecff/akmod/hid-fanatecff-kmod.spec b/anda/system/hid-fanatecff/akmod/hid-fanatecff-kmod.spec index dad761cac6..10a45f216e 100644 --- a/anda/system/hid-fanatecff/akmod/hid-fanatecff-kmod.spec +++ b/anda/system/hid-fanatecff/akmod/hid-fanatecff-kmod.spec @@ -1,14 +1,14 @@ -%global commit f7bf935f0e534434d41e159d695f4a6c81e19fe9 +%global commit dd78ef477c0dc90d59291a0197afcea26911fca8 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20260106 -%global ver 0.2.2 +%global commitdate 20260528 +%global ver 0.2.3 %define buildforkernels akmod %global debug_package %{nil} %global modulename hid-fanatecff Name: %{modulename}-kmod Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 3%{?dist} +Release: 1%{?dist} Summary: Fanatec force feedback kernel module License: GPL-2.0-only URL: https://github.com/gotzl/%{modulename} diff --git a/anda/system/hid-fanatecff/dkms/dkms-hid-fanatecff.spec b/anda/system/hid-fanatecff/dkms/dkms-hid-fanatecff.spec index df7544e8af..be8ca036b3 100644 --- a/anda/system/hid-fanatecff/dkms/dkms-hid-fanatecff.spec +++ b/anda/system/hid-fanatecff/dkms/dkms-hid-fanatecff.spec @@ -1,13 +1,13 @@ -%global commit f7bf935f0e534434d41e159d695f4a6c81e19fe9 +%global commit dd78ef477c0dc90d59291a0197afcea26911fca8 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20260106 -%global ver 0.2.2 +%global commitdate 20260528 +%global ver 0.2.3 %global debug_package %{nil} %global modulename hid-fanatecff Name: dkms-%{modulename} Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 3%{?dist} +Release: 1%{?dist} Summary: Fanatec force feedback kernel module (DKMS) License: GPL-2.0-only URL: https://github.com/gotzl/%{modulename} diff --git a/anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec b/anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec index 35d5357976..65fb1a6304 100644 --- a/anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec +++ b/anda/system/hid-fanatecff/kmod-common/hid-fanatecff.spec @@ -1,11 +1,11 @@ -%global commit f7bf935f0e534434d41e159d695f4a6c81e19fe9 +%global commit dd78ef477c0dc90d59291a0197afcea26911fca8 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20260106 -%global ver 0.2.2 +%global commitdate 20260528 +%global ver 0.2.3 Name: hid-fanatecff Version: %{ver}^%{commitdate}git.%{shortcommit} -Release: 3%{?dist} +Release: 1%{?dist} Summary: Fanatec force feedback driver common files License: GPL-2.0-only URL: https://github.com/gotzl/%{name} diff --git a/anda/system/kcgroups-dmemcg/anda.hcl b/anda/system/kcgroups-dmemcg/anda.hcl new file mode 100644 index 0000000000..8f74540321 --- /dev/null +++ b/anda/system/kcgroups-dmemcg/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "kcgroups-dmemcg.spec" + } +} diff --git a/anda/system/kcgroups-dmemcg/kcgroups-dmemcg.spec b/anda/system/kcgroups-dmemcg/kcgroups-dmemcg.spec new file mode 100644 index 0000000000..3d2fb30c3b --- /dev/null +++ b/anda/system/kcgroups-dmemcg/kcgroups-dmemcg.spec @@ -0,0 +1,122 @@ +%global kcgroups_src kcgroups-kcgroups-dmemcg-experimental +%global booster_src kcgroups-booster-dmemcg-experimental + +Name: kcgroups-dmemcg +Version: 0.1 +Release: 2%{?dist} +Summary: KDE library to manipulate cgroups - fork adding dmem cgroup support +Packager: Kyle Gospodnetich +License: LGPL-2.1-or-later AND MIT AND CC0-1.0 +URL: https://github.com/pixelcluster/kcgroups + +Source0: %{url}/archive/refs/tags/kcgroups-dmemcg-experimental.tar.gz +Source1: %{url}/archive/refs/tags/booster-dmemcg-experimental.tar.gz +Source2: %{url}/tree/dmemcg/LICENSES + +BuildRequires: cmake +BuildRequires: extra-cmake-modules +BuildRequires: gcc-c++ +BuildRequires: qt6-qtbase-devel +BuildRequires: plasma-workspace-devel +BuildRequires: kf6-kwindowsystem-devel +BuildRequires: kf6-kconfig-devel +BuildRequires: kf6-kdbusaddons-devel +BuildRequires: kf6-kitemmodels-devel +BuildRequires: systemd-rpm-macros + +Requires: qt6-qtbase +Requires: kf6-kwindowsystem +Requires: kf6-kconfig +Requires: kf6-kdbusaddons + +Conflicts: kcgroups-git + +%description +KDE library to manipulate cgroups (and boost foreground apps). +This is a fork adding dmem cgroup support. + +%package -n plasma-foreground-booster-dmemcg +Summary: Plasma foreground booster with dmemcg support +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n plasma-foreground-booster-dmemcg +Plasma foreground booster utilizing dmem cgroup support. + +%package devel +Summary: Development files for kcgroups-dmemcg +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Development headers and CMake files for kcgroups-dmemcg. + +%prep +%setup -q -c -n %{name}-%{version} -a 0 -a 1 + +%build +mkdir kcgroups-build +mkdir kcgroups-install +mkdir booster-build + +pushd kcgroups-build +cmake ../%{kcgroups_src} \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DBUILD_WITH_QT6=ON +make %{?_smp_mflags} + +make DESTDIR=$(pwd)/../kcgroups-install install +popd + +pushd booster-build +export CMAKE_PREFIX_PATH=$(pwd)/../kcgroups-install%{_prefix} +cmake ../%{booster_src} \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_SKIP_INSTALL_RPATH=ON \ + -DBUILD_WITH_QT6=ON +make %{?_smp_mflags} + +%install +pushd kcgroups-build +make DESTDIR=%{buildroot} install +popd + +pushd booster-build +make DESTDIR=%{buildroot} install + +mkdir -p %{buildroot}%{_defaultlicensedir}/%{name} + +cp -r %{S:2} %{buildroot}%{_defaultlicensedir}/%{name}/ + +%post -n plasma-foreground-booster-dmemcg +%systemd_user_post plasma-foreground-booster.service + +%preun -n plasma-foreground-booster-dmemcg +%systemd_user_preun plasma-foreground-booster.service + +%postun -n plasma-foreground-booster-dmemcg +%systemd_user_postun_with_restart plasma-foreground-booster.service + +%files +%license %{_defaultlicensedir}/%{name}/LICENSES +%{_libdir}/libKF5CGroups.so.5* +%{_datadir}/qlogging-categories6/kcgroups.* + +%files devel +%{_includedir}/KF6/ +%{_libdir}/cmake/KF5CGroups/ +%{_libdir}/libKF5CGroups.so +%{_libdir}/qt6/mkspecs/modules/qt_KCGroups.pri + +%files -n plasma-foreground-booster-dmemcg +%{_bindir}/foreground_booster +%{_userunitdir}/plasma-foreground-booster.service +%{_datadir}/applications/org.kde.foreground-booster.desktop +%config(noreplace) %{_sysconfdir}/xdg/autostart/org.kde.foreground-booster.desktop + +%changelog +* Thu May 21 2026 Kyle Gospodnetich - 0.1-1 +- Brought to Terra repo unmodified + +* Fri Apr 17 2026 LionHeartP - 0.1-1 +- Initial spec derived from AUR PKGBUILD https://aur.archlinux.org/packages/plasma-foreground-booster-dmemcg diff --git a/anda/system/limine/limine.spec b/anda/system/limine/limine.spec index faf8f852f3..ed93e89ae2 100644 --- a/anda/system/limine/limine.spec +++ b/anda/system/limine/limine.spec @@ -1,5 +1,5 @@ Name: limine -Version: 12.3.0 +Version: 12.3.2 Release: 1%{?dist} Summary: Modern, advanced, portable, multiprotocol bootloader License: BSD-2-Clause diff --git a/anda/system/nct6687d/akmod/nct6687d-kmod.spec b/anda/system/nct6687d/akmod/nct6687d-kmod.spec index 24e89c291c..1fea992ab1 100644 --- a/anda/system/nct6687d/akmod/nct6687d-kmod.spec +++ b/anda/system/nct6687d/akmod/nct6687d-kmod.spec @@ -7,8 +7,8 @@ %global debug_package %{nil} %endif -%global commit 2189bf7c301b720d47f24d7b3e1413786cf00df5 -%global commitdate 20260520 +%global commit 4d1600ba5662e29daef25c608dfad3ad08993fc4 +%global commitdate 20260523 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global modulename nct6687d diff --git a/anda/system/nct6687d/dkms/dkms-nct6687d.spec b/anda/system/nct6687d/dkms/dkms-nct6687d.spec index f80b73f35e..90b206e06f 100644 --- a/anda/system/nct6687d/dkms/dkms-nct6687d.spec +++ b/anda/system/nct6687d/dkms/dkms-nct6687d.spec @@ -1,8 +1,8 @@ -%global commit 2189bf7c301b720d47f24d7b3e1413786cf00df5 +%global commit 4d1600ba5662e29daef25c608dfad3ad08993fc4 %global debug_package %{nil} %global modulename nct6687d %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20260520 +%global commitdate 20260523 Name: dkms-%{modulename} Version: 1.0^%{commitdate}git.%{shortcommit} diff --git a/anda/system/nct6687d/kmod-common/nct6687d.spec b/anda/system/nct6687d/kmod-common/nct6687d.spec index 6945e2f0f0..6beac3543d 100644 --- a/anda/system/nct6687d/kmod-common/nct6687d.spec +++ b/anda/system/nct6687d/kmod-common/nct6687d.spec @@ -1,6 +1,6 @@ -%global commit 2189bf7c301b720d47f24d7b3e1413786cf00df5 +%global commit 4d1600ba5662e29daef25c608dfad3ad08993fc4 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20260520 +%global commitdate 20260523 Name: nct6687d Version: 1.0^%{commitdate}git.%{shortcommit} diff --git a/anda/system/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec b/anda/system/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec index 6af2b664fa..c5357ec6fc 100644 --- a/anda/system/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec +++ b/anda/system/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec @@ -1,5 +1,5 @@ Name: compat-nvidia-repo -Version: 595.71.05 +Version: 610.43.02 Epoch: 3 Release: 1%{?dist} Summary: Compatibility package required by official CUDA packages diff --git a/anda/system/nvidia/dkms-nvidia/dkms-nvidia.spec b/anda/system/nvidia/dkms-nvidia/dkms-nvidia.spec index e6c840fbb0..274bc25338 100644 --- a/anda/system/nvidia/dkms-nvidia/dkms-nvidia.spec +++ b/anda/system/nvidia/dkms-nvidia/dkms-nvidia.spec @@ -4,16 +4,14 @@ %global modulename nvidia Name: dkms-%{modulename} -Version: 595.71.05 +Version: 610.43.02 Release: 1%{?dist} Summary: NVIDIA display driver kernel module Epoch: 3 License: NVIDIA License URL: https://www.nvidia.com/object/unix.html -Source0: https://github.com/NVIDIA/open-gpu-kernel-modules/archive/%{version}/open-gpu-kernel-modules-%{version}.tar.gz +Source0: https://download.nvidia.com/XFree86/NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-%{version}.tar.xz Source1: %{name}.conf -Patch0: https://github.com/CachyOS/open-gpu-kernel-modules/commit/211f012865b8ea2ba62c3422f5519cb32395c3e0.patch -Patch1: https://github.com/CachyOS/open-gpu-kernel-modules/commit/92789a5709f64008bee34bb044e33a3de9702eb7.patch BuildRequires: sed Requires: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version} Requires: dkms @@ -30,7 +28,7 @@ Packager: Terra Packaging Team This package provides the NVIDIA kernel driver modules. %prep -%autosetup -p1 -n open-gpu-kernel-modules-%{version} +%autosetup -p1 -n NVIDIA-kernel-module-source-%{version} cp -f %{SOURCE1} dkms.conf diff --git a/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec b/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec index c0cd6ec7de..1c718ef80c 100644 --- a/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec +++ b/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec @@ -1,5 +1,5 @@ Name: nvidia-container-toolkit -Version: 1.19.0 +Version: 1.19.1 Release: 1%{?dist} Summary: NVIDIA Container Toolkit License: Apache-2.0 diff --git a/anda/system/nvidia/nvidia-driver/nvidia-driver.spec b/anda/system/nvidia/nvidia-driver/nvidia-driver.spec index c67ac5ff84..751fca0f9d 100644 --- a/anda/system/nvidia/nvidia-driver/nvidia-driver.spec +++ b/anda/system/nvidia/nvidia-driver/nvidia-driver.spec @@ -9,7 +9,7 @@ %endif Name: nvidia-driver -Version: 595.71.05 +Version: 610.43.02 Release: 1%{?dist} Summary: NVIDIA's proprietary display driver for NVIDIA graphic cards Epoch: 3 diff --git a/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec b/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec index 9d88534098..658e6bce14 100644 --- a/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec +++ b/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec @@ -5,7 +5,7 @@ %global __brp_strip %{nil} Name: nvidia-kmod-common -Version: 595.71.05 +Version: 610.43.02 Release: 1%{?dist} Summary: Common file for NVIDIA's proprietary driver kernel modules Epoch: 3 diff --git a/anda/system/nvidia/nvidia-kmod/nvidia-kmod.spec b/anda/system/nvidia/nvidia-kmod/nvidia-kmod.spec index 35e6ac4a54..e383f4526d 100644 --- a/anda/system/nvidia/nvidia-kmod/nvidia-kmod.spec +++ b/anda/system/nvidia/nvidia-kmod/nvidia-kmod.spec @@ -7,15 +7,13 @@ %undefine _auto_set_build_flags Name: nvidia-kmod -Version: 595.71.05 +Version: 610.43.02 Release: 1%{?dist} Summary: NVIDIA display driver kernel module Epoch: 3 License: NVIDIA License URL: http://www.nvidia.com/object/unix.html -Source0: https://github.com/NVIDIA/open-gpu-kernel-modules/archive/%{version}/open-gpu-kernel-modules-%{version}.tar.gz -Patch0: https://github.com/CachyOS/open-gpu-kernel-modules/commit/211f012865b8ea2ba62c3422f5519cb32395c3e0.patch -Patch1: https://github.com/CachyOS/open-gpu-kernel-modules/commit/92789a5709f64008bee34bb044e33a3de9702eb7.patch +Source0: https://download.nvidia.com/XFree86/NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-%{version}.tar.xz BuildRequires: gcc-c++ BuildRequires: kmodtool Requires: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} @@ -41,14 +39,14 @@ kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?bui %setup -c -pushd open-gpu-kernel-modules-%{version} +pushd NVIDIA-kernel-module-source-%{version} %autopatch -p1 popd -rm -f open-gpu-kernel-modules-%{version}/dkms.conf +rm -f NVIDIA-kernel-module-source-%{version}/dkms.conf for kernel_version in %{?kernel_versions}; do - cp -fr open-gpu-kernel-modules-%{version} _kmod_build_${kernel_version%%___*} + cp -fr NVIDIA-kernel-module-source-%{version} _kmod_build_${kernel_version%%___*} done %build diff --git a/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec b/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec index 82e682e235..76921dd604 100644 --- a/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec +++ b/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec @@ -1,5 +1,5 @@ Name: nvidia-modprobe -Version: 595.71.05 +Version: 610.43.02 Release: 1%{?dist} Summary: NVIDIA kernel module loader Epoch: 3 diff --git a/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec index 68a782544f..189062f2b9 100644 --- a/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec +++ b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec @@ -1,5 +1,5 @@ Name: nvidia-persistenced -Version: 595.71.05 +Version: 610.43.02 Release: 1%{?dist} Summary: A daemon to maintain persistent software state in the NVIDIA driver Epoch: 3 diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings.spec b/anda/system/nvidia/nvidia-settings/nvidia-settings.spec index 2662615a57..b4440885ec 100644 --- a/anda/system/nvidia/nvidia-settings/nvidia-settings.spec +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings.spec @@ -1,5 +1,5 @@ Name: nvidia-settings -Version: 595.71.05 +Version: 610.43.02 Release: 1%{?dist} Summary: Configure the NVIDIA graphics driver Epoch: 3 diff --git a/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec b/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec index bd50e931cc..91525b5601 100644 --- a/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec +++ b/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec @@ -1,5 +1,5 @@ Name: nvidia-xconfig -Version: 595.71.05 +Version: 610.43.02 Release: 1%{?dist} Summary: NVIDIA X configuration file editor Epoch: 3 diff --git a/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec b/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec index 15e8b1610c..17132a1c51 100644 --- a/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec +++ b/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec @@ -1,6 +1,6 @@ -%global commit f980045c859bcf5e9b691f550f0634ac82ce7bf5 +%global commit d9d1c16d0e5642f58e1c30ad60dba521642c2a70 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20260516 +%global commit_date 20260531 %global ver 0.6.7 # We aren't using Mono but RPM expected Mono diff --git a/anda/system/pixi/pixi.spec b/anda/system/pixi/pixi.spec index cb48a54b67..a9b2f5e193 100644 --- a/anda/system/pixi/pixi.spec +++ b/anda/system/pixi/pixi.spec @@ -1,5 +1,5 @@ Name: pixi -Version: 0.68.1 +Version: 0.69.0 Release: 1%{?dist} Summary: A cross-platform, multi-language package manager License: BSD-3-Clause diff --git a/anda/system/readymade/git/readymade-git.spec b/anda/system/readymade/git/readymade-git.spec index af22342c96..3a7d505dad 100644 --- a/anda/system/readymade/git/readymade-git.spec +++ b/anda/system/readymade/git/readymade-git.spec @@ -1,5 +1,5 @@ -%global commit d65638a3e998f8af3cc0eda8c3641d134c73087d -%global commit_date 20260501 +%global commit ccdf092314b2241ec13ede2381d8174b051d5d09 +%global commit_date 20260524 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global crate readymade Name: readymade-git @@ -13,6 +13,7 @@ Source1: https://github.com/FyraLabs/rdms_proc_macros/archive/HEAD.tar.gz BuildRequires: anda-srpm-macros rust-packaging mold BuildRequires: pkgconfig(libhelium-1) BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(libacl) BuildRequires: clang-devel BuildRequires: gcc BuildRequires: cmake diff --git a/anda/system/readymade/stable/readymade.spec b/anda/system/readymade/stable/readymade.spec index 14442f33dc..99d484d47b 100644 --- a/anda/system/readymade/stable/readymade.spec +++ b/anda/system/readymade/stable/readymade.spec @@ -1,6 +1,6 @@ %global crate readymade Name: readymade -Version: 0.14.0 +Version: 0.14.1 Release: 1%{?dist} Summary: Install ready-made distribution images! License: GPL-3.0-or-later @@ -9,6 +9,9 @@ Source0: %{url}/archive/refs/tags/v%{version}.tar.gz Source1: https://github.com/FyraLabs/rdms_proc_macros/archive/HEAD.tar.gz BuildRequires: anda-srpm-macros rust-packaging mold BuildRequires: pkgconfig(libhelium-1) +BuildRequires: pkgconfig(openssl) +BuildRequires: glibc-all-langpacks +BuildRequires: pkgconfig(libacl) BuildRequires: clang-devel BuildRequires: cmake diff --git a/anda/system/scx-scheds/nightly/scx-scheds-nightly.spec b/anda/system/scx-scheds/nightly/scx-scheds-nightly.spec index a8bdfade9d..10f7d35d64 100644 --- a/anda/system/scx-scheds/nightly/scx-scheds-nightly.spec +++ b/anda/system/scx-scheds/nightly/scx-scheds-nightly.spec @@ -1,6 +1,6 @@ -%global commit 6a0c6fa97594f3c25c5dc05d66a16f7a323ae07a +%global commit e29bb76422a2cf5dfafb15f8cb6344af4a7b13c8 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20260520 +%global commitdate 20260529 %global ver 1.1.1 %undefine __brp_mangle_shebangs diff --git a/anda/system/scx-tools/nightly/scx-tools-nightly.spec b/anda/system/scx-tools/nightly/scx-tools-nightly.spec index 82383eba6f..01e9e1c09f 100644 --- a/anda/system/scx-tools/nightly/scx-tools-nightly.spec +++ b/anda/system/scx-tools/nightly/scx-tools-nightly.spec @@ -1,6 +1,6 @@ -%global commit 0f45f59efdf2bb3a2ccdeec8ddd06a3efe99234a +%global commit 0e383bcd2889c91f8d5a0829f2944894c94708d8 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20260519 +%global commitdate 20260529 %global ver 1.1.1 %global appid com.sched_ext.scx %global developer "sched-ext Contributors" diff --git a/anda/system/taidan/taidan.spec b/anda/system/taidan/taidan.spec index 90a2a9aec3..757c922208 100644 --- a/anda/system/taidan/taidan.spec +++ b/anda/system/taidan/taidan.spec @@ -1,5 +1,5 @@ Name: taidan -Version: 0.2.0 +Version: 0.2.1 Release: 1%{?dist} Summary: Out-Of-Box-Experience (OOBE) and Welcome App SourceLicense: GPL-3.0-or-later AND GPL-2.0-or-later diff --git a/anda/system/uresourced-dmemcg/anda.hcl b/anda/system/uresourced-dmemcg/anda.hcl new file mode 100644 index 0000000000..be9d7fc017 --- /dev/null +++ b/anda/system/uresourced-dmemcg/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "uresourced-dmemcg.spec" + } + labels { + subrepo = "extras" + } +} diff --git a/anda/system/uresourced-dmemcg/update.rhai b/anda/system/uresourced-dmemcg/update.rhai new file mode 100644 index 0000000000..9098d253ca --- /dev/null +++ b/anda/system/uresourced-dmemcg/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("OpenGamingCollective/uresourced-dmemcg")); diff --git a/anda/system/uresourced-dmemcg/uresourced-dmemcg.spec b/anda/system/uresourced-dmemcg/uresourced-dmemcg.spec new file mode 100644 index 0000000000..55c4e7b789 --- /dev/null +++ b/anda/system/uresourced-dmemcg/uresourced-dmemcg.spec @@ -0,0 +1,68 @@ +Name: uresourced-dmemcg +Epoch: 1 +Version: 0.5.4 +Release: 1%{?dist} +Summary: Dynamically allocate resources to the active user +Packager: Kyle Gospodnetich + +License: LGPL-2.1-or-later +URL: https://github.com/OpenGamingCollective/uresourced-dmemcg +Source0: %{url}/archive/refs/tags/%{version}.tar.gz + +BuildRequires: gcc +BuildRequires: meson +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(libpipewire-0.3) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(systemd) +BuildRequires: systemd-rpm-macros + +Provides: uresourced = %{evr} +Obsoletes: uresourced < %{evr} +Conflicts: uresourced + +%description +This daemon dynamically assigns a resource allocation to the active +graphical user. If the user has an active graphical session managed +using systemd (e.g. GNOME), then the memory allocation will be used +to protect the sessions core processes (session.slice). This fork +adds dmem cgroup protection for focused applications. + +%prep +%autosetup -n %{name}-%{version} -p1 + +%conf +%meson -Dappmanagement=true + +%build +%meson_build + +%install +%meson_install + +%post +%systemd_post uresourced.service +%systemd_user_post uresourced.service + +%preun +%systemd_preun uresourced.service +%systemd_user_preun uresourced.service + +%postun +%systemd_postun uresourced.service +%systemd_user_postun uresourced.service + +%files +%license COPYING +%doc README +%doc NEWS.md +%config(noreplace) %{_sysconfdir}/uresourced.conf +%{_datadir}/dbus-1/system.d/org.freedesktop.UResourced.conf +%{_libexecdir}/uresourced +%{_libexecdir}/cgroupify +%{_unitdir}/* +%{_userunitdir}/* + +%changelog +* Fri May 22 2026 Kyle Gospodnetich - 1:0.5.4-1 +- Initial release diff --git a/anda/system/uupd/uupd.spec b/anda/system/uupd/uupd.spec index 39f1511550..2257ed9672 100644 --- a/anda/system/uupd/uupd.spec +++ b/anda/system/uupd/uupd.spec @@ -1,6 +1,6 @@ Name: uupd -Version: 1.3.0 -Release: 1%?dist +Version: 1.4.0 +Release: 1%{?dist} Summary: Centralized update service/checker made for Universal Blue License: Apache-2.0 URL: https://github.com/ublue-os/uupd diff --git a/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec b/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec index fb48f818da..5dd52995f1 100644 --- a/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec +++ b/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec @@ -5,7 +5,7 @@ %endif Name: uutils-coreutils-replace -Version: 0.8.0 +Version: 0.9.0 Release: 1%{?dist} Summary: Cross-platform Rust rewrite of the GNU coreutils License: MIT diff --git a/anda/system/vicinae/vicinae.spec b/anda/system/vicinae/vicinae.spec index e8c2f59789..2b0c6d1a17 100644 --- a/anda/system/vicinae/vicinae.spec +++ b/anda/system/vicinae/vicinae.spec @@ -5,7 +5,7 @@ %endif Name: vicinae -Version: 0.21.0 +Version: 0.21.3 Release: 1%{?dist} License: GPL-3.0 URL: https://docs.vicinae.com diff --git a/anda/system/wine/dev/wine-dev.spec b/anda/system/wine/dev/wine-dev.spec index a984ddf5a1..376e498233 100644 --- a/anda/system/wine/dev/wine-dev.spec +++ b/anda/system/wine/dev/wine-dev.spec @@ -9,7 +9,7 @@ %global _prefix /usr/share/wine-dev %global srcmajor 11.x # Make this as a variable instead in case of WINE RCs -%global ver wine-11.9 +%global ver wine-11.10 %global cleanver %(echo %{ver} | sed 's/v//g;s/wine-//g') # This is unfortunate but a lot of Fedora's/SUSE's hardening flags break WINE diff --git a/anda/system/wine/staging/wine-staging.spec b/anda/system/wine/staging/wine-staging.spec index 36107b3d4f..d0c8647d71 100644 --- a/anda/system/wine/staging/wine-staging.spec +++ b/anda/system/wine/staging/wine-staging.spec @@ -18,7 +18,7 @@ Name: wine-staging -Version: 11.9 +Version: 11.10 Release: 1%{?dist} Epoch: 1 Summary: WINE Is Not An Emulator - runs MS Windows programs diff --git a/anda/terra/obsolete/terra-obsolete.spec b/anda/terra/obsolete/terra-obsolete.spec index 5a59d63791..5cb603e7a2 100644 --- a/anda/terra/obsolete/terra-obsolete.spec +++ b/anda/terra/obsolete/terra-obsolete.spec @@ -4,7 +4,7 @@ Version: %{?fedora:%{fedora}}%{?rhel:%{rhel}} # The dist number is the version here, it is intentionally not repeated in the release %global dist %nil -Release: 2%?dist +Release: 4%{?dist} Summary: A package to obsolete retired packages, based on Fedora's equivalent package License: LicenseRef-Fedora-Public-Domain @@ -151,6 +151,12 @@ Packager: Terra Packaging Team %obsolete_ticket https://github.com/terrapkg/packages/pull/7098 %obsolete terra-surface-dtx-daemon v0.3.10~1-5 +%obsolete_ticket https://github.com/terrapkg/packages/pull/12665 +%obsolete supergfxctl 5.2.7-3 + +%obsolete_ticket https://github.com/terrapkg/packages/pull/12665 +%obsolete gnome-shell-extension-gpu-switcher-supergfxctl 11^20250925.1de26db-4 + %obsolete_ticket https://github.com/terrapkg/packages/pull/7521 %obsolete x264-bash-completion 0.165-18.20250609gitb35605ac diff --git a/anda/terra/terra-scripts/anda.hcl b/anda/terra/terra-scripts/anda.hcl new file mode 100644 index 0000000000..be2ed3c219 --- /dev/null +++ b/anda/terra/terra-scripts/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "terra-scripts.spec" + } +} diff --git a/anda/terra/terra-scripts/terra-scripts.spec b/anda/terra/terra-scripts/terra-scripts.spec new file mode 100644 index 0000000000..38359e2e02 --- /dev/null +++ b/anda/terra/terra-scripts/terra-scripts.spec @@ -0,0 +1,41 @@ +Name: terra-scripts +Version: 0.2.0 +Release: 1%{?dist} +Summary: Helpful scripts for contributing to Terra +License: GPL-3.0-or-later +URL: https://github.com/terrapkg/cli-tools +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz +Requires: bash +BuildArch: noarch +Packager: Its-J +Recommends: podman + +%description +%{summary}. + +%prep +%autosetup -n cli-tools-%{version} + +%install +install -Dm 755 format-license.sh %{buildroot}%{_bindir}/format-license +install -Dm 755 ldd-dnf.sh %{buildroot}%{_bindir}/ldd-dnf +install -Dm 755 changelog.sh %{buildroot}%{_bindir}/changelog +install -Dm 755 getcommit.sh %{buildroot}%{_bindir}/getcommit +install -Dm 755 panda.sh %{buildroot}%{_bindir}/panda + +%files +%doc README.md +%license LICENSE +%{_bindir}/format-license +%{_bindir}/ldd-dnf +%{_bindir}/changelog +%{_bindir}/getcommit +%{_bindir}/panda + +%changelog +* Fri May 29 2026 Jaiden Riordan +- Add panda.sh +* Sun May 24 2026 Its-J +- Add getcommit.sh +* Sat May 23 2026 Its-J +- Package terra-scripts diff --git a/anda/terra/terra-scripts/update.rhai b/anda/terra/terra-scripts/update.rhai new file mode 100644 index 0000000000..9a6687c3aa --- /dev/null +++ b/anda/terra/terra-scripts/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("terrapkg/cli-tools")); diff --git a/anda/themes/breeze-plus-icon-theme/breeze-plus-icon-theme.spec b/anda/themes/breeze-plus-icon-theme/breeze-plus-icon-theme.spec index 46997847ee..78c3d0f83c 100644 --- a/anda/themes/breeze-plus-icon-theme/breeze-plus-icon-theme.spec +++ b/anda/themes/breeze-plus-icon-theme/breeze-plus-icon-theme.spec @@ -1,6 +1,6 @@ Name: breeze-plus-icon-theme -Version: 6.19.0 -Release: 2%{?dist} +Version: 6.26.0 +Release: 1%{?dist} Summary: Breeze icon theme with additional icons Packager: Amy King diff --git a/anda/themes/tela-icon-theme/tela-icon-theme.spec b/anda/themes/tela-icon-theme/tela-icon-theme.spec index 56cf2eb0dc..be3402626c 100644 --- a/anda/themes/tela-icon-theme/tela-icon-theme.spec +++ b/anda/themes/tela-icon-theme/tela-icon-theme.spec @@ -1,10 +1,10 @@ -%global commit 340333cfd0ebdab7ea9d25cd66a5142c440d2f48 -%global commit_date 20251205 +%global commit bf51523edbf825054c1bee6efe02a09aaeda394f +%global commit_date 20260528 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: tela-icon-theme Version: %commit_date.%shortcommit -Release: 1%?dist +Release: 1%{?dist} Summary: Tela icon theme for linux desktops License: GPL-3.0-only diff --git a/anda/tools/HeadsetControl-nightly/HeadsetControl-nightly.spec b/anda/tools/HeadsetControl-nightly/HeadsetControl-nightly.spec index f101a0752e..4557537fe3 100644 --- a/anda/tools/HeadsetControl-nightly/HeadsetControl-nightly.spec +++ b/anda/tools/HeadsetControl-nightly/HeadsetControl-nightly.spec @@ -1,6 +1,6 @@ %global _udevrulesdir /usr/lib/udev/rules.d -%global commit e3a2afaa940406d3ec996efae0746940aea68a8c +%global commit f8645bbd016a3ea0d68f2fbb2813854c4f635413 %global commitdate 20251121 %global shortcommit %(c=%{commit}; echo ${c:0:7}) diff --git a/anda/tools/arduino-app-cli/arduino-app-cli.spec b/anda/tools/arduino-app-cli/arduino-app-cli.spec index 2c241f9d82..7ae13cf5ad 100644 --- a/anda/tools/arduino-app-cli/arduino-app-cli.spec +++ b/anda/tools/arduino-app-cli/arduino-app-cli.spec @@ -1,5 +1,5 @@ %global goipath github.com/arduino/arduino-app-cli -Version: 0.9.0 +Version: 0.11.0 %gometa -f diff --git a/anda/tools/carapace/carapace.spec b/anda/tools/carapace/carapace.spec index a60f9244c0..eda7fa0e4b 100644 --- a/anda/tools/carapace/carapace.spec +++ b/anda/tools/carapace/carapace.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} %global goipath github.com/carapace-sh/carapace-bin -Version: 1.6.6 +Version: 1.7.0 %gometa -f diff --git a/anda/tools/cloudflare-speed-cli/cloudflare-speed-cli.spec b/anda/tools/cloudflare-speed-cli/cloudflare-speed-cli.spec index 345f2215c5..72f85d5e13 100644 --- a/anda/tools/cloudflare-speed-cli/cloudflare-speed-cli.spec +++ b/anda/tools/cloudflare-speed-cli/cloudflare-speed-cli.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} Name: cloudflare-speed-cli -Version: 0.6.13 +Version: 1.0.1 Release: 1%{?dist} Summary: CLI for internet speed test via cloudflare diff --git a/anda/tools/copyparty/copyparty.spec b/anda/tools/copyparty/copyparty.spec index 1e9c8124f6..8978634d28 100644 --- a/anda/tools/copyparty/copyparty.spec +++ b/anda/tools/copyparty/copyparty.spec @@ -1,7 +1,7 @@ %global pypi_name copyparty Name: %{pypi_name} -Version: 1.20.14 +Version: 1.20.16 Release: 1%{?dist} Summary: Portable, featureful, and fast file server URL: https://github.com/9001/copyparty diff --git a/anda/tools/electron/electron.spec b/anda/tools/electron/electron.spec index 5efea51e54..d04aa145c3 100644 --- a/anda/tools/electron/electron.spec +++ b/anda/tools/electron/electron.spec @@ -1,6 +1,6 @@ Name: electron %electronmeta -Version: 42.2.0 +Version: 42.3.0 Release: 1%{?dist} Summary: Build cross platform desktop apps with web technologies License: %{electron_license} diff --git a/anda/tools/glasgow/glasgow.spec b/anda/tools/glasgow/glasgow.spec index 6ae5256b81..348b372799 100644 --- a/anda/tools/glasgow/glasgow.spec +++ b/anda/tools/glasgow/glasgow.spec @@ -1,5 +1,5 @@ -%global commit b0c64240c9650acc1e91f04e85c541b8dc6d3055 -%global commit_date 20260519 +%global commit 3bb11344d0aa74d3c42f51f6c5eb9eda22f3491f +%global commit_date 20260531 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global pypi_name glasgow diff --git a/anda/tools/graftcp/nightly/graftcp-nightly.spec b/anda/tools/graftcp/nightly/graftcp-nightly.spec index 8b6668a565..4b73933e3b 100644 --- a/anda/tools/graftcp/nightly/graftcp-nightly.spec +++ b/anda/tools/graftcp/nightly/graftcp-nightly.spec @@ -1,5 +1,5 @@ -%global commit 6b8e7e659fa39b9396a54f8bf94e9c51c2f58564 -%global commit_date 20260403 +%global commit b00ebe1c4cf877e9d1aca99bb41400d3c6130753 +%global commit_date 20260531 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: graftcp-nightly diff --git a/anda/tools/graftcp/stable/graftcp.spec b/anda/tools/graftcp/stable/graftcp.spec index a3201229ef..1afb696027 100644 --- a/anda/tools/graftcp/stable/graftcp.spec +++ b/anda/tools/graftcp/stable/graftcp.spec @@ -1,6 +1,6 @@ Name: graftcp -Version: 0.7.1 -Release: 1%?dist +Version: 0.8.0 +Release: 1%{?dist} Summary: A flexible tool for redirecting a given program's TCP traffic to SOCKS5 or HTTP proxy URL: https://github.com/hmgle/graftcp License: GPL-3.0 diff --git a/anda/tools/kittyCAD-cli/kittyCAD-cli.spec b/anda/tools/kittyCAD-cli/kittyCAD-cli.spec index 46484bb24d..1bd572e333 100644 --- a/anda/tools/kittyCAD-cli/kittyCAD-cli.spec +++ b/anda/tools/kittyCAD-cli/kittyCAD-cli.spec @@ -1,7 +1,7 @@ %undefine __brp_mangle_shebangs Name: kittyCAD-cli -Version: 0.2.171 +Version: 0.2.173 Release: 1%{?dist} Summary: The Zoo command line tool for KittyCAD URL: https://github.com/KittyCAD/cli diff --git a/anda/tools/license-checker/nodejs-license-checker.spec b/anda/tools/license-checker/nodejs-license-checker.spec index d9000c9ced..fe413bdd1a 100644 --- a/anda/tools/license-checker/nodejs-license-checker.spec +++ b/anda/tools/license-checker/nodejs-license-checker.spec @@ -4,8 +4,8 @@ %bcond test 0 Name: nodejs-license-checker -Version: 4.4.2 -Release: 2%{?dist} +Version: 5.0.1 +Release: 1%{?dist} Summary: Check NPM package licenses SourceLicense: BSD-3-Clause License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND CC-BY-3.0 AND ISC AND (MIT AND CC-BY-3.0) AND MIT diff --git a/anda/tools/natscli/natscli.spec b/anda/tools/natscli/natscli.spec index 19b74a6eb7..b3d3a97c42 100644 --- a/anda/tools/natscli/natscli.spec +++ b/anda/tools/natscli/natscli.spec @@ -1,7 +1,7 @@ # https://github.com/nats-io/natscli %global goipath github.com/nats-io/natscli -%global commit 1643ccaf83d6b4d79f9c7d2b142984ec6d2281e2 -%global commit_date 20260513 +%global commit b82e36a530bb170eb80a4c55b8c0c284cc95f9d6 +%global commit_date 20260530 %global shortcommit %{sub %{commit} 1 7} %gometa -f diff --git a/anda/tools/nvidia/cuda-crt/cuda-crt.spec b/anda/tools/nvidia/cuda-crt/cuda-crt.spec index 4144c13685..55b6ae64d7 100644 --- a/anda/tools/nvidia/cuda-crt/cuda-crt.spec +++ b/anda/tools/nvidia/cuda-crt/cuda-crt.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.78 +Version: 13.3.33 Release: 1%{?dist} Summary: CUDA crt License: CUDA Toolkit diff --git a/anda/tools/nvidia/cuda-ctadvisor/cuda-ctadvisor.spec b/anda/tools/nvidia/cuda-ctadvisor/cuda-ctadvisor.spec index 4ad9823399..0e1b2e1911 100644 --- a/anda/tools/nvidia/cuda-ctadvisor/cuda-ctadvisor.spec +++ b/anda/tools/nvidia/cuda-ctadvisor/cuda-ctadvisor.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.78 +Version: 13.3.33 Release: 1%{?dist} Summary: CUDA ctadvisor License: CUDA Toolkit diff --git a/anda/tools/nvidia/cuda-nvcc/cuda-nvcc.spec b/anda/tools/nvidia/cuda-nvcc/cuda-nvcc.spec index 48b391c023..de4903eb8a 100644 --- a/anda/tools/nvidia/cuda-nvcc/cuda-nvcc.spec +++ b/anda/tools/nvidia/cuda-nvcc/cuda-nvcc.spec @@ -8,7 +8,7 @@ Name: %(echo %real_name | tr '_' '-') Epoch: 1 -Version: 13.2.78 +Version: 13.3.33 Release: 1%{?dist} Summary: CUDA Compiler (NVCC) License: CUDA Toolkit diff --git a/anda/tools/piclone/piclone.spec b/anda/tools/piclone/piclone.spec index 088251c2b0..81659524ef 100644 --- a/anda/tools/piclone/piclone.spec +++ b/anda/tools/piclone/piclone.spec @@ -1,5 +1,5 @@ -%global commit 7d3394477da2a140a2a367ebbadbef997c10545f -%global commit_date 20260520 +%global commit cbae7f3f5d0b0b2732299196dba33da2c059b3a8 +%global commit_date 20260529 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: piclone diff --git a/anda/tools/praat/praat.spec b/anda/tools/praat/praat.spec index eeef1c6403..d9add6f843 100644 --- a/anda/tools/praat/praat.spec +++ b/anda/tools/praat/praat.spec @@ -4,7 +4,7 @@ %global org "org.praat" Name: praat -Version: 6.4.66 +Version: 6.4.67 Release: 1%{?dist} URL: https://www.praat.org Source0: https://github.com/praat/praat.github.io/archive/refs/tags/v%{version}.tar.gz diff --git a/anda/tools/rpi-utils/rpi-utils.spec b/anda/tools/rpi-utils/rpi-utils.spec index 0287c817de..727e109628 100644 --- a/anda/tools/rpi-utils/rpi-utils.spec +++ b/anda/tools/rpi-utils/rpi-utils.spec @@ -1,5 +1,5 @@ -%global commit 061dfd3abd1155aa068738deec8feac3fe7806e1 -%global commit_date 20260512 +%global commit e1e814ccad620b027a3ca770e1481616be053f9b +%global commit_date 20260529 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: rpi-utils diff --git a/anda/tools/spotx-bash/spotx-bash.spec b/anda/tools/spotx-bash/spotx-bash.spec index 2210451547..bf1f142116 100644 --- a/anda/tools/spotx-bash/spotx-bash.spec +++ b/anda/tools/spotx-bash/spotx-bash.spec @@ -1,5 +1,5 @@ -%global commit 0c2777e3d97934a4c15f7553f7950f59d172afab -%global commit_date 20260512 +%global commit fa8730d16e7acfb70744be677ac9b7aa3e3eaf3c +%global commit_date 20260523 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: spotx-bash diff --git a/anda/tools/typos/typos.spec b/anda/tools/typos/typos.spec index d5d380b137..9a476453b9 100644 --- a/anda/tools/typos/typos.spec +++ b/anda/tools/typos/typos.spec @@ -2,7 +2,7 @@ %define debug_package %{nil} Name: typos -Version: 1.46.2 +Version: 1.47.0 Release: 1%{?dist} Summary: Source Code Spelling Correction diff --git a/anda/tools/yt-dlp/yt-dlp-git.spec b/anda/tools/yt-dlp/yt-dlp-git.spec index ffb67b8bc9..9a7cdb5a1a 100644 --- a/anda/tools/yt-dlp/yt-dlp-git.spec +++ b/anda/tools/yt-dlp/yt-dlp-git.spec @@ -2,7 +2,7 @@ %global oldpkgname yt-dlp-nightly Name: yt-dlp-git -Version: 2026.05.16.203101 +Version: 2026.05.25.232152 Release: 1%{?dist} Summary: A command-line program to download videos from online video platforms