1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-31 12:49:46 +00:00

bitbake: gitsm: Allow relative URIs when fetching

Some repositories may specify a relative submodule path.  If this happens,
it is our responsibility to use the parents URL (ud) and handle any relative
processing ourselves.

(Bitbake rev: fd9893c338df7828b2c01f1d548aa86dfcf7c50a)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mark Hatle
2018-10-02 17:08:03 -04:00
committed by Richard Purdie
parent 41e6a3efac
commit 8c3db8cb9e
+5
View File
@@ -31,6 +31,7 @@ NOTE: Switching a SRC_URI from "git://" to "gitsm://" requires a clean of your r
import os import os
import bb import bb
import copy
from bb.fetch2.git import Git from bb.fetch2.git import Git
from bb.fetch2 import runfetchcmd from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger from bb.fetch2 import logger
@@ -77,6 +78,10 @@ class GitSM(Git):
submodules.append(m) submodules.append(m)
paths[m] = md['path'] paths[m] = md['path']
uris[m] = md['url'] uris[m] = md['url']
if uris[m].startswith('..'):
newud = copy.copy(ud)
newud.path = os.path.realpath(os.path.join(newud.path, md['url']))
uris[m] = Git._get_repo_url(self, newud)
for module in submodules: for module in submodules:
module_hash = runfetchcmd("%s ls-tree -z -d %s %s" % (ud.basecmd, ud.revisions[name], paths[module]), d, quiet=True, workdir=ud.clonedir) module_hash = runfetchcmd("%s ls-tree -z -d %s %s" % (ud.basecmd, ud.revisions[name], paths[module]), d, quiet=True, workdir=ud.clonedir)