diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8cb8ad8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +vmaf-*.tar.gz diff --git a/sources b/sources new file mode 100644 index 0000000..c76c7df --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (vmaf-a654f6f.tar.gz) = 37984568db2d86c996567f3d2b57bd93e5dfce1adf5233e2cf0c1f6a099e3b704c8b31ff20c8115f87d4d7d40bedaad198a033d3acd4b40b4710a9d7a64cd987 diff --git a/vmaf.spec b/vmaf.spec new file mode 100644 index 0000000..3329a07 --- /dev/null +++ b/vmaf.spec @@ -0,0 +1,138 @@ +%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