Bug 1778327 - 32-bit package libnghttp2 (a Steam dependency) is filtered out by modular filtering (nodejs module)
Summary: 32-bit package libnghttp2 (a Steam dependency) is filtered out by modular fil...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora Modules
Classification: Fedora
Component: nodejs
Version: unspecified
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Stephen Gallagher
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1732435 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-11-29 23:48 UTC by Douglas
Modified: 2022-02-21 13:32 UTC (History)
20 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-06-07 12:49:13 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Douglas 2019-11-29 23:48:35 UTC
This package is only available in 64-bit. Its 32-bit version is an important dependency of the Steam package provided by the RPM Fusion repository.

This is the output of `sudo dnf install steam`:
```
Última verificação de data de vencimento de metadados: 0:05:50 atrás em sex 29 nov 2019 14:24:34 -03.
Erro: 
 Problema: conflicting requests
  - package steam-1.0.0.61-4.fc31.i686 requires libcurl(x86-32), but none of the providers can be installed
  - package steam-1.0.0.61-5.fc31.i686 requires libcurl(x86-32), but none of the providers can be installed
  - package libcurl-7.66.0-1.fc31.i686 requires libnghttp2.so.14, but none of the providers can be installed
  - package libcurl-minimal-7.66.0-1.fc31.i686 requires libnghttp2.so.14, but none of the providers can be installed
  - package libnghttp2-1.39.2-2.fc31.i686 is excluded
  - package libnghttp2-1.39.2-1.fc31.i686 is excluded
(try to add '--skip-broken' to skip uninstallable packages)
```

See the issue I reported against RPM Fusion: https://bugzilla.rpmfusion.org/show_bug.cgi?id=5476

They told me this package IS, in fact, available; they said the problem is in my repository configuration, likely the modular repositories.
```
id do repo                     nome do repo
Atom                           Atom Editor
fedora                         Fedora 31 - x86_64
fedora-modular                 Fedora Modular 31 - x86_64
rpmfusion-free                 RPM Fusion for Fedora 31 - Free
rpmfusion-free-updates         RPM Fusion for Fedora 31 - Free - Updates
rpmfusion-nonfree              RPM Fusion for Fedora 31 - Nonfree
rpmfusion-nonfree-updates      RPM Fusion for Fedora 31 - Nonfree - Updates
updates                        Fedora 31 - x86_64 - Updates
updates-modular                Fedora Modular 31 - x86_64 - Updates
yarn                           Yarn Repository
```

I did install one modular package: nodejs:12

I don't understand how would this cause any trouble.

Comment 1 Jaroslav Mracek 2019-12-02 16:39:32 UTC
According to my investigation libnghttp2 was excluded because modules nodejs provides libnghttp2.x86_64, but not i686. Because nodejs module provides libnghttp2, all other providers of libnghttp2 are filtered out from package set. See: https://dnf.readthedocs.io/en/latest/modularity.html

I would like to ask maintainers of nodejs to provide a solution, because they could also add i686 builds. As a workaround I can recommend to run `dnf module disable nodejs`.

To investigate which module provides witch package you can use `dnf module provide <package>`.

Comment 2 Douglas 2020-08-04 00:08:52 UTC
I can still reproduce this on Fedora 32.

Module `nodejs:14` with the "default" profile is the cause of this issue.

Would temporarily disabling the modular `nodejs` allow me to install Steam? Later I would like to enable the module again (I need it for work) and keep using both.

Comment 3 Douglas 2020-08-06 01:53:11 UTC
Answering my own question:

1. Disable nodejs module.
2. Install Steam.
3. Enable nodejs module.

Now I have Steam. Good. There's only one problem. When you run `dnf update`, this appears:

