[Dist/Tizen] Remove a sub-package using ISSL from the spec file
authorWook Song <wook16.song@samsung.com>
Thu, 14 Nov 2019 06:01:11 +0000 (15:01 +0900)
committerWook Song <wook16.song@samsung.com>
Mon, 25 Nov 2019 07:16:32 +0000 (16:16 +0900)
This patch removes a sub-package, including the firmware for Intel
Movidius Neural Compute Stick, using Intel Simplified Software License,
from the spec file.

Signed-off-by: Wook Song <wook16.song@samsung.com>
packaging/0001-API-Makefile-Revise-Makefile-for-API.patch [new file with mode: 0644]
packaging/0002-API-Makefile-Generalize-Makefile.patch [new file with mode: 0644]
packaging/0003-API-Makefile-Modifies-Makefile-to-generate-libmvnc.p.patch [new file with mode: 0644]
packaging/0004-API-Makefile-Add-flag-to-skip-.-get_mvcmd.sh-when-it.patch [new file with mode: 0644]
packaging/firmware_ma2450_784.zip [deleted file]
packaging/libmvnc.spec

diff --git a/packaging/0001-API-Makefile-Revise-Makefile-for-API.patch b/packaging/0001-API-Makefile-Revise-Makefile-for-API.patch
new file mode 100644 (file)
index 0000000..91db509
--- /dev/null
@@ -0,0 +1,37 @@
+From 08bff1f635f2d1e743bf510c6db93121fdaa647e Mon Sep 17 00:00:00 2001
+From: Wook Song <wook16.song@samsung.com>
+Date: Mon, 4 Nov 2019 14:29:44 +0900
+Subject: [PATCH 1/7] [API/Makefile] Revise Makefile for API
+
+This patch eliminates a trailing white space and a commented line, which
+is not required anymore.
+
+Signed-off-by: Wook Song <wook16.song@samsung.com>
+---
+ api/src/Makefile | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/api/src/Makefile b/api/src/Makefile
+index 3d65038..fa69d07 100644
+--- a/api/src/Makefile
++++ b/api/src/Makefile
+@@ -88,7 +88,7 @@ basicinstall: $(OBJDIR)/$(OUT) get_mvcmd
+       cp $(OBJDIR)/$(OUT) $(INSTALLDIR)/lib/
+       ln -fs $(OUT) $(INSTALLDIR)/lib/$(LIB_NAME).so
+       cp ../include/mvnc.h $(INSTALLDIR)/include/mvnc2
+-      ln -fs $(INSTALLDIR)/include/mvnc2/mvnc.h $(INSTALLDIR)/include/mvnc.h 
++      ln -fs $(INSTALLDIR)/include/mvnc2/mvnc.h $(INSTALLDIR)/include/mvnc.h
+       mkdir -p $(INSTALLDIR)/lib/mvnc
+       cp mvnc/MvNCAPI-*.mvcmd $(INSTALLDIR)/lib/mvnc/
+       mkdir -p ${DESTDIR}/etc/udev/rules.d/
+@@ -113,7 +113,6 @@ uninstall:
+       rm -f $(INSTALLDIR)/include/mvnc.h
+       rm -f $(INSTALLDIR)/include/mvnc2/mvnc.h
+       rm -f $(INSTALLDIR)/lib/mvnc/MvNCAPI-*.mvcmd
+-#     rm -rf $(INSTALLDIR)/lib/mvnc
+       rm -rf ${DESTDIR}$(PYTHON3DIST)/mvnc
+       rm -rf ${DESTDIR}$(PYTHON2DIST)/mvnc
+       rm -f ${DESTDIR}/etc/udev/rules.d/97-usbboot.rules
+-- 
+2.17.1
+
diff --git a/packaging/0002-API-Makefile-Generalize-Makefile.patch b/packaging/0002-API-Makefile-Generalize-Makefile.patch
new file mode 100644 (file)
index 0000000..3a6a6da
--- /dev/null
@@ -0,0 +1,120 @@
+From 913cb55389190009715255872901367714e54370 Mon Sep 17 00:00:00 2001
+From: Wook Song <wook16.song@samsung.com>
+Date: Mon, 4 Nov 2019 15:24:46 +0900
+Subject: [PATCH 2/7] [API/Makefile] Generalize Makefile
+
+The current version of Makefile for API uses hard-coded install
+prefix, library and include directories. In order to generalize the
+current Makefile more, this patch adds several variables to replace
+those hard-coded paths and makes Makefile use them.
+
+Signed-off-by: Wook Song <wook16.song@samsung.com>
+---
+ api/src/Makefile | 59 ++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 39 insertions(+), 20 deletions(-)
+
+diff --git a/api/src/Makefile b/api/src/Makefile
+index fa69d07..2627a7a 100644
+--- a/api/src/Makefile
++++ b/api/src/Makefile
+@@ -6,11 +6,18 @@ NO_BOOT ?= no
+ LIB_NAME:= libmvnc
+ OUT := $(LIB_NAME).so.0
+ OBJDIR := obj-$(ARCH)
+-INSTALLDIR := ${DESTDIR}/usr/local
++PREFIX ?= /usr/local
++INSTALLDIR ?= ${DESTDIR}${PREFIX}
++LIBDIR_NAME ?= lib
++INCDIR_NAME ?= include
++INCLUDE_LIBUSB := $(shell pkg-config libusb-1.0 --cflags)
++LIBS_LIBUSB := $(shell pkg-config libusb-1.0 --libs)
++INSTALL_LIBDIR := ${INSTALLDIR}/${LIBDIR_NAME}
++INSTALL_INCDIR := ${INSTALLDIR}/${INCDIR_NAME}
+ PYTHON3DIST := $(shell python3 -c "import site; print(site.getsitepackages()[0])")
+ PYTHON2DIST := $(shell python -c "import site; print(site.getsitepackages()[0])")
+ LINK_HIGHCLASS ?= no
+-VERSION_NUMBER=`cat ./version.txt`
++VERSION_NUMBER=$(shell cat ./version.txt)
+ SRCS := \
+       mvnc_api.c \
+       fp16.c
+@@ -42,18 +49,30 @@ ifeq ($(NO_RESET), yes)
+ endif
+ CFLAGS+=-DDEVICE_SHELL_ENABLED
+-LIBS += -lpthread -lusb-1.0 -ldl
++LIBS += -lpthread -ldl
++
++ifndef LIBS_LIBUSB
++      INCLUDES += -lusb-1.0
++else
++      INCLUDES += ${LIBS_LIBUSB}
++endif
+ #Allow compiling without highclass
+ ifeq ($(LINK_HIGHCLASS),no)
+ CFLAGS+= -DEXCLUDE_HIGHCLASS
+ else
+-LIBS+= -lmvnc_highclass -L$(INSTALLDIR)/lib/
++LIBS+= -lmvnc_highclass -L$(INSTALLDIR)/${LIBDIR_NAME}/
+ endif
+ INCLUDES := \
+       -I. \
+-      -I../include \
+-      -I$(SYSROOT)/usr/include/libusb-1.0 \
++      -I../include
++
++ifndef INCLUDE_LIBUSB
++      INCLUDES += -I$(SYSROOT)/usr/include/libusb-1.0
++else
++      INCLUDES += ${INCLUDE_LIBUSB}
++endif
++
+ CFLAGS += -O2 -Wall -pthread -fPIC -MMD -MP
+ LDFLAGS += -shared
+@@ -82,15 +101,15 @@ get_mvcmd:
+       @./get_mvcmd.sh
+ basicinstall: $(OBJDIR)/$(OUT) get_mvcmd
+-      mkdir -p $(INSTALLDIR)/include/
+-      mkdir -p $(INSTALLDIR)/include/mvnc2
+-      mkdir -p $(INSTALLDIR)/lib/
+-      cp $(OBJDIR)/$(OUT) $(INSTALLDIR)/lib/
+-      ln -fs $(OUT) $(INSTALLDIR)/lib/$(LIB_NAME).so
+-      cp ../include/mvnc.h $(INSTALLDIR)/include/mvnc2
+-      ln -fs $(INSTALLDIR)/include/mvnc2/mvnc.h $(INSTALLDIR)/include/mvnc.h
+-      mkdir -p $(INSTALLDIR)/lib/mvnc
+-      cp mvnc/MvNCAPI-*.mvcmd $(INSTALLDIR)/lib/mvnc/
++      mkdir -p ${INSTALL_INCDIR}
++      mkdir -p ${INSTALL_INCDIR}/mvnc2
++      mkdir -p ${INSTALL_LIBDIR}/${LIBDIR_NAME}
++      cp $(OBJDIR)/$(OUT) ${INSTALL_LIBDIR}/
++      ln -fs $(OUT) ${INSTALL_LIBDIR}/$(LIB_NAME).so
++      cp ../include/mvnc.h ${INSTALL_INCDIR}/mvnc2
++      cd ${INSTALL_INCDIR} && ln -fs mvnc2/mvnc.h mvnc.h
++      mkdir -p ${INSTALL_LIBDIR}/mvnc
++      cp mvnc/MvNCAPI-*.mvcmd ${INSTALL_LIBDIR}/mvnc/
+       mkdir -p ${DESTDIR}/etc/udev/rules.d/
+       cp 97-usbboot.rules ${DESTDIR}/etc/udev/rules.d/
+@@ -108,11 +127,11 @@ postinstall:
+ install: basicinstall pythoninstall postinstall
+ uninstall:
+-      rm -f $(INSTALLDIR)/lib/$(OUT)
+-      rm -f $(INSTALLDIR)/lib/$(LIB_NAME).so
+-      rm -f $(INSTALLDIR)/include/mvnc.h
+-      rm -f $(INSTALLDIR)/include/mvnc2/mvnc.h
+-      rm -f $(INSTALLDIR)/lib/mvnc/MvNCAPI-*.mvcmd
++      rm -f ${INSTALL_LIBDIR}/$(OUT)
++      rm -f ${INSTALL_LIBDIR}/$(LIB_NAME).so
++      rm -f ${INSTALL_INCDIR}/mvnc.h
++      rm -f ${INSTALL_INCDIR}/mvnc2/mvnc.h
++      rm -f ${INSTALL_LIBDIR}/mvnc/MvNCAPI-*.mvcmd
+       rm -rf ${DESTDIR}$(PYTHON3DIST)/mvnc
+       rm -rf ${DESTDIR}$(PYTHON2DIST)/mvnc
+       rm -f ${DESTDIR}/etc/udev/rules.d/97-usbboot.rules
+-- 
+2.17.1
+
diff --git a/packaging/0003-API-Makefile-Modifies-Makefile-to-generate-libmvnc.p.patch b/packaging/0003-API-Makefile-Modifies-Makefile-to-generate-libmvnc.p.patch
new file mode 100644 (file)
index 0000000..1882f53
--- /dev/null
@@ -0,0 +1,87 @@
+From 7f9e84aa8807bd74585844379a59bf3f0de362c5 Mon Sep 17 00:00:00 2001
+From: Wook Song <wook16.song@samsung.com>
+Date: Mon, 4 Nov 2019 15:56:04 +0900
+Subject: [PATCH 3/7] [API/Makefile] Modifies Makefile to generate libmvnc.pc
+
+This patch modifies Makefile to generate libmvnc.pc from libmvnc.pc.in,
+which is also added by this patch.
+
+Signed-off-by: Wook Song <wook16.song@samsung.com>
+---
+ api/src/Makefile      | 18 +++++++++++++++---
+ api/src/libmvnc.pc.in | 11 +++++++++++
+ 2 files changed, 26 insertions(+), 3 deletions(-)
+ create mode 100644 api/src/libmvnc.pc.in
+
+diff --git a/api/src/Makefile b/api/src/Makefile
+index 2627a7a..99b8a4b 100644
+--- a/api/src/Makefile
++++ b/api/src/Makefile
+@@ -14,6 +14,7 @@ INCLUDE_LIBUSB := $(shell pkg-config libusb-1.0 --cflags)
+ LIBS_LIBUSB := $(shell pkg-config libusb-1.0 --libs)
+ INSTALL_LIBDIR := ${INSTALLDIR}/${LIBDIR_NAME}
+ INSTALL_INCDIR := ${INSTALLDIR}/${INCDIR_NAME}
++INSTALL_PKGCONFIGDIR := ${INSTALLDIR}/${LIBDIR_NAME}/pkgconfig
+ PYTHON3DIST := $(shell python3 -c "import site; print(site.getsitepackages()[0])")
+ PYTHON2DIST := $(shell python -c "import site; print(site.getsitepackages()[0])")
+ LINK_HIGHCLASS ?= no
+@@ -81,7 +82,7 @@ OBJS := $(SRCS:%.c=$(OBJDIR)/%.o)
+ OBJS += $(XLINK_SRCS:%.c=$(OBJDIR)/%.o)
+ DEPS := $(OBJS:.o=.d)
+-.PHONY: get_mvcmd
++.PHONY: get_mvcmd libmvnc_pkgconfig
+ all: $(OBJDIR)/$(OUT) get_mvcmd
+@@ -97,13 +98,22 @@ $(OBJDIR)/%.o: %.c
+ -include $(DEPS)
++libmvnc_pkgconfig:
++      rm -f libmvnc.pc.tmp
++      cp -f libmvnc.pc.in libmvnc.pc.tmp
++      sed -i 's|@VERSION@|$(VERSION_NUMBER)|g' libmvnc.pc.tmp
++      sed -i 's|@LIB_INSTALL_DIR@|${PREFIX}/${LIBDIR_NAME}|g' libmvnc.pc.tmp
++      sed -i 's|@INCLUDE_INSTALL_DIR@|${PREFIX}/${INCDIR_NAME}|g' libmvnc.pc.tmp
++      mkdir -p ${INSTALL_PKGCONFIGDIR}
++      install -m 644 libmvnc.pc.tmp ${INSTALL_PKGCONFIGDIR}/libmvnc.pc
++
+ get_mvcmd:
+       @./get_mvcmd.sh
+-basicinstall: $(OBJDIR)/$(OUT) get_mvcmd
++basicinstall: $(OBJDIR)/$(OUT) get_mvcmd libmvnc_pkgconfig
+       mkdir -p ${INSTALL_INCDIR}
+       mkdir -p ${INSTALL_INCDIR}/mvnc2
+-      mkdir -p ${INSTALL_LIBDIR}/${LIBDIR_NAME}
++      mkdir -p ${INSTALL_LIBDIR}
+       cp $(OBJDIR)/$(OUT) ${INSTALL_LIBDIR}/
+       ln -fs $(OUT) ${INSTALL_LIBDIR}/$(LIB_NAME).so
+       cp ../include/mvnc.h ${INSTALL_INCDIR}/mvnc2
+@@ -142,3 +152,5 @@ clean:
+       rm -rf $(OBJDIR)
+       rm -f $(LIB_NAME).so
+       if [ -d "mvnc" ]; then find mvnc/ -type f -delete ; fi
++      find -name "libmvnc.pc.tmp" -delete
++      find -name "libmvnc.pc" -delete
+diff --git a/api/src/libmvnc.pc.in b/api/src/libmvnc.pc.in
+new file mode 100644
+index 0000000..9a607e9
+--- /dev/null
++++ b/api/src/libmvnc.pc.in
+@@ -0,0 +1,11 @@
++# Package Information for pkg-config, for Intel®  Movidius™  Neural Compute SDK
++
++libdir=@LIB_INSTALL_DIR@
++includedir=@INCLUDE_INSTALL_DIR@
++
++Name: libmvnc
++Description: Dev Kit of MVNCSDK
++Version: @VERSION@
++Requires:
++Libs: -L${libdir} -lmvnc
++Cflags: -I${includedir}/mvnc
+-- 
+2.17.1
+
diff --git a/packaging/0004-API-Makefile-Add-flag-to-skip-.-get_mvcmd.sh-when-it.patch b/packaging/0004-API-Makefile-Add-flag-to-skip-.-get_mvcmd.sh-when-it.patch
new file mode 100644 (file)
index 0000000..4827d9d
--- /dev/null
@@ -0,0 +1,61 @@
+From 59a625c637329400f222964910d9b27279a571e2 Mon Sep 17 00:00:00 2001
+From: Wook Song <wook16.song@samsung.com>
+Date: Mon, 4 Nov 2019 16:07:34 +0900
+Subject: [PATCH 4/7] [API/Makefile] Add flag to skip ./get_mvcmd.sh when it is
+ set
+
+In order to support build systems such as OBS and LaunchPad that do
+not support build-time downloading, this patch makes the target,
+get_mvcmd, skip the downloading procedure when specific flags are set.
+
+Signed-off-by: Wook Song <wook16.song@samsung.com>
+---
+ api/src/Makefile | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/api/src/Makefile b/api/src/Makefile
+index 99b8a4b..ca1e85c 100644
+--- a/api/src/Makefile
++++ b/api/src/Makefile
+@@ -2,6 +2,7 @@ ARCH := $(shell uname -m)
+ NO_RESET ?= no
+ NO_BOOT ?= no
++WITH_TIZEN ?= no
+ LIB_NAME:= libmvnc
+ OUT := $(LIB_NAME).so.0
+@@ -108,7 +109,9 @@ libmvnc_pkgconfig:
+       install -m 644 libmvnc.pc.tmp ${INSTALL_PKGCONFIGDIR}/libmvnc.pc
+ get_mvcmd:
++ifeq ($(strip $(WITH_TIZEN)), no)
+       @./get_mvcmd.sh
++endif
+ basicinstall: $(OBJDIR)/$(OUT) get_mvcmd libmvnc_pkgconfig
+       mkdir -p ${INSTALL_INCDIR}
+@@ -118,8 +121,10 @@ basicinstall: $(OBJDIR)/$(OUT) get_mvcmd libmvnc_pkgconfig
+       ln -fs $(OUT) ${INSTALL_LIBDIR}/$(LIB_NAME).so
+       cp ../include/mvnc.h ${INSTALL_INCDIR}/mvnc2
+       cd ${INSTALL_INCDIR} && ln -fs mvnc2/mvnc.h mvnc.h
++ifeq ($(strip $(WITH_TIZEN)), no)
+       mkdir -p ${INSTALL_LIBDIR}/mvnc
+       cp mvnc/MvNCAPI-*.mvcmd ${INSTALL_LIBDIR}/mvnc/
++endif
+       mkdir -p ${DESTDIR}/etc/udev/rules.d/
+       cp 97-usbboot.rules ${DESTDIR}/etc/udev/rules.d/
+@@ -141,7 +146,9 @@ uninstall:
+       rm -f ${INSTALL_LIBDIR}/$(LIB_NAME).so
+       rm -f ${INSTALL_INCDIR}/mvnc.h
+       rm -f ${INSTALL_INCDIR}/mvnc2/mvnc.h
++ifeq ($(strip $(WITH_TIZEN)), no)
+       rm -f ${INSTALL_LIBDIR}/mvnc/MvNCAPI-*.mvcmd
++endif
+       rm -rf ${DESTDIR}$(PYTHON3DIST)/mvnc
+       rm -rf ${DESTDIR}$(PYTHON2DIST)/mvnc
+       rm -f ${DESTDIR}/etc/udev/rules.d/97-usbboot.rules
+-- 
+2.17.1
+
diff --git a/packaging/firmware_ma2450_784.zip b/packaging/firmware_ma2450_784.zip
deleted file mode 100644 (file)
index 0a948f2..0000000
Binary files a/packaging/firmware_ma2450_784.zip and /dev/null differ
index 9a7524dc10101992478a593d5ff0ad17e19f6173..971f92664dd1830372b2b613df4b1fb1be8a36c8 100644 (file)
@@ -14,7 +14,10 @@ Packager:   Wook Song <wook16.song@samsung.com>
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
 Source1:    %{name}.manifest
