Comments (27)
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.
This is patched kojid, but I expect a sane default should be picked as koji is unlikely to have a per build target compression format...
from createrepo_c.
Using a backported createrepo_c 1.0.2-2
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?
from createrepo_c.
I'm sorry, I think you miss-understood, I'm not using createrepo_c {on} el7, I'm using to generate repodata {for} el7!
from createrepo_c.
libcomps was updated recently (one month ago) , can be related ?
from createrepo_c.
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.
- Revert to uncompressed comps.xml for el7 compatibility unless tuned-off
- Revert to bzip2 compressed defaults (or xz that also seems to work with latest RHEL7.x).
- Once EL7 goes EOL by June 2024, revisit theses defaults. (and tune them back if using --compatibility mode).
- Then there is a need to understand why createrepo_c 1.0.0 consumes more memory than the previous versions.
from createrepo_c.
Indeed this is not related to libcomps. These are changes in createrepo_c
, some more details are here.
If we introduced the compatibility mode which restores the old defaults would that be sufficient for koji
?
It could be used in all build targets.
from createrepo_c.
My current workaround is to manually uncompress the comps file and modify the repodata.xml as appropriate.
Is that workaround not sufficient to last 6 months? Are you editing repodata.xml manually or are you able to use modifyrepo?
Revert to uncompressed comps.xml for el7 compatibility unless tuned-off
I'm fine with adding to the --compatibility flag if its absolutely required.
Revert to bzip2 compressed defaults (or xz that also seems to work with latest RHEL7.x).
On this topic you are mistaken, yum
and dnf
only looks for the group
and group_gz
tags. With the previous behavior of createrepo_c, only setting the compression type to gz
would create a useful compressed comps file, because the clients were not looking for group_xz
(etc). So for any other compression type, yum would download the uncompressed group
file. Therefore it's equivalent in effect to disabling compression altogether for comps metadata.
See https://bugzilla.redhat.com/show_bug.cgi?id=1904360 and https://bugzilla.redhat.com/show_bug.cgi?id=2056318
DNF unlike Yum
supports the group
metadata being compressed (just like any other metadata file, no special behavior, no need to look for alternate tags). But yum is obviously not able to handle group
being compressed.
from createrepo_c.
Is that workaround not sufficient to last 6 months? Are you editing repodata.xml manually or are you able to use modifyrepo?
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.
In kojid context, we cannot assume createrepo_c from the buildroot to be used to generate the appropriate content for the target since we have a chickend and egg problem (createrepo_c comes from the builder userspace).
On this topic you are mistaken, yum and dnf only looks for the group and group_gz tags.
Right, but zck cannot be uncompressed by RHEL7 's yum as I expect.
Then there is the comps issue there, that you have perfectly described.
See also the upstream ticket for koji : https://pagure.io/koji/issue/3945
from createrepo_c.
Also worth to mention my report to the fedora infra https://pagure.io/fedora-infrastructure/issue/11637
And a(slightly) related ticket for the effects of the option on rawhide users https://pagure.io/releng/issue/11664
from createrepo_c.
Ok, sounds like we want to overload --compatibility
then.
Should --compatibility
imply --general-compress-type=gz --compress-type=gz
also?
from createrepo_c.
--compatibility
is documented as "compatibility with classical createrepo". So whatever createrepo did, createrepo_c --compatibility
should do too.
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:
--compress-type COMPRESSION_TYPE
Which compression type to use. Supported compressions are: bzip2, gzip, zck, zstd, xz.
--general-compress-type COMPRESSION_TYPE
Which compression type to use (even for primary, filelists and other xml).
Now --general-compress-type gz --general-compress-type bz2
produces bzip2 only.
Also the manual is wrong because neither bzip2
or gzip
as quoted there are recognized. And zck seems rejected all the time. What's the relation to --zck option?
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?:
--compress-type COMPRESSION_TYPE
Which compression type to use. Supported compressions are: none, bz2, gz, zck, zstd, xz.
"none" means no compression. You can use this option multiple times to output in multiple compress types.
If this option is not used, "--compress-type none" is implied".
from createrepo_c.
Also the manual is wrong because neither bzip2 or gzip as quoted there are recognized. And zck seems rejected all the time. What's the relation to --zck option?
Yes I had also noticed this recently. I'll submit a PR to fix that.
Would you like this interface?:
Are you saying now or in the future? Because currently the combination of --compress-type
and --general-compress-type
is extremely confusing. #363
from createrepo_c.
I wrote my comment mainly to deter people from thinking on --compatibility
as a moving target which changes compression formats over time as what Fedora considers compatible. It's not fair to other RPM distributions. And to warn from adding new and new options without thinking on a long-term design.
I did not know about #363. My comment would rather fit there. I will copy it there. I also find --compress-type
and --general-compress-type
confusing.
I'd like to keep this ticket for fixing --compatibility
semantics to include gz compression.
However, I'm not against to a large overhaul per #363. Even now. The future can be now.
from createrepo_c.
I wrote my comment mainly to deter people from thinking on --compatibility as a moving target which changes compression formats over time as what Fedora considers compatible. It's not fair to other RPM distributions. And to warn from adding new and new options without thinking on a long-term design.
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.
from createrepo_c.
Related Issues (20)
- Undocumented change in python API HOT 6
- [1.0 breaking change] - consolidate compression options HOT 9
- [1.0 breaking change] - consolidate checksum options HOT 12
- Missing argument for RepomdRecord.fill() in Python documentation.
- [FIX] Build from 'master' branch is broken HOT 3
- `_XOPEN_SOURCE` define in `src/misc.c` seems extraneous
- Drop `--database` and `--no-database`, split?/drop `sqliterepo_c` HOT 5
- Sending SIGTERM to "createrepo_c --workers 2" sometimes leads to a crash HOT 6
- `--pkglist` can't be used with non-regular files
- Parsing primary.xml error: Start tag expected, '<' not found HOT 4
- heap buffer overflow and stack buffer overflow in test suite HOT 3
- Intermittent crash in `ci-dnf-stack/dnf-behave-tests/createrepo_c/zchunk.feature` HOT 1
- Python bindings fail to add the default version for sqlite records
- Has `--deltas` option been removed? HOT 9
- Brainstorm ways to shrink RPM metadata HOT 5
- Fix the building process to drop documentation for disabled features
- sqlite3_enable_shared_cache HOT 1
- `modifyrepo_c` and `mergerepo_c` generate `--no-pretty` metadata by default
- createrepo_c zstd compression doesn't fill in the content size, in the frame header. Python API problems. HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from createrepo_c.