Skip to content

breaking the egg / hatching the chicken #145

@v4hn

Description

@v4hn

A bunch of modules have the traditional chicken-and-egg problem, where modules depend on each other, e.g., libvnd and mesa-lib.

While the general problem cannot be solved without providing binaries for either package, we could handle cycles with optional_depends automatically.

Once such a cycle is detected (this doesn't happen at the moment),
the system could automatically disable a specific optional dependency to break the cycle, compile the packages and in the end compile the first package again, enabling the dependency.

To designate a specific dependency for this process, I'd propose to use a new breakable_optional_depends function.

Still, implementing this is tricky, especially because we have to consider the case where any package-build in between fails.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions