...
Description of problem: If there is jss package installed on the system , whenever we enable maven:3.6 and update the system, we see dependency error. This appears to be happening because of issue described in the below bug - https://bugzilla.redhat.com/show_bug.cgi?id=2091862 related the dependency with `slf4j` and `slf4j-jdk14` not having the same 1.7.28 version. ~~~ Error: Problem: problem with installed package jss-4.7.3-1.module+el8.3.0+8058+d5cd4219.x86_64 cannot install the best update candidate for package jss-4.7.3-1.module+el8.3.0+8058+d5cd4219.x86_64 package jss-4.9.3-1.module+el8.6.0+14244+60d461b7.x86_64 requires slf4j, but none of the providers can be installed cannot install the best update candidate for package slf4j-1.7.25-4.module+el8+2468+c564cec5.noarch package jss-4.9.3-1.module+el8.6.0+14244+60d461b7.x86_64 requires slf4j-jdk14, but none of the providers can be installed package slf4j-jdk14-1.7.25-4.module+el8+2468+c564cec5.noarch requires mvn(org.slf4j:slf4j-api) = 1.7.25, but none of the providers can be installed package slf4j-jdk14-1.7.25-4.module+el8.0.0+3248+9d514f3b.noarch requires mvn(org.slf4j:slf4j-api) = 1.7.25, but none of the providers can be installed package slf4j-jdk14-1.7.25-4.module+el8.0.0+3892+c903d3f0.noarch requires mvn(org.slf4j:slf4j-api) = 1.7.25, but none of the providers can be installed package slf4j-jdk14-1.7.25-4.module+el8.1.0+3366+6dfb954c.noarch requires mvn(org.slf4j:slf4j-api) = 1.7.25, but none of the providers can be installed cannot install both slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch and slf4j-1.7.25-4.module+el8+2468+c564cec5.noarch cannot install both slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch and slf4j-1.7.25-4.module+el8.0.0+3248+9d514f3b.noarch cannot install both slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch and slf4j-1.7.25-4.module+el8.0.0+3892+c903d3f0.noarch cannot install both slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch and slf4j-1.7.25-4.module+el8.1.0+3366+6dfb954c.noarch package slf4j-1.7.25-4.module+el8+2598+06babf2e.noarch is filtered out by modular filtering package slf4j-jdk14-1.7.25-4.module+el8+2598+06babf2e.noarch is filtered out by modular filtering package slf4j-1.7.25-4.module+el8+2452+b359bfcd.noarch is filtered out by modular filtering (try to add '-skip-broken' to skip uninstallable packages or '-nobest' to use not only best candidate packages) The module set up is mostly default on my system with only `javapackages-runtime` because I have open jdk installed. ~~~ dnf module list pki* java* maven Updating Subscription Management repositories. Last metadata expiration check: 0:00:48 ago on Thu 25 Aug 2022 11:58:55 PM EDT. Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) Name Stream Profiles Summary javapackages-runtime 201801 [d][e] common [d] Basic runtime utilities to support Java applications maven 3.5 [d] common [d] Java project management and project comprehension tool maven 3.6 common [d] Java project management and project comprehension tool pki-core 10.6 [e] PKI Core module for PKI 10.6 or later pki-deps 10.6 [e] PKI Dependencies module for PKI 10.6 or later Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled ~~~ Based on what I have understood , this happens because of the below reason, Due to the jss package require the slf4j and the slf4j-jdk14 package and the dependency change in the jss upgrade from `apache-commons-lang` to `apache-commons-lang3` ~~~ rpm -qRp jss-4.7.3-1.module+el8.3.0+8058+d5cd4219.x86_64.rpm | grep -e slf4j -e apache-commons-lang apache-commons-lang slf4j slf4j-jdk14 rpm -qRp jss-4.9.3-1.module+el8.6.0+14244+60d461b7.x86_64.rpm | grep -e slf4j -e apache-commons-lang apache-commons-lang3 slf4j slf4j-jdk14 ~~~ The current available jss packages is only available through `pki-core` module. ~~~ dnf module provides jss | grep -e jss -e Module jss-4.5.0-1.module+el8+2467+468c375c.x86_64 Module : pki-core:10.6:820190128182152:5a87be8a:x86_64 jss-4.6.0-5.module+el8.1.0+4218+3fd65c36.x86_64 Module : pki-core:10.6:8010020190912123424:8ba0ffbe:x86_64 jss-4.6.2-4.module+el8.2.0+6123+b4678599.x86_64 Module : pki-core:10.6:8020020200326162741:c7c3114f:x86_64 jss-4.6.2-6.module+el8.2.0+6305+445d7b5a.x86_64 Module : pki-core:10.6:8020020200415160802:bbc64e6e:x86_64 jss-4.7.3-1.module+el8.3.0+8058+d5cd4219.x86_64 Module : pki-core:10.6:8030020200911215836:5ff1562f:x86_64 jss-4.7.3-1.module+el8.3.0+8058+d5cd4219.x86_64 Module : pki-core:10.6:8030020210315205745:e0223e2d:x86_64 jss-4.8.1-2.module+el8.4.0+10451+3e5b5448.x86_64 Module : pki-core:10.6:8040020210324135707:d4d99205:x86_64 jss-4.8.1-2.module+el8.4.0+10451+3e5b5448.x86_64 Module : pki-core:10.6:8040020210519185901:17df0a3f:x86_64 jss-4.9.1-1.module+el8.5.0+12710+1c6f9ceb.x86_64 Module : pki-core:10.6:8050020210924095114:01d2cef5:x86_64 jss-4.9.1-1.module+el8.5.0+12710+1c6f9ceb.x86_64 Module : pki-core:10.6:8050020220111200158:3246ec52:x86_64 jss-4.9.1-1.module+el8.5.0+12710+1c6f9ceb.x86_64 Module : pki-core:10.6:8050020220309211426:3246ec52:x86_64 jss-4.9.3-1.module+el8.6.0+14244+60d461b7.x86_64 Module : pki-core:10.6:8060020220215143656:7e0b02f6:x86_64 ~~~ And the `apache-commons-lang3` is available only through one of the maven module present. ~~~ dnf module provides apache-commons-lang3 | grep -e apache-common -e Module apache-commons-lang3-3.7-3.module+el8+2452+b359bfcd.noarch Module : maven:3.5:8060020211117110044:c0229ad2:x86_64 apache-commons-lang3-3.7-3.module+el8+2452+b359bfcd.noarch Module : maven:3.5:8060020220428102527:219351c9:x86_64 apache-commons-lang3-3.7-3.module+el8+2452+b359bfcd.noarch Module : maven:3.5:820181213140354:5ea3b708:x86_64 apache-commons-lang3-3.9-4.module+el8.2.0+5557+11a14461.noarch Module : maven:3.6:8020020200125185948:af5e9d52:x86_64 apache-commons-lang3-3.9-4.module+el8.3.0+6804+157bd82e.noarch Module : maven:3.6:8030020200527152730:a623df05:x86_64 apache-commons-lang3-3.9-4.module+el8.3.0+6804+157bd82e.noarch Module : maven:3.6:8040020201224090117:14342f08:x86_64 apache-commons-lang3-3.9-4.module+el8.6.0+13337+afcb49ec.noarch Module : maven:3.6:8060020211119162118:5dbfe8be:x86_64 apache-commons-lang3-3.9-4.module+el8.6.0+13337+afcb49ec.noarch Module : maven:3.6:8060020220428115217:32bfc089:x86_64 ~~~ Version-Release number of selected component (if applicable): jss-4.9.3-1.module+el8.6.0+14244+60d461b7.x86_64 slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch How reproducible: Every time , when maven:3.6 is enabled along with jss package. Steps to Reproduce: Scenario 1 - Installing then enabling maven:3.6 By default on installation of jss on the system it enabled maven:3.5 because of maven:3.5 set to default. ~~~ dnf install jss Updating Subscription Management repositories. Last metadata expiration check: 0:05:31 ago on Thu 25 Aug 2022 11:58:55 PM EDT. Dependencies resolved. ================================================================================================================================================= Package Architecture Version Repository Size ================================================================================================================================================= Installing: jss x86_64 4.9.3-1.module+el8.6.0+14244+60d461b7 rhel-8-for-x86_64-appstream-rpms 1.2 M Installing dependencies: apache-commons-lang3 noarch 3.7-3.module+el8+2452+b359bfcd rhel-8-for-x86_64-appstream-rpms 483 k glassfish-jaxb-api noarch 2.2.12-8.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 102 k javapackages-tools noarch 5.3.0-1.module+el8+2447+6f56d9a6 rhel-8-for-x86_64-appstream-rpms 44 k slf4j noarch 1.7.25-4.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 77 k slf4j-jdk14 noarch 1.7.25-4.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 25 k Enabling module streams: maven 3.5 Transaction Summary ================================================================================================================================================= Install 6 Packages Total download size: 1.9 M Installed size: 2.4 M ~~~ Switching to maven:3.6 causes its possible to switch but here because `slf4j-jdk14` package is the dependency and the `slf4j` package here in the maven 3.6 repo contains only new 1.7.28 for which the corresponding `slf4j-jdk14` is not available. This is also referenced in BZ - https://bugzilla.redhat.com/show_bug.cgi?id=2091862 ~~~ dnf module switch-to maven:3.6 --allowerasing Updating Subscription Management repositories. Last metadata expiration check: 0:06:50 ago on Thu 25 Aug 2022 11:58:55 PM EDT. Dependencies resolved. ================================================================================================================================================= Package Architecture Version Repository Size ================================================================================================================================================= Upgrading: apache-commons-lang3 noarch 3.9-4.module+el8.6.0+13337+afcb49ec rhel-8-for-x86_64-appstream-rpms 493 k slf4j noarch 1.7.28-3.module+el8.6.0+13337+afcb49ec rhel-8-for-x86_64-appstream-rpms 77 k Installing dependencies: apache-commons-codec noarch 1.13-3.module+el8.6.0+13337+afcb49ec rhel-8-for-x86_64-appstream-rpms 300 k apache-commons-lang noarch 2.6-21.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 283 k Removing dependent packages: slf4j-jdk14 noarch 1.7.25-4.module+el8+2468+c564cec5 @rhel-8-for-x86_64-appstream-rpms 11 k Downgrading: jss x86_64 4.5.0-1.module+el8+2467+468c375c rhel-8-for-x86_64-appstream-rpms 1.1 M Switching module streams: maven 3.5 -> 3.6 Transaction Summary ================================================================================================================================================= Install 2 Packages Upgrade 2 Packages Remove 1 Package Downgrade 1 Package ~~~ dnf update --allowerasing Updating Subscription Management repositories. Last metadata expiration check: 0:07:53 ago on Thu 25 Aug 2022 11:58:55 PM EDT. Error: Problem: problem with installed package jss-4.5.0-1.module+el8+2467+468c375c.x86_64 cannot install the best update candidate for package jss-4.5.0-1.module+el8+2467+468c375c.x86_64 package jss-4.9.3-1.module+el8.6.0+14244+60d461b7.x86_64 requires slf4j-jdk14, but none of the providers can be installed package slf4j-jdk14-1.7.25-4.module+el8.1.0+3366+6dfb954c.noarch requires mvn(org.slf4j:slf4j-api) = 1.7.25, but none of the providers can be installed package slf4j-jdk14-1.7.25-4.module+el8.0.0+3892+c903d3f0.noarch requires mvn(org.slf4j:slf4j-api) = 1.7.25, but none of the providers can be installed package slf4j-jdk14-1.7.25-4.module+el8.0.0+3248+9d514f3b.noarch requires mvn(org.slf4j:slf4j-api) = 1.7.25, but none of the providers can be installed package slf4j-jdk14-1.7.25-4.module+el8+2468+c564cec5.noarch requires mvn(org.slf4j:slf4j-api) = 1.7.25, but none of the providers can be installed cannot install both slf4j-1.7.25-4.module+el8+2468+c564cec5.noarch and slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch cannot install both slf4j-1.7.25-4.module+el8.0.0+3248+9d514f3b.noarch and slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch cannot install both slf4j-1.7.25-4.module+el8.0.0+3892+c903d3f0.noarch and slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch cannot install both slf4j-1.7.25-4.module+el8.1.0+3366+6dfb954c.noarch and slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch package slf4j-1.7.25-4.module+el8+2452+b359bfcd.noarch is filtered out by modular filtering cannot install the best update candidate for package slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch problem with installed package slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch (try to add '-skip-broken' to skip uninstallable packages or '-nobest' to use not only best candidate packages) ~~~ Scenario 2 - First enabling maven:3.6 and then install jss ~~~ dnf module enable maven:3.6 Updating Subscription Management repositories. Last metadata expiration check: 0:14:49 ago on Fri 26 Aug 2022 12:09:56 AM EDT. Dependencies resolved. ================================================================================================================================================= Package Architecture Version Repository Size ================================================================================================================================================= Enabling module streams: maven 3.6 Transaction Summary ================================================================================================================================================= Is this ok [y/N]: y Complete! ~~~ Here it installed in the `slf4j` and `slf4j` package installed from the `pki-deps` dnf module. ~~~ dnf install jss Updating Subscription Management repositories. Last metadata expiration check: 0:15:04 ago on Fri 26 Aug 2022 12:09:56 AM EDT. Dependencies resolved. ================================================================================================================================================= Package Architecture Version Repository Size ================================================================================================================================================= Installing: jss x86_64 4.9.3-1.module+el8.6.0+14244+60d461b7 rhel-8-for-x86_64-appstream-rpms 1.2 M Installing dependencies: apache-commons-lang3 noarch 3.9-4.module+el8.6.0+13337+afcb49ec rhel-8-for-x86_64-appstream-rpms 493 k glassfish-jaxb-api noarch 2.2.12-8.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 102 k javapackages-tools noarch 5.3.0-1.module+el8+2447+6f56d9a6 rhel-8-for-x86_64-appstream-rpms 44 k slf4j noarch 1.7.25-4.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 77 k slf4j-jdk14 noarch 1.7.25-4.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 25 k Transaction Summary ================================================================================================================================================= Install 6 Packages Total download size: 1.9 M Installed size: 2.4 M Is this ok [y/N]: y ~~~ However , now that maven:3.6 has the never version of slf4j i.e. `1.7.28` available it fails to update it because corresponding slf4j-jdk14 version `1.7.28` is not available ~~~ dnf update Updating Subscription Management repositories. Last metadata expiration check: 0:15:34 ago on Fri 26 Aug 2022 12:09:56 AM EDT. Error: Problem: package slf4j-jdk14-1.7.25-4.module+el8+2468+c564cec5.noarch requires mvn(org.slf4j:slf4j-api) = 1.7.25, but none of the providers can be installed cannot install both slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch and slf4j-1.7.25-4.module+el8+2468+c564cec5.noarch cannot install both slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch and slf4j-1.7.25-4.module+el8.0.0+3248+9d514f3b.noarch cannot install both slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch and slf4j-1.7.25-4.module+el8.0.0+3892+c903d3f0.noarch cannot install both slf4j-1.7.28-3.module+el8.6.0+13337+afcb49ec.noarch and slf4j-1.7.25-4.module+el8.1.0+3366+6dfb954c.noarch cannot install the best update candidate for package slf4j-jdk14-1.7.25-4.module+el8+2468+c564cec5.noarch cannot install the best update candidate for package slf4j-1.7.25-4.module+el8+2468+c564cec5.noarch package slf4j-1.7.25-4.module+el8+2452+b359bfcd.noarch is filtered out by modular filtering (try to add '-allowerasing' to command line to replace conflicting packages or 'skip-broken' to skip uninstallable packages or '-nobest' to u se not only best candidate packages) ~~~ Scenario 3 - Disabling maven completely If we completely disable maven, then we get error because the latest `jss` package needs needs `apache-commons-lang3` which is only available through maven:3.5 or maven:3.6 module ~~~ dnf module disable maven Updating Subscription Management repositories. Last metadata expiration check: 0:01:03 ago on Fri 26 Aug 2022 12:09:56 AM EDT. Dependencies resolved. ================================================================================================================================================= Package Architecture Version Repository Size ================================================================================================================================================= Disabling modules: maven Transaction Summary ================================================================================================================================================= Is this ok [y/N]: y Complete! dnf install jss Updating Subscription Management repositories. Last metadata expiration check: 0:01:53 ago on Fri 26 Aug 2022 12:09:56 AM EDT. Error: Problem: package jss-4.9.3-1.module+el8.6.0+14244+60d461b7.x86_64 requires apache-commons-lang3, but none of the providers can be installed cannot install the best candidate for the job package apache-commons-lang3-3.7-3.module+el8+2452+b359bfcd.noarch is filtered out by modular filtering package apache-commons-lang3-3.9-4.module+el8.2.0+5557+11a14461.noarch is filtered out by modular filtering package apache-commons-lang3-3.9-4.module+el8.3.0+6804+157bd82e.noarch is filtered out by modular filtering package apache-commons-lang3-3.9-4.module+el8.6.0+13337+afcb49ec.noarch is filtered out by modular filtering (try to add '-skip-broken' to skip uninstallable packages or '-nobest' to use not only best candidate packages) ~~~ While due to the dependency change, in recent version of jss requiring `apache-common-lang3` instead of `apache-common-lang` if we exclude the recent jss package. We can get the packages installed. However a `dnf update` will result in the error again. ~~~ dnf install jss --exclude=jss-4.[89]* Updating Subscription Management repositories. Last metadata expiration check: 0:03:33 ago on Fri 26 Aug 2022 12:09:56 AM EDT. Dependencies resolved. ================================================================================================================================================= Package Architecture Version Repository Size ================================================================================================================================================= Installing: jss x86_64 4.7.3-1.module+el8.3.0+8058+d5cd4219 rhel-8-for-x86_64-appstream-rpms 1.2 M Installing dependencies: apache-commons-lang noarch 2.6-21.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 283 k glassfish-jaxb-api noarch 2.2.12-8.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 102 k javapackages-tools noarch 5.3.0-1.module+el8+2447+6f56d9a6 rhel-8-for-x86_64-appstream-rpms 44 k slf4j noarch 1.7.25-4.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 77 k slf4j-jdk14 noarch 1.7.25-4.module+el8+2468+c564cec5 rhel-8-for-x86_64-appstream-rpms 25 k Transaction Summary ================================================================================================================================================= Install 6 Packages Total download size: 1.7 M Installed size: 2.1 M ~~~ Actual results: Dependency conflict occurs with jss packages when maven:3.6 is enable. Expected results: Dependency conflict should not occurs with jss packages when maven:3.6 is enabled. Also since jss is part of the pki-core module, if we are not expected to use the maven:3.6 with this, then the `slf4j-jdk14` and `slf4j` and `apache-common-lang3` should be distributed as part of pki-deps. This way even on disabling maven the installation would go through. Additional info: See also BZ - https://bugzilla.redhat.com/show_bug.cgi?id=2091862 which discuss about `slf4j-jdk14` and `slf4j` packages. In addition to that , the reason for switching maven:3.5 to maven:3.6 is also due to the fact that maven:3.55 is EOL as of now. ~~~ Application Stream Release Date Retirement Date Release maven 3.6 May 2020 Apr 2023 8.2.0 maven 3.5 May 2019 May 2022 8.0.0 ~~~
Can't Do