From 79b24fb2234d071031cfa777b569e3b63fee107d Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sat, 19 Mar 2005 22:51:51 +0000 Subject: [PATCH] add downloading script (with md5sum checking and sourceforge downloading support) git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@391 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/arptables/Makefile | 4 +- package/bridge/Makefile | 4 +- package/busybox/busybox.mk | 2 +- package/dnsmasq/Makefile | 2 +- package/dropbear/Makefile | 2 +- package/ebtables/Makefile | 4 +- package/haserl/Makefile | 4 +- package/iproute2/Makefile | 2 +- package/iptables/Makefile | 2 +- package/libelf/Makefile | 2 +- package/libpcap/Makefile | 2 +- package/linux/linux.mk | 4 +- package/lzo/Makefile | 2 +- package/matrixssl/Makefile | 2 +- package/microperl/Makefile | 2 +- package/ncurses/Makefile | 2 +- package/openssl/Makefile | 2 +- package/openvpn/Makefile | 4 +- package/openwrt/Makefile | 2 +- package/pcre/Makefile | 2 +- package/popt/Makefile | 2 +- package/ppp/Makefile | 2 +- package/pptp/Makefile | 4 +- package/pptpd/Makefile | 4 +- package/strace/Makefile | 4 +- package/tcpdump/Makefile | 2 +- package/zlib/Makefile | 2 +- scripts/download.pl | 76 ++++++++++++++++++++++ target/jffs2/jffs2root.mk | 2 +- target/squashfs-lzma/squashfslzmaroot.mk | 2 +- toolchain/binutils/binutils.mk | 2 +- toolchain/gcc/gcc-uclibc-3.x.mk | 2 +- toolchain/ipkg-utils/Makefile | 2 +- toolchain/kernel-headers/kernel-headers.mk | 3 +- toolchain/sed/sed.mk | 2 +- toolchain/uClibc/uclibc.mk | 2 +- 36 files changed, 121 insertions(+), 44 deletions(-) create mode 100755 scripts/download.pl diff --git a/package/arptables/Makefile b/package/arptables/Makefile index 961ee5e2a8..f27a35333f 100644 --- a/package/arptables/Makefile +++ b/package/arptables/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=arptables PKG_VERSION:=0.0.3 PKG_RELEASE:=1 -PKG_SOURCE_URL:=http://unc.dl.sourceforge.net/sourceforge/ebtables/ +PKG_SOURCE_URL:=@SF/ebtables PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.gz PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-v$(PKG_VERSION) PKG_CAT:=zcat @@ -16,7 +16,7 @@ PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/bridge/Makefile b/package/bridge/Makefile index 2f3f4c6301..5aba7d30ef 100644 --- a/package/bridge/Makefile +++ b/package/bridge/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bridge PKG_VERSION:=1.0.4 PKG_RELEASE:=1 -PKG_SOURCE_URL:=http://unc.dl.sourceforge.net/sourceforge/bridge +PKG_SOURCE_URL:=@SF/bridge PKG_SOURCE:=bridge-utils-$(PKG_VERSION).tar.gz PKG_BUILD_DIR:=$(BUILD_DIR)/bridge-utils-$(PKG_VERSION) PKG_CAT:=zcat @@ -16,7 +16,7 @@ PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk index ab67544498..03b1c78bd5 100644 --- a/package/busybox/busybox.mk +++ b/package/busybox/busybox.mk @@ -18,7 +18,7 @@ endif BUSYBOX_UNZIP=bzcat $(DL_DIR)/$(BUSYBOX_SOURCE): - $(WGET) -P $(DL_DIR) $(BUSYBOX_SITE)/$(BUSYBOX_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(BUSYBOX_SOURCE) x $(BUSYBOX_SITE) busybox-source: $(DL_DIR)/$(BUSYBOX_SOURCE) $(BUSYBOX_CONFIG) diff --git a/package/dnsmasq/Makefile b/package/dnsmasq/Makefile index 761b79843b..9d1506e850 100644 --- a/package/dnsmasq/Makefile +++ b/package/dnsmasq/Makefile @@ -16,7 +16,7 @@ PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile index 50031300b9..a62e25131b 100644 --- a/package/dropbear/Makefile +++ b/package/dropbear/Makefile @@ -16,7 +16,7 @@ DROPBEAR_IPK:=dropbear_$(DROPBEAR_VERSION)-1_$(ARCH).ipk DROPBEAR_IPK_DIR:=$(DROPBEAR_DIR)/ipkg $(DL_DIR)/$(DROPBEAR_SOURCE): - $(WGET) -P $(DL_DIR) $(DROPBEAR_SITE)/$(DROPBEAR_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(DROPBEAR_SOURCE) x $(DROPBEAR_SITE) $(DROPBEAR_DIR)/.patched: $(DL_DIR)/$(DROPBEAR_SOURCE) $(DROPBEAR_CAT) $(DL_DIR)/$(DROPBEAR_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/ebtables/Makefile b/package/ebtables/Makefile index d4a7584e13..f79f6864c1 100644 --- a/package/ebtables/Makefile +++ b/package/ebtables/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ebtables PKG_VERSION:=2.0.6 PKG_RELEASE:=1 -PKG_SOURCE_URL:=http://unc.dl.sourceforge.net/sourceforge/ebtables/ +PKG_SOURCE_URL:=@SF/ebtables PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.gz PKG_BUILD_DIR:=$(BUILD_DIR)/ebtables-v$(PKG_VERSION) PKG_CAT:=zcat @@ -16,7 +16,7 @@ PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/haserl/Makefile b/package/haserl/Makefile index 7e6c97af93..2ad108343f 100644 --- a/package/haserl/Makefile +++ b/package/haserl/Makefile @@ -4,7 +4,7 @@ PKG_NAME := haserl PKG_VERSION := 0.7.3 PKG_RELEASE := 3 -PKG_SOURCE_SITE := http://dl.sourceforge.net/sourceforge/haserl/ +PKG_SOURCE_SITE := @SF/haserl PKG_SOURCE_FILE := $(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_CAT := zcat PKG_SOURCE_DIR := $(PKG_NAME)-$(PKG_VERSION) @@ -14,7 +14,7 @@ PKG_IPK := $(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/ipkg/rules: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/package/iproute2/Makefile b/package/iproute2/Makefile index 6c786eacfe..313435a47b 100644 --- a/package/iproute2/Makefile +++ b/package/iproute2/Makefile @@ -20,7 +20,7 @@ PKG_TC:=$(PACKAGE_DIR)/tc_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_TC_DIR:=$(PKG_BUILD_DIR)/ipkg/tc $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/iptables/Makefile b/package/iptables/Makefile index c50c4bdb38..910864583f 100644 --- a/package/iptables/Makefile +++ b/package/iptables/Makefile @@ -38,7 +38,7 @@ endif $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(PKG_BUILD_DIR)/modules diff --git a/package/libelf/Makefile b/package/libelf/Makefile index 65105697a5..3767f17c96 100644 --- a/package/libelf/Makefile +++ b/package/libelf/Makefile @@ -15,7 +15,7 @@ PKG_IPK_DIR :=$(PKG_BUILD_DIR)/ipkg/ $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/package/libpcap/Makefile b/package/libpcap/Makefile index 279190c02a..6d0dfafe7d 100644 --- a/package/libpcap/Makefile +++ b/package/libpcap/Makefile @@ -13,7 +13,7 @@ PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_SOURCE_DIR) $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/package/linux/linux.mk b/package/linux/linux.mk index 225683d08d..e0d0acc846 100644 --- a/package/linux/linux.mk +++ b/package/linux/linux.mk @@ -36,10 +36,10 @@ LINUX_BINARY_ET_DRIVER=kernel-binary-et.tar.gz TARGET_MODULES_DIR=$(TARGET_DIR)/lib/modules/$(LINUX_VERSION) $(DL_DIR)/$(LINUX_BINARY_WL_DRIVER): - $(WGET) -P $(DL_DIR) $(LINUX_BINARY_DRIVER_SITE)/$(LINUX_BINARY_WL_DRIVER) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_BINARY_WL_DRIVER) x $(LINUX_BINARY_DRIVER_SITE) $(DL_DIR)/$(LINUX_BINARY_ET_DRIVER): - $(WGET) -P $(DL_DIR) $(LINUX_BINARY_DRIVER_SITE)/$(LINUX_BINARY_ET_DRIVER) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_BINARY_ET_DRIVER) x $(LINUX_BINARY_DRIVER_SITE) $(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE) $(DL_DIR)/$(LINUX_BINARY_WL_DRIVER) $(DL_DIR)/$(LINUX_BINARY_ET_DRIVER) -mkdir -p $(BUILD_DIR) diff --git a/package/lzo/Makefile b/package/lzo/Makefile index 414ec3eb26..05bb95e9cb 100644 --- a/package/lzo/Makefile +++ b/package/lzo/Makefile @@ -14,7 +14,7 @@ PKG_IPK := $(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/package/matrixssl/Makefile b/package/matrixssl/Makefile index 2352742b9a..cd39be304c 100644 --- a/package/matrixssl/Makefile +++ b/package/matrixssl/Makefile @@ -14,7 +14,7 @@ PKG_IPK := $(PACKAGE_DIR)/lib$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).i $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/package/microperl/Makefile b/package/microperl/Makefile index ca6368ef5d..5ec836e6fd 100644 --- a/package/microperl/Makefile +++ b/package/microperl/Makefile @@ -16,7 +16,7 @@ PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/ncurses/Makefile b/package/ncurses/Makefile index 1a3ad4a561..633fc9f765 100644 --- a/package/ncurses/Makefile +++ b/package/ncurses/Makefile @@ -14,7 +14,7 @@ PKG_IPK := $(PACKAGE_DIR)/lib$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).i $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/ipkg/rules: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/package/openssl/Makefile b/package/openssl/Makefile index c038f02cee..cced77d742 100644 --- a/package/openssl/Makefile +++ b/package/openssl/Makefile @@ -15,7 +15,7 @@ OPENSSL_NO_CIPHERS:=no-idea no-mdc2 no-rc5 no-rc2 no-md2 no-md4 $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/package/openvpn/Makefile b/package/openvpn/Makefile index 1c7b06e5fa..c549e66a4d 100644 --- a/package/openvpn/Makefile +++ b/package/openvpn/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openvpn PKG_VERSION:=2.0_rc16 PKG_RELEASE:=1 -PKG_SOURCE_URL:=http://puzzle.dl.sourceforge.net/sourceforge/openvpn +PKG_SOURCE_URL:=@SF/openvpn PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_CAT:=zcat @@ -16,7 +16,7 @@ PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/openwrt/Makefile b/package/openwrt/Makefile index 2c695bc409..8a9ff25cff 100644 --- a/package/openwrt/Makefile +++ b/package/openwrt/Makefile @@ -26,7 +26,7 @@ LINKSYS_WLCONF_TGZ=linksys-wlconf.tar.gz LINKSYS_WLCONF_DIR=$(BUILD_DIR)/linksys-wlconf $(DL_DIR)/$(LINKSYS_WLCONF_TGZ): - $(WGET) -P $(DL_DIR) $(LINKSYS_TGZ_SITE)/$(LINKSYS_WLCONF_TGZ) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINKSYS_WLCONF_TGZ) x $(LINKSYS_TGZ_SITE) $(LINKSYS_WLCONF_DIR)/.unpacked: $(DL_DIR)/$(LINKSYS_WLCONF_TGZ) zcat $(DL_DIR)/$(LINKSYS_WLCONF_TGZ) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/pcre/Makefile b/package/pcre/Makefile index de5680b8be..8f4e550bef 100644 --- a/package/pcre/Makefile +++ b/package/pcre/Makefile @@ -14,7 +14,7 @@ PKG_IPK := $(PACKAGE_DIR)/lib$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).i $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/ipkg/rules: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/package/popt/Makefile b/package/popt/Makefile index e00a10b49f..b35e097136 100644 --- a/package/popt/Makefile +++ b/package/popt/Makefile @@ -14,7 +14,7 @@ PKG_IPK := $(PACKAGE_DIR)/lib$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).i $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/ipkg/rules: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/package/ppp/Makefile b/package/ppp/Makefile index 69a934bea2..032a228e00 100644 --- a/package/ppp/Makefile +++ b/package/ppp/Makefile @@ -53,7 +53,7 @@ endif $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/package/pptp/Makefile b/package/pptp/Makefile index d0803103bb..0ddd247dc6 100644 --- a/package/pptp/Makefile +++ b/package/pptp/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pptp PKG_VERSION:=1.6.0 PKG_RELEASE:=1 -PKG_SOURCE_URL:=http://unc.dl.sourceforge.net/sourceforge/pptpclient/ +PKG_SOURCE_URL:=@SF/pptpclient PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_CAT:=zcat @@ -16,7 +16,7 @@ PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/pptpd/Makefile b/package/pptpd/Makefile index a320b15ac6..5714e4d786 100644 --- a/package/pptpd/Makefile +++ b/package/pptpd/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pptpd PKG_VERSION:=1.2.3 PKG_RELEASE:=1 -PKG_SOURCE_URL:=http://unc.dl.sourceforge.net/sourceforge/poptop +PKG_SOURCE_URL:=@SF/poptop PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_CAT:=zcat @@ -16,7 +16,7 @@ PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/strace/Makefile b/package/strace/Makefile index 2702b72e7d..a5235eaa48 100644 --- a/package/strace/Makefile +++ b/package/strace/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=strace PKG_VERSION:=4.5.9 PKG_RELEASE:=1 -PKG_SOURCE_URL:=http://aleron.dl.sourceforge.net/sourceforge/strace +PKG_SOURCE_URL:=@SF/strace PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_CAT:=bzcat @@ -16,7 +16,7 @@ PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/tcpdump/Makefile b/package/tcpdump/Makefile index 82abd30ff7..01cef5e2d0 100644 --- a/package/tcpdump/Makefile +++ b/package/tcpdump/Makefile @@ -16,7 +16,7 @@ PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg $(DL_DIR)/$(PKG_SOURCE): - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) x $(PKG_SOURCE_URL) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - diff --git a/package/zlib/Makefile b/package/zlib/Makefile index 6d9144f16c..b01ff46950 100644 --- a/package/zlib/Makefile +++ b/package/zlib/Makefile @@ -14,7 +14,7 @@ PKG_IPK := $(PACKAGE_DIR)/zlib_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/scripts/download.pl b/scripts/download.pl new file mode 100755 index 0000000000..a3a5f09d9e --- /dev/null +++ b/scripts/download.pl @@ -0,0 +1,76 @@ +#!/usr/bin/perl +use strict; +use warnings; + +my $target = shift @ARGV; +my $filename = shift @ARGV; +my $md5sum = shift @ARGV; +my @mirrors = @ARGV; + +my $ok; + +@mirrors > 0 or die "Syntax: $0 [ ...]\n"; + +sub download +{ + my $mirror = shift; + + open WGET, "wget -t1 --connect-timeout=20 --read-timeout=15 -O- \"$mirror/$filename\" |" or die "Cannot launch wget.\n"; + open MD5SUM, "| md5sum > \"$target/$filename.md5sum\"" or die "Cannot launch md5sum.\n"; + open OUTPUT, "> $target/$filename.dl" or die "Cannot create file $target/$filename.dl: $!\n"; + my $buffer; + while (read WGET, $buffer, 1048576) { + print MD5SUM $buffer; + print OUTPUT $buffer; + } + close MD5SUM; + close WGET; + close OUTPUT; + + if (($? >> 8) != 0 ) { + print STDERR "Download failed.\n"; + cleanup(); + return; + } + + my $sum = `cat "$target/$filename.md5sum"`; + $sum =~ /^(\w+)\s+/ or die "Could not generate md5sum\n"; + $sum = $1; + + if (($md5sum =~ /\w{32}/) and ($sum ne $md5sum)) { + print STDERR "MD5 sum of the downloaded file does not match - deleting download.\n"; + cleanup(); + return; + } + + unlink "$target/$filename"; + system("mv \"$target/$filename.dl\" \"$target/$filename\""); +} + +sub cleanup +{ + unlink "$target/$filename.dl"; + unlink "$target/$filename.md5sum"; +} + +while (!$ok) { + my $mirror = shift @mirrors; + $mirror or die "No more mirrors to try - giving up.\n"; + + if ($mirror =~ /^\@SF\/(.+)$/) { + my $sfpath = $1; + open SF, "wget -t1 -q -O- 'http://prdownloads.sf.net/$sfpath/$filename' |"; + while () { + /RADIO NAME=use_default VALUE=(\w+) OnClick="form\.submit\(\)">/ and do { + push @mirrors, "http://$1.dl.sourceforge.net/sourceforge/$sfpath"; + }; + } + close SF; + } else { + download($mirror); + } + -f "$target/$filename" and $ok = 1; +} + +$SIG{INT} = \&cleanup; + diff --git a/target/jffs2/jffs2root.mk b/target/jffs2/jffs2root.mk index 1c7b962cfe..450c741f72 100644 --- a/target/jffs2/jffs2root.mk +++ b/target/jffs2/jffs2root.mk @@ -10,7 +10,7 @@ MTD_SITE=http://ftp.debian.org/debian/pool/main/m/mtd MKFS_JFFS2=$(shell which mkfs.jffs2 2>/dev/null || echo $(MTD_DIR)/util/mkfs.jffs2) $(DL_DIR)/$(MTD_SOURCE): - $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(MTD_SOURCE) x $(MTD_SITE) $(MTD_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE) zcat $(DL_DIR)/$(MTD_SOURCE) | tar -C $(BUILD_DIR) -xvf - diff --git a/target/squashfs-lzma/squashfslzmaroot.mk b/target/squashfs-lzma/squashfslzmaroot.mk index ee7ede84b0..62b7dbb7b7 100644 --- a/target/squashfs-lzma/squashfslzmaroot.mk +++ b/target/squashfs-lzma/squashfslzmaroot.mk @@ -9,7 +9,7 @@ SQUASHFSLZMA_SOURCE=squashfs2.1-r2-lzma.tar.gz SQUASHFSLZMA_SITE=http://openwrt.openbsd-geek.de $(DL_DIR)/$(SQUASHFSLZMA_SOURCE): - $(WGET) -P $(DL_DIR) $(SQUASHFSLZMA_SITE)/$(SQUASHFSLZMA_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(SQUASHFSLZMA_SOURCE) x $(SQUASHFSLZMA_SITE) $(SQUASHFSLZMA_DIR)/.unpacked: $(DL_DIR)/$(SQUASHFSLZMA_SOURCE) zcat $(DL_DIR)/$(SQUASHFSLZMA_SOURCE) | tar -C $(BUILD_DIR) -xvf - diff --git a/toolchain/binutils/binutils.mk b/toolchain/binutils/binutils.mk index 8fccbac370..1bce3f932f 100644 --- a/toolchain/binutils/binutils.mk +++ b/toolchain/binutils/binutils.mk @@ -24,7 +24,7 @@ BINUTILS_DIR1:=$(TOOL_BUILD_DIR)/binutils-$(BINUTILS_VERSION)-build $(DL_DIR)/$(BINUTILS_SOURCE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(BINUTILS_SITE)/$(BINUTILS_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(BINUTILS_SOURCE) x $(BINUTILS_SITE) $(BINUTILS_DIR)/.unpacked: $(DL_DIR)/$(BINUTILS_SOURCE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/toolchain/gcc/gcc-uclibc-3.x.mk b/toolchain/gcc/gcc-uclibc-3.x.mk index 878a55d270..09829db003 100644 --- a/toolchain/gcc/gcc-uclibc-3.x.mk +++ b/toolchain/gcc/gcc-uclibc-3.x.mk @@ -57,7 +57,7 @@ GCC_BUILD_DIR1:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)-initial $(DL_DIR)/$(GCC_SOURCE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(GCC_SITE)/$(GCC_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(GCC_SOURCE) x $(GCC_SITE) $(GCC_DIR)/.unpacked: $(DL_DIR)/$(GCC_SOURCE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/toolchain/ipkg-utils/Makefile b/toolchain/ipkg-utils/Makefile index 0cfe3c06e4..d46e4f365c 100644 --- a/toolchain/ipkg-utils/Makefile +++ b/toolchain/ipkg-utils/Makefile @@ -18,7 +18,7 @@ PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_SOURCE_DIR) $(DL_DIR)/$(PKG_SOURCE_FILE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(PKG_SOURCE_SITE)/$(PKG_SOURCE_FILE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) x $(PKG_SOURCE_SITE) $(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE_FILE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/toolchain/kernel-headers/kernel-headers.mk b/toolchain/kernel-headers/kernel-headers.mk index 9ef884ef4c..73a13cdcae 100644 --- a/toolchain/kernel-headers/kernel-headers.mk +++ b/toolchain/kernel-headers/kernel-headers.mk @@ -1,6 +1,7 @@ # linux kernel headers for toolchain LINUX_HEADERS_VERSION=2.4.29 +LINUX_KERNEL_MD5SUM:=fcf8b6bb620467f27b657c1c4a60bbff LINUX_HEADERS_SITE=http://www.kernel.org/pub/linux/kernel/v2.4 LINUX_HEADERS_SOURCE=linux-$(LINUX_HEADERS_VERSION).tar.bz2 LINUX_HEADERS_CONFIG=./linux.config @@ -12,7 +13,7 @@ LINUX_HEADERS_ARCH:=$(shell echo $(ARCH) | sed -e 's/i[3-9]86/i386/' \ $(DL_DIR)/$(LINUX_HEADERS_SOURCE): -mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(LINUX_HEADERS_SITE)/$(LINUX_HEADERS_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_HEADERS_SOURCE) $(LINUX_KERNEL_MD5SUM) $(LINUX_HEADERS_SITE) $(LINUX_HEADERS_DIR)/.unpacked: $(DL_DIR)/$(LINUX_HEADERS_SOURCE) mkdir -p $(TOOL_BUILD_DIR) diff --git a/toolchain/sed/sed.mk b/toolchain/sed/sed.mk index a4f1466ec6..2dfd205f2e 100644 --- a/toolchain/sed/sed.mk +++ b/toolchain/sed/sed.mk @@ -18,7 +18,7 @@ HOST_SED_TARGET=$(shell ./sedcheck.sh) $(DL_DIR)/$(SED_SOURCE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(SED_SITE)/$(SED_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(SED_SOURCE) x $(SED_SITE) sed-source: $(DL_DIR)/$(SED_SOURCE) diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk index eec100f83b..f7b6d2be6a 100644 --- a/toolchain/uClibc/uclibc.mk +++ b/toolchain/uClibc/uclibc.mk @@ -33,7 +33,7 @@ UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \ $(DL_DIR)/$(UCLIBC_SOURCE): mkdir -p $(DL_DIR) - $(WGET) -P $(DL_DIR) $(UCLIBC_SITE)/$(UCLIBC_SOURCE) + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(UCLIBC_SOURCE) x $(UCLIBC_SITE) $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE) mkdir -p $(TOOL_BUILD_DIR)