Skip to content

Releases: ostreedev/ostree

2019.6

10 Dec 20:21
v2019.6
Compare
Choose a tag to compare

Nothing major in this release, but we have some
bigger stuff outstanding and ready to merge, so I
want to get this release out so that work will
have time to stabilize.

A few build/CI fixes. A new progress API which
will be used by flatpak (and can be used by others).
Finally, we also avoid reordering kernel arguments.

Thanks to all contributors!

git shortlog --no-merges v2019.5..
Alex Kiernan (5):
      tests/core: Fallback to en_US.UTF-8 locale
      tests: Handle EPIPE failures when head terminates
      tests/core: Assume C.UTF-8 if locale isn't found
      tests: Avoid musl failure with `cp -a`
      build: create tests directory for split builds

Colin Walters (6):
      Post-release version bump
      lib/keyfile: Treat "group not found" the same as "key not found"
      Bump libglnx
      tests/repo-finder: Run realpath() on /tmp
      pull: Add support for basic auth
      Release 2019.6

Philip Chimento (2):
      Bump version in symbols file
      libostree: Add ostree_async_progress_copy_state()

Ricardo Salveti (1):
      Makefile: declare ostree_boot_SCRIPTS and append values

Robert Fairley (1):
      lib/kernel-args: Store kernel args as key/value entries

Sam Thursfield (1):
      README.md: Tweak text about BuildStream

Stefan Agner (1):
      Avoid race condition when building outside of source tree


Git-EVTag-v0-SHA512: 915ebfe9501a74ca86a3b3aceafad352f4730fb148cc1874f2e49c7076fa1a948049fe9bd96b081502995b56096892a7405f5628f4e2e749bfaed2f35136f42a

2019.5

30 Oct 21:00
v2019.5
Compare
Choose a tag to compare

Mainly in this release:

  • We discovered that CLang has a static analyzer scan-build;
    it found some small memory leaks so far, otherwise mostly
    noise, but we haven't dug through all the errors yet.
  • Gained a new zipl (s390x bootloader) backend
  • Install the .hmac files needed for FIPS mode in /boot too

This is also the first release where we switched to using
the OpenShift Prow as a merge bot, though a lot more CI work
is pending.

Alex Kiernan (5):
      Always enable trivial-httpd for tests
      Gate ostree-trivial-httpd on BUILDOPT_TRIVIAL_HTTPD
      Revert "Gate ostree-trivial-httpd on BUILDOPT_TRIVIAL_HTTPD"
      Revert "Always enable trivial-httpd for tests"
      tests/export: Guard with check for libarchive

Colin Walters (25):
      ci: Honor ARTIFACTS environment variable
      ci: Make ${ARTIFACTS} directory
      OWNERS: New file
      libostree: Add an assert to pacify clang-analyzer
      repo: [scan-build] Initialize a variable
      sysroot: [scan-build]: Remove a dead assignment
      sysroot: [scan-build] Remove a dead assignment
      repo: [scan-build]: Mark a variable used
      libotutil: Port keyfile-utils.c to new style
      ci: Skip all yum operations if SKIP_INSTALLDEPS is set
      commit: [scan-build] Remove a dead assignment
      tree-wide: [scan-build]: Add some asserts that pointers are non-NULL
      prune: [scan-build] Initialize a variable
      bootloader: Add a zipl bootloader backend
      ci: Trim PAPR config to drop required flag
      tree-wide: [scan-build] Fix some dead stores
      lib/repo: [scan-build] Quiet a dead store warning
      lib/pull: [scan-build] Silence a dead store warning
      tests: Port keyfile test to new style
      lib: Port variant-builder.c to new style
      tests: [scan-build] Initialize a variable
      lib/checksum-utils: Use g_memdup()
      build-sys: Cleanup handling for trivial-httpd-cmdline
      Revert "grub2: Exit gracefully if the configuration has BLS enabled"
      Release 2019.5

Dan Nicholson (1):
      repo: Stop using deprecated G_GNUC_FUNCTION

Javier Martinez Canillas (1):
      grub2: Exit gracefully if the configuration has BLS enabled

Jonathan Lebon (6):
      Post-release version bump
      configure.ac: Add more details on how to do a release
      src/libotutil: Fix strv memory leak
      lib/pull: Avoid calling destroy on unref'ed GSource
      lib/pull: Tweak update_timeout logic again
      lib/deploy: Also install HMAC file into /boot

Umang Jain (1):
      async-progress: Plug memory leak while destroying GSource


Git-EVTag-v0-SHA512: 395f281ee8286eb6d22c215abc5146e1f27ecba6b120abee045d178150ea2116dd87e0e82b2d9ef4c150dec719716ae0d2583e5a1f9f38cb790fa81f55867e70
-----BEGIN PGP SIGNATURE-----

iQFHBAABCgAxFiEEq5KKnPjdBikJw3u93EX9WSHBPwsFAl25+TwTHHdhbHRlcnNA
dmVyYnVtLm9yZwAKCRDcRf1ZIcE/C3eFB/42VTlOWGei+VhTY7NmpuX8I28YKS/m
/OznhgDw1CPoUVzTT35oMAbD67ufZAN5vRdlBi/Liw1w1a867hVA2t+sEPNp/BiJ
hcdzLCGlUR1KRlpKKqiMPjzrWGdB9J9f1a2w8BPJ0FTUfXsnoVgbBJLkSVJ0ws0o
/FvHrzZl4BoIGhqMRsiK/+xOU+TyCqT6/7x8Iah4spBFoPWz2c7CHC6zfXBN+6h/
o14+PHDAx8V4WFvyFSDHrvE447YXX/r09zPDa1s2qSIduszWcZsh0WcAG5X/lxbi
taFA7MzOL28M6OgnQcUuxOVThAcxfvV3XuGqo1L+hRAKF1Fllw6bYlpd
=2M+V
-----END PGP SIGNATURE-----

