[yocto] [thud]: Issues with git sub modules

philippe gislard philippe.gislard at gmail.com
Wed Mar 6 01:04:30 PST 2019


Hello everyone,

Our use case is the following:
- We are building firmwares using yocto on machines that have no internet access
- We have a mirror that we are feeding with tarballs generated by a
machine connected to internet
- We want to port our BSP to yocto thud

Until now (we used krogoth) our mirror was operating properly.

Since we switched to thud, the build systems is generating tarballs of
git repositories (i.e.: gstreamer1.0-plugins-good_1.14.imx.bb, from
freescale) containing symbolic links to git submodules (gstreamer
common).
The issue is that these symbolic links contain an absolute path which
is not portable on other machines.

We fixed it by patching the yocto framework so it generates a relative
symbolic link instead.

_We want to be sure is that is the proper way to fix the issue we are
facing for our use case_

You will find the patch we used at the end of this mail.

Thank you.

>From 456bc347c38039006619c0e95831cb4faf4d8c49 Mon Sep 17 00:00:00 2001
From: Philippe GISLARD <philippe.gislard at morpho.com>
Date: Wed, 6 Mar 2019 10:03:43 +0100
Subject: [PATCH] Change the git submodule symbolic link from absolute to
 relative in order to allow sharing the downloaded packages between different
 build machines

Signed-off-by: Philippe GISLARD <philippe.gislard at morpho.com>
Signed-off-by: Fabien MICAELLI <fabien.micaelli.yocto at fabisoft.com>
---
 bitbake/lib/bb/fetch2/gitsm.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbake/lib/bb/fetch2/gitsm.py b/bitbake/lib/bb/fetch2/gitsm.py
index 35729db..009b2af 100644
--- a/bitbake/lib/bb/fetch2/gitsm.py
+++ b/bitbake/lib/bb/fetch2/gitsm.py
@@ -119,7 +119,7 @@ class GitSM(Git):
                     os.makedirs(os.path.dirname(symlink_path), exist_ok=True)
                 except OSError:
                     pass
-                os.symlink(local_paths[module], symlink_path)
+                os.symlink(os.path.relpath(local_paths[module],
os.path.dirname(symlink_path)), symlink_path)

         return True

-- 
2.7.4

-- 
Philippe GISLARD


More information about the yocto mailing list