Blob Blame History Raw
%global commit0 a654f6f7f5998aedf2d6e2f6b3a9eece9753c3fb
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})
%global commitdate0 20180914

Name:           vmaf
Version:        1.3.9
Release:        2.%{commitdate0}git%{shortcommit0}%{?dist}
Summary:        Video Multi-Method Assessment Fusion

License:        ASL 2.0
URL:            https://github.com/netflix/vmaf/
Source0:        %{url}/archive/%{commit0}/%{name}-%{shortcommit0}.tar.gz
Patch0:         0001-Use-PREFIX-and-LIBDIR-build-variable-instead-of-cust.patch
Patch1:         0002-Unbundle-pugixml.patch
Patch2:         0003-Drop-AVX-when-not-relevant.patch
Patch3:         0004-Use-better-FLAGS-for-ptools.patch
Patch4:         0005-Switch-pugixml-include.patch
Patch5:         0006-Switch-to-shared-library-for-libvmaf.patch
Patch6:         0007-Unbundle-libsvm.patch
Patch7:         0008-Add-pugixml-LIBS.patch
Patch8:         0009-Avoid-x86cpudetection-code-when-not-relevant.patch
Patch9:         0010-Fix-libvmaf.pc-to-use-Libs.private-for-pthread-m.patch
Patch10:        0011-Add-msse2-for-i686.patch

# This project relies on AVX
ExclusiveArch:  x86_64

BuildRequires:  gcc-c++
BuildRequires:  libsvm-devel
BuildRequires:  pugixml-devel

# Enforce our own build version for library
Requires:       libvmaf%{?_isa} = %{version}-%{release}
# Upstream only provides a static library
# Packages using libvmaf must Requires this:
#%%{?libvmaf_version:Requires: libvmaf%%{?_isa} = %%{libvmaf_version}}


%description
VMAF is a perceptual video quality assessment algorithm developed by
Netflix. VMAF Development Kit (VDK) is a software package that contains
the VMAF algorithm implementation, as well as a set of tools that allows
a user to train and test a custom VMAF model. For an overview, read this
tech blog post, or this slide deck.

https://github.com/Netflix/vmaf/blob/master/resource/doc/VMAF_ICIP17.pdf


%package -n     libvmaf
Summary:        Library for %{name}
#Some repo provides it
Provides: %{name}-static = %{version}-%{release}
Obsoletes: %{name}-static < %{version}-%{release}

%description -n libvmaf
Library for %{name}.

%package -n     libvmaf-devel
Summary:        Development files for %{name}
Requires:       libvmaf%{?_isa} = %{version}-%{release}
#Some repo provides it
Provides: %{name}-devel = %{version}-%{release}
Obsoletes: %{name}-devel < %{version}-%{release}

%description -n libvmaf-devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.


%prep
%autosetup -p1 -n %{name}-%{commit0}
# Unbundle
rm -rf wrapper/src/pugixml
rm -rf libsvm

# Tweak libvmaf.pc
sed -i -e 's|/usr/local|%{_prefix}|g' wrapper/libvmaf.pc
sed -i -e 's|/usr/lib|%{_libdir}|g' wrapper/libvmaf.pc


%build
%ifarch i686
export ASM_CFLAGS="-msse -msse2 -mavx"
%endif
%make_build CFLAGS_COMMON="%{optflags} ${ASM_CFLAGS} -fPIC" LDFLAGS="%{__global_ldflags}" V=1


%install
%make_install PREFIX=%{_prefix} LIBDIR=%{_libdir}

mv %{buildroot}%{_libdir}/libvmaf.so \
  %{buildroot}%{_libdir}/libvmaf.so.0.0.0
ln -s libvmaf.so.0.0.0 \
  %{buildroot}%{_libdir}/libvmaf.so.0
ln -s libvmaf.so.0 \
  %{buildroot}%{_libdir}/libvmaf.so

# Install vmafossexec
mkdir -p %{buildroot}%{_bindir}
install -pm 0755 wrapper/vmafossexec \
  %{buildroot}%{_bindir}

#RPM Macros support
mkdir -p %{buildroot}%{rpmmacrodir}
cat > %{buildroot}%{rpmmacrodir}/macros.%{name} << EOF
# libvmaf RPM Macros
%libvmaf_version	%{version}
EOF
touch -r LICENSE %{buildroot}%{rpmmacrodir}/macros.%{name}


%ldconfig_scriptlets -n libvmaf


%files
%doc FAQ.md NOTICE.md README.md
%{_bindir}/vmafossexec
%{_datadir}/model/

%files -n libvmaf
%doc CHANGELOG.md
%license LICENSE
%{_libdir}/*.so.*

%files -n libvmaf-devel
%doc CONTRIBUTING.md
%{rpmmacrodir}/macros.%{name}
%{_includedir}/libvmaf.h
%{_libdir}/*.so
%{_libdir}/pkgconfig/libvmaf.pc


%changelog
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-2.20180914gita654f6f
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Fri Sep 21 2018 Nicolas Chauvet <kwizart@gmail.com> - 1.3.9-0.20180914gita654f6f
- Update to 1.3.9 up to 20180914

* Sat Apr 07 2018 Nicolas Chauvet <kwizart@gmail.com> - 1.3.3-1.20180407git510e257
- Initial spec file