183 lines
4.6 KiB
RPMSpec
183 lines
4.6 KiB
RPMSpec
#
|
|
# spec file
|
|
#
|
|
# Copyright (c) 2023 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%global flavor @BUILD_FLAVOR@%{nil}
|
|
%if "%{flavor}" == ""
|
|
%define psuffix %{nil}
|
|
%else
|
|
%define psuffix -devel-doc
|
|
%endif
|
|
|
|
%define sover 3
|
|
%define __builder ninja
|
|
%define __builddir _build
|
|
Name: libaom%{psuffix}
|
|
Version: 3.7.1
|
|
Release: 0
|
|
%if "%{flavor}" == ""
|
|
Summary: AV1 codec library
|
|
Group: Productivity/Multimedia/Other
|
|
%endif
|
|
%if "%{flavor}" == "doc"
|
|
Summary: Documentation for the libaom API
|
|
Group: Documentation/HTML
|
|
BuildArch: noarch
|
|
%endif
|
|
License: BSD-2-Clause
|
|
URL: https://aomedia.googlesource.com/aom/
|
|
Source0: libaom-%{version}.tar.zst
|
|
Source99: baselibs.conf
|
|
Patch0: libaom-0001-Do-not-disable-_FORTIFY_SOURCE.patch
|
|
Patch1: system-gtest.patch
|
|
Patch2: system-yuv.patch
|
|
# CVE-2024-5171 [bsc#1226020], heap buffer overflow in img_alloc_helper() caused by integer overflow
|
|
Patch3: libaom-CVE-2024-5171.patch
|
|
|
|
BuildRequires: c++_compiler
|
|
BuildRequires: cmake >= 3.6
|
|
BuildRequires: ninja
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: pkgconfig(libyuv)
|
|
%ifarch x86_64 %ix86
|
|
BuildRequires: yasm
|
|
%endif
|
|
|
|
%if "%{flavor}" == "doc"
|
|
BuildRequires: doxygen
|
|
BuildRequires: graphviz
|
|
BuildRequires: graphviz-gnome
|
|
%endif
|
|
|
|
%description
|
|
%if "%{flavor}" == ""
|
|
This is a library for AOMedia Video 1 (AV1), an open, royalty-free
|
|
video coding format designed for video transmissions over the Internet.
|
|
%endif
|
|
%if "%{flavor}" == "doc"
|
|
This package contains the API documentation for libaom, a library
|
|
for the AOMedia Video 1 (AV1) video coding format.
|
|
%endif
|
|
|
|
%if "%{flavor}" == ""
|
|
%package -n %{name}%{sover}
|
|
Summary: AV1 codec library
|
|
Group: System/Libraries
|
|
|
|
%description -n %{name}%{sover}
|
|
This is a library for AOMedia Video 1 (AV1), an open, royalty-free
|
|
video coding format designed for video transmissions over the Internet.
|
|
|
|
%package devel
|
|
Summary: Development files for libaom, an AV1 codec library
|
|
Group: Development/Languages/C and C++
|
|
Requires: %{name}%{sover}%{_isa} = %{version}
|
|
|
|
%description devel
|
|
This package contains the development headers and library files for
|
|
libaom, a library for the AOMedia Video 1 (AV1) video coding format.
|
|
|
|
%package -n aom-tools
|
|
Summary: AV1 Codec Library Tools
|
|
Group: Productivity/Multimedia/Other
|
|
|
|
%description -n aom-tools
|
|
This package contains tools included with libaom, a library for
|
|
the AOMedia Video 1 (AV1) video coding format.
|
|
%endif
|
|
|
|
%prep
|
|
%autosetup -n libaom-%{version} -p1
|
|
# Remove vendored dependencies
|
|
rm -rf third_party/{googletest,libyuv}
|
|
sed -E -i 's|#include "third_party/googletest/src/googletest/include/([^"]*)"|#include <\1>|' test/*.{cc,h}
|
|
|
|
%build
|
|
%cmake \
|
|
-DAOM_AS_FLAGS=-gdwarf2 \
|
|
%if "%{flavor}" == ""
|
|
-DENABLE_DOCS=OFF \
|
|
%endif
|
|
`# Do not build unit tests, they require non-free external files.` \
|
|
-DENABLE_TESTS=OFF \
|
|
-DENABLE_TESTDATA=OFF \
|
|
\
|
|
-DCONFIG_LOWBITDEPTH=1 \
|
|
-DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
|
|
%ifnarch aarch64 %arm %ix86 x86_64 %x86_64 ppc %power64
|
|
-DAOM_TARGET_CPU=generic \
|
|
%endif
|
|
%ifarch %arm
|
|
`# see regex in build/cmake/rtcd.pl (this actually work for armv6hl too)` \
|
|
-DAOM_TARGET_CPU=armv7 \
|
|
`# Fix missing flag for neon code` \
|
|
`# See aom_ports/arm_cpudetect.c` \
|
|
-DENABLE_NEON=ON \
|
|
-DAOM_NEON_INTRIN_FLAG=-mfpu=neon \
|
|
%endif
|
|
%ifarch aarch64
|
|
-DAOM_TARGET_CPU=arm64 \
|
|
%endif
|
|
%ifarch ppc %power64
|
|
-DAOM_TARGET_CPU=ppc \
|
|
%endif
|
|
%ifarch %ix86
|
|
-DAOM_TARGET_CPU=x86 \
|
|
%endif
|
|
%ifarch x86_64 %x86_64
|
|
-DAOM_TARGET_CPU=x86_64 \
|
|
%endif
|
|
%{nil}
|
|
|
|
%if "%{flavor}" == ""
|
|
%cmake_build
|
|
%endif
|
|
|
|
%if "%{flavor}" == "doc"
|
|
%cmake_build docs
|
|
%endif
|
|
|
|
%install
|
|
%if "%{flavor}" == ""
|
|
%cmake_install
|
|
rm %{buildroot}%{_libdir}/%{name}.a
|
|
|
|
%ldconfig_scriptlets -n %{name}%{sover}
|
|
|
|
%files -n %{name}%{sover}
|
|
%license LICENSE PATENTS
|
|
%doc AUTHORS CHANGELOG
|
|
%{_libdir}/%{name}.so.*
|
|
|
|
%files devel
|
|
%{_includedir}/aom
|
|
%{_libdir}/%{name}.so
|
|
%{_libdir}/pkgconfig/aom.pc
|
|
|
|
%files -n aom-tools
|
|
%{_bindir}/aomdec
|
|
%{_bindir}/aomenc
|
|
|
|
%endif
|
|
|
|
%if "%{flavor}" == "doc"
|
|
%files
|
|
%doc %{__builddir}/docs/html/*
|
|
%endif
|
|
|
|
%changelog
|