Commit ab50a32
committed
composefs: Remove /etc/.updated on deployment initialization and finalization
ostree explicitly unlinks /etc/.updated (and /var/.updated) when
finalizing a new deployment so that systemd ConditionNeedsUpdate=|/etc
services like systemd-sysusers and systemd-tmpfiles always run on the
first boot of that deployment.
The native composefs path was missing this step. initialize_state()
copies /etc from the container image with 'cp -a', which preserves any
/etc/.updated stamp from the build environment. composefs_backend_finalize()
merges /etc into the staged deployment directory but similarly never removes
the stamp.
The consequence is that systemd sees /etc/.updated already present and
concludes /etc needs no update, causing sysusers (and tmpfiles) to be
skipped entirely on the first boot of an upgraded deployment.
Assisted-by: OpenCode (Claude Sonnet 4.6)
Signed-off-by: Colin Walters <walters@verbum.org>1 parent 83a7c9f commit ab50a32
2 files changed
Lines changed: 21 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
118 | 118 | | |
119 | 119 | | |
120 | 120 | | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
121 | 128 | | |
122 | 129 | | |
123 | 130 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
135 | | - | |
| 135 | + | |
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
143 | 154 | | |
144 | | - | |
| 155 | + | |
145 | 156 | | |
146 | 157 | | |
147 | 158 | | |
| |||
0 commit comments