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 gandi.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
240 define Package
/ddns-scripts-one
241 $(call Package
/ddns-scripts
/Default
)
242 TITLE
:=Extension for one.com Control Panel
243 DEPENDS
:=ddns-scripts
+curl
246 define Package
/ddns-scrtips-one
/description
247 Dynamic DNS Client scripts extension for
"one.com".
249 "option username" to be a valid Email for one.com Control Panel
250 "option password" to be the matching one.com Control Panel password
251 "option domain" to contain the domain
/ subdomain
255 define Build
/Configure
262 define Package
/ddns-scripts
/install
263 $(INSTALL_DIR
) $(1)/etc
/hotplug.d
/iface
264 $(INSTALL_DATA
) .
/files
/etc
/hotplug.d
/iface
/ddns \
265 $(1)/etc
/hotplug.d
/iface
/95-ddns
267 $(INSTALL_DIR
) $(1)/etc
/init.d
268 $(INSTALL_BIN
) .
/files
/etc
/init.d
/ddns \
271 $(INSTALL_DIR
) $(1)/etc
/config
272 $(INSTALL_CONF
) .
/files
/etc
/config
/ddns \
275 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
276 echo
"$(PKG_VERSION)-$(PKG_RELEASE)" > $(1)/usr
/share
/ddns
/version
278 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
279 $(INSTALL_DATA
) .
/files
/usr
/lib
/ddns
/dynamic_dns_functions.sh \
281 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/dynamic_dns_lucihelper.sh \
283 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/dynamic_dns_updater.sh \
286 $(INSTALL_DIR
) $(1)/usr
/bin
287 $(INSTALL_BIN
) .
/files
/usr
/bin
/ddns.sh \
291 define Package
/ddns-scripts
/postinst
293 if
[ -z
"$${IPKG_INSTROOT}" ]; then
294 /etc
/init.d
/ddns enabled
295 /etc
/init.d
/ddns start
300 define Package
/ddns-scripts
/prerm
302 if
[ -n
"$${IPKG_INSTROOT}" ]; then
303 /etc
/init.d
/ddns stop
304 /etc
/init.d
/ddns disable
310 define Package
/ddns-scripts-services
/install
311 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
312 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/* \
313 $(1)/usr
/share
/ddns
/default
315 # Remove special services
316 rm $(1)/usr
/share
/ddns
/default
/cloudflare.com-v4.json
317 rm $(1)/usr
/share
/ddns
/default
/freedns
.42.pl.json
318 rm $(1)/usr
/share
/ddns
/default
/godaddy.com-v1.json
319 rm $(1)/usr
/share
/ddns
/default
/digitalocean.com-v2.json
320 rm $(1)/usr
/share
/ddns
/default
/dnspod.cn.json
321 rm $(1)/usr
/share
/ddns
/default
/no-ip.com.json
322 rm $(1)/usr
/share
/ddns
/default
/bind-nsupdate.json
323 rm $(1)/usr
/share
/ddns
/default
/route53-v1.json
324 rm $(1)/usr
/share
/ddns
/default
/cnkuai.cn.json
325 rm $(1)/usr
/share
/ddns
/default
/gandi.net.json
326 rm $(1)/usr
/share
/ddns
/default
/pdns.json
327 rm $(1)/usr
/share
/ddns
/default
/transip.nl.json
328 rm $(1)/usr
/share
/ddns
/default
/ns1.com.json
329 rm $(1)/usr
/share
/ddns
/default
/one.com.json
333 define Package
/ddns-scripts-cloudflare
/install
334 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
335 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_cloudflare_com_v4.sh \
338 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
339 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/cloudflare.com-v4.json \
340 $(1)/usr
/share
/ddns
/default
/
343 define Package
/ddns-scripts-cloudflare
/prerm
345 if
[ -z
"$${IPKG_INSTROOT}" ]; then
346 /etc
/init.d
/ddns stop
352 define Package
/ddns-scripts-freedns
/install
353 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
354 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_freedns_42_pl.sh \
357 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
358 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/freedns
.42.pl.json \
359 $(1)/usr
/share
/ddns
/default
362 define Package
/ddns-scripts-freedns
/prerm
364 if
[ -z
"$${IPKG_INSTROOT}" ]; then
365 /etc
/init.d
/ddns stop
371 define Package
/ddns-scripts-godaddy
/install
372 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
373 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_godaddy_com_v1.sh \
376 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
377 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/godaddy.com-v1.json \
378 $(1)/usr
/share
/ddns
/default
381 define Package
/ddns-scripts-godaddy
/prerm
383 if
[ -z
"$${IPKG_INSTROOT}" ]; then
384 /etc
/init.d
/ddns stop
390 define Package
/ddns-scripts-digitalocean
/install
391 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
392 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_digitalocean_com_v2.sh \
395 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
396 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/digitalocean.com-v2.json \
397 $(1)/usr
/share
/ddns
/default
400 define Package
/ddns-scripts-digitalocean
/prerm
402 if
[ -z
"$${IPKG_INSTROOT}" ]; then
403 /etc
/init.d
/ddns stop
409 define Package
/ddns-scripts-dnspod
/install
410 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
411 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_dnspod_cn.sh \
414 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
415 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/dnspod.cn.json \
416 $(1)/usr
/share
/ddns
/default
/
419 define Package
/ddns-scripts-dnspod
/prerm
421 if
[ -z
"$${IPKG_INSTROOT}" ]; then
422 /etc
/init.d
/ddns stop
428 define Package
/ddns-scripts-noip
/install
429 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
430 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_no-ip_com.sh \
433 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
434 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/no-ip.com.json \
435 $(1)/usr
/share
/ddns
/default
438 define Package
/ddns-scripts-noip
/prerm
440 if
[ -z
"$${IPKG_INSTROOT}" ]; then
441 /etc
/init.d
/ddns stop
447 define Package
/ddns-scripts-ns1
/install
448 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
449 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_ns1_com.sh \
452 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
453 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/ns1.com.json \
454 $(1)/usr
/share
/ddns
/default
457 define Package
/ddns-scripts-ns1
/prerm
459 if
[ -z
"$${IPKG_INSTROOT}" ]; then
460 /etc
/init.d
/ddns stop
466 define Package
/ddns-scripts-nsupdate
/install
467 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
468 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_nsupdate.sh \
471 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
472 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/bind-nsupdate.json \
473 $(1)/usr
/share
/ddns
/default
476 define Package
/ddns-scripts-nsupdate
/prerm
478 if
[ -z
"$${IPKG_INSTROOT}" ]; then
479 /etc
/init.d
/ddns stop
485 define Package
/ddns-scripts-route53
/install
486 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
487 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_route53_v1.sh \
490 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
491 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/route53-v1.json \
492 $(1)/usr
/share
/ddns
/default
495 define Package
/ddns-scripts-route53
/prerm
497 if
[ -z
"$${IPKG_INSTROOT}" ]; then
498 /etc
/init.d
/ddns stop
504 define Package
/ddns-scripts-cnkuai
/install
505 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
506 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_cnkuai_cn.sh \
509 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
510 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/cnkuai.cn.json \
511 $(1)/usr
/share
/ddns
/default
514 define Package
/ddns-scripts-cnkuai
/prerm
516 if
[ -z
"$${IPKG_INSTROOT}" ]; then
517 /etc
/init.d
/ddns stop
523 define Package
/ddns-scripts-gandi
/install
524 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
525 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_gandi_net.sh \
528 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
529 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/gandi.net.json \
530 $(1)/usr
/share
/ddns
/default
533 define Package
/ddns-scripts-gandi
/prerm
535 if
[ -z
"$${IPKG_INSTROOT}" ]; then
536 /etc
/init.d
/ddns stop
542 define Package
/ddns-scripts-pdns
/install
543 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
544 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_pdns.sh \
547 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
548 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/pdns.json \
549 $(1)/usr
/share
/ddns
/default
552 define Package
/ddns-scripts-pdns
/prerm
554 if
[ -z
"$${IPKG_INSTROOT}" ]; then
555 /etc
/init.d
/ddns stop
561 define Package
/ddns-scripts-transip
/install
562 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
563 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_transip_nl.sh \
566 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
567 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/transip.nl.json \
568 $(1)/usr
/share
/ddns
/default
571 define Package
/ddns-scripts-transip
/prerm
573 if
[ -z
"$${IPKG_INSTROOT}" ]; then
574 /etc
/init.d
/ddns stop
580 define Package
/ddns-scripts-one
/install
581 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
582 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_one_com.sh \
585 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
586 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/one.com.json \
587 $(1)/usr
/share
/ddns
/default
590 define Package
/ddns-scripts-one
/prerm
592 if
[-z
"${IPKG_INSTROOT}" ]; then
593 /etc
/init.d
/ddns stop
599 $(eval
$(call BuildPackage
,ddns-scripts
))
600 $(eval
$(call BuildPackage
,ddns-scripts-services
))
601 $(eval
$(call BuildPackage
,ddns-scripts-cloudflare
))
602 $(eval
$(call BuildPackage
,ddns-scripts-freedns
))
603 $(eval
$(call BuildPackage
,ddns-scripts-godaddy
))
604 $(eval
$(call BuildPackage
,ddns-scripts-digitalocean
))
605 $(eval
$(call BuildPackage
,ddns-scripts-dnspod
))
606 $(eval
$(call BuildPackage
,ddns-scripts-noip
))
607 $(eval
$(call BuildPackage
,ddns-scripts-nsupdate
))
608 $(eval
$(call BuildPackage
,ddns-scripts-route53
))
609 $(eval
$(call BuildPackage
,ddns-scripts-cnkuai
))
610 $(eval
$(call BuildPackage
,ddns-scripts-gandi
))
611 $(eval
$(call BuildPackage
,ddns-scripts-pdns
))
612 $(eval
$(call BuildPackage
,ddns-scripts-transip
))
613 $(eval
$(call BuildPackage
,ddns-scripts-ns1
))
614 $(eval
$(call BuildPackage
,ddns-scripts-one
))