V Thu, Dec 04, 2025 at 04:50:00PM +0100, Petr Pisar napsal(a): > V Thu, Dec 04, 2025 at 12:33:54PM +0100, Jan Stanek napsal(a): > > Hi all, > > in the process of polishing the upgrade path > > for the nodejs metapackage proposal [1], > > I've created a COPR [2] to ensure we can cleanly upgrade > > from the current nodejs packages (that currently ship NodeJS v22.x) > > to the versioned package names (nodejs22) and meta-package (nodejs) > > combination. > > However, dnf keeps behaving differently than I would expect, > > and I'm at the end of ideas of what might be wrong. > > > > What I would expect: `dnf install nodejs` will select nodejs metapackage > > for install, which pulls nodejs22 as a dependency. > > > > What happens: `dnf install nodejs` installs nodejs22 directly. > > > I confirm it behaves like that. A workaround is asking for a package name > "nodejs.noarch". It maybe has something to do with how DNF5 distinguishes > arguments as package names, provides, file names, etc. There is a heavy > historical baggage how it should be done and it's quite possible you found an > unwanted side effect of it. > Or the bug prevents switching from x86_64 to noarch. Observe the Fedora's package and the installed package is x86_64, while the copr package is noarch:
# dnf5 --noplugins --enablerepo
copr:copr.fedorainfracloud.org:jstanek:nodejs22-bin repoquery nodejs
Updating and loading repositories:
Repositories loaded.
nodejs-1:22.21.1-3.fc44.x86_64
nodejs-3:22-1.fc44.noarch
nodejs-3:22-1.fc44.src
# rpm -q nodejs
nodejs-22.21.1-3.fc44.x86_64
Upgrading "nodejs" upgrades all the dependencies, but does not upgrade
"nodejs":
# dnf5 --noplugins --enablerepo
copr:copr.fedorainfracloud.org:jstanek:nodejs22-bin upgrade nodejs
Updating and loading repositories:
Repositories loaded.
Package Arch Version Repository
Size
Installing:
nodejs22-full-i18n x86_64 1:22.21.1-6.fc44
copr:copr.fedorainfracloud 30.4 MiB
replacing nodejs-full-i18n x86_64 1:22.21.1-3.fc44 f44-build
30.4 MiB
nodejs22-npm x86_64 1:10.9.4-1.22.21.1.6.fc44
copr:copr.fedorainfracloud 8.8 MiB
replacing nodejs-npm x86_64 1:10.9.4-1.22.21.1.3.fc44 f44-build
8.8 MiB
Installing dependencies:
nodejs22 x86_64 1:22.21.1-6.fc44
copr:copr.fedorainfracloud 161.5 KiB
replacing nodejs x86_64 1:22.21.1-3.fc44 f44-build
161.5 KiB
nodejs22-libs x86_64 1:22.21.1-6.fc44
copr:copr.fedorainfracloud 78.1 MiB
replacing nodejs-libs x86_64 1:22.21.1-3.fc44 f44-build
78.1 MiB
If I explicitly ask for upgrading to the new noarch package, DNF5/libsolv
rejects it due to a transition to noarch:
# dnf5 --noplugins --enablerepo
copr:copr.fedorainfracloud.org:jstanek:nodejs22-bin upgrade
nodejs-3:22-1.fc44.noarch
Updating and loading repositories:
Repositories loaded.
Failed to resolve the transaction:
Packages for argument 'nodejs-3:22-1.fc44.noarch' available, but installed for
a different architecture.
I conclude that something is wrong with handling package architectures.
-- Petr
signature.asc
Description: PGP signature
-- _______________________________________________ devel mailing list -- [email protected] To unsubscribe send an email to [email protected] 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/[email protected] Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
