|
#
|
|
# 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_VERSION:=0.7-r1
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_LICENSE:=BSD-3-Clause
|
|
PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=https://codeload.github.com/CESNET/Netopeer2/tar.gz/v$(PKG_VERSION)?
|
|
PKG_HASH:=040013d1e315c62c496b704475665165578c374ffb387cbbff422cf8898d3a12
|
|
|
|
CMAKE_INSTALL:=1
|
|
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_INSTALL:=1
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/cmake.mk
|
|
|
|
define Package/netopeer2-keystored/config
|
|
source "$(SOURCE)/Config_keystored.in"
|
|
endef
|
|
|
|
define Package/netopeer2-server
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
TITLE:=NETCONF server
|
|
URL:=$(PKG_SOURCE_URL)
|
|
DEPENDS:=+libcurl +libpthread +libyang +libnetconf2 +netopeer2-keystored +libsysrepo +sysrepocfg +sysrepoctl +sysrepo
|
|
MENU:=1
|
|
endef
|
|
|
|
define Package/netopeer2-cli
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
TITLE:=Netopeer2 cli tool
|
|
URL:=$(PKG_SOURCE_URL)
|
|
DEPENDS:=+libpthread +libyang +libnetconf2 +libopenssl
|
|
endef
|
|
|
|
define Package/netopeer2-keystored
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
TITLE:=Netopeer2 key store management
|
|
URL:=$(PKG_SOURCE_URL)
|
|
DEPENDS:=+libopenssl +libsysrepo +sysrepo +sysrepocfg +sysrepoctl +SSH_KEYS:openssh-keygen
|
|
MENU:=1
|
|
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 \
|
|
-DENABLE_CONFIGURATION:BOOL=OFF \
|
|
-DMODEL_INSTALL:BOOL=OFF \
|
|
-DSSH_KEY_INSTALL:BOOL=OFF
|
|
|
|
define Package/netopeer2-server/install
|
|
$(INSTALL_DIR) $(1)/bin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/server/netopeer2-server $(1)/bin/
|
|
|
|
$(INSTALL_DIR) $(1)/etc/sysrepo/yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-ssh-server.yang $(1)/etc/sysrepo/yang/ietf-ssh-server@2016-11-02.yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-tls-server.yang $(1)/etc/sysrepo/yang/ietf-tls-server@2016-11-02.yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/iana-crypt-hash.yang $(1)/etc/sysrepo/yang/iana-crypt-hash@2014-08-06.yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-x509-cert-to-name.yang $(1)/etc/sysrepo/yang/ietf-x509-cert-to-name@2014-12-10.yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/ietf-netconf-server@2016-11-02.yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-netconf-monitoring.yang $(1)/etc/sysrepo/yang/ietf-netconf-monitoring@2010-10-04.yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-netconf-with-defaults.yang $(1)/etc/sysrepo/yang/ietf-netconf-with-defaults@2011-06-01.yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-system.yang $(1)/etc/sysrepo/yang/ietf-system@2014-08-06.yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-datastores.yang $(1)/etc/sysrepo/yang/ietf-datastores@2017-08-17.yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-yang-library.yang $(1)/etc/sysrepo/yang/ietf-yang-library@2018-01-17.yang
|
|
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_BIN) ./files/netopeer2-server.default $(1)/etc/uci-defaults/98_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) ./files/stock_config.xml $(1)/usr/share/netopeer2-server
|
|
endef
|
|
|
|
define Package/netopeer2-cli/install
|
|
$(INSTALL_DIR) $(1)/bin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/cli/netopeer2-cli $(1)/bin/
|
|
endef
|
|
|
|
define Package/netopeer2-keystored/install
|
|
$(INSTALL_DIR) $(1)/usr/lib/sysrepo/plugins/
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/keystored/libkeystored.so $(1)/usr/lib/sysrepo/plugins/
|
|
|
|
$(INSTALL_DIR) $(1)/etc/sysrepo/yang
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-keystore.yang $(1)/etc/sysrepo/yang/ietf-keystore@2016-10-31.yang
|
|
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
|
|
$(INSTALL_DIR) $(1)/etc/keystored/keys
|
|
ifeq ($(CONFIG_SSH_KEYS),y)
|
|
$(INSTALL_BIN) ./files/netopeer2-keystored-keygen.default $(1)/etc/uci-defaults/97_netopeer2-keystored
|
|
else
|
|
$(INSTALL_BIN) ./files/netopeer2-keystored.default $(1)/etc/uci-defaults/97_netopeer2-keystored
|
|
#ssh key name is specified in ./files/stock_config.xml file, you will need to provide the ssh keys yourself.
|
|
$(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
|
|
endif
|
|
|
|
$(INSTALL_DIR) $(1)/usr/share/netopeer2-keystored
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/keystored/stock_key_config.xml $(1)/usr/share/netopeer2-keystored
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,netopeer2-server))
|
|
$(eval $(call BuildPackage,netopeer2-cli))
|
|
$(eval $(call BuildPackage,netopeer2-keystored))
|