c0a1cdcbed8847cbdc6be866a214797ea64ece29
[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.3.65
18
19 PKG_SOURCE_PROTO:=git
20 PKG_SOURCE_VERSION:=c204b59f9c2bb7e63eb907f33c44adbf208295ee
21 PKG_MIRROR_HASH:=61a2b3e0ee9a3cf2f73715843f059c79292446ad3643f4eeb85d48d1e185c3b9
22 PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
23 PKG_SOURCE_URL:=https://github.com/CESNET/Netopeer2.git
24 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(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-server
38 SECTION:=util
39 CATEGORY:=Utilities
40 TITLE:=NETCONF server
41 URL:=$(PKG_SOURCE_URL)
42 DEPENDS:=+libpthread +libyang +libnetconf2 +netopeer2-keystored +libsysrepo +sysrepocfg +sysrepoctl +sysrepod
43 endef
44
45 define Package/netopeer2-cli
46 SECTION:=util
47 CATEGORY:=Utilities
48 TITLE:=Netopeer2 cli tool
49 URL:=$(PKG_SOURCE_URL)
50 DEPENDS:=+libpthread +libyang +libnetconf2 +libopenssl
51 endef
52
53 define Package/netopeer2-keystored
54 SECTION:=util
55 CATEGORY:=Utilities
56 TITLE:=Netopeer2 key store management
57 URL:=$(PKG_SOURCE_URL)
58 DEPENDS:=+libopenssl +libsysrepo +sysrepo-plugind +sysrepocfg +sysrepoctl
59 endef
60
61 define Package/netopeer2/description
62 Netopeer2 is a set of tools implementing network configuration tools based on the NETCONF
63 Protocol. This is the second generation of the toolset, originally available as the Netopeer
64 project. Netopeer2 is based on the new generation of the NETCONF and YANG libraries -
65 libyang and libnetconf2. The Netopeer server uses sysrepo as a NETCONF datastore implementation.
66 endef
67
68 CMAKE_OPTIONS += \
69 -DCMAKE_INSTALL_PREFIX:PATH=/usr \
70 -DCMAKE_BUILD_TYPE:STRING=Release \
71 -DKEYSTORED_KEYS_DIR:STRING=/etc/keystored/keys
72
73 define Build/Configure
74 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/server)
75 $(call Build/Configure/Default)
76
77 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/cli)
78 $(call Build/Configure/Default)
79
80 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/keystored)
81 $(call Build/Configure/Default)
82 endef
83
84 define Build/Compile
85 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/server)
86 $(call Build/Compile/Default)
87
88 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/cli)
89 $(call Build/Compile/Default)
90
91 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/keystored)
92 $(call Build/Compile/Default)
93 endef
94
95 define Package/netopeer2-server/install
96 $(INSTALL_DIR) $(1)/bin
97 $(INSTALL_BIN) $(PKG_BUILD_ROOT)/server/netopeer2-server $(1)/bin/
98
99 $(INSTALL_DIR) $(1)/etc/sysrepo/yang
100 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-ssh-server.yang $(1)/etc/sysrepo/yang/
101 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-tls-server.yang $(1)/etc/sysrepo/yang/
102 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/iana-crypt-hash.yang $(1)/etc/sysrepo/yang/
103 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-x509-cert-to-name.yang $(1)/etc/sysrepo/yang/
104 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/
105 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/
106 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-system.yang $(1)/etc/sysrepo/yang/
107
108 $(INSTALL_DIR) $(1)/etc/uci-defaults
109 $(INSTALL_BIN) ./files/netopeer2-server.default $(1)/etc/uci-defaults/99_netopeer2-server
110
111 $(INSTALL_DIR) $(1)/etc/init.d/
112 $(INSTALL_BIN) ./files/netopeer2-server.init $(1)/etc/init.d/netopeer2-server
113
114 $(INSTALL_DIR) $(1)/usr/share/netopeer2-server
115 $(INSTALL_DATA) ./files/stock_config.xml $(1)/usr/share/netopeer2-server
116 endef
117
118 define Package/netopeer2-cli/install
119 $(INSTALL_DIR) $(1)/bin
120 $(INSTALL_BIN) $(PKG_BUILD_ROOT)/cli/netopeer2-cli $(1)/bin/
121 endef
122
123 define Package/netopeer2-keystored/install
124 $(INSTALL_DIR) $(1)/usr/lib/sysrepo/plugins/
125 $(INSTALL_BIN) $(PKG_BUILD_ROOT)/keystored/libkeystored.so $(1)/usr/lib/sysrepo/plugins/
126
127 $(INSTALL_DIR) $(1)/etc/sysrepo/yang
128 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-keystore.yang $(1)/etc/sysrepo/yang
129
130 $(INSTALL_DIR) $(1)/etc/uci-defaults
131 $(INSTALL_BIN) ./files/netopeer2-keystored.default $(1)/etc/uci-defaults/97_netopeer2-keystored
132
133 $(INSTALL_DIR) $(1)/usr/share/netopeer2-keystored
134 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/keystored/stock_key_config.xml $(1)/usr/share/netopeer2-keystored
135
136 $(INSTALL_DIR) $(1)/etc/keystored/keys
137 #$(INSTALL_DATA) ./files/ssh_host_rsa_key.pem $(1)/etc/keystored/keys
138 #$(INSTALL_DATA) ./files/ssh_host_rsa_key.pub.pem $(1)/etc/keystored/keys
139 #ssh key name is specified in stock_key_config.xml file, you will need to provide the ssh keys yourself.
140 endef
141
142 $(eval $(call BuildPackage,netopeer2-server))
143 $(eval $(call BuildPackage,netopeer2-cli))
144 $(eval $(call BuildPackage,netopeer2-keystored))