Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare for DNF 5 #214

Open
evan-goode opened this issue May 22, 2023 · 16 comments
Open

Prepare for DNF 5 #214

evan-goode opened this issue May 22, 2023 · 16 comments

Comments

@evan-goode
Copy link

(I'm filing issues with all the packages that currently depend on dnf)

Starting in Fedora 39, the dnf command will be provided by the dnf5 package rather than the dnf package, and dnf5 will obsolete dnf. The old DNF 4 Python API will still be provided by python3-dnf, as well as the DNF 4 command, as /usr/bin/dnf-3.

To avoid breaking the Fedora upgrade, dnfdragora should switch to depending on python3-dnf rather than dnf.

And since /usr/bin/dnf will soon point to DNF 5, which has a slightly different command-line interface, any use of the /usr/bin/dnf binary should be replaced with calls to /usr/bin/dnf-3.

At some point, this project should consider a rewrite to adopt libdnf5, but the immediate issue is removing the dependency on dnf.

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

@Conan-Kudo
Copy link
Member

With dnf5, there's a new dnfdaemon implementation provided by dnf5daemon-server. dnfdragora would need to switch to that.

@alh61
Copy link

alh61 commented Jun 27, 2023

Fedora Rawhide (aka F39) switched to DNF5 now, resulting in Dnfdragora just opening and closing the main window again.

@anaselli
Copy link
Collaborator

will see if i can work on it. But i need to work on a fedora virtual machine first...

@evan-goode
Copy link
Author

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.

In the meantime, we have set up a testing COPR repository 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.

@anaselli
Copy link
Collaborator

Thanks for the news, since I'm not a daily Fedora user I was not aware of that.

@Conan-Kudo
Copy link
Member

@evan-goode Is there a Python client for the dnfdaemon implementation included in DNF 5 that we can use to migrate dnfdragora to?

@evan-goode
Copy link
Author

AFAIK no, we just have the C dnf5daemon client at the moment.

@anaselli
Copy link
Collaborator

anaselli commented Dec 25, 2023

Could you please point me to dnfdaemon api and the c client source code?

@anaselli
Copy link
Collaborator

Ok API should be here

@Conan-Kudo
Copy link
Member

Looks like the group tag was missing in the dnf5daemon API, so I submitted a pull request to add it: rpm-software-management/dnf5#1122

@Conan-Kudo
Copy link
Member

This is in progress in the master branch right now.

@evan-goode
Copy link
Author

Just a heads-up, the Fedora 41 development cycle is beginning, and we are planning to obsolete DNF 4 by DNF 5 in Fedora Rawhide within the next few weeks. Again, libdnf is not going away, and the old DNF 4 command will still be available as /usr/bin/dnf-3, but /usr/bin/dnf will be DNF 5, which has a slightly different command-line interface. Packages should no longer depend on the dnf package in Fedora 41 .

@anaselli
Copy link
Collaborator

anaselli commented Feb 9, 2024

Well our master is moved to dnf5daemon for the most, i need to fix some signals code and all should be in iirc.

Anyway in my opinion dnf5daemon is not good (or let's say mature) enough to move to it. I had some crashes here and there because of requests lasting too long, and some old dnf 4 daemon features missing, especially to understand when a transaction ends.

@anaselli
Copy link
Collaborator

anaselli commented Feb 9, 2024

See for instance:

@keithbowes
Copy link

And since /usr/bin/dnf will soon point to DNF 5

I hope this is just for RedHat. I say let RedHat users be the guinea pigs and let those of us on other distros wait until the flood of bug reports that are introduced by the switch are fixed. (It's my understanding that dnfdragora is a Mageia thing that just happens to also be available on RedHat, not the other way around.)

@anaselli
Copy link
Collaborator

anaselli commented Aug 9, 2024

dnfdragora is not a Mageia thing, i just developed it there as a mageia user and contributor.
Unfortunately I'm quite busy for my daily job so i cannot work to it as i wanted to. I'm always open to contributors, so that door is not close.
Most of the above bugs should be closed or at least mitigated, and what is on git is usable but requires work to cut old functions that are not implemented in dnfdaemon yet and testing/fixing to make dnfdragora ready for production. Volunteers?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants