go-vendor: Fix absolute paths issue

When building with the class, avoid errors like:

"sstate found an absolute path symlink /xxx/vendor pointing at
/xxx/import/vendor. Please replace this with a relative link."

Use relative symlinks instead.

(From OE-Core rev: fc4f589cc7a8e5feba7940ccb244a74bd5f96371)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2025-01-07 22:20:31 +00:00
parent ef7755749b
commit c323d56244

View File

@@ -70,7 +70,7 @@ python do_go_vendor() {
if os.path.exists(vendor_dir):
# Nothing to do except re-establish link to actual vendor folder
if not os.path.exists(linkname):
os.symlink(vendor_dir, linkname)
oe.path.relsymlink(vendor_dir, linkname)
return
bb.utils.mkdirhier(vendor_dir)
@@ -202,10 +202,10 @@ python do_go_vendor() {
symlink_target = os.path.join(source_dir, *['src', go_import, replaced_path])
symlink_name = os.path.join(vendor_dir, vendored_name)
bb.debug(1, "vendored name %s, symlink name %s" % (vendored_name, symlink_name))
os.symlink(symlink_target, symlink_name)
oe.path.relsymlink(symlink_target, symlink_name)
# Create a symlink to the actual directory
os.symlink(vendor_dir, linkname)
oe.path.relsymlink(vendor_dir, linkname)
}
addtask go_vendor before do_patch after do_unpack