* [meta][PATCH v3 1/2] go-vendor.bbclass: Unpack into BP for destsuffix
@ 2026-06-22 23:03 John Ripple
2026-06-22 23:03 ` [meta][PATCH v3 2/2] go-vendor.bbclass: Remove vendor symlink John Ripple
0 siblings, 1 reply; 2+ messages in thread
From: John Ripple @ 2026-06-22 23:03 UTC (permalink / raw)
To: openembedded-core; +Cc: John Ripple
The go-vendor class has a hardcoded destsuffix variable used to unpack
sources fetched with the go_src_uri function. This was causing a conflict
with insane.bbclass which prohibts setting S = "${UNPACKDIR}/git" which
was needed to find the vendored sources in the hardcoded location.
Changing this unpack location to use the standard base package name (BP)
fixes the previous issue and no longer requires manually setting S in the
recipes that use go-vendor.
Signed-off-by: John Ripple <john.ripple@keysight.com>
---
meta/classes/go-vendor.bbclass | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/meta/classes/go-vendor.bbclass b/meta/classes/go-vendor.bbclass
index 6ec6178add..f854d14bdf 100644
--- a/meta/classes/go-vendor.bbclass
+++ b/meta/classes/go-vendor.bbclass
@@ -19,7 +19,7 @@ inherit go-mod
def go_src_uri(repo, version, path=None, subdir=None, \
vcs='git', replaces=None, pathmajor=None):
- destsuffix = "git/src/import/vendor.fetch"
+ destsuffix = "${BP}/src/import/vendor.fetch"
module_path = repo if not path else path
src_uri = "{}://{};name={}".format(vcs, repo, module_path.replace('/', '.'))
@@ -58,7 +58,8 @@ python do_go_vendor() {
if not src_uri:
bb.fatal("SRC_URI is empty")
- default_destsuffix = "git/src/import/vendor.fetch"
+ base_package = d.getVar('BP')
+ default_destsuffix = "{}/src/import/vendor.fetch".format(base_package)
fetcher = bb.fetch2.Fetch(src_uri, d)
go_import = d.getVar('GO_IMPORT')
source_dir = d.getVar('S')
^ permalink raw reply related [flat|nested] 2+ messages in thread* [meta][PATCH v3 2/2] go-vendor.bbclass: Remove vendor symlink
2026-06-22 23:03 [meta][PATCH v3 1/2] go-vendor.bbclass: Unpack into BP for destsuffix John Ripple
@ 2026-06-22 23:03 ` John Ripple
0 siblings, 0 replies; 2+ messages in thread
From: John Ripple @ 2026-06-22 23:03 UTC (permalink / raw)
To: openembedded-core; +Cc: John Ripple
The go-vendor class creates a symlink at the end of do_go_vendor between
the vendor.fetch location and the vendor folder used by go to find
vendored sources. The do_vendor_unlink task originally removed the
symlink created in the S directory but only after it had already been
copied to the D directory.
The do_go_vendor and do_vendor_unlink tasks were never tied together.
This caused file not found errors on subsequent builds where the
do_vendor_unlink task was re-run without the do_go_vendor task being
re-run. Leaving the symlink in S and only deleting the symlink copied to
D fixes this issue.
Signed-off-by: John Ripple <john.ripple@keysight.com>
---
meta/classes/go-vendor.bbclass | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/meta/classes/go-vendor.bbclass b/meta/classes/go-vendor.bbclass
index f854d14bdf..e879d629a8 100644
--- a/meta/classes/go-vendor.bbclass
+++ b/meta/classes/go-vendor.bbclass
@@ -42,10 +42,9 @@ def go_src_uri(repo, version, path=None, subdir=None, \
python do_vendor_unlink() {
go_import = d.getVar('GO_IMPORT')
- source_dir = d.getVar('S')
- linkname = os.path.join(source_dir, *['src', go_import, 'vendor'])
-
- os.unlink(linkname)
+ linkname = os.path.join(d.getVar('D') + d.getVar('libdir'), 'go', 'src', go_import, 'vendor')
+ if os.path.islink(linkname):
+ os.unlink(linkname)
}
addtask vendor_unlink before do_package after do_install
@@ -209,8 +208,7 @@ python do_go_vendor() {
os.symlink(relative_symlink_target, symlink_name)
# Create a symlink to the actual directory
- relative_vendor_dir = os.path.relpath(vendor_dir, os.path.dirname(linkname))
- os.symlink(relative_vendor_dir, linkname)
+ oe.path.relsymlink(vendor_dir, linkname)
}
addtask go_vendor before do_patch after do_unpack
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-22 23:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-22 23:03 [meta][PATCH v3 1/2] go-vendor.bbclass: Unpack into BP for destsuffix John Ripple
2026-06-22 23:03 ` [meta][PATCH v3 2/2] go-vendor.bbclass: Remove vendor symlink John Ripple
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox