From: John Ripple Date: Mon, 22 Jun 2026 23:03:30 +0000 (-0600) Subject: go-vendor.bbclass: Remove vendor symlink X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d3cbc285a257f132a17ec042ddb11eef136c6d2b;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git go-vendor.bbclass: Remove vendor symlink 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 Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- 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