umoci 0.4.0
umoci repacknow supports--refresh-bundlewhich will update the
OCI bundle's metadata (mtree and umoci-specific manifests) after packing the
image tag. This means that the bundle can be used as a base layer for
future diffs without needing to unpack the image again. openSUSE/umoci#196- Added a website, and reworked the documentation to be better structured. You
can visit the website atumo.ci. openSUSE/umoci#188 - Added support for the
user.rootlesscontainersspecification, which allows
for persistent on-disk emulation ofchown(2)inside rootless containers.
This implementation is interoperable with @AkihiroSuda'sPRoot
fork (though we do not test its interoperability at the
moment) as both tools use the same protobuf
specification. openSUSE/umoci#227 umoci unpacknow has support for opaque whiteouts (whiteouts which remove
all children of a directory in the lower layer), thoughumoci repackdoes
not currently have support for generating them. While this is technically a
spec requirement, through testing we've never encountered an actual user of
these whiteouts. openSUSE/umoci#224 openSUSE/umoci#229umoci unpackwill now use some rootless tricks inside user namespaces for
operations that are known to fail (such asmknod(2)) while other operations
will be carried out as normal (such aslchown(2)). It should be noted that
the/proc/self/uid_mapchecking we do can be tricked into not detecting
user namespaces, but you would need to be trying to break it on purpose.
openSUSE/umoci#171 openSUSE/umoci#230
- Fix a bug in our "parent directory restore" code, which is responsible for
ensuring that the mtime and other similar properties of a directory are not
modified by extraction inside said directory. The bug would manifest as
xattrs not being restored properly in certain edge-cases (which we
incidentally hit in a test-case). openSUSE/umoci#161 openSUSE/umoci#162 umoci unpackwill now "clean up" the bundle generated if an error occurs
during unpacking. Previously this didn't happen, which made cleaning up the
responsibility of the caller (which was quite difficult if you were
unprivileged). This is a breaking change, but is in the error path so it's
not critical. openSUSE/umoci#174 openSUSE/umoci#187umoci gcnow will no longer remove unknown files and directories that
aren'tflock(2)ed, thus ensuring that any possible OCI image-spec
extensions or other users of an image being operated on will no longer
break. openSUSE/umoci#198umoci unpack --rootlesswill now correctly handle regular file unpacking
when overwriting a file thatumocidoesn't have write access to. In
addition, the semantics of pre-existing hardlinks to a clobbered file are
clarified (the hard-links will not refer to the new layer's inode).
openSUSE/umoci#222 openSUSE/umoci#223
Thanks to all of the contributors that made this release possible:
- Aleksa Sarai asarai@suse.de
- Jonathan Boulle jonathanboulle@gmail.com
- Serge Hallyn serge@hallyn.com
- Tobias Klauser tklauser@distanz.ch
- Tycho Andersen tycho@tycho.ws
- W. Trevor King wking@tremily.us
Signed-off-by: Aleksa Sarai asarai@suse.de