-
Notifications
You must be signed in to change notification settings - Fork 93
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
Newer createrepo_c doesn't generate comps readable EL7 #403
Comments
Side note, I had to use --general-compress-type=gz (but I plan to use =xz) because I expect zstd will not work on EL7. |
But why? Is there any reason to use such a new version of createrepo_c with a distro that will be out of support in 6 months? |
I'm sorry, I think you miss-understood, I'm not using createrepo_c {on} el7, I'm using to generate repodata {for} el7! |
libcomps was updated recently (one month ago) , can be related ? |
no, only updating newer creatererepo_c changes this behavior with no uncompressed comps.xml Unless we want to deal with koji adapting createrepo_c tasks for each build target, I would suggest the following as createrepo_c is concerned.
|
Indeed this is not related to libcomps. These are changes in If we introduced the compatibility mode which restores the old defaults would that be sufficient for |
Is that workaround not sufficient to last 6 months? Are you editing repodata.xml manually or are you able to use modifyrepo?
I'm fine with adding to the --compatibility flag if its absolutely required.
On this topic you are mistaken, See https://bugzilla.redhat.com/show_bug.cgi?id=1904360 and https://bugzilla.redhat.com/show_bug.cgi?id=2056318 DNF unlike |
Looks like a tremendous hack, that would be also needed by the fedora infra, so totally un-appropriate as a workaround. The kojid usage of createrepo_c(/mergerepos_c) assumes a recent builder to generate content that can be read by all buildroot. (so RHEL7 -> RHEL N and non-EOL Fedora) If this assumption is broken, there is a need to accommodate the tool to build sane defaults for kojid usage.
Right, but zck cannot be uncompressed by RHEL7 's yum as I expect. See also the upstream ticket for koji : https://pagure.io/koji/issue/3945 |
Also worth to mention my report to the fedora infra https://pagure.io/fedora-infrastructure/issue/11637 |
Ok, sounds like we want to overload Should |
I also cannot see in the manual how to keep an uncompressed format. One may want to have or not to have both compressed and uncompressed formats in the output. Or one may want to have multiple compressions. Current manual reads:
Now Also the manual is wrong because neither I personally don't like compressing by default and changing the default compression whenever a new compression type is invented. It breaks compatibility as reported in this issue. Would you like this interface?:
|
Yes I had also noticed this recently. I'll submit a PR to fix that.
Are you saying now or in the future? Because currently the combination of |
I wrote my comment mainly to deter people from thinking on I did not know about #363. My comment would rather fit there. I will copy it there. I also find I'd like to keep this ticket for fixing |
My understanding is that SUSE has actually supported zstd compressed metadata since SUSE 15, which released before RHEL 8 did. I don't know about Maegia or other distros though. |
This is a problem for SUSE enterprise 12 SP5 too. This OS is still has long term support from SUSE. |
@kwizart @Hextremist Is this sufficient? #418 |
I might schedule a test, but I wonder if createrepo will default to --compatibility and produce uncompressed groups and gz for other content. That will permit koji to revert back to createrepo calls that works with older distro (el7) even if using a createrepo_c implementation. (that will avoid a koji patch at all). |
The |
Isn't that the purpose of the createrepo command over createrepo_c to enable the --compatibily flag by default ? From koji perspective, if there is a need to enable the compatibility flag everywhere, there is no point to use creatrepo_c at all but use createrepo instead. |
@kwizart If you need that, you'd need to file a PR to change the aliases from a mere symlink to a script https://github.com/rpm-software-management/createrepo_c/blob/master/createrepo_c.spec#L159-L163 But I don't really understand why this is a problem, only one line needs to be tweaked https://github.com/koji-project/koji/blob/1310f22b8089a011fd4968ef5f7c72cfb8d2f8c3/builder/kojid#L5671 and it's already set up to specify an extra flag there on the And Koji will only need to care about EL7 for a few more months |
I tough it would work using the name of the binary. (like argv[0] == createrepo would enable the --compatibility flag automatically) It is a problem because koji is a higher level tool and doesn't yet permit using createrepo_c arbitrary parameters. But it has already an option to use createrepo_c or createrepo (same with mergerepo) with the expected parameters. Using argv[0] worth it because it would allow to use unmodified koji right now. Also EL7 lifetime is one thing, but there is also the RHEL extended support and some cases might still use createrepo on newer host to compute repository targeting EL7 for wider community. |
Reported as rpm-software-management#403 The point of using createrepo is to keep the same behavior with the createrepo command. Users that want modern behavior should use createrepo_c command instead. Signed-off-by: Nicolas Chauvet <[email protected]>
Side note about this issue and mergerepo_c over mergerepo (I will open a separate issue, if needed). At least there is a good chance that the original issue is fixed. So thanks for that. |
From the upstream perspective, EL7 is dead to us. The extent of which we should care about it for this project is making it possible to set flags to generate repodata compatible for it, just like we did for EL6. |
Insofar as issues with Koji, it's worth filing issues there to make it more configurable. But also, please don't run stuff on EL7 anymore, since it is EOL in five months. |
RHEL doesn't. Don't know about the wider community e.g. SUSE.
The complaint is more about infra running on new stuff (Fedora) not being able to generate metadata for EL7 easily. Which, prior to this PR, was painful (involved modifyrepo_c steps) and after this PR is still not 100% transparent (requires passing @kwizart Is it that much more difficult to update Koji? You could probably even reuse |
That's the very much point of my PR (use_createrepo_c=False) in our (fedora) koji builders. So in one end we can consume zstd compressed metadata, but also produce metadata that can be consumed by yum. Using use_createrepo_c=False and my PR will do the right things easily until we stop caring about EL7 (not before June this year). The main concern beyond my community project (rpmfusion.org) and fedora Red Hat SuSe or else, is also the wider community (I mean people and entity that create internal corporate build using koji or else for their own use). |
Once kojid is modified, we can use any per-build / per-tag arbitrary commands to createrepo_c and even drop support for createrepo command there. |
I'm using an (older) fedora with koji to build from el7 to fedora rawhide (as the rpmfusion.org project)
Using a backported createrepo_c 1.0.2-2 , the command generate a repomd.xml with a compressed comps.xml, but this file cannot be read by yum that seems to expect an uncompressed comps.xml
Even using the compatibility mode (using createrepo or createrepo_c --compatibility) doesn't change this behavior.
When the koji builder populates the buildroot (for the initial buildfromSCM buildroot), I'm experiencing the following error:
My current workaround is to manually uncompress the comps file and modify the repodata.xml as appropriate.
After this modification, the build can occurs normally.
The text was updated successfully, but these errors were encountered: