Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add concept of state overlays #3120

Merged
merged 2 commits into from
Jan 11, 2024
Merged

Commits on Jan 10, 2024

  1. Add concept of state overlays

    In the OSTree model, executables go in `/usr`, state in `/var` and
    configuration in `/etc`. Software that lives in `/opt` however messes
    this up because it often mixes code *and* state, making it harder to
    manage.
    
    More generally, it's sometimes useful to have the OSTree commit contain
    code under a certain path, but still allow that path to be writable by
    software and the sysadmin at runtime (`/usr/local` is another instance).
    
    Add the concept of state overlays. A state overlay is an overlayfs
    mount whose upper directory, which contains unmanaged state, is carried
    forward on top of a lower directory, containing OSTree-managed files.
    
    In the example of `/usr/local`, OSTree commits can ship content there,
    all while allowing users to e.g. add scripts in `/usr/local/bin` when
    booted into that commit.
    
    Some reconciliation logic is executed whenever the base is updated so
    that newer files in the base are never shadowed by a copied up version
    in the upper directory. This matches RPM semantics when upgrading
    packages whose files may have been modified.
    
    For ease of integration, this is exposed as a systemd template unit which
    any downstream distro/user can enable. The instance name is the mountpath
    in escaped systemd path notation (e.g.
    `ostree-state-overlay@usr-local.service`).
    
    See discussions in ostreedev#3113 for
    more details.
    jlebon committed Jan 10, 2024
    Configuration menu
    Copy the full SHA
    92b1a27 View commit details
    Browse the repository at this point in the history
  2. build(deps): bump libglnx from aff1eea to b415d046

    Bumps libglnx from `aff1eea` to `b415d046`.
    
    For https://gitlab.gnome.org/GNOME/libglnx/-/merge_requests/52.
    
    Update submodule: libglnx
    jlebon committed Jan 10, 2024
    Configuration menu
    Copy the full SHA
    e233d02 View commit details
    Browse the repository at this point in the history