commit: 835f9725ef5607170071258a678b236f3baf6658 Author: Louis Chauvet <louis.chauvet <AT> bootlin <DOT> com> AuthorDate: Wed Dec 17 07:10:12 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Dec 18 01:33:58 2025 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=835f9725
lib/portage/package/ebuild/_config/LicenseManager.py: Use location_manager instead of paths Currently LicenseManager only get the list of all profile locations. This is enough for reading all license groups, but not for parsing profile-specific package.license. Directly pass the LocationsManager so LicenseManager can read LicenseManager.profiles and read package.license. Bug: https://bugs.gentoo.org/686888 Signed-off-by: Louis Chauvet <louis.chauvet <AT> bootlin.com> Reviewed-by: Sam James <sam <AT> gentoo.org> Signed-off-by: Sam James <sam <AT> gentoo.org> lib/portage/package/ebuild/_config/LicenseManager.py | 7 ++++--- lib/portage/package/ebuild/config.py | 3 +-- lib/portage/tests/ebuild/test_config.py | 9 +++------ 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/portage/package/ebuild/_config/LicenseManager.py b/lib/portage/package/ebuild/_config/LicenseManager.py index 90f7742e30..c59fff6ea4 100644 --- a/lib/portage/package/ebuild/_config/LicenseManager.py +++ b/lib/portage/package/ebuild/_config/LicenseManager.py @@ -14,20 +14,21 @@ from portage.package.ebuild._config.helper import ordered_by_atom_specificity class LicenseManager: - def __init__(self, license_group_locations, abs_user_config, user_config=True): + def __init__(self, locations_manager, user_config=True): self._accept_license_str = None self._accept_license = None self._license_groups = {} self._plicensedict = ExtendedAtomDict(dict) self._undef_lic_groups = set() + license_group_locations = list(locations_manager.profile_locations) if user_config: - license_group_locations = list(license_group_locations) + [abs_user_config] + license_group_locations.append(locations_manager.abs_user_config) self._read_license_groups(license_group_locations) if user_config: - self._read_user_config(abs_user_config) + self._read_user_config(locations_manager.abs_user_config) def _read_user_config(self, abs_user_config): licdict = grabdict_package( diff --git a/lib/portage/package/ebuild/config.py b/lib/portage/package/ebuild/config.py index 4f60a71e70..718f367eb2 100644 --- a/lib/portage/package/ebuild/config.py +++ b/lib/portage/package/ebuild/config.py @@ -847,8 +847,7 @@ class config: # Read license_groups and optionally license_groups and package.license from user config self._license_manager = LicenseManager( - locations_manager.profile_locations, - abs_user_config, + locations_manager, user_config=local_config, ) # Extract '*/*' entries from package.license diff --git a/lib/portage/tests/ebuild/test_config.py b/lib/portage/tests/ebuild/test_config.py index 743b30bfb0..83046a7dc9 100644 --- a/lib/portage/tests/ebuild/test_config.py +++ b/lib/portage/tests/ebuild/test_config.py @@ -7,6 +7,7 @@ import portage from portage import os, shutil, _encodings from portage.const import USER_CONFIG_PATH from portage.dep import Atom +from portage.package.ebuild._config.LocationsManager import LocationsManager from portage.package.ebuild.config import config from portage.package.ebuild._config.LicenseManager import LicenseManager from portage.tests import TestCase @@ -95,17 +96,13 @@ class ConfigTestCase(TestCase): } playground = ResolverPlayground(user_config=user_config) + settings = config(clone=playground.settings) try: portage.util.noiselimit = -2 - license_group_locations = ( - os.path.join( - playground.settings.repositories["test_repo"].location, "profiles" - ), - ) pkg_license = os.path.join(playground.eroot, "etc", "portage") - lic_man = LicenseManager(license_group_locations, pkg_license) + lic_man = LicenseManager(settings._locations_manager, pkg_license) self.assertEqual(lic_man._accept_license_str, None) self.assertEqual(lic_man._accept_license, None)
