[entropy.spm] PortagePlugin: strip /* from SLOT metadata
When generating Entropy metadata out of Portage xpak information, strip /* from SLOT (a.k.a. the sub-slots part). At the same time, rework get_installed_package_metadata() to return stripped SLOT information to upper layers. Sub-slots have little meaning for Entropy packages, since rebuilds are not its business and soname bumps are already properly detected at dependencies calculation time. However, implementing this feature in future might have sense, for some currently unknown reasons.
This commit is contained in:
@@ -714,6 +714,19 @@ class PortagePlugin(SpmPlugin):
|
||||
"""
|
||||
Reimplemented from SpmPlugin class.
|
||||
"""
|
||||
data = self._get_installed_package_metadata(
|
||||
package, key, root = root)
|
||||
if key == "SLOT" and data:
|
||||
# EAPI5, strip /* from SLOT
|
||||
data = self._strip_slash_from_slot(data)
|
||||
return data
|
||||
|
||||
def _get_installed_package_metadata(self, package, key, root = None):
|
||||
"""
|
||||
Internal version of get_installed_package_metadata().
|
||||
This method doesn't do any automagic mangling to returned
|
||||
data.
|
||||
"""
|
||||
if root is None:
|
||||
root = etpConst['systemroot'] + os.path.sep
|
||||
vartree = self._get_portage_vartree(root = root)
|
||||
@@ -1320,6 +1333,9 @@ class PortagePlugin(SpmPlugin):
|
||||
uncompressed_env_file, env_var)
|
||||
data[item] = value
|
||||
|
||||
# EAPI5 support
|
||||
data['slot'] = self._strip_slash_from_slot(data['slot'])
|
||||
|
||||
#if not data['chost']:
|
||||
# # stupid portage devs and virtual pkgs!
|
||||
# # try to cope
|
||||
@@ -1641,9 +1657,11 @@ class PortagePlugin(SpmPlugin):
|
||||
atoms = self.match_package(cp, match_type = "match-visible")
|
||||
if atoms:
|
||||
for atom in atoms:
|
||||
slots.add(portdb.aux_get(atom, ["SLOT"])[0])
|
||||
slot = portdb.aux_get(atom, ["SLOT"])[0]
|
||||
slot = self._strip_slash_from_slot(slot)
|
||||
slots.add(slot)
|
||||
for slot in slots:
|
||||
visibles.add(cp+":"+slot)
|
||||
visibles.add(cp + ":" + slot)
|
||||
|
||||
# now match visibles
|
||||
available = set()
|
||||
|
||||
Reference in New Issue
Block a user