ostree.git
23 months agostatus: Rename query-booted to is-default
Eric Curtin [Tue, 9 Jan 2024 15:23:47 +0000 (15:23 +0000)]
status: Rename query-booted to is-default

This is a tool to check if we are booted as default or not, just a
rename before it becomes widely used. We also shortened the '-h' output
for this.

Signed-off-by: Eric Curtin <ecurtin@redhat.com>
23 months agoMerge pull request #3134 from ericcurtin/query-boot-real
Colin Walters [Mon, 8 Jan 2024 18:14:50 +0000 (13:14 -0500)]
Merge pull request #3134 from ericcurtin/query-boot-real

status: Introduce tool to quickly check if we are booted as default

23 months agoMerge pull request #3133 from cgwalters/boot-complete-rollback
Colin Walters [Mon, 8 Jan 2024 12:38:53 +0000 (07:38 -0500)]
Merge pull request #3133 from cgwalters/boot-complete-rollback

systemd/ostree-boot-complete: Start earlier

23 months agostatus: Fix --skip-signatures description
Eric Curtin [Fri, 5 Jan 2024 18:18:22 +0000 (18:18 +0000)]
status: Fix --skip-signatures description

It was a copy-paste of another description, rather than it's own.

Signed-off-by: Eric Curtin <ecurtin@redhat.com>
23 months agoman: Add ostree admin status man page CLI options.
Eric Curtin [Fri, 5 Jan 2024 17:08:43 +0000 (17:08 +0000)]
man: Add ostree admin status man page CLI options.

Document the various CLI options.

Signed-off-by: Eric Curtin <ecurtin@redhat.com>
23 months agostatus: Introduce tool to quickly check if we are booted as default
Eric Curtin [Fri, 5 Jan 2024 15:49:39 +0000 (15:49 +0000)]
status: Introduce tool to quickly check if we are booted as default

Generally in ostree based systems you would expect to boot into
deployment 0, in rollback conditions triggered by greenboot-related
rollbacks this might not be the case. This is a tool to detect this.

Signed-off-by: Eric Curtin <ecurtin@redhat.com>
23 months agoMerge pull request #3132 from ericcurtin/query-boot
Colin Walters [Fri, 5 Jan 2024 17:22:57 +0000 (12:22 -0500)]
Merge pull request #3132 from ericcurtin/query-boot

status: Fix build without GPGME

23 months agosystemd/ostree-boot-complete: Start earlier
Colin Walters [Fri, 5 Jan 2024 15:58:57 +0000 (10:58 -0500)]
systemd/ostree-boot-complete: Start earlier

Prep for changing this service to perform state computations
such as "is this boot the default, or did we get rolled back"
that can be used by higher level tools.

23 months agosystemd/ostree-boot-complete: Add `ConditionKernelCommandLine=ostree`
Colin Walters [Fri, 5 Jan 2024 15:57:16 +0000 (10:57 -0500)]
systemd/ostree-boot-complete: Add `ConditionKernelCommandLine=ostree`

In practice we don't enable this unit except via our generator,
but let's do this on general principle.

23 months agostatus: Fix build without GPGME
Eric Curtin [Fri, 5 Jan 2024 14:39:46 +0000 (14:39 +0000)]
status: Fix build without GPGME

If OSTREE_DISABLE_GPGME is not built in set remote to NULL.

The ostree_repo_signature_verify_commit_data path is irrelevant in the
no gpg case anyway. Having this set as NULL ensures an error gets
thrown early.

Signed-off-by: Eric Curtin <ecurtin@redhat.com>
23 months agoMerge pull request #3131 from cgwalters/status-use-remote
Eric Curtin [Fri, 5 Jan 2024 14:28:47 +0000 (14:28 +0000)]
Merge pull request #3131 from cgwalters/status-use-remote

status: Pass correct remote name when verifying

23 months agoMerge pull request #3130 from jlebon/pr/autoprune-aarch64-dtb
Colin Walters [Thu, 4 Jan 2024 20:57:08 +0000 (15:57 -0500)]
Merge pull request #3130 from jlebon/pr/autoprune-aarch64-dtb

lib/deploy: Round to block size in early prune space check

23 months agostatus: Add an option to skip signature verification
Colin Walters [Thu, 4 Jan 2024 19:02:08 +0000 (14:02 -0500)]
status: Add an option to skip signature verification

Since it's really expensive in some cases.

23 months agostatus: Pass correct remote name when verifying
Colin Walters [Thu, 4 Jan 2024 18:55:14 +0000 (13:55 -0500)]
status: Pass correct remote name when verifying

The default `ostree admin status` tries to do signature
verification, but doesn't error out if that fails.

However, an extremely longstanding bug here is that we passed
the "osname" aka stateroot instead of the remote name.  This
happens to work for e.g. Fedora Silverblue today, where they
are the same.  It doesn't work on FCOS (remote = fedora, stateroot = fedora-coreos).

23 months agolib/deploy: Add safety margin in early prune space check
Jonathan Lebon [Thu, 4 Jan 2024 16:14:40 +0000 (11:14 -0500)]
lib/deploy: Add safety margin in early prune space check

There are a few things the estimator doesn't account for, e.g. writing
the new BLS entries. Rather than trying to perfect it (since I think we
should change approach entirely -- see previous commit message), just
add a 1M margin to the space check.

23 months agolib/deploy: Round to block size in early prune space check
Jonathan Lebon [Thu, 4 Jan 2024 16:14:39 +0000 (11:14 -0500)]
lib/deploy: Round to block size in early prune space check

When we estimate how much space a new bootcsum dir will use, we
weren't accounting for the space overhead from files not using the
last filesystem block completely. This doesn't matter much if counting
a few files, but e.g. on FCOS aarch64, we include lots of small
devicetree blobs in the bootfs. That loss can add up to enough for the
`fallocate()` check to pass but copying still hitting `ENOSPC` later on.

I think a better fix here is to change approach entirely and instead
refactor `install_deployment_kernel()` so that we can call just the
copying bits of it as part of the early prune logic. We'll get a more
accurate assessment and it's not lost work since we won't need to
recopy later on. Also this would not require having to keep in sync the
estimator and the install bits.

That said, this is blocking FCOS releases, so I went with a more tactical
fix for now.

Fixes: https://github.com/coreos/fedora-coreos-tracker/issues/1637
23 months agoMerge pull request #3129 from cgwalters/fix-unlock-composefs-compat
Colin Walters [Thu, 4 Jan 2024 15:40:09 +0000 (10:40 -0500)]
Merge pull request #3129 from cgwalters/fix-unlock-composefs-compat

prepare-root: Fix composefs + ostree admin unlock --hotfix compat

23 months agoMerge pull request #3128 from cgwalters/hotfix-composefs
Eric Curtin [Thu, 4 Jan 2024 12:05:02 +0000 (12:05 +0000)]
Merge pull request #3128 from cgwalters/hotfix-composefs

switchroot: use shared constant for unlock --hotfix

23 months agoswitchroot: use shared constant for unlock --hotfix
Colin Walters [Wed, 3 Jan 2024 18:05:15 +0000 (13:05 -0500)]
switchroot: use shared constant for unlock --hotfix

So it's easier to link the two bits of code.

23 months agoprepare-root: Fix composefs + ostree admin unlock --hotfix compat
Colin Walters [Wed, 3 Jan 2024 19:01:38 +0000 (14:01 -0500)]
prepare-root: Fix composefs + ostree admin unlock --hotfix compat

There's a test case for `ostree admin unlock --hotfix` that
runs in FCOS, not here; it breaks when enabling composefs.

The reason is because the composefs is mounted readonly, and
we tried to remount it writable.  Instead of trying to remount
the rootfs writable at this point forcibly, honor the
*real* sysroot readonly state flag from the underlying FS before
we mounted the composefs.

Note that in FCOS derivatives we always have the root mounted
writable via `rw` on the kernel cmdline and this is the default
general expectation now with ostree usage.

23 months agoMerge pull request #3127 from cgwalters/composefs-doc-toplevel-chattr
Colin Walters [Tue, 2 Jan 2024 20:53:01 +0000 (15:53 -0500)]
Merge pull request #3127 from cgwalters/composefs-doc-toplevel-chattr

docs/composefs: Add note about toplevel dirs

23 months agoMerge pull request #3119 from cgwalters/zipl-fix-nul-term
Joseph Marrero Corchado [Tue, 2 Jan 2024 20:49:24 +0000 (15:49 -0500)]
Merge pull request #3119 from cgwalters/zipl-fix-nul-term

