From 7551c712d73f1d07f6dec2c9b8183a43204f4aa5 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Sat, 24 Jan 2026 16:17:39 +0000 Subject: Rename "sub" to "prescription" --- src/include/s6-rc/repo.h | 10 ++--- src/repo/deps-lib/s6rcrepo | 6 +-- src/repo/s6-rc-set-change.c | 82 ++++++++++++++++++------------------- src/repo/s6-rc-set-new.c | 12 +++--- src/repo/s6-rc-set-status.c | 10 ++--- src/repo/s6rc_repo_badpipeline.c | 4 +- src/repo/s6rc_repo_badrx.c | 71 ++++++++++++++++++++++++++++++++ src/repo/s6rc_repo_badsub.c | 71 -------------------------------- src/repo/s6rc_repo_cleanup.c | 16 ++++---- src/repo/s6rc_repo_compile.c | 16 ++++---- src/repo/s6rc_repo_fillset.c | 10 ++--- src/repo/s6rc_repo_fixset.c | 42 +++++++++---------- src/repo/s6rc_repo_listrx.c | 20 +++++++++ src/repo/s6rc_repo_listsub.c | 20 --------- src/repo/s6rc_repo_makedefbundle.c | 14 +++---- src/repo/s6rc_repo_makesetbundles.c | 4 +- src/repo/s6rc_repo_makesvlist.c | 24 +++++------ src/repo/s6rc_repo_moveservices.c | 10 ++--- src/repo/s6rc_repo_rxnames.c | 5 +++ src/repo/s6rc_repo_setcompile.c | 10 ++--- src/repo/s6rc_repo_subnames.c | 5 --- src/repo/s6rc_repo_sync.c | 4 +- src/repo/s6rc_repo_syncset_tmp.c | 36 ++++++++-------- 23 files changed, 251 insertions(+), 251 deletions(-) create mode 100644 src/repo/s6rc_repo_badrx.c delete mode 100644 src/repo/s6rc_repo_badsub.c create mode 100644 src/repo/s6rc_repo_listrx.c delete mode 100644 src/repo/s6rc_repo_listsub.c create mode 100644 src/repo/s6rc_repo_rxnames.c delete mode 100644 src/repo/s6rc_repo_subnames.c (limited to 'src') diff --git a/src/include/s6-rc/repo.h b/src/include/s6-rc/repo.h index 5957dd5..56ec5bf 100644 --- a/src/include/s6-rc/repo.h +++ b/src/include/s6-rc/repo.h @@ -13,7 +13,7 @@ typedef struct s6rc_repo_sv_s s6rc_repo_sv, *s6rc_repo_sv_ref ; struct s6rc_repo_sv_s { uint32_t pos ; - uint8_t sub ; + uint8_t rx ; } ; extern int s6rc_repo_sv_cmpr (void const *, void const *, void *) ; @@ -23,7 +23,7 @@ extern int s6rc_repo_nlto0 (char *, size_t, size_t, genalloc *) ; extern int s6rc_repo_type_check (char const *) ; extern int s6rc_repo_ls (char const *, stralloc *, genalloc *) ; -extern char const s6rc_repo_subnames[4][7] ; +extern char const s6rc_repo_rxnames[4][7] ; extern int s6rc_repo_makestores (char const *, char const *const *, uint16_t, char *) ; @@ -35,7 +35,7 @@ extern void s6rc_repo_sanitize_svname (char const *) ; extern int s6rc_repo_cleanup (char const *) ; extern int s6rc_repo_sync (char const *, unsigned int, char const *) ; extern int s6rc_repo_syncset (char const *, char const *, unsigned int) ; -extern int s6rc_repo_syncset_tmp (char const *, char const *, stralloc *, genalloc *ga, unsigned int) ; +extern int s6rc_repo_syncset_tmp (char const *, char const *, stralloc *, genalloc *, unsigned int) ; extern int s6rc_repo_lock (char const *, int) ; extern int s6rc_repo_touch (char const *) ; extern int s6rc_repo_touchset (char const *, char const *) ; @@ -51,7 +51,7 @@ extern int s6rc_repo_refcompile (char const *, char *, unsigned int, char const extern int s6rc_repo_setcompile (char const *, char const *, char const *, char *, unsigned int, char const *) ; extern int s6rc_repo_list_sets (char const *, stralloc *, genalloc *) ; -extern int s6rc_repo_listsub (char const *, char const *, char const *, stralloc *, genalloc *) ; +extern int s6rc_repo_listrx (char const *, char const *, char const *, stralloc *, genalloc *) ; extern int s6rc_repo_listcontents (char const *, char const *, stralloc *, genalloc *) ; extern int s6rc_repo_listdeps (char const *, char const *, stralloc *, genalloc *, int) ; extern int s6rc_repo_listalldeps (char const *, char const *const *, uint32_t, stralloc *, genalloc *, int) ; @@ -61,7 +61,7 @@ extern int s6rc_repo_getserviceflags (char const *, char const *, uint32_t *) ; extern int s6rc_repo_flattenservices (char const *, char const *const *, uint32_t n, stralloc *storage, genalloc *indices) ; extern int s6rc_repo_makesvlist (char const *, char const *, stralloc *, genalloc *, uint32_t *) ; extern int s6rc_repo_makesvlist_byname (char const *, char const *, stralloc *, genalloc *) ; -extern int s6rc_repo_badsub (char const *, char const *, char const **, uint32_t, uint8_t, uint8_t, s6rc_repo_sv const *, uint32_t, stralloc *, genalloc *, genalloc *) ; +extern int s6rc_repo_badrx (char const *, char const *, char const **, uint32_t, uint8_t, uint8_t, s6rc_repo_sv const *, uint32_t, stralloc *, genalloc *, genalloc *) ; extern int s6rc_repo_badpipeline (char const *, char const *, size_t, s6rc_repo_sv const *, uint32_t, uint8_t, stralloc *, genalloc *) ; extern int s6rc_repo_moveservices (char const *, char const *, s6rc_repo_sv const *, uint32_t, uint8_t, char const *, unsigned int) ; extern void s6rc_repo_removeinternals (genalloc *, unsigned int, char const *) ; diff --git a/src/repo/deps-lib/s6rcrepo b/src/repo/deps-lib/s6rcrepo index 10737ee..7d8b816 100644 --- a/src/repo/deps-lib/s6rcrepo +++ b/src/repo/deps-lib/s6rcrepo @@ -1,5 +1,5 @@ s6rc_repo_badpipeline.o -s6rc_repo_badsub.o +s6rc_repo_badrx.o s6rc_repo_checkset.o s6rc_repo_cleanup.o s6rc_repo_compile.o @@ -12,7 +12,7 @@ s6rc_repo_listalldeps.o s6rc_repo_listcontents.o s6rc_repo_listdeps.o s6rc_repo_listdeps_internal.o -s6rc_repo_listsub.o +s6rc_repo_listrx.o s6rc_repo_lock.o s6rc_repo_ls.o s6rc_repo_makedefbundle.o @@ -22,11 +22,11 @@ s6rc_repo_makesvlist.o s6rc_repo_makesvlist_byname.o s6rc_repo_moveservices.o s6rc_repo_removeinternals.o +s6rc_repo_rxnames.o s6rc_repo_sanitize_setname.o s6rc_repo_sanitize_svname.o s6rc_repo_setcompile.o s6rc_repo_setuptodate.o -s6rc_repo_subnames.o s6rc_repo_sv_bcmpr.o s6rc_repo_sv_cmpr.o s6rc_repo_sync.o diff --git a/src/repo/s6-rc-set-change.c b/src/repo/s6-rc-set-change.c index e763d25..3dbb62a 100644 --- a/src/repo/s6-rc-set-change.c +++ b/src/repo/s6-rc-set-change.c @@ -18,7 +18,7 @@ #include #include -#define USAGE "s6-rc-set-change [ -v verbosity ] [ -r repo ] [ -E | -e ] [ -f | -I fail|pull|warn ] [ -n ] set newsub services..." +#define USAGE "s6-rc-set-change [ -v verbosity ] [ -r repo ] [ -E | -e ] [ -f | -I fail|pull|warn ] [ -n ] set newrx services..." #define dieusage() strerr_dieusage(100, USAGE) enum golb_e @@ -36,15 +36,15 @@ enum gola_e GOLA_N } ; -struct subname_s +struct rxname_s { char const *name ; - uint8_t sub ; + uint8_t rx ; } ; -static int subname_cmp (void const *a, void const *b) +static int rxname_cmp (void const *a, void const *b) { - return strcmp((char const *)a, ((struct subname_s const *)b)->name) ; + return strcmp((char const *)a, ((struct rxname_s const *)b)->name) ; } int main (int argc, char const *const *argv) @@ -62,33 +62,33 @@ int main (int argc, char const *const *argv) { .so = 'r', .lo = "repodir", .i = GOLA_REPODIR }, { .so = 'I', .lo = "if-dependencies-found", .i = GOLA_FORCELEVEL } } ; - static struct subname_s const accepted_forcelevels[] = + static struct rxname_s const accepted_forcelevels[] = { - { .name = "fail", .sub = 0 }, - { .name = "pull", .sub = 2 }, - { .name = "warn", .sub = 1 } + { .name = "fail", .rx = 0 }, + { .name = "pull", .rx = 2 }, + { .name = "warn", .rx = 1 } } ; - static struct subname_s const accepted_subs[] = + static struct rxname_s const accepted_rxs[] = { - { .name = "activate", .sub = 2 }, - { .name = "active", .sub = 2 }, - { .name = "always", .sub = 3 }, - { .name = "deactivate", .sub = 1 }, - { .name = "disable", .sub = 1 }, - { .name = "disabled", .sub = 1 }, - { .name = "enable", .sub = 2 }, - { .name = "enabled", .sub = 2 }, - { .name = "essential", .sub = 3 }, - { .name = "inactive", .sub = 1 }, - { .name = "latent", .sub = 1 }, - { .name = "make-essential", .sub = 3 }, - { .name = "mask", .sub = 0 }, - { .name = "masked", .sub = 0 }, - { .name = "onboot", .sub = 2 }, - { .name = "suppress", .sub = 0 }, - { .name = "unmask", .sub = 1 }, - { .name = "unmasked", .sub = 1 }, - { .name = "usable", .sub = 1 } + { .name = "activate", .rx = 2 }, + { .name = "active", .rx = 2 }, + { .name = "always", .rx = 3 }, + { .name = "deactivate", .rx = 1 }, + { .name = "disable", .rx = 1 }, + { .name = "disabled", .rx = 1 }, + { .name = "enable", .rx = 2 }, + { .name = "enabled", .rx = 2 }, + { .name = "essential", .rx = 3 }, + { .name = "inactive", .rx = 1 }, + { .name = "latent", .rx = 1 }, + { .name = "make-essential", .rx = 3 }, + { .name = "mask", .rx = 0 }, + { .name = "masked", .rx = 0 }, + { .name = "onboot", .rx = 2 }, + { .name = "suppress", .rx = 0 }, + { .name = "unmask", .rx = 1 }, + { .name = "unmasked", .rx = 1 }, + { .name = "usable", .rx = 1 } } ; stralloc storage = STRALLOC_ZERO ; genalloc svlist = GENALLOC_ZERO ; /* s6rc_repo_sv */ @@ -100,7 +100,7 @@ int main (int argc, char const *const *argv) char const *wgola[GOLA_N] = { 0 } ; uint64_t wgolb = 0 ; unsigned int golc ; - struct subname_s *newsub ; + struct rxname_s *newrx ; size_t max = 0, sabase ; s6rc_repo_sv *list ; uint32_t listn, n ; @@ -114,15 +114,15 @@ int main (int argc, char const *const *argv) strerr_dief1x(100, "verbosity needs to be an unsigned integer") ; if (wgola[GOLA_FORCELEVEL]) { - struct subname_s *p = bsearch(wgola[GOLA_FORCELEVEL], accepted_forcelevels, sizeof(accepted_forcelevels)/sizeof(struct subname_s), sizeof(struct subname_s), &subname_cmp) ; + struct rxname_s *p = bsearch(wgola[GOLA_FORCELEVEL], accepted_forcelevels, sizeof(accepted_forcelevels)/sizeof(struct rxname_s), sizeof(struct rxname_s), &rxname_cmp) ; if (!p) strerr_dief1x(100, "if-dependencies-found needs to be fail, warn or pull") ; - forcelevel = p->sub ; + forcelevel = p->rx ; } if (argc < 3) dieusage() ; s6rc_repo_sanitize_setname(argv[0]) ; - newsub = bsearch(argv[1], accepted_subs, sizeof(accepted_subs)/sizeof(struct subname_s), sizeof(struct subname_s), &subname_cmp) ; - if (!newsub) strerr_dief2x(100, "unrecognized state change directive: ", argv[1]) ; - if (newsub->sub == 3 && !(wgolb & GOLB_FORCE_ESSENTIAL)) + newrx = bsearch(argv[1], accepted_rxs, sizeof(accepted_rxs)/sizeof(struct rxname_s), sizeof(struct rxname_s), &rxname_cmp) ; + if (!newrx) strerr_dief2x(100, "unrecognized state change directive: ", argv[1]) ; + if (newrx->rx == 3 && !(wgolb & GOLB_FORCE_ESSENTIAL)) strerr_diefu1x(100, "artificially mark a service as essential without --force-essential") ; for (unsigned int i = 2 ; i < argc ; i++) s6rc_repo_sanitize_svname(argv[i]) ; @@ -165,13 +165,13 @@ int main (int argc, char const *const *argv) for (uint32_t i = 0 ; i < n ; i++) { size_t len ; - list[ind[i]].sub = newsub->sub ; + list[ind[i]].rx = newrx->rx ; tmpstart[i] = tmpstore + m ; len = strlen(storage.s + list[ind[i]].pos) + 1 ; memcpy(tmpstore + m, storage.s + list[ind[i]].pos, len) ; m += len ; } - if (!s6rc_repo_badsub(wgola[GOLA_REPODIR], argv[0], tmpstart, n, newsub->sub, 3, list, listn, &storage, &indices, &gatmp)) _exit(111) ; + if (!s6rc_repo_badrx(wgola[GOLA_REPODIR], argv[0], tmpstart, n, newrx->rx, 3, list, listn, &storage, &indices, &gatmp)) _exit(111) ; // genalloc_free(size_t, &gatmp) ; if (genalloc_len(uint32_t, &indices)) { @@ -184,11 +184,11 @@ int main (int argc, char const *const *argv) arg[1] = ": " ; arg[2] = !forcelevel ? "fatal" : "warning" ; arg[3] = ": the following services (" ; - arg[4] = newsub->sub >= 2 ? "dependencies of" : "depending on" ; + arg[4] = newrx->rx >= 2 ? "dependencies of" : "depending on" ; arg[5] = " the ones given as arguments, or part of the same pipeline) " ; arg[6] = forcelevel == 2 ? "are also being" : "also need to be" ; arg[7] = " changed to \"" ; - arg[8] = s6rc_repo_subnames[newsub->sub] ; + arg[8] = s6rc_repo_rxnames[newrx->rx] ; arg[9] = "\": " ; for (uint32_t i = 0 ; i < badn ; i++) { @@ -204,7 +204,7 @@ int main (int argc, char const *const *argv) s6rc_repo_sv full[n + badn] ; for (uint32_t i = 0 ; i < n ; i++) full[i] = starting[i] ; for (uint32_t i = 0 ; i < badn ; i++) full[n + i] = list[bads[i]] ; - if (!s6rc_repo_moveservices(wgola[GOLA_REPODIR], argv[0], full, n + badn, newsub->sub, storage.s, verbosity)) _exit(111) ; + if (!s6rc_repo_moveservices(wgola[GOLA_REPODIR], argv[0], full, n + badn, newrx->rx, storage.s, verbosity)) _exit(111) ; _exit(0) ; } } @@ -213,7 +213,7 @@ int main (int argc, char const *const *argv) if (!(wgolb & GOLB_DRYRUN)) { - if (!s6rc_repo_moveservices(wgola[GOLA_REPODIR], argv[0], starting, n, newsub->sub, storage.s, verbosity)) _exit(111) ; + if (!s6rc_repo_moveservices(wgola[GOLA_REPODIR], argv[0], starting, n, newrx->rx, storage.s, verbosity)) _exit(111) ; } _exit(0) ; } diff --git a/src/repo/s6-rc-set-new.c b/src/repo/s6-rc-set-new.c index a685aa6..6b20e9b 100644 --- a/src/repo/s6-rc-set-new.c +++ b/src/repo/s6-rc-set-new.c @@ -39,7 +39,7 @@ static inline void newset (char const *repo, char const *setname) char atomics[repolen + 18] ; char fn[repolen + 10 + setlen] ; char tmp[repolen + 18 + setlen] ; - char sub[repolen + 25 + setlen] ; + char rx[repolen + 25 + setlen] ; memcpy(atomics, repo, repolen) ; memcpy(atomics + repolen, "/sources/.atomics", 18) ; memcpy(fn, atomics, repolen + 9) ; @@ -55,16 +55,16 @@ static inline void newset (char const *repo, char const *setname) memcpy(tmp + repolen + 10 + setlen, ":XXXXXX", 8) ; m = umask(0) ; if (!mkdtemp(tmp)) strerr_diefu2sys(111, "mkdtemp ", tmp) ; - memcpy(sub, tmp, repolen + 17 + setlen) ; - sub[repolen + 17 + setlen] = '/' ; + memcpy(rx, tmp, repolen + 17 + setlen) ; + rx[repolen + 17 + setlen] = '/' ; for (size_t i = 0 ; i < 4 ; i++) { - memcpy(sub + repolen + 18 + setlen, s6rc_repo_subnames[i], 7) ; - if (mkdir(sub, 02755) == -1) + memcpy(rx + repolen + 18 + setlen, s6rc_repo_rxnames[i], 7) ; + if (mkdir(rx, 02755) == -1) { umask(m) ; cleanup(tmp) ; - strerr_diefu2sys(111, "mkdir ", sub) ; + strerr_diefu2sys(111, "mkdir ", rx) ; } } umask(m) ; diff --git a/src/repo/s6-rc-set-status.c b/src/repo/s6-rc-set-status.c index f6b6e5f..58db60d 100644 --- a/src/repo/s6-rc-set-status.c +++ b/src/repo/s6-rc-set-status.c @@ -56,7 +56,7 @@ int main (int argc, char const **argv) char const *setname ; char const *wgola[GOLA_N] = { 0 } ; unsigned int golc ; - uint8_t sub ; + uint8_t rx ; PROG = "s6-rc-set-status" ; wgola[GOLA_REPODIR] = S6RC_REPODIR ; @@ -102,10 +102,10 @@ int main (int argc, char const **argv) memcpy(fn + repolen + 9, setname, setlen) ; fn[repolen + 9 + setlen] = '/' ; - sub = wgolb & GOLB_IGNORE_ESSENTIALS ? 3 : 4 ; - while (sub--) + rx = wgolb & GOLB_IGNORE_ESSENTIALS ? 3 : 4 ; + while (rx--) { - memcpy(fn + repolen + 10 + setlen, s6rc_repo_subnames[sub], 7) ; + memcpy(fn + repolen + 10 + setlen, s6rc_repo_rxnames[rx], 7) ; DIR *dir = opendir(fn) ; if (!dir) strerr_diefu2sys(111, "opendir ", fn) ; for (;;) @@ -119,7 +119,7 @@ int main (int argc, char const **argv) if (buffer_puts(buffer_1, d->d_name) < 0) dieout() ; if (!(wgolb & GOLB_NOSUB)) if (buffer_put(buffer_1, "/", 1) < 0 - || buffer_put(buffer_1, s6rc_repo_subnames[sub], 6) < 0) dieout() ; + || buffer_put(buffer_1, s6rc_repo_rxnames[rx], 6) < 0) dieout() ; if (buffer_put(buffer_1, "\n", 1) < 0) dieout() ; } if (errno) strerr_diefu2sys(111, "readdir ", fn) ; diff --git a/src/repo/s6rc_repo_badpipeline.c b/src/repo/s6rc_repo_badpipeline.c index 654408d..87fb944 100644 --- a/src/repo/s6rc_repo_badpipeline.c +++ b/src/repo/s6rc_repo_badpipeline.c @@ -21,7 +21,7 @@ static int notfound (uint32_t k, uint32_t const *tab, uint32_t n) return 1 ; } -int s6rc_repo_badpipeline (char const *repo, char const *set, size_t svind, s6rc_repo_sv const *svlist, uint32_t ntot, uint8_t newsub, stralloc *sa, genalloc *badga) +int s6rc_repo_badpipeline (char const *repo, char const *set, size_t svind, s6rc_repo_sv const *svlist, uint32_t ntot, uint8_t newrx, stralloc *sa, genalloc *badga) { size_t sabase = sa->len ; size_t gabase = genalloc_len(uint32_t, badga) ; @@ -74,7 +74,7 @@ int s6rc_repo_badpipeline (char const *repo, char const *set, size_t svind, s6rc goto err ; } k = p - svlist ; - if (!newsub != !p->sub && notfound(k, genalloc_s(uint32_t, badga), genalloc_len(uint32_t, badga))) + if (!newrx != !p->rx && notfound(k, genalloc_s(uint32_t, badga), genalloc_len(uint32_t, badga))) { if (!genalloc_append(uint32_t, badga, &k)) { diff --git a/src/repo/s6rc_repo_badrx.c b/src/repo/s6rc_repo_badrx.c new file mode 100644 index 0000000..20961ae --- /dev/null +++ b/src/repo/s6rc_repo_badrx.c @@ -0,0 +1,71 @@ +/* ISC license. */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +int s6rc_repo_badrx (char const *repo, char const *set, char const **services, uint32_t n, uint8_t newrx, uint8_t what, s6rc_repo_sv const *svlist, uint32_t ntot, stralloc *sa, genalloc *badga, genalloc *fulldeps) +{ + size_t sabase = sa->len ; + size_t gabase = genalloc_len(uint32_t, badga) ; + size_t fulln ; + size_t const *ind ; + uint32_t mid ; + + if (newrx < 3 && (what & 1) && s6rc_repo_listalldeps(repo, services, n, sa, fulldeps, 0)) return 0 ; + mid = genalloc_len(size_t, fulldeps) ; + if (newrx > 0 && (what & 2) && s6rc_repo_listalldeps(repo, services, n, sa, fulldeps, 1)) goto err ; + + qsort(services, n, sizeof(char const *), &str_cmp) ; + fulln = genalloc_len(size_t, fulldeps) ; + ind = genalloc_s(size_t, fulldeps) ; + + for (uint32_t i = 0 ; i < fulln ; i++) + { + s6rc_repo_sv *p ; + char const *cur = sa->s + ind[i] ; + if (bsearch(&cur, services, n, sizeof(char const *), &str_cmp)) continue ; + p = bsearchr(cur, svlist, ntot, sizeof(s6rc_repo_sv), &s6rc_repo_sv_bcmpr, sa->s) ; + if (!p) + { + strerr_warnfu6x("find service ", cur, " in set ", set, " of repository ", repo) ; + goto err ; + } + if (i >= mid ? p->rx < newrx : p->rx > newrx) + { + uint32_t k = p - svlist ; + if (!genalloc_append(uint32_t, badga, &k)) + { + strerr_warnfu1sys("make bad rx list") ; + goto err ; + } + } + } + + if ((!newrx && (what & 1)) || (newrx && (what & 2))) + { + for (uint32_t i = 0 ; i < fulln ; i++) + { + int e = s6rc_repo_badpipeline(repo, set, ind[i], svlist, ntot, newrx, sa, badga) ; + if (e) goto err ; + } + } + genalloc_setlen(size_t, fulldeps, 0) ; + return 1 ; + + err: + genalloc_setlen(size_t, fulldeps, 0) ; + sa->len = sabase ; + genalloc_setlen(uint32_t, badga, gabase) ; + return 0 ; +} diff --git a/src/repo/s6rc_repo_badsub.c b/src/repo/s6rc_repo_badsub.c deleted file mode 100644 index d658e3a..0000000 --- a/src/repo/s6rc_repo_badsub.c +++ /dev/null @@ -1,71 +0,0 @@ -/* ISC license. */ - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include - -int s6rc_repo_badsub (char const *repo, char const *set, char const **services, uint32_t n, uint8_t newsub, uint8_t what, s6rc_repo_sv const *svlist, uint32_t ntot, stralloc *sa, genalloc *badga, genalloc *fulldeps) -{ - size_t sabase = sa->len ; - size_t gabase = genalloc_len(uint32_t, badga) ; - size_t fulln ; - size_t const *ind ; - uint32_t mid ; - - if (newsub < 3 && (what & 1) && s6rc_repo_listalldeps(repo, services, n, sa, fulldeps, 0)) return 0 ; - mid = genalloc_len(size_t, fulldeps) ; - if (newsub > 0 && (what & 2) && s6rc_repo_listalldeps(repo, services, n, sa, fulldeps, 1)) goto err ; - - qsort(services, n, sizeof(char const *), &str_cmp) ; - fulln = genalloc_len(size_t, fulldeps) ; - ind = genalloc_s(size_t, fulldeps) ; - - for (uint32_t i = 0 ; i < fulln ; i++) - { - s6rc_repo_sv *p ; - char const *cur = sa->s + ind[i] ; - if (bsearch(&cur, services, n, sizeof(char const *), &str_cmp)) continue ; - p = bsearchr(cur, svlist, ntot, sizeof(s6rc_repo_sv), &s6rc_repo_sv_bcmpr, sa->s) ; - if (!p) - { - strerr_warnfu6x("find service ", cur, " in set ", set, " of repository ", repo) ; - goto err ; - } - if (i >= mid ? p->sub < newsub : p->sub > newsub) - { - uint32_t k = p - svlist ; - if (!genalloc_append(uint32_t, badga, &k)) - { - strerr_warnfu1sys("make bad sub list") ; - goto err ; - } - } - } - - if ((!newsub && (what & 1)) || (newsub && (what & 2))) - { - for (uint32_t i = 0 ; i < fulln ; i++) - { - int e = s6rc_repo_badpipeline(repo, set, ind[i], svlist, ntot, newsub, sa, badga) ; - if (e) goto err ; - } - } - genalloc_setlen(size_t, fulldeps, 0) ; - return 1 ; - - err: - genalloc_setlen(size_t, fulldeps, 0) ; - sa->len = sabase ; - genalloc_setlen(uint32_t, badga, gabase) ; - return 0 ; -} diff --git a/src/repo/s6rc_repo_cleanup.c b/src/repo/s6rc_repo_cleanup.c index 05881cd..47cb936 100644 --- a/src/repo/s6rc_repo_cleanup.c +++ b/src/repo/s6rc_repo_cleanup.c @@ -14,10 +14,10 @@ #include -static inline int sub_cleanup (char const *sub) +static inline int rx_cleanup (char const *rx) { - size_t sublen = strlen(sub) ; - DIR *dir = opendir(sub) ; + size_t rxlen = strlen(rx) ; + DIR *dir = opendir(rx) ; if (!dir) return 0 ; for (;;) { @@ -29,10 +29,10 @@ static inline int sub_cleanup (char const *sub) if (d->d_name[0] == '.') continue ; len = strlen(d->d_name) ; { - char fn[sublen + len + 2] ; - memcpy(fn, sub, sublen) ; - fn[sublen] = '/' ; - memcpy(fn + sublen + 1, d->d_name, len + 1) ; + char fn[rxlen + len + 2] ; + memcpy(fn, rx, rxlen) ; + fn[rxlen] = '/' ; + memcpy(fn + rxlen + 1, d->d_name, len + 1) ; if (access(fn, F_OK) == 0) { struct stat st ; @@ -77,7 +77,7 @@ static inline int set_cleanup (char const *set) memcpy(fn, set, setlen) ; fn[setlen] = '/' ; memcpy(fn + setlen + 1, d->d_name, len + 1) ; - if (!sub_cleanup(fn)) break ; + if (!rx_cleanup(fn)) break ; } } dir_close(dir) ; diff --git a/src/repo/s6rc_repo_compile.c b/src/repo/s6rc_repo_compile.c index 01134af..64f8879 100644 --- a/src/repo/s6rc_repo_compile.c +++ b/src/repo/s6rc_repo_compile.c @@ -16,11 +16,11 @@ #include #include -int s6rc_repo_compile (char const *repo, char const *set, char const *const *subs, uint8_t nsubs, char *oldc, unsigned int verbosity, char const *fdhuser) +int s6rc_repo_compile (char const *repo, char const *set, char const *const *rxs, uint8_t nrxs, char *oldc, unsigned int verbosity, char const *fdhuser) { size_t repolen = strlen(repo) ; size_t setlen = strlen(set) ; - size_t totsublen = 0 ; + size_t totrxlen = 0 ; int needprefix = strcmp(set, ".ref") ; char newc[repolen + setlen + 45] ; memcpy(newc, repo, repolen) ; @@ -31,15 +31,15 @@ int s6rc_repo_compile (char const *repo, char const *set, char const *const *sub memcpy(newc + repolen + 37 + setlen, ":XXXXXX", 8) ; memcpy(oldc, newc, repolen + 10) ; if (mkntemp(newc) == -1) { strerr_warnfu2sys("mkntemp ", newc) ; return -1 ; } - for (uint8_t i = 0 ; i < nsubs ; i++) totsublen += strlen(subs[i]) + 1 ; + for (uint8_t i = 0 ; i < nrxs ; i++) totrxlen += strlen(rxs[i]) + 1 ; { pid_t pid ; size_t m = 0 ; int wstat ; - char const *argv[9 + nsubs] ; + char const *argv[9 + nrxs] ; char fmtv[UINT_FMT] ; - char src[nsubs * (repolen + 10 + (needprefix ? setlen + 1 : 0)) + totsublen] ; + char src[nrxs * (repolen + 10 + (needprefix ? setlen + 1 : 0)) + totrxlen] ; char *w = src ; fmtv[uint_fmt(fmtv, verbosity)] = 0 ; argv[m++] = S6RC_BINPREFIX "s6-rc-compile" ; @@ -53,9 +53,9 @@ int s6rc_repo_compile (char const *repo, char const *set, char const *const *sub } argv[m++] = "--" ; argv[m++] = newc ; - for (uint8_t i = 0 ; i < nsubs ; i++) + for (uint8_t i = 0 ; i < nrxs ; i++) { - size_t sublen = strlen(subs[i]) ; + size_t rxlen = strlen(rxs[i]) ; argv[m++] = w ; memcpy(w, repo, repolen) ; w += repolen ; memcpy(w, "/sources/", 9) ; w += 9 ; @@ -64,7 +64,7 @@ int s6rc_repo_compile (char const *repo, char const *set, char const *const *sub memcpy(w, set, setlen) ; w += setlen ; *w++ = '/' ; } - memcpy(w, subs[i], sublen+1) ; w += sublen + 1 ; + memcpy(w, rxs[i], rxlen+1) ; w += rxlen + 1 ; } argv[m++] = 0 ; pid = cspawn(argv[0], argv, (char const *const *)environ, 0, 0, 0) ; diff --git a/src/repo/s6rc_repo_fillset.c b/src/repo/s6rc_repo_fillset.c index d7813be..d8d8aaf 100644 --- a/src/repo/s6rc_repo_fillset.c +++ b/src/repo/s6rc_repo_fillset.c @@ -36,7 +36,7 @@ int s6rc_repo_fillset (char const *repo, char const *set, char const *const *exi size_t len ; uint32_t flags ; direntry *d ; - uint8_t subi ; + uint8_t rxi ; errno = 0 ; d = readdir(dir) ; if (!d) break ; @@ -49,12 +49,12 @@ int s6rc_repo_fillset (char const *repo, char const *set, char const *const *exi memcpy(src + 15, d->d_name, len+1) ; if (n && bsearch(d->d_name, existing, n, sizeof(char const *), &str_bcmp)) continue ; if (s6rc_repo_getserviceflags(repo, d->d_name, &flags) <= 0) return 0 ; - if (flags & 1) subi = 3 ; - else if (flags & 2) subi = 2 ; - else subi = 1 ; + if (flags & 1) rxi = 3 ; + else if (flags & 2) rxi = 2 ; + else rxi = 1 ; memcpy(dst, setfn, repolen + 9 + setlen) ; dst[repolen + 9 + setlen] = '/' ; - memcpy(dst + repolen + 10 + setlen, s6rc_repo_subnames[subi], 6) ; + memcpy(dst + repolen + 10 + setlen, s6rc_repo_rxnames[rxi], 6) ; dst[repolen + setlen + 16] = '/' ; memcpy(dst + repolen + setlen + 17, d->d_name, len+1) ; if (symlink(src, dst) == -1) diff --git a/src/repo/s6rc_repo_fixset.c b/src/repo/s6rc_repo_fixset.c index d0252a0..ed66679 100644 --- a/src/repo/s6rc_repo_fixset.c +++ b/src/repo/s6rc_repo_fixset.c @@ -11,13 +11,13 @@ #include -static inline int s6rc_repo_fixsub (char const *repo, char const *set, uint8_t sub, s6rc_repo_sv *byname, char const **bysub, uint32_t ntot, uint32_t options, uint32_t const *subind, uint32_t const *subn, unsigned int verbosity, stralloc *sa, genalloc *badga, genalloc *gatmp) +static inline int s6rc_repo_fixrx (char const *repo, char const *set, uint8_t rx, s6rc_repo_sv *byname, char const **byrx, uint32_t ntot, uint32_t options, uint32_t const *rxind, uint32_t const *rxn, unsigned int verbosity, stralloc *sa, genalloc *badga, genalloc *gatmp) { size_t sabase = sa->len ; uint32_t const *bads ; uint32_t badn ; int e = 0 ; - if (!s6rc_repo_badsub(repo, set, bysub + subind[sub], subn[sub], sub, options & 1 ? 2 : 1, byname, ntot, sa, badga, gatmp)) return 111 ; + if (!s6rc_repo_badrx(repo, set, byrx + rxind[rx], rxn[rx], rx, options & 1 ? 2 : 1, byname, ntot, sa, badga, gatmp)) return 111 ; bads = genalloc_s(uint32_t, badga) ; badn = genalloc_len(uint32_t, badga) ; if (!badn) return 0 ; @@ -28,12 +28,12 @@ static inline int s6rc_repo_fixsub (char const *repo, char const *set, uint8_t s { tomove[j] = byname[bads[j]] ; if (verbosity >= 2) - strerr_warni(options & 4 ? "(dry run) " : "", "in set ", set, " of repository ", repo, ": ", "moving service ", sa->s + tomove[j].pos, " from ", s6rc_repo_subnames[tomove[j].sub], " to ", s6rc_repo_subnames[sub]) ; - else if (tomove[j].sub == 0 && verbosity) - strerr_warnw(options & 4 ? "(dry run) " : "", "service ", sa->s + tomove[j].pos, " will be unmasked by an upfix to ", s6rc_repo_subnames[sub]) ; - else if (sub == 0 && verbosity) - strerr_warnw(options & 4 ? "(dry run) " : "", "service ", sa->s + tomove[j].pos, " will be masked by a downfix to ", s6rc_repo_subnames[sub]) ; - if (tomove[j].sub == 3) + strerr_warni(options & 4 ? "(dry run) " : "", "in set ", set, " of repository ", repo, ": ", "moving service ", sa->s + tomove[j].pos, " from ", s6rc_repo_rxnames[tomove[j].rx], " to ", s6rc_repo_rxnames[rx]) ; + else if (tomove[j].rx == 0 && verbosity) + strerr_warnw(options & 4 ? "(dry run) " : "", "service ", sa->s + tomove[j].pos, " will be unmasked by an upfix to ", s6rc_repo_rxnames[rx]) ; + else if (rx == 0 && verbosity) + strerr_warnw(options & 4 ? "(dry run) " : "", "service ", sa->s + tomove[j].pos, " will be masked by a downfix to ", s6rc_repo_rxnames[rx]) ; + if (tomove[j].rx == 3) { if (!(options & 2)) { @@ -47,14 +47,14 @@ static inline int s6rc_repo_fixsub (char const *repo, char const *set, uint8_t s } } else if (verbosity) - strerr_warnw(options & 4 ? "(dry run) " : "", "service ", sa->s + tomove[j].pos, " will automatically be marked non-essential by a downfix to ", s6rc_repo_subnames[sub]) ; + strerr_warnw(options & 4 ? "(dry run) " : "", "service ", sa->s + tomove[j].pos, " will automatically be marked non-essential by a downfix to ", s6rc_repo_rxnames[rx]) ; } } if (!(options & 4)) { - if (!s6rc_repo_moveservices(repo, set, tomove, badn, sub, sa->s, verbosity)) { e = 111 ; goto err ; } + if (!s6rc_repo_moveservices(repo, set, tomove, badn, rx, sa->s, verbosity)) { e = 111 ; goto err ; } } - for (uint32_t j = 0 ; j < badn ; j++) byname[bads[j]].sub = sub ; + for (uint32_t j = 0 ; j < badn ; j++) byname[bads[j]].rx = rx ; err: genalloc_setlen(uint32_t, badga, 0) ; @@ -67,25 +67,25 @@ int s6rc_repo_fixset (char const *repo, char const *set, uint32_t options, unsig int e = 0 ; size_t sabase = sa->len ; uint32_t ntot ; - uint32_t subind[4] ; - uint32_t sublen[4] ; + uint32_t rxind[4] ; + uint32_t rxlen[4] ; s6rc_repo_sv *byname ; genalloc_setlen(s6rc_repo_sv, svlist, 0) ; - if (!s6rc_repo_makesvlist(repo, set, sa, svlist, subind)) return 0 ; + if (!s6rc_repo_makesvlist(repo, set, sa, svlist, rxind)) return 0 ; byname = genalloc_s(s6rc_repo_sv, svlist) ; ntot = genalloc_len(s6rc_repo_sv, svlist) ; if (!ntot) return 0 ; - for (uint8_t sub = 0 ; sub < 4 ; sub++) sublen[sub] = (sub == 3 ? ntot : subind[sub+1]) - subind[sub] ; + for (uint8_t rx = 0 ; rx < 4 ; rx++) rxlen[rx] = (rx == 3 ? ntot : rxind[rx+1]) - rxind[rx] ; - char const *bysub[ntot] ; - char bysub_storage[sa->len - sabase] ; - memcpy(bysub_storage, sa->s + sabase, sa->len - sabase) ; - for (uint32_t i = 0 ; i < ntot ; i++) bysub[i] = bysub_storage + byname[i].pos - sabase ; + char const *byrx[ntot] ; + char byrx_storage[sa->len - sabase] ; + memcpy(byrx_storage, sa->s + sabase, sa->len - sabase) ; + for (uint32_t i = 0 ; i < ntot ; i++) byrx[i] = byrx_storage + byname[i].pos - sabase ; qsortr(byname, ntot, sizeof(s6rc_repo_sv), &s6rc_repo_sv_cmpr, sa->s) ; - for (uint8_t sub = 0 ; sub < 4 ; sub++) if (sublen[sub]) + for (uint8_t rx = 0 ; rx < 4 ; rx++) if (rxlen[rx]) { - e = s6rc_repo_fixsub(repo, set, sub, byname, bysub, ntot, options, subind, sublen, verbosity, sa, badga, gatmp) ; + e = s6rc_repo_fixrx(repo, set, rx, byname, byrx, ntot, options, rxind, rxlen, verbosity, sa, badga, gatmp) ; if (e) break ; } diff --git a/src/repo/s6rc_repo_listrx.c b/src/repo/s6rc_repo_listrx.c new file mode 100644 index 0000000..5f10ab7 --- /dev/null +++ b/src/repo/s6rc_repo_listrx.c @@ -0,0 +1,20 @@ +/* ISC license. */ + +#include + +#include + +int s6rc_repo_listrx (char const *repo, char const *set, char const *rx, stralloc *sa, genalloc *ga) +{ + size_t repolen = strlen(repo) ; + size_t setlen = strlen(set) ; + size_t rxlen = strlen(rx) ; + char fn[repolen + setlen + 11 + rxlen] ; + memcpy(fn, repo, repolen) ; + memcpy(fn + repolen, "/sources/", 9) ; + memcpy(fn + repolen + 9, set, setlen) ; + fn[repolen + 9 + setlen] = '/' ; + memcpy(fn + repolen + 10 + setlen, rx, rxlen + 1) ; + + return s6rc_repo_ls(fn, sa, ga) ; +} diff --git a/src/repo/s6rc_repo_listsub.c b/src/repo/s6rc_repo_listsub.c deleted file mode 100644 index f6fa7c5..0000000 --- a/src/repo/s6rc_repo_listsub.c +++ /dev/null @@ -1,20 +0,0 @@ -/* ISC license. */ - -#include - -#include - -int s6rc_repo_listsub (char const *repo, char const *set, char const *sub, stralloc *sa, genalloc *ga) -{ - size_t repolen = strlen(repo) ; - size_t setlen = strlen(set) ; - size_t sublen = strlen(sub) ; - char fn[repolen + setlen + 11 + sublen] ; - memcpy(fn, repo, repolen) ; - memcpy(fn + repolen, "/sources/", 9) ; - memcpy(fn + repolen + 9, set, setlen) ; - fn[repolen + 9 + setlen] = '/' ; - memcpy(fn + repolen + 10 + setlen, sub, sublen + 1) ; - - return s6rc_repo_ls(fn, sa, ga) ; -} diff --git a/src/repo/s6rc_repo_makedefbundle.c b/src/repo/s6rc_repo_makedefbundle.c index e56fa74..c31262f 100644 --- a/src/repo/s6rc_repo_makedefbundle.c +++ b/src/repo/s6rc_repo_makedefbundle.c @@ -24,7 +24,7 @@ int s6rc_repo_makedefbundle (char const *repo, char const *set, char const *bund mode_t m ; DIR *dir ; char bfn[bfnlen + 1] ; - char subfn[repolen + setlen + 17] ; + char rxfn[repolen + setlen + 17] ; memcpy(bfn, repo, repolen) ; memcpy(bfn + repolen, "/sources/.atomics/", 18) ; @@ -71,14 +71,14 @@ int s6rc_repo_makedefbundle (char const *repo, char const *set, char const *bund } memcpy(bfn + repolen + setlen + 18 + bundlelen, "contents.d/", 11) ; - memcpy(subfn, bfn, repolen + 10 + setlen) ; - for (uint8_t sub = 2 ; sub < 4 ; sub++) + memcpy(rxfn, bfn, repolen + 10 + setlen) ; + for (uint8_t rx = 2 ; rx < 4 ; rx++) { - memcpy(subfn + repolen + 10 + setlen, s6rc_repo_subnames[sub], 7) ; - dir = opendir(subfn) ; + memcpy(rxfn + repolen + 10 + setlen, s6rc_repo_rxnames[rx], 7) ; + dir = opendir(rxfn) ; if (!dir) { - strerr_warnfu2sys("opendir ", subfn) ; + strerr_warnfu2sys("opendir ", rxfn) ; return 0 ; } @@ -104,7 +104,7 @@ int s6rc_repo_makedefbundle (char const *repo, char const *set, char const *bund dir_close(dir) ; if (errno) { - strerr_warnfu2sys("readdir ", subfn) ; + strerr_warnfu2sys("readdir ", rxfn) ; return 0 ; } } diff --git a/src/repo/s6rc_repo_makesetbundles.c b/src/repo/s6rc_repo_makesetbundles.c index 5053ac5..91ab05d 100644 --- a/src/repo/s6rc_repo_makesetbundles.c +++ b/src/repo/s6rc_repo_makesetbundles.c @@ -57,10 +57,10 @@ int s6rc_repo_makesetbundles (char const *repo, char const *set, unsigned int ve return 0 ; } - n = s6rc_repo_listsub(repo, set, s6rc_repo_subnames[0], &sa, &ga) ; + n = s6rc_repo_listrx(repo, set, s6rc_repo_rxnames[0], &sa, &ga) ; if (n < 0) { - strerr_warnfu6sys("list sub ", s6rc_repo_subnames[0], " of set ", set, " in repository ", repo) ; + strerr_warnfu6sys("list rx ", s6rc_repo_rxnames[0], " of set ", set, " in repository ", repo) ; goto err ; } diff --git a/src/repo/s6rc_repo_makesvlist.c b/src/repo/s6rc_repo_makesvlist.c index f7f51c9..d00aada 100644 --- a/src/repo/s6rc_repo_makesvlist.c +++ b/src/repo/s6rc_repo_makesvlist.c @@ -12,13 +12,13 @@ #include -static inline int s6rc_repo_addsub (char const *sub, uint8_t i, stralloc *sa, genalloc *ga) +static inline int s6rc_repo_addrx (char const *rx, uint8_t i, stralloc *sa, genalloc *ga) { - DIR *dir = opendir(sub) ; - if (!dir) { strerr_warnfu2sys("opendir ", sub) ; return 0 ; } + DIR *dir = opendir(rx) ; + if (!dir) { strerr_warnfu2sys("opendir ", rx) ; return 0 ; } for (;;) { - s6rc_repo_sv sv = { .pos = sa->len, .sub = i } ; + s6rc_repo_sv sv = { .pos = sa->len, .rx = i } ; direntry *d ; errno = 0 ; d = readdir(dir) ; @@ -29,7 +29,7 @@ static inline int s6rc_repo_addsub (char const *sub, uint8_t i, stralloc *sa, ge || !genalloc_append(s6rc_repo_sv, ga, &sv)) goto nomem ; } dir_close(dir) ; - if (errno) { strerr_warnfu2sys("readdir ", sub) ; return 0 ; } + if (errno) { strerr_warnfu2sys("readdir ", rx) ; return 0 ; } return 1 ; nomem: @@ -43,17 +43,17 @@ int s6rc_repo_makesvlist (char const *repo, char const *set, stralloc *sa, genal size_t setlen = strlen(set) ; size_t sabase = sa->len ; size_t gabase = genalloc_len(s6rc_repo_sv, ga) ; - char subfn[repolen + setlen + 17] ; + char rxfn[repolen + setlen + 17] ; - memcpy(subfn, repo, repolen) ; - memcpy(subfn + repolen, "/sources/", 9) ; - memcpy(subfn + repolen + 9, set, setlen) ; - subfn[repolen + 9 + setlen] = '/' ; + memcpy(rxfn, repo, repolen) ; + memcpy(rxfn + repolen, "/sources/", 9) ; + memcpy(rxfn + repolen + 9, set, setlen) ; + rxfn[repolen + 9 + setlen] = '/' ; for (uint8_t i = 0 ; i < 4 ; i++) { if (tab) tab[i] = genalloc_len(s6rc_repo_sv, ga) ; - memcpy(subfn + repolen + setlen + 10, s6rc_repo_subnames[i], 7) ; - if (!s6rc_repo_addsub(subfn, i, sa, ga)) goto err ; + memcpy(rxfn + repolen + setlen + 10, s6rc_repo_rxnames[i], 7) ; + if (!s6rc_repo_addrx(rxfn, i, sa, ga)) goto err ; } return 1 ; diff --git a/src/repo/s6rc_repo_moveservices.c b/src/repo/s6rc_repo_moveservices.c index cac2052..5d0b5d1 100644 --- a/src/repo/s6rc_repo_moveservices.c +++ b/src/repo/s6rc_repo_moveservices.c @@ -10,7 +10,7 @@ #include -int s6rc_repo_moveservices (char const *repo, char const *set, s6rc_repo_sv const *services, uint32_t n, uint8_t newsub, char const *storage, unsigned int verbosity) +int s6rc_repo_moveservices (char const *repo, char const *set, s6rc_repo_sv const *services, uint32_t n, uint8_t newrx, char const *storage, unsigned int verbosity) { size_t repolen = strlen(repo) ; size_t setlen = strlen(set) ; @@ -28,19 +28,19 @@ int s6rc_repo_moveservices (char const *repo, char const *set, s6rc_repo_sv cons oldfn[repolen + 9 + setlen] = '/' ; oldfn[repolen + 16 + setlen] = '/' ; memcpy(newfn, oldfn, repolen + 10 + setlen) ; - memcpy(newfn + repolen + 10 + setlen, s6rc_repo_subnames[newsub], 6) ; + memcpy(newfn + repolen + 10 + setlen, s6rc_repo_rxnames[newrx], 6) ; newfn[repolen + 16 + setlen] = '/' ; for (uint32_t i = 0 ; i < n ; i++) { size_t len = strlen(storage + services[i].pos) ; - memcpy(oldfn + repolen + setlen + 10, s6rc_repo_subnames[services[i].sub], 6) ; + memcpy(oldfn + repolen + setlen + 10, s6rc_repo_rxnames[services[i].rx], 6) ; memcpy(oldfn + repolen + setlen + 17, storage + services[i].pos, len + 1) ; memcpy(newfn + repolen + setlen + 17, storage + services[i].pos, len + 1) ; if (access(newfn, F_OK) == 0) { if (verbosity >= 2) - strerr_warni8x("service ", storage + services[i].pos, " already existed in subset ", s6rc_repo_subnames[newsub], " of set ", set, " in repository ", repo) ; + strerr_warni8x("service ", storage + services[i].pos, " already existed in rxset ", s6rc_repo_rxnames[newrx], " of set ", set, " in repository ", repo) ; } else if (errno != ENOENT) { @@ -54,7 +54,7 @@ int s6rc_repo_moveservices (char const *repo, char const *set, s6rc_repo_sv cons } if (verbosity >= 4) { - strerr_warnt10x("repository ", repo, ", set ", set, ", from subset ", s6rc_repo_subnames[services[i].sub], " to subset ", s6rc_repo_subnames[newsub], ": successfully moved service ", storage + services[i].pos) ; + strerr_warnt10x("repository ", repo, ", set ", set, ", from rxset ", s6rc_repo_rxnames[services[i].rx], " to rxset ", s6rc_repo_rxnames[newrx], ": successfully moved service ", storage + services[i].pos) ; } } if (n) diff --git a/src/repo/s6rc_repo_rxnames.c b/src/repo/s6rc_repo_rxnames.c new file mode 100644 index 0000000..6b83f78 --- /dev/null +++ b/src/repo/s6rc_repo_rxnames.c @@ -0,0 +1,5 @@ +/* ISC license. */ + +#include + +char const s6rc_repo_rxnames[4][7] = { "masked", "usable", "active", "always" } ; diff --git a/src/repo/s6rc_repo_setcompile.c b/src/repo/s6rc_repo_setcompile.c index 5da136a..55f06ca 100644 --- a/src/repo/s6rc_repo_setcompile.c +++ b/src/repo/s6rc_repo_setcompile.c @@ -9,23 +9,23 @@ int s6rc_repo_setcompile (char const *repo, char const *set, char const *defbundle, char *oldc, unsigned int verbosity, char const *fdhuser) { - static char const *const subs[4] = { "bundle", s6rc_repo_subnames[1], s6rc_repo_subnames[2], s6rc_repo_subnames[3] } ; + static char const *const rxs[4] = { "bundle", s6rc_repo_rxnames[1], s6rc_repo_rxnames[2], s6rc_repo_rxnames[3] } ; int r ; if (!s6rc_repo_makesetbundles(repo, set, verbosity)) return -1 ; if (!s6rc_repo_makedefbundle(repo, set, defbundle)) return -1 ; - r = s6rc_repo_compile(repo, set, subs, 4, oldc, verbosity, fdhuser) ; + r = s6rc_repo_compile(repo, set, rxs, 4, oldc, verbosity, fdhuser) ; { int e = errno ; size_t repolen = strlen(repo) ; size_t setlen = strlen(set) ; - size_t sublen = strlen(subs[0]) ; - char fn[repolen + setlen + 11 + sublen] ; + size_t rxlen = strlen(rxs[0]) ; + char fn[repolen + setlen + 11 + rxlen] ; memcpy(fn, repo, repolen) ; memcpy(fn + repolen, "/sources/", 9) ; memcpy(fn + repolen + 9, set, setlen) ; fn[repolen + 9 + setlen] = '/' ; - memcpy(fn + repolen + setlen + 10, subs[0], sublen + 1) ; + memcpy(fn + repolen + setlen + 10, rxs[0], rxlen + 1) ; rm_rf(fn) ; errno = e ; } diff --git a/src/repo/s6rc_repo_subnames.c b/src/repo/s6rc_repo_subnames.c deleted file mode 100644 index 2653f01..0000000 --- a/src/repo/s6rc_repo_subnames.c +++ /dev/null @@ -1,5 +0,0 @@ -/* ISC license. */ - -#include - -char const s6rc_repo_subnames[4][7] = { "masked", "usable", "active", "always" } ; diff --git a/src/repo/s6rc_repo_sync.c b/src/repo/s6rc_repo_sync.c index aecbd7c..d14e86f 100644 --- a/src/repo/s6rc_repo_sync.c +++ b/src/repo/s6rc_repo_sync.c @@ -159,9 +159,9 @@ int s6rc_repo_sync (char const *repo, unsigned int verbosity, char const *fdhuse /* Compile the reference db - also checks consistency of new stores */ { - char const *subs[2] = { ato + repolen + 9, bun + repolen + 9 } ; + char const *rxs[2] = { ato + repolen + 9, bun + repolen + 9 } ; char oldc[repolen + 49] ; - int r = s6rc_repo_compile(repo, ".ref", subs, 2, oldc, verbosity, fdhuser) ; + int r = s6rc_repo_compile(repo, ".ref", rxs, 2, oldc, verbosity, fdhuser) ; if (r < 0) goto err ; if (!r) { cleanup(ato, bun) ; return 0 ; } if (r == 2) rm_rf(oldc) ; diff --git a/src/repo/s6rc_repo_syncset_tmp.c b/src/repo/s6rc_repo_syncset_tmp.c index 963a87a..1ce807d 100644 --- a/src/repo/s6rc_repo_syncset_tmp.c +++ b/src/repo/s6rc_repo_syncset_tmp.c @@ -15,20 +15,20 @@ #include -static int unlink_stales_in_sub (char const *repo, size_t repolen, char const *set, uint8_t sub, stralloc *sa, genalloc *ga, unsigned int verbosity) +static int unlink_stales_in_rx (char const *repo, size_t repolen, char const *set, uint8_t rx, stralloc *sa, genalloc *ga, unsigned int verbosity) { size_t setlen = strlen(set) ; - size_t subfnlen = repolen + setlen + 16 ; - char subfn[subfnlen + 1] ; - memcpy(subfn, repo, repolen) ; - memcpy(subfn + repolen, "/sources/", 9) ; - memcpy(subfn + repolen + 9, set, setlen) ; - subfn[repolen + 9 + setlen] = '/' ; - memcpy(subfn + repolen + 10 + setlen, s6rc_repo_subnames[sub], 7) ; - DIR *dir = opendir(subfn) ; + size_t rxfnlen = repolen + setlen + 16 ; + char rxfn[rxfnlen + 1] ; + memcpy(rxfn, repo, repolen) ; + memcpy(rxfn + repolen, "/sources/", 9) ; + memcpy(rxfn + repolen + 9, set, setlen) ; + rxfn[repolen + 9 + setlen] = '/' ; + memcpy(rxfn + repolen + 10 + setlen, s6rc_repo_rxnames[rx], 7) ; + DIR *dir = opendir(rxfn) ; if (!dir) { - strerr_warnfu2sys("opendir ", subfn) ; + strerr_warnfu2sys("opendir ", rxfn) ; return 0 ; } for (;;) @@ -40,10 +40,10 @@ static int unlink_stales_in_sub (char const *repo, size_t repolen, char const *s if (!d) break ; if (d->d_name[0] == '.') continue ; len = strlen(d->d_name) ; - char fn[subfnlen + len + 2] ; - memcpy(fn, subfn, subfnlen) ; - fn[subfnlen] = '/' ; - memcpy(fn + subfnlen + 1, d->d_name, len+1) ; + char fn[rxfnlen + len + 2] ; + memcpy(fn, rxfn, rxfnlen) ; + fn[rxfnlen] = '/' ; + memcpy(fn + rxfnlen + 1, d->d_name, len+1) ; if (access(fn, F_OK) == -1) { if (errno != ENOENT) @@ -53,7 +53,7 @@ static int unlink_stales_in_sub (char const *repo, size_t repolen, char const *s } unlink_void(fn) ; if (verbosity >= 3) - strerr_warni6x("service ", d->d_name, " does not exist anymore, removed from sub ", s6rc_repo_subnames[sub], " of set ", set) ; + strerr_warni6x("service ", d->d_name, " does not exist anymore, removed from rx ", s6rc_repo_rxnames[rx], " of set ", set) ; } else { @@ -63,7 +63,7 @@ static int unlink_stales_in_sub (char const *repo, size_t repolen, char const *s } if (errno) { - strerr_warnfu2sys("readdir ", subfn) ; + strerr_warnfu2sys("readdir ", rxfn) ; goto err ; } @@ -81,8 +81,8 @@ int s6rc_repo_syncset_tmp (char const *repo, char const *set, stralloc *sa, gena size_t sabase = sa->len ; size_t gabase = genalloc_len(size_t, ga) ; - for (uint8_t sub = 0 ; sub < 4 ; sub++) - if (!unlink_stales_in_sub(repo, repolen, set, sub, sa, ga, verbosity)) goto err ; + for (uint8_t rx = 0 ; rx < 4 ; rx++) + if (!unlink_stales_in_rx(repo, repolen, set, rx, sa, ga, verbosity)) goto err ; { uint32_t n = genalloc_len(size_t, ga) ; -- cgit v1.3.1