Upgrading to 3.9 / 4.11 results in package dependency errors

Problem: I am getting the following error when attempting to upgrade to the latest version of Foreman

Error:
Problem 1: package python3.11-solv-0.7.22-6.el8.x86_64 from pulpcore requires libsolv(x86-64) = 0.7.22-6.el8, but none of the providers can be installed

  • cannot install the best update candidate for package python39-solv-0.7.22-4.el8.x86_64
  • package libsolv-0.7.22-6.el8.x86_64 from pulpcore is filtered out by modular filtering
    Problem 2: package python3.11-libcomps-0.1.18-8.el8.x86_64 from pulpcore requires libcomps(x86-64) = 0.1.18-8.el8, but none of the providers can be installed
  • cannot install the best update candidate for package python39-libcomps-0.1.18-4.el8.x86_64
  • package libcomps-0.1.18-8.el8.x86_64 from pulpcore is filtered out by modular filtering
    Problem 3: package python3.11-createrepo_c-1.0.2-5.el8.x86_64 from pulpcore requires createrepo_c-libs = 1.0.2-5.el8, but none of the providers can be installed
  • cannot install the best update candidate for package python39-createrepo_c-1.0.2-2.el8.x86_64
  • package createrepo_c-libs-1.0.2-5.el8.x86_64 from pulpcore is filtered out by modular filtering
    Problem 4: package python3.11-enrich-1.2.6-7.el8.noarch from pulpcore obsoletes python39-enrich < 1.2.6-7.el8 provided by python39-enrich-1.2.6-5.el8.noarch from @System
  • package ansible-lint-5.0.8-4.el8.noarch from @System requires python39-enrich >= 1.2.6, but none of the providers can be installed
  • cannot install the best update candidate for package python39-enrich-1.2.6-5.el8.noarch
  • problem with installed package ansible-lint-5.0.8-4.el8.noarch
    Problem 5: package python3.11-pulp-rpm-3.23.0-2.el8.noarch from pulpcore requires python3.11-createrepo_c >= 1.0.1, but none of the providers can be installed
  • package python3.11-createrepo_c-1.0.2-5.el8.x86_64 from pulpcore requires createrepo_c-libs = 1.0.2-5.el8, but none of the providers can be installed
  • cannot install the best update candidate for package python39-pulp-rpm-3.22.6-1.el8.noarch
  • package createrepo_c-libs-1.0.2-5.el8.x86_64 from pulpcore is filtered out by modular filtering
    Problem 6: package ansible-lint-5.0.8-4.el8.noarch from @System requires python39-rich >= 9.5.1, but none of the providers can be installed
  • package python3.11-rich-13.3.1-7.el8.noarch from pulpcore obsoletes python39-rich < 13.3.1-7.el8 provided by python39-rich-13.3.1-3.el8.noarch from @System
  • package python3.11-galaxy-importer-0.4.7-1.el8.noarch from pulpcore requires ansible-lint >= 5.0.8, but none of the providers can be installed
  • package python3.11-galaxy-importer-0.4.7-1.el8.noarch from pulpcore requires ansible-lint < 6.14.4, but none of the providers can be installed
  • cannot install the best update candidate for package python39-rich-13.3.1-3.el8.noarch
  • cannot install the best update candidate for package python39-galaxy-importer-0.4.6-1.el8.noarch
  • package ansible-lint-5.4.0-1.el8.noarch from pulpcore is filtered out by modular filtering
    Problem 7: problem with installed package python39-pulp-rpm-3.22.6-1.el8.noarch
  • package python39-pulp-rpm-3.22.6-1.el8.noarch from @System requires python39-django-readonly-field >= 1.1.1, but none of the providers can be installed
  • package python3.11-pulp-rpm-3.23.0-2.el8.noarch from pulpcore requires python3.11-solv >= 0.7.21, but none of the providers can be installed
  • package python3.11-django-readonly-field-1.1.2-3.el8.noarch from pulpcore obsoletes python39-django-readonly-field < 1.1.2-3.el8 provided by python39-django-readonly-field-1.1.2-1.el8.noarch from @System
  • package python3.11-solv-0.7.22-6.el8.x86_64 from pulpcore requires libsolv(x86-64) = 0.7.22-6.el8, but none of the providers can be installed
  • cannot install the best update candidate for package python39-django-readonly-field-1.1.2-1.el8.noarch
  • package libsolv-0.7.22-6.el8.x86_64 from pulpcore is filtered out by modular filtering
    Problem 8: package ansible-lint-5.0.8-4.el8.noarch from @System requires python39-rich >= 9.5.1, but none of the providers can be installed
  • package python39-rich-13.3.1-3.el8.noarch from @System requires python39-pygments >= 2.6.0, but none of the providers can be installed
  • package python39-rich-13.3.1-3.el8.noarch from @System requires python39-pygments < 3.0.0, but none of the providers can be installed
  • package python3.11-galaxy-importer-0.4.7-1.el8.noarch from pulpcore requires ansible-lint >= 5.0.8, but none of the providers can be installed
  • package python3.11-galaxy-importer-0.4.7-1.el8.noarch from pulpcore requires ansible-lint < 6.14.4, but none of the providers can be installed
  • package python3.11-pygments-2.14.0-3.el8.x86_64 from pulpcore obsoletes python39-pygments < 2.14.0-3.el8 provided by python39-pygments-2.14.0-1.el8.x86_64 from @System
  • package python3.11-pulp-ansible-1:0.20.2-3.el8.noarch from pulpcore requires python3.11-galaxy-importer >= 0.4.5, but none of the providers can be installed
  • cannot install the best update candidate for package python39-pygments-2.14.0-1.el8.x86_64
  • cannot install the best update candidate for package python39-pulp-ansible-1:0.18.1-1.el8.noarch
  • package ansible-lint-5.4.0-1.el8.noarch from pulpcore is filtered out by modular filtering
    Problem 9: package ansible-lint-5.0.8-4.el8.noarch from @System requires python39-rich >= 9.5.1, but none of the providers can be installed
  • package python3.11-galaxy-importer-0.4.7-1.el8.noarch from pulpcore requires ansible-lint >= 5.0.8, but none of the providers can be installed
  • package python3.11-galaxy-importer-0.4.7-1.el8.noarch from pulpcore requires ansible-lint < 6.14.4, but none of the providers can be installed
  • package python39-rich-13.3.1-3.el8.noarch from @System requires python39-pygments >= 2.6.0, but none of the providers can be installed
  • package python39-rich-13.3.1-3.el8.noarch from @System requires python39-pygments < 3.0.0, but none of the providers can be installed
  • problem with installed package python39-galaxy-importer-0.4.6-1.el8.noarch
  • package python3.11-pygments-2.14.0-3.el8.x86_64 from pulpcore obsoletes python39-pygments < 2.14.0-3.el8 provided by python39-pygments-2.14.0-1.el8.x86_64 from @System
  • package python39-galaxy-importer-0.4.6-1.el8.noarch from @System requires python39-ansible-builder >= 1.0.1, but none of the providers can be installed
  • package python39-galaxy-importer-0.4.6-1.el8.noarch from @System requires python39-ansible-builder < 2.0, but none of the providers can be installed
  • package python3.11-pulp-cli-0.21.2-4.el8.noarch from pulpcore requires python3.11-pygments, but none of the providers can be installed
  • package python3.11-ansible-builder-1.0.1-6.el8.noarch from pulpcore obsoletes python39-ansible-builder < 1.0.1-6.el8 provided by python39-ansible-builder-1.0.1-4.el8.noarch from @System
  • cannot install the best update candidate for package python39-pulp-cli-0.21.2-1.el8.noarch
  • cannot install the best update candidate for package python39-ansible-builder-1.0.1-4.el8.noarch
  • package ansible-lint-5.4.0-1.el8.noarch from pulpcore is filtered out by modular filtering
    (try to add ā€˜ā€“nobestā€™ to use not only best candidate packages)

