summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Config.in18
-rw-r--r--package/pkg-download.mk7
2 files changed, 23 insertions, 2 deletions
diff --git a/Config.in b/Config.in
index c182f7044..b18c92721 100644
--- a/Config.in
+++ b/Config.in
@@ -123,6 +123,22 @@ config BR2_PRIMARY_SITE
NOTE: This works for all packages using the central package
infrastructure (generic, autotools, cmake, ...)
+config BR2_PRIMARY_SITE_ONLY
+ bool "Only allow downloads from primary download site"
+ depends on BR2_PRIMARY_SITE != ""
+ help
+ If this option is enabled, downloads will only be attempted
+ from the primary download site. Other locations, like the
+ package's official download location or the backup download
+ site, will not be considered. Therefore, if the package is
+ not present on the primary site, the download fails.
+
+ This is useful for project developers who want to ensure
+ that the project can be built even if the upstream tarball
+ locations disappear.
+
+if !BR2_PRIMARY_SITE_ONLY
+
config BR2_BACKUP_SITE
string "Backup download site"
default "http://sources.buildroot.net/"
@@ -179,6 +195,8 @@ config BR2_DEBIAN_MIRROR
Usually, just add your country code like XX here:
http://ftp.XX.debian.org
+endif
+
endmenu
config BR2_JLEVEL
diff --git a/package/pkg-download.mk b/package/pkg-download.mk
index e93875988..9e9858100 100644
--- a/package/pkg-download.mk
+++ b/package/pkg-download.mk
@@ -192,8 +192,8 @@ endef
################################################################################
# DOWNLOAD -- Download helper. Will try to download source from:
# 1) BR2_PRIMARY_SITE if enabled
-# 2) Download site
-# 3) BR2_BACKUP_SITE if enabled
+# 2) Download site, unless BR2_PRIMARY_SITE_ONLY is set
+# 3) BR2_BACKUP_SITE if enabled, unless BR2_PRIMARY_SITE_ONLY is set
#
# Argument 1 is the source location
# Argument 2 is the source filename
@@ -213,6 +213,9 @@ define DOWNLOAD_INNER
*) $(call $(DL_MODE)_WGET,$(BR2_PRIMARY_SITE)/$(2),$(2)) && exit ;; \
esac ; \
fi ; \
+ if test "$(BR2_PRIMARY_SITE_ONLY)" = "y" ; then \
+ exit 1 ; \
+ fi ; \
if test -n "$(1)" ; then \
if test -z "$($(PKG)_SITE_METHOD)" ; then \
scheme="$(call geturischeme,$(1))" ; \