Bug 1708589
Summary: | php:7.2 module dep on nginx:1.14 prevents installing nginx:1.16 | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 8 | Reporter: | Joe Orton <jorton> |
Component: | php | Assignee: | Remi Collet <rcollet> |
Status: | CLOSED ERRATA | QA Contact: | Jakub Heger <jheger> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 8.0 | CC: | adam.winberg, bnater, bperkins, carl, guliu, jens.viebig, jheger, kkeane, kwalker, mnalband, mosvald, mvanderw, ppisar, rcollet, sraut |
Target Milestone: | rc | ||
Target Release: | 8.0 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2019-11-05 20:56:36 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Joe Orton
2019-05-10 09:31:20 UTC
(In reply to Joe Orton from comment #0) > If all that is required here is that nginx-filesystem is installed from ANY > version of nginx, we could drop the module-level dependency entirely. Since > nginx:1.14 is configured as a default stream it will be used to satisfy the > dep by default if no other stream is enabled If a user disables all nginx streams, there won't be any nginx-filesystem package. I think it's better to declare the modular dependency as the relation is indeed there than to rely to some unspoken assumptions or contemporary DNF behavior that can change any time. (In reply to Petr Pisar from comment #2) > If a user disables all nginx streams, there won't be any nginx-filesystem > package. I think it's better to declare the modular dependency as the > relation is indeed there than to rely to some unspoken assumptions or > contemporary DNF behavior that can change any time. Fair point. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2019:3374 I just hit this trying to enable the nginx:1.18 stream. We use pulp to sync redhat repos locally, and the faulty php module version (820181215112050) is still present in the redhat repos and thus are downloaded by pulp. Even though there are newer versions of the php module where the dependency has been fixed, dnf still complains about the old php module: Problem: module php:7.2:820181215112050:76554e01-0.x86_64 requires module(nginx:1.14), but none of the providers can be installed Can the 'bad' php module version be removed from the rhel appstream repo? Got this again today, can the php module with version 820181215112050 be removed from appstream repo? Following up to what Adam has been saying...it seems to be impossible to install the nginx:1.16 OR nginx:1.18 module, without getting a bunch of warnings. These warnings then show up TWICE for EVERY dnf operation.... PHP 7.2 is EOL, even according to RH (https://access.redhat.com/support/policy/updates/rhel8-app-streams-life-cycle). Can it just be removed please? [root@host ~]# dnf module install nginx:1.16 Updating Subscription Management repositories. ... Problems in request: Modular dependency problems with Defaults: Problem: module php:7.2:820181215112050:76554e01-0.x86_64 requires module(nginx:1.14), but none of the providers can be installed - module nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 conflicts with module(nginx:1.14) provided by nginx:1.14:820181214004940:9edba152-0.x86_64 - module nginx:1.14:820181214004940:9edba152-0.x86_64 conflicts with module(nginx:1.16) provided by nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 - module nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 conflicts with module(nginx:1.14) provided by nginx:1.14:8000020190830002848:f8e95b4e-0.x86_64 - module nginx:1.14:8000020190830002848:f8e95b4e-0.x86_64 conflicts with module(nginx:1.16) provided by nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 - conflicting requests Dependencies resolved. ============================================================================================================================================================================================================================================================ Package Architecture Version Repository Size ============================================================================================================================================================================================================================================================ Installing group/module packages: nginx x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 rhel-8-for-x86_64-appstream-rpms 580 k nginx-all-modules noarch 1:1.16.1-2.module+el8.4.0+11155+68135136.1 rhel-8-for-x86_64-appstream-rpms 24 k nginx-filesystem noarch 1:1.16.1-2.module+el8.4.0+11155+68135136.1 rhel-8-for-x86_64-appstream-rpms 25 k nginx-mod-http-image-filter x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 rhel-8-for-x86_64-appstream-rpms 36 k nginx-mod-http-perl x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 rhel-8-for-x86_64-appstream-rpms 46 k nginx-mod-http-xslt-filter x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 rhel-8-for-x86_64-appstream-rpms 34 k nginx-mod-mail x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 rhel-8-for-x86_64-appstream-rpms 65 k nginx-mod-stream x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 rhel-8-for-x86_64-appstream-rpms 91 k Installing module profiles: nginx/common Enabling module streams: nginx 1.16 Transaction Summary ============================================================================================================================================================================================================================================================ Install 8 Packages Total download size: 901 k Installed size: 2.0 M Is this ok [y/N]: y Downloading Packages: ... Total 5.0 MB/s | 901 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction ... Installed products updated. Modular dependency problem: Problem: module php:7.2:820181215112050:76554e01-0.x86_64 requires module(nginx:1.14), but none of the providers can be installed - module nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 conflicts with module(nginx:1.14) provided by nginx:1.14:820181214004940:9edba152-0.x86_64 - module nginx:1.14:820181214004940:9edba152-0.x86_64 conflicts with module(nginx:1.16) provided by nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 - module nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 conflicts with module(nginx:1.14) provided by nginx:1.14:8000020190830002848:f8e95b4e-0.x86_64 - module nginx:1.14:8000020190830002848:f8e95b4e-0.x86_64 conflicts with module(nginx:1.16) provided by nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 - conflicting requests Installed: nginx-1:1.16.1-2.module+el8.4.0+11155+68135136.1.x86_64 nginx-all-modules-1:1.16.1-2.module+el8.4.0+11155+68135136.1.noarch nginx-filesystem-1:1.16.1-2.module+el8.4.0+11155+68135136.1.noarch nginx-mod-http-image-filter-1:1.16.1-2.module+el8.4.0+11155+68135136.1.x86_64 nginx-mod-http-perl-1:1.16.1-2.module+el8.4.0+11155+68135136.1.x86_64 nginx-mod-http-xslt-filter-1:1.16.1-2.module+el8.4.0+11155+68135136.1.x86_64 nginx-mod-mail-1:1.16.1-2.module+el8.4.0+11155+68135136.1.x86_64 nginx-mod-stream-1:1.16.1-2.module+el8.4.0+11155+68135136.1.x86_64 Complete! [root@host ~]# dnf module install nodejs:14 Updating Subscription Management repositories. ... Modular dependency problem: Problem: module php:7.2:820181215112050:76554e01-0.x86_64 requires module(nginx:1.14), but none of the providers can be installed - module nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 conflicts with module(nginx:1.14) provided by nginx:1.14:820181214004940:9edba152-0.x86_64 - module nginx:1.14:820181214004940:9edba152-0.x86_64 conflicts with module(nginx:1.16) provided by nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 - module nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 conflicts with module(nginx:1.14) provided by nginx:1.14:8000020190830002848:f8e95b4e-0.x86_64 - module nginx:1.14:8000020190830002848:f8e95b4e-0.x86_64 conflicts with module(nginx:1.16) provided by nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 - conflicting requests Problems in request: Modular dependency problems with Defaults: Problem: module php:7.2:820181215112050:76554e01-0.x86_64 requires module(nginx:1.14), but none of the providers can be installed - module nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 conflicts with module(nginx:1.14) provided by nginx:1.14:820181214004940:9edba152-0.x86_64 - module nginx:1.14:820181214004940:9edba152-0.x86_64 conflicts with module(nginx:1.16) provided by nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 - module nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 conflicts with module(nginx:1.14) provided by nginx:1.14:8000020190830002848:f8e95b4e-0.x86_64 - module nginx:1.14:8000020190830002848:f8e95b4e-0.x86_64 conflicts with module(nginx:1.16) provided by nginx:1.16:8030020201124104955:229f0a1c-0.x86_64 - conflicting requests Dependencies resolved. Nothing to do. Complete! [root@host ~]# Had the same issue but found a workaround We use nginx 1.18 but do NOT use php, so this might not help if php 7.2 is needed. We just switched the module stream of php from 7.2 to 7.4 without installing any php packages dnf module reset php dnf module enable php:7.4 Now the warning is gone. As requested here, removing the bad module would be highly appreciated :-) Red Hat retains all historical builds in the repositories. Thus DNF has access to the affected php:7.2:820181215112050:76554e01 module: $ dnf module info php:7.2 [...] Name : php Stream : 7.2 [d][a] Version : 820181215112050 Context : 76554e01 Architecture : x86_64 Profiles : common [d], devel, minimal Default profiles : common Repo : pulp-appstream Summary : PHP scripting language Description : php 7.2 module Requires : httpd:[2.4] : nginx:[1.14] : platform:[el8] Artifacts : apcu-panel-0:5.1.12-1.module+el8+2561+1aca3413.noarch [...] And I confirm I can reproduce the warning: # dnf module install nginx:1.16 Last metadata expiration check: 0:11:12 ago on Tue 31 Aug 2021 01:04:24 PM CEST. Problems in request: Modular dependency problems with Defaults: Problem: module php:7.2:820181215112050:76554e01.x86_64 requires module(nginx:1.14), but none of the providers can be installed - module nginx:1.14:820181214004940:9edba152.x86_64 conflicts with module(nginx:1.16) provided by nginx:1.16:8010020190829151810:cdc1202b.x86_64 - module nginx:1.16:8010020190829151810:cdc1202b.x86_64 conflicts with module(nginx:1.14) provided by nginx:1.14:820181214004940:9edba152.x86_64 - module nginx:1.14:8000020190830002848:f8e95b4e.x86_64 conflicts with module(nginx:1.16) provided by nginx:1.16:8010020190829151810:cdc1202b.x86_64 - module nginx:1.16:8010020190829151810:cdc1202b.x86_64 conflicts with module(nginx:1.14) provided by nginx:1.14:8000020190830002848:f8e95b4e.x86_64 - conflicting requests Dependencies resolved. =========================================================================================================================================== Package Architecture Version Repository Size =========================================================================================================================================== Installing group/module packages: nginx x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 pulp-appstream 580 k nginx-all-modules noarch 1:1.16.1-2.module+el8.4.0+11155+68135136.1 pulp-appstream 24 k nginx-filesystem noarch 1:1.16.1-2.module+el8.4.0+11155+68135136.1 pulp-appstream 25 k nginx-mod-http-image-filter x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 pulp-appstream 36 k nginx-mod-http-perl x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 pulp-appstream 46 k nginx-mod-http-xslt-filter x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 pulp-appstream 34 k nginx-mod-mail x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 pulp-appstream 65 k nginx-mod-stream x86_64 1:1.16.1-2.module+el8.4.0+11155+68135136.1 pulp-appstream 91 k Installing dependencies: gd x86_64 2.2.5-7.el8 pulp-appstream 144 k libwebp x86_64 1.0.0-5.el8 rhel-8.6.0-appstream 273 k Installing module profiles: nginx/common Enabling module streams: nginx 1.16 Transaction Summary =========================================================================================================================================== Install 10 Packages Total download size: 1.3 M Installed size: 3.2 M Is this ok [y/N]: N Operation aborted. A shorter reproducer is "dnf module enable nginx:1.16". It's important to note that this is a warning. Not an error. As far as I know, DNF gathers all module versions of a given stream, php:7.2 in this case, and explores modular dependencies of all of them. Not only the latest one, php:7.2:8020020191108065827:2c7ca891. I believe that a reason for this behavior is warn a user in case the latest version has unsatisfied dependencies. If there were no warning, the user could not notice his installed module was left in an out-dated version. I also believe that this behavior only exhibits for modules without static contexts. I can see four possible fixes: (1) Remove the old module version from the repositories. Red Hat does that only in serious cases (e.g. a license violation). Though the removal should not affect anybody. (2) Change php default stream from end-of-life 7.2 to support 7.4. It does not make sense to offer unsupported software in a default installation. (3) Make a new php:7.2 module version with a static context. That could remove the warning because I think that DNF considers only the latest version for static contexts. (4) Change DNF to report the unsatisfied modular dependencies only for the latest available version even in case of nonstatic contexts. I think DNF maintainers could explain when exactly this warning is emitted. I tried an approach #3: I turned the latest versions of php:7.2 and all nginx streams to a static context it did not help. I even changed php:7.2 context to much a context of the offending php:7.2:820181215112050:76554e01 build. No luck. Tested with dnf-4.7.0-3.el8.noarch and libdnf-0.63.0-2.el8.x86_64. (In reply to Petr Pisar from comment #24) > I tried an approach #3: I turned the latest versions of php:7.2 and all > nginx streams to a static context it did not help. I even changed php:7.2 > context to much a context of the offending php:7.2:820181215112050:76554e01 > build. No luck. Tested with dnf-4.7.0-3.el8.noarch and > libdnf-0.63.0-2.el8.x86_64. Static_context is supported in RHEL9 not in RHEL8. The support was reverted in RHEL8 to keep the behaviour in RHEL8 unchanged. That's unfortunate. Does it mean that DNF won't do anything to improve this php:7.2 particular problem? A workaround for the end user appears to be to actually disable the php module, instead of merely resetting it to "default". dnf module disable php This will disable all versions of the module stream. If needed, you can then enable the desired php module stream, such as: dnf module enable php:7.4 Now you should be able to switch to a different module stream of nginx without incurring the warning. |