Summary: | `emerge -uD world` installs unnecessary packages (bdeps) | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Cedric Sodhi <manday> |
Component: | Core - Dependencies | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | gabifalk, manday |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
emerge -uDpqt --with-bdeps=y world
emerge -uDpqt --with-bdeps=n world |
Description
Cedric Sodhi
2024-04-22 13:23:04 UTC
Created attachment 891311 [details]
emerge -uDpqt --with-bdeps=y world
As a concrete example of this, take www-client/firefox-125.0.1 with all its bdeps missing (reason: installed from a binpkg), installed.
Attached is the output of `emerge -uD --with-bdeps=y`, the clang toolchain is pulled in without need.
Also attached is the "attempted workaround" `emerge -uD --with-deps=n` (skips the update of dev-python/hatchling).
Created attachment 891312 [details]
emerge -uDpqt --with-bdeps=n world
> 1. I understand that `emerge -uD world` means > "Update (-u) all installed (-D world) packages." Incorrect. A more precise definition. Update (-u) all members of the @world set, along with any direct or indirect dependencies (-D). Updating dependencies of the @world set does not mean all installed packages. There may be packages installed which are not included in @world and which would be removed by emerge --depclean. Also, there may be packages in @world which are not currently installed. The --with-bdeps flag controls which dependency classes are included by -D. That's it. > 2. Implicitly, a package manager should respect > "Only compile/install things which are needed." This assumption doesn't really mean anything without defining "needed". The --with-bdeps flag alters the definition of "needed" in this context. |