2 # Copyright (C) 2008-2018 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
7 include $(TOPDIR
)/rules.mk
15 include $(INCLUDE_DIR
)/package.mk
17 define Package
/ddns-scripts
/Default
20 SUBMENU
:=IP Addresses and Names
25 define Package
/ddns-scripts
26 $(call Package
/ddns-scripts
/Default
)
27 TITLE
:=Dynamic DNS Client scripts
(with IPv6 support
)
28 DEPENDS
:=+ddns-scripts-services
31 define Package
/ddns-scripts
/description
32 Dynamic DNS Client scripts
(with IPv6 support
)
33 A highly configurable set of scripts for doing dynamic dns updates.
36 - Glue Record support
(require BIND host or KNOT host
)
37 - DNS requests via TCP
38 - Proxy server support
41 Version
: $(PKG_VERSION
)-$(PKG_RELEASE
)
42 Info
: https
://openwrt.org
/docs
/guide-user
/services
/ddns
/client
45 define Package
/ddns-scripts
/conffiles
50 define Package
/ddns-scripts-services
51 $(call Package
/ddns-scripts
/Default
)
52 TITLE
:=Common ddns providers
55 define Package
/ddns-scripts-services
/description
56 Dynamic DNS Client definitions for supported services
60 define Package
/ddns-scripts-cloudflare
61 $(call Package
/ddns-scripts
/Default
)
62 TITLE
:=Extension for cloudflare.com API v4
63 DEPENDS
:=ddns-scripts
+curl
66 define Package
/ddns-scripts-cloudflare
/description
67 Dynamic DNS Client scripts extension for cloudflare.com API v4
(require curl
)
71 define Package
/ddns-scripts-freedns
72 $(call Package
/ddns-scripts
/Default
)
73 TITLE
:=Extension for freedns
.42.pl
74 DEPENDS
:=ddns-scripts
+curl
77 define Package
/ddns-scripts-freedns
/description
78 Dynamic DNS Client scripts extension for
"freedns.42.pl".
82 define Package
/ddns-scripts-godaddy
83 $(call Package
/ddns-scripts
/Default
)
84 TITLE
:=Extension for godaddy.com API v1
85 DEPENDS
:=ddns-scripts
+curl
88 define Package
/ddns-scripts-godaddy
/description
89 Dynamic DNS Client scripts extension for
"godaddy.com API v1".
93 define Package
/ddns-scripts-digitalocean
94 $(call Package
/ddns-scripts
/Default
)
95 TITLE
:=Extention for digitalocean.com API v2
96 DEPENDS
:=ddns-scripts
+curl
99 define Package
/ddns-scripts-digitalocean
/description
100 Dynamic DNS Client scripts extension for
"digitalocean.com API v2".
101 The script directly updates a DNS record using the DO API.
103 "option dns_server" to be set to the server to be used by nsupdate.
104 "option domain" the dns domain to update the record for
(eg. A-record
: home.
<example.com
>)
105 "option username" the dns record name to update
(eg. A-record
: <home
>.example.com
)
106 "option param_opt" the id of the dns record to update
(check using chrome inspector in the DO dns tab
)
107 "option password" the api token generated in the DO panel
111 define Package
/ddns-scripts-dnspod
112 $(call Package
/ddns-scripts
/Default
)
113 TITLE
:=Extension for dnspod.cn API
114 DEPENDS
:=ddns-scripts
+curl
117 define Package
/ddns-scripts-dnspod
/description
118 Dynamic DNS Client scripts extension for dnspod.cn API
(require curl
)
122 define Package
/ddns-scripts-noip
123 $(call Package
/ddns-scripts
/Default
)
124 TITLE
:=Extension for no-ip.com
125 DEPENDS
:=ddns-scripts
128 define Package
/ddns-scripts-noip
/description
129 Dynamic DNS Client scripts extension for
"no-ip.com".
132 define Package
/ddns-scripts-ns1
133 $(call Package
/ddns-scripts
/Default
)
135 DEPENDS
:=ddns-scripts
+curl
138 define Package
/ddns-scripts-ns1
/description
139 Dynamic DNS Client scripts extension for
"ns1.com".
141 "option username" to be a valid zone for ns1.com
142 "option password" to be a valid API key for ns1.com
146 define Package
/ddns-scripts-nsupdate
147 $(call Package
/ddns-scripts
/Default
)
148 TITLE
:=Extension for using bind nsupdate.
149 DEPENDS
:=ddns-scripts
+bind-client
152 define Package
/ddns-scripts-nsupdate
/description
153 Dynamic DNS Client scripts extension for direct updates using bind nsupdate
154 The script directly updates a PowerDNS
(or maybe bind server
) via nsupdate
155 from bind-client package.
157 "option dns_server" to be set to the server to be used by nsupdate.
158 "option username" should be set to the key name and
159 "option password" to the base64 encoded shared secret.
163 define Package
/ddns-scripts-route53
164 $(call Package
/ddns-scripts
/Default
)
165 TITLE
:=Extension for route53 API v1
166 DEPENDS
:=ddns-scripts
+curl
+openssl-util
169 define Package
/ddns-scripts-route53
/description
170 Dynamic DNS Client scripts extension for Amazon AWS
"route53 API v1".
171 Note
: You must also
install ca-certificate or ca-bundle.
173 "option username" to be a valid AWS access key id
174 "option password" to be the matching AWS secret key id
175 "option domain" to contain the hosted zone ID
179 define Package
/ddns-scripts-cnkuai
180 $(call Package
/ddns-scripts
/Default
)
182 DEPENDS
:=ddns-scripts
+curl
+giflib-utils
185 define Package
/ddns-scripts-cnkuai
/description
186 Dynamic DNS Client scripts extension for
"cnkuai.cn".
188 "option username" to be a valid CnKuai control panel id
189 "option password" to be the matching CnKuai control panel password
190 "option domain" to contain the domain
194 define Package
/ddns-scripts-gandi
195 $(call Package
/ddns-scripts
/Default
)
197 DEPENDS
:=ddns-scripts
+curl
200 define Package
/ddns-scripts-gandi
/description
201 Dynamic DNS Client scripts extension for
"gandi.net".
203 "option username" to be a valid subdomain for gandi.net
204 "option password" to be a valid API key for ganid.net
208 define Package
/ddns-scripts-pdns
209 $(call Package
/ddns-scripts
/Default
)
211 DEPENDS
:=ddns-scripts
+curl
214 define Package
/ddns-scripts-pdns
/description
215 Dynamic DNS Client scripts extension for
"PowerDNS" via API.
217 "option param_opt(Optional Parameter)" to be a valid root URL for the PowerDNS webserver
218 "option username" to be a valid subdomain for the PowerDNS domain
219 "option password" to be a valid API key for the PowerDNS webserver
223 define Package
/ddns-scripts-transip
224 $(call Package
/ddns-scripts
/Default
)
225 TITLE
:=Extension for TransIP API
226 DEPENDS
:=ddns-scripts
+curl
+openssl-util
+!BUSYBOX_CONFIG_MKTEMP
:coreutils-mktemp
229 define Package
/ddns-scripts-transip
/description
230 Dynamic DNS Client scripts extension for
"transip.nl".
231 Note
: You must also
install ca-certificate or ca-bundle.
233 "option username" to be a valid username for transip.nl
234 "option password" to be a valid matching private key
235 "option domain" to contain the base domain
236 "option param_enc" to contain the name of the DNS record to update
237 "option param_opt" to contain the TTL of the DNS record to update
241 define Build
/Configure
248 define Package
/ddns-scripts
/install
249 $(INSTALL_DIR
) $(1)/etc
/hotplug.d
/iface
250 $(INSTALL_DATA
) .
/files
/etc
/hotplug.d
/iface
/ddns \
251 $(1)/etc
/hotplug.d
/iface
/95-ddns
253 $(INSTALL_DIR
) $(1)/etc
/init.d
254 $(INSTALL_BIN
) .
/files
/etc
/init.d
/ddns \
257 $(INSTALL_DIR
) $(1)/etc
/config
258 $(INSTALL_CONF
) .
/files
/etc
/config
/ddns \
261 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
262 echo
"$(PKG_VERSION)-$(PKG_RELEASE)" > $(1)/usr
/share
/ddns
/version
264 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
265 $(INSTALL_DATA
) .
/files
/usr
/lib
/ddns
/dynamic_dns_functions.sh \
267 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/dynamic_dns_lucihelper.sh \
269 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/dynamic_dns_updater.sh \
272 $(INSTALL_DIR
) $(1)/usr
/bin
273 $(INSTALL_BIN
) .
/files
/usr
/bin
/ddns.sh \
277 define Package
/ddns-scripts
/postinst
279 if
[ -z
"$${IPKG_INSTROOT}" ]; then
280 /etc
/init.d
/ddns enabled
281 /etc
/init.d
/ddns start
286 define Package
/ddns-scripts
/prerm
288 if
[ -n
"$${IPKG_INSTROOT}" ]; then
289 /etc
/init.d
/ddns stop
290 /etc
/init.d
/ddns disable
296 define Package
/ddns-scripts-services
/install
297 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
298 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/* \
299 $(1)/usr
/share
/ddns
/default
301 # Remove special services
302 rm $(1)/usr
/share
/ddns
/default
/cloudflare.com-v4.json
303 rm $(1)/usr
/share
/ddns
/default
/freedns
.42.pl.json
304 rm $(1)/usr
/share
/ddns
/default
/godaddy.com-v1.json
305 rm $(1)/usr
/share
/ddns
/default
/digitalocean.com-v2.json
306 rm $(1)/usr
/share
/ddns
/default
/dnspod.cn.json
307 rm $(1)/usr
/share
/ddns
/default
/no-ip.com.json
308 rm $(1)/usr
/share
/ddns
/default
/bind-nsupdate.json
309 rm $(1)/usr
/share
/ddns
/default
/route53-v1.json
310 rm $(1)/usr
/share
/ddns
/default
/cnkuai.cn.json
311 rm $(1)/usr
/share
/ddns
/default
/gandi.net.json
312 rm $(1)/usr
/share
/ddns
/default
/pdns.json
313 rm $(1)/usr
/share
/ddns
/default
/transip.nl.json
314 rm $(1)/usr
/share
/ddns
/default
/ns1.com.json
318 define Package
/ddns-scripts-cloudflare
/install
319 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
320 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_cloudflare_com_v4.sh \
323 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
324 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/cloudflare.com-v4.json \
325 $(1)/usr
/share
/ddns
/default
/
328 define Package
/ddns-scripts-cloudflare
/prerm
330 if
[ -z
"$${IPKG_INSTROOT}" ]; then
331 /etc
/init.d
/ddns stop
337 define Package
/ddns-scripts-freedns
/install
338 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
339 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_freedns_42_pl.sh \
342 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
343 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/freedns
.42.pl.json \
344 $(1)/usr
/share
/ddns
/default
347 define Package
/ddns-scripts-freedns
/prerm
349 if
[ -z
"$${IPKG_INSTROOT}" ]; then
350 /etc
/init.d
/ddns stop
356 define Package
/ddns-scripts-godaddy
/install
357 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
358 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_godaddy_com_v1.sh \
361 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
362 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/godaddy.com-v1.json \
363 $(1)/usr
/share
/ddns
/default
366 define Package
/ddns-scripts-godaddy
/prerm
368 if
[ -z
"$${IPKG_INSTROOT}" ]; then
369 /etc
/init.d
/ddns stop
375 define Package
/ddns-scripts-digitalocean
/install
376 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
377 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_digitalocean_com_v2.sh \
380 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
381 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/digitalocean.com-v2.json \
382 $(1)/usr
/share
/ddns
/default
385 define Package
/ddns-scripts-digitalocean
/prerm
387 if
[ -z
"$${IPKG_INSTROOT}" ]; then
388 /etc
/init.d
/ddns stop
394 define Package
/ddns-scripts-dnspod
/install
395 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
396 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_dnspod_cn.sh \
399 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
400 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/dnspod.cn.json \
401 $(1)/usr
/share
/ddns
/default
/
404 define Package
/ddns-scripts-dnspod
/prerm
406 if
[ -z
"$${IPKG_INSTROOT}" ]; then
407 /etc
/init.d
/ddns stop
413 define Package
/ddns-scripts-noip
/install
414 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
415 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_no-ip_com.sh \
418 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
419 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/no-ip.com.json \
420 $(1)/usr
/share
/ddns
/default
423 define Package
/ddns-scripts-noip
/prerm
425 if
[ -z
"$${IPKG_INSTROOT}" ]; then
426 /etc
/init.d
/ddns stop
432 define Package
/ddns-scripts-ns1
/install
433 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
434 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_ns1_com.sh \
437 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
438 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/ns1.com.json \
439 $(1)/usr
/share
/ddns
/default
442 define Package
/ddns-scripts-ns1
/prerm
444 if
[ -z
"$${IPKG_INSTROOT}" ]; then
445 /etc
/init.d
/ddns stop
451 define Package
/ddns-scripts-nsupdate
/install
452 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
453 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_nsupdate.sh \
456 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
457 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/bind-nsupdate.json \
458 $(1)/usr
/share
/ddns
/default
461 define Package
/ddns-scripts-nsupdate
/prerm
463 if
[ -z
"$${IPKG_INSTROOT}" ]; then
464 /etc
/init.d
/ddns stop
470 define Package
/ddns-scripts-route53
/install
471 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
472 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_route53_v1.sh \
475 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
476 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/route53-v1.json \
477 $(1)/usr
/share
/ddns
/default
480 define Package
/ddns-scripts-route53
/prerm
482 if
[ -z
"$${IPKG_INSTROOT}" ]; then
483 /etc
/init.d
/ddns stop
489 define Package
/ddns-scripts-cnkuai
/install
490 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
491 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_cnkuai_cn.sh \
494 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
495 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/cnkuai.cn.json \
496 $(1)/usr
/share
/ddns
/default
499 define Package
/ddns-scripts-cnkuai
/prerm
501 if
[ -z
"$${IPKG_INSTROOT}" ]; then
502 /etc
/init.d
/ddns stop
508 define Package
/ddns-scripts-gandi
/install
509 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
510 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_gandi_net.sh \
513 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
514 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/gandi.net.json \
515 $(1)/usr
/share
/ddns
/default
518 define Package
/ddns-scripts-gandi
/prerm
520 if
[ -z
"$${IPKG_INSTROOT}" ]; then
521 /etc
/init.d
/ddns stop
527 define Package
/ddns-scripts-pdns
/install
528 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
529 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_pdns.sh \
532 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
533 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/pdns.json \
534 $(1)/usr
/share
/ddns
/default
537 define Package
/ddns-scripts-pdns
/prerm
539 if
[ -z
"$${IPKG_INSTROOT}" ]; then
540 /etc
/init.d
/ddns stop
546 define Package
/ddns-scripts-transip
/install
547 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
548 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_transip_nl.sh \
551 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
552 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/transip.nl.json \
553 $(1)/usr
/share
/ddns
/default
556 define Package
/ddns-scripts-transip
/prerm
558 if
[ -z
"$${IPKG_INSTROOT}" ]; then
559 /etc
/init.d
/ddns stop
565 $(eval
$(call BuildPackage
,ddns-scripts
))
566 $(eval
$(call BuildPackage
,ddns-scripts-services
))
567 $(eval
$(call BuildPackage
,ddns-scripts-cloudflare
))
568 $(eval
$(call BuildPackage
,ddns-scripts-freedns
))
569 $(eval
$(call BuildPackage
,ddns-scripts-godaddy
))
570 $(eval
$(call BuildPackage
,ddns-scripts-digitalocean
))
571 $(eval
$(call BuildPackage
,ddns-scripts-dnspod
))
572 $(eval
$(call BuildPackage
,ddns-scripts-noip
))
573 $(eval
$(call BuildPackage
,ddns-scripts-nsupdate
))
574 $(eval
$(call BuildPackage
,ddns-scripts-route53
))
575 $(eval
$(call BuildPackage
,ddns-scripts-cnkuai
))
576 $(eval
$(call BuildPackage
,ddns-scripts-gandi
))
577 $(eval
$(call BuildPackage
,ddns-scripts-pdns
))
578 $(eval
$(call BuildPackage
,ddns-scripts-transip
))
579 $(eval
$(call BuildPackage
,ddns-scripts-ns1
))