Expected outcome:

Following published upgrade procedures (Upgrading Foreman to 3.9):

Previously, our Foreman infrastructure was successfully upgraded from 3.7 / 4.9 ā†’ 3.8 / 4.10 without issue.

Foreman and Proxy versions:
Foreman 3.8 / Katello 4.10

Foreman and Proxy plugin versions:

Distribution and version:
Red Hat Enterprise Linux 8.9

Other relevant data:

This was resolved by adding ā€œmodule_hotfixes=1ā€ for the pulprepo config in /etc/yum.repos.d

1 Like

Hey there!

Did you run step 10. dnf module disable pulpcore from the upgrade guide for 3.9/4.11?
This is a very important step this time.

https://docs.theforeman.org/3.9/Upgrading_Project/index-katello.html

1 Like

No, I was following the instructions here which donā€™t mention that (or installing the new katello repo for that matter) Foreman :: Manual

I think that certainly would have prevented this issue.

Yeah these are the instructions for only Foreman, not the Foreman+Katello plugin combination :+1:

1 Like

Team, it looks like step 10 needs to come first and then step 8 later. Please confirm.

Hmm, I must deny that, step 9 is where the new pulpcore repo gets introduced, which needs the module config being gone (dnf module disable is basically a rm on the module conf file), doing that the disable before step 9 could lead to your dnf cache having expired, which might introduce other issues with the currently installed version :thinking:

