diff --git a/.gitignore b/.gitignore index bd22157..3727cb1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,25 @@ /aom-1.0.0.tar.gz /aom-d0076f5.tar.gz +/aom-cfd59e9.tar.gz +/aom-9666276.tar.gz +/aom-bb35ba9.tar.gz +/aom-b52ee6d.tar.gz +/aom-c0f1414.tar.gz +/aom-7fadc0e.tar.gz +/aom-ae2be80.tar.gz +/aom-287164d.tar.gz +/aom-f9babb6.tar.gz +/aom-87460ce.tar.gz +/aom-fc430c5.tar.gz +/aom-3.5.0.tar.gz +/aom-3.6.0.tar.gz +/aom-3.6.1.tar.gz +/aom-3.7.0.tar.gz +/aom-3.7.1.tar.gz +/aom-3.8.0.tar.gz +/aom-3.8.2.tar.gz +/aom-3.9.0.tar.gz +/aom-3.11.0.tar.gz +/aom-3.12.0.tar.gz +/aom-3.13.0.tar.gz +/aom-3.13.1.tar.gz diff --git a/0001-Add-symbol-exports-needed-by-examples-analyzer-and-e.patch b/0001-Add-symbol-exports-needed-by-examples-analyzer-and-e.patch deleted file mode 100644 index e04fa56..0000000 --- a/0001-Add-symbol-exports-needed-by-examples-analyzer-and-e.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 4b90cc60118f0aed08853ae102c560762fb74627 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= -Date: Fri, 14 Sep 2018 23:17:10 +0200 -Subject: [PATCH] Add symbol exports needed by examples/analyzer and - examples/inspect - -Added to aom/exports_com: -aom_free - -Added to av1/exports_com: -ifd_init -ifd_inspect - -BUG= aomedia:2161 - -Change-Id: Ide307b949c886fa8a0398e200980c80b58e3e74e ---- - aom/exports_com | 1 + - av1/exports_com | 2 ++ - 2 files changed, 3 insertions(+) - -diff --git a/aom/exports_com b/aom/exports_com -index 2798bd51a..cf99bc5d9 100644 ---- a/aom/exports_com -+++ b/aom/exports_com -@@ -9,6 +9,7 @@ text aom_codec_iface_name - text aom_codec_version - text aom_codec_version_extra_str - text aom_codec_version_str -+text aom_free - text aom_img_alloc - text aom_img_alloc_with_border - text aom_img_flip -diff --git a/av1/exports_com b/av1/exports_com -index 5c8e0e09d..e49e0dc5f 100644 ---- a/av1/exports_com -+++ b/av1/exports_com -@@ -1,2 +1,4 @@ - text aom_read_obu_header_and_size - text av1_resize_frame420 -+text ifd_init -+text ifd_inspect --- -2.17.1 - diff --git a/0001-cmake-fix-nasm-detection-w-3.0.patch b/0001-cmake-fix-nasm-detection-w-3.0.patch new file mode 100644 index 0000000..eef863c --- /dev/null +++ b/0001-cmake-fix-nasm-detection-w-3.0.patch @@ -0,0 +1,41 @@ +From 6d2b7f71b98bfa28e372b1f2d85f137280bdb3de Mon Sep 17 00:00:00 2001 +From: James Zern +Date: Tue, 7 Oct 2025 14:08:44 -0700 +Subject: [PATCH] cmake: fix nasm detection w/3.0 + +nasm 3.0 separated Oflags (-Ox) output to `-hO` which is used to +validate the nasm binary. This change is compatible with older versions +(tested with NASM version 2.16.03 & 2.13.02). + +Bug: aomedia:448994065 +Fixed: aomedia:448994065 +Change-Id: I704dcfe39ac6e68bc4d5b9e409fb59a0d277170e +--- + build/cmake/aom_optimization.cmake | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/build/cmake/aom_optimization.cmake b/build/cmake/aom_optimization.cmake +index 9cc34de362..2750a0be41 100644 +--- a/build/cmake/aom_optimization.cmake ++++ b/build/cmake/aom_optimization.cmake +@@ -212,7 +212,7 @@ endfunction() + # Currently checks only for presence of required object formats and support for + # the -Ox argument (multipass optimization). + function(test_nasm) +- execute_process(COMMAND ${CMAKE_ASM_NASM_COMPILER} -hf ++ execute_process(COMMAND ${CMAKE_ASM_NASM_COMPILER} -hO + OUTPUT_VARIABLE nasm_helptext) + + if(NOT "${nasm_helptext}" MATCHES "-Ox") +@@ -220,6 +220,8 @@ function(test_nasm) + FATAL_ERROR "Unsupported nasm: multipass optimization not supported.") + endif() + ++ execute_process(COMMAND ${CMAKE_ASM_NASM_COMPILER} -hf ++ OUTPUT_VARIABLE nasm_helptext) + if("${AOM_TARGET_CPU}" STREQUAL "x86") + if("${AOM_TARGET_SYSTEM}" STREQUAL "Darwin") + if(NOT "${nasm_helptext}" MATCHES "macho32") +-- +2.51.0 + diff --git a/aom-nostatic.patch b/aom-nostatic.patch new file mode 100644 index 0000000..1755b03 --- /dev/null +++ b/aom-nostatic.patch @@ -0,0 +1,29 @@ +diff -up aom-3.13.1/build/cmake/aom_install.cmake.orig aom-3.13.1/build/cmake/aom_install.cmake +--- aom-3.13.1/build/cmake/aom_install.cmake.orig 2025-09-07 16:11:27.789000000 +0200 ++++ aom-3.13.1/build/cmake/aom_install.cmake 2025-12-30 21:08:54.594005985 +0100 +@@ -79,7 +79,7 @@ macro(setup_aom_install_targets) + endif() + + if(BUILD_SHARED_LIBS) +- set(AOM_INSTALL_LIBS aom aom_static) ++ set(AOM_INSTALL_LIBS aom) + else() + set(AOM_INSTALL_LIBS aom) + endif() +diff -up aom-3.13.1/build/cmake/config.cmake.in.orig aom-3.13.1/build/cmake/config.cmake.in +--- aom-3.13.1/build/cmake/config.cmake.in.orig 2025-09-07 16:11:27.791000000 +0200 ++++ aom-3.13.1/build/cmake/config.cmake.in 2026-01-05 15:35:24.588489147 +0100 +@@ -10,13 +10,6 @@ include("${CMAKE_CURRENT_LIST_DIR}/@AOM_ + + set_and_check(@PROJECT_NAME@_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") + +-# @PROJECT_NAME@::aom_static is defined only if BUILD_SHARED_LIBS=1 when libaom +-# was configured. When it is false, @PROJECT_NAME@::aom is a static library. +-if(TARGET @PROJECT_NAME@::aom_static) +- set(@PROJECT_NAME@_STATIC_LIBRARIES "@PROJECT_NAME@::aom_static") +-else() +- set(@PROJECT_NAME@_STATIC_LIBRARIES "@PROJECT_NAME@::aom") +-endif() + set(@PROJECT_NAME@_LIBRARIES "@PROJECT_NAME@::aom") + + check_required_components(@PROJECT_NAME@) diff --git a/aom.spec b/aom.spec index ddba547..75544c6 100644 --- a/aom.spec +++ b/aom.spec @@ -1,42 +1,53 @@ -%global sover 0 +%global sover 3 +%global aom_version v3.13.1 -# Use commit with updated changelog for correct versioning -%global commit d0076f507a6027455540e2e4f25f84ca38803e07 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global snapshotdate 20180925 -%global prerelease 1 +%if 0%{?fedora} || 0%{?rhel} >= 9 +%ifarch x86_64 +%bcond_without vmaf +%endif +%if 0%{?fedora} > 40 || 0%{?rhel} > 9 +%bcond_with jpegxl +%else +%bcond_without jpegxl +%endif +%endif Name: aom -Version: 1.0.0 -Release: 6.%{?prerelease:%{snapshotdate}git%{shortcommit}}%{?dist} +Version: 3.13.1 +Release: %autorelease Summary: Royalty-free next-generation video format -License: BSD +License: BSD-3-Clause URL: http://aomedia.org/ -# We want to keep the git data for versioning aom.pc correctly -# so we can't download the archive directly from the repo. -Source0: %{name}-%{shortcommit}.tar.gz -Source1: makesrc.sh - -# https://bugs.chromium.org/p/aomedia/issues/detail?id=2161 -Patch0: 0001-Add-symbol-exports-needed-by-examples-analyzer-and-e.patch +Source: https://aomedia.googlesource.com/%{name}/+archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +# https://aomedia.issues.chromium.org/issues/448994065 +Patch: 0001-cmake-fix-nasm-detection-w-3.0.patch +# Building static library breaks .cmake files if we don't ship it, so drop it +Patch: aom-nostatic.patch BuildRequires: gcc-c++ BuildRequires: gcc BuildRequires: cmake3 BuildRequires: doxygen BuildRequires: git-core -BuildRequires: graphviz +# BuildRequires: graphviz BuildRequires: perl-interpreter BuildRequires: perl(Getopt::Long) -BuildRequires: wxGTK3-devel -BuildRequires: yasm +BuildRequires: python3-devel +BuildRequires: nasm +%if %{with jpegxl} +BuildRequires: pkgconfig(libjxl) +BuildRequires: pkgconfig(libhwy) +%endif +%if %{with vmaf} +BuildRequires: pkgconfig(libvmaf) +%endif Provides: av1 = %{version}-%{release} Requires: libaom%{?_isa} = %{version}-%{release} %description -The Alliance for Open Media’s focus is to deliver a next-generation +The Alliance for Open Media’s focus is to deliver a next-generation video format that is: - Interoperable and open; @@ -44,76 +55,63 @@ video format that is: - Scalable to any modern device at any bandwidth; - Designed with a low computational footprint and optimized for hardware; - Capable of consistent, highest-quality, real-time video delivery; and - - Flexible for both commercial and non-commercial content, including + - Flexible for both commercial and non-commercial content, including user-generated content. - + This package contains the reference encoder and decoder. - -%package extra-tools -Summary: Extra tools for aom -Requires: aom%{?_isa} = %{version}-%{release} - -%description extra-tools -This package contains the aom analyzer. - - %package -n libaom Summary: Library files for aom %description -n libaom -Library files for aom, the royalty-free next-generation +Library files for aom, the royalty-free next-generation video format. - %package -n libaom-devel Summary: Development files for aom +# cmake files assume /usr/bin/aomdec is present +Requires: aom%{?_isa} = %{version}-%{release} Requires: libaom%{?_isa} = %{version}-%{release} %description -n libaom-devel -Development files for aom, the royalty-free next-generation +Development files for aom, the royalty-free next-generation video format. +%package -n libaom-devel-docs +Summary: Documentation for libaom +Requires: libaom-devel%{?_isa} = %{version}-%{release} + +%description -n libaom-devel-docs +Documentation for libaom, the royalty-free next-generation +video format. %prep -%autosetup -p1 -n %{name}-%{commit} - +%autosetup -p1 -c %{name}-%{version} +# Set GIT revision in version +sed -i 's@set(aom_version "")@set(aom_version "%{aom_version}")@' build/cmake/version.cmake +# Disable PDF generation which is buggy +sed -i "s@GENERATE_LATEX = YES@GENERATE_LATEX = NO@" libs.doxy_template %build -mkdir _build && cd _build -%cmake3 ../ -DENABLE_CCACHE=1 \ - -DCMAKE_SKIP_RPATH=1 \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -%ifnarch aarch64 %{arm} %{ix86} x86_64 - -DAOM_TARGET_CPU=generic \ +%cmake3 -DENABLE_CCACHE=1 \ + -DCMAKE_SKIP_RPATH=1 \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCONFIG_WEBM_IO=1 \ + -DENABLE_DOCS=1 \ + -DENABLE_TESTS=0 \ + -DCONFIG_ANALYZER=0 \ + -DBUILD_SHARED_LIBS=1 \ +%if %{with jpegxl} + -DCONFIG_TUNE_BUTTERAUGLI=1 \ %endif -%ifarch %{arm} - -DAOM_TARGET_CPU=arm \ +%if %{with vmaf} + -DCONFIG_TUNE_VMAF=1 \ %endif -%ifarch aarch64 - -DAOM_TARGET_CPU=arm64 \ -%endif -%ifarch %{ix86} - -DAOM_TARGET_CPU=x86 \ -%endif -%ifarch x86_64 - -DAOM_TARGET_CPU=x86_64 \ -%endif - -DCONFIG_WEBM_IO=1 \ - -DENABLE_DOCS=1 \ - -DCONFIG_ANALYZER=1 \ - -DCONFIG_LOWBITDEPTH=1 -%make_build - + %{nil} +%cmake3_build %install -cd _build -%make_install -install -pm 0755 examples/analyzer %{buildroot}%{_bindir}/aomanalyzer - - -%ldconfig_scriptlets - +%cmake3_install %files %doc AUTHORS CHANGELOG README.md @@ -121,41 +119,18 @@ install -pm 0755 examples/analyzer %{buildroot}%{_bindir}/aomanalyzer %{_bindir}/aomdec %{_bindir}/aomenc - -%files extra-tools -%{_bindir}/aomanalyzer - - %files -n libaom %license LICENSE PATENTS -%{_libdir}/libaom.so.%{sover} - +%{_libdir}/libaom.so.%{sover}* %files -n libaom-devel -%doc _build/docs/html/ %{_includedir}/%{name} %{_libdir}/libaom.so +%{_libdir}/cmake/AOM/ %{_libdir}/pkgconfig/%{name}.pc +%files -n libaom-devel-docs +%doc %{_vpath_builddir}/docs/html/ %changelog -* Thu Jan 31 2019 Fedora Release Engineering - 1.0.0-6.20180925gitd0076f5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Tue Sep 25 2018 Robert-André Mauchin - 1.0.0-5.20180925gitd0076f5 -- Update to commit d0076f507a6027455540e2e4f25f84ca38803e07 -- Set CONFIG_LOWBITDEPTH to 1 -- Fix #1632658 - -* Thu Sep 13 2018 Robert-André Mauchin - 1.0.0-4 -- Split the package into libs/tools - -* Tue Sep 11 2018 Robert-André Mauchin - 1.0.0-3 -- Update the archive in order to detect the correct version from the changelog - -* Thu Jul 12 2018 Fedora Release Engineering - 1.0.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Wed Mar 07 2018 Robert-André Mauchin - 1.0.0-1 -- First RPM release - +%autochangelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..5b124c9 --- /dev/null +++ b/changelog @@ -0,0 +1,66 @@ +* Wed Jul 21 2021 Fedora Release Engineering - 3.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sun Jun 13 12:47:37 CEST 2021 Robert-André Mauchin - 3.1.1-1 +- Update to 3.1.1 +- Close: rhbz#1954337 +- Security fix for CVE-2021-30473 +- Fix: rhbz#1961375 +- Fix: rhbz#1961376 +- Security fix for CVE-2021-30475 +- Fix: rhbz#1968017 +- Fix: rhbz#1968018 + +* Wed Mar 10 2021 Leigh Scott - 2.0.1-5 +- Rebuild for new libvmaf version + +* Tue Jan 26 2021 Fedora Release Engineering - 2.0.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jan 20 2021 Wim Taymans - 2.0.1-3 +- Disable vmaf on rhel + +* Tue Dec 15 01:26:44 CET 2020 Robert-André Mauchin - 2.0.1-2 +- Disable tests + +* Sat Dec 05 21:18:20 CET 2020 Robert-André Mauchin - 2.0.1-1 +- Update to 2.0.1 +- Close rhbz#1852847 + +* Tue Jul 28 16:30:33 CEST 2020 Robert-André Mauchin - 2.0.0-3 +- Fix FTBFS + +* Mon Jul 27 2020 Fedora Release Engineering - 2.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 01 14:33:18 CEST 2020 Robert-André Mauchin - 2.0.0-1 +- Update to 2.0.0 (#1852847) + +* Tue Jan 28 2020 Fedora Release Engineering - 1.0.0-9.20190810git9666276 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Aug 09 17:45:23 CEST 2019 Robert-André Mauchin - 1.0.0-8.20190810git9666276 +- Update to commit 9666276accea505cd14cbcb9e3f7ff5033da9172 + +* Wed Jul 24 2019 Fedora Release Engineering - 1.0.0-7.20180925gitd0076f5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 1.0.0-6.20180925gitd0076f5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Sep 25 2018 Robert-André Mauchin - 1.0.0-5.20180925gitd0076f5 +- Update to commit d0076f507a6027455540e2e4f25f84ca38803e07 +- Set CONFIG_LOWBITDEPTH to 1 +- Fix #1632658 + +* Thu Sep 13 2018 Robert-André Mauchin - 1.0.0-4 +- Split the package into libs/tools + +* Tue Sep 11 2018 Robert-André Mauchin - 1.0.0-3 +- Update the archive in order to detect the correct version from the changelog + +* Thu Jul 12 2018 Fedora Release Engineering - 1.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Mar 07 2018 Robert-André Mauchin - 1.0.0-1 +- First RPM release diff --git a/makesrc.sh b/makesrc.sh deleted file mode 100755 index b382b6e..0000000 --- a/makesrc.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -NAME=$(basename $PWD) -VERSION=$(sed -n '/^Version:/{s/.* //;p}' $NAME.spec) -COMMIT=$(sed -n '/^%global commit/{s/.* //;p}' $NAME.spec) -SHORT=${COMMIT:0:7} - -echo -e "\nCreate git snapshot\n" - -echo "Cloning..." -rm -rf $NAME-$COMMIT -git clone https://aomedia.googlesource.com/aom $NAME-$COMMIT - -echo "Getting commit..." -pushd $NAME-$COMMIT -git checkout $COMMIT -popd - -echo "Archiving..." -tar czf $NAME-$SHORT.tar.gz $NAME-$COMMIT/ - -echo "Cleaning..." -rm -rf $NAME-$COMMIT - -echo "Done." diff --git a/sources b/sources index ee5b599..85f4d55 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (aom-d0076f5.tar.gz) = 6fcbe7d76788544f59e1338084d4245077a986308e2405199531ca9b4d24c9b81d5a51e012118d9cedb4e3b813b7a608f8c000e746941c5886a95462f2438369 +SHA512 (aom-3.13.1.tar.gz) = 20cdde0fc4304ba0056e4dac55838587a3671112ec74274f8dcb1588549a524ed9a8e702d1f068c46833dfb93f565eb5a03ab610b0222a6f137d3cd8a8866de7