Bug 2252128 - set "deltarpm=False" in default dnf.conf on Fedora 40+
Summary: set "deltarpm=False" in default dnf.conf on Fedora 40+
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Jan Kolarik
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2245148
TreeView+ depends on / blocked
 
Reported: 2023-11-29 17:59 UTC by Fabio Valentini
Modified: 2024-02-09 00:37 UTC (History)
8 users (show)

Fixed In Version: dnf-4.19.0-1.fc40
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2024-02-09 00:37:55 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Fabio Valentini 2023-11-29 17:59:52 UTC
The "Drop Delta RPMs" Change proposal was approved by FESCo:

- https://fedoraproject.org/wiki/Changes/Drop_Delta_RPMs
- https://pagure.io/fesco/issue/3070

The "server-side" part of the implementation of this proposal has been submitted to fedora-infra:

https://pagure.io/fedora-infra/ansible/pull-request/1676

This leaves the "client-side" part of the proposal, i.e. disabling deltarpms in the default dnf configuration.

I can submit pull requests to make the required changes, but I'm not sure what the best approach would be.

As far as I can tell, the default dnf.conf file for Fedora is maintained here:
https://github.com/rpm-software-management/dnf/blob/4.18.1/etc/dnf/dnf.conf

What would be the best way to add "deltarpm=False" to this file *on Fedora 40+ only*?

I can either submit a PR against the Fedora dnf package with a patch that is only applied "%if %{?fedora} >= 40". That should not increase maintenance burden much, since the histories of the rawhide / f39 branches have already diverged.

Alternatively, I can submit a PR against dnf upstream, maybe to provide an alternative config file that can be used on Fedora >= 40.

Ideally, these changes would then also happen for the dnf5 package, but I seem to recall that the default configuration will be handle differently with dnf5, so that would need to be done separately, I guess.



Reproducible: Always

Comment 1 Jan Kolarik 2024-01-19 10:25:45 UTC
Hi Fabio and sorry for a late response.

I believe the downstream patch, adding 'deltarpm=False' to the configuration file, is the simplest solution. If you can create that pull request, it would be greatly appreciated. Otherwise, I can take care of it.

Regarding dnf5, we would probably go with a distribution configuration file with 'deltarpm=False' for the planned switch dnf4 -> dnf5 in Fedora 41. I've already filed an upstream issue: https://github.com/rpm-software-management/dnf5/issues/1185.

Comment 2 Fabio Valentini 2024-01-20 21:36:06 UTC
Thanks for the advice - I filed a PR that adds a patch to set "deltarpm=False" in the default config file:
https://src.fedoraproject.org/rpms/dnf/pull-request/22

dnf currently doesn't build in Rawhide, but that seems to be unrelated to my changes.

Comment 3 Fabio Valentini 2024-01-25 20:00:00 UTC
PR merged, will be part of the next dnf update.

Comment 4 Jan Kolarik 2024-01-26 08:48:48 UTC
Sorry, reopening this. After further consideration and team discussion, also in relation to the new filelists metadata not loading by default in Fedora 40+, we believe it's more appropriate to make the change upstream and patch the former downstreams. I've realized that simply patching the configuration is insufficient, as users with modified configurations on their systems won't receive the updated configuration from the package update. I'll need to devise a different approach in the downstream patches.

Additionally, in connection with this, we need to drop the 'Recommends: deltarpm' weak dependency for Fedora releases, as these are installed by default due to `install_weak_deps=True`.

Comment 5 Jaroslav Mracek 2024-01-26 10:48:18 UTC
I create an upstream change that provide functionality

https://github.com/rpm-software-management/dnf/pull/2040
https://github.com/rpm-software-management/libdnf/pull/1641

In contrary to downstream patch, it does not modify dnf.conf, but default in code and a weak dependency.

The adwantage of that approach is that it unifies behavior for all users, because changes in dnf.conf are not always applied to old system and some scripts does not load dnf.conf at all.

Comment 6 Fabio Valentini 2024-01-26 13:21:15 UTC
Thanks, that works for me too.

I would have considered the "users who have modified their dnf.conf will not get this change on upgrade" a good trade-off. But if you can switch the default behaviour if the setting is not present, that's even better :)

Comment 7 Fedora Update System 2024-02-08 17:35:59 UTC
FEDORA-2024-5338fc94c8 (dnf-4.19.0-1.fc40, dnf-plugins-core-4.5.0-1.fc40, and 1 more) has been submitted as an update to Fedora 40.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-5338fc94c8

Comment 8 Fedora Update System 2024-02-09 00:37:55 UTC
FEDORA-2024-5338fc94c8 (dnf-4.19.0-1.fc40, dnf-plugins-core-4.5.0-1.fc40, and 1 more) has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.


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