```
Problem: cannot install both libnghttp2-1.41.0-1.module_f32+9030+0a08c360.x86_64 and libnghttp2-1.41.0-1.fc32.x86_64
  - libnghttp2-1.41.0-1.fc32.i686 has inferior architecture
  - cannot install the best update candidate for package libnghttp2-1.41.0-1.fc32.x86_64
  - problem with installed package libnghttp2-1.41.0-1.fc32.i686
  - package libnghttp2-1.41.0-1.fc32.x86_64 is filtered out by modular filtering
====================================================================================================================================
 Package                  Architecture         Version                                          Repository                     Size
====================================================================================================================================
Ignoring packages with conflicts:
(adicionar --best --allowerasing' a linha de comando para forçar sua atualização):
 libnghttp2               x86_64               1.41.0-1.module_f32+9030+0a08c360                updates-modular                79 k

Transaction summary
====================================================================================================================================
Ignore 1 package

Nothing to do.
Done!
```

I really hope it doesn't interfere with the ability to upgrade other packages.

Comment 4 Zuzana Svetlikova 2020-08-19 10:41:45 UTC
*** Bug 1732435 has been marked as a duplicate of this bug. ***

Comment 5 Fedora Admin user for bugzilla script actions 2021-04-30 00:23:07 UTC
This package has changed maintainer in Fedora. Reassigning to the new maintainer of this component.

Comment 6 Stephen Gallagher 2021-06-07 12:49:13 UTC
Default streams are no longer present in Fedora, so this should be a non-issue now.

