Am 23.03.2023 um 13:17 schrieb mkolman@redhat.com:
On Wed, 2023-03-22 at 16:15 +0100, Peter Boy wrote:
Am 22.03.2023 um 12:59 schrieb mkolman@redhat.com:
Hi!
Recently we have been looking at this bug, currently reported on Anaconda:
https://bugzilla.redhat.com/show_bug.cgi?id=2178508
"missing packages:nvme-cli during the installation of Fedora 38 Server Beta"
In short, what happens is that starting with Blivet (the storage library used by the Anaconda installer) 3.7.0 the nvme-cli tool will be proposed for installation when NVME hardware is detected at installation time.
This effectively boils down to the nvme-cli package being added to the installation RPM transaction.
This works correctly on netinst images, as the nvme-cli package is available from the Fedora online repositories. But it fails on the F38 Server DVD image, as nvme-cli is *not* present in the on-media repositories.
My question is - how are the DVD image repositories defined ? How can the nvme-cli package be added to them ?
As Stephen Smoogen already noted, the DVD as well as the net install pull in packages as defined in the comps files as he noted.
If the net install includes the file but the DVD not, then the cause is most likely a dependency issue. DVD and NET installation handle dependencies differently. Net installation includes all types of dependencies, but DVD installation does not. If I remember correctly, weak dependencies are not taken into account. See https://pagure.io/fedora-server/issue/32
In this case the dependency is dynamically generated at runtime - if Blivet find the right NVME hardware on the target system, it will request the nvme-cli package to be installed. For this to work, the nvme-cli package needs to be present on the DVD image repos. So to fully solve this issue, I think we will have to somehow hardwire the package to be included in the DVD repos, as regular "static" dependencies are not directly in play here.
OK, that’s a different issue. Looking around to find a suitable location in the server kickstart files, I found the following in comps: (pagure.io/fedora-comps - f38)
comps-f38.xml.in: Note: The anaconda-tools group lists packages that anaconda might comps-f38.xml.in: anaconda environment. If a package is needed in anaconda's runtime comps-f38.xml.in: environment it should be listed as a dependency of the anaconda comps-f38.xml.in: <id>anaconda-tools</id> comps-f38.xml.in: <packagereq type="mandatory">kdump-anaconda-addon</packagereq> comps-f38.xml.in: <id>critical-path-anaconda</id> comps-f38.xml.in: <_name>Critical Path (anaconda)</_name> comps-f38.xml.in: <_description>A set of packages that provide the Critical Path functionality for installing Fedora with anaconda</_description> comps-f38.xml.in: <packagereq type="mandatory">anaconda</packagereq> comps-f38.xml.in: See https://github.com/rhinstaller/anaconda/commit/a475dd0194df7abf0453786fc0147...
Did you already add the nvme-cli package to the anaconda-tools? As I understand, that way the package would become part of the Anaconda runtime and included in the installation medium. That might be a better way as to include it into the files to be installed on every Fedora Server to be created, regardless whether it is needed.
It is best to ask Stephen Gallagher of Server WG. He also solved a similar problem with Cockpit previously at the time in minutes, without causing collateral damage (as others did, unfortunately). I'll put him into CC.
-- Peter Boy https://fedoraproject.org/wiki/User:Pboy pboy@fedoraproject.org
Timezone: CET (UTC+1) / CEST (UTC+2)
Fedora Server Edition Working Group member Fedora docs team contributor Java developer and enthusiast _______________________________________________