summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authoragc <agc>1998-07-27 11:17:51 +0000
committeragc <agc>1998-07-27 11:17:51 +0000
commita9ec2c55156a0756bb986958b922f5713b36bc19 (patch)
tree864155151073d48a406c128005230104c8938f2d /mk
parent1d1178c5812d60ec3b48ca14abbf460bb4e84591 (diff)
downloadpkgsrc-a9ec2c55156a0756bb986958b922f5713b36bc19.tar.gz
Calculate an additional checksum when a distfile is fetched - if it
doesn't match the stored checksum, retrieve the distfile from the next site in the list, rather than simply dying.
Diffstat (limited to 'mk')
-rw-r--r--mk/bsd.pkg.mk16
1 files changed, 13 insertions, 3 deletions
diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk
index 053183fe02a..c344d9071da 100644
--- a/mk/bsd.pkg.mk
+++ b/mk/bsd.pkg.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.pkg.mk,v 1.129 1998/07/26 22:20:22 tv Exp $
+# $NetBSD: bsd.pkg.mk,v 1.130 1998/07/27 11:17:51 agc Exp $
#
# This file is in the public domain.
#
@@ -745,9 +745,19 @@ do-fetch:
fi ; \
${ECHO_MSG} ">> $$file doesn't seem to exist on this system."; \
for site in ${MASTER_SITES}; do \
- ${ECHO_MSG} ">> Attempting to fetch from $${site}."; \
+ ${ECHO_MSG} ">> Attempting to fetch $$file from $${site}."; \
if ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${site}$${file} ${FETCH_AFTER_ARGS}; then \
- continue 2; \
+ if [ -f ${MD5_FILE} ]; then \
+ CKSUM=`${MD5} < ${DISTDIR}/$$file`; \
+ CKSUM2=`${AWK} '$$1 == "MD5" && $$2 == "\('$$file'\)"{print $$4;}' ${MD5_FILE}`; \
+ if [ "$$CKSUM" = "$$CKSUM2" -o "$$CKSUM2" = "IGNORE" ]; then \
+ continue 2; \
+ else \
+ ${ECHO_MSG} ">> Checksum failure - trying next site."; \
+ fi; \
+ else \
+ continue 2; \
+ fi; \
fi \
done; \
${ECHO_MSG} ">> Couldn't fetch it - please try to retrieve this";\