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: