aboutsummaryrefslogtreecommitdiffstats
path: root/src/repo
Commit message (Collapse)AuthorAgeFilesLines
* bugfix: I can't count to 14Laurent Bercot7 hours2-13/+13
|
* Louis, I think this is the beginning of a long series of bugfixes.Laurent Bercot7 hours1-1/+1
|
* Part four: we delete all the snapshots after set-installLaurent Bercot8 hours5-37/+64
| | | | | | | | | | Except the snapshot corresponding to the new live db, of course. Also, in order to accommodate snapshots without risking name conflicts, the real name of set foobar isn't .foobar:XXXXXX anymore, but .real.foobar:XXXXXX Now the automatic upgrade in case of major bump is complete. Next comes testing and debugging.
* Third part of the format-upgrade inclusion: add support in s6-rc-set-installLaurent Bercot28 hours10-101/+250
| | | | | | | | | | | | | | | | | | | | | | | | | 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 days4-14/+18
| | | | | | | | | | 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.
* Second part of the format-upgrade support: ensure snapshots are thereLaurent Bercot3 days2-5/+40
| | | | | | | We don't want to install compiled dbs without having a snapshot of their source set, so whenever we test that the compiled db is up to date, we also test that a snapshot is present. This is important because we will auto-cleanup unused snapshots after installation.
* But this day is not today, so screw it. We gotta keep em separatedLaurent Bercot9 days3-3/+32
|
* Someday I'll figure out dynamic libraries dependencies with rpathLaurent Bercot9 days12-11/+2
|
* Maybe maybe maybeLaurent Bercot9 days3-0/+3
|
* Fix build, maybe?Laurent Bercot9 days6-0/+6
|
* Propagate -L catchall changes to s6-rc-set-commitLaurent Bercot13 days7-10/+36
| | | | | s6-rc-set-install is undergoing changes, it might not work properly. The rest is coming this week.
* First part of the format-upgrade support in repoLaurent Bercot2026-10-026-83/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* s6-rc-set-change: move if-dependencies tristate to two boolsLaurent Bercot2026-06-151-33/+23
|
* Cleanup on s6-rc-repo-init sync errorLaurent Bercot2026-05-121-1/+11
|
* Prepare for 0.6.1.1 ; fix loop exit condition in store checkingLaurent Bercot2026-05-091-0/+1
|
* Do not specialcase ENOENT on repo syncLaurent Bercot2026-02-231-1/+0
|
* s6rc_repo_sync error message fix; also allow overriding by later storesLaurent Bercot2026-02-021-19/+11
|
* s6-rc-repo-init: check validity of stores before creating linksLaurent Bercot2026-01-281-0/+11
|
* Rename "sub" to "prescription"Laurent Bercot2026-01-2420-166/+166
|
* And add similar options to s6-rc-set-installLaurent Bercot2026-01-241-2/+6
| | | | | s6-rc-set-install downs essential services by default. This is different from the s6-rc-update default.
* Fix bugs in repo_syncset and repo_makesetbundles, refactor a bitLaurent Bercot2026-01-242-71/+67
| | | | | | Also add an extra bundle in the demo store in order to test. Imports of store bundles didn't work properly; now they do. Sets were not properly synced on store change; now they are.
* bugfix in repo_syncsetLaurent Bercot2026-01-241-1/+1
|
* Fix s6-rc-set-copyLaurent Bercot2026-01-211-16/+10
|
* TIL ENOTEMPTY is a thingLaurent Bercot2026-01-211-1/+1
|
* Option is --no-update, not ----no-update. Also fix dotpc.Laurent Bercot2026-01-191-1/+1
|
* Add --no-update option to s6-rc-set-installLaurent Bercot2026-01-171-56/+62
|
* s6-rc-set-install fixesLaurent Bercot2025-12-213-71/+77
|
* Working repo fix that understands pipelinesLaurent Bercot2025-12-2014-85/+185
|
* Add s6-rc-repo-listLaurent Bercot2025-12-206-55/+81
|
* Consistency of --force-essential optionLaurent Bercot2025-12-203-9/+10
|
* Add s6-rc-set-fixLaurent Bercot2025-12-208-71/+202
|
* More fixesLaurent Bercot2025-12-093-6/+5
|
* Next batch of fixesLaurent Bercot2025-12-0914-57/+99
|
* More fixesLaurent Bercot2025-12-085-8/+10
|
* Some bugfixesLaurent Bercot2025-12-0810-38/+61
|
* s6-rc-set-list is now s6-rc-set-status and does everythingLaurent Bercot2025-11-264-87/+126
|
* Add s6-rc-set-listLaurent Bercot2025-11-122-0/+89
|
* s6rc_repo_nlto0 replaced with string_index in skalibsLaurent Bercot2025-11-105-37/+6
|
* Make default bundle name configurableLaurent Bercot2025-11-091-1/+1
|
* Finish repo documentation; make bootdb configurable; fix installLaurent Bercot2025-10-308-24/+32
|
* Add missing doc pagesLaurent Bercot2025-10-301-1/+1
|
* Add s6-rc-set-change doc page, update deps, fix verbosity guardLaurent Bercot2025-10-302-9/+5
|
* nonposix.h PLUS bsdsnowflake.h are necessary for st.mtimLaurent Bercot2025-10-231-4/+4
|
* Always use nonposix.h for mkdtemp, because Solaris and MacOSLaurent Bercot2025-10-231-0/+2
|
* Separate libs6rcrepoLaurent Bercot2025-10-2244-16/+2048
|
* add getserviceflags and use it in fillset; add some docLaurent Bercot2025-10-214-6/+8
|
* Move all string comparison operations into skalibsLaurent Bercot2025-10-091-2/+8
|
* Add s6-rc-set-install, repodefs pageLaurent Bercot2025-10-065-55/+221
|
* Do not delete old store before the sync succeedsLaurent Bercot2025-10-052-13/+18
|
* Add repo/set touching to avoid extra compilesLaurent Bercot2025-10-013-6/+46
|