aboutsummaryrefslogtreecommitdiff
path: root/package/pkg-download.mk
diff options
context:
space:
mode:
authorGravatar Yann E. MORIN <yann.morin.1998@free.fr>2014-12-11 23:52:07 +0100
committerGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-12-11 23:59:25 +0100
commit9b88c604843ee176bb82d3d2185b0663837920e5 (patch)
treeb89f5155bff5eb4c9f7ed109925dee3fbae2d157 /package/pkg-download.mk
parent2685937e06d6ede44b88b223e02b38b3ff66a53c (diff)
downloadbuildroot-9b88c604843ee176bb82d3d2185b0663837920e5.tar.gz
buildroot-9b88c604843ee176bb82d3d2185b0663837920e5.tar.bz2
pkg-download: verify the hashes from the download wrapper
Instead of repeating the check in our download rules, delegate the check of the hashes to the download wrapper. This needs three different changes: - add a new argument to the download wrapper, that is the full path to the hash file; if the hash file does not exist, that does not change the current behaviour, as the existence of the hash file is checked for in the check-hash script; - add a third argument to the check-hash script, to be the basename of the file to check; this is required because we no longer check the final file with the final filename, but an intermediate file with a temporary filename; - do the actual call to the check-hash script from within the download wrapper. This further paves the way to doing pre-download checks of the hashes for the locally cached files. Note: this patch removes the check for hashes for already downloaded files, since the wrapper script exits early. The behaviour to check localy cached files will be restored and enhanced in the following patch. [Thomas: fix minor typo in comment.] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <jacmet@uclibc.org> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package/pkg-download.mk')
-rw-r--r--package/pkg-download.mk28
1 files changed, 11 insertions, 17 deletions
diff --git a/package/pkg-download.mk b/package/pkg-download.mk
index c021e92db8..ba72fc1f0e 100644
--- a/package/pkg-download.mk
+++ b/package/pkg-download.mk
@@ -60,17 +60,6 @@ domainseparator = $(if $(1),$(1),/)
# github(user,package,version): returns site of GitHub repository
github = https://github.com/$(1)/$(2)/archive/$(3)
-# Helper for checking a tarball's checksum
-# If the hash does not match, remove the incorrect file
-# $(1): the path to the file with the hashes
-# $(2): the full path to the file to check
-define VERIFY_HASH
- if ! support/download/check-hash $(1) $(2) $(if $(QUIET),>/dev/null); then \
- rm -f $(2); \
- exit 1; \
- fi
-endef
-
################################################################################
# The DOWNLOAD_* helpers are in charge of getting a working copy
# of the source repository for their corresponding SCM,
@@ -98,6 +87,7 @@ endef
define DOWNLOAD_GIT
$(EXTRA_ENV) $(DL_WRAPPER) -b git \
-o $(DL_DIR)/$($(PKG)_SOURCE) \
+ -H $(PKGDIR)/$($(PKG)_RAWNAME).hash \
-- \
$($(PKG)_SITE) \
$($(PKG)_DL_VERSION) \
@@ -118,6 +108,7 @@ endef
define DOWNLOAD_BZR
$(EXTRA_ENV) $(DL_WRAPPER) -b bzr \
-o $(DL_DIR)/$($(PKG)_SOURCE) \
+ -H $(PKGDIR)/$($(PKG)_RAWNAME).hash \
-- \
$($(PKG)_SITE) \
$($(PKG)_DL_VERSION) \
@@ -135,6 +126,7 @@ endef
define DOWNLOAD_CVS
$(EXTRA_ENV) $(DL_WRAPPER) -b cvs \
-o $(DL_DIR)/$($(PKG)_SOURCE) \
+ -H $(PKGDIR)/$($(PKG)_RAWNAME).hash \
-- \
$(call stripurischeme,$(call qstrip,$($(PKG)_SITE))) \
$($(PKG)_DL_VERSION) \
@@ -154,6 +146,7 @@ endef
define DOWNLOAD_SVN
$(EXTRA_ENV) $(DL_WRAPPER) -b svn \
-o $(DL_DIR)/$($(PKG)_SOURCE) \
+ -H $(PKGDIR)/$($(PKG)_RAWNAME).hash \
-- \
$($(PKG)_SITE) \
$($(PKG)_DL_VERSION) \
@@ -174,9 +167,9 @@ endef
define DOWNLOAD_SCP
$(EXTRA_ENV) $(DL_WRAPPER) -b scp \
-o $(DL_DIR)/$(2) \
+ -H $(PKGDIR)/$($(PKG)_RAWNAME).hash \
-- \
- '$(call stripurischeme,$(call qstrip,$(1)))' && \
- $(call VERIFY_HASH,$(PKGDIR)/$($(PKG)_RAWNAME).hash,$(DL_DIR)/$(2))
+ '$(call stripurischeme,$(call qstrip,$(1)))'
endef
define SOURCE_CHECK_SCP
@@ -191,6 +184,7 @@ endef
define DOWNLOAD_HG
$(EXTRA_ENV) $(DL_WRAPPER) -b hg \
-o $(DL_DIR)/$($(PKG)_SOURCE) \
+ -H $(PKGDIR)/$($(PKG)_RAWNAME).hash \
-- \
$($(PKG)_SITE) \
$($(PKG)_DL_VERSION) \
@@ -211,9 +205,9 @@ endef
define DOWNLOAD_WGET
$(EXTRA_ENV) $(DL_WRAPPER) -b wget \
-o $(DL_DIR)/$(2) \
+ -H $(PKGDIR)/$($(PKG)_RAWNAME).hash \
-- \
- '$(call qstrip,$(1))' && \
- $(call VERIFY_HASH,$(PKGDIR)/$($(PKG)_RAWNAME).hash,$(DL_DIR)/$(2))
+ '$(call qstrip,$(1))'
endef
define SOURCE_CHECK_WGET
@@ -227,9 +221,9 @@ endef
define DOWNLOAD_LOCALFILES
$(EXTRA_ENV) $(DL_WRAPPER) -b cp \
-o $(DL_DIR)/$(2) \
+ -H $(PKGDIR)/$($(PKG)_RAWNAME).hash \
-- \
- $(call stripurischeme,$(call qstrip,$(1))) && \
- $(call VERIFY_HASH,$(PKGDIR)/$($(PKG)_RAWNAME).hash,$(DL_DIR)/$(2))
+ $(call stripurischeme,$(call qstrip,$(1)))
endef
define SOURCE_CHECK_LOCALFILES