Merge pull request #4467 from dibdot/travelmate
[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/config
38 source "$(SOURCE)/Config_server.in"
39 endef
40
41 define Package/netopeer2-keystored/config
42 source "$(SOURCE)/Config_keystored.in"
43 endef
44
45 define Package/netopeer2-server
46 SECTION:=util
47 CATEGORY:=Utilities
48 TITLE:=NETCONF server
49 URL:=$(PKG_SOURCE_URL)
50 DEPENDS:=+libpthread +libyang +libnetconf2 +netopeer2-keystored +libsysrepo +sysrepocfg +sysrepoctl +sysrepo +SSH_SERVER:openssh-server
51 MENU:=1
52 endef
53
54 define Package/netopeer2-cli
55 SECTION:=util
56 CATEGORY:=Utilities
57 TITLE:=Netopeer2 cli tool
58 URL:=$(PKG_SOURCE_URL)
59 DEPENDS:=+libpthread +libyang +libnetconf2 +libopenssl
60 endef
61
62 define Package/netopeer2-keystored
63 SECTION:=util
64 CATEGORY:=Utilities
65 TITLE:=Netopeer2 key store management
66 URL:=$(PKG_SOURCE_URL)
67 DEPENDS:=+libopenssl +libsysrepo +sysrepo +sysrepocfg +sysrepoctl +SSH_KEYS:openssh-keygen +SSH_KEYS:openssl-util
68 MENU:=1
69 endef
70
71 define Package/netopeer2/description
72 Netopeer2 is a set of tools implementing network configuration tools based on the NETCONF
73 Protocol. This is the second generation of the toolset, originally available as the Netopeer
74 project. Netopeer2 is based on the new generation of the NETCONF and YANG libraries -
75 libyang and libnetconf2. The Netopeer server uses sysrepo as a NETCONF datastore implementation.
76 endef
77
78 CMAKE_OPTIONS += \
79 -DCMAKE_INSTALL_PREFIX:PATH=/usr \
80 -DCMAKE_BUILD_TYPE:STRING=Release \
81 -DKEYSTORED_KEYS_DIR:STRING=/etc/keystored/keys
82
83 define Build/Configure
84 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/server)
85 $(call Build/Configure/Default)
86
87 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/cli)
88 $(call Build/Configure/Default)
89
90 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/keystored)
91 $(call Build/Configure/Default)
92 endef
93
94 define Build/Compile
95 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/server)
96 $(call Build/Compile/Default)
97
98 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/cli)
99 $(call Build/Compile/Default)
100
101 $(eval PKG_BUILD_DIR:=$(PKG_BUILD_ROOT)/keystored)
102 $(call Build/Compile/Default)
103 endef
104
105 define Package/netopeer2-server/install
106 $(INSTALL_DIR) $(1)/bin
107 $(INSTALL_BIN) $(PKG_BUILD_ROOT)/server/netopeer2-server $(1)/bin/
108
109 $(INSTALL_DIR) $(1)/etc/sysrepo/yang
110 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-ssh-server.yang $(1)/etc/sysrepo/yang/
111 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-tls-server.yang $(1)/etc/sysrepo/yang/
112 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/iana-crypt-hash.yang $(1)/etc/sysrepo/yang/
113 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-x509-cert-to-name.yang $(1)/etc/sysrepo/yang/
114 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/
115 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-netconf-server.yang $(1)/etc/sysrepo/yang/
116 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-system.yang $(1)/etc/sysrepo/yang/
117
118 $(INSTALL_DIR) $(1)/etc/uci-defaults
119 $(INSTALL_BIN) ./files/netopeer2-server.default $(1)/etc/uci-defaults/99_netopeer2-server
120
121 $(INSTALL_DIR) $(1)/etc/init.d/
122 $(INSTALL_BIN) ./files/netopeer2-server.init $(1)/etc/init.d/netopeer2-server
123
124 $(INSTALL_DIR) $(1)/usr/share/netopeer2-server
125 $(INSTALL_DATA) ./files/stock_config.xml $(1)/usr/share/netopeer2-server
126 endef
127
128 define Package/netopeer2-cli/install
129 $(INSTALL_DIR) $(1)/bin
130 $(INSTALL_BIN) $(PKG_BUILD_ROOT)/cli/netopeer2-cli $(1)/bin/
131 endef
132
133 define Package/netopeer2-keystored/install
134 $(INSTALL_DIR) $(1)/usr/lib/sysrepo/plugins/
135 $(INSTALL_BIN) $(PKG_BUILD_ROOT)/keystored/libkeystored.so $(1)/usr/lib/sysrepo/plugins/
136
137 $(INSTALL_DIR) $(1)/etc/sysrepo/yang
138 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/modules/ietf-keystore.yang $(1)/etc/sysrepo/yang
139
140 $(INSTALL_DIR) $(1)/etc/uci-defaults
141
142 $(INSTALL_DIR) $(1)/etc/keystored/keys
143 ifeq ($(CONFIG_SSH_KEYS),y)
144 $(INSTALL_BIN) ./files/netopeer2-keystored-keygen.default $(1)/etc/uci-defaults/97_netopeer2-keystored
145 else
146 $(INSTALL_BIN) ./files/netopeer2-keystored.default $(1)/etc/uci-defaults/97_netopeer2-keystored
147 #ssh key name is specified in ./files/stock_config.xml file, you will need to provide the ssh keys yourself.
148 $(INSTALL_DATA) ./files/ssh_host_rsa_key.pem $(1)/etc/keystored/keys
149 $(INSTALL_DATA) ./files/ssh_host_rsa_key.pub.pem $(1)/etc/keystored/keys
150 endif
151
152 $(INSTALL_DIR) $(1)/usr/share/netopeer2-keystored
153 $(INSTALL_DATA) $(PKG_BUILD_ROOT)/keystored/stock_key_config.xml $(1)/usr/share/netopeer2-keystored
154 endef
155
156 $(eval $(call BuildPackage,netopeer2-server))
157 $(eval $(call BuildPackage,netopeer2-cli))
158 $(eval $(call BuildPackage,netopeer2-keystored))