I have the same issue on a fresh installed CentOS Stream 9 Foreman 3.10, Katello 4.12 machine.

What shall I do? Any ideas?

Best regards,
Tom

[root@server yum.repos.d]# yum update
Last metadata expiration check: 0:08:20 ago on Thu 11 Apr 2024 01:25:21 PM CEST.
Error:
 Problem: package python3.11-solv-0.7.22-6.el9.x86_64 from @System requires libsolv(x86-64) = 0.7.22-6.el9, but none of the providers can be installed
  - cannot install both libsolv-0.7.24-2.el9.x86_64 from baseos and libsolv-0.7.22-6.el9.x86_64 from @System
  - cannot install both libsolv-0.7.22-6.el9.x86_64 from pulpcore_offline and libsolv-0.7.24-2.el9.x86_64 from baseos
  - cannot install the best update candidate for package python3.11-solv-0.7.22-6.el9.x86_64
  - cannot install the best update candidate for package libsolv-0.7.22-6.el9.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
Installed Packages
ansible-collection-theforeman-foreman-4.0.0-2.el9.noarch
candlepin-4.3.12-1.el9.noarch
candlepin-selinux-4.3.12-1.el9.noarch
foreman-3.10.0-1.el9.noarch
foreman-cli-3.10.0-1.el9.noarch
foreman-dynflow-sidekiq-3.10.0-1.el9.noarch
foreman-installer-3.10.0-1.el9.noarch
foreman-installer-katello-3.10.0-1.el9.noarch
foreman-postgresql-3.10.0-1.el9.noarch
foreman-proxy-3.10.0-1.el9.noarch
foreman-redis-3.10.0-1.el9.noarch
foreman-release-3.10.0-1.el9.noarch
foreman-selinux-3.10.0-1.el9.noarch
foreman-service-3.10.0-1.el9.noarch
katello-4.12.0-1.el9.noarch
katello-certs-tools-2.9.0-2.el9.noarch
katello-client-bootstrap-1.7.9-2.el9.noarch
katello-common-4.12.0-1.el9.noarch
katello-repos-4.12.0-1.el9.noarch
katello-selinux-5.0.2-1.el9.noarch
pulpcore-selinux-2.0.1-1.el9.x86_64
python3.11-pulp-ansible-0.20.2-3.el9.noarch
python3.11-pulp-certguard-1.7.1-2.el9.noarch
python3.11-pulp-cli-0.21.2-5.el9.noarch
python3.11-pulp-container-2.16.4-1.el9.noarch
python3.11-pulp-deb-3.0.1-1.el9.noarch
python3.11-pulp-file-1.15.1-2.el9.noarch
python3.11-pulp-glue-0.21.2-3.el9.noarch
python3.11-pulp-python-3.10.0-3.el9.noarch
python3.11-pulpcore-3.39.11-1.el9.noarch
rubygem-foreman-tasks-9.1.1-1.fm3_11.el9.noarch
rubygem-foreman_ansible-13.0.3-2.fm3_10.el9.noarch
rubygem-foreman_bootdisk-21.2.2-1.fm3_11.el9.noarch
rubygem-foreman_discovery-24.0.1-1.fm3_10.el9.noarch
rubygem-foreman_maintain-1.5.1-1.el9.noarch
rubygem-foreman_remote_execution-12.0.5-3.fm3_10.el9.noarch
rubygem-hammer_cli-3.10.0-1.el9.noarch
rubygem-hammer_cli_foreman-3.10.0-1.el9.noarch
rubygem-hammer_cli_foreman_ansible-0.6.0-1.el9.noarch
rubygem-hammer_cli_foreman_remote_execution-0.3.0-1.el9.noarch
rubygem-hammer_cli_foreman_tasks-0.0.20-1.el9.noarch
rubygem-hammer_cli_katello-1.12.0-0.1.pre.master.el9.noarch
rubygem-katello-4.12.0-1.el9.noarch
rubygem-pulp_ansible_client-0.20.3-1.el9.noarch
rubygem-pulp_certguard_client-1.6.5-1.el9.noarch
rubygem-pulp_container_client-2.16.4-1.el9.noarch
rubygem-pulp_deb_client-3.0.1-1.el9.noarch
rubygem-pulp_file_client-1.15.1-1.el9.noarch
rubygem-pulp_ostree_client-2.1.3-1.el9.noarch
rubygem-pulp_python_client-3.10.0-1.el9.noarch
rubygem-pulp_rpm_client-3.23.2-1.el9.noarch
rubygem-pulpcore_client-3.39.9-1.el9.noarch
rubygem-smart_proxy_pulp-3.3.0-1.el9.noarch

