Summary: | sys-apps/portage-2.1.11.52: emerge --usepkg cancels out --rebuild-if-new-rev | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Roman Žilka <roman.zilka> |
Component: | Core | Assignee: | Portage team <dev-portage> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | dwfreed |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Roman Žilka
2013-03-11 16:32:54 UTC
(In reply to comment #0) > But I would like -k not to rule out > --rebuild-if-new-rev, if at all possible. While reviewing the relevant code in /usr/lib/portage/pym/_emerge/depgraph.py, I found this code which appears related to the behavior you observe: def _needs_rebuild(self, dep_pkg): """Check whether packages that depend on dep_pkg need to be rebuilt.""" dep_root_slot = (dep_pkg.root, dep_pkg.slot_atom) if dep_pkg.built or dep_root_slot in self.orig_rebuild_list: return False As you can see, if dep_pkg.built is True then it returns False and does not rebuild the parent package. There's some related code in the _trigger_rebuild method which deals with binary packages, but the logic seems to assume that any necessary rebuilds would have been triggered in an earlier build (which would have happened if you weren't using --buildpkgonly). Thanks for finding the key. I'll do some additional good old manual emerging before this gets to portage. I lack the portage sourcecode knowledge that's required to investigate this thing with reasonable efficiency. |