Releases: coreos/rpm-ostree
2021.2
Release 2021.2
Client side changes
The client now supports a --register-driver
command which will be used by Fedora CoreOS and zincati.service
to tell rpm-ostree that another service is actively "driving" updates. In concert with this, rpm-ostree upgrade
now emits an error message if a driver is active.
PRs: #2459 and #2566
Compose
There is a new rpm-ostree compose extensions
which will be used by RHEL CoreOS, but is intended to be generally usable by rpm-ostree users that want to more cleanly split their builds into "base OS image" + "optional extensions (RPMs)", while reusing the same declarative manifest format.
PR: #2439
Core changes
rpm-ostree now better supports a newer libsolv that uses %{_dbpath}
to find the rpm database.
(This fix was already backported into Fedora)
Issue: #2548
Internals
Change main entrypoint to be Rust is a huge milestone - rpm-ostree is now a Rust application with an internal C++ library. We now do bidirectional calls. The transition to Rust is accelerating!
Other oxidation progress:
- Much of the code around handling
/etc/{passwd,group}
is now in Rust; PR: #2580
A lot of CI fixes and cleanups; most notably we now test some with AddressSanitizer which caught one bug.
Colin Walters (81):
Make `make check` work again
rust: Port history to cxx-rs
rust/fedora_integration: Support export RPMOSTREE_KOJI_JSON_API_HOST=...
Remove some uses of `goto out`
rust: Add a bit more info on cxx, move up StringMapping
ci: Make msrv test do full build + unit tests
cxxrs: Work around failure with -Werror=missing-declarations
rust: Link to our C/C++ dependencies and internal library
Move nevra parsing to Rust, first use of `extern "C++"`
libmain: Avoid use of goto out
rust: Add some allow(dead_code)
compose: Remove unused treefile_rs parameter
tests/layering-fedorainfra: Update rpm-ostree build
tests: Fix compliation
ci: Re-enable `make check`
Makefile.bindings: Also generate pure rust/cxx.h
lockfile: Note that comment is JSON
lib: Don't link to libdnf
vagrant: Remove this
scripts: Remove, not used
cliwrap: Fix indentation
Bridge "next version" API to Rust, use it for unit tests
build: Use -std=c++17
tree-wide: Convert g_return.*if_fail to g_assert
ci: Drop testuser creation
ci: Split clang into separate script, run it in CoreOS CI
ci: Drop custom msrv checking
Change main entrypoint to be Rust
build-sys: Move some linkage purely to Rust
build-sys: Rebuild on C++ changes
ci/build-check: Don't make install
ci: Skip installing deps if non-root
scripts: Fix a stack use-after-free
ci: Add a commit validation entrypoint
Also export PATH here
ci: Ensure HOME is set
ci: Also test for HOME being writable
ci: Don't assume HEAD exists
ci: Consistently source libbuild
ci: Propagate make jobs to clang build too
build-sys: Explicit workspace, move libdnf deps to crate
Move libdnf build over to Cargo
build-sys: Drop Fedora 25+ rpm version check
build-sys: Delete duplicate Rust pkg-config dependencies
build-sys: Cleanly split up deps of public shlib vs internals
ci: Drop clang and unit tests from here
libdnf: Various buildsys fixes
ci: Add clang-analyzer.sh
tree-wide: Fix some spurious "Dead assignment" from clang-analyzer
tree-wide: Fix some "Dead assignment" from clang-analyzer
util: Annotate our "throw" wrappers as `[[ noreturn ]]`
libmain: Refactor to fix analyzer warning
tree-wide: Pacify some clang-analyzer "Dead nested assignment"
tree-wide: Squash some clang-analyzer found unused variables
Make failure to find packages fatal, add more error prefixing
ci/clang-analyzer: Install deps
tree-wide: Fix clang -Wgnu-designator/-Wunused-variable
transaction: Fix missing return in error case
build-sys: Add --enable-werror, rework compiler flags
build-sys: Statically link binary against shlib code
Rename internal Rust progress to console_
Bind output core into Rust, use in apply-live
scripts: Bind /usr/share/empty over /usr/share/rpm
build: Drop introspection+clang hack
Add --enable-sanitizers (not on by default yet)
tree-wide: Include GLib headers before libdnf
rust: Add module doc headers
Switch to using cxx-rs for treefile
tree-wide: Fix C++ range iteration to use references
build-sys: Always run `make` → `cargo build`
Misc doc tweaks/cleanups
tests/layering-non-root-caps: Adapt to new libcap output
ci: Drop: distro-sync, continuous repo
ci: Add `time` prefixing before most commands
build-sys: Ignore .cosa
ci: Rework build/test dependency install
tests: Fix bodhi link
Add an rpmostree-client sub-crate
compose: Add missing #include <optional>
libdnf-sys: Include gio.h before libdnf.h
Release 2021.2
Jonathan Lebon (31):
spec: Add BuildRequires: make
ci: Set RPM_BUILD_NCPUS when building RPMs
docs/HACKING: drop reference to `make vmcheck HOSTS=...`
.editorconfig: Adjust for CXX files
Revert "core: Allow overriding downloaded RPMs target dir"
app: Add `rpm-ostree compose extensions`
rust: Fix clippy warnings
core: Set _dbpath back to /usr/share/rpm after writing rpmdb
extensions: Write JSON to output dir
core: Factor out function to set repos on pkgs
core: Factor out function to download pkgs
core: Fix handling of local packages when downloading
extensions: Support enabling additional repos
extensions: Fix missing CxxResult
app/compose: Add comment about pkgcache
rust/treefile: Drop unnecessary #[serde(rename)]
extensions: Add support for development extensions
tests/compose.sh: Always rebuild supermin appliance
Makefile-rpm-ostree: Drop hardcoded `release` path
Makefile-rpm-ostree: Fix setting of `cargo_target_dir`
Makefiles: Drop unnecessary `cd rust/` and `CARGO_TARGET_DIR`
core: Don't allow noent when resolving pkgcache rev
ci: Temporarily use libsolv-0.7.17
Add /usr/lib/rpm/macros.d/macros.rpm-ostree to set %_dbpath to /usr/share/rpm
lib/package: Fix comment about rpmdb checkout
libpriv/rpm-util: Add /usr/lib/sysimage/rpm symlink in rpmdb checkout
libpriv/rpm-util: Use /usr/share/rpm for base rpmdb query
ci: Re-add CARGO_BUILD_JOBS
extensions: Don't try to chown RPM packages
libdnf-sys: Drop C API, replace with cxx.rs bridge
lockfile: Move ror_lockfile_read to cxx.rs
Kelvin Fan (13):
daemon: Record agent's systemd service
vmcheck/test-misc-2: Fix $cursor variable
HACKING: Update vmcheck instructions
docs/HACKING: Update kola ext test instructions
Add `register-driver` option to UpdateDeployment D-Bus API
app/status: Display update driver info
deploy: Allow empty string argument if `--register-driver`
daemon/rpmostreed-daemon: Look up sd unit if caller not registered
app/status: Show update driver's state and status
app/status: Use `AutomaticUpdatesDriver` if updates driven by external driver
tests/common/libvm: Print error if bad tests/vmcheck/image.qcow2
app/status: factor out get_sd_unit_objpath() function
app/upgrade: Do not upgrade if updates driver registered
Luca BRUNO (11):
libpriv/passwd: move RPM layering logic to Rust
github: update dependabot config
ci: fix install-extra logic
testutils: port to new 'rand' library API
rust/passwd: finish moving group and passwd parsers
rust/passwd: minor cleanup, switch to copy_file_at
libpriv/passwd-util: move migration logic to Rust
rust/passwd: minor cleanup, use write_file_with_sync
libpriv/passwd: move entries deduplication logic to Rust
make/rust-test: fix linking and loading
libpriv/postprocess: get rid of goto statements
dependabot[bot] (20):
build(deps): bump libdnf from `45981d5` to `1ebad38`
build(deps): bump serde_json from 1.0.60 to 1.0.61
build(deps): bump serde from 1.0.118 to 1.0.120
build(deps): bump serde from 1.0.120 to 1.0.122
build(deps): bump anyhow from 1.0.35 to 1.0.38
build(deps): bump libc from 0.2.81 to 0.2.82
build(deps): bump serde_yaml from 0.8.14 to 0.8.15
build(deps): bump systemd from 0.8.1 to 0.8.2
build(deps): bump tempfile from 3.1.0 to 3.2.0
build(deps): bump rust-ini from 0.16.0 to 0.16.1
build(deps): bump cxx from 1.0.20 to 1.0.28
build(deps): bump rand from 0.7.3 to 0.8.2
build(deps): bump serde from 1.0.122 to 1.0.123
build(deps): bump rand from 0.8.2 to 0.8.3
build(deps): bump libdnf from `1ebad38` to `e92a15a`
build(deps): bump libc from 0.2.82 to 0.2.84
build(deps): bump cxx from 1.0.28 to 1.0.29
build(deps): bump cxx from 1.0.29 to 1.0.30
build(deps): bump serde_json from 1.0.61 to 1.0.62
build(deps): bump serde_yaml from 0.8.15 to 0.8.16
Git-EVTag-v0-SHA512: 098fda1600aeecee9d355bec6d30b6a32e6c346d2ff5e025eae7599430d784e5b4270d9bb4858c1034ff2776cc80e34722cd7c164fe199b0aacfef4b48a38587
2021.1
rpm-ostree ex apply-live
In this release, the functionality formerly known as rpm-ostree ex livefs
is now known as rpm-ostree ex apply-live
, and it's been placed on a much firmer technical foundation and is considered much safer to use. It's still under ex
because we may make some interface changes, and we hope to gather feedback.
Concretely apply-live
now uses a "transient" overlayfs
instead of mutating any persistent filesystem. This makes it robust against power loss while the running filesystem is being changed. We no longer push a rollback deployment, etc. Stated a different way: if something goes wrong, all you need to do is reboot.
Countme support
rpm-ostree now ships an rpm-ostree-countme.timer
unit which fulfills the same purpose as the DNF countme feature. This will allow Fedora counting of installed systems to include rpm-ostree-based variants like Fedora CoreOS, Fedora Silverblue, and Fedora IoT, while still preserving user privacy.
Note the unit is currently not enabled by default. For more information, including how to disable it, see the docs.
override replace directly from Bodhi/Koji
Another notable feature in this release is support for directly pulling builds from current Fedora testing/build tools Bodhi and Koji.
Now with rpm-ostree v2021.1 you can run e.g.:
$ rpm-ostree override replace https://bodhi.fedoraproject.org/updates/FEDORA-2020-2908628031
to directly pull in a single Bodhi update applied relative to your booted system (presumably a stable
stream) without changing anything else. You can also pull in Koji builds (that may or may not be in a Bodhi update):
$ rpm-ostree override replace https://koji.fedoraproject.org/koji/buildinfo?buildID=1625029
This allows you to more directly interact with Bodhi's current model of testing individual updates.
Note that like all usage of override replace
, these versions are "pinned" until explicitly removed with a variant of rpm-ostree override reset
.
(This does combine with apply-live
so you can more easily test out changes)
Default to sqlite in F34+
Fedora 34 rpm-ostree based systems will switch to the sqlite backend by default, silencing a warning about use of the bdb backend.
Shared library "hollowed out"
Quite a while ago rpm-ostree started shipping a shared library librpmostree-1.so.1.0.0
; mainly it's used by e.g. gnome-software to display package diffs between ostree commits. However this created a problem later because we duplicated a lot of code between our binary and the shared library, and that in turn caused unnecessary bloat. The build system and implementation of the shared library was reworked to fork off the binary and parse its output. This reduced the size (debug symbols stripped) from ~2.6MB to 320k (-~88%).
Internals: FFI and Rust
Large portions of rpm-ostree have already been ported to the Rust programming language, in order to improve the overall level of safety and resilience of the project.
To further accelerate this transition, since the last release we are using cxx.rs as a code generation helper, which has the compelling feature of supporting fully safe bidirectional calls between C++ and Rust.
This required switching the C code to "C that builds in C++ mode". For the sake of clarity though, the goal here is to accelerate our transition to Rust, not to rewrite rpm-ostree code in modern C++.
Colin Walters (123):
main: Convert to C++
Port rpmostree-sysroot-upgrader to C++
Port rpmostree-sysroot-core to C++
Port rpmostree-deployment-utils to C++
Port rpmostreed-os to C++
Port rpmostreed-transaction-types to C++
Rename `ex livefs` to `ex apply-live`
apply-live: Print a success message
service: Explicitly RequiresMountsFor=/boot
transaction: Also log to journal when processes connect to txn
msrv: Bump to Rust 1.48.0
daemon: Record the agent ID in the journal
spec: Propagate Fedora default rustflags
Port rpmostree-output to C++
Port rpmostree-composeutil to C++
Port rpmostree-passwd-util to C++
shlib: Make basearch APIs call `/usr/bin/rpm-ostree shlib-backend`
lib: Drop dependencies on internal librpmostree-priv
buildsys: Compile daemon code directly with binary
tests: Disable C unit tests
buildsys: Unify build of binary and internal shared library
lib: Make varsubst_basearch propagate errors
More C++ porting, round 6
Port rojig2commit to C++
Port compose-builtin-rojig to C++
Port rpmostree-util to C++
Port rpmostree-libbuiltin to C++
Port rpmostreed-transaction-livefs to C++
Port rpmostree-refts to C++
Port rpmostree-libarchive-input-stream to C++
Port rpmostree-scripts to C++
Port rpmostree-unpacker-core to C++
Port rpmostree-importer to C++
Port rpmostree-rojig-client to C++
Port rpmostree-origin to C++
Port rpmostree-rojig-assembler to C++
Run rustfmt, and fix CI check for it
Port rpmostree-json-parsing to C++
Port rpmostree-editor to C++
Port rpmostree-pkg-builtins to C++
Port rpmostree-builtin-reset to C++
Port rpmostree-builtin-override to C++
Port rpmostree-builtin-usroverlay to C++
Port rpmostree-builtin-refresh-md to C++
Port rpmostree-builtin-livefs to C++
Port rpmostree-builtin-upgrade to C++
Port rpmostree-builtin-rollback to C++
Port rpmostree-builtin-deploy to C++
Port rpmostree-builtin-reload to C++
Port rpmostree-builtin-rebase to C++
Port rpmostree-builtin-cancel to C++
Port rpmostree-builtin-cliwrap to C++
Port rpmostree-builtin-cleanup to C++
Port rpmostree-builtin-initramfs to C++
Port rpmostree-builtin-initramfs-etc to C++
Port rpmostree-builtin-status to C++
Port rpmostree-builtin-ex to C++
Port rpmostree-builtin-testutils to C++
Port rpmostree-builtin-shlib-backend to C++
Port rpmostree-builtin-db to C++
Port rpmostree-builtin-start-daemon to C++
Finish removing `ex container` code
Port rpmostree-builtin-finalize-deployment to C++
Port rpmostree-db-builtin-dif to C++
Port rpmostree-db-builtin-list to C++
Port rpmostree-db-builtin-version to C++
Port rpmostree-override-builtins to C++
Port rpmostree-polkit-agent to C++
Port rpmostree-builtin-kargs to C++
Port rpmostree-builtin-compose to C++
Port rpmostreed-daemon to C++
Port rpmostreed-utils to C++
Port rpmostreed-sysroot to C++
Port rpmostreed-errors to C++
Port rpmostree-package-variants to C++
Port rpmostreed-os-experimental to C++
build-sys: Remove --enable-installed-tests
build-sys: Remove --with-bubblewrap
build-sys: Remove RHEL7 autotools backport
build-sys: Drop autoconf bits to find dbus service directory
apply-live: Print a package diff
buildsys: Make one big rpmostreeinternals.la, enable unit tests again
ci: Introduce install-extra-builddeps.sh
Use cxx-rs for core.rs
Use cxx-rs for utils.rs download_to_fd
Use cxx-rs instead of gresources
Move "ignored script list" to Rust, drop gperf
Rework bindgen/cxx.rs usage and CI build
Makefile.bindings: Use content-based change detection
Add a partial reimplementation of origin parsing in Rust
ci: Don't run autotools twice
Add support for some GObject bridging to cxx-rs
Bump to cxx-rs 1.0.20
Use cxx-rs for live-apply
lib: Cleanup `#include <>`s
Port initramfs Rust code to cxx-rs
util: Remove `#ifdef __cplusplus`
Move some client argument handling to Rust
Complete move to cxx-rs for utils
Port cliwrap FFI to cxx-rs
Port composepost to cxx-rs
tests: Fix rsync of base rpmdb with sqlite
Port Rust journal bits to cxx-rs
Add fedora-integration: Support `override replace https://bodhi/...`
Also print Rust-side features/cfg in `rpm-ostree --version`
With vendored source, use cargo build --offline
configure: Update contact email
Rename livefs → apply-live in more places
journal: Add filters for _UID=0
testutils: Port to cxx-rs
Add a Rust helper to create a sealed memfd, use in shlib backend
scripts: Pass script as a memfd
testutils: Add script-shell, remove shell wrapper
apply-live: Avoid clobbering changes in /etc
rust: Add CxxResult
rust: Update to openat-ext 0.1.10
rust: Fix a pub(crate) warning, add a few doc comments
apply-live: Extend /etc test case
rust: Port progress.rs to cxx-rs
scripts: Use bwrap --ro-bind-data rather than mutating target
scripts: Rework /var/lib/rpm-state creation, port to new style
Release 2021.1
Update configure.ac
Jonathan Lebon (8):
Default to sqlite rpmdb backend on f34
Makefile-rpm-ostree: fix path to cbindgen.toml
spec: Minor tweaks
ci/install-extra-builddeps: Drop --root=/usr arg
ci: Add `~/.cargo/bin` to PATH in Prow path as well
Makefile-rpm-ostree: Link to librt
core: Allow overriding downloaded RPMs target dir
app/compose: Drop rojig-related prototypes
Luca BRUNO (1):
libpriv/passwd: move passwd database to Rust
Timothée Ravier (3):
countme: Add DNF Count Me support
Cargo.lock: Update for DNF Count Me support
Remove now unused mkdocs.yml
dependa...
2020.10
A quick fixup on top of https://github.com/coreos/rpm-ostree/releases/tag/v2020.9
Colin Walters (4):
rust: Add deny(unused_must_use)
Port rpmostree-kernel to C++
Fix and improve support for rpmostree-rust.h being pre-generated
Release 2020.10
2020.9
rpm-ostree v2020.9
Client
The ex livefs
command was completely rewritten and moved to a much safer foundation.
Bugfixes:
override replace
with the kernel works again- libdnf plugins are explicitly disabled
- Another 32-bit printf fix
Composing
No real changes.
Internals
- Our CI is now on Fedora (CoreOS) 33 and tests were fixed for that
- Investigating https://cxx.rs/ and moving some code to C++, but the end game is mostly Rust!
- Some further small parts were rewritten in Rust.
Colin Walters (20):
Rewrite livefs
service: Enable ProtectHome=true
livefs: Fix --target, add --reset and print diff
tree-wide: Add extern "C" wrapping to our headers
scripts: Neuter RHEL8 nvme-cli %post
Convert some code to compile in C++ mode
Remove ex-container
compose: Use static enablement for ostree systemd services
bindgen: Bump to 0.15
tests: Add case for running rpm -q in a %post
Add a helper move_nullify
app: Port dbus-helpers to C++
Port rpmostree-postprocess to C++
Port rpmostree-core to C++
Port rpmostreed-transaction to C++
Move bindgen into tooling/, add dependabot
Move the main Rust infra (i.e. Cargo.toml) to the toplevel
upgrader: Inject --no-hostonly again if no initramfs-args
livefs: Fix GVariant refcounting
Release 2020.9
Jonathan Lebon (6):
core: Disable libdnf plugin loading
rust: Move to new systemd journal API for opening
daemon: Drop CreateOSName
app/history: Limit entries to print to 3
history: Use shorthand struct initialization
libpriv/scripts: Fix uint64 printing
Luca BRUNO (4):
tests/jsonutil: update invalid specifier
Revert "ci: Freeze FCOS commit to f32"
tests/override-kernel: support f33
core: add a guard for temporary-etc context and move to Rust
Prajna Sariputra (1):
docs: Update links to the OSTree documentation
Timothée Ravier (1):
rust: Fix various clippy warnings
dependabot[bot] (16):
...omitted...
2020.8
Mainly two compose side fixes that will help coreos-assembler.
Besides that, some smaller code cleanups.
Colin Walters (7):
daemon: Rewrite some core initramfs-overlay logic in Rust
rust/lockfile: Use from_glib_full to avoid manual free
scripts: Link to lua issue on error
treefile: Fix hashing of externals
compose: Add --previous-commit
Remove coreos-rootfs command
Release 2020.8
Jonathan Lebon (2):
Drop use of `volatile`
ci: Freeze FCOS commit to f32
Luca BRUNO (1):
sh: fix bash shebang
dependabot[bot] (2):
build(deps): bump anyhow from 1.0.33 to 1.0.34 in /rust
build(deps): bump libglnx from `1dd01d5` to `493d399`
Git-EVTag-v0-SHA512: 6e4c1d1752195dfdef2c80f0c9d5d7091b6c5abfe0d96bf499a3a7fe717b5ae05ab560341a80e1391a579e36c204299abd8db88c59f847353874836e808c3d02
v2020.7
v2020.6
There is a new ex initramfs-etc
command that can be used
to inject local configuration from /etc
into an additional initramfs
image. This is still experimental, but we plan to use it
for "complex root devices" for Fedora CoreOS at least, and it can
also be used for cases like dracut LUKS keyboard layouts.
PR: #2170
The "rojig" (embed ostree in RPM) functionality is now
disabled by default.
(If you are using it, please tell us!)
Ensure you're using boot-location: modules
, as the current default
boot-location: new
is deprecated.
The only reason to use boot-location: new
is if you care
about upgrading directly from very old versions of ostree.
At some point it's likely that this configuration option will
be removed entirely.
This release also contains portability bugfixes (for 32bits ARM) and
improvements to the transaction logic, enhancing overall reliability.
Documentation is cleaned up and moved from readthedocs.io to
Github pages, the new site is: https://coreos.github.io/rpm-ostree/
Various CI fixes.
Various Rust cleanups (particularly around FFI).
Colin Walters (18):
tests: Loosen regexp for French date
transaction: Port to declare-and-initialize style
sysroot: Log when forcibly closing a transaction
client: Close DBus connection before calling reload
transaction: Unlock more reliably at txn finish
daemon: Defer reload to an idle
Add --enable-rojig, disable by default
Make /run a directory in scripts
sysroot: Fix usage of sd_journal_send on 32 bit
compose: Print a warning with boot-location: new
Update to openat-ext 0.1.8, use new file writing API
rust: Enable lto by default
Remove ffi_view_str/ffi_new_string functions
composepost: Fix to use write_all()
treefile: Directly write to String
rust: Use Borrow<GString> in a few places
Disable `boot-location: new` test
Release 2020.6
Jonathan Lebon (11):
rust: adapt to new systemd journal API
ci: Run C unit tests too
README.md: Keep it short and sweet
tests/compose: Bump FCOS config commit to test
rust/treefile: Use shorthand initialization for Treefile
tests/compose: Drop FCOS postprocess scripts
tests/compose: Check filecaps of arping instead of ping
dependabot: Drop pull request limit to 3
rust: Update deps
rust/libdnf-sys: Drop Cargo.lock
Add new `ex initramfs-etc` command
Luca BRUNO (2):
daemon: drop an unused sysroot parameter
daemon/syscore: push livefs introspection to Rust
Timothée Ravier (10):
docs: Add Jekyll and theme config
docs: Unify and update README and Index page
docs: Update Contributing page
docs: Update Repo Structure page
docs: Move and update Background page
docs: Move and update Client administration page
docs: Move and update Compose server page
docs: Move and update Treefile page
docs: Import Hacking page
docs: Import Release page
v2020.5
This is mostly a bugfix release.
One important fix is adapting to the change in Fedora to transition the rpmdb
to SQLite. This would
result in Fedora 33 composes using the new backend, making it harder for users
with layered packages to rebase (see
bugzilla.redhat.com/show_bug.cgi?id=1876194#c3).
As a result, there is now an rpmdb
key in the treefile which can take e.g.,
bdb
or sqlite
but which defaults to bdb
. This means that f33 composes
will for now keep using BDB, allowing for smoother rebases. Content providers
can opt into the new SQLite backend when convenient.
Another fix worth mentioning is a major improvement in how layered packages are
handled: rpm-ostree now correctly picks older versions of layered packages if
needed to satisfy base packages. This will help solve the "split base/layered
package mismatch" in
combination with pending work in Fedora at least to publish older versions of
RPMs. Additionally, when a solution is not possible, the error message prints
exactly what the conflict is.
Otherwise, there is the usual churn around CI. For example, the MSRV is now
1.45.2. There are some preparations for using
ostree-rs more extensively in the future.
Colin Walters (11):
Add testutils generate-synthetic-upgrade
core: Clearly show when no rpm-md repos are enabled
util: Remove an (effectively) unused GCancellable
rust: Fix deprecation warnings
deploy: Don't leak file descriptor passed for local rebases
db-list|version: Remove code to parse `..`
Move the "cbindgen typedefs" to their own file
ci: Use ostree from lockfile
compose: Use user mode checkout for sepolicy
Use ostree-rs, and oxidize more treefile checksumming
compose: Add rpmdb option, default to bdb
Jeff Law (1):
spec: Disable LTO
Jonathan Lebon (9):
app/ex: Drop `reset` alias
libpriv/origin: Factor out helper to set key from hash table
libpriv/kernel: Link initramfs into place earlier
src/{daemon,libpriv}: Better error prefixing
libpriv/kernel: Allow optional initramfs tmpf
ci: bump compose tests timeout to 60 minutes
ci: Bump MSRV to 1.45.2
core: Use SOLVER_LOCK for locking base packages
Release 2020.5
Kelvin Fan (1):
treefile: change `remove-from-packages` implementation
v2020.4
Minor release with some fixes and enhancements for RHCOS.
Server
A symlink from /usr/lib/sysimage/rpm
to the rpmdb was added (PR #2154). This
will eventually be the new standard location for the rpmdb on multiple
image-based distros. See this
thread for
details.
Treefiles now support package requests with version requirements again
(PR #2151). Must be quoted, e.g.:
packages:
- foo bar 'baz > 1.0'
- 'boo <= 3.2'
Client
Multiple commands learned the --lock-finalization
switch which deploy
already understood (PR #2158). This is used in FCOS and may end up being used in
RHCOS as well.
Fix a potential segfault when upgrading from a local repo, i.e. via rebase /path/to/repo:$rev
(PR #2178).
Colin Walters (1):
postprocess: Add a symlink /usr/lib/sysimage/rpm to the rpmdb
Jonathan Lebon (10):
Move release instructions to RELEASE.md
ci/installdeps: add distribution-gpg-keys
app: Add --lock-finalization switch to other commands
ci: pull Fedora image from Quay.io
ci: request 2G of RAM for compilation
ci: Constrain parallel build jobs
vmcheck/rojig: Don't use ci.centos.org
ci: Bump MSRV to 1.43.1
daemon/deploy: Finish OstreeAsyncProgress after pull
Release 2020.4
Kelvin Fan (1):
treefile: Allow greater/less than versions for pkgs
Tom Stellard (1):
spec: Use make macros
v2020.3
Release 2020.3
This is a thin release overall, with mostly bugfixes and minor tweaks.
-
rpm-ostree compose tree
will now print a warning and incur a 5s delay when not using--unified-core
. This is part of our push to eventually making it the default. If you cannot make use of--unified-core
right now and want to avoid the delay, there is an undocumented environment variable you can find. Please follow up to #729 if you need assistance! PR #2098 -
rpm-ostree rebase /path/to/local/repo:ref
is no longer considered experimental. This has been actively used by RHCOS on OCP4 for a while now. PR #2110 -
Fix a bug in the upgrader where downgrade protection would mistakenly kick in if deploying to a new version that was older than whatever the latest version was last pulled. PR #2096
-
Work around the latest f32
crypto-policies
using a Lua scriptlet, which we do not yet support, and leaking FIPS mode from the server into composes. PR #2136 -
Fix building on platforms without zchunk support, like RHEL8. PR #2092
Colin Walters (9):
build-sys: Disable zchunk for libdnf if we don't have it
compose: Remove --output-repodata-dir
compose: Add a "warn and sleep" if --unified-core is not provided
tests/kola: Move into tests/kolainst, run installed
rojig-build: Just expand %_isa
test-override-kernel: Support f32
daemon: Add an error prefix in local repo pulls
rebase: Remove requirement for --experimental with local rebases
ffiutil: Format full errors from anyhow
Doug Hellmann (1):
docs/background: Fix benefits and drawbacks formatting
Jonathan Lebon (8):
upgrader: Add more error-prefixing
upgrader: Reset ref before fetching commit by override
spec: Bump version to 2020.2
tests: Make more resistant to releasever changes
app/status: Print missing newline for AutomaticUpdates
libpriv/scripts: Replace crypto-policies lua script
ci: Adapt to workspace being HOME
Release 2020.3
Stephen Gallagher (1):
spec: Fix up conditionals for ELN