ostree.git
2 years agosysroot: Promote the "early prune" behavior to default
Colin Walters [Thu, 24 Aug 2023 14:00:13 +0000 (10:00 -0400)]
sysroot: Promote the "early prune" behavior to default

I think we have enough testing for this, let's default it to
on, and change the variable to allow opt-out in case it does
introduce a regression.

2 years agoMerge pull request #3005 from cgwalters/release
Colin Walters [Fri, 25 Aug 2023 15:11:17 +0000 (11:11 -0400)]
Merge pull request #3005 from cgwalters/release

Release

2 years agoconfigure: post-release version bump
Colin Walters [Wed, 23 Aug 2023 21:34:33 +0000 (17:34 -0400)]
configure: post-release version bump

2 years agoRelease 2023.6
Colin Walters [Wed, 23 Aug 2023 21:33:27 +0000 (17:33 -0400)]
Release 2023.6

2 years agoMerge pull request #3010 from cgwalters/more-composefs-fixes
Joseph Marrero Corchado [Fri, 25 Aug 2023 01:13:07 +0000 (21:13 -0400)]
Merge pull request #3010 from cgwalters/more-composefs-fixes

build-sys: Really fix composefs check

2 years agobuild-sys: Really fix composefs check
Colin Walters [Thu, 24 Aug 2023 23:48:22 +0000 (19:48 -0400)]
build-sys: Really fix composefs check

The ordering of the includes apparently matters...and I didn't
actually check that the previous change enables composefs on c9s.
But I did now.  For reals.

While we have the patient open, I switched to `AC_LANG_PROGRAM`
because I originally thought the bug had something to do with that.
As far as I understand, more cleanly separating the includes
from the injected body text is a useful thing in `AC_LANG_PROGRAM`.

2 years agoMerge pull request #3009 from cgwalters/c9s-ci
Colin Walters [Thu, 24 Aug 2023 23:38:22 +0000 (19:38 -0400)]
Merge pull request #3009 from cgwalters/c9s-ci

C9s CI && composefs build detection fix

2 years agoMerge pull request #3007 from cgwalters/optin-new-bootloader-naming
Joseph Marrero Corchado [Thu, 24 Aug 2023 22:01:26 +0000 (18:01 -0400)]
Merge pull request #3007 from cgwalters/optin-new-bootloader-naming

deploy: Add bootloader-naming-2 opt-in

2 years agobuild-sys: Look for both linux/mount.h and sys/mount.h
Colin Walters [Thu, 24 Aug 2023 21:24:29 +0000 (17:24 -0400)]
build-sys: Look for both linux/mount.h and sys/mount.h

Since that's what composefs uses.

2 years agoci: Add c9s build
Colin Walters [Thu, 24 Aug 2023 21:21:07 +0000 (17:21 -0400)]
ci: Add c9s build

Since it's an active target of this project.

2 years agoMerge pull request #3008 from ostreedev/maybe_ostree
Colin Walters [Thu, 24 Aug 2023 15:45:22 +0000 (11:45 -0400)]
Merge pull request #3008 from ostreedev/maybe_ostree

prepare-root: If composefs is configured as "maybe" don't fail

2 years agoprepare-root: If composefs is configured as "maybe" don't fail
Eric Curtin [Thu, 24 Aug 2023 14:20:25 +0000 (15:20 +0100)]
prepare-root: If composefs is configured as "maybe" don't fail

If composefs is configured as "maybe", we should continue even if
composefs support is not built in.

2 years agodeploy: Add bootloader-naming-2 opt-init
Colin Walters [Thu, 24 Aug 2023 13:40:54 +0000 (09:40 -0400)]
deploy: Add bootloader-naming-2 opt-init

I've verified that this fixes compatibility with GRUB, which
parses the filename:
https://github.com/ostreedev/ostree/issues/2961

However, out of a large degree of conservatism I've made this
an opt-in behavior for now.

My plan is to test it out in the FCOS development streams first.

2 years agoMerge pull request #3003 from cgwalters/prepare-root-oscore-and-units
Eric Curtin [Thu, 24 Aug 2023 08:59:46 +0000 (09:59 +0100)]
Merge pull request #3003 from cgwalters/prepare-root-oscore-and-units

Move prepare-root karg helpers into otcore, add unit tests

