Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 824842 - sys-apps/portage: world_sets seem to be unnecessarily evaluated on every emerge run
Summary: sys-apps/portage: world_sets seem to be unnecessarily evaluated on every emer...
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-11-19 12:24 UTC by Michał Górny
Modified: 2022-03-16 16:28 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2021-11-19 12:24:10 UTC
I've put '@smart-live-rebuild' into /var/lib/portage/world_sets to have it run on every @world upgrade.  However, it seems that SLR is being run on every emerge invocation, e.g.:

```
# emerge -1vB libpng-compat

These are the packages that would be built, in order:

Calculating dependencies... done!
*** Forking to drop superuser privileges ...
*** Updating the repositories using 6 parallel jobs...
->  https://github.com/mgorny/eclean-kernel.git [HEAD]
--> git ls-remote https://github.com/mgorny/eclean-kernel.git HEAD
[...]
*** Found 5 packages to rebuild (out of 21 live packages).
[ebuild  N     ] media-libs/libpng-compat-1.5.30:1.5::gentoo  ABI_X86="32 64 -x32" 740 KiB

Total: 1 package (1 new), Size of downloads: 740 KiB
```

So while it doesn't use the set indeed, it unnecessarily evaluates its contents.
Comment 1 Arsen Arsenović gentoo-dev 2022-03-16 16:28:04 UTC
Resolving @world is always done in order to be able to conditionally write the package name in bold (in case a given package is in @world).

https://github.com/gentoo/portage/blob/601b5728bc0c1f76c28d41aae68fd946f19fd0f9/lib/_emerge/resolver/output.py#L278-L287

pkg_info.{system,world} are initialized here:
https://github.com/gentoo/portage/blob/601b5728bc0c1f76c28d41aae68fd946f19fd0f9/lib/_emerge/resolver/output.py#L869