From 02b7abd783cc9d8ecda070bc5152f826a5df70dd Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Mon, 9 Mar 2020 15:36:59 +0100 Subject: [PATCH] - updated to 1.5.1 - updated shared patch (now just add soname) - removed outdated libdir patch --- vmaf-libdir.patch | 29 ------------------------ vmaf-shared.patch | 56 +++++++++------------------------------------- vmaf.spec | 57 ++++++++++++++++++++++------------------------- 3 files changed, 37 insertions(+), 105 deletions(-) delete mode 100644 vmaf-libdir.patch diff --git a/vmaf-libdir.patch b/vmaf-libdir.patch deleted file mode 100644 index 286c9ad..0000000 --- a/vmaf-libdir.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- vmaf-1.3.13/wrapper/Makefile.orig 2019-02-01 02:50:08.000000000 +0100 -+++ vmaf-1.3.13/wrapper/Makefile 2019-02-14 20:59:39.477491325 +0100 -@@ -9,6 +9,7 @@ - FEATURESRCDIR = $(TOP)/../feature/src - PTOOLSDIR = $(TOP)/../ptools - INSTALL_PREFIX = /usr/local -+LIBDIR = $(INSTALL_PREFIX)/lib - INCLUDES += -I$(TOP)/../feature/src - INCLUDES += -I$(TOP)/../feature/src/common - -@@ -168,14 +169,14 @@ - - .PHONY: install - install: -- mkdir -p $(DESTDIR)$(INSTALL_PREFIX)/lib -+ mkdir -p $(DESTDIR)$(LIBDIR) - mkdir -p $(DESTDIR)$(INSTALL_PREFIX)/include - mkdir -p $(DESTDIR)$(INSTALL_PREFIX)/share -- mkdir -p $(DESTDIR)$(INSTALL_PREFIX)/lib/pkgconfig -- cp $(LIBVMAF) $(DESTDIR)$(INSTALL_PREFIX)/lib/$(LIBVMAF) -+ mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig -+ cp $(LIBVMAF) $(DESTDIR)$(LIBDIR)/$(LIBVMAF) - cp src/libvmaf.h $(DESTDIR)$(INSTALL_PREFIX)/include/ - cp -r ../model $(DESTDIR)$(INSTALL_PREFIX)/share/ -- cp libvmaf.pc $(DESTDIR)$(INSTALL_PREFIX)/lib/pkgconfig/ -+ cp libvmaf.pc $(DESTDIR)$(LIBDIR)/pkgconfig/ - - .PHONY: uninstall - uninstall: diff --git a/vmaf-shared.patch b/vmaf-shared.patch index 47470b1..2dbf6b4 100644 --- a/vmaf-shared.patch +++ b/vmaf-shared.patch @@ -1,46 +1,10 @@ ---- vmaf-1.3.9/wrapper/Makefile.orig 2018-10-29 21:15:18.206220575 +0100 -+++ vmaf-1.3.9/wrapper/Makefile 2018-10-31 07:16:17.494822306 +0100 -@@ -1,7 +1,9 @@ - LIBVMAF = libvmaf.a -+LIBVMAFSO = libvmaf.so -+LIBVMAFSOVER = libvmaf.so.0 - - .PHONY: all --all: $(LIBVMAF) vmafossexec -+all: $(LIBVMAF) $(LIBVMAFSO) vmafossexec - - TOP = $(shell pwd) - SRCDIR = $(TOP)/src -@@ -166,7 +168,11 @@ - $(LIBVMAF): $(OBJS) $(wildcard ../ptools/*.o) - ar rcs $@ $^ - --vmafossexec: $(OBJDIR)/main.o $(LIBVMAF) -+$(LIBVMAFSO): $(OBJS) $(wildcard ../ptools/*.o) -+ $(CXX) $(LDFLAGS) $(CFLAGS) -shared -o $(LIBVMAFSOVER) -Wl,-soname,$(LIBVMAFSOVER) $^ -pthread -+ ln -sf $(LIBVMAFSOVER) $(LIBVMAFSO) -+ -+vmafossexec: $(OBJDIR)/main.o $(LIBVMAFSO) - $(CXX) -s -o $@ $(LDFLAGS) $^ -pthread - - .PHONY: install -@@ -175,6 +181,8 @@ - mkdir -p $(DESTDIR)$(INSTALL_PREFIX)/include - mkdir -p $(DESTDIR)$(INSTALL_PREFIX)/share - mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig -+ install $(LIBVMAFSOVER) $(DESTDIR)$(LIBDIR)/$(LIBVMAFSOVER) -+ ln -s $(LIBVMAFSOVER) $(DESTDIR)$(LIBDIR)/$(LIBVMAFSO) - cp $(LIBVMAF) $(DESTDIR)$(LIBDIR)/$(LIBVMAF) - cp src/libvmaf.h $(DESTDIR)$(INSTALL_PREFIX)/include/ - cp -r ../model $(DESTDIR)$(INSTALL_PREFIX)/share/ ---- vmaf-1.3.9/feature/Makefile.orig 2018-08-07 23:36:56.000000000 +0200 -+++ vmaf-1.3.9/feature/Makefile 2018-10-31 08:01:19.208124793 +0100 -@@ -5,7 +5,7 @@ - SRCDIR = $(TOP)/src - OBJDIR = $(TOP)/obj - TOOLDIR = $(TOP)/tool --LIBVMAF = $(TOP)/../wrapper/libvmaf.a -+LIBVMAF = $(TOP)/../wrapper/libvmaf.so - - CFLAGS_COMMON = -g -O3 -fPIC -w -Wextra -pedantic - # CFLAGS_COMMON = -g -O0 -fPIC -Wall -Wextra -pedantic +--- vmaf-1.5.1/libvmaf/src/meson.build.orig 2020-02-28 16:29:23.000000000 +0100 ++++ vmaf-1.5.1/libvmaf/src/meson.build 2020-03-08 21:41:01.812977415 +0100 +@@ -127,6 +127,7 @@ + + libvmaf = both_libraries( + 'vmaf', + vmaf_sources, ++ soversion: 0, + include_directories : vmaf_include, + c_args : vmaf_cflags_common, diff --git a/vmaf.spec b/vmaf.spec index 4c128ff..92d3719 100644 --- a/vmaf.spec +++ b/vmaf.spec @@ -1,10 +1,10 @@ # TODO: # - python package # - system libs if possible: -# libsvm -# wrapper/src/pugixml -# ptools ? -# ptools/opencontainers_1_8_4 ? +# libvmaf/src/third_party/ptools +# libvmaf/src/third_party/ptools/opencontainers_1_8_4 +# libvmaf/src/third_party/pugixml +# third_party/libsvm # # Conditional build: %bcond_with sse2 # use SSE2 instructions @@ -15,17 +15,18 @@ Summary: Netflix's VMAF library Summary(pl.UTF-8): Biblioteka Netflix VMAF Name: vmaf -Version: 1.3.15 +Version: 1.5.1 Release: 1 -License: Apache v2.0 +License: BSD+patent Group: Libraries #Source0Download: https://github.com/Netflix/vmaf/releases Source0: https://github.com/Netflix/vmaf/archive/v%{version}/%{name}-%{version}.tar.gz -# Source0-md5: 69df7b6e200f4b3ac110af7a7505b273 -Patch0: %{name}-libdir.patch -Patch1: %{name}-shared.patch +# Source0-md5: f5fdf4e7b06b0e692cafb0527f9ca5c9 +Patch0: %{name}-shared.patch URL: https://github.com/Netflix/vmaf BuildRequires: libstdc++-devel >= 6:4.8 +BuildRequires: meson >= 0.47.0 +BuildRequires: ninja >= 1.5 BuildRequires: sed >= 4.0 Requires: %{name}-libs = %{version}-%{release} BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) @@ -42,6 +43,9 @@ Netfliksa. Summary: Netflix VMAF libary Summary(pl.UTF-8): Biblioteka Netflix VMAF Group: Libraries +%if %{with sse2} +Requires: cpuinfo(sse2) +%endif %description libs Netflix VMAF libary. @@ -77,35 +81,26 @@ Statyczna biblioteka Netflix VMAF. %prep %setup -q %patch0 -p1 -%patch1 -p1 %if %{without sse2} -%{__sed} -i -e 's,#define ADM_OPT_RECIP_DIVISION,/* & */,' feature/src/adm_options.h +%{__sed} -i -e 's,#define ADM_OPT_RECIP_DIVISION,/* & */,' libvmaf/src/feature/adm_options.h %endif %build -CFLAGS="%{rpmcflags}%{?with_sse2: -msse2}" \ -CXXFLAGS="%{rpmcxxflags}%{?with_sse2: -msse2}" \ -CPPFLAGS="%{rpmcppflags}" \ -LDFLAGS="%{rpmldflags}" \ -%{__make} \ - CC="%{__cc}" \ - CXX="%{__cxx}" \ - -%{__sed} -i -e 's,^prefix=.*,prefix=%{_prefix},' \ - -e 's,^libdir=.*,libdir=%{_libdir},' \ - -e 's,^includedir=.*,includedir=%{_includedir},' wrapper/libvmaf.pc +%if %{with sse2} +CFLAGS="%{rpmcflags} -msse2" +CXXFLAGS="%{rpmcxxflags} -msse2" +%endif +%meson build-libvmaf libvmaf + +%ninja_build -C build-libvmaf %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT%{_bindir} -%{__make} -C wrapper install \ - DESTDIR=$RPM_BUILD_ROOT \ - INSTALL_PREFIX=%{_prefix} \ - LIBDIR=%{_libdir} +%ninja_install -C build-libvmaf -install feature/{psnr,vmaf} $RPM_BUILD_ROOT%{_bindir} +install build-libvmaf/tools/{psnr,vmaf,vmaf_rc} $RPM_BUILD_ROOT%{_bindir} %clean rm -rf $RPM_BUILD_ROOT @@ -115,9 +110,11 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc CHANGELOG.md FAQ.md NOTICE.md README.md VERSION +%doc CHANGELOG.md FAQ.md LICENSE NOTICE.md README.md VERSION %attr(755,root,root) %{_bindir}/psnr %attr(755,root,root) %{_bindir}/vmaf +%attr(755,root,root) %{_bindir}/vmaf_rc +%attr(755,root,root) %{_bindir}/vmafossexec %{_datadir}/model %files libs @@ -127,7 +124,7 @@ rm -rf $RPM_BUILD_ROOT %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libvmaf.so -%{_includedir}/libvmaf.h +%{_includedir}/libvmaf %{_pkgconfigdir}/libvmaf.pc %files static -- 2.44.0