summaryrefslogtreecommitdiff
path: root/third-party
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2016-12-09 07:14:09 -0700
committerGeorge Joseph <gjoseph@digium.com>2016-12-09 07:14:09 -0700
commitcd46e86491e3f8946bbe9c97b8a1d7eaf708dda9 (patch)
treedf614563e2c3d6ecf95196720d0d0516aa383435 /third-party
parent791c15942bf31eba489cb6dd2f58a22d2fe6aec2 (diff)
pjproject_bundled: Retry download if previously saved tarball is bad
If a tarball is corrupted during download, the makefile will attempt to download it again. If the tarball somehow gets corrupted after it's downloaded however, the makefile was just failing. We now retry the download. ASTERISK-26653 #close Change-Id: I1b24d454852d80186f60c5a65dc4624ea8a1c359
Diffstat (limited to 'third-party')
-rw-r--r--third-party/pjproject/Makefile26
1 files changed, 17 insertions, 9 deletions
diff --git a/third-party/pjproject/Makefile b/third-party/pjproject/Makefile
index 21bdf235e..e24a5df67 100644
--- a/third-party/pjproject/Makefile
+++ b/third-party/pjproject/Makefile
@@ -87,29 +87,37 @@ SHELL_ECHO_PREFIX := echo '[pjproject] '
_all: $(TARGETS)
+define verify_tarball
+ ($(SHELL_ECHO_PREFIX) Verifying $(TARBALL) &&\
+ tarball_sum=$$($(CAT) $(TARBALL) | $(MD5) | $(SED) -n -r -e "s/^([^ ]+)\s+.*/\1/gp") ;\
+ required_sum=$$($(SED) -n -r -e "s/^([^ ]+)\s+$(TARBALL_FILE)/\1/gp" $(PJMD5SUM)) ;\
+ if [ "$$tarball_sum" != "$$required_sum" ] ; then $(SHELL_ECHO_PREFIX) Verify failed ; exit 1 ;\
+ else $(SHELL_ECHO_PREFIX) Verify successful ; exit 0 ; fi; )
+endef
+
define download_from_pjproject
- ($(SHELL_ECHO_PREFIX) Downloading $(PJPROJECT_URL)/$(@F) to $@ ;\
- $(DOWNLOAD_TO_STDOUT) $(call DOWNLOAD_TIMEOUT,5,10) $(PJPROJECT_URL)/$(@F) > $@ &&\
+ ($(SHELL_ECHO_PREFIX) Downloading $(TARBALL_URL) to $(TARBALL) ;\
+ $(DOWNLOAD_TO_STDOUT) $(call DOWNLOAD_TIMEOUT,5,10) $(TARBALL_URL) > $(TARBALL) &&\
$(SHELL_ECHO_PREFIX) Downloading $(PJPROJECT_URL)/MD5SUM to $(PJMD5SUM) &&\
$(DOWNLOAD_TO_STDOUT) $(call DOWNLOAD_TIMEOUT,5,10) $(PJPROJECT_URL)/MD5SUM.TXT > $(PJMD5SUM) &&\
- ($(SHELL_ECHO_PREFIX) Verifying $@ &&\
- tarball_sum=$$($(CAT) $@ | $(MD5) | $(SED) -n -r -e "s/^([^ ]+)\s+.*/\1/gp") ;\
- required_sum=$$($(SED) -n -r -e "s/^([^ ]+)\s+$(@F)/\1/gp" $(PJMD5SUM)) ;\
- if [ "$$tarball_sum" != "$$required_sum" ] ; then $(SHELL_ECHO_PREFIX) Verify failed ; exit 1 ; fi) &&\
- $(SHELL_ECHO_PREFIX) Verify successful ; exit 0)
+ $(verify_tarball))
endef
.DELETE_ON_ERROR:
DOWNLOAD_DIR := $(or $(EXTERNALS_CACHE_DIR),$(TMPDIR),$(wildcard /tmp),.)
-TARBALL = $(DOWNLOAD_DIR)/pjproject-$(PJPROJECT_VERSION).tar.bz2
+TARBALL_FILE = pjproject-$(PJPROJECT_VERSION).tar.bz2
+TARBALL = $(DOWNLOAD_DIR)/$(TARBALL_FILE)
+TARBALL_URL = $(PJPROJECT_URL)/$(TARBALL_FILE)
PJMD5SUM = $(patsubst %.tar.bz2,%.md5,$(TARBALL))
$(TARBALL): ../versions.mak
$(CMD_PREFIX) $(download_from_pjproject) || (rm -rf $@ ;\
- $(SHELL_ECHO_PREFIX) Retrying download ; sleep 3 ; $(download_from_pjproject))
+ $(SHELL_ECHO_PREFIX) Retrying download ; $(download_from_pjproject))
source/.unpacked: $(DOWNLOAD_DIR)/pjproject-$(PJPROJECT_VERSION).tar.bz2
+ ($(verify_tarball)) || (rm -rf $@ ;\
+ $(SHELL_ECHO_PREFIX) Retrying download ; $(download_from_pjproject))
$(ECHO_PREFIX) Unpacking $<
-@rm -rf source pjproject-* >/dev/null 2>&1
$(CMD_PREFIX) $(TAR) -xjf $<