Browse Source

Merge pull request #4351 from sartura/sysrepo_release

sysrepo packages
lilik-openwrt-22.03
Luka Perkov 8 years ago
committed by GitHub
parent
commit
015f7714bf
17 changed files with 15542 additions and 0 deletions
  1. +76
    -0
      libs/libnetconf2/Makefile
  2. +85
    -0
      libs/libssh/Makefile
  3. +35
    -0
      libs/libssh/patches/001-compile.patch
  4. +22
    -0
      libs/libssh/patches/002-disable-libssp.patch
  5. +81
    -0
      libs/libyang/Makefile
  6. +143
    -0
      net/netopeer2/Makefile
  7. +11
    -0
      net/netopeer2/files/netopeer2-keystored.default
  8. +24
    -0
      net/netopeer2/files/netopeer2-server.default
  9. +15
    -0
      net/netopeer2/files/netopeer2-server.init
  10. +40
    -0
      net/netopeer2/patches/001-remove-sysrepoctl-commands-from-cmake
  11. +139
    -0
      net/sysrepo/Makefile
  12. +13
    -0
      net/sysrepo/files/libsysrepo.default
  13. +19
    -0
      net/sysrepo/files/sysrepo-plugind.init
  14. +19
    -0
      net/sysrepo/files/sysrepod.init
  15. +14782
    -0
      net/sysrepo/patches/001-protobuf-remove-protoc-command-from-cmake-file
  16. +26
    -0
      net/sysrepo/patches/002-remove-buildtime-module-install
  17. +12
    -0
      net/sysrepo/patches/003-missing-time-header

+ 76
- 0
libs/libnetconf2/Makefile View File