Kernel 5.14.0-435.el9.x86_64

@Odilhao @pcreech any ideas on if we need to address a packaging change?

The same problem:

[root@myforeman ~]# dnf update
Last metadata expiration check: 0:50:05 ago on Fri 12 Apr 2024 09:49:24 AM.
Error: 
 Problem: package python3.11-solv-0.7.22-6.el9.x86_64 from @System requires libsolv(x86-64) = 0.7.22-6.el9, but none of the providers can be installed
  - cannot install both libsolv-0.7.24-2.el9.x86_64 from ol9_baseos_latest and libsolv-0.7.22-6.el9.x86_64 from @System
  - cannot install both libsolv-0.7.22-6.el9.x86_64 from pulpcore and libsolv-0.7.24-2.el9.x86_64 from ol9_baseos_latest
  - cannot install the best update candidate for package python3.11-solv-0.7.22-6.el9.x86_64
  - cannot install the best update candidate for package libsolv-0.7.22-6.el9.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Any news?

Got the same issue :frowning:
Problem 9: package python3.11-pulp-cli-0.21.2-5.el8.noarch from pulpcore requires python3.11-pygments, but none of the providers can be installed

  • package python3.11-pygments-2.14.0-3.el8.x86_64 from pulpcore obsoletes python39-pygments < 2.14.0-3.el8 provided by python39-pygments-2.14.0-1.el8.x86_64 from @System
  • package python3.11-pygments-2.17.0-1.el8.x86_64 from pulpcore obsoletes python39-pygments < 2.17.0-1.el8 provided by python39-pygments-2.14.0-1.el8.x86_64 from @System
  • package python39-rich-13.3.1-3.el8.noarch from @System requires python39-pygments >= 2.6.0, but none of the providers can be installed
  • package python39-rich-13.3.1-3.el8.noarch from @System requires python39-pygments < 3.0.0, but none of the providers can be installed
  • package ansible-lint-5.0.8-4.el8.noarch from @System requires python39-rich >= 9.5.1, but none of the providers can be installed
  • package python3.11-galaxy-importer-0.4.19-2.el8.noarch from pulpcore requires ansible-lint >= 5.0.8, but none of the providers can be installed
  • package python3.11-galaxy-importer-0.4.19-2.el8.noarch from pulpcore requires ansible-lint < 6.14.4, but none of the providers can be installed

