[debian] Refactor debian packaging
authorParichay Kapoor <pk.kapoor@samsung.com>
Wed, 2 Jun 2021 04:50:16 +0000 (13:50 +0900)
committerJijoong Moon <jijoong.moon@samsung.com>
Wed, 2 Jun 2021 09:40:03 +0000 (18:40 +0900)
Refactor debian package to make separate packages for capi and ccapi, along with their devels.
Other bug fixes/improvements are:
- Update the names of the packages in pkg-config files for the capi and ccapi
- Update the installed files based on the requirement by the devel headers
(this might be even expanded). This will be refactored again once layer_internal and neuralnet
cleanup is performed.
- Update the included headers

**Self evaluation:**
1. Build test: [x]Passed [ ]Failed [ ]Skipped
2. Run test: [x]Passed [ ]Failed [ ]Skipped

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
18 files changed:
api/capi/capi-ml-training.pc.in
api/ccapi/ccapi-ml-training.pc.in
debian/control
debian/nntrainer-capi-dev.install [new file with mode: 0644]
debian/nntrainer-capi.install [new file with mode: 0644]
debian/nntrainer-ccapi-dev.install [new file with mode: 0644]
debian/nntrainer-ccapi.install [new file with mode: 0644]
debian/nntrainer-dev.install
debian/nntrainer.install
nntrainer/graph/meson.build
nntrainer/layers/meson.build
nntrainer/meson.build
nntrainer/models/meson.build
nntrainer/models/neuralnet.cpp
nntrainer/models/neuralnet.h
nntrainer/utils/meson.build
packaging/nntrainer.spec
test/unittest/unittest_nntrainer_models.cpp

index c18d24b..07aeadb 100644 (file)
@@ -4,7 +4,7 @@ exec_prefix=@PREFIX@
 libdir=@LIB_INSTALL_DIR@
 includedir=@INCLUDE_INSTALL_DIR@
 
-Name: tizen-api-nntrainer
+Name: capi-ml-training
 Description: NNTrainer API for Tizen
 Version: @VERSION@
 Requires:
index 606714d..891552f 100644 (file)
@@ -4,7 +4,7 @@ exec_prefix=@PREFIX@
 libdir=@LIB_INSTALL_DIR@
 includedir=@INCLUDE_INSTALL_DIR@
 
-Name: ccapi-nntrainer
+Name: ccapi-ml-training
 Description: NNTrainer cc API
 Version: @VERSION@
 Requires:
index 6ba697a..f916482 100644 (file)
@@ -3,8 +3,8 @@ Section: libs
 Priority: optional
 Maintainer: Jijoong Moon <jijoong.moon@samsung.com>
 Build-Depends: gcc-9 | gcc-8 | gcc-7 (>=7.5),
- python3, python3-dev, python3-numpy,
- pkg-config, cmake, ninja-build, meson (>=0.50), debhelper (>=9), libboost-dev,
+ python3, python3-numpy,
+ pkg-config, cmake, ninja-build, meson (>=0.50), debhelper (>=9),
  libopenblas-dev, libiniparser-dev (>=4.1), tensorflow-lite-dev, libjsoncpp-dev,
  libcurl3-gnutls-dev | libcurl4-gnutls-dev | libcurl3-openssl-dev |
  libcurl4-openssl-dev | libcurl3-nns-dev | libcurl4-nns-dev, libgtest-dev,
@@ -35,3 +35,30 @@ Depends: nntrainer, ${shlibs:Depends}, ${misc:Depends}
 Description: NNTrainer Applications pacakge
  This is nntrainer applications package.
 
