aboutsummaryrefslogtreecommitdiffstats
path: root/src/repo/deps-lib
Commit message (Collapse)AuthorAgeFilesLines
* Third part of the format-upgrade inclusion: add support in s6-rc-set-installLaurent Bercot41 hours1-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Now that everything is in place, we go for the main thing: add snapshot support to s6-rc-set install. The workflow is: - check the major version of the old db against the current s6-rc - if the old db is up to date, nothing changes - otherwise: + find the snapshot corresponding to the old db + compile it + copy the snapshot db to the bootdir + call s6-rc-format-upgrade on it + atomically switch the bootdb to it. At this point the snapshot is the new bootdb: same as the old db, but with the correct major version. + unconditionally remove the old db + and now we can perform the regular s6-rc-update with the wanted set, since they have the same major. We also add --no-snapshot options to s6-rc-set-commit and s6-rc-set-install, and propagate them in the supporting functions, so users can manually skip all this bloat (and this is important for the initial install). All that remains is cleaning up obsolete snapshots. This will probably go at the end of s6-rc-set-install as well.
* More work on format-upgrade inclusion: real meta-information storageLaurent Bercot4 days1-0/+1
| | | | | | | | | | If a db format upgrade is necessary, we need to compile the snapshot with the new s6-rc-compile. There's data we need to pass to it that isn't stored (options passed when committing the original set), so we store it in the db itself (patching s6-rc-compile). We modify the s6-rc-compile wrappers to pass all this metadata. Next, we will compile the snapshot.
* But this day is not today, so screw it. We gotta keep em separatedLaurent Bercot10 days1-2/+1
|
* Someday I'll figure out dynamic libraries dependencies with rpathLaurent Bercot10 days1-0/+2
|
* First part of the format-upgrade support in repoLaurent Bercot2026-10-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to work across major bumps, we need to add a call to s6-rc-format-upgrade before s6-rc-update in the s6-rc-set-install sequence of commands. s6-rc-format-upgrade only works when the db is exactly the same across s6-rc versions. That means we need to have the source version of the current live set at all times, in order to compile it with the new s6-rc version before upgrading and then updating. So: 1. we take a snapshot of the source version of a set every time we commit. 2. we refuse to install if we don't have the snapshot. 3. we add s6-rc-format-upgrade to the processing chain 4. for cleanup: after installing, we delete all the snapshots of the set except the one that corresponds to the newly installed live set. This commit implements 1: taking the snapshot. It's a regular s6-rc-set-copy, using an internal name. We refactor s6-rc-set-copy and s6-rc-set-delete to have primitives we can use internally. Wait for later commits before using repo, else you'll fill your repository with snapshots that won't get cleaned up. TBD: how to store the s6-rc version in the compiled db. We probably need to add a small file in there.
* Rename "sub" to "prescription"Laurent Bercot2026-01-241-3/+3
|
* Working repo fix that understands pipelinesLaurent Bercot2025-12-201-0/+1
|
* Next batch of fixesLaurent Bercot2025-12-091-0/+3
|
* s6rc_repo_nlto0 replaced with string_index in skalibsLaurent Bercot2025-11-101-1/+0
|
* Separate libs6rcrepoLaurent Bercot2025-10-221-0/+36