ddns-scripts: update PKG_RELEASE in Makefile
[feed/packages.git] / net / ddns-scripts / Makefile
1 #
2 # Copyright (C) 2008-2017 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 #
6
7 include $(TOPDIR)/rules.mk
8
9 PKG_NAME:=ddns-scripts
10 # Version == major.minor.patch
11 # increase on new functionality (minor) or patches (patch)
12 PKG_VERSION:=2.7.6
13 # Release == build
14 # increase on changes of services files or tld_names.dat
15 PKG_RELEASE:=17
16
17 PKG_LICENSE:=GPL-2.0
18 PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
19
20 include $(INCLUDE_DIR)/package.mk
21
22 # no default dependencies
23 PKG_DEFAULT_DEPENDS=
24
25 define Package/ddns-scripts/Default
26 SECTION:=net
27 CATEGORY:=Network
28 SUBMENU:=IP Addresses and Names
29 PKGARCH:=all
30 endef
31
32 ###### *************************************************************************
33 define Package/ddns-scripts
34 $(call Package/ddns-scripts/Default)
35 TITLE:=Dynamic DNS Client scripts (with IPv6 support)
36 endef
37 # shown in LuCI package description
38 define Package/ddns-scripts/description
39 Dynamic DNS Client scripts (with IPv6 support) - Info: http://wiki.openwrt.org/doc/howto/ddns.client
40 endef
41 # shown in menuconfig <Help>
42 define Package/ddns-scripts/config
43 help
44 A highly configurable set of scripts for doing dynamic dns updates.
45 - IPv6 support
46 - DNS server support
47 - Glue Record support (require BIND host or KNOT host)
48 - DNS requests via TCP
49 - Proxy server support
50 - log file support
51 - support to run once
52 Version: $(PKG_VERSION)-$(PKG_RELEASE)
53 Info : http://wiki.openwrt.org/doc/howto/ddns.client
54 endef
55
56 ###### *************************************************************************
57 define Package/ddns-scripts_cloudflare
58 $(call Package/ddns-scripts/Default)
59 TITLE:=CloudFlare.com API v1 (deprecated)
60 DEPENDS:=ddns-scripts
61 endef
62 define Package/ddns-scripts_cloudflare/description
63 Dynamic DNS Client scripts extension for CloudFlare.com API-v1 (deprecated)
64 endef
65
66 ###### *************************************************************************
67 define Package/ddns-scripts_cloudflare.com-v4
68 $(call Package/ddns-scripts/Default)
69 TITLE:=CloudFlare.com API v4 (require cURL)
70 DEPENDS:=ddns-scripts +curl
71 endef
72 define Package/ddns-scripts_cloudflare.com-v4/description
73 Dynamic DNS Client scripts extension for CloudFlare.com API-v4 (require/install cURL)
74 endef
75
76 ###### *************************************************************************
77 define Package/ddns-scripts_godaddy.com-v1
78 $(call Package/ddns-scripts/Default)
79 TITLE:=GoDaddy.com (require cURL)
80 DEPENDS:=ddns-scripts +curl
81 endef
82 define Package/ddns-scripts_godaddy.com-v1/description
83 Dynamic DNS Client scripts extension for GoDaddy.com (require/install cURL)
84 endef
85
86 ###### *************************************************************************
87 define Package/ddns-scripts_no-ip_com
88 $(call Package/ddns-scripts/Default)
89 TITLE:=DDNS extension for No-IP.com
90 DEPENDS:=ddns-scripts
91 endef
92 define Package/ddns-scripts_no-ip_com/description
93 Dynamic DNS Client scripts extension for No-IP.com
94 endef
95
96 ###### *************************************************************************
97 define Package/ddns-scripts_nsupdate
98 $(call Package/ddns-scripts/Default)
99 TITLE:=DDNS extension using Bind nsupdate
100 DEPENDS:=ddns-scripts +bind-client
101 endef
102 define Package/ddns-scripts_nsupdate/description
103 Dynamic DNS Client scripts extension for direct updates using Bind nsupdate
104 endef
105 define Package/ddns-scripts_nsupdate/config
106 help
107 The script directly updates a PowerDNS (or maybe bind server) via nsupdate
108 from bind-client package. It requires
109 "option dns_server" to be set to the server to be used by nsupdate.
110 "option username" should be set to the key name and
111 "option password" to the base64 encoded shared secret.
112
113 endef
114
115 ###### *************************************************************************
116 define Build/Configure
117 endef
118 define Build/Compile
119 $(CP) ./files $(PKG_BUILD_DIR)
120 # ensure that VERSION inside dynamic_dns_functions.sh reflect PKG_VERSION of Makefile
121 $(SED) '/^VERSION=*/s/.*/VERSION="$(PKG_VERSION)-$(PKG_RELEASE)"/' $(PKG_BUILD_DIR)/files/dynamic_dns_functions.sh
122 # remove comments, white spaces and empty lines
123 for FILE in `find $(PKG_BUILD_DIR)/files -type f`; do \
124 $(SED) 's/^[[:space:]]*//' \
125 -e '/^#[[:space:]]\|^#$$$$/d' \
126 -e 's/[[:space:]]#[[:space:]].*$$$$//' \
127 -e 's/[[:space:]]*$$$$//' \
128 -e '/^\/\/[[:space:]]/d' \
129 -e '/^[[:space:]]*$$$$/d' $$$$FILE; \
130 done
131 # compress public_suffix_list.dat
132 gzip -f9 $(PKG_BUILD_DIR)/files/public_suffix_list.dat
133 endef
134
135 define Package/ddns-scripts/conffiles
136 /etc/config/ddns
137 endef
138
139 ###### *************************************************************************
140 define Package/ddns-scripts/preinst
141 #!/bin/sh
142 # if NOT run buildroot then stop service
143 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
144 exit 0 # suppress errors
145 endef
146 define Package/ddns-scripts/install
147 $(INSTALL_DIR) $(1)/etc/uci-defaults
148 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns
149 $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
150 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.hotplug $(1)/etc/hotplug.d/iface/95-ddns
151 $(INSTALL_DIR) $(1)/etc/init.d
152 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.init $(1)/etc/init.d/ddns
153 $(INSTALL_DIR) $(1)/etc/config
154 $(INSTALL_CONF) $(PKG_BUILD_DIR)/files/ddns.config $(1)/etc/config/ddns
155
156 $(INSTALL_DIR) $(1)/etc/ddns
157 $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/services* $(1)/etc/ddns
158
159 $(INSTALL_DIR) $(1)/usr/lib/ddns
160 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/dynamic_dns_*.sh $(1)/usr/lib/ddns
161 endef
162 define Package/ddns-scripts/postinst
163 #!/bin/sh
164 # if NOT run buildroot and PKG_UPGRADE then (re)start service if enabled
165 [ -z "$${IPKG_INSTROOT}" -a "$${PKG_UPGRADE}" = "1" ] && {
166 [ -x /etc/uci-defaults/ddns ] && \
167 /etc/uci-defaults/ddns && \
168 rm -f /etc/uci-defaults/ddns >/dev/null 2>&1
169 /etc/init.d/ddns enabled && \
170 /etc/init.d/ddns start >/dev/null 2>&1
171 }
172 exit 0 # suppress errors
173 endef
174 define Package/ddns-scripts/prerm
175 #!/bin/sh
176 # if run within buildroot exit
177 [ -n "$${IPKG_INSTROOT}" ] && exit 0
178 # stop running scripts
179 /etc/init.d/ddns stop
180 /etc/init.d/ddns disable
181 # clear LuCI indexcache
182 rm -f /tmp/luci-indexcache >/dev/null 2>&1
183 exit 0 # suppress errors
184 endef
185
186 ###### *************************************************************************
187 define Package/ddns-scripts_cloudflare/preinst
188 #!/bin/sh
189 # if NOT run buildroot then stop service
190 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
191 exit 0 # suppress errors
192 endef
193 define Package/ddns-scripts_cloudflare/install
194 $(INSTALL_DIR) $(1)/etc/uci-defaults
195 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_cloudflare
196 $(INSTALL_DIR) $(1)/usr/share
197 $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/public_suffix_list.dat.gz $(1)/usr/share
198 $(INSTALL_DIR) $(1)/usr/lib/ddns
199 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_cloudflare_com_v1.sh $(1)/usr/lib/ddns
200 endef
201 define Package/ddns-scripts_cloudflare/postinst
202 #!/bin/sh
203 # remove old services file entries
204 /bin/sed -i '/cloudflare\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
205 /bin/sed -i '/cloudflare\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
206 # and create new
207 printf "%s\\t%s\\n" '"cloudflare.com-v1"' '"update_cloudflare_com_v1.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
208 printf "%s\\t%s\\n" '"cloudflare.com-v1"' '"update_cloudflare_com_v1.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
209 # on real system restart service if enabled
210 [ -z "$${IPKG_INSTROOT}" ] && {
211 [ -x /etc/uci-defaults/ddns_cloudflare ] && \
212 /etc/uci-defaults/ddns_cloudflare && \
213 rm -f /etc/uci-defaults/ddns_cloudflare >/dev/null 2>&1
214 /etc/init.d/ddns enabled && \
215 /etc/init.d/ddns start >/dev/null 2>&1
216 }
217 exit 0 # suppress errors
218 endef
219 define Package/ddns-scripts_cloudflare/prerm
220 #!/bin/sh
221 # if NOT run buildroot then stop service
222 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
223 # remove services file entries
224 /bin/sed -i '/cloudflare\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
225 /bin/sed -i '/cloudflare\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
226 exit 0 # suppress errors
227 endef
228
229 ###### *************************************************************************
230 define Package/ddns-scripts_cloudflare.com-v4/preinst
231 #!/bin/sh
232 # if NOT run buildroot then stop service
233 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
234 exit 0 # suppress errors
235 endef
236 define Package/ddns-scripts_cloudflare.com-v4/install
237 $(INSTALL_DIR) $(1)/etc/uci-defaults
238 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_cloudflare.com-v4
239 $(INSTALL_DIR) $(1)/usr/lib/ddns
240 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_cloudflare_com_v4.sh $(1)/usr/lib/ddns
241 endef
242 define Package/ddns-scripts_cloudflare.com-v4/postinst
243 #!/bin/sh
244 # remove old services file entries
245 /bin/sed -i '/cloudflare\.com-v4/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
246 /bin/sed -i '/cloudflare\.com-v4/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
247 # and create new
248 printf "%s\\t%s\\n" '"cloudflare.com-v4"' '"update_cloudflare_com_v4.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
249 printf "%s\\t%s\\n" '"cloudflare.com-v4"' '"update_cloudflare_com_v4.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
250 # on real system restart service if enabled
251 [ -z "$${IPKG_INSTROOT}" ] && {
252 [ -x /etc/uci-defaults/ddns_cloudflare.com-v4 ] && \
253 /etc/uci-defaults/ddns_cloudflare.com-v4 && \
254 rm -f /etc/uci-defaults/ddns_cloudflare.com-v4 >/dev/null 2>&1
255 /etc/init.d/ddns enabled && \
256 /etc/init.d/ddns start >/dev/null 2>&1
257 }
258 exit 0 # suppress errors
259 endef
260 define Package/ddns-scripts_cloudflare.com-v4/prerm
261 #!/bin/sh
262 # if NOT run buildroot then stop service
263 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
264 # remove services file entries
265 /bin/sed -i '/cloudflare\.com-v4/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
266 /bin/sed -i '/cloudflare\.com-v4/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
267 exit 0 # suppress errors
268 endef
269
270 ###### *************************************************************************
271 define Package/ddns-scripts_godaddy.com-v1/preinst
272 #!/bin/sh
273 # if NOT run buildroot then stop service
274 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
275 exit 0 # suppress errors
276 endef
277 define Package/ddns-scripts_godaddy.com-v1/install
278 $(INSTALL_DIR) $(1)/etc/uci-defaults
279 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_godaddy.com-v1
280 $(INSTALL_DIR) $(1)/usr/lib/ddns
281 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_godaddy_com_v1.sh $(1)/usr/lib/ddns
282 endef
283 define Package/ddns-scripts_godaddy.com-v1/postinst
284 #!/bin/sh
285 # remove old services file entries
286 /bin/sed -i '/godaddy\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
287 /bin/sed -i '/godaddy\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
288 # and create new
289 printf "%s\\t%s\\n" '"godaddy.com-v1"' '"update_godaddy_com_v1.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
290 printf "%s\\t%s\\n" '"godaddy.com-v1"' '"update_godaddy_com_v1.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
291 # on real system restart service if enabled
292 [ -z "$${IPKG_INSTROOT}" ] && {
293 [ -x /etc/uci-defaults/ddns_godaddy.com-v1 ] && \
294 /etc/uci-defaults/ddns_godaddy.com-v1 && \
295 rm -f /etc/uci-defaults/ddns_godaddy.com-v1 >/dev/null 2>&1
296 /etc/init.d/ddns enabled \
297 && /etc/init.d/ddns start >/dev/null 2>&1
298 }
299 exit 0 # suppress errors
300 endef
301 define Package/ddns-scripts_godaddy.com-v1/prerm
302 #!/bin/sh
303 # if NOT run buildroot then stop service
304 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
305 # remove services file entries
306 /bin/sed -i '/godaddy\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
307 /bin/sed -i '/godaddy\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
308 exit 0 # suppress errors
309 endef
310
311 ###### *************************************************************************
312 define Package/ddns-scripts_no-ip_com/preinst
313 #!/bin/sh
314 # if NOT run buildroot then stop service
315 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
316 exit 0 # suppress errors
317 endef
318 define Package/ddns-scripts_no-ip_com/install
319 $(INSTALL_DIR) $(1)/etc/uci-defaults
320 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_no-ip_com
321 $(INSTALL_DIR) $(1)/usr/lib/ddns
322 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_no-ip_com.sh $(1)/usr/lib/ddns
323 endef
324 define Package/ddns-scripts_no-ip_com/postinst
325 #!/bin/sh
326 # remove old services file entries
327 /bin/sed -i '/no-ip\.com/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
328 # and create new
329 printf "%s\\t%s\\n" '"no-ip.com"' '"update_no-ip_com.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
330 # on real system restart service if enabled
331 [ -z "$${IPKG_INSTROOT}" ] && {
332 [ -x /etc/uci-defaults/ddns_no-ip_com ] && \
333 /etc/uci-defaults/ddns_no-ip_com && \
334 rm -f /etc/uci-defaults/ddns_no-ip_com >/dev/null 2>&1
335 /etc/init.d/ddns enabled && \
336 /etc/init.d/ddns start >/dev/null 2>&1
337 }
338 exit 0 # suppress errors
339 endef
340 define Package/ddns-scripts_no-ip_com/prerm
341 #!/bin/sh
342 # if NOT run buildroot then stop service
343 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
344 # remove services file entries
345 /bin/sed -i '/no-ip\.com/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
346 exit 0 # suppress errors
347 endef
348
349 ###### *************************************************************************
350 define Package/ddns-scripts_nsupdate/preinst
351 #!/bin/sh
352 # if NOT run buildroot then stop service
353 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
354 exit 0 # suppress errors
355 endef
356 define Package/ddns-scripts_nsupdate/install
357 $(INSTALL_DIR) $(1)/etc/uci-defaults
358 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_nsupdate
359 $(INSTALL_DIR) $(1)/usr/lib/ddns
360 $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_nsupdate.sh $(1)/usr/lib/ddns
361 endef
362 define Package/ddns-scripts_nsupdate/postinst
363 #!/bin/sh
364 # remove old services file entries
365 /bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
366 /bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
367 # and create new
368 printf "%s\\t%s\\n" '"bind-nsupdate"' '"update_nsupdate.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
369 printf "%s\\t%s\\n" '"bind-nsupdate"' '"update_nsupdate.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
370 # on real system restart service if enabled
371 [ -z "$${IPKG_INSTROOT}" ] && {
372 [ -x /etc/uci-defaults/ddns_nsupdate ] && \
373 /etc/uci-defaults/ddns_nsupdate && \
374 rm -f /etc/uci-defaults/ddns_nsupdate >/dev/null 2>&1
375 /etc/init.d/ddns enabled && \
376 /etc/init.d/ddns start >/dev/null 2>&1
377 }
378 exit 0 # suppress errors
379 endef
380 define Package/ddns-scripts_nsupdate/prerm
381 #!/bin/sh
382 # if NOT run buildroot then stop service
383 [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
384 # remove services file entries
385 /bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
386 /bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
387 exit 0 # suppress errors
388 endef
389
390 ###### *************************************************************************
391 $(eval $(call BuildPackage,ddns-scripts))
392 $(eval $(call BuildPackage,ddns-scripts_cloudflare))
393 $(eval $(call BuildPackage,ddns-scripts_cloudflare.com-v4))
394 $(eval $(call BuildPackage,ddns-scripts_godaddy.com-v1))
395 $(eval $(call BuildPackage,ddns-scripts_no-ip_com))
396 $(eval $(call BuildPackage,ddns-scripts_nsupdate))