2 years agoMove prepare-root karg helpers into otcore, add unit tests
Colin Walters [Wed, 23 Aug 2023 20:06:23 +0000 (16:06 -0400)]
Move prepare-root karg helpers into otcore, add unit tests

Add long overdue unit testing coverage for this, which
at least slightly closes out the android boot CI gap.

Actually, this *copies* the karg parsing code into otcore because
it now uses glib, which we're not yet using in the static
prepare-root.  It's pretty tempting to drop support for the
static prepare root entirely.  But for now we'll live with some
code duplication.

2 years agoMerge pull request #2997 from cgwalters/test-cleanups-1
Joseph Marrero Corchado [Wed, 23 Aug 2023 14:38:16 +0000 (10:38 -0400)]
Merge pull request #2997 from cgwalters/test-cleanups-1

tests/destructive: Port more to xshell

2 years agoMerge pull request #2999 from cgwalters/add-oscore-units
Joseph Marrero Corchado [Wed, 23 Aug 2023 14:37:48 +0000 (10:37 -0400)]
Merge pull request #2999 from cgwalters/add-oscore-units

tests: Add otcore unit tests

2 years agoMerge pull request #3001 from cgwalters/misc-c99-style-4
Eric Curtin [Tue, 22 Aug 2023 23:06:14 +0000 (00:06 +0100)]
Merge pull request #3001 from cgwalters/misc-c99-style-4

Misc c99 style 4

2 years agocmd/grub2-generate: Port to C99 style
Colin Walters [Tue, 22 Aug 2023 21:51:33 +0000 (17:51 -0400)]
cmd/grub2-generate: Port to C99 style

Just keeping up momentum.

2 years agocmd/init: Port to C99 style
Colin Walters [Tue, 22 Aug 2023 21:49:28 +0000 (17:49 -0400)]
cmd/init: Port to C99 style

Just keeping up momentum.

2 years agoMerge pull request #3000 from cgwalters/test-inst-update
Joseph Marrero Corchado [Tue, 22 Aug 2023 20:56:46 +0000 (16:56 -0400)]
Merge pull request #3000 from cgwalters/test-inst-update

tests/inst: Update to latest ostree-ext

2 years agoMerge pull request #2995 from ostreedev/dependabot/submodules/composefs-1aed878
Colin Walters [Tue, 22 Aug 2023 20:41:00 +0000 (16:41 -0400)]
Merge pull request #2995 from ostreedev/dependabot/submodules/composefs-1aed878

build(deps): bump composefs from `a6e827d` to `1aed878`

2 years agoMerge pull request #2998 from cgwalters/disable-composefs-too-old
Eric Curtin [Tue, 22 Aug 2023 19:08:26 +0000 (20:08 +0100)]
Merge pull request #2998 from cgwalters/disable-composefs-too-old

build-sys: Disable composefs on too-old Linux headers

2 years agotests/inst: Update to latest ostree-ext
Colin Walters [Tue, 22 Aug 2023 18:23:56 +0000 (14:23 -0400)]
tests/inst: Update to latest ostree-ext

(And glib, etc.)

2 years agoMerge pull request #2975 from ostreedev/androidboot-single-slot-mode
Colin Walters [Tue, 22 Aug 2023 18:11:50 +0000 (14:11 -0400)]
Merge pull request #2975 from ostreedev/androidboot-single-slot-mode

prepare-root: On a non-A/B androidboot system, boot system slot a

2 years agotests: Add otcore unit tests
Colin Walters [Tue, 22 Aug 2023 17:04:12 +0000 (13:04 -0400)]
tests: Add otcore unit tests

This just stubs out the basic infrastructure, to be expanded upon.

2 years agobuild-sys: Disable composefs on too-old Linux headers
Colin Walters [Tue, 22 Aug 2023 15:36:04 +0000 (11:36 -0400)]
build-sys: Disable composefs on too-old Linux headers

This should fix the build with Google OSS-fuzz which currently
uses an old Ubuntu.

2 years agoprepare-root: Changes made to find_proc_cmdline_key
Eric Curtin [Tue, 22 Aug 2023 12:11:30 +0000 (13:11 +0100)]
prepare-root: Changes made to find_proc_cmdline_key

Used strspn based on feedback from similar function.