+Package: ccapi-ml-training
+Architecture: any
+Multi-Arch: same
+Depends: nntrainer, ${shlibs:Depends}, ${misc:Depends}
+Description: NNTrainer cc-API
+ This package provides c++ API set to train machine learning models on-device.
+
+Package: ccapi-ml-training-dev
+Architecture: any
+Multi-Arch: same
+Depends: ccapi-ml-training, ${shlibs:Depends}, ${misc:Depends}
+Description: Developement package for NNTrainer cc-API
+ This is a development package for NNTrainer cc-API.
+
+Package: capi-ml-training
+Architecture: any
+Multi-Arch: same
+Depends: ccapi-ml-training, ${shlibs:Depends}, ${misc:Depends}
+Description: NNTrainer c-API
+ This package provides native API set to train machine learning models on-device.
+
+Package: capi-ml-training-dev
+Architecture: any
+Multi-Arch: same
+Depends: capi-ml-training, ${shlibs:Depends}, ${misc:Depends}
+Description: Developement package for NNTrainer c-API
+ This is a development package for NNTrainer c-API.
diff --git a/debian/nntrainer-capi-dev.install b/debian/nntrainer-capi-dev.install
new file mode 100644 (file)
index 0000000..6e8ba44
--- /dev/null
@@ -0,0 +1,4 @@
+/usr/include/nntrainer/nntrainer.h
+/usr/include/nntrainer/nntrainer-api-common.h
+/usr/lib/*/pkgconfig/capi-ml-training.pc
+/usr/lib/*/libcapi-*.a
diff --git a/debian/nntrainer-capi.install b/debian/nntrainer-capi.install
new file mode 100644 (file)
index 0000000..cb7fd49
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/*/libcapi-*.so
diff --git a/debian/nntrainer-ccapi-dev.install b/debian/nntrainer-ccapi-dev.install
new file mode 100644 (file)
index 0000000..8c30e95
--- /dev/null
@@ -0,0 +1,6 @@
+/usr/include/nntrainer/model.h
+/usr/include/nntrainer/layer.h
+/usr/include/nntrainer/optimizer.h
+/usr/include/nntrainer/dataset.h
+/usr/lib/*/pkgconfig/ccapi-ml-training.pc
+/usr/lib/*/libccapi-*.a
diff --git a/debian/nntrainer-ccapi.install b/debian/nntrainer-ccapi.install
new file mode 100644 (file)
index 0000000..b334391
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/*/libccapi-*.so
index 87ab87b..4e5abfc 100644 (file)
@@ -1,3 +1,17 @@
+/usr/include/nntrainer/app_context.h
+/usr/include/nntrainer/nntrainer_error.h
+/usr/include/nntrainer/nntrainer_log.h
+/usr/include/nntrainer/nntrainer_logger.h
+/usr/include/nntrainer/acti_func.h
+/usr/include/nntrainer/common_properties.h
+/usr/include/nntrainer/loss_layer.h
+/usr/include/nntrainer/weight.h
+/usr/include/nntrainer/var_grad.h
+/usr/include/nntrainer/base_properties.h
+/usr/include/nntrainer/node_exporter.h
+/usr/include/nntrainer/parse_util.h
+/usr/include/nntrainer/graph_core.h
+/usr/include/nntrainer/graph_node.h
 /usr/include/nntrainer/databuffer.h
 /usr/include/nntrainer/databuffer_factory.h
 /usr/include/nntrainer/layer_internal.h
 /usr/include/nntrainer/optimizer_devel.h
 /usr/include/nntrainer/optimizer_impl.h
 /usr/include/nntrainer/optimizer_factory.h
-/usr/include/nntrainer/nntrainer-api-common.h
-/usr/include/nntrainer/nntrainer.h
-/usr/include/nntrainer/model.h
-/usr/include/nntrainer/layer.h
-/usr/include/nntrainer/optimizer.h
-/usr/include/nntrainer/dataset.h
-/usr/include/nntrainer/app_context.h
 /usr/include/nntrainer/profiler.h
-/usr/lib/*/pkgconfig/*.pc
-/usr/lib/*/*.a
+/usr/include/nntrainer/dynamic_training_optimization.h
+/usr/include/nntrainer/layer_node.h
+/usr/include/nntrainer/manager.h
+/usr/include/nntrainer/network_graph.h
+/usr/lib/*/pkgconfig/nntrainer.pc
+/usr/lib/*/libnntrainer.a
index e3cd584..cce867e 100644 (file)
@@ -1,2 +1,2 @@
-/usr/lib/*/*.so
+/usr/lib/*/libnntrainer.so
 /etc/nntrainer.ini
index 08b885e..4f18f87 100644 (file)
@@ -4,7 +4,9 @@ layer_sources = [
 ]
 
 layer_headers = [
-  'network_graph.h'
+  'network_graph.h',
+  'graph_node.h',
+  'graph_core.h'
 ]
 
 foreach s : layer_sources
