File libwebm.spec of Package libwebm

#
# spec file for package libwebm
#
# Copyright (c) 2021 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/
#

%define so_version 1

Name:           libwebm
Version:        1.0.0.28
Release:        0
Summary:        A high-quality, open video format for the web
License:        GPL-3.0-or-later
Group:          Productivity/Multimedia/Video/Editors and Convertors
URL:            https://www.webmproject.org/
Source0:        https://github.com/webmproject/libwebm/archive/refs/tags/%{name}-%{version}.tar.gz
# https://sources.debian.org/patches/libwebm/1.0.0.28-1/0001-Use-system-googletest.patch/
Patch0:         0001-Use-system-googletest.patch
# https://sources.debian.org/patches/libwebm/1.0.0.28-1/0002-Build-install-libwebm-tools.patch/
Patch1:         0002-Build-install-libwebm-tools.patch
# https://sources.debian.org/patches/libwebm/1.0.0.28-1/0003-Provide-SOVERSION.patch/
Patch2:         0003-Provide-SOVERSION.patch
Patch3:         test_util.h-use-cstdint-instead-of-stdint-h.patch
Patch4:         use-c++14.patch
BuildRequires:  cmake >= 3.12
BuildRequires:  gcc-c++
BuildRequires:  pkgconfig(gmock)
BuildRequires:  pkgconfig(gtest)

%description
WebM is an open, royalty-free, media file format designed for the web.
WebM defines the file container structure, video and audio formats.
WebM files consist of video streams compressed with the VP8 or VP9 video codecs and audio streams compressed with the Vorbis or Opus audio codecs.
The WebM file structure is based on the Matroska container.

%package -n     %{name}%{so_version}
Summary:        A high-quality, open video format for the web
Group:          Productivity/Multimedia/Video/Editors and Convertors

%description -n %{name}%{so_version}
WebM is an open, royalty-free, media file format designed for the web.
WebM defines the file container structure, video and audio formats.
WebM files consist of video streams compressed with the VP8 or VP9 video codecs and audio streams compressed with the Vorbis or Opus audio codecs.
The WebM file structure is based on the Matroska container.

%package        devel
Summary:        Development files for %{name}
Group:          Development/Libraries/C and C++
Requires:       %{name}%{so_version}%{_isa} = %{version}

%description    devel
WebM is an open, royalty-free, media file format designed for the web.
WebM defines the file container structure, video and audio formats.
WebM files consist of video streams compressed with the VP8 or VP9 video codecs and audio streams compressed with the Vorbis or Opus audio codecs.
The WebM file structure is based on the Matroska container.

This package provides the %{name} headers, development libraries and tools.

%package        tools
Summary:        Development files for %{name}
Group:          Development/Libraries/C and C++

%description    tools
WebM is an open, royalty-free, media file format designed for the web.
WebM defines the file container structure, video and audio formats.
WebM files consist of video streams compressed with the VP8 or VP9 video codecs and audio streams compressed with the Vorbis or Opus audio codecs.
The WebM file structure is based on the Matroska container.

This package provides the binary tools of %{name}.

%prep
%autosetup -p1 -n %{name}-%{name}-%{version}

%build
%cmake \
    -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
    -DBUILD_SHARED_LIBS=ON \
    -DENABLE_IWYU=OFF \
    -DENABLE_WEBM_PARSER=ON \
    -DENABLE_TESTS=ON
%cmake_build

%install
%cmake_install

%check
export LIBWEBM_TEST_DATA_PATH=%{_builddir}/%{name}-%{name}-%{version}/testing/testdata
cd build
export LD_LIBRARY_PATH=.
./mkvmuxer_tests
./mkvparser_tests
./vp9_header_parser_tests
./vp9_level_stats_tests
./webm2pes_tests
./webm_parser_tests

%post -n %{name}%{so_version} -p /sbin/ldconfig

%postun -n %{name}%{so_version} -p /sbin/ldconfig

%files -n %{name}%{so_version}
%{_libdir}/*.so.*

%files devel
%{_libdir}/*.so
%dir %{_includedir}/webm
%{_includedir}/webm/*.h

%files tools
%{_bindir}/*

%changelog
openSUSE Build Service is sponsored by