From: Alexander Yurkov Date: Thu, 23 Jan 2025 18:47:40 +0000 (+0000) Subject: classes: go-vendor: Change symlink creation. X-Git-Tag: yocto-5.2~698 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6c4e3206b6537f714416688cf8c921dd21cdfc20;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git classes: go-vendor: Change symlink creation. Create missing directories required to create the symlink. Use relative symlinks to stay in the build directory scope (to avoid sstate issue with absolute paths). Signed-off-by: Alexander Yurkov Signed-off-by: Vyacheslav Yurkov Signed-off-by: Richard Purdie --- diff --git a/meta/classes/go-vendor.bbclass b/meta/classes/go-vendor.bbclass index f3268c1125a..6ec6178add3 100644 --- a/meta/classes/go-vendor.bbclass +++ b/meta/classes/go-vendor.bbclass @@ -201,11 +201,15 @@ python do_go_vendor() { for vendored_name, replaced_path in replaced_paths.items(): symlink_target = os.path.join(source_dir, *['src', go_import, replaced_path]) symlink_name = os.path.join(vendor_dir, vendored_name) + relative_symlink_target = os.path.relpath(symlink_target, os.path.dirname(symlink_name)) bb.debug(1, "vendored name %s, symlink name %s" % (vendored_name, symlink_name)) - oe.path.relsymlink(symlink_target, symlink_name) + + os.makedirs(os.path.dirname(symlink_name), exist_ok=True) + os.symlink(relative_symlink_target, symlink_name) # Create a symlink to the actual directory - oe.path.relsymlink(vendor_dir, linkname) + relative_vendor_dir = os.path.relpath(vendor_dir, os.path.dirname(linkname)) + os.symlink(relative_vendor_dir, linkname) } addtask go_vendor before do_patch after do_unpack