Thank you Petr and Stephen,
the background explanations and solutions were really helpful!
I will try to proceed to repackage the troubling packages as I need them anyways. That would simplify it a lot.
Best wishes,
Stefan
----- Ursprüngliche Mail ----- Von: "Stephen John Smoogen" smooge@gmail.com An: "epel-devel" epel-devel@lists.fedoraproject.org Gesendet: Montag, 6. September 2021 15:10:30 Betreff: [EPEL-devel] Re: Building EPEL-8 package depending on module
On Mon, 6 Sept 2021 at 07:07, Petr Pisar ppisar@redhat.com wrote:
V Sun, Sep 05, 2021 at 09:47:51PM +0200, Stefan Bluhm napsal(a):
I am trying to build a package for EPEL-8. (https://koji.fedoraproject.org/koji/taskinfo?taskID=75036069)
The build fails with
No matching package to install: 'glassfish-jaxb-api' No matching package to install: 'jaf' Not all dependencies satisfied Error: Some packages could not be found.
"glassfish-jaxb-api" and "jaf" are available in AppStream modules "pki-deps" and "jmc".
- Why can't these packages be found? I thought koji auto-resolves/flattens the modules.
Koji only flattens default module streams. Those are flagged with "[d]" in "dnf module list" output. Those streams are "enabled" by default and therefore Koji flattens them. Other streams must be explicitly enabled with "dnf module enable module:stream" and Koji does not flatten them.
glassfish-jaxb-api belongs to pki-deps:10.6 stream (as found by "dnf module provides glassfish-jaxb-api" command).
pki-deps:10.6 is not a default stream (as reported by "dnf module list pki-deps"; compare to "dnf module list php").
Therefore Koji does not flatten pki-deps:10.6 module stream and its packages are not available in an EPEL build root.
Why is not the stream default? (Even if it's the only pki-deps stream.) Because it's an internal dependency for pki-core:10.6 stream perhaps not intended for other use.
- What is the right approach to build the package that depends on modules?
The right approach for building a package that depends on a non-default stream is building it as another module.
Sadly that doesn't work either in the Koji system, because MBS does not see those modules as belonging to anything it has built. So it seems it can only depend on modules which it has built .. So not only do we have to build this tool as a module, we also have to build pki-deps:10.6 locally.
Please note that due to Fedora policies https://docs.fedoraproject.org/en-US/modularity/policies/ your new module can't be made default one. Hence if you decide for creating "xstream" module, your users will have to install xstream with "dnf module install xstream" (or "dnf module enable xstream && dnf install xstream").
Another option is to skip all the modular things and repackage glassfish-jaxb-api in EPEL as any other missing package. This is explictly allowed for packages from RHEL non-default streams https://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies#Policy.
-- Petr _______________________________________________ epel-devel mailing list -- epel-devel@lists.fedoraproject.org To unsubscribe send an email to epel-devel-leave@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/epel-devel@lists.fedoraproject... Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure