oe-go-mod-autogen: fix src_uri generation

The template code for writing SRC_URI entries contained
commented lines with "%s", but those are picked up as
replacement markers. As such, we failed to write a SRC_URI
at all

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
Bruce Ashfield 2024-07-11 19:56:01 +00:00
parent 61f643c386
commit e4b61cffba

View File

@ -104,11 +104,11 @@ class GoModTool(object):
# check if this repo needs autogen # check if this repo needs autogen
repo_url, repo_dest_dir, repo_fullrev = self.modules_repoinfo[self.repo.split('://')[1]] repo_url, repo_dest_dir, repo_fullrev = self.modules_repoinfo[self.repo.split('://')[1]]
if os.path.isdir(os.path.join(repo_dest_dir, 'vendor')): if os.path.isdir(os.path.join(repo_dest_dir, 'vendor')):
logger.info("vendor direcotry has already existed for %s, no need to add other repos" % self.repo) logger.info("vendor directory already exists for %s, no need to add other repos" % self.repo)
return return
go_mod_file = os.path.join(repo_dest_dir, 'go.mod') go_mod_file = os.path.join(repo_dest_dir, 'go.mod')
if not os.path.exists(go_mod_file): if not os.path.exists(go_mod_file):
logger.info("go.mod file does not exist for %s, no need to add otehr repos" % self.repo) logger.info("go.mod file does not exist for %s, no need to add other repos" % self.repo)
return return
self.parse_go_mod(go_mod_file) self.parse_go_mod(go_mod_file)
self.show_go_mod_info() self.show_go_mod_info()
@ -499,11 +499,11 @@ class GoModTool(object):
src_uri_inc_file = os.path.join(self.workdir, 'src_uri.inc') src_uri_inc_file = os.path.join(self.workdir, 'src_uri.inc')
# record the <name> after writting SRCREV_<name>, this is to avoid modules having the same basename resulting in same SRCREV_xxx # record the <name> after writting SRCREV_<name>, this is to avoid modules having the same basename resulting in same SRCREV_xxx
srcrev_name_recorded = [] srcrev_name_recorded = []
# pre styhead releases
# SRC_URI += "git://%s;name=%s;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/%s"
template = """# %s %s template = """# %s %s
# [1] git ls-remote %s %s # [1] git ls-remote %s %s
SRCREV_%s="%s" SRCREV_%s="%s"
# pre styhead releases
# SRC_URI += "git://%s;name=%s;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/%s"
# styhead and newer # styhead and newer
SRC_URI += "git://%s;name=%s;protocol=https;nobranch=1;destsuffix=${GO_SRCURI_DESTSUFFIX}/vendor.fetch/%s" SRC_URI += "git://%s;name=%s;protocol=https;nobranch=1;destsuffix=${GO_SRCURI_DESTSUFFIX}/vendor.fetch/%s"
@ -536,7 +536,10 @@ SRC_URI += "git://%s;name=%s;protocol=https;nobranch=1;destsuffix=${GO_SRCURI_DE
# sort the src_uri_contents and then write it # sort the src_uri_contents and then write it
src_uri_contents.sort(key=take_first_len) src_uri_contents.sort(key=take_first_len)
for content in src_uri_contents: for content in src_uri_contents:
f.write(template % content) try:
f.write(template % content)
except Exception as e:
logger.warning( "exception while writing src_uri.inc: %s" % e )
logger.info("%s generated" % src_uri_inc_file) logger.info("%s generated" % src_uri_inc_file)
def gen_relocation_inc(self): def gen_relocation_inc(self):
@ -675,6 +678,13 @@ def main():
directory). If go.mod is edited, modules.txt also has to be directory). If go.mod is edited, modules.txt also has to be
updated to match the revision information. updated to match the revision information.
Note 4: if an entry in go.mod is resolving to a destination that doesn't
have a SRCREV (i.e. golang.org vs github), the destination can
be temporarily overriden by editing: wget-contents/<repo>.repo_url.cache
The next run will use the cached value versus looking it up.
% vi wget-contents/golang.org_x_sys.repo_url.cache
How to use in a recipe: How to use in a recipe:
======================= =======================