[packages/vmaf] - updated to 1.3.9 - added libdir, shared patches; build shared library - use optflags, added sse2 b
qboosh
qboosh at pld-linux.org
Wed Oct 31 08:53:45 CET 2018
commit a4918afe5b023e0ca91dd0aa855dd508d91614dd
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Wed Oct 31 08:57:29 2018 +0100
- updated to 1.3.9
- added libdir, shared patches; build shared library
- use optflags, added sse2 bcond
vmaf-libdir.patch | 29 ++++++++++++++++++++
vmaf-shared.patch | 46 ++++++++++++++++++++++++++++++++
vmaf.spec | 79 ++++++++++++++++++++++++++++++++++++++++++++++++-------
3 files changed, 145 insertions(+), 9 deletions(-)
---
diff --git a/vmaf.spec b/vmaf.spec
index e874b92..04276c2 100644
--- a/vmaf.spec
+++ b/vmaf.spec
@@ -1,37 +1,59 @@
# TODO:
-# - shared library
# - python package
-# - optflags
# - system libs if possible:
# libsvm
# wrapper/src/pugixml
# ptools ?
# ptools/opencontainers_1_8_4 ?
+#
+# Conditional build:
+%bcond_with sse2 # use SSE2 instructions
+
+%ifarch pentium4 %{x8664} x32
+%define with_sse2 1
+%endif
Summary: Netflix's VMAF library
Summary(pl.UTF-8): Biblioteka Netflix VMAF
Name: vmaf
-Version: 1.3.1
-Release: 0.1
+Version: 1.3.9
+Release: 1
License: Apache v2.0
Group: Libraries
#Source0Download: https://github.com/Netflix/vmaf/releases
Source0: https://github.com/Netflix/vmaf/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 864c2c74649fd8770fd6a566fdaf6f35
+# Source0-md5: b5f39df007a66e6b6e284a820066bb70
+Patch0: %{name}-libdir.patch
+Patch1: %{name}-shared.patch
URL: https://github.com/Netflix/vmaf
BuildRequires: libstdc++-devel >= 6:4.8
BuildRequires: sed >= 4.0
+Requires: %{name}-libs = %{version}-%{release}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
VMAF is a perceptual video quality assessment algorithm developed by
Netflix.
-#%description -l pl.UTF-8
+%description -l pl.UTF-8
+VMAF to percepcyjny algorytm oceny jakości obrazu tworzony przez
+Netfliksa.
+
+%package libs
+Summary: Netflix VMAF libary
+Summary(pl.UTF-8): Biblioteka Netflix VMAF
+Group: Libraries
+
+%description libs
+Netflix VMAF libary.
+
+%description libs -l pl.UTF-8
+Biblioteka Netflix VMAF.
%package devel
Summary: Netflix VMAF SDK
Summary(pl.UTF-8): Pakiet programistyczny Netflix VMAF
Group: Development/Libraries
+Requires: %{name}-libs = %{version}-%{release}
Requires: libstdc++-devel >= 6:4.8
%description devel
@@ -40,10 +62,32 @@ Netflix VMAF SDK.
%description devel -l pl.UTF-8
Pakiet programistyczny Netflix VMAF.
+%package static
+Summary: Static Netflix VMAF library
+Summary(pl.UTF-8): Statyczna biblioteka Netflix VMAF
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description static
+Static Netflix VMAF library.
+
+%description static -l pl.UTF-8
+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
+%endif
%build
+CFLAGS="%{rpmcflags}%{?with_sse2: -msse2}" \
+CXXFLAGS="%{rpmcxxflags}%{?with_sse2: -msse2}" \
+CPPFLAGS="%{rpmcppflags}" \
+LDFLAGS="%{rpmldflags}" \
%{__make} \
CC="%{__cc}" \
CXX="%{__cxx}" \
@@ -54,21 +98,38 @@ Pakiet programistyczny Netflix VMAF.
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_bindir}
-%{__make} install \
+%{__make} -C wrapper install \
DESTDIR=$RPM_BUILD_ROOT \
- PREFIX=%{_prefix}
+ INSTALL_PREFIX=%{_prefix} \
+ LIBDIR=%{_libdir}
+
+install feature/{psnr,vmaf} $RPM_BUILD_ROOT%{_bindir}
%clean
rm -rf $RPM_BUILD_ROOT
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
+
%files
%defattr(644,root,root,755)
%doc CHANGELOG.md FAQ.md NOTICE.md README.md VERSION
+%attr(755,root,root) %{_bindir}/psnr
+%attr(755,root,root) %{_bindir}/vmaf
%{_datadir}/model
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libvmaf.so.0
+
%files devel
%defattr(644,root,root,755)
-%{_libdir}/libvmaf.a
+%attr(755,root,root) %{_libdir}/libvmaf.so
%{_includedir}/libvmaf.h
%{_pkgconfigdir}/libvmaf.pc
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libvmaf.a
diff --git a/vmaf-libdir.patch b/vmaf-libdir.patch
new file mode 100644
index 0000000..e981a31
--- /dev/null
+++ b/vmaf-libdir.patch
@@ -0,0 +1,29 @@
+--- vmaf-1.3.9/wrapper/Makefile.orig 2018-08-07 23:36:56.000000000 +0200
++++ vmaf-1.3.9/wrapper/Makefile 2018-10-29 21:05:31.269560608 +0100
+@@ -9,6 +9,7 @@
+ FEATURESRCDIR = $(TOP)/../feature/src
+ PTOOLSDIR = $(TOP)/../ptools
+ INSTALL_PREFIX = /usr/local
++LIBDIR = $(INSTALL_PREFIX)/lib
+
+ OBJS = \
+ $(OBJDIR)/alloc.o \
+@@ -170,14 +171,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
new file mode 100644
index 0000000..47470b1
--- /dev/null
+++ b/vmaf-shared.patch
@@ -0,0 +1,46 @@
+--- 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
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/vmaf.git/commitdiff/a4918afe5b023e0ca91dd0aa855dd508d91614dd
More information about the pld-cvs-commit
mailing list