#14 Attempt to resolve module build dependencies
Merged by ncoghlan. Opened by ncoghlan.
modularity/ ncoghlan/fedmod issue-12-build-dependency-resolution  into  master

Download 14.patch

First pass at fixing https://pagure.io/modularity/fedmod/issue/12 by
recursively resolving SRPM build dependencies after filtering out
the dependencies satisfied by other prebuilt modules.

Robust testing of this won't be possible until the metadata issues
covered in https://pagure.io/modularity/fedmod/issue/13 are fixed.

Pull-Request has been merged by ncoghlan

Technically now you can't get builddeps of A which buildrequires compat-openssl10-devel and B which buildrequires openssl-devel... That's why that code was there.

@ignatenkobrain The problem with doing the build requirement recursion at that point is that we want to filter out any build dependencies that can be provided by other modules before we decide we need to build them as part of the module being generated.

Due to that problem, I moved the recursive build dependency resolution out into the module generator at https://pagure.io/modularity/fedmod/pull-request/14#_2,47.

On each iteration, it splits the identified build dependencies into "things we can get from other modules" and "things we have to build from source as part of this module". To guard against circular build dependencies, it has an arbitrary limit of 10 levels of build dependencies before it expects everything to be resolved.

Now, this isn't really tested yet, so it's entirely possible there are still bugs in the logic, but this step does need to be module aware if we want it to do the right thing.

Metadata