This adds a patch to the cargo recipe that prohibits cargo from trying
to update git submodules when running in --offline mode.

Signed-off-by: Bartosz Golaszewski <b...@bgdev.pl>
---
 meta/recipes-devtools/cargo/cargo.inc         |  2 +-
 ...-t-update-submodules-in-offline-mode.patch | 32 +++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)
 create mode 100644 
meta/recipes-devtools/cargo/cargo/0001-git-don-t-update-submodules-in-offline-mode.patch

diff --git a/meta/recipes-devtools/cargo/cargo.inc 
b/meta/recipes-devtools/cargo/cargo.inc
index 607c51fc3d..6ab4e0a5f7 100644
--- a/meta/recipes-devtools/cargo/cargo.inc
+++ b/meta/recipes-devtools/cargo/cargo.inc
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = " \
     file://LICENSE-THIRD-PARTY;md5=f257ad009884cb88a3a87d6920e7180a \
 "
 
-
+SRC_URI += "file://0001-git-don-t-update-submodules-in-offline-mode.patch"
 S = "${RUSTSRC}/src/tools/cargo"
 CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
 EXCLUDE_FROM_WORLD = "1"
diff --git 
a/meta/recipes-devtools/cargo/cargo/0001-git-don-t-update-submodules-in-offline-mode.patch
 
b/meta/recipes-devtools/cargo/cargo/0001-git-don-t-update-submodules-in-offline-mode.patch
new file mode 100644
index 0000000000..d138c4b911
--- /dev/null
+++ 
b/meta/recipes-devtools/cargo/cargo/0001-git-don-t-update-submodules-in-offline-mode.patch
@@ -0,0 +1,32 @@
+From 4768c657905356da417f50d3cbb203c76baf1ab2 Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <b...@bgdev.pl>
+Date: Mon, 6 Jun 2022 12:13:02 +0200
+Subject: [PATCH] git: don't update submodules in offline mode
+
+When we're running in --offline mode, don't try to update git
+submodules or else we're bail out with a network error if it's actually
+inaccessible.
+---
+Upstream-Status: Submitted [https://github.com/rust-lang/cargo/pull/10730]
+
+ src/tools/cargo/src/cargo/sources/git/utils.rs | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/cargo/sources/git/utils.rs b/src/cargo/sources/git/utils.rs
+index 4eafae1c9..9ed991e36 100644
+--- a/src/cargo/sources/git/utils.rs
++++ b/src/cargo/sources/git/utils.rs
+@@ -177,7 +177,9 @@ impl GitDatabase {
+             Some(c) => c,
+             None => GitCheckout::clone_into(dest, self, rev, cargo_config)?,
+         };
+-        checkout.update_submodules(cargo_config)?;
++        if !cargo_config.offline() {
++            checkout.update_submodules(cargo_config)?;
++        }
+         Ok(checkout)
+     }
+ 
+-- 
+2.34.1
+
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#166628): 
https://lists.openembedded.org/g/openembedded-core/message/166628
Mute This Topic: https://lists.openembedded.org/mt/91576742/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to