| #!/usr/bin/env python3 | |
| # | |
| # Copyright OpenEmbedded Contributors | |
| # | |
| # SPDX-License-Identifier: GPL-2.0-only | |
| # | |
| import sys | |
| import os | |
| # Take a sysroot directory and turn all the abolute symlinks and turn them into | |
| # relative ones such that the sysroot is usable within another system. | |
| if len(sys.argv) != 2: | |
| print("Usage is " + sys.argv[0] + "<directory>") | |
| sys.exit(1) | |
| topdir = sys.argv[1] | |
| topdir = os.path.abspath(topdir) | |
| def handlelink(filep, subdir): | |
| link = os.readlink(filep) | |
| if link[0] != "/": | |
| return | |
| if link.startswith(topdir): | |
| return | |
| #print("Replacing %s with %s for %s" % (link, topdir+link, filep)) | |
| print("Replacing %s with %s for %s" % (link, os.path.relpath(topdir+link, subdir), filep)) | |
| os.unlink(filep) | |
| os.symlink(os.path.relpath(topdir+link, subdir), filep) | |
| for subdir, dirs, files in os.walk(topdir): | |
| for f in dirs + files: | |
| filep = os.path.join(subdir, f) | |
| if os.path.islink(filep): | |
| #print("Considering %s" % filep) | |
| handlelink(filep, subdir) |