2 years agoprepare-root: On a non-A/B androidboot system, boot system slot a
Eric Curtin [Tue, 22 Aug 2023 12:04:03 +0000 (13:04 +0100)]
prepare-root: On a non-A/B androidboot system, boot system slot a

Sometimes android bootloaders boot in a nonab way:

  https://source.android.com/docs/core/ota/nonab

In this case, "androidboot." kargs are present but not
"androidboot.slot_suffix" specifically.

In this case, rather than getting stuck in a partially booted
environment, boot system slot a.

2 years agoMerge pull request #2996 from cgwalters/misc-c99-style-3
Eric Curtin [Tue, 22 Aug 2023 15:08:10 +0000 (16:08 +0100)]
Merge pull request #2996 from cgwalters/misc-c99-style-3

cli/set-origin: Port to C99 style

2 years agotests/destructive: Port more to xshell
Colin Walters [Tue, 22 Aug 2023 13:49:16 +0000 (09:49 -0400)]
tests/destructive: Port more to xshell

Just keeping up momentum.

2 years agocli/set-origin: Port to C99 style
Colin Walters [Tue, 22 Aug 2023 13:44:39 +0000 (09:44 -0400)]
cli/set-origin: Port to C99 style

Just keeping up momentum.

2 years agobuild(deps): bump composefs from `a6e827d` to `1aed878`
dependabot[bot] [Tue, 22 Aug 2023 12:59:46 +0000 (12:59 +0000)]
build(deps): bump composefs from `a6e827d` to `1aed878`

