Bug 2209404 - Prepare for DNF 5, don't depend on `dnf`
Summary: Prepare for DNF 5, don't depend on `dnf`
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: policycoreutils
Version: rawhide
Hardware: All
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Petr Lautrbach
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2166026
TreeView+ depends on / blocked
 
Reported: 2023-05-23 19:23 UTC by Evan Goode
Modified: 2023-08-16 18:26 UTC (History)
5 users (show)

Fixed In Version: policycoreutils-3.5-7.fc39
Clone Of:
Environment:
Last Closed: 2023-08-01 13:00:05 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Evan Goode 2023-05-23 19:23:04 UTC
(I'm filing issues with all the packages that currently depend on `dnf`.)

DNF 5 is a new package manager that will replace DNF 4 in Fedora 39+:  Starting in Fedora 39, the `dnf` command will be provided by the `dnf5` package rather than the `dnf` package, and `dnf5` will obsolete `dnf`. Since policycoreutils currently depends on DNF 4, it should choose one of the following strategies to avoid breaking the Fedora upgrade:

- Add support for DNF 5, and depend on the `dnf5` package in Fedora 39+ instead of `dnf`. Builds of DNF 5 are available in this COPR repository: https://copr.fedorainfracloud.org/coprs/rpmsoftwaremanagement/dnf5-unstable/, and documentation is available here: https://dnf5.readthedocs.io/en/latest/.
- Alternatively, or in the meantime, change the policycoreutils package to depend on `python3-dnf` instead of `dnf`, and call the `dnf-3` binary instead of `dnf`. The old DNF 4 command will still be available in the distribution, but only as `dnf-3` (the binary is called `dnf-3`  rather than `dnf4` for historical reasons; it is the "Python 3 version" of DNF). The first option is preferred to this one; it is not recommended to modify installed software using both DNF 4 and DNF 5 on the same system.
- Or, if this package is no longer being maintained, consider removing it from Fedora.

At some point, this project should adopt DNF 5, but the immediate issue is removing the dependency on `dnf`. We are planning to replace DNF with DNF5 in Fedora Rawhide very soon, by 2023-06-01, and the policycoreutils package will break as long as it still depends on the `dnf` package.

For more information about the switch to DNF 5, see https://fedoraproject.org/wiki/Changes/ReplaceDnfWithDnf5.


Reproducible: Always

Comment 2 Fedora Update System 2023-08-01 11:01:16 UTC
FEDORA-2023-7f8f4307d0 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-7f8f4307d0

Comment 3 Fedora Update System 2023-08-01 13:00:05 UTC
FEDORA-2023-7f8f4307d0 has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 4 Evan Goode 2023-08-16 18:26:47 UTC
Hi, as you may be aware, the switch to DNF 5 has been postponed, likely to Fedora 41. In Fedora 39, the `dnf` command will be provided by the `dnf` package, and DNF 5 will not be installed by default.

No action is needed here, this change to depend on python3-dnf is still fine.

FYI, in the meantime, we have set up a testing [COPR repository](https://copr.fedorainfracloud.org/coprs/rpmsoftwaremanagement/dnf5-testing/) that provides a version of DNF 5 that obsoletes DNF 4. It can be used to test software in an environment similar to the future release of Fedora (whichever that will be) when DNF 5 replaces DNF 4:

```
sudo dnf-3 copr enable rpmsoftwaremanagement/dnf5-testing
```

Enabling the COPR and upgrading your system should replace DNF 4 (the `dnf` package) with DNF 5 (`dnf5`), and `/usr/bin/dnf` will be DNF 5.


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