Comment 7 that1estonian 2021-12-27 08:54:22 UTC
(In reply to Stephen Gallagher from comment #6)
> Default streams are no longer present in Fedora, so this should be a
> non-issue now.

but it is still an issue.

Error: 
 Problem: package steam-1.0.0.74-1.fc35.i686 requires libcurl(x86-32), but none of the providers can be installed
  - package libcurl-7.78.0-3.fc35.i686 requires libnghttp2.so.14, but none of the providers can be installed
  - package libcurl-minimal-7.78.0-3.fc35.i686 requires libnghttp2.so.14, but none of the providers can be installed
  - package libcurl-7.79.1-1.fc35.i686 requires libnghttp2.so.14, but none of the providers can be installed
  - package libcurl-minimal-7.79.1-1.fc35.i686 requires libnghttp2.so.14, but none of the providers can be installed
  - conflicting requests
  - package libnghttp2-1.45.1-1.fc35.i686 is filtered out by modular filtering
(try to add '--skip-broken' to skip uninstallable packages)

Comment 8 grumpey0 2021-12-29 20:22:20 UTC
Still an issue: https://ask.fedoraproject.org/t/broken-steam-dependencies-refuses-to-install/19393/19

https://koji.fedoraproject.org/koji/rpmlist?imageID=529855&type=image, looks like 1.46 was included in the F35 stream? 


Workaround: 
sudo dnf module disable nodejs
sudo dnf install steam
sudo dnf module install nodejs:16/development

Comment 9 grumpey0 2021-12-29 20:46:58 UTC
(In reply to grumpey0 from comment #8)
> Still an issue:
> https://ask.fedoraproject.org/t/broken-steam-dependencies-refuses-to-install/
> 19393/19
> 
> https://koji.fedoraproject.org/koji/rpmlist?imageID=529855&type=image, looks
> like 1.46 was included in the F35 stream? 
> 
> 
> Workaround: 
> sudo dnf module disable nodejs
> sudo dnf install steam
> sudo dnf module install nodejs:16/development

And same isue with upgrading afterwards
[root@fedora-s-1vcpu-1gb-nyc3-01 ~]# sudo dnf upgrade
Last metadata expiration check: 0:02:41 ago on Wed 29 Dec 2021 08:41:47 PM UTC.
Dependencies resolved.

 Problem: cannot install both libnghttp2-1.46.0-1.module_f35+13254+1fdbc0b5.x86_64 and libnghttp2-1.45.1-1.fc35.x86_64
  - libnghttp2-1.45.1-1.fc35.i686 has inferior architecture
  - cannot install the best update candidate for package libnghttp2-1.45.1-1.fc35.x86_64
  - problem with installed package libnghttp2-1.45.1-1.fc35.i686
  - package libnghttp2-1.45.1-1.fc35.x86_64 is filtered out by modular filtering
======================================================================================================================================================
 Package                      Architecture             Version                                                Repository                         Size
======================================================================================================================================================
Upgrading:
 c-ares                       x86_64                   1.17.2-1.module_f35+12941+0548739f                     fedora-modular                    105 k
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 libnghttp2                   x86_64                   1.46.0-1.module_f35+13254+1fdbc0b5                     updates-modular                    70 k

Transaction Summary
======================================================================================================================================================
Upgrade  1 Package
Skip     1 Package

Comment 10 Gabriel PREDA 2022-02-01 21:13:22 UTC
Still an issue!

How can this be reopened?

Comment 11 stevo knievo 2022-02-19 00:04:59 UTC
I have the same issue with nodejs:16/default and wine on Fedora workstation 35

❯ dnf list installed | grep nodejs
nodejs.x86_64                                    1:16.13.2-1.module_f35+13625+912e9fa9         @updates-modular                                          
nodejs-devel.x86_64                              1:16.13.2-1.module_f35+13625+912e9fa9         @updates-modular                                          
nodejs-docs.noarch                               1:16.13.2-1.module_f35+13625+912e9fa9         @updates-modular                                          
nodejs-full-i18n.x86_64                          1:16.13.2-1.module_f35+13625+912e9fa9         @updates-modular                                          
nodejs-libs.x86_64                               1:16.13.2-1.module_f35+13625+912e9fa9         @updates-modular                                          
nodejs-packaging.noarch                          2021.06-3.module_f35+13625+912e9fa9           @updates-modular


❯ dnf list installed | grep wine                                                                                                                
wine-stable-common.i686                          1:7.0.0-3.1                                   @WineHQ                                                   
wine-stable64.x86_64                             1:7.0.0-3.1                                   @WineHQ                                                   
winehq-stable.x86_64                             1:7.0.0-3.1                                   @WineHQ  


❯ sudo dnf upgrade                                                                                                                                
Last metadata expiration check: 0:29:49 ago on Fri 18 Feb 2022 03:31:03 PM PST.
Dependencies resolved.

 Problem: cannot install both libnghttp2-1.46.0-1.module_f35+13254+1fdbc0b5.x86_64 and libnghttp2-1.45.1-1.fc35.x86_64
  - libnghttp2-1.45.1-1.fc35.i686 has inferior architecture
  - cannot install the best update candidate for package libnghttp2-1.45.1-1.fc35.x86_64
  - problem with installed package libnghttp2-1.45.1-1.fc35.i686
  - package libnghttp2-1.45.1-1.fc35.x86_64 is filtered out by modular filtering
=========================================================================================================================================================
 Package                       Architecture              Version                                                Repository                          Size
=========================================================================================================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 libnghttp2                    x86_64                    1.46.0-1.module_f35+13254+1fdbc0b5                     updates-modular                     70 k

Transaction Summary
=========================================================================================================================================================
Skip  1 Package

Nothing to do.
Complete!

Comment 12 Stephen Gallagher 2022-02-21 13:32:28 UTC
This bug was about the default stream preventing Steam from installing.

All of the subsequent complaints have been about it not being possible to have Steam and Node.js 14.x+ installed at the same time. That is behaving as expected. Enabling a module means that you are accepting that it may prevent certain other packages from installing. That's one reason why it's in a module: because it wouldn't be installable alongside all other packages in the default repositories.

My best advice is this: if you really need to have both Steam and nodejs:14 or nodejs:16 installed on the same system:

1) Use the official binaries from nodejs.org which contain all of their libraries statically linked.
2) Use a docker/podman container for Node.js.
3) Use the Steam flatpak.


Note You need to log in before you can comment on or make changes to this bug.