zipl: A few fixes

23 months agodocs/composefs: Add note about toplevel dirs
Colin Walters [Tue, 2 Jan 2024 20:16:47 +0000 (15:16 -0500)]
docs/composefs: Add note about toplevel dirs

Just thinking about trying to land this, I think some people
may hit this one.

23 months agoMerge pull request #3125 from ericcurtin/explicit-sysroot-rw-ro-log
Colin Walters [Sat, 30 Dec 2023 15:55:09 +0000 (16:55 +0100)]
Merge pull request #3125 from ericcurtin/explicit-sysroot-rw-ro-log

switchroot: Be explicit about what could cause /sysroot to be ro

23 months agoswitchroot: Be explicit about what could cause /sysroot to be ro
Eric Curtin [Thu, 21 Dec 2023 17:11:55 +0000 (17:11 +0000)]
switchroot: Be explicit about what could cause /sysroot to be ro

If you don't have rw in the kernel cmdline or have ro in it, often you
hit this issue. This is just to be really explicit about that in the
error messages so people can check.

Signed-off-by: Eric Curtin <ecurtin@redhat.com>
23 months agoMerge pull request #3124 from cgwalters/rust-features
Eric Curtin [Wed, 20 Dec 2023 12:48:53 +0000 (12:48 +0000)]
Merge pull request #3124 from cgwalters/rust-features

rust: Add missing feature versions

23 months agoMerge pull request #3123 from cgwalters/deploy-log-space
Colin Walters [Wed, 20 Dec 2023 12:22:21 +0000 (07:22 -0500)]
Merge pull request #3123 from cgwalters/deploy-log-space

deploy: Log calculated needed space

23 months agodeploy: Log calculated needed space
Colin Walters [Tue, 19 Dec 2023 20:00:05 +0000 (15:00 -0500)]
deploy: Log calculated needed space

To aid debugging issues like https://github.com/coreos/fedora-coreos-tracker/issues/1637

If we're hitting this path where we think we have enough space,
let's log what we calculated here to aid in diagnosing why we
may later fail with ENOSPC.

23 months agorust: Add missing feature versions
Colin Walters [Wed, 20 Dec 2023 02:01:21 +0000 (21:01 -0500)]
rust: Add missing feature versions

- We missed 2022_2, which specifically includes
  https://docs.rs/ostree/latest/ostree/static.PATH_BOOTED.html
  and I was really confused why that was missing
- Add more recent upstream versions too

23 months agoMerge pull request #3121 from fwilhe/patch-1
Colin Walters [Mon, 18 Dec 2023 14:22:13 +0000 (09:22 -0500)]
Merge pull request #3121 from fwilhe/patch-1

Link to gardenlinux/ostree-image-builder in README

2 years agoLink to gardenlinux/ostree-image-builder in README
Florian Wilhelm [Mon, 18 Dec 2023 13:12:45 +0000 (14:12 +0100)]
Link to gardenlinux/ostree-image-builder in README

This repo is the outcome of a PoC on how an existing
debian-based distro could be adapted to be used with OSTree.

2 years agoMerge pull request #3116 from jmarrero/bootloader-doc
Eric Curtin [Thu, 14 Dec 2023 22:05:10 +0000 (22:05 +0000)]
Merge pull request #3116 from jmarrero/bootloader-doc

doc: Add section about ostree and bootloaders

2 years agozipl: Convert to a data input stream
Colin Walters [Thu, 14 Dec 2023 13:06:57 +0000 (08:06 -0500)]
zipl: Convert to a data input stream

This high level reader API avoids all the bugs that were
found in previous patches.

2 years agozipl: NUL terminate buffer we're searching
Colin Walters [Thu, 14 Dec 2023 13:03:01 +0000 (08:03 -0500)]
zipl: NUL terminate buffer we're searching

Found by a static analyzer.

2 years agozipl: Fix error handling for read
Colin Walters [Thu, 14 Dec 2023 13:00:38 +0000 (08:00 -0500)]
zipl: Fix error handling for read

The return value is not errno.

2 years agozipl: Use O_CLOEXEC
Colin Walters [Thu, 14 Dec 2023 12:57:43 +0000 (07:57 -0500)]
zipl: Use O_CLOEXEC

On general principle.

