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".
1. 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.
2. 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