v2019.4

25 Sep 15:05
v2019.4
Compare
Choose a tag to compare

This is mostly a bugfix release. Notably, the 2019.3 release caused some issues
related to the gpg-agent code spewing messages on the terminal. Additionally,
Fedora 31 users have hit upon issues with ostree-finalize-staged.service
running too late to be able to write back its logs to the journal. This then
confused rpm-ostree after reboot, because it looks at the previous boot's
journal for this message.

The biggest feature-ish change is support for a partial commit "reason" so that
after ostree fsck --delete was used, subsequent ostree fsck will continue to
report an error. This should be used by higher level tools that want to do
"fsck and repair". It's likely at some point that "fsck and repair" logic will
move down into the libostree core as well.

There are ongoing efforts to port Fedora CoreOS to s390x: one fix landed here to
add the deployment prefix to BLS entries since it's what the zipl bootloader
expected.

Special thanks to first-time contributors Benjamin Gilbert and Jason Wessel!


Benjamin Gilbert (1 PR, 1 commit)
  prepare-root: remember to remove /sysroot.tmp (#1919)

Colin Walters (4 PRs, 4 commits)
  Post-release version bump (#1902)
  sysroot: Add a clearer error if /boot/loader isn't found (#1905)
  ci: Add prow/ subdirectory with Dockerfile (#1906)
  fsck: Fix version in docs, tweak error text (#1918)

Dan Nicholson (3 PRs, 3 commits)
  lib/gpg: Only show gpg-connect-agent stderr on failures (#1908)
  lib/gpg: Don't kill gpg-agent on newer gnupg (#1915)
  lib/gpg: Use g_spawn_sync to kill gpg-agent (#1917)

Jason Wessel (1 PR, 2 commits)
  PR: #1910
    fsck: Add test for --delete corruption, fix repair, and partial commit checks
    fsck: Implement a partial commit reason bitmask

Javier Martinez Canillas (2 PRs, 3 commits)
  lib/bootconfig-parser: Always include deployment index in BLS title (#1911)
  PR: #1904
    lib/bootconfig-parser: Write BLS fragment fields in a deterministic order
    lib/bootconfig-parser: Remove support to preserve comments in BLS files

Jonathan Lebon (2 PRs, 3 commits)
  boot/finalize-staged: Run after systemd-journal-flush.service (#1926)
  Release 2019.4 (#1927)

Philip Withnall (1 PR, 1 commit)
  lib/repo-pull: Add more debugging on pull failure (#1925)

2019.3

22 Aug 19:17
v2019.3
Compare
Choose a tag to compare

A lot of changes since the last release. On the feature side,
probably the biggest is we've made public the internal API
for kernel arguments, which rpm-ostree now uses.

Other things include a new --modern switch for init-fs,
better support in pull for downgrade protection, better
use of mmap, support for committing archives (tarballs)
from stdin, etc.

Finally, libostree now supports being built without GPG,
which is an important preparatory piece for introducing
an alternative signature system - look for more work
on that soon.

Thanks to all contributors!

Allen Bai (1 PR, 1 commit)
  lib/kargs: Make API public and upstream new rpm-ostree APIs (#1869)

Allen Bai (1 PR, 1 commit)
  lib/util: Fix segfault when validating filename (#1868)

Colin Walters (4 PRs, 4 commits)
  Add OSTREE_BUILT_FEATURES to ostree-version.h (#1890)
  admin/init-fs: Add a --modern switch (#1894)
  README.md: Rework "projects using" section (#1895)
  Release 2019.3 (#1902)

Dan Nicholson (5 PRs, 16 commits)
  bin/refs: Allow overwriting existing ref (#1870)
  PR: #1799
    tests: Always cleanup gpg-agent when exiting
    tests/libtest: Allow appending actions to be run on EXIT
    lib: Kill GPG agent when cleaning up tmp homedirs
    lib/gpg: Add helper to kill GPG agent
  PR: #1872
    tests/test-gpg-signed-commit: Test more key states
    tests/libtest: Allow specifying GPG homedir to cleanup
    lib/gpg: Show if GPG key has been revoked
    lib/gpg: Show information for expired keys
    lib/gpg: Factor out expiration timestamp formatting
  PR: #1884
    tests/sizes.js: Fix byte array unpacking
    tests/sizes: Fix call to commit_transaction()
  PR: #1892
    ci/rpmostree: Bump to 2019.3
    lib/kargs: Don't expose OstreeKernelArgs autoptr cleanup on old glib
    tests/gpg: Skip tests when subkeys can't be expired
    tests/gpg: Use exit hook to kill agent in temporary GPG homedir

Daniel Drake (1 PR, 1 commit)
  lib/deploy: handle FIFREEZE ENOSYS failure (#1901)

Denis Pynkin (1 PR, 9 commits)
  PR: #1889
    tests/test-repo-finder-mount: skip some tests if GPG is not supported
    tests/gpg: fix GPG-dependent shell tests if no GPG support
    tests/gpg: fix the check of GPG support
    gpg: add dummy public interface
    lib: rename common sign/verification functions and variables
    gpg: conditionally build GPG-related code for sign/verification
    build: Conditionally build the GPG-related tests
    build: Conditionally build GPGME-related sources
    build: Add conditional use of GPGME

Felix Krull (2 PRs, 6 commits)
  README: update link to ostree-rs (#1860)
  PR: #1861
    lib: add parameter annotations for sysroot_load_if_changed
    lib: add some missing (out) annotations
    lib: fix up some nullability annotations
    lib: add minimum version to various symbols based on libostree-released.sym
    lib: fix doc comment for ostree_repo_get_min_free_space_bytes

Jonathan Lebon (3 PRs, 4 commits)
  Post-release version bump (#1844)
  bin: Better handle -- (#1899)
  PR: #1891
    lib/pull: Rename variable for clarity
    lib/pull: Allow downgrade protection with overrides

Matthew Leeds (1 PR, 1 commit)
  lib/repo: Improve docs for get_min_free_space_bytes() (#1879)

Philip Withnall (1 PR, 1 commit)
  ostree-repo-finder: Clarify immutability after construction (#1863)

Rafael Fonseca (2 PRs, 2 commits)
  admin: allow multiple args for pin subcommand (#1874)
  lib/kargs: add missing function to symbol-versioning table (#1883)

Richard Hughes (1 PR, 1 commit)
  lib: mmap the summary to reduce RSS in clients (#1856)

Robert Fairley (4 PRs, 8 commits)
  ci: Split out installdeps.sh from build.sh (#1865)
  lib/util: Drop unneeded ot-tool-util.h includes (#1876)
  PR: #1857
    lib/fetcher-util: Use GIOErrorEnum instead of GIOError
    tests: Drop unused variable
  PR: #1871
    ci/flatpak: Bump FLATPAK_TAG to 1.4.1
    Makefile-libostree.am: Work around clang issues with g-ir-scanner
    ci/build-check: Remove unused-command-line-argument diagnostic
    ci: Use Fedora 29 artifacts

Tristan Cacqueray (3 PRs, 3 commits)
  docs: fix switchroot source link (#1849)
  docs: fix missing as typo (#1850)
  prepare-root: remove ignored MS_MGC_VAL flag (#1851)

Tristan Van Berkom (1 PR, 4 commits)
  PR: #1862
    tests: Test committing archives from stdin
    man: Document ability to commit archives from stdin
    bin/commit: Support committing archives from stdin
    lib/commit: Added new ostree_repo_write_archive_to_mtree_from_fd()

Git-EVTag-v0-SHA512: 0033fb6c93a0aed1518c93ac8ba153862da38e06e1e24fcae910121e36298295dff76cd7a38720e8ffa1c1899cdffd867ecd5350d9582b618eedd6172d6f5b8f
-----BEGIN PGP SIGNATURE-----

iQFHBAABCgAxFiEEq5KKnPjdBikJw3u93EX9WSHBPwsFAl1e6b8THHdhbHRlcnNA
dmVyYnVtLm9yZwAKCRDcRf1ZIcE/CzMmCACNW20+T+ttvo0gl+vQMaWBBLQXbCKg
qKyXuEXquKUXGOwq4Ke3tz+cB26QWmAT2A+aX6BzBgJrVq2xMZvjoAabHr8/sP3m
4Qql/fqBjKWhQPwxU/fwWxCD4zgdQgDBSLgXSQTnGCTG5uN40PQhAv084A9SiSVJ
1XDPg9pNvXUmvti6N3BKZtOd00qPd2IJb+G/OT+d87RYyviRdsXXI1LpOuz2KvzF
pcAZE1fTB3dLaiFuzSJVv7Du9rvVT39gaArZdJXKwL2eNkTzeAucIBLub6R5YRas
WWOs+K/vb+CrxsSkuuV7ynnK79r+2ZN37Sz3lOQ6oAE+BJjIsp8mwD0S
=/3eX
-----END PGP SIGNATURE-----

2019.2

26 Apr 16:22
v2019.2
Compare
Choose a tag to compare

It's been some time since the last release, so this is a slightly larger
one! There's lots of new features, and a few bug fixes. Some highlights
below.

New features:

  • A new sysroot.bootloader key was added to be more explicit about
    which bootloader OSTree should use. Notably a none value is
    supported, in which OSTree is solely responsible for writing the BLS
    entries. This can then be used by bootloaders like GRUB2, which now
    supports BLS natively. (#1814)
  • ostree config now supports the unset command to unset a key from
    the OSTree repo config (#1743)
  • ostree remote add now supports the --force flag to replace a
    remote of the same name if it exists (#1166)
  • ostree-prepare-root now logs a structured journal message after
    finding the deployment to which to pivot. This can be used by
    higher-level apps like RPM-OSTree to build a history of the
    deployments the machine was booted into. (#1842)
  • The staging API now supports a lockfile which prevents finalization at
    shutdown. This is intended to be used in systems like Fedora CoreOS,
    which needs more fine-tuned control between staging a deployment,
    and setting it as the default deployment on reboot. (#1841)
  • ostree static-delta show now prints the From and To commits for
    which the delta was generated (#1823)

Bug fixes:

  • Make looking up collection-refs similar to how regular refs are looked
    up, i.e. first in the transaction, then in the current repo, and then
    in the parent repo (#1821)
  • Don't include the OSTree commit version number twice in the boot menu
    title. This affected at least Fedora-based systems composed with
    RPM-OSTree's mutate-os-release. (#1829)
  • Activate ostree-finalize-staged earlier; this should hopefully make
    deployment finalization more reliable by running it later in the
    shutdown sequence, when less services are running (#1840)
  • Run grub2-mkconfig on the filesystem tree of the pending deployment,
    rather than the previously deployed tree. This was a corner case where
    the deployment failed if a previous deployment did not exist, on
    systems where grub.cfg is used. (#1831)

As always, thanks to all the contributors!

Colin Walters (5 PRs, 8 commits)
  Post-release bump (#1800)
  static-delta: Change `show` to display from/to commits (#1823)
  prepare-root: Fix compilation with --with-static-compiler (#1846)
  PR: #1803
    lib/commit: Don't set user.ostreemeta for bare → bare-user-only imports
    lib/commit: Set xattr on correct fd for bare-user → bare-user imports
    lib/commit: Fix bare → bare imports
  PR: #1806
    ci/rpmostree: Bump to 2019.1
    ci/rpmostree: Fix use of `fatal`

Dan Nicholson (1 PR, 3 commits)
  PR: #1166
    remote-add: Add --force option to add or replace remote
    man: Document remote add --if-not-exists option
    repo: Add OstreeRepoRemoteChange replace operation

Jeremy Bicha (1 PR, 1 commit)
  tests: Update for glib 2.59.2 (#1818)

Jonathan Lebon (6 PRs, 9 commits)
  lib/deploy: Don't include version twice in bootmenu title (#1829)
  boot: Activate ostree-finalize-staged even earlier (#1840)
  ostree-prepare-root: Log journal message after finding deployment (#1842)
  Release 2019.2 (#1844)
  PR: #1841
    lib/deploy: Support locking deployment finalization
    lib/deploy: Write to journal if nothing to finalize
    lib: Add ot_journal_* helper macros
  PR: #1843
    lib/sysroot: Match deployment /usr mode for overlay
    lib/sysroot: Call `chmod` on overlay dirs when unlocking

Laurent Bonnans (1 PR, 1 commit)
  lib/repo: fix leak of `bootloader` field (#1837)

Matthew Leeds (11 PRs, 17 commits)
  tests: Don't skip collection-based summary test (#1804)
  lib/repo-pull: Allow the keyring remote to be overridden (#1810)
  lib/repo-pull: Fix docs for n-network-retries option (#1812)
  lib/repo: Fix Since: annotation for REMOTE_CHANGE_REPLACE (#1813)
  tests: Remove unused includes in libostreetest.c (#1815)
  man: Document ostree --version (#1820)
  lib/repo-refs: Resolve collection-refs in-memory and in parent repos (#1821)
  lib: Check for http_proxy being the empty string (#1835)
  PR: #1743
    ostree/config: Check for too many args
    man/ostree-config: Consistently use GROUPNAME placeholder
    ostree/config: Use g_autoptr instead of goto
    ostree/config: Add an "unset" operation
  PR: #1825
    lib/repo-refs: Allow resolving local collection-refs
    lib/repo-refs: Add a flag to exclude listing from refs/mirrors
    lib/repo-refs: Fix resolving collection-refs
  PR: #1834
    tests: Put a regex in quotes
    tests: Escape periods when appropriate

Micah Abbott (1 PR, 1 commit)
  README: add note about Liri OS (#1802)

Robert Fairley (3 PRs, 9 commits)
  PR: #1814
    Add sysroot.bootloader repo config key
    libotutil: Rename to ot_keyfile_get_string_list_with_separator_choice()
    tests/test-config: Remove extra space
    ostree-grub-generator: Comment wording fix
    (and 1 commit from other author)
  PR: #1831
    grub2: Generate config from pending deployment
    tests/test-admin-deploy-none: Split grub.cfg directory and file creation
    tests/test-admin-deploy-none: Update comment for #1774 status
  PR: #1839
    tests/test-config: Fix regex causing Debian test failure
    travis: Update to Debian Stretch

Robert Fairley (1 PR, 1 commit)
  PR: #1814
    libotutil: Add ot_keyfile_get_value_with_default_group_optional()
    (and 4 commits from other authors)

2019.1

11 Jan 18:40
v2019.1
Compare
Choose a tag to compare

This is the first libostree release of 2019; no big changes, just a collection of smaller
features and bugfixes.

On the features side, a good example is:
lib/repo: Search a list of paths in gpgkeypath for gpg keys
from PR #1773 - this will be useful for Fedora which rotates GPG keys
across releases.

Another feature is grub2: add support for devicetree
from PR: #1790

lib/kargs: allow empty-list arguments i.e. PR #1785 is between a
bugfix and feature - it ensures libostree supports "empty list" kernel
arguments.

There's also some ongoing work to have libostree be a "backend"
for OCI/Docker container storage; checkout: honor opaque checkouts
in PR #1486 is part of that.

pull: If built with --disable-http2, allow enabling via http2=1 from
PR #1798 will allow people to more easily play with HTTP2 if
it's disabled by default.

Thank you to all contributors!

Alexander Larsson (1 PR, 1 commit)
  Fix leak in ostree_content_stream_parse() (#1784)

Colin Walters (6 PRs, 8 commits)
  lib/commit: Try checksum+hardlink for untrusted local same-uid repos (#1776)
  Update libglnx (#1781)
  ci/papr: Drop insttests (#1783)
  pull: If built with --disable-http2, allow enabling via http2=1 (#1798)
  PR: #1766
    ci: Add `dist-then-build` target to catch missing `EXTRA_DIST`
    build-sys: Dist ostree-finalize-staged.path
  PR: #1800
    Post-release bump
    Release 2019.1

Giuseppe Scrivano (1 PR, 1 commit)
  checkout: honor opaque checkouts (#1486)

Jonathan Lebon (7 PRs, 7 commits)
  bin/refs: Disallow creating broken aliases (#1768)
  bin/pull-local: Add --commit-metadata-only (#1769)
  lib/commit: Copy user.ostreemeta only for bare-user (#1771)
  lib/commit: Add devino_cache_hits to txn stats (#1772)
  bin/pull: Add URL metavar for --url switch (#1782)
  boot/grub2: Add some more explanation in ostree-grub-generator (#1791)
  PR: #1761
    ostree/main: Wrap `Version` in `--version` in quotes
    (and 1 commit from other author)

Luca Bruno (1 PR, 1 commit)
  lib/kargs: allow empty-list arguments (#1785)

Matthew Leeds (1 PR, 1 commit)
  lib/repo: Clarify docs for importing w/ trust (#1777)

Matthias Clasen (1 PR, 2 commits)
  PR: #1788
    Fix a small leak in ostree_repo_remote_list_collection_refs
    Fix a small leak in ostree_repo_pull_with_options

Rafael Fonseca (2 PRs, 2 commits)
  admin/status: Correctly check GPG signature (#1787)
  admin/status: test GPG signature check (#1797)

Ricardo Salveti (1 PR, 1 commit)
  grub2: add support for devicetree (#1790)

Sinny Kumari (1 PR, 1 commit)
  atomic-upgrades doc: fix example url to fetch a ref checksum (#1795)

Umang Jain (3 PRs, 3 commits)
  lib/repo-commit: Relax min-free-space check in prepare_transaction() (#1779)
  man/ostree.repo-config: Update min-free-space-* docs (#1786)
  PR: #1761
    Post-release version bump
    (and 1 commit from other author)

rfairley (1 PR, 1 commit)
  lib/repo: Search a list of paths in gpgkeypath for gpg keys (#1773)

2018.9

25 Oct 14:38
v2018.9
Compare
Choose a tag to compare

https://github.com/ostreedev/ostree/releases/tag/v2018.9

It's been two months since our last release, so this one is slightly
larger than usual (the ~monthly cadence). It's mostly bugfixes
again, although there were some API additions and new
configuration options.

These new features are things like:

  • Allow disabling pulling from LAN/USB/Internet (#1758)
  • lib/repo: Add an API to get min-free-space-* reserved bytes (#1715)
  • OstreeMutableTree: add _remove method (#1724)
  • repo: Add a checkout option to not hardlink zero-sized files (#1752)

On the bugfix side, nothing major; we have the usual small memory
leak fixes (yeah, we use GCC autocleanups, but still, this is C).
Beyond that, good examples of bugfixes are:

  • finalize-staged: Bump timeout to 5 minutes (#1755)
  • deploy: Fix removing /var/.updated with separate /var mount (#1730)
  • src/ostree: Don't delete refs having aliases (#1749)

One notable change in this release is the initrd service
ostree-prepare-root.service now runs earlier in the boot process.
This shouldn't actually affect OSes, unless there's extended logic
in the initrd that integrates tightly with OSTree. The use case for this is
better integration with Ignition, which will be used in Fedora CoreOS.
PR: #1759

Another systemd related change is the introduction of a path unit:
ostree-finalize-staged.path. This allows the service of the same name
to be path activated instead of explicitly started at deployment staging time.
This release however does not yet rely on this mechanism to give time for
packagers and integrators to adapt to the new unit (e.g. by enabling it in
the systemd presets). A future release will require this.
Note that deployment staging is still not the default for libostree, although
at least rpm-ostree now unconditionally uses staging, and while it
generally worked well, we hit issues with people using slower hard drives,
hence the increase in timeout in PR #1755 .
PR: #1740

Another change to call out is:
lib/commit: Don't chown objects to repo target owner (#1754)
We previously had incomplete support for a process running as uid 0
writing to a repository owned by a non-zero uid, but it was never finished.
This will likely be revisited at a later time.

We also merged:
lib/grub2: Support Debian-style grub.cfg path (#1714)
from a new contibutor (thanks Felix!). Who incidentally also
posted recently about new Rust bindings:

https://mail.gnome.org/archives/ostree-list/2018-October/msg00000.html
https://crates.io/crates/libostree

Thanks a lot to all contributors!

Colin Walters (12 PRs, 13 commits)
  Post-release version bump (#1705)
  deploy: Fix removing /var/.updated with separate /var mount (#1730)
  lib/commit: Don't copy xattrs for metadata objects (#1736)
  lib/progress: Fix leak of GSource (#1741)
  Only verify OSTREE_MAX_METADATA_SIZE for HTTP fetches (#1744)
  rofiles-fuse: Improve error message for failure to open root (#1747)
  repo: Add a checkout option to not hardlink zero-sized files (#1752)
  checkout: Support --union-identical and --force-copy{,--zerosized} (#1753)
  finalize-staged: Bump timeout to 5 minutes (#1755)
  remount: Refactor to helper function instead of loop (#1760)
  README: Add bindings section (#1762)
  PR: #1757
    sysroot: Add error prefixing to deployment parsing
    sysroot: Update some code to use fstatat_allow_noent API

Dan Nicholson (1 PR, 1 commit)
  lib/commit: Don't chown objects to repo target owner (#1754)

Felix Krull (1 PR, 1 commit)
  lib/grub2: Support Debian-style grub.cfg path (#1714)

Jonathan Lebon (7 PRs, 12 commits)
  ci: Disable f28-rpmostree for now (#1727)
  ci: Bump rpm-ostree tag to 2018.8 (#1728)
  boot: Add ostree-finalize-staged.path (#1740)
  lib/mutable-tree: Port to new style (#1742)
  PR: #1732
    lib/fetcher-curl: Prefix fatal errors with full URL
    lib/fetcher-curl: Drop unnecessary check
    lib/fetcher-util: Mark journaled msgs as LOG_ERR
  PR: #1750
    lib/sysroot-deploy: Write to journal when finalizing
    boot: Add Documentation= lines to services
    boot: Remove [Install] from ostree-finalize-staged
  PR: #1759
    ostree-prepare-root.service: Run earlier in initrd
    ostree-prepare-root.service: Use RemainAfterExit=yes

Laurent Bonnans (1 PR, 1 commit)
  lib/fetcher: Fix some memory leaks in curl fetcher (#1716)

Matthew Leeds (10 PRs, 14 commits)
  avahi: Be robust to missing refs in peer summaries (#1717)
  lib/repo: Clean up OstreeRepo docs (#1725)
  lib/repo: Define a metadata key, ostree.deploy-collection-id (#1726)
  create-usb: Always use archive mode (#1733)
  create-usb: Add a --commit option (#1735)
  bash-completion: Fix --repo autocomplete (#1745)
  man/create-usb: Don't recommend summary updates (#1746)
  PR: #1737
    man/ostree.repo-config: Document locking options
    lib/repo: Fix minor mistake in locking docs
    lib/repo: Allow disabling lock timeout
  PR: #1758
    lib/repo-pull: Disable LAN updates by default
    Allow disabling pulling from LAN/USB/Internet
  PR: #1763
    Rename core.repo-finders to core.default-repo-finders
    lib/repo-pull: Add an explanatory comment

Robert McQueen (1 PR, 1 commit)
  OstreeMutableTree: add _remove method (#1724)

Sinny Kumari (1 PR, 1 commit)
  src/ostree: Don't delete refs having aliases (#1749)

Umang Jain (3 PRs, 6 commits)
  Release 2018.9 (#1761)
  PR: #1715
    lib/repo: Ensure min-free-space* config value doesn't overflow
    Add tests for ostree_repo_get_min_free_space_bytes
    lib/repo: Add an API to get min-free-space-* reserved bytes
  PR: #1722
    tests: Update tests for ostree_repo_get_min_free_space_bytes()
    lib/repo: Separate min-free-space-* calculation from transaction codepath

Git-EVTag-v0-SHA512: 7d4337f3b58ddd13c825eb80c0e39ebd5f4db1368a34ba6a037264c9941b373ba594a7b9f3ac63cb85e64f475bf5589001032a7ba6da371a2c76a336b4c89c85

2018.8

22 Aug 14:32
v2018.8
Compare
Choose a tag to compare

This release is pretty much all minor bugfixes: memory leaks,
fixing error messages and docs, handling a race condition
on pull with summary updates. There's one new feature (noted below),
and we also gained a new contributing tutorial:
https://mail.gnome.org/archives/ostree-list/2018-August/msg00005.html
Thanks to Robert Fairley and Cheryl Fong!

The one bugfix I want to call out explicitly is:
ostree-remount.service: RemainAfterExit=yes
PR: #1697
It's surprising it took us so long to find and fix this; I've seen
occasional boot failures that I believe trace down to this problem.
The behavior of systemd units of Type=simple without RemainAfterExit=yes set
is rather nonsensical; I may try to push to have a warning emitted
upstream if such a unit is a dependency of another.

And the one new feature is the auto-update-summary config option
for repositories. For more information, see the docs and
PR: #1681

Thanks to all contributors!

Alexander Larsson (3 PRs, 3 commits)
  Fix leak in ostree_repo_list_collection_refs (#1700)
  ostree_repo_static_delta_generate: Fix leak (#1701)
  ostree_repo_pull_from_remotes_async: Fix leak of options (#1702)

Colin Walters (3 PRs, 3 commits)
  lib/pull: Fix minor memleak in error path (#1684)
  ostree-remount.service: RemainAfterExit=yes (#1697)
  Release 2018.8 (#1705)

Dan Nicholson (1 PR, 5 commits)
  PR: #1698
    repo: Add OSTREE_REPO_TEST_ERROR=invalid-cache env var
    tests: Test for recovery from corrupted summary cache
    lib/pull: Fetch summary if cached version doesn't match signature
    lib/pull: Add debug message when loading summary from cache
    tests: Add tests for remote summary update races

Jonathan Lebon (4 PRs, 10 commits)
  ci: Bump rpm-ostree tag we build for tests (#1708)
  PR: #1692
    lib: Fix some logic/error-checking code
    lib: Fix some minor memory leaks
    lib: Check for NULL pointers in some more places
  PR: #1693
    lib/commit: Only auto-update summary if refs were written
    lib/config: Deprecate commit-update-summary option
    lib/config: Rename change-update-summary to auto-...
    lib/refs: Use GLNX_HASH_TABLE_FOREACH_KV helper
  PR: #1710
    ostree/config: Delete rogue printf and tweak help
    man/config: Keep cmdsynopsis for GROUP.KEY version

Matthew Leeds (4 PRs, 5 commits)
  man/ostree.repo-config: Update min-free-space-* docs (#1687)
  lib/repo-commit: Fix min-free-space error message (#1691)
  lib/repo-pull: Use correct keyring for dynamic remotes (#1695)
  PR: #1681
    config: Add a core/change-update-summary option
    lib/repo: Take exclusive lock while generating summary

Philip Withnall (1 PR, 1 commit)
  lib/repo-pull: Prefer object pull over from-scratch delta if ref exists (#1709)

Robert Fairley (2 PRs, 2 commits)
  docs: Add Contributing Tutorial to Mkdocs pages (#1711)
  PR: #1694
    docs: Add contributing tutorial
    (and 1 commit from other author)

Sinny Kumari (1 PR, 1 commit)
  src/ostree: Add --group option to ostree config (#1696)

Stefan Agner (1 PR, 1 commit)
  Avoid race condition in case tests directory does not exist (#1704)

Umang Jain (1 PR, 1 commit)
  Post-release version bump (#1683)

Will Thompson (1 PR, 1 commit)
  repo: remove outdated note from write_config() docs (#1707)

Will Thompson (1 PR, 1 commit)
  man/ostree.repo-config: improve min-free-space-* docs (#1706)

bubblemelon (2 PRs, 2 commits)
  bin/refs: Clarify --create error message (#1690)
  PR: #1694
    docs: Add detail to CONTRIBUTING.md and link to tutorial
    (and 1 commit from other author)


Git-EVTag-v0-SHA512: cb84a0dc71f917fc9fa715531e3154a23e861bf1e4223caf6c34e16461c7830a383bb9f090963eaaeaeb3c449434be7cf4246e63c15d5a2d5c7da101568f52e3

2018.7

20 Jul 20:42
v2018.7
Compare
Choose a tag to compare

I've said this before but the regular variety of contributors to libostree
makes me very happy - part of the reason I like working on Free Software
is collaborating with smart people around the world! Thanks to all of you!

There's no one major feature in this release, but we have a variety
of improvements and bugfixes.

The addition of min-free-space-size in the previous release caused
issues with older libostree/flatpak interacting with it. We now tolerate
both min-free-space-size and min-free-space-percent being set for
compatibility.
PR: #1685

The way libostree writes bootloader spec snippets has changed to
have the version number first, aiding sorting. It turns out some BLS
implementations order via filename. This is preparatory work for more
directly adopting the BLS in Fedora (and I for one will not miss grub2-mkconfig
and particularly os-prober)!

libostree became significantly smarter about handling "recommitting" content,
such as ostree commit --tree=ref=foo -b bar; it's now nearly free, and this
can be extended to very quickly "union" or merge different refs into a unified
whole. See the discussion in:
PR: #1643

There are two fixes for staged deployments (still not the default), but
we're aiming to do that by default in rpm-ostree soon, and that's shaking
out some remaining issues (for example, the API didn't support overriding
kernel arguments correctly).

Another notable bugfix is for separate /var partition, which we regressed
in 2018.6 as part of working on Ignition integration.
PR: #1668

Thanks again to all contributors!

Alex Kiernan (2 PRs, 2 commits)
  boot: Use emergency.target, not emergency.service (#1665)
  switchroot: Move late /run/ostree-booted creation to ostree-system-generator (#1675)

Alex Kiernan (2 PRs, 2 commits)
  build: Use ostree_prepare_root_CPPFLAGS for ostree-prepare-root (#1670)
  switchroot: Fix typo in comment ENINVAL => EINVAL (#1676)

Colin Walters (9 PRs, 9 commits)
  sysroot: Reject attempts to pin the staged deployment (#1660)
  ci/flatpak: Fix to use built ostree version (#1662)
  deploy: Retain staged by default (#1672)
  deploy: Fix overriding kernel args for staged deployments (#1677)
  build-sys: Link with gpg-error directly (#1679)
  Update libglnx (#1680)
  ci: Mark insttests as not required (#1686)
  PR: #1652
    ci: Workaround getfedora.org/atomic_qcow2_latest being 404
    (and 1 commit from other author)
  PR: #1668
    tests/installed: Add var-mount.yml destructive test
    (and 2 commits from other authors)

Emmanuele Bassi (1 PR, 1 commit)
  Add a check for gpg-error via pkg-config (#1682)

Javier Martinez Canillas (2 PRs, 2 commits)
  ostree-grub-generator: sort BLS files by version instead of alphabetically (#1653)
  deploy: Change BootLoaderSpec filenames so they can be used for sorting (#1654)

Jonathan Lebon (2 PRs, 3 commits)
  PR: #1652
    tests/installed: Wait a bit more for http.server
    (and 1 commit from other author)
  PR: #1668
    tests/installed: Add NOTE when re-using RPMs
    switchroot: Fix regression for separately mounted /var
    (and 1 commit from other author)

Marcus Folkesson (2 PRs, 2 commits)
  ci: exclude 'lib' from libsoup configure option (#1661)
  build: add ostree-soup-* to build process when configured with avahi (#1666)

Matthew Leeds (2 PRs, 2 commits)
  man/ostree.repo-config: Document collection-id (#1646)
  create-usb: Tweak docs for --destination-repo (#1656)

Philip Withnall (1 PR, 1 commit)
  lib/repo-commit: Abort a transaction if preparing it fails (#1647)

Robert Fairley (2 PRs, 3 commits)
  tests: Run network retries test for many retries directly (#1673)
  PR: #1669
    ostree/pull: Add network-retries command line option
    tests: Move assert_fail function to tests/libtest.sh

Simon McVittie (2 PRs, 2 commits)
  avahi: Fail immediately if we can't talk to D-Bus or Avahi (#1639)
  OstreeRepoFinderConfig: Fix guint/gsize confusion (#1641)

Umang Jain (6 PRs, 9 commits)
  lib/repo: Minor fixes around min-free-space (#1663)
  Release 2018.7 (#1683)
  lib/repo: Allow min-free-space-size and -percent to co-exist (#1685)
  PR: #1602
    lib/repo: Cleanup current boot's staging dir min-free-space-* checks are hit
    lib/repo: cleanup_tmpdir should be executed after releasing lock file
  PR: #1614
    tests: Add tests for space checks during deltas codepath
    lib/repo: Enforce min-free-space-* size check for regfiles in deltas
  PR: #1671
    lib/repo-commit: Factor out min-free-space-size error reporting
    repo: Reword min-free-space-size option's error strings

William Manley (4 PRs, 7 commits)
  ostree repo commit: Speed up composing trees with `--tree=ref` (#1643)
  tests: Save corefiles back to tests/ directory if one exists (#1657)
  PR: #1645
    OstreeMutableTree: Document ostree_mutable_tree_ensure_dir
    OstreeMutableTree: Document each private member of `OstreeMutableTree`
    Add test for composing trees in different ways
  PR: #1655
    OstreeMutableTree: Invalidate parent contents checksum when metadata changes
    OstreeMutableTree: Refactor: Add `parent` pointer

v2018.6

21 Jun 13:48
v2018.6
Compare
Choose a tag to compare

This release includes the final merge of the previously "experimental" API
for peer-to-peer discovery/download. This is currently supported by Flatpak
and the EndlessOS updater. One use case for example that this improves
is the "update via USB stick" case; you'll need to set collection IDs, and
have your update system use the repo finder API. (Today ostree admin upgrade
doesn't). Thanks a lot to Endless for all of their work on this!
PR: #1596

libostree learned how to retry HTTP requests on transient network errors.
By default, requests on such errors are now retried 5 times.
PR: #1594

There is also now a new "min-free-space-size" config option. This is similar
to the "min-free-space-percent" option but instead takes absolute values, such
as "1GB" or "10MB".
PR: #1616

The original systemd design for ConditionNeedsUpdate= didn't quite work
with libostree, but Endless wrote a fix and had been shipping it for a while.
That's now been merged: deploy: Delete .updated file from /etc and /var on new deployments
Part of the reason this came up now is we're planning to change rpm-ostree
to switch to systemd-sysusers: coreos/rpm-ostree#49
And today sysusers uses ConditionNeedsUpdate=. Once we make
the switch in rpm-ostree and test it out I'd recommend other operating
systems follow (and not use nss-altfiles). And if you've already made the switch,
let us know!
PR: #1631

We're working on using https://github.com/coreos/ignition for Fedora CoreOS,
which means integrating it with libostree. As both run in the initramfs,
we added a simple change to ensure /var is mounted. A future enhancement
here will likely involve handling custom /var mounts too.
PR: #1617

There are a variety of other changes, like fsck --all, having u-boot support devicetree,
etc.

Thanks to all contributors!

Alexander Larsson (2 PRs, 3 commits)
  ostree_repo_resolve_rev: Resolve refs set in the transaction (#1624)
  PR: #1591
    fsck: Add --all to print all corrupted object
    fsck: Include the commits that contain the corruption in errors

Andrea Galbusera (1 PR, 1 commit)
  u-boot: add support for devicetree (#1590)

Arnaud Rebillout (1 PR, 1 commit)
  docs: var/local -> var/usrlocal (#1588)

Colin Walters (4 PRs, 8 commits)
  Post-release version bump (#1586)
  lib/archive: Tell g-ir-scanner to ignore the private libarchive bits (#1629)
  PR: #1566
    lib/sysroot: Add wrapper API to prune system repository
    lib: Add a public helper method for pruning to find all ref'd commits
  PR: #1632
    tests/installed: Add a free-space success path test
    lib/repo: Do free space math under lock in error path
    lib/repo: Rename free_space_size variable to free_space_mb
    lib/repo: Fix double-set-error in min-free-space-size code

Dan Nicholson (1 PR, 1 commit)
  deploy: Delete .updated file from /etc and /var on new deployments (#1631)

Jan Tojnar (1 PR, 1 commit)
  tests: Fix locale detection (#1611)

Jonathan Lebon (4 PRs, 6 commits)
  ci: Add .papr-ex.yaml (#1587)
  .gitmodules: Update URL for libglnx (#1604)
  switchroot: Allow letting ostree-prepare-root mount /var (#1617)
  PR: #1601
    ci: Drop gpgme and libgcrypt hacks
    ci: Bump to f28, except flatpak
    ci: Stop layering oci-kvm-hook

Matthew Leeds (8 PRs, 15 commits)
  bash-completion: Don't add a space after files and directories (#1598)
  Update libglnx to get g_autoptr backports (#1603)
  admin: Fix list of subcommands in help and manpage (#1621)
  lib/prune: Don't modify dirent->d_name in place (#1627)
  PR: #1596
    lib: Fix building against old glib versions
    Make P2P API public (no longer experimental)
  PR: #1605
    Fix building P2P code against old glib versions
    find-remotes: Fix unused variable warnings
    Allow compiling OstreeRepoFinderAvahi without libsoup
    Allow compiling with experimental API but without curl/soup
  PR: #1607
    ci: Use master branch as flatpak tag
    ci: Bump flatpak build to F28
  PR: #1615
    tests: Add test for including ostree.h
    Fix building against old glib versions
    Revert "lib: Fix building against old glib versions"

Philip Withnall (4 PRs, 16 commits)
  lib/repo-commit: Delay propagation of errors from abort_transaction() (#1626)
  PR: #1594
    lib/fetcher: Factor out HTTP status code handling from soup and curl
    lib/repo-pull: Add some missing assertions for progress statistics
    tests: Test pull behaviour when network timeouts occur
    ostree/trivial-httpd: Add --random-408s command line option
    lib/fetcher-soup: Map more SoupStatus codes to known GIOErrors
    lib/repo-pull: Support retrying requests on transient network errors
  PR: #1599
    lib/repo-pull: Factor out enqueue function for FetchStaticDeltaData
    lib/repo-pull: Factor out enqueue function for FetchObjectData
    lib/repo-pull: Factor out enqueue function for ScanObjectQueueData
    lib/repo-pull: Rename a variable
    lib/repo-pull: Factor out free function for FetchDeltaSuperData
    lib/repo-pull: Use GCC `?:` ternary shortcut where appropriate
    lib/repo-pull: Use values from struct in enqueue_one_object_request()
  PR: #1600
    lib/repo-pull: Support retries for delta superblocks
    lib/repo-pull: Support queuing delta superblock requests

Umang Jain (1 PR, 1 commit)
  lib/repo: Add min-free-space-size option (#1616)