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

support ostree-ext tar mode #2499

Open
cgwalters opened this issue Dec 15, 2021 · 2 comments
Open

support ostree-ext tar mode #2499

cgwalters opened this issue Dec 15, 2021 · 2 comments

Comments

@cgwalters
Copy link
Member

Today https://github.com/ostreedev/ostree-rs-ext/ implements effectively a new repository mode. The main thing is that we split off xattrs into a separate content-addressed file; partly because I was uncertain about xattrs making it through tar transformations.

We should support all ostree operations here, both reads and commits. This will involve some code duplication with ostree-rs-ext unfortunately due to the Rust/C problem. Or...in theory we could try to expose a hidden but stable C API from ostree-rs-ext as a C shared library...but, eek.

cgwalters added a commit to cgwalters/ostree-rs-ext that referenced this issue Dec 17, 2021
Part of ostreedev/ostree#2499

Basically, ostree core should have first-class support for
reading and parsing this.  The primary motivation is to support
ostree-in-container better.

The real main wrinkle here is xattrs, as usual.  We can't rely on
being able to read/write xattrs inside a container.

For now, this will serve sufficient to *identify* this format,
but it will pave the way for ostree core to support read/write.

(Note that if we go to implement writes, a notable wrinkle is that
 garbage collection of the `xattrs` subdirectory will require
 another special handling pass)
cgwalters added a commit to cgwalters/ostree-rs-ext that referenced this issue Dec 17, 2021
Part of ostreedev/ostree#2499

Basically, ostree core should have first-class support for
reading and parsing this.  The primary motivation is to support
ostree-in-container better.

The real main wrinkle here is xattrs, as usual.  We can't rely on
being able to read/write xattrs inside a container.

For now, this will serve sufficient to *identify* this format,
but it will pave the way for ostree core to support read/write.

(Note that if we go to implement writes, a notable wrinkle is that
 garbage collection of the `xattrs` subdirectory will require
 another special handling pass)
cgwalters added a commit to cgwalters/ostree-rs-ext that referenced this issue Dec 18, 2021
Part of ostreedev/ostree#2499

Basically, ostree core should have first-class support for
reading and parsing this.  The primary motivation is to support
ostree-in-container better.

The real main wrinkle here is xattrs, as usual.  We can't rely on
being able to read/write xattrs inside a container.

For now, this will serve sufficient to *identify* this format,
but it will pave the way for ostree core to support read/write.

(Note that if we go to implement writes, a notable wrinkle is that
 garbage collection of the `xattrs` subdirectory will require
 another special handling pass)
cgwalters added a commit to cgwalters/ostree-rs-ext that referenced this issue Dec 20, 2021
Part of ostreedev/ostree#2499

Basically, ostree core should have first-class support for
reading and parsing this.  The primary motivation is to support
ostree-in-container better.

The real main wrinkle here is xattrs, as usual.  We can't rely on
being able to read/write xattrs inside a container.

For now, this will serve sufficient to *identify* this format,
but it will pave the way for ostree core to support read/write.

(Note that if we go to implement writes, a notable wrinkle is that
 garbage collection of the `xattrs` subdirectory will require
 another special handling pass)
@lucab
Copy link
Member

lucab commented Jan 18, 2022

Perhaps without going into the uncharted territory of linking the C and Rust codebases together, for the moment it could be enough to investigate a "metadata read-only" mode purely in C here.
As an intermediate step, that would allow basic handling/introspection through libostree and most of the metadata command to work on such repo (ls, log, show, fsck, etc). Writing and checkout would still live on the Rust extension only, at least for the moment.

@cgwalters
Copy link
Member Author

Having it be read-only would definitely be a useful start.

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

No branches or pull requests

2 participants