On 4/15/24 18:05, Richard Purdie wrote:
CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender and know
the content is safe.
On Mon, 2024-04-15 at 16:30 +0800, Changqing Li via lists.openembedded.org
wrote:
From: Changqing Li <[email protected]>
When there are tarballs in local mirror file://, do_fetch will
create symlink under DL_DIR, eg:
pseudo-prebuilt-2.33.tar.xz ->
/project/path/to/localmirrorA/pseudo-prebuilt-2.33.tar.xz
after user update path from localmirrorA to localmirrorB, because
do_fetch don't depends on PREMIRRORS/MIRRORS, do_fetch will not
be rerun, so the symlink will not update to:
pseudo-prebuilt-2.33.tar.xz ->
/project/path/to/localmirrorB/pseudo-prebuilt-2.33.tar.xz
then, do_upack will failed since the tarball cannot be found.
Signed-off-by: Changqing Li <[email protected]>
---
meta/classes-global/base.bbclass | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass
index 0999b42daa..5094a1540e 100644
--- a/meta/classes-global/base.bbclass
+++ b/meta/classes-global/base.bbclass
@@ -139,6 +139,7 @@ do_fetch[file-checksums] =
"${@bb.fetch.get_checksum_file_list(d)}"
do_fetch[file-checksums] += " ${@get_lic_checksum_file_list(d)}"
do_fetch[prefuncs] += "fetcher_hashes_dummyfunc"
do_fetch[network] = "1"
+do_fetch[vardeps] += "PREMIRRORS MIRRORS"
python base_do_fetch() {
src_uri = (d.getVar('SRC_URI') or "").split()
Changing PREMIRRORS or MIRRORS should not change the output of the
task, ever, so do_fetch shouldn't depend upon them.
The failure case I met is like this:
I have a project with PREMIRRORS setting, and the tarballs are under it.
PREMIRRORS:append = "file:///project/path/to/localmirrorA"
after first bitbake pseudo-native, there will a symlink under DL_DIR:
pseudo-prebuilt-2.33.tar.xz ->
/project/path/to/localmirrorA/pseudo-prebuilt-2.33.tar.xz
Then, Since all the tarballs are moved to /project/path/to/localmirrorB
I changed PREMIRRORS:append = "file:///project/path/to/localmirrorB"
Then bitbake pseudo-native again, do_fetch will not rerun since no
signature change.
do_unpack rerun since one dependency change, it will try to unpack
${DL_DIR}/pseudo-prebuilt-2.33.tar.xz,
but since do_fetch not rerun, ${DL_DIR}/pseudo-prebuilt-2.33.tar.xz
still point to localmirrorA, but localmirrorA not exist
since localmirrorB replace it. Then will cause do_unpck failure:
NOTE: Unpacking /build/downloads/pseudo-prebuilt-2.33.tar.xz to
/build/tmp-glibc/work/x86_64-linux/pseudo-native/1.9.0+git xz:
/build/downloads/pseudo-prebuilt-2.33.tar.xz: No such file or directory
So this is why I want to add this depends, and want to make do_fetch
rerun and resymlink to /project/path/to/localmirrorB
Regards
Changqing
Cheers,
Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198246):
https://lists.openembedded.org/g/openembedded-core/message/198246
Mute This Topic: https://lists.openembedded.org/mt/105532159/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-