Makefile (15796B)
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:=14 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))