Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 824842

Summary: sys-apps/portage: world_sets seem to be unnecessarily evaluated on every emerge run
Product: Portage Development Reporter: Michał Górny <mgorny>
Component: CoreAssignee: Portage team <dev-portage>
Status: CONFIRMED ---    
Severity: normal CC: arsen, gentoo, sam
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

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