summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/conf/documentation.conf1
-rw-r--r--meta/lib/oe/package.py25
2 files changed, 5 insertions, 21 deletions
diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf
index 3f130120c0..d16520a371 100644
--- a/meta/conf/documentation.conf
+++ b/meta/conf/documentation.conf
@@ -317,7 +317,6 @@ PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed p
317PACKAGE_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." 317PACKAGE_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."
318PACKAGE_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." 318PACKAGE_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."
319PACKAGE_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." 319PACKAGE_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."
320PACKAGE_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."
321PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis." 320PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
322PACKAGES[doc] = "The list of packages to be created from the recipe." 321PACKAGES[doc] = "The list of packages to be created from the recipe."
323PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes." 322PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index 16359232ec..1af10b7eb0 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -1623,7 +1623,6 @@ def process_shlibs(pkgfiles, d):
1623 needs_ldconfig = False 1623 needs_ldconfig = False
1624 needed = set() 1624 needed = set()
1625 sonames = set() 1625 sonames = set()
1626 renames = []
1627 ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '') 1626 ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '')
1628 cmd = d.getVar('OBJDUMP') + " -p " + shlex.quote(file) + " 2>/dev/null" 1627 cmd = d.getVar('OBJDUMP') + " -p " + shlex.quote(file) + " 2>/dev/null"
1629 fd = os.popen(cmd) 1628 fd = os.popen(cmd)
@@ -1651,11 +1650,9 @@ def process_shlibs(pkgfiles, d):
1651 sonames.add(prov) 1650 sonames.add(prov)
1652 if libdir_re.match(os.path.dirname(file)): 1651 if libdir_re.match(os.path.dirname(file)):
1653 needs_ldconfig = True 1652 needs_ldconfig = True
1654 if needs_ldconfig and snap_symlinks and (os.path.basename(file) != this_soname): 1653 return (needs_ldconfig, needed, sonames)
1655 renames.append((file, os.path.join(os.path.dirname(file), this_soname)))
1656 return (needs_ldconfig, needed, sonames, renames)
1657 1654
1658 def darwin_so(file, needed, sonames, renames, pkgver): 1655 def darwin_so(file, needed, sonames, pkgver):
1659 if not os.path.exists(file): 1656 if not os.path.exists(file):
1660 return 1657 return
1661 ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '') 1658 ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '')
@@ -1707,7 +1704,7 @@ def process_shlibs(pkgfiles, d):
1707 if name and name not in needed[pkg]: 1704 if name and name not in needed[pkg]:
1708 needed[pkg].add((name, file, tuple())) 1705 needed[pkg].add((name, file, tuple()))
1709 1706
1710 def mingw_dll(file, needed, sonames, renames, pkgver): 1707 def mingw_dll(file, needed, sonames, pkgver):
1711 if not os.path.exists(file): 1708 if not os.path.exists(file):
1712 return 1709 return
1713 1710
@@ -1726,11 +1723,6 @@ def process_shlibs(pkgfiles, d):
1726 if dllname: 1723 if dllname:
1727 needed[pkg].add((dllname, file, tuple())) 1724 needed[pkg].add((dllname, file, tuple()))
1728 1725
1729 if d.getVar('PACKAGE_SNAP_LIB_SYMLINKS') == "1":
1730 snap_symlinks = True
1731 else:
1732 snap_symlinks = False
1733
1734 needed = {} 1726 needed = {}
1735 1727
1736 shlib_provider = oe.package.read_shlib_providers(d) 1728 shlib_provider = oe.package.read_shlib_providers(d)
@@ -1749,16 +1741,15 @@ def process_shlibs(pkgfiles, d):
1749 1741
1750 needed[pkg] = set() 1742 needed[pkg] = set()
1751 sonames = set() 1743 sonames = set()
1752 renames = []
1753 linuxlist = [] 1744 linuxlist = []
1754 for file in pkgfiles[pkg]: 1745 for file in pkgfiles[pkg]:
1755 soname = None 1746 soname = None
1756 if cpath.islink(file): 1747 if cpath.islink(file):
1757 continue 1748 continue
1758 if hostos.startswith("darwin"): 1749 if hostos.startswith("darwin"):
1759 darwin_so(file, needed, sonames, renames, pkgver) 1750 darwin_so(file, needed, sonames, pkgver)
1760 elif hostos.startswith("mingw"): 1751 elif hostos.startswith("mingw"):
1761 mingw_dll(file, needed, sonames, renames, pkgver) 1752 mingw_dll(file, needed, sonames, pkgver)
1762 elif os.access(file, os.X_OK) or lib_re.match(file): 1753 elif os.access(file, os.X_OK) or lib_re.match(file):
1763 linuxlist.append(file) 1754 linuxlist.append(file)
1764 1755
@@ -1768,14 +1759,8 @@ def process_shlibs(pkgfiles, d):
1768 ldconfig = r[0] 1759 ldconfig = r[0]
1769 needed[pkg] |= r[1] 1760 needed[pkg] |= r[1]
1770 sonames |= r[2] 1761 sonames |= r[2]
1771 renames.extend(r[3])
1772 needs_ldconfig = needs_ldconfig or ldconfig 1762 needs_ldconfig = needs_ldconfig or ldconfig
1773 1763
1774 for (old, new) in renames:
1775 bb.note("Renaming %s to %s" % (old, new))
1776 bb.utils.rename(old, new)
1777 pkgfiles[pkg].remove(old)
1778
1779 shlibs_file = os.path.join(shlibswork_dir, pkg + ".list") 1764 shlibs_file = os.path.join(shlibswork_dir, pkg + ".list")
1780 if len(sonames): 1765 if len(sonames):
1781 with open(shlibs_file, 'w') as fd: 1766 with open(shlibs_file, 'w') as fd: