* [PATCH 1/2] recipetool: create: keep tag= in SRC_URI
@ 2026-11-12 3:58 Babanpreet Singh
2026-11-12 3:58 ` [PATCH 2/2] recipetool: create: fix git URLs that only specify a tag Babanpreet Singh
0 siblings, 1 reply; 2+ messages in thread
From: Babanpreet Singh @ 2026-11-12 3:58 UTC (permalink / raw)
To: openembedded-core; +Cc: Ross Burton, Babanpreet Singh
The fetcher now checks that tag= resolves to SRCREV, so stop dropping
the tag from the SRC_URI of the recipe.
[YOCTO #15816]
Signed-off-by: Babanpreet Singh <bbnpreetsingh@gmail.com>
---
meta/lib/oeqa/selftest/cases/recipetool.py | 7 ++++++-
scripts/lib/recipetool/create.py | 2 --
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py b/meta/lib/oeqa/selftest/cases/recipetool.py
index 54b7cb3a65..c278abdab2 100644
--- a/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -776,7 +776,7 @@ class RecipetoolCreateTests(RecipetoolBase):
inherits = ['setuptools3']
self._test_recipe_contents(recipefile, checkvars, inherits)
- def _test_recipetool_create_git(self, srcuri, branch=None):
+ def _test_recipetool_create_git(self, srcuri, branch=None, extravars=None):
# Basic test to check http git URL mangling works
temprecipe = os.path.join(self.tempdir, 'recipe')
os.makedirs(temprecipe)
@@ -792,6 +792,7 @@ class RecipetoolCreateTests(RecipetoolBase):
checkvars['SRC_URI'] = 'git%s;protocol=%s' % (srcuri[len(scheme):], scheme)
if ';branch=' not in srcuri:
checkvars['SRC_URI'] += ';branch=' + (branch or 'master')
+ checkvars.update(extravars or {})
self._test_recipe_contents(recipefile, checkvars, [])
def test_recipetool_create_git_http(self):
@@ -806,6 +807,10 @@ class RecipetoolCreateTests(RecipetoolBase):
def test_recipetool_create_git_srcbranch(self):
self._test_recipetool_create_git('git://git.yoctoproject.org/matchbox-keyboard;protocol=https', 'matchbox-keyboard-0-1')
+ def test_recipetool_create_git_srcuri_branch_tag(self):
+ self._test_recipetool_create_git('git://git.yoctoproject.org/matchbox-keyboard;branch=matchbox-keyboard-0-1;protocol=https;tag=0.1.1',
+ extravars={'SRCREV': '630d89068dc0a1e9199306d405cb32f892dfa4d3'})
+
def _go_urifiy(self, url, version, modulepath = None, pathmajor = None, subdir = None):
modulepath = ",path='%s'" % modulepath if len(modulepath) else ''
pathmajor = ",pathmajor='%s'" % pathmajor if len(pathmajor) else ''
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index e0da96dea0..662e7a6232 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -600,8 +600,6 @@ def create_recipe(args):
logger.error(str(err))
logger.error("Possibly wrong tag name is provided")
sys.exit(1)
- # Drop tag from srcuri as it will have conflicts with SRCREV during recipe parse.
- del params['tag']
srcuri = bb.fetch.encodeurl((scheme, network, path, user, passwd, params))
if os.path.exists(os.path.join(srctree, '.gitmodules')) and srcuri.startswith('git://'):
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH 2/2] recipetool: create: fix git URLs that only specify a tag
2026-11-12 3:58 [PATCH 1/2] recipetool: create: keep tag= in SRC_URI Babanpreet Singh
@ 2026-11-12 3:58 ` Babanpreet Singh
0 siblings, 0 replies; 2+ messages in thread
From: Babanpreet Singh @ 2026-11-12 3:58 UTC (permalink / raw)
To: openembedded-core; +Cc: Ross Burton, Babanpreet Singh
A git URL with tag= and no branch= fails with:
Unable to resolve '' in upstream git repository
AUTOREV has no branch to follow now that bitbake no longer defaults to
master. Fetch the tag itself, which also lets the branch be found from
it.
AI-Generated: Uses Claude (claude-fable-5-2)
Signed-off-by: Babanpreet Singh <bbnpreetsingh@gmail.com>
---
Notes:
Tested with oe-selftest -r recipetool.RecipetoolCreateTests. Not tried
on wrynose, which has the same code.
meta/lib/oeqa/selftest/cases/recipetool.py | 7 +++++++
scripts/lib/recipetool/create.py | 4 ++++
2 files changed, 11 insertions(+)
diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py b/meta/lib/oeqa/selftest/cases/recipetool.py
index c278abdab2..804efcc755 100644
--- a/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -811,6 +811,13 @@ class RecipetoolCreateTests(RecipetoolBase):
self._test_recipetool_create_git('git://git.yoctoproject.org/matchbox-keyboard;branch=matchbox-keyboard-0-1;protocol=https;tag=0.1.1',
extravars={'SRCREV': '630d89068dc0a1e9199306d405cb32f892dfa4d3'})
+ def test_recipetool_create_git_srcuri_tag(self):
+ # The 0.1.1 tag is only on the matchbox-keyboard-0-1 branch
+ srcuri = 'git://git.yoctoproject.org/matchbox-keyboard;protocol=https;tag=0.1.1'
+ self._test_recipetool_create_git(srcuri,
+ extravars={'SRC_URI': srcuri + ';branch=matchbox-keyboard-0-1',
+ 'SRCREV': '630d89068dc0a1e9199306d405cb32f892dfa4d3'})
+
def _go_urifiy(self, url, version, modulepath = None, pathmajor = None, subdir = None):
modulepath = ",path='%s'" % modulepath if len(modulepath) else ''
pathmajor = ",pathmajor='%s'" % pathmajor if len(pathmajor) else ''
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 662e7a6232..0e73f462d3 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -520,6 +520,10 @@ def create_recipe(args):
storeTagName = params['tag']
params['nobranch'] = '1'
del params['tag']
+ if srcrev == '${AUTOREV}':
+ # Nothing for ${AUTOREV} to resolve without a branch, so
+ # fetch the tag itself
+ srcrev = storeTagName
# Assume 'master' branch if not set
if scheme in ['git', 'gitsm'] and 'branch' not in params and 'nobranch' not in params:
params['branch'] = 'master'
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-12 3:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-12 3:58 [PATCH 1/2] recipetool: create: keep tag= in SRC_URI Babanpreet Singh
2026-11-12 3:58 ` [PATCH 2/2] recipetool: create: fix git URLs that only specify a tag Babanpreet Singh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox