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