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

Attachment: 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

Reply via email to