Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

serpent bug: Two-layered topological sorting #19

Open
ermo opened this issue Jun 5, 2024 · 2 comments
Open

serpent bug: Two-layered topological sorting #19

ermo opened this issue Jun 5, 2024 · 2 comments

Comments

@ermo
Copy link
Contributor

ermo commented Jun 5, 2024

ermo
There doesn't appear to be a "clean" way to break the brotli -> curl -> systemd -> util-linux -> python -> brotli cycle, since all the builddeps are actually valid.
If you could find the time to test the latest autobuild-rebuilds branch with the newest autobuild, that'd be nice as I'd like to hear your opinion here.
the real issue is that the python-brotli sub-package creates an .so which depends on cpython, so the graph really is a cycle.

(source)

@GZGavinZhao
Copy link
Owner

As of adff3c5, we can now split up subpackages to solve this problem. The autobuild.yaml for brotli now looks like this:

solver:
  ignore:
    - libcap
    - cryptsetup
  # New entries below
  split:
    - python-brotli
  move:
    pkgconfig(python3):
      - python-brotli

Every source recipe by default represents one node in the dependency graph (call this the default node). You tell autobuild that you want to specifically split out the subpackage python-brotli into a separate node, then move the dependency pkgconfig(python3) from the default node to the newly-splitted node that corresponds to python-brotli.

The exact way we specify how to split and move around dependencies can be changed, but the point is autobuild now supports this functionality.

@GZGavinZhao
Copy link
Owner

Re-opening in case this doesn't fully solve this problem or there is better syntax to do this.

@GZGavinZhao GZGavinZhao reopened this Aug 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants