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-noip
112 $(call Package
/ddns-scripts
/Default
)
113 TITLE
:=Extension for no-ip.com
114 DEPENDS
:=ddns-scripts
117 define Package
/ddns-scripts-noip
/description
118 Dynamic DNS Client scripts extension for
"no-ip.com".
122 define Package
/ddns-scripts-nsupdate
123 $(call Package
/ddns-scripts
/Default
)
124 TITLE
:=Extension for using bind nsupdate.
125 DEPENDS
:=ddns-scripts
+bind-client
128 define Package
/ddns-scripts-nsupdate
/description
129 Dynamic DNS Client scripts extension for direct updates using bind nsupdate
130 The script directly updates a PowerDNS
(or maybe bind server
) via nsupdate
131 from bind-client package.
133 "option dns_server" to be set to the server to be used by nsupdate.
134 "option username" should be set to the key name and
135 "option password" to the base64 encoded shared secret.
139 define Package
/ddns-scripts-route53
140 $(call Package
/ddns-scripts
/Default
)
141 TITLE
:=Extension for route53 API v1
142 DEPENDS
:=ddns-scripts
+curl
+openssl-util
145 define Package
/ddns-scripts-route53
/description
146 Dynamic DNS Client scripts extension for Amazon AWS
"route53 API v1".
147 Note
: You must also
install ca-certificate or ca-bundle.
149 "option username" to be a valid AWS access key id
150 "option password" to be the matching AWS secret key id
151 "option domain" to contain the hosted zone ID
155 define Package
/ddns-scripts-cnkuai
156 $(call Package
/ddns-scripts
/Default
)
158 DEPENDS
:=ddns-scripts
+curl
+giflib-utils
161 define Package
/ddns-scripts-cnkuai
/description
162 Dynamic DNS Client scripts extension for
"cnkuai.cn".
164 "option username" to be a valid CnKuai control panel id
165 "option password" to be the matching CnKuai control panel password
166 "option domain" to contain the domain
170 define Package
/ddns-scripts-gandi
171 $(call Package
/ddns-scripts
/Default
)
173 DEPENDS
:=ddns-scripts
+curl
176 define Package
/ddns-scripts-gandi
/description
177 Dynamic DNS Client scripts extension for
"gandi.net".
179 "option username" to be a valid subdomain for gandi.net
180 "option password" to be a valid API key for ganid.net
184 define Build
/Configure
191 define Package
/ddns-scripts
/install
192 $(INSTALL_DIR
) $(1)/etc
/hotplug.d
/iface
193 $(INSTALL_DATA
) .
/files
/etc
/hotplug.d
/iface
/ddns \
194 $(1)/etc
/hotplug.d
/iface
/95-ddns
196 $(INSTALL_DIR
) $(1)/etc
/init.d
197 $(INSTALL_BIN
) .
/files
/etc
/init.d
/ddns \
200 $(INSTALL_DIR
) $(1)/etc
/config
201 $(INSTALL_CONF
) .
/files
/etc
/config
/ddns \
204 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
205 echo
"$(PKG_VERSION)-$(PKG_RELEASE)" > $(1)/usr
/share
/ddns
/version
207 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
208 $(INSTALL_DATA
) .
/files
/usr
/lib
/ddns
/dynamic_dns_functions.sh \
210 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/dynamic_dns_lucihelper.sh \
212 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/dynamic_dns_updater.sh \
215 $(INSTALL_DIR
) $(1)/usr
/bin
216 $(INSTALL_BIN
) .
/files
/usr
/bin
/ddns.sh \
220 define Package
/ddns-scripts
/postinst
222 if
[ -z
"$${IPKG_INSTROOT}" ]; then
223 /etc
/init.d
/ddns enabled
224 /etc
/init.d
/ddns start
229 define Package
/ddns-scripts
/prerm
231 if
[ -n
"$${IPKG_INSTROOT}" ]; then
232 /etc
/init.d
/ddns stop
233 /etc
/init.d
/ddns disable
239 define Package
/ddns-scripts-services
/install
240 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
241 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/* \
242 $(1)/usr
/share
/ddns
/default
244 # Remove special services
245 rm $(1)/usr
/share
/ddns
/default
/cloudflare.com-v4.json
246 rm $(1)/usr
/share
/ddns
/default
/freedns
.42.pl.json
247 rm $(1)/usr
/share
/ddns
/default
/godaddy.com-v1.json
248 rm $(1)/usr
/share
/ddns
/default
/digitalocean.com-v2.json
249 rm $(1)/usr
/share
/ddns
/default
/no-ip.com.json
250 rm $(1)/usr
/share
/ddns
/default
/bind-nsupdate.json
251 rm $(1)/usr
/share
/ddns
/default
/route53-v1.json
252 rm $(1)/usr
/share
/ddns
/default
/cnkuai.cn.json
253 rm $(1)/usr
/share
/ddns
/default
/gandi.net.json
257 define Package
/ddns-scripts-cloudflare
/install
258 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
259 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_cloudflare_com_v4.sh \
262 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
263 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/cloudflare.com-v4.json \
264 $(1)/usr
/share
/ddns
/default
/
267 define Package
/ddns-scripts-cloudflare
/prerm
269 if
[ -z
"$${IPKG_INSTROOT}" ]; then
270 /etc
/init.d
/ddns stop
276 define Package
/ddns-scripts-freedns
/install
277 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
278 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_freedns_42_pl.sh \
281 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
282 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/freedns
.42.pl.json \
283 $(1)/usr
/share
/ddns
/default
286 define Package
/ddns-scripts-freedns
/prerm
288 if
[ -z
"$${IPKG_INSTROOT}" ]; then
289 /etc
/init.d
/ddns stop
295 define Package
/ddns-scripts-godaddy
/install
296 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
297 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_godaddy_com_v1.sh \
300 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
301 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/godaddy.com-v1.json \
302 $(1)/usr
/share
/ddns
/default
305 define Package
/ddns-scripts-godaddy
/prerm
307 if
[ -z
"$${IPKG_INSTROOT}" ]; then
308 /etc
/init.d
/ddns stop
314 define Package
/ddns-scripts-digitalocean
/install
315 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
316 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_digitalocean_com_v2.sh \
319 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
320 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/digitalocean.com-v2.json \
321 $(1)/usr
/share
/ddns
/default
324 define Package
/ddns-scripts-digitalocean
/prerm
326 if
[ -z
"$${IPKG_INSTROOT}" ]; then
327 /etc
/init.d
/ddns stop
333 define Package
/ddns-scripts-noip
/install
334 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
335 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_no-ip_com.sh \
338 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
339 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/no-ip.com.json \
340 $(1)/usr
/share
/ddns
/default
343 define Package
/ddns-scripts-noip
/prerm
345 if
[ -z
"$${IPKG_INSTROOT}" ]; then
346 /etc
/init.d
/ddns stop
352 define Package
/ddns-scripts-nsupdate
/install
353 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
354 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_nsupdate.sh \
357 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
358 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/bind-nsupdate.json \
359 $(1)/usr
/share
/ddns
/default
362 define Package
/ddns-scripts-nsupdate
/prerm
364 if
[ -z
"$${IPKG_INSTROOT}" ]; then
365 /etc
/init.d
/ddns stop
371 define Package
/ddns-scripts-route53
/install
372 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
373 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_route53_v1.sh \
376 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
377 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/route53-v1.json \
378 $(1)/usr
/share
/ddns
/default
381 define Package
/ddns-scripts-route53
/prerm
383 if
[ -z
"$${IPKG_INSTROOT}" ]; then
384 /etc
/init.d
/ddns stop
390 define Package
/ddns-scripts-cnkuai
/install
391 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
392 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_cnkuai_cn.sh \
395 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
396 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/cnkuai.cn.json \
397 $(1)/usr
/share
/ddns
/default
400 define Package
/ddns-scripts-cnkuai
/prerm
402 if
[ -z
"$${IPKG_INSTROOT}" ]; then
403 /etc
/init.d
/ddns stop
409 define Package
/ddns-scripts-gandi
/install
410 $(INSTALL_DIR
) $(1)/usr
/lib
/ddns
411 $(INSTALL_BIN
) .
/files
/usr
/lib
/ddns
/update_gandi_net.sh \
414 $(INSTALL_DIR
) $(1)/usr
/share
/ddns
/default
415 $(INSTALL_DATA
) .
/files
/usr
/share
/ddns
/default
/gandi.net.json \
416 $(1)/usr
/share
/ddns
/default
419 define Package
/ddns-scripts-gandi
/prerm
421 if
[ -z
"$${IPKG_INSTROOT}" ]; then
422 /etc
/init.d
/ddns stop
428 $(eval
$(call BuildPackage
,ddns-scripts
))
429 $(eval
$(call BuildPackage
,ddns-scripts-services
))
430 $(eval
$(call BuildPackage
,ddns-scripts-cloudflare
))
431 $(eval
$(call BuildPackage
,ddns-scripts-freedns
))
432 $(eval
$(call BuildPackage
,ddns-scripts-godaddy
))
433 $(eval
$(call BuildPackage
,ddns-scripts-digitalocean
))
434 $(eval
$(call BuildPackage
,ddns-scripts-noip
))
435 $(eval
$(call BuildPackage
,ddns-scripts-nsupdate
))
436 $(eval
$(call BuildPackage
,ddns-scripts-route53
))
437 $(eval
$(call BuildPackage
,ddns-scripts-cnkuai
))
438 $(eval
$(call BuildPackage
,ddns-scripts-gandi
))