2 years agodoc: Add section about ostree and bootloaders
Joseph Marrero [Fri, 8 Dec 2023 15:44:01 +0000 (10:44 -0500)]
doc: Add section about ostree and bootloaders

2 years agoMerge pull request #3117 from cgwalters/doc-root-transient
Joseph Marrero Corchado [Mon, 11 Dec 2023 19:23:33 +0000 (14:23 -0500)]
Merge pull request #3117 from cgwalters/doc-root-transient

Doc root transient

2 years agodocs: Add `var.md`
Colin Walters [Fri, 8 Dec 2023 19:01:13 +0000 (14:01 -0500)]
docs: Add `var.md`

This one overlaps a bit with some other sections...the docs
need a bigger rework, but this is better than we had before.

2 years agoman: Document `root.transient`
Colin Walters [Fri, 8 Dec 2023 18:58:42 +0000 (13:58 -0500)]
man: Document `root.transient`

This one warrants some explanation.

2 years agoMerge pull request #3114 from cgwalters/root-ovl
Eric Curtin [Fri, 8 Dec 2023 14:02:56 +0000 (14:02 +0000)]
Merge pull request #3114 from cgwalters/root-ovl

prepare-root: Add support for root.transient

2 years agoprepare-root: Add support for root.transient
Colin Walters [Thu, 7 Dec 2023 15:21:05 +0000 (10:21 -0500)]
prepare-root: Add support for root.transient

Closes: https://github.com/ostreedev/ostree/issues/3113
It'd greatly improve compatibility with things like RPMs that install
in `/opt` if we supported a full "original docker" style model where
`/` is a transient overlayfs.  We'd still keep our semantics for `/etc`
and `/var` by default, but e.g. we'd stop recommending
`/opt` :arrow_right: `/var/opt`, in this model,
so `/opt` would be on the overlayfs.

Note this all aligns with composefs, where we'd actually be making
`/` a *read-only* overlayfs by default; it'd be really nice of course
to *implement* this by just making the composefs overlayfs writable,
but I am not sure we can hard require composefs for this right now.

So this change adds support for `root.transient = true`
in `/usr/lib/ostree/prepare-root.conf`.

The major downside is that people could be surprised if files they
write to e.g. `/opt` don't persist across upgrades.  But, that's
already again how it works since Docker started.

Note as part of the implementation of this, we need to add a whole
new "backing" directory distinct from the deployment directories.

