netopeer2: bump to latest version
[feed/packages.git] / net / netopeer2 / Makefile
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
8 # Warning by default OpenWrt does not have a root password which is necessery for NETCONF server.
9
10 include $(TOPDIR)/rules.mk
11
12 PKG_NAME:=netopeer2
13
14 PKG_LICENSE:=BSD-3-Clause
15 PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
16
17 PKG_VERSION:=0.4.3
18
19 PKG_SOURCE_PROTO:=git
20 PKG_SOURCE_VERSION:=e7c821cde14df31a03d23293f84e0aed9cb1a457
21 PKG_MIRROR_HASH:=88a4c06e9cdb81879de7311138acbfe9fe5207db14fbb93c5ba4d6947d616aec
22 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
23 PKG_SOURCE_URL:=https://github.com/CESNET/Netopeer2.git
24 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
25
26 PKG_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
27 PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)
28
29 PKG_BUILD_PARALLEL:=1
30 PKG_INSTALL:=1
31
32 CMAKE_INSTALL:=1
33
34 include $(INCLUDE_DIR)/package.mk
35 include $(INCLUDE_DIR)/cmake.mk
36
37 define Package/netopeer2-keystored/config
38 source "$(SOURCE)/Config_keystored.in"
39 endef
40
41 define Package/netopeer2-server
42 SECTION:=utils
43 CATEGORY:=Utilities
44 TITLE:=NETCONF server
45 URL:=$(PKG_SOURCE_URL)
46 DEPENDS:=+libpthread +libyang +libnetconf2 +netopeer2-keystored +libsysrepo +sysrepocfg +sysrepoctl +sysrepo
47 MENU:=1
48 endef
49
50 define Package/netopeer2-cli
51 SECTION:=utils
52 CATEGORY:=Utilities
53 TITLE:=Netopeer2 cli tool
54 URL:=$(PKG_SOURCE_URL)
55 DEPENDS:=+libpthread +libyang +libnetconf2 +libopenssl
56 endef
57
58 define Package/netopeer2-keystored
59 SECTION:=utils
60 CATEGORY:=Utilities
61 TITLE:=Netopeer2 key store management
62 URL:=$(PKG_SOURCE_URL)
63 DEPENDS:=+libopenssl +libsysrepo +sysrepo +sysrepocfg +sysrepoctl +SSH_KEYS:openssh-keygen +SSH_KEYS:openssl-util
64 MENU:=1
65 endef
66
67 define Package/netopeer2/description
68 Netopeer2 is a set of tools implementing network configuration tools based on the NETCONF
69 Protocol. This is the second generation of the toolset, originally available as the Netopeer
70 project. Netopeer2 is based on the new generation of the NETCONF and YANG libraries -
71 libyang and libnetconf2. The Netopeer server uses sysrepo as a NETCONF datastore implementation.
72 endef
73
74 CMAKE_OPTIONS += \
75 -DCMAKE_INSTALL_PREFIX:PATH=/usr \
76 -DCMAKE_BUILD_TYPE:STRING=Release \
77 -DKEYSTORED_KEYS_DIR:STRING=/etc/keystored/keys
78
79 define Build/Configure
80 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/server)
81 $(call Build/Configure/Default)
82
83 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/cli)
84 $(call Build/Configure/Default)
85
86 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/keystored)
87 $(call Build/Configure/Default)
88 endef
89
90 define Build/Compile
91 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/server)
92 $(call Build/Compile/Default)
93
94 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/cli)
95 $(call Build/Compile/Default)
96
97 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/keystored)
98 $(call Build/Compile/Default)
99 endef
100
101 define Package/netopeer2-server/install
102 $(INSTALL_DIR) $(1)/bin
103 $(INSTALL_BIN) $(PKG_BUILD_ROOT)/server/netopeer2-server $(1)/bin/
104
105 $(INSTALL_DIR) $(1)/etc/sysrepo/yang
106 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-ssh-server.yang $(1)/etc/sysrepo/yang/
107 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-tls-server.yang $(1)/etc/sysrepo/yang/
108 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/iana-crypt-hash.yang $(1)/etc/sysrepo/yang/
109 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-x509-cert-to-name.yang $(1)/etc/sysrepo/yang/
110 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/
111 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/
112 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-system.yang $(1)/etc/sysrepo/yang/
113
114 $(INSTALL_DIR) $(1)/etc/uci-defaults
115 $(INSTALL_BIN) ./files/netopeer2-server.default $(1)/etc/uci-defaults/99_netopeer2-server
116
117 $(INSTALL_DIR) $(1)/etc/init.d/
118 $(INSTALL_BIN) ./files/netopeer2-server.init $(1)/etc/init.d/netopeer2-server
119
120 $(INSTALL_DIR) $(1)/usr/share/netopeer2-server
121 $(INSTALL_DATA) ./files/stock_config.xml $(1)/usr/share/netopeer2-server
122 endef
123
124 define Package/netopeer2-cli/install
125 $(INSTALL_DIR) $(1)/bin
126 $(INSTALL_BIN) $(PKG_BUILD_ROOT)/cli/netopeer2-cli $(1)/bin/
127 endef
128
129 define Package/netopeer2-keystored/install
130 $(INSTALL_DIR) $(1)/usr/lib/sysrepo/plugins/
131 $(INSTALL_BIN) $(PKG_BUILD_ROOT)/keystored/libkeystored.so $(1)/usr/lib/sysrepo/plugins/
132
133 $(INSTALL_DIR) $(1)/etc/sysrepo/yang
134 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-keystore.yang $(1)/etc/sysrepo/yang
135
136 $(INSTALL_DIR) $(1)/etc/uci-defaults
137
138 $(INSTALL_DIR) $(1)/etc/keystored/keys
139 ifeq ($(CONFIG_SSH_KEYS),y)
140 $(INSTALL_BIN) ./files/netopeer2-keystored-keygen.default $(1)/etc/uci-defaults/97_netopeer2-keystored
141 else
142 $(INSTALL_BIN) ./files/netopeer2-keystored.default $(1)/etc/uci-defaults/97_netopeer2-keystored
143 #ssh key name is specified in ./files/stock_config.xml file, you will need to provide the ssh keys yourself.
144 $(INSTALL_DATA) ./files/ssh_host_rsa_key.pem $(1)/etc/keystored/keys
145 $(INSTALL_DATA) ./files/ssh_host_rsa_key.pub.pem $(1)/etc/keystored/keys
146 endif
147
148 $(INSTALL_DIR) $(1)/usr/share/netopeer2-keystored
149 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/keystored/stock_key_config.xml $(1)/usr/share/netopeer2-keystored
150 endef
151
152 $(eval $(call BuildPackage,netopeer2-server))
153 $(eval $(call BuildPackage,netopeer2-cli))
154 $(eval $(call BuildPackage,netopeer2-keystored))