def relocate_package(workdir, allow_root): """ Relocate the given package """ buildinfo = read_buildinfo_file(workdir) new_path = spack.store.layout.root old_path = buildinfo['buildpath'] rel = buildinfo.get('relative_rpaths', False) if rel: return tty.msg("Relocating package from", "%s to %s." % (old_path, new_path)) path_names = set() for filename in buildinfo['relocate_textfiles']: path_name = os.path.join(workdir, filename) # Don't add backup files generated by filter_file during install step. if not path_name.endswith('~'): path_names.add(path_name) relocate.relocate_text(path_names, old_path, new_path) # If the binary files in the package were not edited to use # relative RPATHs, then the RPATHs need to be relocated if not rel: path_names = set() for filename in buildinfo['relocate_binaries']: path_name = os.path.join(workdir, filename) path_names.add(path_name) relocate.relocate_binary(path_names, old_path, new_path, allow_root) path_names = set() for filename in buildinfo.get('relocate_links', []): path_name = os.path.join(workdir, filename) path_names.add(path_name) relocate.relocate_links(path_names, old_path, new_path)
def relocate_package(workdir, allow_root): """ Relocate the given package """ buildinfo = read_buildinfo_file(workdir) new_path = spack.store.layout.root old_path = buildinfo['buildpath'] rel = buildinfo.get('relative_rpaths', False) if rel: return tty.msg("Relocating package from", "%s to %s." % (old_path, new_path)) path_names = set() for filename in buildinfo['relocate_textfiles']: path_name = os.path.join(workdir, filename) # Don't add backup files generated by filter_file during install step. if not path_name.endswith('~'): path_names.add(path_name) relocate.relocate_text(path_names, old_path, new_path) # If the binary files in the package were not edited to use # relative RPATHs, then the RPATHs need to be relocated if not rel: path_names = set() for filename in buildinfo['relocate_binaries']: path_name = os.path.join(workdir, filename) path_names.add(path_name) relocate.relocate_binary(path_names, old_path, new_path, allow_root)
def relocate_package(prefix): """ Relocate the given package """ buildinfo = read_buildinfo_file(prefix) new_path = spack.store.layout.root old_path = buildinfo['buildpath'] if new_path == old_path: return tty.msg("Relocating package from", "%s to %s." % (old_path, new_path)) for filename in buildinfo['relocate_binaries']: path_name = os.path.join(prefix, filename) relocate.relocate_binary(path_name, old_path, new_path) for filename in buildinfo['relocate_textfiles']: path_name = os.path.join(prefix, filename) relocate.relocate_text(path_name, old_path, new_path)