(Tangentially related to this, it's tempting to switch to always
 using a *read-only* overlay mount by default.

2 years agoprepare-root: Add an autofree
Colin Walters [Thu, 7 Dec 2023 15:03:04 +0000 (10:03 -0500)]
prepare-root: Add an autofree

This doesn't matter at all, but I just noticed this while working
on the code.

2 years agosysroot: Drop unused prototype
Colin Walters [Thu, 7 Dec 2023 14:58:59 +0000 (09:58 -0500)]
sysroot: Drop unused prototype

This function doesn't exist anymore.

2 years agoMerge pull request #3112 from leonheldattoradex/main
Colin Walters [Thu, 7 Dec 2023 14:48:22 +0000 (09:48 -0500)]
Merge pull request #3112 from leonheldattoradex/main

Update Torizon information

2 years agoUpdate Torizon information
Leonardo Held [Thu, 7 Dec 2023 13:08:16 +0000 (10:08 -0300)]
Update Torizon information

TorizonCore became Torizon OS and Torizon OTA is now Torizon Cloud.

Signed-off-by: Leonardo Held <leonardo.held@toradex.com>
2 years agoMerge pull request #3111 from cgwalters/release
Joseph Marrero Corchado [Wed, 6 Dec 2023 02:52:21 +0000 (21:52 -0500)]
Merge pull request #3111 from cgwalters/release

Release 2023.8

2 years agoconfigure: post-release version bump
Colin Walters [Mon, 4 Dec 2023 23:29:13 +0000 (18:29 -0500)]
configure: post-release version bump

2 years agoRelease 2023.8
Colin Walters [Mon, 4 Dec 2023 23:28:32 +0000 (18:28 -0500)]
Release 2023.8

2 years agoMerge pull request #3106 from cgwalters/commit-reflink
Colin Walters [Tue, 5 Dec 2023 18:36:00 +0000 (13:36 -0500)]
Merge pull request #3106 from cgwalters/commit-reflink

commit: Try reflinks for local commits by default

2 years agocommit: Try reflinks for local commits by default
Colin Walters [Sat, 2 Dec 2023 20:48:12 +0000 (15:48 -0500)]
commit: Try reflinks for local commits by default

I think we originally used to do this, but at some point in a
code refactoring, this optimization got lost.

It's a quite important optimization for the case of writing content
generated by an external system into an ostree repository.

2 years agoMerge pull request #3105 from cgwalters/sysroot-borrow-fd
Joseph Marrero Corchado [Mon, 4 Dec 2023 23:22:50 +0000 (18:22 -0500)]
Merge pull request #3105 from cgwalters/sysroot-borrow-fd

sysroot: Add a method to borrow sysroot fd

2 years agoMerge pull request #3107 from cgwalters/drop-userxattr-test
Colin Walters [Mon, 4 Dec 2023 18:14:07 +0000 (13:14 -0500)]
Merge pull request #3107 from cgwalters/drop-userxattr-test

tests: Drop bare-user on tmpfs negative test

2 years agotests: Drop bare-user on tmpfs negative test
Colin Walters [Sun, 3 Dec 2023 14:32:36 +0000 (09:32 -0500)]
tests: Drop bare-user on tmpfs negative test

As of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2daf18a7884dc03d5164ab9c7dc3f2ea70638469
the restriction is lifted, FINALLY.

2 years agoMerge pull request #3104 from cgwalters/s390x-target
Colin Walters [Fri, 1 Dec 2023 21:21:34 +0000 (16:21 -0500)]
Merge pull request #3104 from cgwalters/s390x-target

bootloader/zipl: Run in target deployment as container if needed

2 years agobootloader/zipl: Run in target deployment as container if needed
Colin Walters [Thu, 30 Nov 2023 23:16:33 +0000 (18:16 -0500)]
bootloader/zipl: Run in target deployment as container if needed

xref https://issues.redhat.com/browse/MGMT-16303

Basically the OCP Assisted installer has now grown code
to try to do OS updates offline post-install, and this means
we need to handle the case of running zipl from the target
root.

2 years agosysroot: Expose deployment runner outside of selinux
Colin Walters [Fri, 1 Dec 2023 20:05:40 +0000 (15:05 -0500)]
sysroot: Expose deployment runner outside of selinux

We will use it in e.g. s390x zipl backend.

2 years agoMerge pull request #3103 from cgwalters/tmpfiles-factory-var
Joseph Marrero Corchado [Fri, 1 Dec 2023 19:46:39 +0000 (14:46 -0500)]
Merge pull request #3103 from cgwalters/tmpfiles-factory-var

tmpfiles: Copy `/usr/share/factory/var` to `/var`

2 years agosysroot: Add a method to borrow sysroot fd
Colin Walters [Fri, 1 Dec 2023 19:35:41 +0000 (14:35 -0500)]
sysroot: Add a method to borrow sysroot fd

For the same reason we have this method on `Repo`.

2 years agosysroot: Support specifying bwrap arguments
Colin Walters [Fri, 1 Dec 2023 13:14:15 +0000 (08:14 -0500)]
sysroot: Support specifying bwrap arguments

Prep for use with zipl.

2 years agosysroot: Expose deployment container executor internally
Colin Walters [Thu, 30 Nov 2023 16:12:55 +0000 (11:12 -0500)]
sysroot: Expose deployment container executor internally

Prep for using this for zipl.

2 years agotmpfiles: Copy `/usr/share/factory/var` to `/var`
Colin Walters [Thu, 30 Nov 2023 20:33:42 +0000 (15:33 -0500)]
tmpfiles: Copy `/usr/share/factory/var` to `/var`

This is a pattern we want to encourage.  It's honestly just
way simpler than what rpm-ostree is doing today in auto-synthesizing
individual tmpfiles.d snippets.

2 years agoMerge pull request #3102 from cgwalters/deploy-cleanup-run
Jonathan Lebon [Thu, 30 Nov 2023 22:34:29 +0000 (17:34 -0500)]
Merge pull request #3102 from cgwalters/deploy-cleanup-run

2 years agosysroot/deploy: Drop unnecessary g_ptr_array_free
Colin Walters [Thu, 30 Nov 2023 15:26:32 +0000 (10:26 -0500)]
sysroot/deploy: Drop unnecessary g_ptr_array_free

We can just reference the pdata, and autoptr the array.

2 years agodeploy: Use NULL terminated strv
Colin Walters [Thu, 30 Nov 2023 15:25:12 +0000 (10:25 -0500)]
deploy: Use NULL terminated strv

This makes the code simpler and avoids the need
to keep the string array and length in sync.  Prep for
further callers.

2 years agoMerge pull request #3100 from cgwalters/misc-finalization
Jonathan Lebon [Wed, 29 Nov 2023 19:10:22 +0000 (14:10 -0500)]
Merge pull request #3100 from cgwalters/misc-finalization

2 years agotests: Add a dedicated finalization test
Colin Walters [Mon, 27 Nov 2023 20:34:20 +0000 (15:34 -0500)]
tests: Add a dedicated finalization test

This one covers `admin lock-finalization --unlock`.

2 years agoMerge pull request #3101 from cgwalters/drop-redundant-includes
Joseph Marrero Corchado [Tue, 28 Nov 2023 02:28:43 +0000 (21:28 -0500)]
Merge pull request #3101 from cgwalters/drop-redundant-includes

main: Drop some redundant includes of `ot-main.h`

2 years agomain: Drop some redundant includes of `ot-main.h`
Colin Walters [Tue, 28 Nov 2023 01:08:43 +0000 (20:08 -0500)]
main: Drop some redundant includes of `ot-main.h`

When backporting a patch recently we hit a non-obvious
dependency on another fix for `ot-main.h` includes.  Clean
this up a bit by dropping the redundant includes.

2 years agoman: Two finalization fixes
Colin Walters [Mon, 27 Nov 2023 18:50:07 +0000 (13:50 -0500)]
man: Two finalization fixes

From PR review.

2 years agoMerge pull request #3090 from cgwalters/stabilize-locking
Colin Walters [Mon, 27 Nov 2023 18:48:59 +0000 (13:48 -0500)]
Merge pull request #3090 from cgwalters/stabilize-locking

sysroot: Stabilize deployment finalization, add API

2 years agosysroot: Stabilize deployment finalization, add API and CLI
Colin Walters [Wed, 8 Nov 2023 22:19:19 +0000 (17:19 -0500)]
sysroot: Stabilize deployment finalization, add API and CLI

It's about time we do this; deployment finalization locking
is a useful feature.  An absolutely key thing here is that
we've slowly been moving towards the deployments as the primary
"source of truth".

Specifically in bootc for example, we will GC container images
not referenced by a deployment.

This is then neecessary to support a "pull but don't apply automatically" model.

This stabilizes the existing `ostree admin deploy --lock-finalization`
CLI, and adds a new `ostree admin unlock-finalization`.

We still check the old lock file path, but there's a new boolean
value as part of the staged deployment data which is intended
to be the source of truth in the future.  At some point then we
can drop the rpm-ostree lockfile handling.

Closes: https://github.com/ostreedev/ostree/issues/3025
2 years agostatus: Add error prefix for gpg verification
Colin Walters [Mon, 27 Nov 2023 15:54:18 +0000 (10:54 -0500)]
status: Add error prefix for gpg verification

It's helpful to see which deployment has an error.

2 years agotests: Turn off gpg verification for dev builds
Colin Walters [Mon, 27 Nov 2023 15:59:04 +0000 (10:59 -0500)]
tests: Turn off gpg verification for dev builds

Right now `ostree admin status` errors out in this case, but
`rpm-ostree status` doesn't.  The former behavior is probably
more of a bug, work around it for now.

2 years agoMerge pull request #3099 from markmc/man-sysroot-readonly
Colin Walters [Mon, 27 Nov 2023 13:39:35 +0000 (08:39 -0500)]
Merge pull request #3099 from markmc/man-sysroot-readonly

man: improve sysroot.readonly docs

2 years agoman: improve sysroot.readonly docs
Mark McLoughlin [Fri, 24 Nov 2023 14:27:11 +0000 (14:27 +0000)]
man: improve sysroot.readonly docs

The explanation of sysroot.readonly is a little confusing - we say
that "everything else is mounted read-only" but it's perhaps clearer
to say /sysroot is mounted read-only.

Also note that read-only is the default with composefs.

Finally, document the option in ostree.repo-config even though it is
now considered legacy - as of commit 22b8e4f9 (#2930) - it is still
commonly seen in repo configs, so users will look to understand
what it means.

2 years agoMerge pull request #3098 from jlebon/pr/abort-concurrent
Jonathan Lebon [Tue, 21 Nov 2023 22:18:17 +0000 (17:18 -0500)]
Merge pull request #3098 from jlebon/pr/abort-concurrent

2 years agoci: cancel previous build on PR update
Jonathan Lebon [Tue, 21 Nov 2023 20:31:38 +0000 (15:31 -0500)]
ci: cancel previous build on PR update

This is an easy way to save CI resources; when a PR is updated, abort
any previous build for that PR to focus on testing the latest push.

2 years agoMerge pull request #3097 from cgwalters/symbol-cleanups
Colin Walters [Tue, 21 Nov 2023 13:34:32 +0000 (08:34 -0500)]
Merge pull request #3097 from cgwalters/symbol-cleanups

Symbol cleanups

2 years agolib: Don't hardcode year in sample symver section
Colin Walters [Mon, 20 Nov 2023 14:47:40 +0000 (09:47 -0500)]
lib: Don't hardcode year in sample symver section

The 2021 was misleading.

2 years agodevel: Fix symbol versioning number
Colin Walters [Mon, 20 Nov 2023 14:45:39 +0000 (09:45 -0500)]
devel: Fix symbol versioning number

The .11 was wrong.

2 years agoMerge pull request #3095 from alexlarsson/fix-post-copy-symlinks
Colin Walters [Tue, 14 Nov 2023 22:40:08 +0000 (17:40 -0500)]
Merge pull request #3095 from alexlarsson/fix-post-copy-symlinks

Fix admin post-copy handling of symlinks

2 years agoFix admin post-copy handling of symlinks
Alexander Larsson [Tue, 14 Nov 2023 21:36:58 +0000 (22:36 +0100)]
Fix admin post-copy handling of symlinks

The code to enable fs-verity on an object file was failing with ENOENT
for symlink objects.

2 years agoMerge pull request #3094 from alexlarsson/admin-deploy-post-copy
Colin Walters [Tue, 14 Nov 2023 14:01:41 +0000 (09:01 -0500)]
Merge pull request #3094 from alexlarsson/admin-deploy-post-copy

Add `ostree admin post-copy` command

2 years agoAdd `ostree admin post-copy` command
Alexander Larsson [Mon, 13 Nov 2023 16:33:57 +0000 (17:33 +0100)]
Add `ostree admin post-copy` command

This command will apply fs-verity on all objects that need it and
needs to be called when an ostree deployment has been copied on a
file-by-file basis, which would loose information such as fs-verity.

This is needed by osbuild which works by creating the final image in a
rootfs, and then separately copying that rootfs file-by-file to a
loopback mounted filesystem image.

2 years agoMerge pull request #3091 from cgwalters/fix-soup3
Eric Curtin [Fri, 10 Nov 2023 16:39:13 +0000 (16:39 +0000)]
Merge pull request #3091 from cgwalters/fix-soup3

build-sys: Enable libsoup3 by default if installed

2 years agounlock: Don't pass options again to overlayfs
Colin Walters [Fri, 10 Nov 2023 01:53:52 +0000 (20:53 -0500)]
unlock: Don't pass options again to overlayfs

There seems to be a tricky regression here with the util-linux
support for the new mount API, plus overlays support for it.

```
[2023-11-09T21:05:30.633Z] Nov 09 21:05:26 qemu0 kola-runext-unlock-transient.sh[2108]: + unshare -m -- /bin/sh -c 'mount -o remount,rw /usr && echo hello from transient unlock >/usr/share/writable-usr-test'
[2023-11-09T21:05:30.633Z] Nov 09 21:05:26 qemu0 kola-runext-unlock-transient.sh[2148]: mount: /usr: mount point not mounted or bad option.
[2023-11-09T21:05:30.633Z] Nov 09 21:05:26 qemu0 kola-runext-unlock-transient.sh[2148]:        dmesg(1) may have more information after failed mount system call.
```

OK this seems related to the new mount API support in util-linux and overlayfs.  From a strace:

```
2095  open_tree(AT_FDCWD, "/usr", OPEN_TREE_CLOEXEC) = 3
2095  mount_setattr(-1, NULL, 0, NULL, 0) = -1 EINVAL (Invalid argument)
...
2095  fspick(3, "", FSPICK_NO_AUTOMOUNT|FSPICK_EMPTY_PATH) = 4
2095  fsconfig(4, FSCONFIG_SET_FLAG, "seclabel", NULL, 0) = 0
2095  fsconfig(4, FSCONFIG_SET_STRING, "lowerdir", "usr", 0) = -1 EINVAL (Invalid argument)
```

I think the core problem here is it's trying to reconfigure the mount with existing options,
but in the new mount namespace we can't see the lowerdir.

Here we really really just want to remount writable.  Telling
util-linux to not pass existing options fixes it.

2 years agoMerge pull request #3093 from cgwalters/rust-alias-stateroot
Colin Walters [Thu, 9 Nov 2023 20:21:47 +0000 (15:21 -0500)]
Merge pull request #3093 from cgwalters/rust-alias-stateroot

rust: Add a `stateroot()` alias in the Rust bindings

2 years agotests: Work around systemd regression for boot id parsing
Colin Walters [Thu, 9 Nov 2023 19:08:41 +0000 (14:08 -0500)]
tests: Work around systemd regression for boot id parsing

cc https://github.com/systemd/systemd/issues/29275

2 years agorust: Add a `stateroot()` alias in the Rust bindings
Colin Walters [Thu, 9 Nov 2023 19:53:53 +0000 (14:53 -0500)]
rust: Add a `stateroot()` alias in the Rust bindings

Easy to do here, super annoying in C.

2 years agobuild-sys: Enable libsoup3 by default if installed
Colin Walters [Thu, 9 Nov 2023 00:58:27 +0000 (19:58 -0500)]
build-sys: Enable libsoup3 by default if installed

In f39 we switched to libsoup3 by default; this ensures our CI
picks that up automatically so we still have ostree-trivial-httpd.

2 years agoMerge pull request #3089 from cgwalters/fix-undeploy-parsing
Colin Walters [Thu, 9 Nov 2023 00:59:31 +0000 (19:59 -0500)]
Merge pull request #3089 from cgwalters/fix-undeploy-parsing

undeploy: Parse integer more properly

2 years agoundeploy: Parse integer more properly
Colin Walters [Wed, 8 Nov 2023 21:15:01 +0000 (16:15 -0500)]
undeploy: Parse integer more properly

`atoi` doesn't offer any error checking.

Closes: https://github.com/ostreedev/ostree/issues/3088
2 years agoMerge pull request #3080 from nikita-dubrovskii/s390x_secure_boot
Colin Walters [Tue, 7 Nov 2023 21:42:07 +0000 (16:42 -0500)]
Merge pull request #3080 from nikita-dubrovskii/s390x_secure_boot

lib/bootloader-zipl: Check for Secure Boot before zipl

2 years agolib/bootloader-zipl: Check for Secure Boot before zipl
Nikita Dubrovskii [Tue, 17 Oct 2023 14:10:34 +0000 (16:10 +0200)]
lib/bootloader-zipl: Check for Secure Boot before zipl

2 years agoMerge pull request #3085 from cgwalters/s390x-units
Jonathan Lebon [Tue, 24 Oct 2023 20:40:12 +0000 (16:40 -0400)]
Merge pull request #3085 from cgwalters/s390x-units

2 years agobootloader/zipl: No-op if run as non-root
Colin Walters [Tue, 24 Oct 2023 14:40:51 +0000 (10:40 -0400)]
bootloader/zipl: No-op if run as non-root

Closes: https://github.com/ostreedev/ostree/issues/3084
Not the most elegant fix but should get the job done.

2 years agoMerge pull request #3083 from cgwalters/release
Colin Walters [Fri, 20 Oct 2023 14:56:55 +0000 (10:56 -0400)]
Merge pull request #3083 from cgwalters/release

Release 2023.7

2 years agoconfigure: post-release version bump
Colin Walters [Fri, 20 Oct 2023 13:26:09 +0000 (09:26 -0400)]
configure: post-release version bump

2 years agoRelease 2023.7
Colin Walters [Fri, 20 Oct 2023 13:24:56 +0000 (09:24 -0400)]
Release 2023.7