diff mbox series

[v2,1/1] fetch2: try_mirror_url(): Skip invalid local url

Message ID e56a4f7e3c7bff7b86cecc32c2fcd43a63db0620.1754925741.git.liezhi.yang@windriver.com
State New
Headers show
Series [v2,1/1] fetch2: try_mirror_url(): Skip invalid local url | expand

Commit Message

Robert Yang Aug. 11, 2025, 3:41 p.m. UTC
From: Robert Yang <liezhi.yang@windriver.com>

There can be multiple PREMIRRORs each PREMIRROR contains specifics sources for
each layer, each recipe will try the PREMIRRORs one by one until succeed, but
the trying would be failed if the PREMIRROR doesn't contain the required
sources, so return it immediately to make log.do_fetch clean, and tt also can
fix a warning when BB_GIT_SHALLOW and is enabled and failed to fetch the source
from the PREMIRROR:

Fast shallow clone failed, try to skip fast mode now.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 bitbake/lib/bb/fetch2/__init__.py | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Robert Yang Aug. 12, 2025, 3:50 a.m. UTC | #1
On 8/11/25 23:41, Robert Yang via lists.openembedded.org wrote:
> From: Robert Yang <liezhi.yang@windriver.com>
> 
> There can be multiple PREMIRRORs each PREMIRROR contains specifics sources for
> each layer, each recipe will try the PREMIRRORs one by one until succeed, but
> the trying would be failed if the PREMIRROR doesn't contain the required
> sources, so return it immediately to make log.do_fetch clean, and tt also can
> fix a warning when BB_GIT_SHALLOW and is enabled and failed to fetch the source
> from the PREMIRROR:
> 
> Fast shallow clone failed, try to skip fast mode now.
> 
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
>   bitbake/lib/bb/fetch2/__init__.py | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
> index 0ad987c596..1bab8f7f57 100644
> --- a/bitbake/lib/bb/fetch2/__init__.py
> +++ b/bitbake/lib/bb/fetch2/__init__.py
> @@ -1067,6 +1067,10 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
>       # Return of None or a value means we're finished
>       # False means try another url
>   
> +    # Skip fetching it when the local url's path doesn't exist
> +    if ud.parm.get('protocol', '') == 'file' and not os.path.exists(ud.path):

Sorry, this patch is incorrect, I need check repo and repo.git because git works 
with or without .git suffix. Will send a V3 for it.

// Robert

> +        return False
 > +>       if ud.lockfile and ud.lockfile != origud.lockfile:
>           lf = bb.utils.lockfile(ud.lockfile)
>   
> 
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#17861): https://lists.openembedded.org/g/bitbake-devel/message/17861
> Mute This Topic: https://lists.openembedded.org/mt/114649737/7304958
> Group Owner: bitbake-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/bitbake-devel/unsub [liezhi.yang@eng.windriver.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 0ad987c596..1bab8f7f57 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -1067,6 +1067,10 @@  def try_mirror_url(fetch, origud, ud, ld, check = False):
     # Return of None or a value means we're finished
     # False means try another url
 
+    # Skip fetching it when the local url's path doesn't exist
+    if ud.parm.get('protocol', '') == 'file' and not os.path.exists(ud.path):
+        return False
+
     if ud.lockfile and ud.lockfile != origud.lockfile:
         lf = bb.utils.lockfile(ud.lockfile)