%global commit0 a654f6f7f5998aedf2d6e2f6b3a9eece9753c3fb %global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) %global commitdate0 20180914 Name: vmaf Version: 1.3.9 Release: 1.%{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 * Fri Sep 21 2018 Nicolas Chauvet - 1.3.9-0.20180914gita654f6f - Update to 1.3.9 up to 20180914 * Sat Apr 07 2018 Nicolas Chauvet - 1.3.3-1.20180407git510e257 - Initial spec file