For consistency, use full name instead of $(PKG_NAME) in define and eval lines for all packages. I've seen reviews that asked to do this before, and I am asking the same during reviews now. To avoid this in the future, fix this treewide so when people use existing packages as example, we will not have to request this change anymore. This makes all packages consistent with both LEDE and OpenWrt base repositories. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
396 lines
15 KiB
Makefile
Executable file
396 lines
15 KiB
Makefile
Executable file
#
|
|
# Copyright (C) 2008-2017 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=ddns-scripts
|
|
# Version == major.minor.patch
|
|
# increase on new functionality (minor) or patches (patch)
|
|
PKG_VERSION:=2.7.6
|
|
# Release == build
|
|
# increase on changes of services files or tld_names.dat
|
|
PKG_RELEASE:=13
|
|
|
|
PKG_LICENSE:=GPL-2.0
|
|
PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
# no default dependencies
|
|
PKG_DEFAULT_DEPENDS=
|
|
|
|
define Package/ddns-scripts/Default
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
SUBMENU:=IP Addresses and Names
|
|
PKGARCH:=all
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts
|
|
$(call Package/ddns-scripts/Default)
|
|
TITLE:=Dynamic DNS Client scripts (with IPv6 support)
|
|
endef
|
|
# shown in LuCI package description
|
|
define Package/ddns-scripts/description
|
|
Dynamic DNS Client scripts (with IPv6 support) - Info: http://wiki.openwrt.org/doc/howto/ddns.client
|
|
endef
|
|
# shown in menuconfig <Help>
|
|
define Package/ddns-scripts/config
|
|
help
|
|
A highly configurable set of scripts for doing dynamic dns updates.
|
|
- IPv6 support
|
|
- DNS server support
|
|
- Glue Record support (require BIND host or KNOT host)
|
|
- DNS requests via TCP
|
|
- Proxy server support
|
|
- log file support
|
|
- support to run once
|
|
Version: $(PKG_VERSION)-$(PKG_RELEASE)
|
|
Info : http://wiki.openwrt.org/doc/howto/ddns.client
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts_cloudflare
|
|
$(call Package/ddns-scripts/Default)
|
|
TITLE:=CloudFlare.com API v1 (deprecated)
|
|
DEPENDS:=ddns-scripts
|
|
endef
|
|
define Package/ddns-scripts_cloudflare/description
|
|
Dynamic DNS Client scripts extension for CloudFlare.com API-v1 (deprecated)
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts_cloudflare.com-v4
|
|
$(call Package/ddns-scripts/Default)
|
|
TITLE:=CloudFlare.com API v4 (require cURL)
|
|
DEPENDS:=ddns-scripts +curl
|
|
endef
|
|
define Package/ddns-scripts_cloudflare.com-v4/description
|
|
Dynamic DNS Client scripts extension for CloudFlare.com API-v4 (require/install cURL)
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts_godaddy.com-v1
|
|
$(call Package/ddns-scripts/Default)
|
|
TITLE:=GoDaddy.com (require cURL)
|
|
DEPENDS:=ddns-scripts +curl
|
|
endef
|
|
define Package/ddns-scripts_godaddy.com-v1/description
|
|
Dynamic DNS Client scripts extension for GoDaddy.com (require/install cURL)
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts_no-ip_com
|
|
$(call Package/ddns-scripts/Default)
|
|
TITLE:=DDNS extension for No-IP.com
|
|
DEPENDS:=ddns-scripts
|
|
endef
|
|
define Package/ddns-scripts_no-ip_com/description
|
|
Dynamic DNS Client scripts extension for No-IP.com
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts_nsupdate
|
|
$(call Package/ddns-scripts/Default)
|
|
TITLE:=DDNS extension using Bind nsupdate
|
|
DEPENDS:=ddns-scripts +bind-client
|
|
endef
|
|
define Package/ddns-scripts_nsupdate/description
|
|
Dynamic DNS Client scripts extension for direct updates using Bind nsupdate
|
|
endef
|
|
define Package/ddns-scripts_nsupdate/config
|
|
help
|
|
The script directly updates a PowerDNS (or maybe bind server) via nsupdate
|
|
from bind-client package. It requires
|
|
"option dns_server" to be set to the server to be used by nsupdate.
|
|
"option username" should be set to the key name and
|
|
"option password" to the base64 encoded shared secret.
|
|
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Build/Configure
|
|
endef
|
|
define Build/Compile
|
|
$(CP) ./files $(PKG_BUILD_DIR)
|
|
# ensure that VERSION inside dynamic_dns_functions.sh reflect PKG_VERSION of Makefile
|
|
$(SED) '/^VERSION=*/s/.*/VERSION="$(PKG_VERSION)-$(PKG_RELEASE)"/' $(PKG_BUILD_DIR)/files/dynamic_dns_functions.sh
|
|
# remove comments, white spaces and empty lines
|
|
for FILE in `find $(PKG_BUILD_DIR)/files -type f`; do \
|
|
$(SED) 's/^[[:space:]]*//' \
|
|
-e '/^#[[:space:]]\|^#$$$$/d' \
|
|
-e 's/[[:space:]]#[[:space:]].*$$$$//' \
|
|
-e 's/[[:space:]]*$$$$//' \
|
|
-e '/^\/\/[[:space:]]/d' \
|
|
-e '/^[[:space:]]*$$$$/d' $$$$FILE; \
|
|
done
|
|
# compress public_suffix_list.dat
|
|
gzip -f9 $(PKG_BUILD_DIR)/files/public_suffix_list.dat
|
|
endef
|
|
|
|
define Package/ddns-scripts/conffiles
|
|
/etc/config/ddns
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts/preinst
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts/install
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns
|
|
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.hotplug $(1)/etc/hotplug.d/iface/95-ddns
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.init $(1)/etc/init.d/ddns
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_CONF) $(PKG_BUILD_DIR)/files/ddns.config $(1)/etc/config/ddns
|
|
|
|
$(INSTALL_DIR) $(1)/etc/ddns
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/files/services* $(1)/etc/ddns
|
|
|
|
$(INSTALL_DIR) $(1)/usr/lib/ddns
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/dynamic_dns_*.sh $(1)/usr/lib/ddns
|
|
endef
|
|
define Package/ddns-scripts/postinst
|
|
#!/bin/sh
|
|
# if NOT run buildroot and PKG_UPGRADE then (re)start service if enabled
|
|
[ -z "$${IPKG_INSTROOT}" -a "$${PKG_UPGRADE}" = "1" ] && {
|
|
[ -x /etc/uci-defaults/ddns ] && \
|
|
/etc/uci-defaults/ddns && \
|
|
rm -f /etc/uci-defaults/ddns >/dev/null 2>&1
|
|
/etc/init.d/ddns enabled && \
|
|
/etc/init.d/ddns start >/dev/null 2>&1
|
|
}
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts/prerm
|
|
#!/bin/sh
|
|
# if run within buildroot exit
|
|
[ -n "$${IPKG_INSTROOT}" ] && exit 0
|
|
# stop running scripts
|
|
/etc/init.d/ddns stop
|
|
/etc/init.d/ddns disable
|
|
# clear LuCI indexcache
|
|
rm -f /tmp/luci-indexcache >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts_cloudflare/preinst
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts_cloudflare/install
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_cloudflare
|
|
$(INSTALL_DIR) $(1)/usr/share
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/files/public_suffix_list.dat.gz $(1)/usr/share
|
|
$(INSTALL_DIR) $(1)/usr/lib/ddns
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_cloudflare_com_v1.sh $(1)/usr/lib/ddns
|
|
endef
|
|
define Package/ddns-scripts_cloudflare/postinst
|
|
#!/bin/sh
|
|
# remove old services file entries
|
|
/bin/sed -i '/cloudflare\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
|
/bin/sed -i '/cloudflare\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
|
|
# and create new
|
|
printf "%s\\t%s\\n" '"cloudflare.com-v1"' '"update_cloudflare_com_v1.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
|
|
printf "%s\\t%s\\n" '"cloudflare.com-v1"' '"update_cloudflare_com_v1.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
|
|
# on real system restart service if enabled
|
|
[ -z "$${IPKG_INSTROOT}" ] && {
|
|
[ -x /etc/uci-defaults/ddns_cloudflare ] && \
|
|
/etc/uci-defaults/ddns_cloudflare && \
|
|
rm -f /etc/uci-defaults/ddns_cloudflare >/dev/null 2>&1
|
|
/etc/init.d/ddns enabled && \
|
|
/etc/init.d/ddns start >/dev/null 2>&1
|
|
}
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts_cloudflare/prerm
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
# remove services file entries
|
|
/bin/sed -i '/cloudflare\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
|
/bin/sed -i '/cloudflare\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts_cloudflare.com-v4/preinst
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts_cloudflare.com-v4/install
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_cloudflare.com-v4
|
|
$(INSTALL_DIR) $(1)/usr/lib/ddns
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_cloudflare_com_v4.sh $(1)/usr/lib/ddns
|
|
endef
|
|
define Package/ddns-scripts_cloudflare.com-v4/postinst
|
|
#!/bin/sh
|
|
# remove old services file entries
|
|
/bin/sed -i '/cloudflare\.com-v4/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
|
/bin/sed -i '/cloudflare\.com-v4/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
|
|
# and create new
|
|
printf "%s\\t%s\\n" '"cloudflare.com-v4"' '"update_cloudflare_com_v4.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
|
|
printf "%s\\t%s\\n" '"cloudflare.com-v4"' '"update_cloudflare_com_v4.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
|
|
# on real system restart service if enabled
|
|
[ -z "$${IPKG_INSTROOT}" ] && {
|
|
[ -x /etc/uci-defaults/ddns_cloudflare.com-v4 ] && \
|
|
/etc/uci-defaults/ddns_cloudflare.com-v4 && \
|
|
rm -f /etc/uci-defaults/ddns_cloudflare.com-v4 >/dev/null 2>&1
|
|
/etc/init.d/ddns enabled && \
|
|
/etc/init.d/ddns start >/dev/null 2>&1
|
|
}
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts_cloudflare.com-v4/prerm
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
# remove services file entries
|
|
/bin/sed -i '/cloudflare\.com-v4/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
|
/bin/sed -i '/cloudflare\.com-v4/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts_godaddy.com-v1/preinst
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts_godaddy.com-v1/install
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_godaddy.com-v1
|
|
$(INSTALL_DIR) $(1)/usr/lib/ddns
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_godaddy_com_v1.sh $(1)/usr/lib/ddns
|
|
endef
|
|
define Package/ddns-scripts_godaddy.com-v1/postinst
|
|
#!/bin/sh
|
|
# remove old services file entries
|
|
/bin/sed -i '/godaddy\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
|
/bin/sed -i '/godaddy\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
|
|
# and create new
|
|
printf "%s\\t%s\\n" '"godaddy.com-v1"' '"update_godaddy_com_v1.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
|
|
printf "%s\\t%s\\n" '"godaddy.com-v1"' '"update_godaddy_com_v1.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
|
|
# on real system restart service if enabled
|
|
[ -z "$${IPKG_INSTROOT}" ] && {
|
|
[ -x /etc/uci-defaults/ddns_godaddy.com-v1 ] && \
|
|
/etc/uci-defaults/ddns_godaddy.com-v1 && \
|
|
rm -f /etc/uci-defaults/ddns_godaddy.com-v1 >/dev/null 2>&1
|
|
/etc/init.d/ddns enabled \
|
|
&& /etc/init.d/ddns start >/dev/null 2>&1
|
|
}
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts_godaddy.com-v1/prerm
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
# remove services file entries
|
|
/bin/sed -i '/godaddy\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
|
/bin/sed -i '/godaddy\.com-v1/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts_no-ip_com/preinst
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts_no-ip_com/install
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_no-ip_com
|
|
$(INSTALL_DIR) $(1)/usr/lib/ddns
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_no-ip_com.sh $(1)/usr/lib/ddns
|
|
endef
|
|
define Package/ddns-scripts_no-ip_com/postinst
|
|
#!/bin/sh
|
|
# remove old services file entries
|
|
/bin/sed -i '/no-ip\.com/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
|
# and create new
|
|
printf "%s\\t%s\\n" '"no-ip.com"' '"update_no-ip_com.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
|
|
# on real system restart service if enabled
|
|
[ -z "$${IPKG_INSTROOT}" ] && {
|
|
[ -x /etc/uci-defaults/ddns_no-ip_com ] && \
|
|
/etc/uci-defaults/ddns_no-ip_com && \
|
|
rm -f /etc/uci-defaults/ddns_no-ip_com >/dev/null 2>&1
|
|
/etc/init.d/ddns enabled && \
|
|
/etc/init.d/ddns start >/dev/null 2>&1
|
|
}
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts_no-ip_com/prerm
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
# remove services file entries
|
|
/bin/sed -i '/no-ip\.com/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
define Package/ddns-scripts_nsupdate/preinst
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts_nsupdate/install
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_nsupdate
|
|
$(INSTALL_DIR) $(1)/usr/lib/ddns
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_nsupdate.sh $(1)/usr/lib/ddns
|
|
endef
|
|
define Package/ddns-scripts_nsupdate/postinst
|
|
#!/bin/sh
|
|
# remove old services file entries
|
|
/bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
|
/bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
|
|
# and create new
|
|
printf "%s\\t%s\\n" '"bind-nsupdate"' '"update_nsupdate.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
|
|
printf "%s\\t%s\\n" '"bind-nsupdate"' '"update_nsupdate.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
|
|
# on real system restart service if enabled
|
|
[ -z "$${IPKG_INSTROOT}" ] && {
|
|
[ -x /etc/uci-defaults/ddns_nsupdate ] && \
|
|
/etc/uci-defaults/ddns_nsupdate && \
|
|
rm -f /etc/uci-defaults/ddns_nsupdate >/dev/null 2>&1
|
|
/etc/init.d/ddns enabled && \
|
|
/etc/init.d/ddns start >/dev/null 2>&1
|
|
}
|
|
exit 0 # suppress errors
|
|
endef
|
|
define Package/ddns-scripts_nsupdate/prerm
|
|
#!/bin/sh
|
|
# if NOT run buildroot then stop service
|
|
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
|
# remove services file entries
|
|
/bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
|
/bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
|
|
exit 0 # suppress errors
|
|
endef
|
|
|
|
###### *************************************************************************
|
|
$(eval $(call BuildPackage,ddns-scripts))
|
|
$(eval $(call BuildPackage,ddns-scripts_cloudflare))
|
|
$(eval $(call BuildPackage,ddns-scripts_cloudflare.com-v4))
|
|
$(eval $(call BuildPackage,ddns-scripts_godaddy.com-v1))
|
|
$(eval $(call BuildPackage,ddns-scripts_no-ip_com))
|
|
$(eval $(call BuildPackage,ddns-scripts_nsupdate))
|