umoci 0.4.0
umoci repack
now supports--refresh-bundle
which 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.rootlesscontainers
specification, 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 unpack
now has support for opaque whiteouts (whiteouts which remove
all children of a directory in the lower layer), thoughumoci repack
does
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 unpack
will 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_map
checking 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 unpack
will 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 gc
now 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 --rootless
will now correctly handle regular file unpacking
when overwriting a file thatumoci
doesn'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 [email protected]
- Jonathan Boulle [email protected]
- Serge Hallyn [email protected]
- Tobias Klauser [email protected]
- Tycho Andersen [email protected]
- W. Trevor King [email protected]
Signed-off-by: Aleksa Sarai [email protected]