Bumps [composefs](https://github.com/containers/composefs) from `a6e827d` to `1aed878`.
- [Release notes](https://github.com/containers/composefs/releases)
- [Commits](https://github.com/containers/composefs/compare/a6e827df2dbebb65d6d19a7211f2fb4a61d989ac...1aed8781d6ce617234175d5d3b0458f91a6e38f3)

---
updated-dependencies:
- dependency-name: composefs
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agoMerge pull request #2993 from cgwalters/misc-c99-style-2
Eric Curtin [Fri, 18 Aug 2023 21:12:24 +0000 (22:12 +0100)]
Merge pull request #2993 from cgwalters/misc-c99-style-2

Misc c99 style 2

2 years agocheckout: Port to C99 style
Colin Walters [Fri, 18 Aug 2023 01:50:07 +0000 (21:50 -0400)]
checkout: Port to C99 style

Just keeping up momentum.

2 years agoMerge pull request #2990 from cgwalters/init-is-stateroot
Colin Walters [Fri, 18 Aug 2023 12:49:31 +0000 (08:49 -0400)]
Merge pull request #2990 from cgwalters/init-is-stateroot

Two s/osname/stateroot/ patches

2 years agolzma: Port to C99 style
Colin Walters [Fri, 18 Aug 2023 01:49:33 +0000 (21:49 -0400)]
lzma: Port to C99 style

Just keeping up momentum.

2 years agoMerge pull request #2991 from cgwalters/misc-c99-style
Eric Curtin [Thu, 17 Aug 2023 23:19:21 +0000 (00:19 +0100)]
Merge pull request #2991 from cgwalters/misc-c99-style

Misc c99 style

2 years agoremote-add: Port to c99 style
Colin Walters [Thu, 17 Aug 2023 20:59:41 +0000 (16:59 -0400)]
remote-add: Port to c99 style

- Drop `goto out`
- Use declare-and-initialize

2 years agoadmin: Port to c99 style
Colin Walters [Thu, 17 Aug 2023 20:59:41 +0000 (16:59 -0400)]
admin: Port to c99 style

- Drop `goto out`
- Use declare-and-initialize

2 years agoadmin-deploy: Add `--stateroot` as alias for `--os`
Colin Walters [Thu, 17 Aug 2023 20:48:05 +0000 (16:48 -0400)]
admin-deploy: Add `--stateroot` as alias for `--os`

To further help deprecate the confusing "osname" terminology.

2 years agoAdd `ostree admin stateroot-init` as alias for `os-init`
Colin Walters [Thu, 17 Aug 2023 20:46:02 +0000 (16:46 -0400)]
Add `ostree admin stateroot-init` as alias for `os-init`

To further help deprecate the confusing "osname" terminology.

2 years agoMerge pull request #2989 from cgwalters/lock-timeout-longer
Eric Curtin [Thu, 17 Aug 2023 13:38:30 +0000 (14:38 +0100)]
Merge pull request #2989 from cgwalters/lock-timeout-longer

repo: Bump lock timeout to 5 minutes

2 years agoMerge pull request #2973 from ostreedev/dependabot/submodules/composefs-a6e827d
Colin Walters [Thu, 17 Aug 2023 13:36:20 +0000 (09:36 -0400)]
Merge pull request #2973 from ostreedev/dependabot/submodules/composefs-a6e827d

build(deps): bump composefs from `1704f82` to `a6e827d`

2 years agorepo: Bump lock timeout to 5 minutes
Colin Walters [Thu, 17 Aug 2023 12:26:29 +0000 (08:26 -0400)]
repo: Bump lock timeout to 5 minutes

And update the doc text to talk about having a timeout at all
by default being a mistake.

Timeouts are really best handled at a higher level; if two processes
are contending for the ostree lock and one is actually frozen,
resolving this is something an admin may want to handle and introspect/debug
instead of having the waiter error out.

Most people using ostree are doing it in a way in which they have
higher level timeouts (e.g. on a container pod).

2 years agoMerge pull request #2988 from cgwalters/prepare-root-binding-key
Eric Curtin [Wed, 16 Aug 2023 22:20:15 +0000 (23:20 +0100)]
Merge pull request #2988 from cgwalters/prepare-root-binding-key

prepare-root: Minor clarifications

2 years agoMerge pull request #2987 from cgwalters/prefix-stage-deploy
Eric Curtin [Wed, 16 Aug 2023 21:37:06 +0000 (22:37 +0100)]
Merge pull request #2987 from cgwalters/prefix-stage-deploy

deploy: Add some error prefixing

2 years agoprepare-root: Minor clarifications
Colin Walters [Wed, 16 Aug 2023 20:54:13 +0000 (16:54 -0400)]
prepare-root: Minor clarifications

No functional changes.

2 years agodeploy: Add some error prefixing
Colin Walters [Wed, 16 Aug 2023 20:16:24 +0000 (16:16 -0400)]
deploy: Add some error prefixing

We saw a bare
`Txn Rebase on <osname> failed: Failed to find kernel in /usr/lib/modules, /usr/lib/ostree-boot or /boot`
which isn't bad, but it'd be better to be a bit more specific.

2 years agoMerge pull request #2985 from cgwalters/cleanup-proc-cmdline
Eric Curtin [Wed, 16 Aug 2023 18:31:35 +0000 (19:31 +0100)]
Merge pull request #2985 from cgwalters/cleanup-proc-cmdline

switchroot,generator: Only read /proc/cmdline once

2 years agoMerge pull request #2984 from alexlarsson/prepare-root-no-raw-key
Colin Walters [Wed, 16 Aug 2023 13:05:39 +0000 (09:05 -0400)]
Merge pull request #2984 from alexlarsson/prepare-root-no-raw-key

prepare-root: Only support base64 formated public key files

2 years agoswitchroot,generator: Only read /proc/cmdline once
Colin Walters [Wed, 16 Aug 2023 13:02:11 +0000 (09:02 -0400)]
switchroot,generator: Only read /proc/cmdline once

Change the helper function to parse an existing cmdline instead
of potentially reading `/proc/cmdline` multiple times.

2 years agoprepare-root: Only support base64 formated public key files
Alexander Larsson [Wed, 16 Aug 2023 08:59:47 +0000 (10:59 +0200)]
prepare-root: Only support base64 formated public key files

I've updated the automotive samples to not use the raw format, so
there is no use anymore to support both formats, as base64 is strictly
better.

2 years agoMerge pull request #2980 from cgwalters/prepare-root-minor
Alexander Larsson [Wed, 16 Aug 2023 08:56:20 +0000 (10:56 +0200)]
Merge pull request #2980 from cgwalters/prepare-root-minor

Prepare root minor

2 years agoprepare-root: Use ptrarray, not linked list
Colin Walters [Mon, 14 Aug 2023 18:36:50 +0000 (14:36 -0400)]
prepare-root: Use ptrarray, not linked list

Linked lists are a data structure with only very obscure
use cases, and this is a classic one where since we're appending
it's O(N^2) behavior.

Also we were leaking the memory.

It's more ergonomic, clearer and efficient to use a ptrarray.

2 years agoprepare-root: Check for empty string, not strlen > 0
Colin Walters [Mon, 14 Aug 2023 18:30:42 +0000 (14:30 -0400)]
prepare-root: Check for empty string, not strlen > 0

No point in doing a full strlen, we can just check the first byte.
Also, invert the conditional using `continue` to avoid another
level of indentation.

2 years agoprepare-root: Use declare-and-initialize
Colin Walters [Mon, 14 Aug 2023 18:27:08 +0000 (14:27 -0400)]
prepare-root: Use declare-and-initialize

This is our default style.

2 years agoMerge pull request #2979 from cgwalters/enabled-discussions
Joseph Marrero Corchado [Mon, 14 Aug 2023 15:47:05 +0000 (11:47 -0400)]
Merge pull request #2979 from cgwalters/enabled-discussions

README.md: Drop dead mailing list, link to GH discussions

2 years agoMerge pull request #2974 from alexlarsson/composefs-config-file
Colin Walters [Mon, 14 Aug 2023 15:46:38 +0000 (11:46 -0400)]
Merge pull request #2974 from alexlarsson/composefs-config-file

Read composefs configuration from initrd instead of commandline

2 years agoREADME.md: Drop dead mailing list, link to GH discussions
Colin Walters [Mon, 14 Aug 2023 13:48:49 +0000 (09:48 -0400)]
README.md: Drop dead mailing list, link to GH discussions

While I resisted taking the next step in binding ourselves
more to GH with discussions...it's way, way better than answering
questions out of band in private (also proprietary) chats.

We haven't been successful in using the GNOME discussion forums.

2 years agoRead composefs configuration from initrd instead of commandline
Alexander Larsson [Tue, 8 Aug 2023 11:16:39 +0000 (13:16 +0200)]
Read composefs configuration from initrd instead of commandline

This drops the `ot-composefs` kernel commandline in favour
of a `[composefs]` section in the `prepare-rootfs.conf` file.

You can set `composefs.enabled` to `signed`, `yes`, `no` or `maybe`,
with `maybe` being the default.

You can also set `composefs.keypath` (or rely on the default
`/etc/ostree/initramfs-root-binding.key`) to point to ed25519 public
keys, one of which which the commit must be signed with, or boot
fails.

The ostree dracut module adds `/etc/ostree/initramfs-root-binding.key`
to the initrd if it exists.

NOTE: This drop the option to define a digest in the commandline.
However, that was currently unused
(i.e. ComposefsConfig.expected_digest was never read).

Additionally it very hard to actually store the composefs digest in
the initrd, as the initrd is typically part of the commit and thus the
composefs. It may be possible to handle this, but lets add it back
when we know exactly how that will work.

2 years agoMerge pull request #2966 from cgwalters/ostree-admin-edit
Eric Curtin [Tue, 8 Aug 2023 13:24:35 +0000 (14:24 +0100)]
Merge pull request #2966 from cgwalters/ostree-admin-edit

Add `admin set-default`

2 years agobuild(deps): bump composefs from `1704f82` to `a6e827d`
dependabot[bot] [Tue, 8 Aug 2023 12:05:10 +0000 (12:05 +0000)]
build(deps): bump composefs from `1704f82` to `a6e827d`

Bumps [composefs](https://github.com/containers/composefs) from `1704f82` to `a6e827d`.
- [Release notes](https://github.com/containers/composefs/releases)
- [Commits](https://github.com/containers/composefs/compare/1704f823db41b1056cabfba51254f8afa8bae41d...a6e827df2dbebb65d6d19a7211f2fb4a61d989ac)

---
updated-dependencies:
- dependency-name: composefs
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agoMerge pull request #2958 from cgwalters/deploy-loosen-etc-usretc
Eric Curtin [Sat, 5 Aug 2023 15:48:28 +0000 (16:48 +0100)]
Merge pull request #2958 from cgwalters/deploy-loosen-etc-usretc

deploy: Support an empty `/etc` and populated `/usr/etc`

2 years agoMerge pull request #2969 from cgwalters/fix-sync-pthreads
Joseph Marrero Corchado [Fri, 4 Aug 2023 15:34:13 +0000 (11:34 -0400)]
Merge pull request #2969 from cgwalters/fix-sync-pthreads

deploy: Fix mutex locking for global sync timeout

2 years agoMerge pull request #2967 from cgwalters/drop-trivial-httpd-entrypoint
Eric Curtin [Fri, 4 Aug 2023 09:07:09 +0000 (10:07 +0100)]
Merge pull request #2967 from cgwalters/drop-trivial-httpd-entrypoint

More fully drop `trivial-httpd` entrypoint

2 years agodeploy: Fix mutex locking for global sync timeout
Colin Walters [Fri, 4 Aug 2023 02:49:48 +0000 (22:49 -0400)]
deploy: Fix mutex locking for global sync timeout

The locking here was always too long - by holding the mutex
during the `sync()` call, it means `g_cond_wait_until()` can
never wake up (because its API requires the mutex to be locked).

Confusingly though of course we do still print the "timed out"
message, and I think that tricked us when we were doing testing
here.

We only need to lock the mutex when we're manipulating shared
state, which basically boils down to the `gboolean success`.

2 years agoMore fully drop `trivial-httpd` entrypoint
Colin Walters [Wed, 2 Aug 2023 15:34:14 +0000 (11:34 -0400)]
More fully drop `trivial-httpd` entrypoint

It's just part of the tests and we should no longer
support `ostree trivial-httpd`.

This is a followup cleanup to previous work.

2 years agoAdd `admin set-default`
Colin Walters [Wed, 2 Aug 2023 15:25:58 +0000 (11:25 -0400)]
Add `admin set-default`

A core underlying primitive in the C library is the ability
to arbitrarily reorder bootloader entries.

Let's expose the basic functionality here with the ability to pick
an arbitrarily deployment for the next boot.

Closes: https://github.com/ostreedev/ostree/issues/2965
2 years agoMerge pull request #2962 from cgwalters/os-init-remount
Eric Curtin [Wed, 2 Aug 2023 19:41:32 +0000 (20:41 +0100)]
Merge pull request #2962 from cgwalters/os-init-remount

os-init: Create a mount namespace

2 years agoos-init: Create a mount namespace
Colin Walters [Tue, 1 Aug 2023 12:58:27 +0000 (08:58 -0400)]
os-init: Create a mount namespace

Today on anything using readonly sysroot `os-init` fails, because
we don't create a mount namespace if the `UNLOCKED` flag is specified
because we assume it's a readonly operation.

Since technically this is a mutation, let's just lock the sysroot
and use the tested path.

2 years agoMerge pull request #2963 from cgwalters/more-gfileinfo-fix
Joseph Marrero Corchado [Wed, 2 Aug 2023 17:44:05 +0000 (13:44 -0400)]
Merge pull request #2963 from cgwalters/more-gfileinfo-fix

composefs: Only call `_get_symlink_target()` on symlinks

2 years agocomposefs: Only call `_get_symlink_target()` on symlinks
Colin Walters [Tue, 1 Aug 2023 21:21:55 +0000 (17:21 -0400)]
composefs: Only call `_get_symlink_target()` on symlinks

This fixes a warning from newer glib that we're now seeing
in the Debian testing CI runs.

2 years agoMerge pull request #2960 from ostreedev/dependabot/submodules/libglnx-c02eb59
Colin Walters [Mon, 31 Jul 2023 15:04:26 +0000 (11:04 -0400)]
Merge pull request #2960 from ostreedev/dependabot/submodules/libglnx-c02eb59

build(deps): bump libglnx from `07e3e49` to `c02eb59`

2 years agobuild(deps): bump libglnx from `07e3e49` to `c02eb59`
dependabot[bot] [Mon, 31 Jul 2023 12:29:54 +0000 (12:29 +0000)]
build(deps): bump libglnx from `07e3e49` to `c02eb59`

Bumps libglnx from `07e3e49` to `c02eb59`.

---
updated-dependencies:
- dependency-name: libglnx
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agoMerge pull request #2957 from cgwalters/transaction-test-suppress-global-sync
Eric Curtin [Mon, 31 Jul 2023 09:55:39 +0000 (10:55 +0100)]
Merge pull request #2957 from cgwalters/transaction-test-suppress-global-sync

tests/destructive: Turn off global sync()

2 years agodeploy: Support an empty `/etc` and populated `/usr/etc`
Colin Walters [Sat, 29 Jul 2023 12:47:47 +0000 (08:47 -0400)]
deploy: Support an empty `/etc` and populated `/usr/etc`

In preparation for support for a transient `/etc`:
https://github.com/ostreedev/ostree/issues/2868
particularly in combination with composefs.

Basically it's just much more elegant if we can directly mount
an overlayfs on the *empty* `etc` directory, using `usr/etc` as
the lower.

In the composefs case, we'd have to mount the composefs overlayfs
itself writable (and call `mkdir`) *just* so we can make that
empty `etc` directory which is ugly.

2 years agotests/destructive: Turn off global sync()
Colin Walters [Fri, 28 Jul 2023 21:54:37 +0000 (17:54 -0400)]
tests/destructive: Turn off global sync()

Let's verify that things work with that off, as they should.

Previously:
https://github.com/ostreedev/ostree/pull/2519/commits/cb731294837736e957ee595ce11ab115277dbb36
"deploy: Add a 5s max timeout on global filesystem sync()"

But we may still have problems even with that, see
https://issues.redhat.com/browse/OCPBUGS-15917
where it might be that even a thread doesn't work because
we're locked in the kernel.

2 years agoMerge pull request #2956 from cgwalters/finalize-more-verbose
Eric Curtin [Fri, 28 Jul 2023 15:16:57 +0000 (16:16 +0100)]
Merge pull request #2956 from cgwalters/finalize-more-verbose

deploy: Be way more verbose about what we're doing

2 years agodeploy: Be way more verbose about what we're doing
Colin Walters [Thu, 27 Jul 2023 18:08:15 +0000 (14:08 -0400)]
deploy: Be way more verbose about what we're doing

This will help us debug bugs like https://issues.redhat.com/browse/OCPBUGS-15917
in the future.

2 years agoMerge pull request #2954 from cgwalters/harden-gvariant-get-data
Eric Curtin [Thu, 27 Jul 2023 14:41:24 +0000 (15:41 +0100)]
Merge pull request #2954 from cgwalters/harden-gvariant-get-data

Harden gvariant get data

2 years agochecksum-utils: Add an assertion that `buf != NULL`
Colin Walters [Wed, 26 Jul 2023 22:05:36 +0000 (18:05 -0400)]
checksum-utils: Add an assertion that `buf != NULL`

Another hardening against https://bugzilla.redhat.com/show_bug.cgi?id=2217401

2 years agocore, switchroot: Harden a bit against `g_variant_get_data() == NULL`
Colin Walters [Wed, 26 Jul 2023 22:04:11 +0000 (18:04 -0400)]
core, switchroot: Harden a bit against `g_variant_get_data() == NULL`

I'm not totally sure this is the cause of
https://bugzilla.redhat.com/show_bug.cgi?id=2217401
but analyzing the code a bit it seems the most likely.

2 years agoMerge pull request #2953 from samcday/patch-1
Eric Curtin [Wed, 26 Jul 2023 14:10:27 +0000 (15:10 +0100)]
Merge pull request #2953 from samcday/patch-1

docs: update boot loader spec link

2 years agoMerge pull request #2930 from cgwalters/prepare-root-config3
Eric Curtin [Wed, 26 Jul 2023 09:17:35 +0000 (10:17 +0100)]
Merge pull request #2930 from cgwalters/prepare-root-config3

prepare-root: Introduce ostree/prepare-root.conf && sysroot.readonly improvements

2 years agodocs: update boot loader spec link
samcday [Tue, 25 Jul 2023 19:42:41 +0000 (21:42 +0200)]
docs: update boot loader spec link

2 years agoMerge pull request #2952 from cgwalters/silence-variant-lookup
Eric Curtin [Tue, 25 Jul 2023 16:36:12 +0000 (17:36 +0100)]
Merge pull request #2952 from cgwalters/silence-variant-lookup

tree-wide: Consistently `(void)g_variant_lookup()`

2 years agotree-wide: Consistently `(void)g_variant_lookup()`
Colin Walters [Tue, 25 Jul 2023 15:17:36 +0000 (11:17 -0400)]
tree-wide: Consistently `(void)g_variant_lookup()`

Coverity warns when we're checking the return value in most-but-not-all
instances.  The code is correct in these instances; we're initializing
the values to defaults.  So add a `(void)` cast like we are doing
in many other places.

2 years agoprepare-root: Don't parse target root when composefs enabled
Colin Walters [Sun, 23 Jul 2023 18:39:04 +0000 (14:39 -0400)]
prepare-root: Don't parse target root when composefs enabled

We shouldn't load anything from the target root filesystem *before*
verifying its integrity if composefs is enabled.

In effect, we want to force composefs users to migrate to
`/usr/lib/ostree/prepare-root.conf` which lives in the initramfs.
(But because we enable sysroot.readonly=true if composefs is enabled
 too, they don't actually need to)

2 years agoprepare-root: Default sysroot.readonly=true if composefs
Colin Walters [Sun, 23 Jul 2023 18:33:51 +0000 (14:33 -0400)]
prepare-root: Default sysroot.readonly=true if composefs

Not because it's logically required or anything, but because
it's just a good idea.

2 years agoprepare-root: Introduce `ostree/prepare-root.conf`
Colin Walters [Fri, 14 Jul 2023 18:31:58 +0000 (14:31 -0400)]
prepare-root: Introduce `ostree/prepare-root.conf`

Using the repository configuration for configuration of this
program was always a bit hacky.

But actually with composefs, we really must validate
the target root *before* we parse anything in it.

Let's add a config file for `ostree-prepare-root` that can live
in the initramfs, which will already have been verified.

In the future we'll also add configuration for composefs here.

We expect OS builders to drop this in `/usr/lib/ostree/prepare-root.conf`,
but system local configuration can live in `/etc`.

2 years agoMerge pull request #2948 from cgwalters/composefs-more-cleanups
Eric Curtin [Tue, 25 Jul 2023 09:25:29 +0000 (10:25 +0100)]
Merge pull request #2948 from cgwalters/composefs-more-cleanups

composefs: Use lowerdir in /run

2 years agoMerge pull request #2951 from cgwalters/errprefix-sysroot
Eric Curtin [Mon, 24 Jul 2023 20:07:28 +0000 (21:07 +0100)]
Merge pull request #2951 from cgwalters/errprefix-sysroot

sysroot: Add a bit more error prefixing

2 years agoMerge pull request #2949 from cgwalters/kargs-cleanup
Eric Curtin [Mon, 24 Jul 2023 20:06:59 +0000 (21:06 +0100)]
Merge pull request #2949 from cgwalters/kargs-cleanup

kernel-args: Move private functions out of public header

2 years agorepo: Clarify when we fail to parse a remote
Colin Walters [Mon, 24 Jul 2023 12:52:49 +0000 (08:52 -0400)]
repo: Clarify when we fail to parse a remote

This would have directly pointed at the failing config file.

2 years agosysroot: Add a bit more error prefixing
Colin Walters [Mon, 24 Jul 2023 12:48:51 +0000 (08:48 -0400)]
sysroot: Add a bit more error prefixing

While an error message I saw was pretty clear, this would
be even more explicit.

2 years agoMerge pull request #2950 from cgwalters/generator-cleanup
Eric Curtin [Mon, 24 Jul 2023 09:52:41 +0000 (10:52 +0100)]
Merge pull request #2950 from cgwalters/generator-cleanup

generator: Some cleanup

2 years agokernel-args: Move private functions out of public header
Colin Walters [Sun, 23 Jul 2023 14:26:30 +0000 (10:26 -0400)]
kernel-args: Move private functions out of public header

External users can't call `_` prefixed APIs, so move them
to a `-private.h`.

2 years agosrc/generator: Move all logic into libostree-1.so
Colin Walters [Sun, 23 Jul 2023 14:47:19 +0000 (10:47 -0400)]
src/generator: Move all logic into libostree-1.so

This pushes down the code for parsing the `ostree=` cmdline
in the generator into code that's part of libostree-1.so.

This is prep for using logic shared in libotcore.la.

But in general it's just cleaner to also keep the binary
entrypoint to just be a trampoline into the C library.

2 years agogenerator: Stop creating `/run/ostree-booted`
Colin Walters [Sun, 23 Jul 2023 14:40:20 +0000 (10:40 -0400)]
generator: Stop creating `/run/ostree-booted`

This must have always been dead code.  We're trying to iterate
towards a place where it's only `ostree-prepare-root.c` which
parses the `ostree=` kernel argument, and canonically sets up
`/run/ostree-booted`.