@ -0,0 +1,76 @@
#
# Copyright (C) 2017 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libnetconf2
PKG_LICENSE:=BSD-3-Clause
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
PKG_VERSION:=0.8.56
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=4d13eca938085298edbad6a731d77dfd55c8d514
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
PKG_SOURCE_URL:=https://github.com/cesnet/libnetconf2/
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/libnetconf2
SECTION:=libs
CATEGORY:=Libraries
TITLE:=NETCONF library
URL:=$(PKG_SOURCE_URL)
DEPENDS:= +libyang +libssh +libopenssl
endef
define Package/libnetconf2/description
libnetconf2 is the NETCONF library in C intended for building NETCONF clients and servers.
libnetconf2 provides basic functions to connect NETCONF client and server to each other via
SSH, to send and receive NETCONF messages. NETCONF datastore implementation is not included.
endef
CMAKE_OPTIONS += \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE:STRING=Release
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/libnetconf2
$(CP) $(PKG_INSTALL_DIR)/usr/include/libnetconf2/*.h $(1)/usr/include/libnetconf2/
$(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libnetconf2.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/include/libnetconf2
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/include/libnetconf2/* $(1)/usr/include/libnetconf2/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libnetconf2.pc $(1)/usr/lib/pkgconfig/
endef
define Package/libnetconf2/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libnetconf2.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/share/libnetconf2
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/libnetconf2/*.yin $(1)/usr/share/libnetconf2/
endef
$(eval $(call BuildPackage,libnetconf2))

+ 85
- 0
libs/libssh/Makefile View File

@ -0,0 +1,85 @@
#
# Copyright (C) 2017 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_LICENSE:=LGPL-2.1+ BSD-2-Clause
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
PKG_NAME:=libssh
PKG_VERSION:=0.7.5
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=0588cbf9d43e7819e453c8b35c1b5e515d815473
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
PKG_SOURCE_URL:=git://git.libssh.org/projects/libssh.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
CMAKE_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_USE_MIPS16:=0
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/libssh
SECTION:=lib
CATEGORY:=Libraries
URL:=$(PKG_SOURCE_URL)
TITLE:=SSH library
DEPENDS:=+libpthread +librt +zlib +libopenssl
endef
define Package/libssh/description
libssh is a mulitplatform C library implementing the SSHv2 and SSHv1 protocol
for client and server implementations.
endef
CMAKE_OPTIONS = \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DHAVE_STRTOULL=1 \
-DHAVE_GETADDRINFO=1 \
-DHAVE_TERMIOS_H=1 \
-DWITH_EXAMPLES:BOOL=OFF \
-DWITH_GCRYPT:BOOL=OFF \
-DWITH_GSSAPI:BOOL=OFF \
-DWITH_LIBZ:BOOL=ON \
-DWITH_NACL:BOOL=OFF \
-DWITH_PCAP:BOOL=OFF \
-DWITH_SERVER:BOOL=ON \
-DWITH_SFTP:BOOL=ON \
-DWITH_SSH1:BOOL=OFF \
-DWITH_TESTING:BOOL=OFF \
ifeq ($(CONFIG_BIG_ENDIAN),y)
CMAKE_OPTIONS += -DWITH_BIG_ENDIAN=ON
else
CMAKE_OPTIONS += -DWITH_BIG_ENDIAN=OFF
endif
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/libssh/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/libssh/* $(1)/usr/include/libssh/
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libssh* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
endef
define Package/libssh/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libssh* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libssh))

+ 35
- 0
libs/libssh/patches/001-compile.patch View File

@ -0,0 +1,35 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,10 +35,6 @@ include(DefineInstallationPaths)
include(DefineOptions.cmake)
include(CPackConfig.cmake)
-# disallow in-source build
-include(MacroEnsureOutOfSourceBuild)
-macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source build. Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there.")
-
# search for libraries
if (WITH_ZLIB)
find_package(ZLIB REQUIRED)
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -5,7 +5,6 @@ include(CheckFunctionExists)
include(CheckLibraryExists)
include(CheckTypeSize)
include(CheckCXXSourceCompiles)
-include(TestBigEndian)
set(PACKAGE ${APPLICATION_NAME})
set(VERSION ${APPLICATION_VERSION})
@@ -270,6 +269,8 @@ if (WITH_GSSAPI AND NOT GSSAPI_FOUND)
endif (WITH_GSSAPI AND NOT GSSAPI_FOUND)
# ENDIAN
-if (NOT WIN32)
- test_big_endian(WORDS_BIGENDIAN)
-endif (NOT WIN32)
+if (WITH_BIG_ENDIAN)
+ set(WORDS_BIGENDIAN 1)
+else (WITH_BIG_ENDIAN)
+ set(WORDS_BIGENDIAN 0)
+endif (WITH_BIG_ENDIAN)

+ 22
- 0
libs/libssh/patches/002-disable-libssp.patch View File

@ -0,0 +1,22 @@
--- a/cmake/Modules/DefineCompilerFlags.cmake
+++ b/cmake/Modules/DefineCompilerFlags.cmake
@@ -1,7 +1,6 @@
# define system dependent compiler flags
include(CheckCCompilerFlag)
-include(CheckCCompilerFlagSSP)
if (UNIX AND NOT WIN32)
#
@@ -21,11 +20,6 @@ if (UNIX AND NOT WIN32)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
endif (WITH_FPIC)
- check_c_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR)
- if (WITH_STACK_PROTECTOR)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
- endif (WITH_STACK_PROTECTOR)
-
if (CMAKE_BUILD_TYPE)
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
if (CMAKE_BUILD_TYPE_LOWER MATCHES (release|relwithdebinfo|minsizerel))

+ 81
- 0
libs/libyang/Makefile View File

@ -0,0 +1,81 @@
#
# Copyright (C) 2017 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libyang
PKG_VERSION:=0.12.174
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_LICENSE:=GPL-2.0+
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/CESNET/libyang.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=7e811613b335afc8e1b2c0ee77e7b3f371bc9175
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/libyang
SECTION:=libs
CATEGORY:=Libraries
TITLE:=YANG data modeling language library
URL:=$(PKG_SOURCE_URL)
DEPENDS:=+libpcre
endef
define Package/yanglint
SECTION:=utils
CATEGORY:=Utilities
TITLE:=YANG data modeling language utility
URL:=$(PKG_SOURCE_URL)
DEPENDS:=+libyang
endef
define Package/libyang/description
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
The library is used e.g. in libnetconf2, Netopeer2 or sysrepo projects.
endef
TARGET_LDFLAGS += -lm
CMAKE_OPTIONS += \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE:STRING=Release
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyang.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/include/libyang
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/include/libyang/* $(1)/usr/include/libyang/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libyang.pc $(1)/usr/lib/pkgconfig/
endef
define Package/libyang/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyang.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/libyang
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyang/* $(1)/usr/lib/libyang/
endef
define Package/yanglint/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/yanglint $(1)/usr/bin/
endef
$(eval $(call BuildPackage,libyang))
$(eval $(call BuildPackage,yanglint))

+ 143
- 0
net/netopeer2/Makefile View File

@ -0,0 +1,143 @@
#
# Copyright (C) 2017 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# Warning by default OpenWrt does not have a root password which is necessery for NETCONF server.
include $(TOPDIR)/rules.mk
PKG_NAME:=netopeer2
PKG_LICENSE:=BSD-3-Clause
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
PKG_VERSION:=0.3.65
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=c204b59f9c2bb7e63eb907f33c44adbf208295ee
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
PKG_SOURCE_URL:=https://github.com/CESNET/Netopeer2.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/netopeer2-server
SECTION:=util
CATEGORY:=Utilities
TITLE:=NETCONF server
URL:=$(PKG_SOURCE_URL)
DEPENDS:=+libpthread +libyang +libnetconf2 +netopeer2-keystored +libsysrepo +sysrepocfg +sysrepoctl
endef
define Package/netopeer2-cli
SECTION:=util
CATEGORY:=Utilities
TITLE:=Netopeer2 cli tool
URL:=$(PKG_SOURCE_URL)
DEPENDS:=+libpthread +libyang +libnetconf2 +libopenssl
endef
define Package/netopeer2-keystored
SECTION:=util
CATEGORY:=Utilities
TITLE:=Netopeer2 key store management
URL:=$(PKG_SOURCE_URL)
DEPENDS:=+libopenssl +libsysrepo +sysrepo-plugind +sysrepocfg +sysrepoctl
endef
define Package/netopeer2/description
Netopeer2 is a set of tools implementing network configuration tools based on the NETCONF
Protocol. This is the second generation of the toolset, originally available as the Netopeer
project. Netopeer2 is based on the new generation of the NETCONF and YANG libraries -
libyang and libnetconf2. The Netopeer server uses sysrepo as a NETCONF datastore implementation.
endef
CMAKE_OPTIONS += \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DKEYSTORED_KEYS_DIR:STRING=/etc/keystored/keys
define Build/Configure
$(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/server)
$(call Build/Configure/Default)
$(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/cli)
$(call Build/Configure/Default)
$(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/keystored)
$(call Build/Configure/Default)
endef
define Build/Compile
$(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/server)
$(call Build/Compile/Default)
$(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/cli)
$(call Build/Compile/Default)
$(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/keystored)
$(call Build/Compile/Default)
endef
define Package/netopeer2-server/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_ROOT)/server/netopeer2-server $(1)/bin/
$(INSTALL_DIR) $(1)/etc/sysrepo/yang
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-ssh-server.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-tls-server.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/iana-crypt-hash.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-x509-cert-to-name.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-system.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/netopeer2-server.default $(1)/etc/uci-defaults/99_netopeer2-server
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) ./files/netopeer2-server.init $(1)/etc/init.d/netopeer2-server
$(INSTALL_DIR) $(1)/usr/share/netopeer2-server
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/server/stock_config.xml $(1)/usr/share/netopeer2-server
endef
define Package/netopeer2-cli/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_ROOT)/cli/netopeer2-cli $(1)/bin/
endef
define Package/netopeer2-keystored/install
$(INSTALL_DIR) $(1)/usr/lib/sysrepo/plugins/
$(INSTALL_BIN) $(PKG_BUILD_ROOT)/keystored/libkeystored.so $(1)/usr/lib/sysrepo/plugins/
$(INSTALL_DIR) $(1)/etc/sysrepo/yang
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-keystore.yang $(1)/etc/sysrepo/yang
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/netopeer2-keystored.default $(1)/etc/uci-defaults/97_netopeer2-keystored
$(INSTALL_DIR) $(1)/usr/share/netopeer2-keystored
$(INSTALL_DATA) $(PKG_BUILD_ROOT)/keystored/stock_key_config.xml $(1)/usr/share/netopeer2-keystored
$(INSTALL_DIR) $(1)/etc/keystored/keys
#$(INSTALL_DATA) ./files/ssh_host_rsa_key.pem $(1)/etc/keystored/keys
#$(INSTALL_DATA) ./files/ssh_host_rsa_key.pub.pem $(1)/etc/keystored/keys
#ssh key name is specified in stock_key_config.xml file, you will need to provide the ssh keys yourself.
endef
$(eval $(call BuildPackage,netopeer2-server))
$(eval $(call BuildPackage,netopeer2-cli))
$(eval $(call BuildPackage,netopeer2-keystored))

+ 11
- 0
net/netopeer2/files/netopeer2-keystored.default View File

@ -0,0 +1,11 @@
#!/bin/sh
# Warning, problems can occur if the device restarts in the middle of this uci-default script
if [ -x /bin/sysrepoctl ]; then
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-keystore.yang -o root:root -p 600
sysrepocfg -d startup -i /usr/share/netopeer2-keystored/stock_key_config.xml ietf-keystore
rm /usr/share/netopeer2-keystored/stock_key_config.xml
fi
exit 0

+ 24
- 0
net/netopeer2/files/netopeer2-server.default View File

@ -0,0 +1,24 @@
#!/bin/sh
# Warning, problems can occur if the device restarts in the middle of this uci-default script
if [ -x /bin/sysrepoctl ]; then
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-ssh-server.yang -p 600
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-tls-server.yang -p 600
sysrepoctl --install --yang=/etc/sysrepo/yang/iana-crypt-hash.yang -p 600
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-x509-cert-to-name.yang -p 600
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-server.yang -o root:root -p 600
sysrepoctl -m ietf-netconf-server -e listen
sysrepoctl -m ietf-netconf-server -e ssh-listen
sysrepoctl -m ietf-netconf-server -e tls-listen
sysrepoctl -m ietf-netconf-server -e call-home
sysrepoctl -m ietf-netconf-server -e ssh-call-home
sysrepoctl -m ietf-netconf-server -e tls-call-home
sysrepocfg -d startup -i /usr/share/netopeer2-server/stock_config.xml ietf-netconf-server
rm /usr/share/netopeer2-server/stock_config.xml
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-system.yang -o root:root -p 600
sysrepoctl -m ietf-system -e authentication
sysrepoctl -m ietf-system -e local-users
fi
exit 0

+ 15
- 0
net/netopeer2/files/netopeer2-server.init View File

@ -0,0 +1,15 @@
#!/bin/sh /etc/rc.common
START=90
STOP=10
USE_PROCD=1
PROG=/bin/netopeer2-server
start_service() {
procd_open_instance
procd_set_param command $PROG
procd_set_param respawn
procd_close_instance
}

+ 40
- 0
net/netopeer2/patches/001-remove-sysrepoctl-commands-from-cmake View File

@ -0,0 +1,40 @@
Index: netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/keystored/CMakeLists.txt
===================================================================
--- netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee.orig/keystored/CMakeLists.txt
+++ netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/keystored/CMakeLists.txt
@@ -105,6 +105,7 @@ endif()
install(DIRECTORY DESTINATION ${KEYSTORED_KEYS_DIR}
DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE)
+if(FALSE)
# install all the required modules and enable features
install(CODE "
execute_process(COMMAND ${SYSREPOCTL_EXECUTABLE} -l RESULT_VARIABLE RET OUTPUT_VARIABLE INSTALLED_MODULES ERROR_VARIABLE OUT)
@@ -154,6 +155,7 @@ install(CODE "
message(FATAL_ERROR \" Command sysrepocfg import failed:\\n \${OUT}\")
endif()
endif()")
+endif()
# plugins should be installed into sysrepo plugins dir
install(TARGETS keystored DESTINATION ${SR_PLUGINS_DIR})
Index: netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/server/CMakeLists.txt
===================================================================
--- netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee.orig/server/CMakeLists.txt
+++ netopeer2-c204b59f9c2bb7e63eb907f33c44adbf208295ee/server/CMakeLists.txt
@@ -147,6 +147,7 @@ include_directories(${SYSREPO_INCLUDE_DI
# install binary
install(TARGETS netopeer2-server DESTINATION ${CMAKE_INSTALL_BINDIR})
+if(FALSE)
# only for configuration
if (ENABLE_CONFIGURATION)
# find sysrepoctl
@@ -239,6 +240,7 @@ if (ENABLE_CONFIGURATION)
endif()")
endif()
+endif()
# clean cmake cache
add_custom_target(cleancache

+ 139
- 0
net/sysrepo/Makefile View File

@ -0,0 +1,139 @@
#
# Copyright (C) 2017 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_LICENSE:=ASL-2.0
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
PKG_NAME:=sysrepo
PKG_VERSION:=0.6.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=e4a5705a4c5293ba121048c71899b98243d99edf
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
PKG_SOURCE_URL:=https://github.com/sysrepo/sysrepo.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
CMAKE_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/libsysrepo
SECTION:=util
CATEGORY:=Utilities
URL:=$(PKG_SOURCE_URL)
TITLE:=YANG-based data store library
DEPENDS:=+libyang +libprotobuf-c +libev +libavl
endef
define Package/sysrepod
SECTION:=util
CATEGORY:=Utilities
URL:=$(PKG_SOURCE_URL)
TITLE:=YANG-based data store daemon
DEPENDS:=+libsysrepo
endef
define Package/sysrepoctl
SECTION:=util
CATEGORY:=Utilities
URL:=$(PKG_SOURCE_URL)
TITLE:=sysrepo cli tool
DEPENDS:=+libsysrepo
endef
define Package/sysrepocfg
SECTION:=util
CATEGORY:=Utilities
URL:=$(PKG_SOURCE_URL)
TITLE:=sysrepo configuration tool
DEPENDS:=+libsysrepo
endef
define Package/sysrepo-plugind
SECTION:=util
CATEGORY:=Utilities
URL:=$(PKG_SOURCE_URL)
TITLE:=sysrepo plugin daemon
DEPENDS:=+libsysrepo
endef
define Package/sysrepo/description
Sysrepo is an YANG-based configuration and operational state data store for Unix/Linux applications.
endef
CMAKE_OPTIONS += \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DENABLE_TESTS:BOOL=FALSE \
-DBUILD_EXAMPLES:BOOL=FALSE \
-DCMAKE_DISABLE_FIND_PACKAGE_SWIG=TRUE \
-DGEN_LANGUAGE_BINDINGS:BOOL=FALSE \
-DREPOSITORY_LOC:PATH=/etc/sysrepo \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DENABLE_NACM:BOOL=FALSE
define Package/libsysrepo/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/libsysrepo.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/etc/sysrepo/yang/internal
$(INSTALL_CONF) $(PKG_BUILD_DIR)/yang/sysrepo-module-dependencies.yang $(1)/etc/sysrepo/yang/internal
$(INSTALL_CONF) $(PKG_BUILD_DIR)/yang/sysrepo-notification-store.yang $(1)/etc/sysrepo/yang/internal
$(INSTALL_CONF) $(PKG_BUILD_DIR)/yang/sysrepo-persistent-data.yang $(1)/etc/sysrepo/yang/internal
$(INSTALL_DIR) $(1)/etc/sysrepo/yang
$(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf-acm@2012-02-22.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf-notifications.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/nc-notifications.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/notifications.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/yang/ietf-netconf@2011-06-01.yang $(1)/etc/sysrepo/yang/
$(INSTALL_DIR) $(1)/etc/sysrepo/data/internal
$(INSTALL_DIR) $(1)/etc/sysrepo/data/notifications
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/libsysrepo.default $(1)/etc/uci-defaults/95_libsysrepo
endef
define Package/sysrepod/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/sysrepod $(1)/bin/
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) ./files/sysrepod.init $(1)/etc/init.d/sysrepod
endef
define Package/sysrepoctl/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/sysrepoctl $(1)/bin/
endef
define Package/sysrepocfg/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/sysrepocfg $(1)/bin/
endef
define Package/sysrepo-plugind/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/sysrepo-plugind $(1)/bin/
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) ./files/sysrepo-plugind.init $(1)/etc/init.d/sysrepo-plugind
endef
$(eval $(call BuildPackage,libsysrepo))
$(eval $(call BuildPackage,sysrepod))
$(eval $(call BuildPackage,sysrepoctl))
$(eval $(call BuildPackage,sysrepocfg))
$(eval $(call BuildPackage,sysrepo-plugind))

+ 13
- 0
net/sysrepo/files/libsysrepo.default View File

@ -0,0 +1,13 @@
#!/bin/sh
# Warning, problems can occur if the device restarts in the middle of this uci-default script
if [ -x /bin/sysrepoctl ]; then
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-acm@2012-02-22.yang -p 644
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf-notifications.yang -p 600
sysrepoctl --install --yang=/etc/sysrepo/yang/nc-notifications.yang -p 666
sysrepoctl --install --yang=/etc/sysrepo/yang/notifications.yang -p 666
sysrepoctl --install --yang=/etc/sysrepo/yang/ietf-netconf@2011-06-01.yang -p 600
fi
exit 0

+ 19
- 0
net/sysrepo/files/sysrepo-plugind.init View File

@ -0,0 +1,19 @@
#!/bin/sh /etc/rc.common
START=90
STOP=10
USE_PROCD=1
PROG=/bin/sysrepo-plugind
start_service() {
procd_open_instance
procd_set_param command $PROG
procd_set_param respawn
procd_close_instance
}
stop_service()
{
service_stop ${PROG}
}

+ 19
- 0
net/sysrepo/files/sysrepod.init View File

@ -0,0 +1,19 @@
#!/bin/sh /etc/rc.common
START=70
STOP=10
USE_PROCD=1
PROG=/bin/sysrepod
start_service() {
procd_open_instance
procd_set_param command $PROG
procd_set_param respawn
procd_close_instance
}
stop_service()
{
service_stop ${PROG}
}

+ 14782
- 0
net/sysrepo/patches/001-protobuf-remove-protoc-command-from-cmake-file
File diff suppressed because it is too large
View File


+ 26
- 0
net/sysrepo/patches/002-remove-buildtime-module-install View File

@ -0,0 +1,26 @@
Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/CMakeLists.txt
===================================================================
--- sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf.orig/CMakeLists.txt
+++ sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/CMakeLists.txt
@@ -280,7 +280,7 @@ install (FILES ${INTERNAL_YANGS} DESTINA
# install NACM YANG module
if(ENABLE_NACM)
- INSTALL_YANG("ietf-netconf-acm" "@2012-02-22" "644")
+ # INSTALL_YANG("ietf-netconf-acm" "@2012-02-22" "644")
endif(ENABLE_NACM)
find_package(PkgConfig QUIET)
@@ -304,9 +304,9 @@ if(WITH_SYSTEMD)
FILES_MATCHING PATTERN "*.service")
endif()
-INSTALL_YANG("ietf-netconf-notifications" "" "666")
-INSTALL_YANG("nc-notifications" "" "666")
-INSTALL_YANG("notifications" "" "666")
+# INSTALL_YANG("ietf-netconf-notifications" "" "666")
+# INSTALL_YANG("nc-notifications" "" "666")
+# INSTALL_YANG("notifications" "" "666")
if(GEN_LANGUAGE_BINDINGS)
add_subdirectory(swig)

+ 12
- 0
net/sysrepo/patches/003-missing-time-header View File

@ -0,0 +1,12 @@
Index: sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/inc/sysrepo.h
===================================================================
--- sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf.orig/inc/sysrepo.h
+++ sysrepo-e4a5705a4c5293ba121048c71899b98243d99edf/inc/sysrepo.h
@@ -51,6 +51,7 @@
* @ref xp_page "XPath Addressing" is used for node identification in data-related calls.
*/
+#include <time.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>

Loading…
Cancel
Save