diff options
-rw-r--r-- | CMakeLists.txt | 7 | ||||
-rw-r--r-- | ctrl/sysrepo-plugins/CMakeLists.txt | 14 | ||||
-rw-r--r-- | ctrl/sysrepo-plugins/hicn-plugin/plugin/model/hicn_model.c | 8 | ||||
-rw-r--r-- | extras/libmemif/CMakeLists.txt | 2 | ||||
-rw-r--r-- | extras/libyang/CMakeLists.txt | 45 | ||||
-rw-r--r-- | extras/libyang/cmake/Modules/Packaging.cmake | 33 | ||||
-rw-r--r-- | extras/libyang/libyang.patch | 90 | ||||
-rw-r--r-- | extras/sysrepo/CMakeLists.txt | 47 | ||||
-rw-r--r-- | extras/sysrepo/cmake/Modules/Packaging.cmake | 35 | ||||
-rw-r--r-- | extras/sysrepo/sysrepo.patch | 46 | ||||
-rw-r--r-- | scripts/build-sysrepo.sh | 36 |
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 "*******************************************************************" |