aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2015-01-01 06:31:02 -0800
committerZac Medico <zmedico@gentoo.org>2015-02-13 10:53:43 -0800
commitf1c1b8a77eebf7713b32e5f9945690f60f4f46de (patch)
tree49419acae5585becb4bad5d244df0e3dce854d57 /pym/portage/dbapi/bintree.py
parentAdd another check for broken /dev/s (bug 538980) (diff)
downloadportage-f1c1b8a77eebf7713b32e5f9945690f60f4f46de.tar.gz
portage-f1c1b8a77eebf7713b32e5f9945690f60f4f46de.tar.bz2
portage-f1c1b8a77eebf7713b32e5f9945690f60f4f46de.zip
Generate soname dependency metadata (bug 282639)
Generate soname dependency metadata for binary and installed packages, in the form of PROVIDES and REQUIRES metadata. It is useful to generate PROVIDES and REQUIRES metadata now, so that it will be available when dependency resolver support is added in the future. Note that slot-operator dependencies will not be able to serve as a substitute for soname dependencies for the forseeable future, because system dependencies are frequently unspecified (according to Gentoo policy). The PROVIDES/REQUIRES system is very similar to the automatic Requires and Provides system which is supported by RPM. The PROVIDES/REQUIRES metadata is generated automatically from the ELF files that are installed by a package. The PROVIDES/REQUIRES syntax is described in the /var/db/pkg section of the portage(5) man page. REQUIRES_EXCLUDE and PROVIDES_EXCLUDE ebuild variables allow for filtering of the sonames that are saved in REQUIRES and PROVIDES (see the ebuild(5) man page for details). The /var/db/pkg NEEDED.ELF.2 format now includes an additional field which indicates the multilib category, as discussed in bug #534206. The multilib category is used to categorize the sonames that are listed in PROVIDES/REQUIRES metadata, since sonames need to be resolved separately for each multilib category. The complete list of supported multilib categories is documented in the comments of the portage.dep.soname.multilib_category module. X-Gentoo-Bug: 282639 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=282639 Acked-by: Brian Dolbec <dolsen@gentoo.org>
Diffstat (limited to 'pym/portage/dbapi/bintree.py')
-rw-r--r--pym/portage/dbapi/bintree.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py
index 1156b6678..583e208ad 100644
--- a/pym/portage/dbapi/bintree.py
+++ b/pym/portage/dbapi/bintree.py
@@ -81,7 +81,8 @@ class bindbapi(fakedbapi):
["BUILD_TIME", "CHOST", "DEPEND", "EAPI",
"HDEPEND", "IUSE", "KEYWORDS",
"LICENSE", "PDEPEND", "PROPERTIES", "PROVIDE",
- "RDEPEND", "repository", "RESTRICT", "SLOT", "USE", "DEFINED_PHASES"
+ "RDEPEND", "repository", "RESTRICT", "SLOT", "USE",
+ "DEFINED_PHASES", "PROVIDES", "REQUIRES"
])
self._aux_cache_slot_dict = slot_dict_class(self._aux_cache_keys)
self._aux_cache = {}
@@ -322,7 +323,7 @@ class binarytree(object):
["BUILD_TIME", "CHOST", "DEPEND", "DESCRIPTION", "EAPI",
"HDEPEND", "IUSE", "KEYWORDS", "LICENSE", "PDEPEND", "PROPERTIES",
"PROVIDE", "RESTRICT", "RDEPEND", "repository", "SLOT", "USE", "DEFINED_PHASES",
- "BASE_URI"]
+ "BASE_URI", "PROVIDES", "REQUIRES"]
self._pkgindex_aux_keys = list(self._pkgindex_aux_keys)
self._pkgindex_use_evaluated_keys = \
("DEPEND", "HDEPEND", "LICENSE", "RDEPEND",