Releases: ostreedev/ostree
2017.7
The most notable thing for this release is that for flatpak users/distributors,
this release adds a lot of (opt-in) hardening against setuid or world-writable
files. These issues are also (to a lesser degree) applicable to ostree-based
build systems which use the bare-user
repository mode. A pending flatpak
version will require this version of libostree. More information in:
flatpak/flatpak#845
For ostree-as-host, we fixed a major regression in SELinux labeling for
/etc
(only applies to SELinux-using host systems).
Known issue: test-symbols.sh
will fail when building from the tarball (as
opposed to a git clone). Pending fix: #944
Besides that, there's various smaller cleanups and fixes. It's great to see
contributors from a variety of organizations; having libostree be a shared
infrastructure layer across distributions is a longstanding vision. Thanks to
all contributors!
Alexander Larsson (5):
fetcher: Send Accept-Encoding: gzip when downloading summary
repo: After renaming in all loose objects, ensure metadata is stable
lib/repo: Always look in staging directory for objects
pull: When mirroring, only replace summary if we're doing a full mirror
static delta apply: Work on bare-user-only repos
Anton Gerasimov (1):
lib/sysroot: Add API to get pending/rollback for given stateroot
Brian C. Lane (1):
Remove the OSTREE_MAX_RECURSION limit on metadata depth
Colin Walters (51):
tests/test-symbols.sh: Fix with --enable-experimental-api
ci: Add unit case for --enable-experimental-api
tests/libtest-core: Copy rpm-ostree changes, clean up
bin/cookies: Delete dead tmpfile code in cookie list command
Add stub for new libglnx tmpfile API, port simpler callers to it
lib/deploy: Port config merge logic to new code style
tests: Add some C tests for object writing
pull-test: Add some 404 tests
lib/fsutil: Delete unused GFile ioctl method
lib/fsutil: Port to new code style
lib: Add an "is_system" member to OstreeRepo
lib/sysroot: Add non-failable ostree_sysroot_repo()
tree-wide: Add+run spatch to use glnx_throw()
cmd: Use autoptr for GKeyFile
lib/util: Some style conversion
Add a notion of "physical" sysroot, use for remote writing
repo/commit: Dedup metadata writing API implementations
repo/commit: Dedup content writing API implementation
repo/commit: In the expected checksum case, check existence early
repo/commit: Don't renormalize trusted metadata
repo/commit: Split up metadata/content commit paths
lib/repo: Delete unused private prototypes
Revert "Add a notion of "physical" sysroot, use for remote writing"
Don't install trivial-httpd man page if not enabled
Canonicalize bare-user-only perms with 0755 mask
builtins/cat: Port to new code style
lib/repofile: Port mostly to new code style
lib/repofile: Follow symlinks for `g_file_read()`
lib/repo: For bare-user, mask content object modes with 0775
tests: Add a test for bare-user-only failing to commit suid content
repo/commit: Support group-writable files for bare-user-only
ci: Update to match current rpm-ostree
ci: Add CentOS 7 build
repo: Fix leak of superblock fds when generating summary
lib/commit: Port final object writing function to new code style
lib/commit: Drop some conditionals/clarify code in content path
lib/checkout: Ignore world-writable dirs for bare-user-only checkout
lib/repo: Refactor object copy import function
lib/repo: Skip import via hardlink if repo owners don't match
lib/repo: Import metadata via hardlink even for distinct repo modes
lib/repo: Support hardlink conversions from bare-user to bu-only
lib/pull: Add OSTREE_REPO_PULL_FLAGS_BAREUSERONLY_FILES
lib/checkout: Add bareuseronly_dirs option
build-sys: post-release version bump
lib/sysroot: Add some g_prefix_error() for ostree_sysroot_cleanup()
lib/pull: Extend BAREUSERONLY_FILES flag to HTTP requests
lib: Split symbol versioning into -released and -devel
checkout: Fix SELinux policy labeling when recursing
tests: Fix previous commit for selinux testing
build-sys: Add "release build" flag, use for symbol versioning
Release 2017.7
Daniel Drake (2):
libtest: allow committing to alternative branches
Allow commits to mark refs as EOL, replaced by others
David Shea (1):
lib/repo: Fix annotations for out parameters
Jonathan Lebon (6):
pull: complete detached meta fetch before scanning
PAPR: migrate to the new name
checkout: don't apply SELinux labeling in user mode
checkout: also chmod in the user checkout case
manual: document bare-user-only repo mode
basic-test.sh: explicitly check for uncompressed objects
Krzesimir Nowak (1):
lib/sysroot: Document the NO_CLEAN flag
Owen W. Taylor (1):
lib/repo: Don't copy xattrs when manipulating the GPG keyring
Philip Withnall (16):
lib/remote: Add a getter for OstreeRemote.name
lib/remote: Add internal annotations to OstreeRemote
lib/remote: Add arguments to internal OstreeRemote constructor
lib/repo: Add return value to _ostree_repo_add_remote()
lib/repo: Make ost_repo_remove_remote() available internally
lib/remote: Fix compilation with --enable-experimental-api
build: Use AM_TESTS_ENVIRONMENT rather than TESTS_ENVIRONMENT
lib/repo: Reindent some code in regenerate_summary() for clarity
lib/pull: Fix a typo in a documentation comment
lib/pull: Simplify a for-loop initialisation
lib/pull: Drop some trailing whitespace
lib/pull: Fix an over-indented block
ostree/dump: Improve formatting for well-known commit metadata keys
lib/repo: Omit deltas from the summary file if there are none
lib/fetcher: Add cleanup function for OstreeFetcher
lib/pull: Fix construction of a refspec to use the correct separator
Tristan Van Berkom (1):
ostreee-version.h.in: Added Since: version annotations
Git-EVTag-v0-SHA512: 5115bcfa837cf59ed3672f5c7717796091ce2e88eb3ecb75148d14055246529afc2206d8e02540d2f6cb0254bee4d29506b47dbd65212f5a0b14a846f1cc986e
-----BEGIN PGP SIGNATURE-----
iQEwBAABCgAaBQJZR/ALExx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwsj
Fwf+J5XIzBg7EWZOvM46tJsIz4SheSC0ULEIOT497S25mZepMUbyWfp5eS1pgr8O
daj/tUwRqWjC84kTF6lo0ChBahQl6d+QFQsC8HYdyKfBgnIfVOEkKfdea5Q2Syed
Ox/ntiPUDdO1bUZ+72X6TpQGaBhV1XfL8l9GT91ZCRgQ22yt3i0hdiAJOX+ka0ix
bD3Dy1LQz/CieUz7ViAMHWxZvva42a+ybKdzgX2r0W9Ci6NXXysOSMtKXCzoNyZl
rf0lzpmx0LpddICUEkn07uSoC2y9Yep8JRH4UKJ5vdbP3h76D1cMckRwNvYvtsjO
vapkPL9pqn/Fv2Rr/oNY3WPJ5w==
=IYbt
-----END PGP SIGNATURE-----
2017.6
One of the most notable changes in this release is that we switched
to using a systemd generator for handling /var
, which means admins
can now set it up as an explicit mount point. We feel pretty confident
in the code, but do test your specific setup. One note in particular;
the new model (obviously) requires systemd, and while we tried to preserve
the non-systemd path, it wasn't explicitly tested.
Issue: #855
The work to port to a new code style continues rapidly; at this point
most of the library is converted, with just the command line remaining.
I think the new style is a lot more readable now that we rely fully
on __attribute__((cleanup))
.
Philip Withnall contributed changes to enhance the OstreeAsyncProgress
reporting API, which I think is going to be quite useful for user
interface frontends (like GNOME Software).
PR: #819
There's a smattering of smaller bugfixes; minor memory leaks, double close()
and the like. In this cycle we also beefed up our CI/testing more - we
now test both Fedora Atomic Host and flatpak more explicitly. Contributions
to extend the suite to other distributions would be appreciated; for example,
tests for ostree-as-host on Debian. Our Travis-executed tests
should be extensible.
Thanks to Dan Nicholson for also fixing some of the test suite for installed
tests, and also contributing introspection fixes for language bindings.
Another feature that involved a lot of internal changes is our handling
for /etc
on SELinux-based systems. We now label files as we go rather
than having a more fragile separate relabeling path. This is also
exposed as an API, which is used by rpm-ostree
now. I think this
particular change highlights the strength of "libostree" as an API
that can be reused by higher level systems.
PR: #797
Thanks to all contributors!
Colin Walters (62):
pull: Support deltas for explicit commits
checkout: Fix bare-user symlink checkouts
Bump release for 2017.5
lib/boot: Convert bootconfig parser to new code style
sysroot: Continue conversion of some simpler functions to new style
cmdline: Start conversion to new code style
repo: Optimize bare-user content object reads a bit
repo/checkout: Finish conversion to new code style
lib/cleanup: Port some of the cleanup code to fd-relative and new style
repo: Add a "force copy" flag to checkout
lib/core: Complete conversion to new code style
Rename "osname" → "stateroot"
lib/util: Delete some leftover pre-libglnx directory opening functions
repo: Drop unused cache variables leftover from pack files
repo/checkout: Cache lookups of dirmeta objects
checkout: Merge union/add logic for copies during checkout
tests: Factor out a libtest-core.sh
tests/installed: New installed, privileged tests using Fedora AH
checkout: Add SELinux labeling for checkout, use in deploy
repo: Port object listing func to use libglnx more + new style
repo: More porting to new style
repo: Fix incorrect use of errno() error throwing
lib/sepolicy: Convert to new code style
sepolicy: Cache the value of is_selinux_enabled() to work around bug
lib/checkout: Use TEMP_FAILURE_RETRY()
ci: Add a context for testing flatpak
ci: Fix flatpak test pkg install
checkout: Dedup calls to memcache ref
repo: Delete the last use of GFile tmp_dir
tree-wide: Convert to using autoptr(GString) vs g_string_free(...,TRUE)
Add --enable-installed-tests=exclusive, fix installed case
utils/checksum: Port to new code style
fsck: Check for refs missing corresponding commit
tests: For installed, s/test-/itest-/ to avoid in-tree name clashes
tests: Migrate test-pull-many.sh to installed on FAH
ci: Extend FAH rootfs for installed tests
ci: More flatpak ci fixes
ci: Move travis scripts from tests/ → ci/
diff: Port some to new code style
sysroot: More porting to new code style
checkout/commit: Use glnx_regfile_copy_bytes() if possible
lib/prune: Complete porting to new code style
lib/checkout: Move special case for subpath of file to toplevel
lib/checkout: Optimize checkout by avoiding OstreeRepoFile recusion
repo: Fix double close() in summary generation
lib/repo: Port more of GPG and summary functions to new code style
checkout: Plug a memleak of the state stringbuf
tree-wide: Switch tabs ⭾ in various files over to spaces ␠
lib/checkout: Fix regression in subpath for regular files
remount: Drop support for auto-tmpfs-on-var; use systemd.volatile=state
lib/remote: Box OstreeRemote if experimental-api
lib/repo: Fix double close()
switchroot/remount: Trim set of remounted filesystems
switchroot/remount: Check mount status before remounting, be verbose
Switch to using a systemd generator for /var
tree-wide: Add a few missing O_CLOEXEC
lib: Add "open dfd iter handling noent" helper, port tree-wide
lib/upgrader: Port to new code style
build: Use cd $(srcdir) instead of `git -C`
switchroot/generator: Add var.mount to local-fs.target.requires
lib/pull: Port some functions to new code style
Release 2017.6
Dan Nicholson (5):
pull: Fix crash specifying override URL in summary fetch
commit: Mark ostree_repo_transaction_set_ref* checksums nullable
pull: Allow additional HTTP headers for summary fetch
tests: Install libtest-core.sh with installed tests
tests: Look for trivial-httpd in $libexecdir
Francesco Giannelli (1):
switchroot: Document a bit more, add demo shell implementation
Jonathan Lebon (2):
tests/ci-commitmessage-submodules.sh: fix for RHCI
libglnx: bump and use new helper methods
Krzesimir Nowak (1):
apidoc: Add missing enums to sections file
Philip Withnall (22):
ostree: Use G_OPTION_ARG_FILENAME where appropriate
tests: Ignore some standard automake check output files
libostree: Rework OstreeAsyncProgress to use GVariants internally
libostree: Add multiple getter/setter support to OstreeAsyncProgress
src: Port to new OstreeAsyncProgress atomic API
libostree: Allow OstreeAsyncProgress:status to be set atomically
libostree: Get and set OstreeAsyncProgress:status atomically
libostree: Fix a typo in docs for ostree_repo_pull_with_options()
libostree: Add missing checks for invalid timestamps
libostree: Fix potential use of uninitialised memory in progress API
libostree: Ensure progress keys are all always set
libostree: Add some additional metadata to the summary file
libostree: Document endianness of GVariant metadata types
ostree: Add --view mode to `ostree summary`
ostree: Improve formatting for well-known summary metadata keys
ostree: Use #defines for well-known metadata key names
tests: Add a test for `ostree summary --view`
tests: Fix regex escaping in test-summary-view.sh
build: Add --enable-experimental-api configure option for unstable APIs
libostree: Expose $OSTREE_FEATURES in the pkg-config file
libostree: Make OstreeRemote a public and internal API
build: Add -C arguments to some git invocations
Sjoerd Simons (1):
repo/commit: Fix memory leak
Git-EVTag-v0-SHA512: 47a502039ce8abaa83e5872560846d592fc5e38557a190c3b1101f7ea245a3eeee21be8b9aa39c1ab163dc30072d7ef495b26ba18388d4216421b73e3dfd9372
-----BEGIN PGP SIGNATURE-----
iQEwBAABCgAaBQJZHMGOExx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwt9
LQf/Vu7fVSmtfrlQV6j+uaWeg2sEcYjValgk517aksWBaMlacGbvlYf8N6PESYPv
RcXbv4uNAvHOLKck5yU8iT633f3QpW2gei/IvqIYrV25ePJGhODRs7qGwjkKVVy8
BjEf80AcX/0HT6HGyX0CYLsVJJ8Hg6QSM3dzSMBaqMeWx1HnAK/2pWFQAssUfqRh
6UWWjZfCzW809RqY2efy7nJXDfHDoB4sEFDM8CGs12kQ4tcPJqp6kjMHcuXfC8v9
XZh48yfHb/6o3En4ZTd8cUR7nB5nItnFp+AwXOje7VQa8o2vyiUWvZ8InVJj6/Fx
wZfYgbOcDCfqp++WzsZNhaajBg==
=+xRv
-----END PGP SIGNATURE-----
2017.5
2017.4
A notable new feature in this release is a fourth repository
mode: "bare-user-only". This is very similar to bare-user
, but
canonicalizes permissions and ignores xattrs. The intended
use of this is for "non-OS" container tools such as flatpak, where one
intentionally discards the traditional file ownership.
(I'm calling this container case "non-OS" to distinguish from other container tools
where one might want to "log in" via PAM and supporting distinct UIDs
inside a single container is valuable)
More information: #750
We have a few new APIs, such as ostree_check_version()
which is
important when making use of some of the "API extensions" we have
using GVariant
on e.g. ostree_repo_pull_with_options()
.
The diff is a bit larger due to us switching to a new code style.
Another quite important change is that ostree trivial-httpd
is
disabled by default. With a libcurl build, this is the last part
that links to libsoup. It's only needed for unit tests, so can
be subpackaged or discarded. (We're doing the latter for Fedora)
Speaking of curl, we now support --with-openssl
which enables
using OpenSSL's libcrypto
for SHA256. This can be notably faster.
You likely want this if e.g. libcurl
is already linked to OpenSSL
for you. I'm increasingly confident in the curl code, and should
be ready to recommend using it by default in the next release or
two.
Thanks to all contributors!
Alexander Larsson (4):
Add _ostree_repo_mode_is_bare helper
Add bare-user-only repo mode
commit: Add --canonical-permissions argument
Add basic tests for bare-user-only repo modes
André Klitzing (2):
Avoid unnecessary includes
Fix includes if built against musl
Anton Gerasimov (1):
Define TARGET_PREFIX to use with grub2 deployment
Colin Walters (46):
Disable "ostree trivial-httpd" by default now
core: Add runtime ostree_check_version()
builtin/show: Convert to direct return/decl-after-stmt style
pull: Squash a `-Wmaybe-uninitialized` warning
lib: Exclude soup header from introspection
lib: Squash most of the gtk-doc warnings for missing parameters
lib: Add a private copy of checksum-instream
core: Support building with OpenSSL for checksums
sysroot/deploy: Some cleanup to decl-after-stmt/return FALSE style
sysroot: Prep refactoring of cleanup logic
build: Quiet automake warning for bupsplit
build: Various fixes for openssl build
Bump libglnx, port a few callers to new error API
sepolicy: Add ostree_sepolicy_new_at()
sepolicy: Add better private API for setfscreatecon
cfg.mk: Add a syntax check for a redundant : in glnx_throw
repo/refs: Convert to new code style
sysroot: Add ostree_sysroot_write_deployments_with_options()
core: Convert some functions to new code style
build: Dist ostree-sepolicy-private.h
commit: Prefix error with target object name on failure to write
repo+tests: Add [core]disable-xattrs=true, use it on overlayfs
pull: Also skip partial commits for deltas if no summary file
ci: Enable -Werror=unused-result with -Wp,-D_FORTIFY_SOURCE=2
sysroot: Don't cache sepolicy
repo/commit: Change most of this file to new code style
build: Expose autocleanups unconditionally, start using them
lib: Fix OSTREE_CHECK_VERSION()
lib: Delete old GFile path helpers, and migrate single last user
lib: Delete old unused GFile helpers
libutil: Delete unused threadpool wrapper
libutil: Delete unused GVariant I/O functions
libutil: Delete some unused checksum helper API
libutil: Delete some unused error handling APIs
Add Coccinelle usage: one for blacklisting, one for patch collection
sepolicy: Fix regressions from introduction of sepolicy_new_at()
Add flag to make SELinux label failure fatal, add hack for /proc
ci: Add a check that submodule changes include "Update submodule: "
core: Fix default value of disable_xattrs
repo/core: Convert some functions to new code style
soup: Hold a ref to the pending URI during completion processing
sysroot/deploy: More code style conversion
curl: Enable pipelining for HTTP/2
Fix a few gtk-doc warnings
checkout: Provide useful error with checkout -H and incompat mode
Release 2017.4
Daniel J Walsh (1):
sysroot/unlock: Ensure overlay label on /usr is `usr_t`
Erik Larsson (1):
diff: Add ostree_diff_dirs_with_options(), expose via cmdline
Georges Basile Stavracas Neto (1):
libostree: add versioning macros
Git-EVTag-v0-SHA512: 71f0649308f04f15eb6a22b4b34c2804d680d5870dd3b6391079fa2be6c0f4df74e7ed4f8abbb461104ad23707ecf38587b187a8bd240a9979e4800c13efce78
-----BEGIN PGP SIGNATURE-----
iQEwBAABCgAaBQJY7npbExx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwuu
tAf+OodLq6R8wuDDJUwOHTHTPlaCW5fZn/MEm3IIpeX7A3Cnr3+t6ZgY4LBtc22Q
w3eHCoHMC181Xr6Rz3RtncRXtMJyvQjanLXDdTCJomkNEi4e4YngMLO1wqQ/5gY+
Dcgo8/u4n5lM9ns5rSxDZ3U+kSkkfVWwkTbDlBYpn5hnrW27k/OSbN4uXqCccjTE
LMRuniUqFaNSy1ia2Sr//6znpoYlaFfL30VEL9GJlvkxsg8c0ToCwnuzcvMP1mM4
SY3noj1LqZ+nVtBTRWDdpY666CdgzPm30OxssVL8fdtXN1MBIWQVBsNmkAvRhFjJ
sRaWwbjxsdQ0TXOmZuaJj3WQrQ==
=iIP/
-----END PGP SIGNATURE-----
2017.3
A variety of small fixes here. One of the most notable things is
the static delta progress computation is now more accurate; this should
make it easier to write a user interface consuming libostree that displays
how much will be downloaded before initiating it.
Related to this, ostree admin upgrade
gained --pull-only
and --deploy-only
which makes it easier to write e.g. a systemd timer unit that does background
pulls, but only do a deployment (i.e. upgrade) on administrator/device owner
action. A bit more information in #642
and #640
There are two API additions - it's now possible to configure the progress UI frequency
and the zlib compression level.
Besides that, there are a variety of smaller fixes. My favorite is probably
a small fix for grub2 on ppc64,
so we now have fedora/26/ppc64le/atomic-host
.
Thanks to all contributors!
Christian Hergert (1):
repo/checkout: fix 32-bit builds
Colin Walters (28):
deltas: Don't put unreadable *from* objects in fallback
delta-show: Don't dump whole superblock, do show fallback checksums
repo: Fix static delta progress display
pull: Explicitly error out if metadata objects are fallbacks
pull: Fold together deltapart+fallback count for display
ci: Install PyYAML
lib: Ensure an error is set in ensure_unlinked() if errno != ENOENT
libtest: Re-enable quiet mode for building fs tree
README.md: Add more/clean up links to consuming projects
libglnx: Re-bump to master due to accidental reversion
ci: Hard error on all -fsanitize=undefined warnings
build: Add --with-smack, use it to reset contexts for writing objects
main: Make ostree --version output YAML (and add gitrev)
deploy: Correctly use libmount unref() calls rather than free()
man/repo-config: Document mirrorlist
tree-wide: Squash noncritical compiler warnings
deploy/libmount: Fix build with old util-linux 2.23 (CentOS7)
fetcher: Log failures into journal
upgrade: Add support for --pull-only and --deploy-only
grub2: Use g_spawn_sync() rather than GSubprocess to avoid SIGCHLD
grub2: Use "linux16" only on x86/x86_64
pull: Use all available commits for delta sources
fetcher/curl: Fix leaks caught by ASAN
Allow and start using C99 declaration-after-statement
repo/checkout: Verify early if src/destination are on same device
checkout: Support a "pure addition" mode
repo/checkout: Convert a few functions to new "stmt-decl/FALSE" style
Release 2017.3
Gatis Paeglis (1):
deltas: Expose the filename parameter
Georges Basile Stavracas Neto (2):
repo-pull: add option to set the async update frequency
ostree: allow setting update frequency from command line
Giuseppe Scrivano (1):
contrib/golang: rm directory
Jonathan Lebon (2):
pull: don't use static deltas if archive repo
libglnx: bump for -Wmaybe-uninitialized fix
Philip Withnall (2):
build: Fix disabling --enable-man if xsltproc is not available
libostree: Allow compression level to be set for archive-z2 stream
Git-EVTag-v0-SHA512: 55adebf589a0f2115f0ab3cb3f69b42ba3a08c19b3bf54580c437ac08e336651d54849666ab5718e466bdc99bbbaedca79f91619d6e5db3a0f15849029d33cfe
-----BEGIN PGP SIGNATURE-----
iQEwBAABCgAaBQJYwa5GExx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwvT
ywf/dTxmhHzODOw1cCx+OIb7kNf5THsxfz58RR+mhglzt26pNcoo+qKmSbRafHLi
n7+lt5U3VxucqLqPnxbEgj/1r6LzKZ5ZKyqXivsouSLv/leBm/cIeR1s/6JxL8N1
CHc6v9/AG7U4W9USYhy/PSf8PM1M0RbyeCXRi+tfvIfQRDyVo8JY3VBXxbm9YX3T
rY0GT35yHbbY9J+nMhJvi5jqKuiGa86OvT+pYmOUXIfaD54wmjLwoGGDyXh7Zhnb
rhLCNMe8hXM5PTWoidYloczTkwcw2HiKxS0olb1+hHTekSdOEsS86SxMst9JLXu3
0eTaFMNlKKf26LKYliV4jUI0mA==
=8CIL
-----END PGP SIGNATURE-----
2017.2
First, this release renames the project to libostree
. This best matches
the current usage of the code, where different projects act as client tools.
More information in the pull request.
However - if you're a user of ostree admin upgrade
; don't worry, it will
continue to be maintained and there are improvements in the pipeline.
It's possible that there will be an effort to have a "canonical" ostree
client-side daemon in the future.
Moving on, there are some smaller bugfixes and enhancements in this release,
and two big new build-time options.
--with-curl
: We now support libcurl as a HTTP backend. This passes all of the
existing tests, and is suitable for evaluation by downstream consumers. Please
give it a try, and it's likely we'll classify it as equally stable as the
libsoup backend within a release or two. Among other features, the libcurl
backend can speak HTTP/2
, which can result in substantial speedups in the
non-static-delta case. Another motivation for this is that for rpm-ostree
we
already depend on libcurl, which also links to OpenSSL in Fedora. Whereas
libsoup->glib-networking->gnutls
, so with this change we'll drop gnutls too.
PR: #641
--enable-rust
: This is an experiment in following a similar plan to what Firefox is doing with
Rust. When this build time option is enabled, a very small bit of libostree (the
rsync-style rollsum code) is in Rust, and linked statically into the rest of the
library. There are no plans right now to make this a hard requirement in the
near future. Please let us know if a dependency on Rust would be
a blocker for your usage of libostree. Or conversely, if using Rust is exciting
for you and would make you more likely to contribute, please also let us know that!
There's more information in the pull request.
Thanks to all contributors!
Alexander Larsson (1):
rofiles-fuse: Support write/read_buf()
Anton Gerasimov (1):
admin-switch: Don't segfault if there's no remote
Chen Fan (1):
doc: fix typo in CONTRIBUTING
Colin Walters (19):
lib: Adjust comments in symbols section for last release
lib: Prefix GPG errors with the checksum
travis: Disable tests (but keep builds) on flaky distros
lib: Move the bupsplit selftest into our test framework
tests: Add setup for more realistic repo, change pull-many to use
Rename to libOSTree
oxidation: Add implementation of bupsplit in Rust
packaging/: Delete
lib: Add ostree_repo_reload_config()
rust: Support `make dist` -> cargo vendor
repo: Add archive/zlib-level option, drop default compression to 6
pull: Add queuing into the higher level logic
fetcher: Drop the libsoup queue
pull: Show Estimating if we're scanning too
libcurl backend
libglnx: Bump
commit: Support -F/--body-file, like git
build: Remove .PHONY for Rust shared library
Release 2017.2
Jonathan Lebon (4):
trivial-httpd: trivial option help string fixes
docs: update pulp_ostree link
trusted.gpg.d: keep in the same location
fetcher queue: also throttle on outstanding writes
Krisztian Litkey (1):
libostree: added empty ot_cleanup_{read,write}_archive macros.
Philip Withnall (1):
ostree-repo: Clarify error behaviour of remote option getters
Simon McVittie (1):
libostree: Don't distribute generated enumtypes in tarballs
Git-EVTag-v0-SHA512: 1191007c2417ecaae5eded9453e830f1e91532360d44a9d4e9a845ab62491863e0ad1a20437d476172d6867a4b0548ca89ad5715b802c2a9e0f6d53f62f812a8
-----BEGIN PGP SIGNATURE-----
iQEwBAABCgAaBQJYo0urExx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwsi
xQgAgqh6Ncfdalon2ib1RHYzVEl4lqGz+cVRZGCZAl7bdwx8HbAfbS2lGnrSG6RA
o97/Q9rtOfnMjsjFWQpwxt56DXu7s/ULthGOjw7y0f5gp8e2sPcbnbQdOxI9wnyU
v1JjiKD8QmO5u1Dj6rLIMi5WmQFAEsU6TPUcJw95KBHc4e0n9MVfy3gJZV/MO51Y
uT6qAa4MNl3O9Inos4JOqLDYnSLHkLquVqGvebOuRiJfhIcH9BLPsXGe5CWwUTe3
1KVN5lGD0wnBawCnsZiJw7iVG5Nb3lHEz3qIyfVZH2b+eq3gqt+EpXCOia7WeUz8
qfl84nExhadLEhbrGLtl+QpeRw==
=8xvm
-----END PGP SIGNATURE-----
2017.1
This release has mostly bugfixes, the main new feature is that the prune
command gained more sophistication around selectively pruning branches. We're
planning to use this in Project Atomic work where we want to co-locate both
"development" and "stable" branches in the same repository.
The next release is likely to be more exciting, as we have an additional new
libcurl backend in the works - this release contains some preparatory cleanup
for that.
Thanks to all contributors!
Colin Walters (19):
docs: Fix ostree.version -> version
fetcher: Hoist core "mirrored request" API to public
fetcher: Move high level functions into "fetcher-util"
fetcher: Split lowlevel API into file/membuf variants
build-sys: Minor makefile tweaks
Split trivial-httpd into separate binary
pull: Rework delta superblock fetches to be async
trivial-httpd: Daemonize better
.dir-locals.el: Standard Emacs indentation config
unlock: Fix description for --hotfix
tests: Alias assert_not_reached() -> fatal()
pull: Fix theoretical checksum collision for metadata fetches
fetcher: Rework API to use strings for tls keys/db
tests: Don't inject newline in URL
tests: Loosen error regexp
libtest: Enable web server logs
Add support for more selective pruning
tests: Add a big (many objects) pull
Release 2017.1
Dan Nicholson (3):
repo: Fix indentation
repo: Fix object list keys ownership
repo: Fix list_objects annotations
Mario Sanchez Prada (1):
static-delta: Pretend that world unreadable objects are new objects
Paul van Tilburg (1):
admin: Use execlp() to look for systemctl as the shell would
Simon McVittie (3):
Fix TAP syntax in test-basic-user.sh, and run it
Sourced test snippets: remove shebang and make non-executable
Make corrupt-repo-ref.js executable
Git-EVTag-v0-SHA512: f6a195f995f2269a3312aa57dea7e575cfd38030dc6237590b1c00ebf117666604a149b864a60ab5685d4384b07661dce1960a4d0d230697046ac48e73b7ccfc
-----BEGIN PGP SIGNATURE-----
iQEwBAABCgAaBQJYhm+2Exx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwtM
gQf+PDEGF6JSj82cpfm9j6ghqhUULgiJWS96zR3Y+QGJuyUG12vhh4G+oXgWZ6PC
N8bInWnylzYNYVvfHx8DErIi+GZrILYgDDo2yV+C3GRUUY6POZmTO1NyzPAVDbMV
p/qYKj3w2a5LeZXbl8+hoL/sNcrrpzKJwNdL4j4c5sxhkSrlGtNNVgtkPA+qIUXv
9HolOoa5/JWY1mL8d31US3cOzSFswJPd6M8kki3kqCdTozpD82WbICiWazXepyuS
NdG5V6l7oosYtwcv/TKqo05Omu+DFQd7CoJEKuvZpbLgrwtO7rINvRDXJPvuEEb7
sdYOzUax1YhkgvemDBSLHkyEWg==
=Rwxg
-----END PGP SIGNATURE-----
2016.15
This release is mostly bugfixes - for example, it cleans up the vast
majority of memory leaks caught by ASAN. We also build without
libsoup again, which is preparatory for a potential addition
of a libcurl HTTP backend.
Another notable change is that we now always checksum individual
objects even when applying static deltas, regardless of whether or not
the summary file is signed. This is part of an ongoing thread about
supporting OCI as a transport layer.
Alexander Larsson (5):
pull: scan_commit_object() - don't load variant twice
ostree-repo-traverse: Don't leak floating GVariant
pull_with_options: Don't leak csum_v
pull: Don't leak delta superblock variants
delta compilation: Fix leak
Colin Walters (34):
[ASAN] delta compilation: More leak fixes
[ASAN] deltas: Fix minor memory leak
[ASAN] cmdline: Fix minor leak in delta cmdline entrypoint
traverse: Use g_hash_table_add
[ASAN] sysroot: Fix leak/double free of keyfile origin
[ASAN] metalink: Fix leaks of buffer
[ASAN] bootconfig: Drop a pointless strdup in parser
[ASAN] set-origin: Squash a leak
[ASAN] tests: Fix leaks
Define and use cleanup helpers for libarchive
[ASAN] tests: Cleanup all current remaining leaks
tests: Use G_DEBUG=fatal-warnings here too
tests/keyfile-utils: Drop tests covering preconditions
lib: Always checksum content in deltas
pull: Write .commitpartial for local pulls first too
lib: Remove unused ostree_metalink_get_uri()
tree-wide: Use g_hash_table_add() where applicable
ci: Make all ci tests gating for Homu
build: Add more default errors
lib: Ensure we use _GNU_SOURCE in enum templates
fetcher: Define an abstraction over SoupURI
build: Make libsoup optional again
[ASAN] sysroot: Squash a leak in lockfile acquisition
build: Always do enum scanning now
tree-wide: Switch to autoptr for GOptionContext
build: Error if glib isn't found
repo: Add unconfigured-state to remote config options
Skip gjs-based tests if ASAN is enabled
tests: Tweak installed tests to deal with ASAN
ci: Drop sudo installed tests
ci: Combine UBSAN and ASAN by default
lib: Squash last use of GFile deltas_dir
ci: Rebase to f25
Release 2016.15
Dan Nicholson (1):
repo: Fix annotations for remote_fetch_summary functions
Jasper St. Pierre (1):
ostree-repo-traverse: Remove an accidental print statement
Mario Sanchez Prada (1):
man: Mention bare-user in manpages, along with the other modes
Simon McVittie (13):
build: clean up ostree-remount if building without systemd
ci-build: consistently use yes/no for booleans, not yes/empty
ci-install: add ci_distro
travis-ci: put an explicit copyright/license on the scripts
travis-ci: Use a non-ostree-specific name for the Docker image
travis-ci: Move helper function to before we start building anything
travis-ci: cat the test log after successful test runs
travis-ci: Run `make distcheck` too
travis-ci: Use "slim" Debian image for testing
travis-ci: Enable stretch (the future Debian 9), replacing unstable
travis-ci: document parameter variables
tests: prepend to an existing LD_LIBRARY_PATH, GI_TYPELIB_PATH
Terminate individual tests after (10 * $TEST_TIMEOUT_FACTOR) minutes
Git-EVTag-v0-SHA512: 18060109c2493e6a1524e293c8a664b4a8da1f23c6b25761083fc50f806aa06911d8d58171fa2985909ea1e33a011c7d3e0dc824cda54b4699fe8b04e0a1a00d
-----BEGIN PGP SIGNATURE-----
iQEwBAABCgAaBQJYTuJtExx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwsN
DQf/cMQmtVotFK81Lu/NuebOPaKJtaB0gx/TDW0ODJuPO15PTVYBbDLfFwIg4cCG
KtiKp4YVGBeBjK04lLNovrpcZts7xfrRIrUiprAzPfbmDciEChg9LGUEz5WfcI+b
s88Lg+3OHDZbI3M3vdAu9nX02M8Go80lkUshG/SEnAruZg2Kis8l3ciiShKylSVr
X7Ndp3IOHKnut03jcI6SK9BGpSbCx5CHatYnvExYq50DXptWLr9CfQitGDiBtdVk
fMTvSSeZMJSnAp56y0KdentJiRePbYeAyhAUPTrNpgTxlt0WUJeh58qlmV2AHA7l
GUbFLVNinNfOVCS30TmPIADMeA==
=8Pnb
-----END PGP SIGNATURE-----
2016.14
First, this release adds GPG verification for the commit objects
inside deltas. This was a vulnerability if you are fetching content
over plain HTTP, and is still important if using TLS. More
information is available in the commit
and there is continuing upstream discussion
of transport integrity models.
Also regarding GPG, we now make it easier to use a GPG ASCII key
in a remote configuration.
Another major thing in this release is that we started making more use
of the GCC/Clang sanitizers like
-fsanitize=address
, -fsanitize=undefined
etc. and numerous small
memory leaks were fixed in particular.
Thanks to all contributors!
Abhay Kadam (1):
Fix broken link in docs/CONTRIBUTING.md
Alexander Larsson (1):
commit: Fix reading xattrs from OstreeRepoFile:s
Colin Walters (17):
travis: Drop debian unstable since we can't fetch packages reliably
pull: Add support for `http-headers` option
pull: Redo logic for "scanning"
lib: Define and use cleanup functions for gpgme
lib: Split out helper function to create GPG context
Add "gpgkeypath" option to remotes
lib: Add an API to GPG verify a commit given a remote
[UBSAN] deltas: Don't call memset(NULL, NULL, 0) with no xattrs
[TSAN] main: Stop calling g_set_prgname()
[TSAN] Rework assertions to always access refcount atomically
pull: Dedup code for checking for > 0 valid results
pull: Use new per-remote API for GPG verification
pull: Do GPG verify commit objects when using deltas
tests: Support TEST_SKIP_CLEANUP=err
[ASAN] tests: Fix some memleaks in libarchive importer
[ASAN] lib: Squash various leaks in library and commandline
Release 2016.14
Jasper St. Pierre (3):
ostree-repo: Fix parameter name
ostree-repo-static-delta-processing: Don't close(-1)
ostree-repo: Make the lock with a long-lasting FD
Jonathan Lebon (1):
.redhat-ci.yml: no longer install libubsan & clang
William Manley (1):
ostree commit: Fix combining trees with multiple --tree=ref arguments
Git-EVTag-v0-SHA512: 6756eef81978c4a9559327972b53019f9ea214ab92af266054d303770e7a60684e73fba0870fda81b5262a0ab3aae3f89d962cd346930932a3c668f081d5726a
-----BEGIN PGP SIGNATURE-----
iQEwBAABCgAaBQJYNcd6Exx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwtu
mgf/Z1rDWdTKAdvnJ4jR4eW2yKJYMrok0QUZXn2Q7MlA/1O0qtY6GudlNdScW9Tr
WFMydw6xr04PCQFMofsK14KkeD4eZqAAon2dyrnoZM1A5a6rVjfBSYLgVf8k+oIl
yZxlqHjKnKSnW985lIIrZPanFTk8aekXL2oMzQtr0xKjflcpeW6XJvm7fMIfv+dM
pyLlDQA6zfo+eQ8fgKJc9opx7MTmVACcP4Efzvj+YV3msLRVOqs5S2WE76CDhL5T
KV0AnVfSTYY1PQLfgwOmqSAyV2nCf96aUIYquHqMz/pt5p2WElxTMKuD5YYB7GoG
goDEz0dNJDER+65leUUtGCqYZg==
=n2Vt
-----END PGP SIGNATURE-----
2016.13
There is one notable feature in this release - we
now support per-remote cookies, which can be used
for systems like Amazon CloudFront that can be configured
to require them for access.
Another interesting change is the static delta generation
process was tweaked to look for "similar" filenames, which
for example should ensure we get dracut's "reproducible"
initramfs in the delta.
That aside, it's mostly smaller bugfixes here, such
as memory leaks. Another good example of a bugfix
is pull: Don't do deltas with --commit-metadata-only
.
Thanks to all contributors!
Alexander Larsson (1):
Fix pruning of partial commits
Colin Walters (14):
docs: Link to releng-scripts
tests: Skip libarchive/selinux tests if in container without SELinux
tree-wide: Remove unused variables detected by CLang
otutil: Note that ot_log_structured takes a printf format
parse-datetime: Use labs() for long input value
deploy: Suppress unused variable warning for fscreatecon cleanup
Define an initializer for GVariant{Builder,Dict}
libglnx: Bump to master (for -fsanitize fixes)
remote-refs: Add NULL terminator to options array
ci: Use -fsanitize=undefined by default
repo: Don't put remote refs in the summary file
pull: Don't do deltas with --commit-metadata-only
deltas: Only keep one file open at a time during compilation
Release 2016.13
Giuseppe Scrivano (1):
static-delta: find a similar filename using what is before '.' or '-'
Jonathan Lebon (3):
.redhat-ci.yml: add clang
delta: return valid enum member
.redhat-ci.yml: use new build key
Simon McVittie (14):
Force C.UTF-8 or C locale for tests
Distribute test scripts even if we wouldn't run them
Distribute valgrind suppressions in tarballs
_ostree_kernel_args_replace_take: don't leak when replacing
ot_admin_builtin_set_origin: don't leak options GVariant
ostree_builtin_pull: consistently set free-function on refs_to_fetch
ostree_admin_option_context_parse: explicitly clean up when exiting early
ostree_sysroot_upgrader_finalize: free new_revision
_ostree_sysroot_write_deployments_internal: stop leaking hash table
keyfile_set_from_vardict: free the string array
ostree_repo_pull_with_options: clear dirs array
ot_remote_builtin_show_url: autofree context
Fix some leaks of floating GVariants
load_metadata_internal: don't leak GBytes
Sjoerd Simons (8):
Filter bootloader supplied kernel cmdline options
pull: Add per-remote cookie jar
remote: Add command to list cookies
remote: Add commands to add and remove cookies for a remote
OsreeFetcher: Treat 403 as not found
trivial-httpd: Add support for checking cookies
tests: Add test for the cookie jar handling
Update documentation for cookie handling commands
Git-EVTag-v0-SHA512: 905067d8a6ba66af636a7de20baa779b661a4e4df9b13fe95b1883c1db34b700b180e854af22866cd93e51d59a24b062cfbb1ce444342076eabcdf7d05900f67
-----BEGIN PGP SIGNATURE-----
iQEwBAABCgAaBQJYJLe3Exx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwuN
tAf/dtJ5VhuQz31Pcbk0jQHuuL5V6UP/8Z2hlUNmqNFGKv228ciMGG4Vo68SDYRm
sCU6PPw/aKOQwzFMnqMTFNO6AhLdjc10iZz/TtaEQX5+cSYxTPSBVqQa8WvLLvyj
AuAZS7GcxDsis4XEho66wRGeDlyFA7ECIaXWs+jtGKwkHiA2tmxqibO7PIR1Zlr8
F8U5jjTtUSJYFic5HovjJab73PxjM92dLnPLGG2ttr5r9ezabzeJZJ45RkQWNGwh
BtQJh9mXM614yvwDxvjmv2/ShuWmqfXlC3jOiPI66JfN+D34XMW3cPuqOTgq16G9
hHZwQM9JPLm+NHloZb4IU1grFA==
=gV4o
-----END PGP SIGNATURE-----