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: 2ef214747b648733308958b5750c6c053ac49246)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Thomas Vandenabeele <thomas@bootzero.one>
(cherry picked from commit fc4f589cc7a8e5feba7940ccb244a74bd5f96371)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
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 c4da6ca1c2
commit 119ec1b846

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