https://docs.theforeman.org/3.10/Upgrading_Project/index-katello.html#upgrading_a_connected_foreman_server_upgrading-connected

Step 10 - did you do that part? I just upgraded yesterday following the upgrade notes and it worked fine

only issue i have post upgrade is vmware provisioning being broken, but iā€™m working on that and itā€™s unrelated to the upgrade process

If I disable the
dnf module disable pulpcore
I have issues on step 14, which is failing :frowning:
[ERROR ] [configure] Could not prefetch package provider ā€˜dnfmoduleā€™: Execution of ā€˜/usr/bin/dnf module list -y -d 0 -e 1ā€™ returned 1: Error: Failed to download metadata for repo ā€˜rhel-8-for-x86_64-baseos-rpmsā€™: Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

Any news regarding this issue?

dnf update
Last metadata expiration check: 0:32:33 ago on Mon 22 Apr 2024 07:44:12 AM CEST.
Error:
 Problem: package python3.11-solv-0.7.22-6.el9.x86_64 from @System requires libsolv(x86-64) = 0.7.22-6.el9, but none of the providers can be installed
  - cannot install both libsolv-0.7.24-3.el9.x86_64 from baseos and libsolv-0.7.22-6.el9.x86_64 from @System
  - cannot install both libsolv-0.7.22-6.el9.x86_64 from pulpcore_offline and libsolv-0.7.24-3.el9.x86_64 from baseos
  - cannot install the best update candidate for package python3.11-solv-0.7.22-6.el9.x86_64
  - cannot install the best update candidate for package libsolv-0.7.22-6.el9.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

CentOS 9 Stream
Foreman 3.10, Katello 4.12

Installed Packages
ansible-collection-theforeman-foreman-4.0.0-2.el9.noarch
candlepin-4.3.12-1.el9.noarch
candlepin-selinux-4.3.12-1.el9.noarch
foreman-3.10.0-1.el9.noarch
foreman-cli-3.10.0-1.el9.noarch
foreman-dynflow-sidekiq-3.10.0-1.el9.noarch
foreman-installer-3.10.0-1.el9.noarch
foreman-installer-katello-3.10.0-1.el9.noarch
foreman-postgresql-3.10.0-1.el9.noarch
foreman-proxy-3.10.0-1.el9.noarch
foreman-redis-3.10.0-1.el9.noarch
foreman-release-3.10.0-1.el9.noarch
foreman-selinux-3.10.0-1.el9.noarch
foreman-service-3.10.0-1.el9.noarch
katello-4.12.0-1.el9.noarch
katello-certs-tools-2.9.0-2.el9.noarch
katello-client-bootstrap-1.7.9-2.el9.noarch
katello-common-4.12.0-1.el9.noarch
katello-repos-4.12.0-1.el9.noarch
katello-selinux-5.0.2-1.el9.noarch
pulpcore-selinux-2.0.1-1.el9.x86_64
python3.11-pulp-ansible-0.20.2-3.el9.noarch
python3.11-pulp-certguard-1.7.1-2.el9.noarch
python3.11-pulp-cli-0.21.2-5.el9.noarch
python3.11-pulp-container-2.16.4-1.el9.noarch
python3.11-pulp-deb-3.0.1-1.el9.noarch
python3.11-pulp-file-1.15.1-2.el9.noarch
python3.11-pulp-glue-0.21.2-3.el9.noarch
python3.11-pulp-python-3.10.0-3.el9.noarch
python3.11-pulp-rpm-3.23.3-1.el9.noarch
python3.11-pulpcore-3.39.11-1.el9.noarch
rubygem-foreman-tasks-9.1.1-1.fm3_11.el9.noarch
rubygem-foreman_ansible-14.0.0-1.fm3_11.el9.noarch
rubygem-foreman_bootdisk-21.2.2-1.fm3_11.el9.noarch
rubygem-foreman_discovery-24.0.1-1.fm3_10.el9.noarch
rubygem-foreman_maintain-1.5.1-1.el9.noarch
rubygem-foreman_remote_execution-13.0.0-1.fm3_11.el9.noarch
rubygem-hammer_cli-3.10.0-1.el9.noarch
rubygem-hammer_cli_foreman-3.10.0-1.el9.noarch
rubygem-hammer_cli_foreman_ansible-0.6.0-1.el9.noarch
rubygem-hammer_cli_foreman_remote_execution-0.3.0-1.el9.noarch
rubygem-hammer_cli_foreman_tasks-0.0.20-1.el9.noarch
rubygem-hammer_cli_katello-1.12.0-0.1.pre.master.el9.noarch
rubygem-katello-4.12.0-1.el9.noarch
rubygem-pulp_ansible_client-0.20.3-1.el9.noarch
rubygem-pulp_certguard_client-1.6.5-1.el9.noarch
rubygem-pulp_container_client-2.16.4-1.el9.noarch
rubygem-pulp_deb_client-3.0.1-1.el9.noarch
rubygem-pulp_file_client-1.15.1-1.el9.noarch
rubygem-pulp_ostree_client-2.1.3-1.el9.noarch
rubygem-pulp_python_client-3.10.0-1.el9.noarch
rubygem-pulp_rpm_client-3.23.2-1.el9.noarch
rubygem-pulpcore_client-3.39.9-1.el9.noarch
rubygem-smart_proxy_pulp-3.3.0-1.el9.noarch