-Source1000: %{_fw_archive_prefix}_%{_fw_version}.zip
+Patch0:     0001-API-Makefile-Revise-Makefile-for-API.patch
+Patch1:     0002-API-Makefile-Generalize-Makefile.patch
+Patch2:     0003-API-Makefile-Modifies-Makefile-to-generate-libmvnc.p.patch
+Patch3:     0004-API-Makefile-Add-flag-to-skip-.-get_mvcmd.sh-when-it.patch
 Requires(post): %{_sbindir}/udevadm %{_sbindir}/ldconfig
 Requires(postun): %{_sbindir}/udevadm %{_sbindir}/ldconfig
 Requires: mvnc-2450-firmware
@@ -28,15 +31,6 @@ the legacy SDK provided for users of the Intel® Movidius™ Neural Compute Stic
 (Intel® Movidius™ NCS). New users of this device as well as all users of the newer
 Intel® Neural Compute Stick 2 should install the OpenVINO™ Toolkit.
 
-%package fw-ma2450-784
-License: Intel Simplified Software License (ISSL)
-Summary: Firmware for Intel®  Movidius™ Neural Compute (ma2450)
-Group: Development/Libraries
-Provides: mvnc-2450-firmware
-
-%description fw-ma2450-784
-This package contains a firmware binary for  Intel®  Movidius™  Neural Compute Stick (ma2450).
-
 %package devel
 License: Apache-2.0
 Summary: Development package to use NCSDK
@@ -48,8 +42,11 @@ This package provides headers and other miscellaneous files required to use NCSD
 
 %prep
 %setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
 cp %{SOURCE1} .
-unzip %{SOURCE1000}
 
 %build
 pushd api/src
@@ -57,7 +54,6 @@ pushd api/src
 popd
 
 %install
-cp -rf mvnc ./api/src
 pushd api/src
 %{__make} \
     DESTDIR=%{?buildroot:%{buildroot}} \
@@ -92,15 +88,9 @@ rm -f %{_libdir}/%{name}.so
 %license LICENSE
 %{_libdir}/libmvnc.so.*
 /etc/udev/rules.d/*
-%{_libdir}/mvnc/*
 
 %files devel
 %manifest %{name}.manifest
 %license LICENSE
 %{_libdir}/pkgconfig/*.pc
 %{_includedir}/*
-
-%files fw-ma2450-784
-%manifest %{name}.manifest
-%license ISSL.txt
-%{_libdir}/mvnc/*