aboutsummaryrefslogtreecommitdiffstats
path: root/src/include
Commit message (Collapse)AuthorAgeFilesLines
* Third part of the format-upgrade inclusion: add support in s6-rc-set-installLaurent Bercot31 hours1-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | 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 Bercot3 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 Bercot9 days2-2/+16
|
* Propagate -L catchall changes to s6-rc-set-commitLaurent Bercot13 days1-2/+2
| | | | | s6-rc-set-install is undergoing changes, it might not work properly. The rest is coming this week.
* Prepare for 0.7.1.0; add major version to every compiled dbLaurent Bercot2026-10-031-0/+3
|
* 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.
* Add -c|--clean option to s6-rc (untested)Laurent Bercot2026-07-092-0/+2
|
* Prepare for 0.7.0.0; lots of changes!Laurent Bercot2026-06-141-2/+2
| | | | | | | | | | | | | | | - s6-rc-bundle deleted. Changing bundles without recompiling is not supported anymore. (It works, but it incentivizes poor workflows; it is better to handle stuff at the source level and recompile when in doubt, that's what s6-frontend does.) - new db format, need to recompile and use s6-rc-format-upgrade on new live db - support for the reload-signal file in service directories - new reload scripts for oneshots (which is why the db format has changed) - new "s6-rc reload" command, calling s6-svc -l on longruns (which makes use of reload-signal, HUP by default) and the reload script on oneshots - the live state now tracks when a service has been explicitly brought up as opposed to by pulled by dependencies. Nothing uses the feature for now but now the tech is there for an auto-stop-if-unneeded feature.
* Rename "sub" to "prescription"Laurent Bercot2026-01-241-5/+5
|
* Working repo fix that understands pipelinesLaurent Bercot2025-12-201-2/+3
|
* Next batch of fixesLaurent Bercot2025-12-091-0/+4
|
* Finish repo documentation; make bootdb configurable; fix installLaurent Bercot2025-10-301-2/+0
|
* Separate libs6rcrepoLaurent Bercot2025-10-222-6/+4
|
* add getserviceflags and use it in fillset; add some docLaurent Bercot2025-10-211-0/+1
|
* Move all string comparison operations into skalibsLaurent Bercot2025-10-091-2/+0
|
* Add s6-rc-set-install, repodefs pageLaurent Bercot2025-10-061-0/+2
|
* Do not delete old store before the sync succeedsLaurent Bercot2025-10-051-1/+1
|
* Add repo/set touching to avoid extra compilesLaurent Bercot2025-10-011-0/+2
|
* Add stores, edit init and syncLaurent Bercot2025-10-011-0/+2
|
* More progress: updated sync, nominal fixLaurent Bercot2025-09-242-1/+5
|
* Add s6rc_repo_fixsetLaurent Bercot2025-09-221-2/+6
|
* Support bundles in changestate, various refactorsLaurent Bercot2025-09-182-4/+6
|
* Add s6-rc-set-changestate. FINALLY.Laurent Bercot2025-09-151-3/+4
|
* Implement badsub, refactor moveservices, get ready for enable/disableLaurent Bercot2025-09-151-2/+4
|
* Reorganize for 4 subs; add makesvlist, start badsubLaurent Bercot2025-09-081-1/+11
|
* Almost got a full sync, still need the adjustment heuristicLaurent Bercot2025-08-192-1/+3
|
* Major refactors, add makesetbundle, refcompile/setcompile, etc.Laurent Bercot2025-08-081-2/+8
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* Next additions: better bundle management and autobuildLaurent Bercot2025-08-051-8/+10
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* Add makebundle, moveservices, defcompileLaurent Bercot2025-08-041-0/+4
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* Refactor to add listalldepsLaurent Bercot2025-08-041-1/+4
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* More utilities: s6rc_nlto0, s6rc_repo_set_listdepsLaurent Bercot2025-08-042-0/+7
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* first draft of s6rc_repo_set_compileLaurent Bercot2025-08-041-1/+4
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* s6-rc-set-new, refactors, additions, etc.Laurent Bercot2025-07-032-0/+3
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* s6-rc-repo-init: better error messagesLaurent Bercot2025-07-021-1/+1
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* Finish s6-rc-repo-initLaurent Bercot2025-07-022-0/+12
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* Add s6rc_live_state functionsLaurent Bercot2025-06-181-0/+4
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* Prepare for 0.5.5.0; add s6rc_livedir_canonLaurent Bercot2024-07-051-0/+3
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* Update dependencies, adjust to skalibs-2.11.0.0 apisLaurent Bercot2021-08-101-1/+1
| | | | Signed-off-by: Laurent Bercot <ska@appnovation.com>
* Add the notion of essential serviceLaurent Bercot2020-08-201-0/+2
|
* Refactor s6-rc-init and s6-rc-upgrade around atomic_symlink and ↵Laurent Bercot2017-12-041-0/+1
| | | | s6rc_livedir_create
* Implement funnels. Needs testing.Laurent Bercot2017-11-041-1/+5
|
* Replace suffix with prefixLaurent Bercot2017-10-091-2/+2
|
* Add -s to s6-rc-init; prepare for 0.3.0.0Laurent Bercot2017-10-082-3/+6
|
* Don't wait on locks by default (fail instead); add a -b option to get the ↵Laurent Bercot2017-03-231-1/+1
| | | | | | waiting behaviour Also fix a few types in s6-rc-compile (unsigned int -> uint32_t for avltree indices)
* Types fix: first passLaurent Bercot2017-01-082-12/+13
|
* Add rollback to s6rc_servicedir_manage; it should now be transactionalLaurent Bercot2016-03-171-0/+1
|
* Fix the regression in s6-rc-init; progress on s6-rc-updateLaurent Bercot2015-09-021-2/+5
|
* Intermediate commit to fix a regressionLaurent Bercot2015-09-022-3/+2
|
* - some work on s6-rc-updateLaurent Bercot2015-08-291-0/+1
| | | | - add s6-rc-bundle and relevant doc
* More work on s6-rc-updateLaurent Bercot2015-08-272-0/+5
|