Here is an example error from the Chrome OS build: ``` !!! All ebuilds that could satisfy "dev-rust/regex:1.5.3" for /build/octopus/ have been masked. !!! One of the following masked packages is required to complete your request: - dev-rust/regex-1.5.3::chromiumos (masked by: need to rebuild from source) (dependency required by "@__auto_rebuild__" [argument]) For more information, see the MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. ``` We worked around the problem by restoring dev-rust/regex/regex-1.5.3.ebuild until we had binary packages built against the new version of dev-rust/regex, so portage could resolve the depgraph without bailing out. Taking a look at degraph.py here: https://github.com/gentoo/portage/blob/v2.3.0_rc1/pym/_emerge/depgraph.py#L265 It doesn't look like there is code to handle the case that a dependency is present on the binhost, but not present as in source. Reproducible: Always Steps to Reproduce: 1. Generate binary packages for a package A with a slot dependency on package B and upload them to a binhost. 2. Upgrade package B and remove the ebuild for the old version. 3. Build a package that depends on package A against with binary packages enabled using the binhost in step 1. Actual Results: The build fails Expected Results: The build succeeds
There needs to be another step: 2.5) Given a package C that package B depends on with the slot operator :=, upgrade package C to a new subslot triggering a rebuild of package B.
(In reply to Allen Webb from comment #1) > There needs to be another step: > 2.5) Given a package C that package B depends on with the slot operator :=, > upgrade package C to a new subslot triggering a rebuild of package B. This upgrade should be done in the source tree but should not be executed until step 3.