One of the most notable features in this release is that we make
use of the new libostree `--copyup` support when executing RPM
scripts on the client side: https://github.com/ostreedev/ostree/pull/1382
For example, this makes `rpm-ostree install fish` work. More information
about the general issue is available here: https://bugzilla.redhat.com/show_bug.cgi?id=1352154
PR: #1171
On the flip side, we have made a mostly-compatible change to drop
most Linux "capabilities" during RPM script invocation. For example,
it is no longer supported to e.g. load a kernel module as part of a
%post. We don't believe there are any packages that *currently* work
that this would break, but please do report any issues.
PR: #1099
Also related to scripts, we fixed compatibility with scripts that invoke
`systemctl enable` in %post:
PRs: #1157 #1148
The client now supports a new `cancel` command to allow cancelling
any on-going operation. This is useful if one has somehow lost the
controlling terminal from which the command was issued.
PR: #1019
The `status` command now supports a `--jsonpath` switch to make
it easier to access specific fields of the JSON output.
PR: #1164
A lot of preparatory work has gone in for automatic updates. For
example, `rpm-ostree compose tree` now embeds the full list of packages
contained within the compose directly in the commit metadata for
easier introspection both locally and remotely. An example of the benefits
from this is that `db diff` no longer requires the full commit tree to work.
PRs: #1134 #1162
One (mostly) cosmetic but still long-overdue change is a
rework of our progress bar output.
PRs: #1143 #1150
An internal change but one with quite visible effect
is that rpm-ostree has started to parallelize (multithread) more
operations; in this release, that includes "importing" and SELinux relabeling.
PRs: #1137 #1124
Work on [rpm-ostree jigdo ♲📦 https://github.com/projectatomic/rpm-ostree/issues/1081] continues.
We landed quite a lot of work to move the logic into the core code;
for example, it's now possible for the compose/build side to do *both*
an OSTree repository commit and jigdo simultaneously:
PR: #1165
The major missing piece now for jigdo is supporting it on the client side. Also,
this is a deeply fundamental change to how rpm-ostree works, and we're
very interested in feedback particularly from anyone who today makes
"custom" builds.
Colin Walters (42 PRs, 64 commits)
tests: Run compose tests in parallel ∥ (#545)
Add `cancel` verb and DBus API (#1019)
scripts: Drop most capabilities (#1099)
jigdo2commit: Change input to repoid:name (#1130)
jigdo2commit: Print download size (#1131)
status: Prefix ostree refspecs with ostree:// (#1136)
compose: Fix --ex-unified-core devino cache (suid bits lost) (#1139)
core: c++ build: Use enum-NONE value instead of zero (#1141)
compose: Write rpmdb to /usr/lib/sysimage/rpm-ostree-base-db (#1142)
Improve progress output (#1143)
Start moving some jigdo logic into core (#1144)
Move most jigdo build logic into internal library (#1146)
core: Process `systemctl preset` in `%post` (#1148)
core: Make use of "n items" progress for filesystem checkouts (#1150)
jigdo2commit: Make use of new libostree commitpartial API (#1152)
core,passwd: Use new libostree hardlink-break API (#1154)
tests: Make use of commit --no-bindings if available (#1167)
cli: Rework exit status processing (#1169)
bwrap: Use rofiles-fuse --copyup by default (#1171)
core,compose: Fix unified core pkgcache labeling (#1173)
scripts: Suppress microcode_ctl posttrans (#1174)
tests/compose: Pull in Fedora updates (#1177)
scripts: Only append "run journalctl" message if using journal (#1181)
core: Say "Installing %u packages", not "overlays" for containers (#1186)
ci/papr: Bump compose tests to 4 min vCPUs (#1187)
tests/compose: Various fixes (#1188)
man: Various tweaks/updates to the man page (#1189)
experiments-and-demos: New subdir with skopeo2ostree Dockerfile (#1193)
core: Don't try to relabel if no SELinux policy (#1194)
PR: #1124
core: Implement parallel importing
importer: Rework API
PR: #1135
jigdo: Add Provides: rpmostree-jigdo(v1), require it on client
commit2jigdo: Query objsize from correct repo when building objid map
commit2jigdo: Add some error prefixing
PR: #1137
core: Implement parallel relabeling
txn: Let first error win vs cancellation
daemon/sysroot: Drop internal cancellable
importer: Check cancellable early on
PR: #1138
core: Change relabeling to use libostree's SELinux support
core: Rework internal checkout API and relabeling error message
PR: #1140
jigdo: v3: Make installSet=jigdoSet
jigdo: v2: Use jigdoset in Requires, and commit hash in Provides
commit2jigdo: Fix destructor ordering
commit2jigdo: Print size of non-jigdoSet packages
jigdo: Verify checksum of commit upfront
commit2jigdo: Synthesize Requires: for jigdo set
PR: #1151
postprocess: Use same rigor for bwrap as scripts in unified core mode
core: Fix fcaps (e.g. ping) in unified core mode
PR: #1156
build-sys: Sync CFLAGS with libostree
Use #ifdef for BUILDOPT instead of #if
build-sys: Bump glib dependency
build-sys: Fix use of libglnx configure bits
PR: #1157
scripts: Make use of SYSTEMD_OFFLINE environment variable
bwrap: Hoist subprocess data into struct
PR: #1161
compose: Move txn+ref to toplevel, out of postprocess/commit code
tests/compose: Add a test for --write-commitid-to
PR: #1165
compose: Add --ex-jigdo-output-set
compose: Add --ex-jigdo-output-rpm
PR: #1168
core: Split out a -private.h header with struct
Lower jigdo client logic into core
PR: #1184
lib/core: Add API to retrieve all pkgs
core,util: Lower some DnfPackage* bits into utils
tests/compose: Rename jigdo.sh to jigdo-e2e.sh
PR: #1198
tests: Add a test case for epoch 0 in rpmdb pkglist
(and 1 commits from other authors)
Jonathan Lebon (16 PRs, 37 commits)
Makefile-daemon.am: work around gdbus-codegen path logic (#1153)
app/status: wrap package lists nicely if too long (#1159)
app/status: support JSONPath queries (#1164)
libpriv/rpm-util: just encode evr in pkglist (#1190)
app/main: also return the bus type on option parsing (#1191)
daemon: bump idle exit timeout to 60s (#1192)
lib/db: actually allow-none for out parameters (#1202)
tests/vmcheck: expand a bit more --copyup tests (#1203)
PR: #1134
app/compose: include rpmdb pkglist in compose
libpriv/util: add precondition to catch potential trap
app/compose: fix bad return values
PR: #1155
daemon/os: check for download-only and dry-run conflict
daemon/deploy: fix --dry-run downloads packages
libpriv/rpm-util: fix returning FALSE instead of NULL
daemon/os: fix complete function for SetInitramfsState()
rpm-ostreed.service: tweak description and add doc
core: remove extra newline between repo downloads
PR: #1158
libpriv/rpm-util: operate on DnfSack directly
libpriv/rpm-util: insert pkglist metadata sorted
libpriv/rpm-util: drop get_pkglist_for_root
libpriv/core: include pkglist for client commits
PR: #1160
daemon: avoid using floating GVariant refs
daemon/sysroot: reload repo before deployments
daemon/deployment-utils: some new style porting
daemon/os: reorder iface functions
daemon/package-variant: fix off-by-one error
daemon/package-variant: some more porting to new style
PR: #1162
app/db-diff: make use of new db API
lib/db: use new pkglist metadata API if possible
lib/package: teach about rpmostree.rpmdb.pkglist
PR: #1196
app/status: factor out some print functions
app/status: factor out escape chars logic
dbus: document missing key from CachedUpdate
PR: #1198
libpriv/rpm-util: encode epoch as a string
(and 1 commits from other authors)
PR: #1200
tests/libtest-core: support multiple literal checks
libpriv/rpm-util: add autoptr support to RpmHeaders
libpriv/rpm-util: factor refts from rootfs helper
Micah Abbott (1 PR, 1 commit)
docs: update branch examples for 'rebase' command (#1175)
Git-EVTag-v0-SHA512: 86631ef5fd7f149f835abb5335627f88346e609af5927e23182783b6ef61282df1104ed822e1469e267b89925e248bf6ee284cb5d064f53b26de842fa42deaa9