[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