You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
5.2 KiB

  1. #
  2. # Copyright (C) 2017 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. # Warning by default OpenWrt does not have a root password which is necessery for NETCONF server.
  8. include $(TOPDIR)/rules.mk
  9. PKG_NAME:=Netopeer2
  10. PKG_VERSION:=0.7-r1
  11. PKG_RELEASE:=2
  12. PKG_LICENSE:=BSD-3-Clause
  13. PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
  14. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  15. PKG_SOURCE_URL:=https://codeload.github.com/CESNET/Netopeer2/tar.gz/v$(PKG_VERSION)?
  16. PKG_HASH:=040013d1e315c62c496b704475665165578c374ffb387cbbff422cf8898d3a12
  17. CMAKE_INSTALL:=1
  18. PKG_BUILD_PARALLEL:=1
  19. PKG_INSTALL:=1
  20. include $(INCLUDE_DIR)/package.mk
  21. include $(INCLUDE_DIR)/cmake.mk
  22. define Package/netopeer2-keystored/config
  23. source "$(SOURCE)/Config_keystored.in"
  24. endef
  25. define Package/netopeer2-server
  26. SECTION:=utils
  27. CATEGORY:=Utilities
  28. TITLE:=NETCONF server
  29. URL:=$(PKG_SOURCE_URL)
  30. DEPENDS:=+libcurl +libpthread +libyang +libnetconf2 +netopeer2-keystored +libsysrepo +sysrepocfg +sysrepoctl +sysrepo
  31. MENU:=1
  32. endef
  33. define Package/netopeer2-cli
  34. SECTION:=utils
  35. CATEGORY:=Utilities
  36. TITLE:=Netopeer2 cli tool
  37. URL:=$(PKG_SOURCE_URL)
  38. DEPENDS:=+libpthread +libyang +libnetconf2 +libopenssl
  39. endef
  40. define Package/netopeer2-keystored
  41. SECTION:=utils
  42. CATEGORY:=Utilities
  43. TITLE:=Netopeer2 key store management
  44. URL:=$(PKG_SOURCE_URL)
  45. DEPENDS:=+libopenssl +libsysrepo +sysrepo +sysrepocfg +sysrepoctl +SSH_KEYS:openssh-keygen
  46. MENU:=1
  47. endef
  48. define Package/netopeer2/description
  49. Netopeer2 is a set of tools implementing network configuration tools based on the NETCONF
  50. Protocol. This is the second generation of the toolset, originally available as the Netopeer
  51. project. Netopeer2 is based on the new generation of the NETCONF and YANG libraries -
  52. libyang and libnetconf2. The Netopeer server uses sysrepo as a NETCONF datastore implementation.
  53. endef
  54. CMAKE_OPTIONS += \
  55. -DCMAKE_INSTALL_PREFIX:PATH=/usr \
  56. -DCMAKE_BUILD_TYPE:STRING=Release \
  57. -DKEYSTORED_KEYS_DIR:STRING=/etc/keystored/keys \
  58. -DENABLE_CONFIGURATION:BOOL=OFF \
  59. -DMODEL_INSTALL:BOOL=OFF \
  60. -DSSH_KEY_INSTALL:BOOL=OFF
  61. define Package/netopeer2-server/install
  62. $(INSTALL_DIR) $(1)/bin
  63. $(INSTALL_BIN) $(PKG_BUILD_DIR)/server/netopeer2-server $(1)/bin/
  64. $(INSTALL_DIR) $(1)/etc/sysrepo/yang
  65. $(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-ssh-server.yang $(1)/etc/sysrepo/yang/ietf-ssh-server@2016-11-02.yang
  66. $(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-tls-server.yang $(1)/etc/sysrepo/yang/ietf-tls-server@2016-11-02.yang
  67. $(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/iana-crypt-hash.yang $(1)/etc/sysrepo/yang/iana-crypt-hash@2014-08-06.yang
  68. $(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
  69. $(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/ietf-netconf-server@2016-11-02.yang
  70. $(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-netconf-monitoring.yang $(1)/etc/sysrepo/yang/ietf-netconf-monitoring@2010-10-04.yang
  71. $(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-netconf-with-defaults.yang $(1)/etc/sysrepo/yang/ietf-netconf-with-defaults@2011-06-01.yang
  72. $(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-system.yang $(1)/etc/sysrepo/yang/ietf-system@2014-08-06.yang
  73. $(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-datastores.yang $(1)/etc/sysrepo/yang/ietf-datastores@2017-08-17.yang
  74. $(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-yang-library.yang $(1)/etc/sysrepo/yang/ietf-yang-library@2018-01-17.yang
  75. $(INSTALL_DIR) $(1)/etc/uci-defaults
  76. $(INSTALL_BIN) ./files/netopeer2-server.default $(1)/etc/uci-defaults/98_netopeer2-server
  77. $(INSTALL_DIR) $(1)/etc/init.d/
  78. $(INSTALL_BIN) ./files/netopeer2-server.init $(1)/etc/init.d/netopeer2-server
  79. $(INSTALL_DIR) $(1)/usr/share/netopeer2-server
  80. $(INSTALL_DATA) ./files/stock_config.xml $(1)/usr/share/netopeer2-server
  81. endef
  82. define Package/netopeer2-cli/install
  83. $(INSTALL_DIR) $(1)/bin
  84. $(INSTALL_BIN) $(PKG_BUILD_DIR)/cli/netopeer2-cli $(1)/bin/
  85. endef
  86. define Package/netopeer2-keystored/install
  87. $(INSTALL_DIR) $(1)/usr/lib/sysrepo/plugins/
  88. $(INSTALL_BIN) $(PKG_BUILD_DIR)/keystored/libkeystored.so $(1)/usr/lib/sysrepo/plugins/
  89. $(INSTALL_DIR) $(1)/etc/sysrepo/yang
  90. $(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/ietf-keystore.yang $(1)/etc/sysrepo/yang/ietf-keystore@2016-10-31.yang
  91. $(INSTALL_DIR) $(1)/etc/uci-defaults
  92. $(INSTALL_DIR) $(1)/etc/keystored/keys
  93. ifeq ($(CONFIG_SSH_KEYS),y)
  94. $(INSTALL_BIN) ./files/netopeer2-keystored-keygen.default $(1)/etc/uci-defaults/97_netopeer2-keystored
  95. else
  96. $(INSTALL_BIN) ./files/netopeer2-keystored.default $(1)/etc/uci-defaults/97_netopeer2-keystored
  97. #ssh key name is specified in ./files/stock_config.xml file, you will need to provide the ssh keys yourself.
  98. $(INSTALL_DATA) ./files/ssh_host_rsa_key.pem $(1)/etc/keystored/keys
  99. $(INSTALL_DATA) ./files/ssh_host_rsa_key.pub.pem $(1)/etc/keystored/keys
  100. endif
  101. $(INSTALL_DIR) $(1)/usr/share/netopeer2-keystored
  102. $(INSTALL_DATA) $(PKG_BUILD_DIR)/keystored/stock_key_config.xml $(1)/usr/share/netopeer2-keystored
  103. endef
  104. $(eval $(call BuildPackage,netopeer2-server))
  105. $(eval $(call BuildPackage,netopeer2-cli))
  106. $(eval $(call BuildPackage,netopeer2-keystored))