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

Drop cpio-rs, replace with vendored code #109

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

dralley
Copy link
Collaborator

@dralley dralley commented Mar 23, 2023

This is necessary because RPM uses a modified CPIO format to support
>4gb file sizes. To maximize similarity and avoid producing nonsensical
RPM payloads, we should do the same.

closes #108

📜 Checklist

  • Commits are cleanly separated and have useful messages
  • A changelog entry or entries has been added to CHANGELOG.md
  • Documentation is thorough
  • Test coverage is excellent and passes
  • Works when tests are run --all-features enabled

src/rpm/payload/README.txt Outdated Show resolved Hide resolved
src/rpm/payload/README.txt Outdated Show resolved Hide resolved
src/rpm/payload/mod.rs Outdated Show resolved Hide resolved
@drahnr
Copy link
Contributor

drahnr commented Apr 14, 2023

Could you outline the exact differences/changes required to make the existing CPIO work?

@dralley
Copy link
Collaborator Author

dralley commented Apr 14, 2023

@drahnr I outline it in #108

@dralley
Copy link
Collaborator Author

dralley commented Dec 31, 2023

Note to self: make sure we handle the edge cases discussed here: https://blog.colindou.ch/posts/lets-make-an-os-cpio-weirdness/

That is: be careful with directories, and be careful with absolute paths. Extracting a cpio shouldn't automatically overwrite /usr/bin/blah.

This is necessary because RPM uses a modified CPIO format to support
>4gb file sizes. To maximize similarity and avoid producing nonsensical
RPM payloads, we should do the same.
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

Successfully merging this pull request may close these issues.

Drop "cpio" libraries and write something semi-custom, because RPM doesn't use vanilla CPIO
3 participants