Hi, it looks like the pulp 3.39 repo is shipping python3.11-solv.x86_64:0.7.22-6.el9 which appears to have a hard dependency on libsolv.x86_64:0.7.22-6.el9 - but RHEL9 Base is now shipping libsolv.x86_64:0.7.24-2.el9

# yum list --showduplicates  libsolv python3.11-solv --disablerepo=* --enablerepo=rhel-9-baseos-rhui-rpms --enablerepo=pulpcore
Updating Subscription Management repositories.
Last metadata expiration check: 0:00:37 ago on Fri 26 Apr 2024 12:19:06 BST.
Installed Packages
libsolv.x86_64                                                   0.7.22-6.el9                                            @pulpcore
python3.11-solv.x86_64                                           0.7.22-6.el9                                            @pulpcore
Available Packages
libsolv.i686                                                     0.7.20-2.el9                                            rhel-9-baseos-rhui-rpms
libsolv.x86_64                                                   0.7.20-2.el9                                            rhel-9-baseos-rhui-rpms
libsolv.i686                                                     0.7.22-1.el9                                            rhel-9-baseos-rhui-rpms
libsolv.x86_64                                                   0.7.22-1.el9                                            rhel-9-baseos-rhui-rpms
libsolv.i686                                                     0.7.22-4.el9                                            rhel-9-baseos-rhui-rpms
libsolv.x86_64                                                   0.7.22-4.el9                                            rhel-9-baseos-rhui-rpms
libsolv.x86_64                                                   0.7.22-6.el9                                            pulpcore
libsolv.i686                                                     0.7.24-2.el9                                            rhel-9-baseos-rhui-rpms
libsolv.x86_64                                                   0.7.24-2.el9                                            rhel-9-baseos-rhui-rpms
python3.11-solv.x86_64                                           0.7.22-6.el9                                            pulpcore

Does the version of python3.11-solv in the pulpcore repo need to be bumped to match?

Note: yum update -x libsolv allows the system to be updated for now

Hi all,

We had one PR on pulpcore-packaging for some time to discuss the best implementation for this, in the end we decided to build python3.11-solv

The package is now published on Pulpcore 3.39 repo, it should work now.

Many thanks - thatā€™s worked for me!

1 Like

Works like a charm! Thanks a lot!