Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/pkg-download: add per package download fallback disable
@ 2022-09-08 15:23 jwood+buildroot
  2022-09-11  7:47 ` Yann E. MORIN
  2022-09-17 18:52 ` Thomas Petazzoni via buildroot
  0 siblings, 2 replies; 7+ messages in thread
From: jwood+buildroot @ 2022-09-08 15:23 UTC (permalink / raw)
  To: buildroot; +Cc: Justin Wood, Justin Wood, Yann E . MORIN

From: Justin Wood <jwood+buildroot@starry.com>

This is useful in cases where a package is added without hashes (e.g. private packages)
and you do not want to risk MITM attacks of the package itself.  While still allowing
download of packages that are third party with hashes, from unreliable upstreams.

This adds a new ${PKG}_DISABLE_FALLBACK_DOWNLOAD that is checked when DOWNLOAD would be
called to not include URIs from the backup site.

Additionally we use the new backup URIs if the new variable is unset in the json data
URI list to ensure consistency for consumers who do not use this feature.

Signed-off-by: Justin Wood <jwood@starry.com>
---
 package/pkg-download.mk | 9 +++++++--
 package/pkg-utils.mk    | 5 +++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/package/pkg-download.mk b/package/pkg-download.mk
index 0718f21aad..af5855230c 100644
--- a/package/pkg-download.mk
+++ b/package/pkg-download.mk
@@ -74,8 +74,12 @@ export BR_NO_CHECK_HASH_FOR =
 # DOWNLOAD_URIS - List the candidates URIs where to get the package from:
 # 1) BR2_PRIMARY_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
 #
+# BACKUP_DOWNLOAD_URIS - List the backup candidate URIs where to get packages from:
+# 1) BR2_BACKUP_SITE if enabled, unless BR2_PRIMARY_SITE_ONLY is set
+#    and unless ${PKG}_DISABLE_DOWNLOAD_FALLBACK is set
+#
+# In both vars above:
 # Argument 1 is the source location
 # Argument 2 is the upper-case package name
 #
@@ -91,7 +95,7 @@ ifeq ($(BR2_PRIMARY_SITE_ONLY),)
 DOWNLOAD_URIS += \
 	$(patsubst %/,%,$(dir $(call qstrip,$(1))))
 ifneq ($(call qstrip,$(BR2_BACKUP_SITE)),)
-DOWNLOAD_URIS += \
+BACKUP_DOWNLOAD_URIS += \
 	$(call getschemeplusuri,$(call qstrip,$(BR2_BACKUP_SITE)/$($(2)_DL_SUBDIR)),urlencode) \
 	$(call getschemeplusuri,$(call qstrip,$(BR2_BACKUP_SITE)),urlencode)
 endif
@@ -122,6 +126,7 @@ define DOWNLOAD
 		$(if $($(2)_GIT_SUBMODULES),-r) \
 		$(if $($(2)_GIT_LFS),-l) \
 		$(foreach uri,$(call DOWNLOAD_URIS,$(1),$(2)),-u $(uri)) \
+		$(if( $($(PKG)_DISABLE_DOWNLOAD_FALLBACK),,$(foreach uri,$(call BACKUP_DOWNLOAD_URIS,$(1),$(2)),-u $(uri))) \
 		$(3) \
 		$(QUIET) \
 		-- \
diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
index 6ece27baa2..a279a41df8 100644
--- a/package/pkg-utils.mk
+++ b/package/pkg-utils.mk
@@ -167,6 +167,11 @@ define _json-info-pkg-details
 					$(foreach uri,$(call DOWNLOAD_URIS,$(dl),$(1)), \
 						$(call mk-json-str,$(subst \|,|,$(uri))) \
 					) \
+                                        $(if $($(PKG)_DISABLE_DOWNLOAD_FALLBACK),,\
+						$(foreach uri,$(call BACKUP_DOWNLOAD_URIS,$(dl),$(1)), \
+							$(call mk-json-str,$(subst \|,|,$(uri))) \
+						) \
+					) \
 				)
 			]
 		},
-- 
2.37.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-05-01 19:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-08 15:23 [Buildroot] [PATCH 1/1] package/pkg-download: add per package download fallback disable jwood+buildroot
2022-09-11  7:47 ` Yann E. MORIN
2022-09-17 18:52 ` Thomas Petazzoni via buildroot
2024-04-30 17:56   ` Flávio Tapajós
2024-04-30 18:08     ` Yann E. MORIN
2024-05-01 19:09     ` Arnout Vandecappelle via buildroot
2024-05-01 19:46       ` Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox