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
53 PROVIDES
:=ddns-scripts_service
56 define Package
/ddns-scripts-services
/description
57 Dynamic DNS Client definitions for supported services
61 define Package
/ddns-scripts-cloudflare
62 $(call Package
/ddns-scripts
/Default
)
63 TITLE
:=Extension for cloudflare.com API v4
64 DEPENDS
:=ddns-scripts
+curl
65 PROVIDES
:=ddns-scripts_cloudflare.com-v4
68 define Package
/ddns-scripts-cloudflare
/description
69 Dynamic DNS Client scripts extension for cloudflare.com API v4
(require curl
)
73 define Package
/ddns-scripts-freedns
74 $(call Package
/ddns-scripts
/Default
)
75 TITLE
:=Extension for freedns
.42.pl
76 DEPENDS
:=ddns-scripts
+curl
77 PROVIDES
:=ddns-scripts_freedns_42_pl
80 define Package
/ddns-scripts-freedns
/description
81 Dynamic DNS Client scripts extension for
"freedns.42.pl".
85 define Package
/ddns-scripts-godaddy
86 $(call Package
/ddns-scripts
/Default
)
87 TITLE
:=Extension for godaddy.com API v1
88 DEPENDS
:=ddns-scripts
+curl
89 PROVIDES
:=ddns-scripts_godaddy.com-v1
92 define Package
/ddns-scripts-godaddy
/description
93 Dynamic DNS Client scripts extension for
"godaddy.com API v1".
97 define Package
/ddns-scripts-digitalocean
98 $(call Package
/ddns-scripts
/Default
)
99 TITLE
:=Extention for digitalocean.com API v2
100 DEPENDS
:=ddns-scripts
+curl
101 PROVIDES
:=ddns-scripts_digitalocean.com-v2
104 define Package
/ddns-scripts-digitalocean
/description
105 Dynamic DNS Client scripts extension for
"digitalocean.com API v2".
106 The script directly updates a DNS record using the DO API.
108 "option dns_server" to be set to the server to be used by nsupdate.
109 "option domain" the dns domain to update the record for
(eg. A-record
: home.
<example.com
>)
110 "option username" the dns record name to update
(eg. A-record
: <home
>.example.com
)
111 "option param_opt" the id of the dns record to update
(check using chrome inspector in the DO dns tab
)
112 "option password" the api token generated in the DO panel
116 define Package
/ddns-scripts-dnspod
117 $(call Package
/ddns-scripts
/Default
)
118 TITLE
:=Extension for dnspod.cn API
119 DEPENDS
:=ddns-scripts
+curl
122 define Package
/ddns-scripts-dnspod
/description
123 Dynamic DNS Client scripts extension for dnspod.cn API
(require curl
)
127 define Package
/ddns-scripts-noip
128 $(call Package
/ddns-scripts
/Default
)
129 TITLE
:=Extension for no-ip.com
130 DEPENDS
:=ddns-scripts
131 PROVIDES
:=ddns-scripts_no-ip_com
134 define Package
/ddns-scripts-noip
/description
135 Dynamic DNS Client scripts extension for
"no-ip.com".
138 define Package
/ddns-scripts-ns1
139 $(call Package
/ddns-scripts
/Default
)
141 DEPENDS
:=ddns-scripts
+curl
144 define Package
/ddns-scripts-ns1
/description
145 Dynamic DNS Client scripts extension for
"ns1.com".
147 "option username" to be a valid zone for ns1.com
148 "option password" to be a valid API key for ns1.com
152 define Package
/ddns-scripts-nsupdate
153 $(call Package
/ddns-scripts
/Default
)
154 TITLE
:=Extension for using bind nsupdate.
155 DEPENDS
:=ddns-scripts
+bind-client
156 PROVIDES
:=ddns-scripts_nsupdate
159 define Package
/ddns-scripts-nsupdate
/description
160 Dynamic DNS Client scripts extension for direct updates using bind nsupdate
161 The script directly updates a PowerDNS
(or maybe bind server
) via nsupdate
162 from bind-client package.
164 "option dns_server" to be set to the server to be used by nsupdate.
165 "option username" should be set to the key name and
166 "option password" to the base64 encoded shared secret.
170 define Package
/ddns-scripts-route53
171 $(call Package
/ddns-scripts
/Default
)
172 TITLE
:=Extension for route53 API v1
173 DEPENDS
:=ddns-scripts
+curl
+openssl-util
174 PROVIDES
:=ddns-scripts_route53-v1
177 define Package
/ddns-scripts-route53
/description
178 Dynamic DNS Client scripts extension for Amazon AWS
"route53 API v1".
179 Note
: You must also
install ca-certificate or ca-bundle.
181 "option username" to be a valid AWS access key id
182 "option password" to be the matching AWS secret key id
183 "option domain" to contain the hosted zone ID
187 define Package
/ddns-scripts-cnkuai
188 $(call Package
/ddns-scripts
/Default
)
190 DEPENDS
:=ddns-scripts
+curl
+giflib-utils
191 PROVIDES
:=ddns-scripts_cnkuai_cn
194 define Package
/ddns-scripts-cnkuai
/description
195 Dynamic DNS Client scripts extension for
"cnkuai.cn".
197 "option username" to be a valid CnKuai control panel id
198 "option password" to be the matching CnKuai control panel password
199 "option domain" to contain the domain
203 define Package
/ddns-scripts-gandi
204 $(call Package
/ddns-scripts
/Default
)
206 DEPENDS
:=ddns-scripts
+curl
209 define Package
/ddns-scripts-gandi
/description
210 Dynamic DNS Client scripts extension for
"gandi.net".
212 "option username" to be a valid subdomain for gandi.net
213 "option password" to be a valid API key for gandi.net
217 define Package
/ddns-scripts-pdns
218 $(call Package
/ddns-scripts
/Default
)
220 DEPENDS
:=ddns-scripts
+curl
223 define Package
/ddns-scripts-pdns
/description
224 Dynamic DNS Client scripts extension for
"PowerDNS" via API.
226 "option param_opt(Optional Parameter)" to be a valid root URL for the PowerDNS webserver
227 "option username" to be a valid subdomain for the PowerDNS domain
228 "option password" to be a valid API key for the PowerDNS webserver
232 define Package
/ddns-scripts-transip
233 $(call Package
/ddns-scripts
/Default
)
234 TITLE
:=Extension for TransIP API
235 DEPENDS
:=ddns-scripts
+curl
+openssl-util
+!BUSYBOX_CONFIG_MKTEMP
:coreutils-mktemp
238 define Package
/ddns-scripts-transip
/description
239 Dynamic DNS Client scripts extension for
"transip.nl".
240 Note
: You must also
install ca-certificate or ca-bundle.
242 "option username" to be a valid username for transip.nl
243 "option password" to be a valid matching private key
244 "option domain" to contain the base domain
245 "option param_enc" to contain the name of the DNS record to update
246 "option param_opt" to contain the TTL of the DNS record to update
249 define Package
/ddns-scripts-one
250 $(call Package
/ddns-scripts
/Default
)
251 TITLE
:=Extension for one.com Control Panel
252 DEPENDS
:=ddns-scripts
+curl
255 define Package
/ddns-scrtips-one
/description
256 Dynamic DNS Client scripts extension for
"one.com".
258 "option username" to be a valid Email for one.com Control Panel
259 "option password" to be the matching one.com Control Panel password
260 "option domain" to contain the domain
/ subdomain
264 define Build
/Configure
271 define Package
/ddns-scripts
/install
272 $(INSTALL_DIR
) $(1)/etc
/hotplug.d
/iface
273 $(INSTALL_DATA
) .
/files
/etc
/hotplug.d
/iface
/ddns \
274 $(1)/etc
/hotplug.d
/iface
/95-ddns
276 $(INSTALL_DIR
) $(1)/etc
/init.d
277 $(INSTALL_BIN
) .
/files
/etc
/init.d
/ddns \
280 $(INSTALL_DIR
) $(1)/etc
/config
281 $(INSTALL_CONF
) .
/files
/etc
/config
/ddns \
284 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
285 echo
"$(PKG_VERSION)-$(PKG_RELEASE)" > $(1)/usr
/share
/ddns
/version
287 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
288 $(INSTALL_DATA
) .
/files
/usr
/lib
/ddns
/dynamic_dns_functions.sh \
290 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/dynamic_dns_lucihelper.sh \
292 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/dynamic_dns_updater.sh \
295 $(INSTALL_DIR
) $(1)/usr
/bin
296 $(INSTALL_BIN
) .
/files
/usr
/bin
/ddns.sh \
300 define Package
/ddns-scripts
/postinst
302 if
[ -z
"$${IPKG_INSTROOT}" ]; then
303 /etc
/init.d
/ddns enabled
304 /etc
/init.d
/ddns start
309 define Package
/ddns-scripts
/prerm
311 if
[ -n
"$${IPKG_INSTROOT}" ]; then
312 /etc
/init.d
/ddns stop
313 /etc
/init.d
/ddns disable
319 define Package
/ddns-scripts-services
/install
320 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
321 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/* \
322 $(1)/usr
/share
/ddns
/default
324 # Remove special services
325 rm $(1)/usr
/share
/ddns
/default
/cloudflare.com-v4.json
326 rm $(1)/usr
/share
/ddns
/default
/freedns
.42.pl.json
327 rm $(1)/usr
/share
/ddns
/default
/godaddy.com-v1.json
328 rm $(1)/usr
/share
/ddns
/default
/digitalocean.com-v2.json
329 rm $(1)/usr
/share
/ddns
/default
/dnspod.cn.json
330 rm $(1)/usr
/share
/ddns
/default
/no-ip.com.json
331 rm $(1)/usr
/share
/ddns
/default
/bind-nsupdate.json
332 rm $(1)/usr
/share
/ddns
/default
/route53-v1.json
333 rm $(1)/usr
/share
/ddns
/default
/cnkuai.cn.json
334 rm $(1)/usr
/share
/ddns
/default
/gandi.net.json
335 rm $(1)/usr
/share
/ddns
/default
/pdns.json
336 rm $(1)/usr
/share
/ddns
/default
/transip.nl.json
337 rm $(1)/usr
/share
/ddns
/default
/ns1.com.json
338 rm $(1)/usr
/share
/ddns
/default
/one.com.json
342 define Package
/ddns-scripts-cloudflare
/install
343 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
344 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_cloudflare_com_v4.sh \
347 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
348 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/cloudflare.com-v4.json \
349 $(1)/usr
/share
/ddns
/default
/
352 define Package
/ddns-scripts-cloudflare
/prerm
354 if
[ -z
"$${IPKG_INSTROOT}" ]; then
355 /etc
/init.d
/ddns stop
361 define Package
/ddns-scripts-freedns
/install
362 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
363 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_freedns_42_pl.sh \
366 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
367 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/freedns
.42.pl.json \
368 $(1)/usr
/share
/ddns
/default
371 define Package
/ddns-scripts-freedns
/prerm
373 if
[ -z
"$${IPKG_INSTROOT}" ]; then
374 /etc
/init.d
/ddns stop
380 define Package
/ddns-scripts-godaddy
/install
381 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
382 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_godaddy_com_v1.sh \
385 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
386 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/godaddy.com-v1.json \
387 $(1)/usr
/share
/ddns
/default
390 define Package
/ddns-scripts-godaddy
/prerm
392 if
[ -z
"$${IPKG_INSTROOT}" ]; then
393 /etc
/init.d
/ddns stop
399 define Package
/ddns-scripts-digitalocean
/install
400 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
401 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_digitalocean_com_v2.sh \
404 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
405 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/digitalocean.com-v2.json \
406 $(1)/usr
/share
/ddns
/default
409 define Package
/ddns-scripts-digitalocean
/prerm
411 if
[ -z
"$${IPKG_INSTROOT}" ]; then
412 /etc
/init.d
/ddns stop
418 define Package
/ddns-scripts-dnspod
/install
419 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
420 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_dnspod_cn.sh \
423 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
424 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/dnspod.cn.json \
425 $(1)/usr
/share
/ddns
/default
/
428 define Package
/ddns-scripts-dnspod
/prerm
430 if
[ -z
"$${IPKG_INSTROOT}" ]; then
431 /etc
/init.d
/ddns stop
437 define Package
/ddns-scripts-noip
/install
438 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
439 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_no-ip_com.sh \
442 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
443 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/no-ip.com.json \
444 $(1)/usr
/share
/ddns
/default
447 define Package
/ddns-scripts-noip
/prerm
449 if
[ -z
"$${IPKG_INSTROOT}" ]; then
450 /etc
/init.d
/ddns stop
456 define Package
/ddns-scripts-ns1
/install
457 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
458 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_ns1_com.sh \
461 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
462 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/ns1.com.json \
463 $(1)/usr
/share
/ddns
/default
466 define Package
/ddns-scripts-ns1
/prerm
468 if
[ -z
"$${IPKG_INSTROOT}" ]; then
469 /etc
/init.d
/ddns stop
475 define Package
/ddns-scripts-nsupdate
/install
476 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
477 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_nsupdate.sh \
480 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
481 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/bind-nsupdate.json \
482 $(1)/usr
/share
/ddns
/default
485 define Package
/ddns-scripts-nsupdate
/prerm
487 if
[ -z
"$${IPKG_INSTROOT}" ]; then
488 /etc
/init.d
/ddns stop
494 define Package
/ddns-scripts-route53
/install
495 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
496 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_route53_v1.sh \
499 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
500 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/route53-v1.json \
501 $(1)/usr
/share
/ddns
/default
504 define Package
/ddns-scripts-route53
/prerm
506 if
[ -z
"$${IPKG_INSTROOT}" ]; then
507 /etc
/init.d
/ddns stop
513 define Package
/ddns-scripts-cnkuai
/install
514 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
515 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_cnkuai_cn.sh \
518 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
519 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/cnkuai.cn.json \
520 $(1)/usr
/share
/ddns
/default
523 define Package
/ddns-scripts-cnkuai
/prerm
525 if
[ -z
"$${IPKG_INSTROOT}" ]; then
526 /etc
/init.d
/ddns stop
532 define Package
/ddns-scripts-gandi
/install
533 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
534 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_gandi_net.sh \
537 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
538 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/gandi.net.json \
539 $(1)/usr
/share
/ddns
/default
542 define Package
/ddns-scripts-gandi
/prerm
544 if
[ -z
"$${IPKG_INSTROOT}" ]; then
545 /etc
/init.d
/ddns stop
551 define Package
/ddns-scripts-pdns
/install
552 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
553 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_pdns.sh \
556 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
557 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/pdns.json \
558 $(1)/usr
/share
/ddns
/default
561 define Package
/ddns-scripts-pdns
/prerm
563 if
[ -z
"$${IPKG_INSTROOT}" ]; then
564 /etc
/init.d
/ddns stop
570 define Package
/ddns-scripts-transip
/install
571 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
572 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_transip_nl.sh \
575 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
576 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/transip.nl.json \
577 $(1)/usr
/share
/ddns
/default
580 define Package
/ddns-scripts-transip
/prerm
582 if
[ -z
"$${IPKG_INSTROOT}" ]; then
583 /etc
/init.d
/ddns stop
589 define Package
/ddns-scripts-one
/install
590 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
591 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_one_com.sh \
594 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
595 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/one.com.json \
596 $(1)/usr
/share
/ddns
/default
599 define Package
/ddns-scripts-one
/prerm
601 if
[-z
"${IPKG_INSTROOT}" ]; then
602 /etc
/init.d
/ddns stop
608 $(eval
$(call BuildPackage
,ddns-scripts
))
609 $(eval
$(call BuildPackage
,ddns-scripts-services
))
610 $(eval
$(call BuildPackage
,ddns-scripts-cloudflare
))
611 $(eval
$(call BuildPackage
,ddns-scripts-freedns
))
612 $(eval
$(call BuildPackage
,ddns-scripts-godaddy
))
613 $(eval
$(call BuildPackage
,ddns-scripts-digitalocean
))
614 $(eval
$(call BuildPackage
,ddns-scripts-dnspod
))
615 $(eval
$(call BuildPackage
,ddns-scripts-noip
))
616 $(eval
$(call BuildPackage
,ddns-scripts-nsupdate
))
617 $(eval
$(call BuildPackage
,ddns-scripts-route53
))
618 $(eval
$(call BuildPackage
,ddns-scripts-cnkuai
))
619 $(eval
$(call BuildPackage
,ddns-scripts-gandi
))
620 $(eval
$(call BuildPackage
,ddns-scripts-pdns
))
621 $(eval
$(call BuildPackage
,ddns-scripts-transip
))
622 $(eval
$(call BuildPackage
,ddns-scripts-ns1
))
623 $(eval
$(call BuildPackage
,ddns-scripts-one
))