index 4443708..9953ca3 100644 (file)
@@ -27,7 +27,11 @@ layer_sources = [
 
 layer_headers = [
   'layer_factory.h',
-  'layer_internal.h'
+  'layer_internal.h',
+  'acti_func.h',
+  'layer_node.h',
+  'common_properties.h',
+  'loss_layer.h'
 ]
 
 layer_deps = []
index 621dd0b..b6da47b 100644 (file)
@@ -4,7 +4,12 @@ nntrainer_inc = [
 ]
 
 nntrainer_sources = []
-nntrainer_headers = ['app_context.h']
+nntrainer_headers = [
+  'app_context.h',
+  'nntrainer_error.h',
+  'nntrainer_log.h',
+  'nntrainer_logger.h'
+]
 
 # Dependencies
 nntrainer_base_deps=[
index 62e930b..196fab0 100644 (file)
@@ -1,11 +1,12 @@
 model_sources = [
   'model_loader.cpp',
-  'neuralnet.cpp',  
+  'neuralnet.cpp',
   'dynamic_training_optimization.cpp'
 ]
 
 model_headers = [
-  'neuralnet.h'
+  'neuralnet.h',
+  'dynamic_training_optimization.h'
 ]
 
 foreach s : model_sources
index 5772ada..f982a57 100644 (file)
@@ -34,6 +34,7 @@
 #include <nntrainer_log.h>
 #include <parse_util.h>
 #include <profiler.h>
+#include <time_dist.h>
 #include <unordered_set>
 #include <util_func.h>
 
index 1a6d3ea..c524e47 100644 (file)
 #include <chrono>
 #endif
 
-#include <activation_layer.h>
 #include <app_context.h>
-#include <bn_layer.h>
-#include <conv2d_layer.h>
 #include <databuffer.h>
 #include <dynamic_training_optimization.h>
-#include <fc_layer.h>
-#include <flatten_layer.h>
-#include <input_layer.h>
 #include <layer_node.h>
-#include <loss_layer.h>
 #include <manager.h>
 #include <ml-api-common.h>
 #include <network_graph.h>
 #include <optimizer_devel.h>
-#include <pooling2d_layer.h>
 #include <tensor.h>
-#include <time_dist.h>
 
 #include <model.h>
 #include <nntrainer-api-common.h>
index b6eb05f..39c8a88 100644 (file)
@@ -8,7 +8,10 @@ util_sources = [
 ]
 
 util_headers = [
-  'profiler.h'
+  'profiler.h',
+  'base_properties.h',
+  'parse_util.h',
+  'node_exporter.h'
 ]
 
 foreach s : util_sources
index fa6b1a2..173d6a7 100644 (file)
@@ -397,6 +397,20 @@ cp -r result %{buildroot}%{_datadir}/nntrainer/unittest/
 %config %{_sysconfdir}/nntrainer.ini
 
 %files devel
+%{_includedir}/nntrainer/app_context.h
+%{_includedir}/nntrainer/nntrainer_error.h
+%{_includedir}/nntrainer/nntrainer_log.h
+%{_includedir}/nntrainer/nntrainer_logger.h
+%{_includedir}/nntrainer/acti_func.h
+%{_includedir}/nntrainer/common_properties.h
+%{_includedir}/nntrainer/loss_layer.h
+%{_includedir}/nntrainer/weight.h
+%{_includedir}/nntrainer/var_grad.h
+%{_includedir}/nntrainer/base_properties.h
+%{_includedir}/nntrainer/node_exporter.h
+%{_includedir}/nntrainer/parse_util.h
+%{_includedir}/nntrainer/graph_core.h
+%{_includedir}/nntrainer/graph_node.h
 %{_includedir}/nntrainer/databuffer.h
 %{_includedir}/nntrainer/databuffer_factory.h
 %{_includedir}/nntrainer/layer_internal.h
@@ -407,13 +421,11 @@ cp -r result %{buildroot}%{_datadir}/nntrainer/unittest/
 %{_includedir}/nntrainer/optimizer_devel.h
 %{_includedir}/nntrainer/optimizer_impl.h
 %{_includedir}/nntrainer/optimizer_factory.h
-%{_includedir}/nntrainer/nntrainer-api-common.h
-%{_includedir}/nntrainer/var_grad.h
-%{_includedir}/nntrainer/weight.h
-%{_includedir}/nntrainer/app_context.h
+%{_includedir}/nntrainer/profiler.h
+%{_includedir}/nntrainer/dynamic_training_optimization.h
+%{_includedir}/nntrainer/layer_node.h
 %{_includedir}/nntrainer/manager.h
 %{_includedir}/nntrainer/network_graph.h
-%{_includedir}/nntrainer/profiler.h
 %{_libdir}/pkgconfig/nntrainer.pc
 
 %files devel-static
index d0c6734..660aff0 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <gtest/gtest.h>
 
+#include <activation_layer.h>
 #include <bn_layer.h>
 #include <input_layer.h>
 #include <layer.h>