Re: [PATCH RESEND 1/4] lib/portage/package/ebuild/_config/LicenseManager.py: Use location_manager instead of paths
Sam James <[email protected]> Thu, 18 Dec 2025 01:26:56 +0000
| Newsgroups | gmane.linux.gentoo.portage.devel |
|---|---|
| Organization | Gentoo |
| Message-ID | <[email protected]> |
Louis Chauvet <[email protected]> writes: > 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. > Reviewed-by: Sam James <[email protected]> > Signed-off-by: Louis Chauvet <[email protected]> > --- > 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 90f7742e301c..c59fff6ea4f2 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 4f60a71e7011..718f367eb2ed 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 743b30bfb0d6..83046a7dc97b 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)