summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordan Augé <jordan.auge+fdio@cisco.com>2019-12-02 14:28:22 +0100
committerLuca Muscariello <muscariello@ieee.org>2019-12-04 09:45:43 +0000
commit2bfd3335ff11281d703cb7f422bb17da2d3a6bcd (patch)
tree278c097859d17c3f96c84d432ab1ef5c80e9a6d2
parent3e0ff4e7897bb8bc03538f1b2643fe73de158714 (diff)
to fix HICN-421 by adding cpack to libyang and sysrepo
Signed-off-by: Luca Muscariello <muscariello@ieee.org> Change-Id: Ia9e0752f877c7fc0be6df85664d18e1caad86741 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
-rw-r--r--CMakeLists.txt7
-rw-r--r--ctrl/sysrepo-plugins/CMakeLists.txt14
-rw-r--r--ctrl/sysrepo-plugins/hicn-plugin/plugin/model/hicn_model.c8
-rw-r--r--extras/libmemif/CMakeLists.txt2
-rw-r--r--extras/libyang/CMakeLists.txt45
-rw-r--r--extras/libyang/cmake/Modules/Packaging.cmake33
-rw-r--r--extras/libyang/libyang.patch90
-rw-r--r--extras/sysrepo/CMakeLists.txt47
-rw-r--r--extras/sysrepo/cmake/Modules/Packaging.cmake35
-rw-r--r--extras/sysrepo/sysrepo.patch46
-rw-r--r--scripts/build-sysrepo.sh36
11 files changed, 347 insertions, 16 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9bff3d35e..ffd5302cd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,6 +29,8 @@ option(BUILD_CTRL "Build the hicn control tools" ON)
option(BUILD_HICNPLUGIN "Build the hicn vpp plugin" OFF)
option(BUILD_HICNEXTRAPLUGIN "Build the hicn extra plugin" OFF)
option(BUILD_SYSREPOPLUGIN "Build the sysrepo plugin" OFF)
+option(BUILD_SYSREPOP "Build the sysrepo plugin" OFF)
+option(BUILD_LIBYANG "Build the sysrepo plugin" OFF)
option(BUILD_CTRL_HICNPLUGIN "Build the hicn control tools for hicn plugin" OFF)
list(APPEND dir_options
@@ -41,6 +43,8 @@ list(APPEND dir_options
BUILD_CTRL
BUILD_HICNEXTRAPLUGIN
BUILD_SYSREPOPLUGIN
+ BUILD_SYSREPO
+ BUILD_LIBYANG
BUILD_LIBMEMIF
)
@@ -52,9 +56,12 @@ set(BUILD_APPS_DIR apps)
set(BUILD_CTRL_DIR ctrl)
set(BUILD_HICNPLUGIN_DIR hicn-plugin)
set(BUILD_SYSREPOPLUGIN_DIR ctrl/sysrepo-plugins)
+set(BUILD_SYSREPO_DIR extras/sysrepo)
+set(BUILD_LIBYANG_DIR extras/libyang)
set(BUILD_HICNEXTRAPLUGIN_DIR extras/hicn-extra-plugin)
set(BUILD_LIBMEMIF_DIR extras/libmemif)
+
## Add enabled components
foreach (opt ${dir_options})
if (${opt})
diff --git a/ctrl/sysrepo-plugins/CMakeLists.txt b/ctrl/sysrepo-plugins/CMakeLists.txt
index d6f319fdb..4671794a0 100644
--- a/ctrl/sysrepo-plugins/CMakeLists.txt
+++ b/ctrl/sysrepo-plugins/CMakeLists.txt
@@ -23,9 +23,8 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Mo
include(GNUInstallDirs)
include(BuildMacros)
-find_package(PkgConfig)
-find_package(Sysrepo)
-find_package_wrapper(Vpp REQUIRED)
+find_package(PkgConfig REQUIRED)
+find_package(Sysrepo REQUIRED)
if (NOT SRPD_PLUGINS_PATH)
if (PKG_CONFIG_FOUND)
@@ -38,7 +37,9 @@ if (NOT SRPD_PLUGINS_PATH)
endif()
if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
- find_package_wrapper(HicnPlugin REQUIRED)
+ find_package(VPP REQUIRED)
+ find_package(HicnPlugin REQUIRED)
+ find_package(Libhicn REQUIRED)
add_subdirectory(hicn-plugin)
else()
if (BUILD_HICNPLUGIN AND "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
@@ -49,4 +50,9 @@ else()
endif()
# add subdirectories
+
include(Packaging)
+if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
+ include(Packager)
+ make_packages()
+endif()
diff --git a/ctrl/sysrepo-plugins/hicn-plugin/plugin/model/hicn_model.c b/ctrl/sysrepo-plugins/hicn-plugin/plugin/model/hicn_model.c
index 305512af3..8db0a6238 100644
--- a/ctrl/sysrepo-plugins/hicn-plugin/plugin/model/hicn_model.c
+++ b/ctrl/sysrepo-plugins/hicn-plugin/plugin/model/hicn_model.c
@@ -296,7 +296,7 @@ vapi_error_e call_hicn_api_node_params_set(struct vapi_ctx_s *ctx,
}
static inline void state_update(sr_val_t * vals, struct lyd_node **parent, sr_session_ctx_t *session){
- char buf[20];
+ char buf[20];
//struct ly_ctx *ly_ctx = sr_get_context(sr_session_get_connection(session));
sr_val_set_xpath(&vals[0], "/hicn:hicn-state/states/pkts_processed");
vals[0].type = SR_UINT64_T;
@@ -420,12 +420,12 @@ static inline int routes_update(sr_val_t * vals, uint32_t nleaves, struct lyd_n
memset(buf, 0x00, 20);
if (temp->route.prefix.address.af==ADDRESS_IP4){
struct sockaddr_in sa;
- memcpy(&sa.sin_addr.s_addr,temp->route.prefix.address.un.ip4,INET_ADDRSTRLEN);
+ memcpy(&sa.sin_addr.s_addr, temp->route.prefix.address.un.ip4, IPV4_ADDR_LEN);
inet_ntop(AF_INET, &(sa.sin_addr), buf, INET_ADDRSTRLEN);
vals[route].data.string_val = buf;
}else{
struct sockaddr_in6 sa;
- memcpy(&sa.sin6_addr,temp->route.prefix.address.un.ip6,INET6_ADDRSTRLEN);
+ memcpy(&sa.sin6_addr,temp->route.prefix.address.un.ip6, IPV6_ADDR_LEN);
inet_ntop(AF_INET6, &(sa.sin6_addr), buf, INET6_ADDRSTRLEN);
vals[route].data.string_val = buf;
}
@@ -443,7 +443,7 @@ static inline int routes_update(sr_val_t * vals, uint32_t nleaves, struct lyd_n
memset(buf, 0x00, 20);
sprintf( buf, "%d", temp->route.strategy_id);
lyd_new_path(*parent, NULL, vals[route].xpath, buf, 0, 0);
-
+
route++;
temp=temp->next;
diff --git a/extras/libmemif/CMakeLists.txt b/extras/libmemif/CMakeLists.txt
index c9cea96f1..3b2b87729 100644
--- a/extras/libmemif/CMakeLists.txt
+++ b/extras/libmemif/CMakeLists.txt
@@ -26,7 +26,7 @@ endif()
execute_process(
COMMAND bash -c "if [ ! -d vpp ]; then
- git clone https://github.com/FDio/vpp.git -b stable/1908 vpp;
+ git clone https://github.com/FDio/vpp.git -b stable/1908 --depth 1 vpp;
else
pushd vpp && git pull && popd;
fi"
diff --git a/extras/libyang/CMakeLists.txt b/extras/libyang/CMakeLists.txt
new file mode 100644
index 000000000..734e14641
--- /dev/null
+++ b/extras/libyang/CMakeLists.txt
@@ -0,0 +1,45 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+cmake_minimum_required(VERSION 2.8)
+project(libyang)
+
+set(CMAKE_MODULE_PATH
+ ${CMAKE_MODULE_PATH}
+ "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/Modules"
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules"
+)
+
+include(ExternalProject)
+include(Packaging)
+
+if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
+ set(LIBYANG libyang)
+endif()
+
+execute_process(
+ COMMAND bash -c "if [ ! -d libyang ]; then
+ git clone https://github.com/CESNET/libyang.git -b devel --depth 1 libyang;
+ cd libyang; git apply ${CMAKE_CURRENT_SOURCE_DIR}/libyang.patch;
+ else
+ pushd libyang && git pull && popd;
+ fi"
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/libyang ${CMAKE_CURRENT_BINARY_DIR}/libyang)
+
+include(Packaging)
+if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
+ include(Packager)
+ make_packages()
+endif() \ No newline at end of file
diff --git a/extras/libyang/cmake/Modules/Packaging.cmake b/extras/libyang/cmake/Modules/Packaging.cmake
new file mode 100644
index 000000000..80dcecb76
--- /dev/null
+++ b/extras/libyang/cmake/Modules/Packaging.cmake
@@ -0,0 +1,33 @@
+# Copyright (c) 2017-2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Generate DEB / RPM packages
+
+######################
+# Packages section
+######################
+
+set(libyang_DESCRIPTION
+ "libyang is a YANG data modelling language parser and toolkit written (and providing API) in C."
+ CACHE STRING "Description for deb/rpm package."
+)
+
+set(libyang_DEB_DEPENDENCIES
+ "libpcre3 (>= 2:8.39-9)"
+ CACHE STRING "Dependencies for deb/rpm package."
+)
+
+set(libyang_RPM_DEPENDENCIES
+ "libpcre3 (>= >= 2:8.39-9)"
+ CACHE STRING "Dependencies for deb/rpm package."
+)
diff --git a/extras/libyang/libyang.patch b/extras/libyang/libyang.patch
new file mode 100644
index 000000000..b5e5c8858
--- /dev/null
+++ b/extras/libyang/libyang.patch
@@ -0,0 +1,90 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 19b7eb96..6567851f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,5 +1,11 @@
+ cmake_minimum_required(VERSION 2.8.12)
+
++set(CMAKE_MODULE_PATH
++ ${CMAKE_MODULE_PATH}
++ "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules"
++)
++
++
+ # force out-of-source build
+ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
+ message(FATAL_ERROR "In-source build is not allowed. Please make a standalone build directory and run CMake from there. You may need to remove CMakeCache.txt.")
+@@ -306,14 +312,14 @@ find_package(PCRE REQUIRED)
+ include_directories(${PCRE_INCLUDE_DIRS})
+ target_link_libraries(yang ${PCRE_LIBRARIES})
+
+-install(TARGETS yang DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-install(FILES ${headers} ${PROJECT_BINARY_DIR}/src/libyang.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libyang)
++install(TARGETS yang DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libyang)
++install(FILES ${headers} ${PROJECT_BINARY_DIR}/src/libyang.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libyang COMPONENT libyang)
+
+ find_package(PkgConfig)
+ if(PKG_CONFIG_FOUND)
+ # generate and install pkg-config file
+ configure_file("libyang.pc.in" "libyang.pc" @ONLY)
+- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libyang.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
++ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libyang.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" COMPONENT libyang)
+ # check that pkg-config includes the used path
+ execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable pc_path pkg-config RESULT_VARIABLE RETURN OUTPUT_VARIABLE PC_PATH ERROR_QUIET)
+ if(RETURN EQUAL 0)
+@@ -399,14 +405,14 @@ configure_file(${PROJECT_SOURCE_DIR}/src/plugin_config.h.in ${PROJECT_BINARY_DIR
+ # yanglint
+ add_executable(yanglint ${lintsrc})
+ target_link_libraries(yanglint yang)
+-install(TARGETS yanglint DESTINATION ${CMAKE_INSTALL_BINDIR})
+-install(FILES ${PROJECT_SOURCE_DIR}/tools/lint/yanglint.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
++install(TARGETS yanglint DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libyang)
++install(FILES ${PROJECT_SOURCE_DIR}/tools/lint/yanglint.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT libyang)
+
+ #yangre
+ add_executable(yangre ${resrc})
+ target_link_libraries(yangre yang)
+-install(TARGETS yangre DESTINATION ${CMAKE_INSTALL_BINDIR})
+-install(FILES ${PROJECT_SOURCE_DIR}/tools/re/yangre.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
++install(TARGETS yangre DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libyang)
++install(FILES ${PROJECT_SOURCE_DIR}/tools/re/yangre.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT libyang)
+
+ # yang2yin
+ add_executable(yang2yin ${yang2yinsrc})
+@@ -435,3 +441,10 @@ endif(ENABLE_BUILD_FUZZ_TARGETS)
+ if(GEN_LANGUAGE_BINDINGS AND GEN_CPP_BINDINGS)
+ add_subdirectory(swig)
+ endif()
++
++
++include(Packaging)
++if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
++ include(Packager)
++ make_packages()
++endif()
+diff --git a/src/extensions/CMakeLists.txt b/src/extensions/CMakeLists.txt
+index e2c18b5e..48885302 100644
+--- a/src/extensions/CMakeLists.txt
++++ b/src/extensions/CMakeLists.txt
+@@ -2,7 +2,7 @@ macro(EXTENSION_PLUGIN PLUGIN_NAME SRCS)
+ add_library(${PLUGIN_NAME} SHARED ${SRCS})
+ set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "")
+ target_link_libraries(${PLUGIN_NAME} yang)
+- install(TARGETS ${PLUGIN_NAME} DESTINATION ${EXTENSIONS_PLUGINS_DIR_MACRO})
++ install(TARGETS ${PLUGIN_NAME} DESTINATION ${EXTENSIONS_PLUGINS_DIR_MACRO} COMPONENT libyang)
+ endmacro(EXTENSION_PLUGIN)
+
+ foreach(EXTENSION ${EXTENSIONS_LIST})
+diff --git a/src/user_types/CMakeLists.txt b/src/user_types/CMakeLists.txt
+index 74aae322..e5f67bd7 100644
+--- a/src/user_types/CMakeLists.txt
++++ b/src/user_types/CMakeLists.txt
+@@ -2,7 +2,7 @@ macro(USER_TYPE_PLUGIN PLUGIN_NAME SRCS)
+ add_library(${PLUGIN_NAME} SHARED ${SRCS})
+ set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "")
+ target_link_libraries(${PLUGIN_NAME} yang)
+- install(TARGETS ${PLUGIN_NAME} DESTINATION ${USER_TYPES_PLUGINS_DIR_MACRO})
++ install(TARGETS ${PLUGIN_NAME} DESTINATION ${USER_TYPES_PLUGINS_DIR_MACRO} COMPONENT libyang)
+ endmacro(USER_TYPE_PLUGIN)
+
+ foreach(USER_TYPE ${USER_TYPE_LIST})
diff --git a/extras/sysrepo/CMakeLists.txt b/extras/sysrepo/CMakeLists.txt
new file mode 100644
index 000000000..071c7f5bd
--- /dev/null
+++ b/extras/sysrepo/CMakeLists.txt
@@ -0,0 +1,47 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cmake_minimum_required(VERSION 2.8)
+project(sysrepo)
+
+set(CMAKE_MODULE_PATH
+ ${CMAKE_MODULE_PATH}
+ "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/Modules"
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules"
+)
+
+include(ExternalProject)
+include(Packaging)
+
+if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
+ set(SYSREPO sysrepo)
+endif()
+
+execute_process(
+ COMMAND bash -c "if [ ! -d sysrepo ]; then
+ git clone https://github.com/sysrepo/sysrepo.git -b devel --depth 1 sysrepo;
+ cd sysrepo; git apply ${CMAKE_CURRENT_SOURCE_DIR}/sysrepo.patch;
+ else
+ pushd sysrepo && git pull && popd;
+ fi"
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/sysrepo ${CMAKE_CURRENT_BINARY_DIR}/sysrepo)
+
+
+include(Packaging)
+if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
+ include(Packager)
+ make_packages()
+endif() \ No newline at end of file
diff --git a/extras/sysrepo/cmake/Modules/Packaging.cmake b/extras/sysrepo/cmake/Modules/Packaging.cmake
new file mode 100644
index 000000000..db407616a
--- /dev/null
+++ b/extras/sysrepo/cmake/Modules/Packaging.cmake
@@ -0,0 +1,35 @@
+# Copyright (c) 2017-2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Generate DEB / RPM packages
+
+######################
+# Packages section
+######################
+
+set(sysrepo_DESCRIPTION
+"Sysrepo is a YANG-based configuration and operational datastore."
+ CACHE STRING "Description for deb/rpm package."
+)
+
+set(sysrepo_DEB_DEPENDENCIES
+ "libpcre3 (>= 2:8.39-9), libev4 (>= 1:4.22-1), libprotobuf-c1 (>= 1.2.1-2), libyang (>= 0.16-r2-1), libavl1 (>=0.3.5-4)"
+ CACHE STRING "Dependencies for deb/rpm package."
+)
+
+set(sysrepo_RPM_DEPENDENCIES
+ "libpcre3 (>= 2:8.39-9), libev4 (>= 1:4.22-1), libprotobuf-c1 (>= 1.2.1-2), libyang (>= 0.16-r2-1), libavl1 (>=0.3.5-4)"
+ CACHE STRING "Dependencies for deb/rpm package."
+)
+
+
diff --git a/extras/sysrepo/sysrepo.patch b/extras/sysrepo/sysrepo.patch
new file mode 100644
index 000000000..3412c5e17
--- /dev/null
+++ b/extras/sysrepo/sysrepo.patch
@@ -0,0 +1,46 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 181387b0..356bf32c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,11 @@ include(CheckSymbolExists)
+ include(CheckIncludeFile)
+ include(CheckStructHasMember)
+
++set(CMAKE_MODULE_PATH
++ ${CMAKE_MODULE_PATH}
++ "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules"
++)
++
+ # osx specific
+ set(CMAKE_MACOSX_RPATH TRUE)
+
+@@ -206,13 +211,13 @@ add_executable(sysrepo-plugind ${SYSREPOPLUGIND_SRC})
+ target_link_libraries(sysrepo-plugind sysrepo dl)
+
+ # installation
+-install(TARGETS sysrepo DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-install(FILES ${PROJECT_SOURCE_DIR}/src/sysrepo.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
++install(TARGETS sysrepo DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT sysrepo)
++install(FILES ${PROJECT_SOURCE_DIR}/src/sysrepo.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT sysrepo)
+ install(FILES ${PROJECT_SOURCE_DIR}/src/utils/values.h ${PROJECT_SOURCE_DIR}/src/utils/xpath.h
+- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sysrepo)
+-install(TARGETS sysrepoctl sysrepocfg sysrepo-plugind DESTINATION ${CMAKE_INSTALL_BINDIR})
++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sysrepo COMPONENT sysrepo)
++install(TARGETS sysrepoctl sysrepocfg sysrepo-plugind DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT sysrepo)
+
+-install(FILES "${PROJECT_BINARY_DIR}/libsysrepo.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
++install(FILES "${PROJECT_BINARY_DIR}/libsysrepo.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" COMPONENT sysrepo)
+
+ # doxygen documentation
+ find_package(Doxygen)
+@@ -266,3 +271,9 @@ add_custom_target(sr_clean
+ add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_MODULE_PATH}/uninstall.cmake")
+ add_custom_target(uninstall_with_repo "${CMAKE_COMMAND}" -P "${CMAKE_MODULE_PATH}/uninstall.cmake"
+ COMMAND rm -rf ${REPOSITORY_LOC})
++
++ include(Packaging)
++ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
++ include(Packager)
++ make_packages()
++ endif()
+\ No newline at end of file
diff --git a/scripts/build-sysrepo.sh b/scripts/build-sysrepo.sh
index 205fcc6bd..e51b25f4a 100644
--- a/scripts/build-sysrepo.sh
+++ b/scripts/build-sysrepo.sh
@@ -97,12 +97,22 @@ setup_fdio_repo() {
# Install dependencies
if [ ${DISTRIB_ID} == "ubuntu" ]; then
echo ${BUILD_TOOLS_UBUNTU} ${DEPS_UBUNTU} | xargs sudo ${apt_get} install -y --allow-unauthenticated --no-install-recommends
- curl -OL https://github.com/muscariello/build-scripts/raw/master/deb/libyang_0.16-r2_amd64.deb
- curl -OL https://github.com/muscariello/build-scripts/raw/master/deb/sysrepo_0.7.7_amd64.deb
sudo ${apt_get} clean && sudo ${apt_get} update
- sudo ${apt_get} install -y --allow-unauthenticated --no-install-recommends ./libyang_0.16-r2_amd64.deb ./sysrepo_0.7.7_amd64.deb
+ sudo ${apt_get} install -y --allow-unauthenticated --no-install-recommends libpcre3-dev
elif [ ${DISTRIB_ID} == "centos" ]; then
- echo "not supported yet"
+ # echo ${BUILD_TOOLS_GROUP_CENTOS} | xargs sudo yum groupinstall -y --nogpgcheck
+ echo ${DEPS_CENTOS} | xargs sudo yum install -y --nogpgcheck
+ sudo yum install devtoolset-7 pcre-devel
+
+ c++ --version
+
+ CXX_COMPILER="/opt/rh/devtoolset-7/root/usr/bin/c++"
+ CC_COMPILER="/opt/rh/devtoolset-7/root/usr/bin/cc"
+
+ ${CXX_COMPILER} --version
+ ${CC_COMPILER} --version
+
+ export CC=${CC_COMPILER} CXX=${CXX_COMPILER}
fi
# do nothing but check compiler version
@@ -122,14 +132,26 @@ build_package() {
mkdir -p build && pushd build
rm -rf *
-# cp ${SCRIPT_PATH}/../cmake/Modules/Packager.cmake ${SCRIPT_PATH}/../ctrl/sysrepo-plugin/cmake/
- cmake -DCMAKE_INSTALL_PREFIX=/usr ${SCRIPT_PATH}/../ctrl/sysrepo-plugins/ \
- -DSR_PLUGINS_DIR=/usr/lib/x86_64-linux-gnu/sysrepo/plugins
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ${SCRIPT_PATH}/../extras/libyang
+ make install
make package
find . -not -name '*.deb' -not -name '*.rpm' -print0 | xargs -0 rm -rf -- || true
rm *Unspecified* || true
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ${SCRIPT_PATH}/../extras/sysrepo
+ make install
+ make package
+
+ find . -not -name '*.deb' -not -name '*.rpm' -print0 | xargs -0 rm -rf -- || true
+ rm *Unspecified* || true
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_HICNPLUGIN=ON -DBUILD_HICNLIGHT=OFF \
+ -DBUILD_LIBTRANSPORT=OFF -DBUILD_UTILS=OFF -DBUILD_CTRL=OFF \
+ -DBUILD_SYSREPOPLUGIN=ON ${SCRIPT_PATH}/..
+ make install
+ make package
+
popd
echo "*******************************************************************"