PACKAGE_EXTRA_ARCHS[doc] = "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors."
PACKAGE_INSTALL[doc] = "List of the packages to be installed into the image. The variable is generally not user-defined and uses IMAGE_INSTALL as part of the list."
PACKAGE_INSTALL_ATTEMPTONLY[doc] = "List of packages attempted to be installed. If a listed package fails to install, the build system does not generate an error. This variable is generally not user-defined."
-PACKAGE_SNAP_LIB_SYMLINKS[doc] = "Rename library files based on their SONAME to avoid an extra layer of indirection through a symlink. Only suitable for a read-only rootfs where libraries are not upgraded in place."
PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
PACKAGES[doc] = "The list of packages to be created from the recipe."
PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
needs_ldconfig = False
needed = set()
sonames = set()
- renames = []
ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '')
cmd = d.getVar('OBJDUMP') + " -p " + shlex.quote(file) + " 2>/dev/null"
fd = os.popen(cmd)
sonames.add(prov)
if libdir_re.match(os.path.dirname(file)):
needs_ldconfig = True
- if needs_ldconfig and snap_symlinks and (os.path.basename(file) != this_soname):
- renames.append((file, os.path.join(os.path.dirname(file), this_soname)))
- return (needs_ldconfig, needed, sonames, renames)
+ return (needs_ldconfig, needed, sonames)
- def darwin_so(file, needed, sonames, renames, pkgver):
+ def darwin_so(file, needed, sonames, pkgver):
if not os.path.exists(file):
return
ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '')
if name and name not in needed[pkg]:
needed[pkg].add((name, file, tuple()))
- def mingw_dll(file, needed, sonames, renames, pkgver):
+ def mingw_dll(file, needed, sonames, pkgver):
if not os.path.exists(file):
return
if dllname:
needed[pkg].add((dllname, file, tuple()))
- if d.getVar('PACKAGE_SNAP_LIB_SYMLINKS') == "1":
- snap_symlinks = True
- else:
- snap_symlinks = False
-
needed = {}
shlib_provider = oe.package.read_shlib_providers(d)
needed[pkg] = set()
sonames = set()
- renames = []
linuxlist = []
for file in pkgfiles[pkg]:
soname = None
if cpath.islink(file):
continue
if hostos.startswith("darwin"):
- darwin_so(file, needed, sonames, renames, pkgver)
+ darwin_so(file, needed, sonames, pkgver)
elif hostos.startswith("mingw"):
- mingw_dll(file, needed, sonames, renames, pkgver)
+ mingw_dll(file, needed, sonames, pkgver)
elif os.access(file, os.X_OK) or lib_re.match(file):
linuxlist.append(file)
ldconfig = r[0]
needed[pkg] |= r[1]
sonames |= r[2]
- renames.extend(r[3])
needs_ldconfig = needs_ldconfig or ldconfig
- for (old, new) in renames:
- bb.note("Renaming %s to %s" % (old, new))
- bb.utils.rename(old, new)
- pkgfiles[pkg].remove(old)
-
shlibs_file = os.path.join(shlibswork_dir, pkg + ".list")
if len(sonames):
with open(shlibs_file, 'w') as fd: