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.
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