Has `--deltas` option been removed?
mattiaverga opened this issue · 9 comments
Since 1.0.2 update Bodhi tests started to fail due to
E subprocess.CalledProcessError: Command '['createrepo_c', '--groupfile', 'comps.xml', '--deltas', '--xz', '--database', '--quiet', '/tmp/tmp23ga5f6cbodhi/f17-updates-testing/compose/Everything/i386/os/f17-updates-testing/i386']' returned non-zero exit status 1.
/usr/lib64/python3.12/subprocess.py:413: CalledProcessError
---------------------------- Captured stderr setup -----------------------------
Argument parsing failed: Unknown option --deltas
I can't find any documentation about that option been removed.
Hello, I believe the issue is related to this change: #372. The removal of drpm was supposed to be included in createrepo_c version 1.0.0, but it seems to have been propagated only now with this update.
The accepted system-wide change related to dropping DRPM support for Fedora 40 can be found here: https://discussion.fedoraproject.org/t/f40-change-proposal-drop-delta-rpms-system-wide/89601.
Is Fedora Bodhi supposed to create repositories for Fedora < 40? Or is is just an test witch passes --delta option for no reason?
If Bodhi produces the repositories, createrepo_c in Fedora needs to reenable delta support. We can disable the support once Fedora 39 reached end of life. What about EPEL?
We only ship DRPMs for Fedora and EPEL 7, I think?
It actually does not matter what service creates the repositories. Provided the service uses createrepo_c and the service runs on a stable Fedora, we need to retain a delta support in Fedora builds of createrepo_c until Fedora 39 + 2 EOL. I.e., we can disable it in Fedora 42. The service can run on Fedora 41 and produce repositories for Fedora 39, the last Fedora release with deltas.
Regarding EPEL 7, extended life support ends on 2026-06-30. At that that time the latest stable Fedora release will be 44.
So unless EPEL stops producing deltas sooner, we need to wait for Fedora 45:
--- a/createrepo_c.spec
+++ b/createrepo_c.spec
@@ -4,7 +4,7 @@
%global bash_completion %{_datadir}/bash-completion/completions/*
-%if ( 0%{?rhel} && ( 0%{?rhel} <= 7 || 0%{?rhel} >= 9 ) ) || ( 0%{?fedora} && 0%{?fedora} >= 39 )
+%if ( 0%{?rhel} && ( 0%{?rhel} <= 7 || 0%{?rhel} >= 9 ) ) || ( 0%{?fedora} && %0%{?fedora} >= 45 )
%bcond_with drpm
%else
%bcond_without drpm
Am I right?
Currently man createrepo_c
and createrepo_c --help
still list the --deltas
option, so I was surprised this has been removed.
From a Fedora perspective, yes, we will need that option to remain available until F39 goes EOL, because at that time Bodhi composer will probably be running on a F41 based image. Unless Fesco/Releng wants to drop delta rpm on all active Fedora releases.
Also I have just pushed a Bodhi change that enables to have different createrepo_c settings by release, but delta rpm was not in the editable parameters.
About EPEL7, from another Releng ticket discussed with @nirik I understood that we will stop composing EPEL7 repositories on June 2024. If we will have to wait June 2026, we will have another big problem, as createrepo_c v1.0.x says the repodata it creates by default is not compatible with EPEL7:
When adding groups.xml to repodata createrepo_c currently adds two variants to repomd.xml. The specified file as is, uncompressed, with the type "group" and also a compressed variant with type "group_XX", where XX is compression suffix. This is atypical and unexpected. We propose to include just one variant of groups.xml using specified compression and repomd.xml type "group". This is not compatible with yum in RHEL 7. If required users will still be able to create repositories with the old layout using modifyrepo_c.
Provided the service uses createrepo_c and the service runs on a stable Fedora, we need to retain a delta support in Fedora builds of createrepo_c until Fedora 39 + 2 EOL.
@ppisar I agree we should continue with the drpm support in createrepo_c for now. Maybe can we drop the Fedora condition there and just add a comment, so we will do the manual switch in the future rather than doing it automatically?
Also I have just pushed a fedora-infra/bodhi#5521 that enables to have different createrepo_c settings by release, but delta rpm was not in the editable parameters.
@mattiaverga I think the drpm is not an editable parameter, because it is decided at the build time whether to require the drpm dependency. I don't see any reason or benefit of switching the drpm support off after the building.
I would keep the condition with a comment that "Fedora infrastructure needs it for producing Fedora ≤ 39 and EPEL ≤ 7 repositories". And add a link there to this issue so that we know that Bodhi tests will be affected. I prefer the automatic disablement. Otherwise, maintainers will forget to disable it.
I would also welcome patching a build process (here in upstream) to remove a documentation for the option, if the feature is disabled.
I'll prepare the new downstream builds and do also the upstream PR. For the documentation removal, I will create a separate issue if you don't mind.