From 20f7189696e8e94b603c88d009df6a4a2a129df7 Mon Sep 17 00:00:00 2001
From: obarun <eric@obarun.org>
Date: Fri, 17 Feb 2023 20:56:51 +1100
Subject: [PATCH] remove service master resolve file. Thanks for your service!
 This resolve file was used with s6-rc. The things now are simplier and
 flexible.

---
 src/include/66/service.h                      |  74 +--------
 src/lib66/resolve/resolve_check_g.c           |   2 +-
 src/lib66/resolve/resolve_get_field_tosa.c    |   6 -
 src/lib66/resolve/resolve_get_field_tosa_g.c  |   5 -
 src/lib66/resolve/resolve_modify_field.c      |   8 -
 src/lib66/resolve/resolve_read_cdb.c          |   5 -
 src/lib66/resolve/resolve_read_g.c            |   2 +-
 src/lib66/resolve/resolve_remove_g.c          |   2 +-
 src/lib66/resolve/resolve_write_cdb.c         |   5 -
 src/lib66/resolve/resolve_write_g.c           |   2 +-
 src/lib66/service/deps-lib/deps               |   8 -
 .../service/service_resolve_master_copy.c     |  55 -------
 .../service/service_resolve_master_create.c   |  50 ------
 .../service_resolve_master_get_field_tosa.c   | 107 -------------
 .../service_resolve_master_modify_field.c     | 150 ------------------
 .../service/service_resolve_master_read_cdb.c | 102 ------------
 .../service/service_resolve_master_write.c    | 119 --------------
 .../service_resolve_master_write_cdb.c        |  74 ---------
 18 files changed, 11 insertions(+), 765 deletions(-)
 delete mode 100644 src/lib66/service/service_resolve_master_copy.c
 delete mode 100644 src/lib66/service/service_resolve_master_create.c
 delete mode 100644 src/lib66/service/service_resolve_master_get_field_tosa.c
 delete mode 100644 src/lib66/service/service_resolve_master_modify_field.c
 delete mode 100644 src/lib66/service/service_resolve_master_read_cdb.c
 delete mode 100644 src/lib66/service/service_resolve_master_write.c
 delete mode 100644 src/lib66/service/service_resolve_master_write_cdb.c

diff --git a/src/include/66/service.h b/src/include/66/service.h
index 186ddd32..c57f5eed 100644
--- a/src/include/66/service.h
+++ b/src/include/66/service.h
@@ -32,11 +32,10 @@ struct resolve_service_addon_path_s
 {
     uint32_t home ; // string, /var/lib/66 or /home/user/.66
     uint32_t frontend ;  // string, /home/<user>/.66/service or /etc/66/service or /usr/lib/66/service
-    uint32_t tree ; // string, /var/lib/66/system/treename
-    uint32_t status ; //string, /var/lib/66/system/treename/servicedirs/svc/service_name/state/status
+    uint32_t status ; //string, /var/lib/66/system/service/svc/service_name/state/status
 } ;
 
-#define RESOLVE_SERVICE_ADDON_PATH_ZERO { 0,0,0,0 }
+#define RESOLVE_SERVICE_ADDON_PATH_ZERO { 0,0,0 }
 
 typedef struct resolve_service_addon_dependencies_s resolve_service_addon_dependencies_t, *resolve_service_addon_dependencies_t_ref ;
 struct resolve_service_addon_dependencies_s
@@ -97,11 +96,11 @@ typedef struct resolve_service_addon_live_s resolve_service_addon_live_t, *resol
 struct resolve_service_addon_live_s
 {
     uint32_t livedir ; // string, /run/66
-    uint32_t scandir ; // string, /run/66/state/uid/service_name/scandir/service_name -> /var/lib/66/system/treename/svc/service -> /run/66/scandir/uid
-    uint32_t statedir ; // string, /run/66/state/uid/service_name/state -> /var/lib/66/system/treename/svc/service/state
-    uint32_t eventdir ; // string, /run/66/state/uid/service_name/event -> /var/lib/66/system/treename/svc/service/event
-    uint32_t notifdir ; // string, /run/66/state/uid/service_name/notif -> /var/lib/66/system/treename/svc/service/notif
-    uint32_t supervisedir ; // string, /run/66/state/uid/service_name/supervise -> /var/lib/66/system/treename/svc/service/supervise
+    uint32_t scandir ; // string, /run/66/state/uid/service_name/scandir/service_name -> /var/lib/66/system/service/svc/service_name -> /run/66/scandir/uid
+    uint32_t statedir ; // string, /run/66/state/uid/service_name/state -> /var/lib/66/system/service/svc/service_name/state
+    uint32_t eventdir ; // string, /run/66/state/uid/service_name/event -> /var/lib/66/system/service/svc/service_name/event
+    uint32_t notifdir ; // string, /run/66/state/uid/service_name/notif -> /var/lib/66/system/service/svc/service_name/notif
+    uint32_t supervisedir ; // string, /run/66/state/uid/service_name/supervise -> /var/lib/66/system/service/svc/service_name/supervise
     uint32_t fdholderdir ; // string, /run/66/state/uid/service_name/scandir/fdholder
     uint32_t oneshotddir ; // string, /run/66/state/uid/service_name/scandir/oneshotd
 } ;
@@ -223,7 +222,6 @@ enum resolve_service_enum_e
     // path
     E_RESOLVE_SERVICE_HOME,
     E_RESOLVE_SERVICE_FRONTEND,
-    E_RESOLVE_SERVICE_TREE,
     E_RESOLVE_SERVICE_STATUS,
 
     // dependencies
@@ -294,56 +292,7 @@ enum resolve_service_enum_e
 
 } ;
 
-typedef struct resolve_service_master_s resolve_service_master_t, *resolve_service_master_t_ref ;
-struct resolve_service_master_s
-{
-    uint32_t salen ;
-    stralloc sa ;
-
-    uint32_t name ;
-
-    uint32_t classic ;
-    uint32_t bundle ;
-    uint32_t oneshot ;
-    uint32_t module ;
-    uint32_t enabled ;
-    uint32_t disabled ;
-    uint32_t contents ;
-
-    uint32_t nclassic ;
-    uint32_t nbundle ;
-    uint32_t noneshot ;
-    uint32_t nmodule ;
-    uint32_t nenabled ;
-    uint32_t ndisabled ;
-    uint32_t ncontents ;
-} ;
-#define RESOLVE_SERVICE_MASTER_ZERO { 0,STRALLOC_ZERO,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
-
-typedef enum resolve_service_master_enum_e resolve_service_master_enum_t, *resolve_service_master_enum_t_ref;
-enum resolve_service_master_enum_e
-{
-    E_RESOLVE_SERVICE_MASTER_NAME = 0,
-    E_RESOLVE_SERVICE_MASTER_CLASSIC,
-    E_RESOLVE_SERVICE_MASTER_BUNDLE,
-    E_RESOLVE_SERVICE_MASTER_ONESHOT,
-    E_RESOLVE_SERVICE_MASTER_MODULE,
-    E_RESOLVE_SERVICE_MASTER_ENABLED,
-    E_RESOLVE_SERVICE_MASTER_DISABLED,
-    E_RESOLVE_SERVICE_MASTER_CONTENTS,
-    E_RESOLVE_SERVICE_MASTER_NCLASSIC,
-    E_RESOLVE_SERVICE_MASTER_NBUNDLE,
-    E_RESOLVE_SERVICE_MASTER_NONESHOT,
-    E_RESOLVE_SERVICE_MASTER_NMODULE,
-    E_RESOLVE_SERVICE_MASTER_NENABLED,
-    E_RESOLVE_SERVICE_MASTER_NDISABLED,
-    E_RESOLVE_SERVICE_MASTER_NCONTENTS,
-    E_RESOLVE_SERVICE_MASTER_ENDOFKEY
-} ;
-
 extern resolve_field_table_t resolve_service_field_table[] ;
-extern resolve_field_table_t resolve_service_master_field_table[] ;
-
 
 extern int service_cmp_basedir(char const *dir) ;
 extern int service_endof_dir(char const *dir, char const *name) ;
@@ -360,15 +309,6 @@ extern int service_resolve_write(resolve_service_t *res) ;
 extern int service_resolve_write_cdb(cdbmaker *c, resolve_service_t *sres) ;
 extern void service_enable_disable(graph_t *g, char const *base, char const *sv, uint8_t action) ;
 
-/** Master */
-extern int service_resolve_master_copy(resolve_service_master_t *dst, resolve_service_master_t *mres) ;
-extern int service_resolve_master_create(char const *base, char const *treename) ;
-extern int service_resolve_master_get_field_tosa(stralloc *sa, resolve_service_master_t *mres, resolve_service_master_enum_t field) ;
-extern int service_resolve_master_modify_field(resolve_service_master_t *mres, uint8_t field, char const *data) ;
-extern int service_resolve_master_read_cdb(cdb *c, resolve_service_master_t *tres) ;
-extern int service_resolve_master_write(graph_t *graph, char const *dest) ;
-extern int service_resolve_master_write_cdb(cdbmaker *c, resolve_service_master_t *mres) ;
-
 /** Graph */
 extern void service_graph_g(char const *alist, size_t alen, graph_t *graph, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint32_t flag) ;
 extern void service_graph_collect(graph_t *g, char const *alist, size_t alen, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint32_t flag) ;
diff --git a/src/lib66/resolve/resolve_check_g.c b/src/lib66/resolve/resolve_check_g.c
index 5598d2c5..664cc9f2 100644
--- a/src/lib66/resolve/resolve_check_g.c
+++ b/src/lib66/resolve/resolve_check_g.c
@@ -30,7 +30,7 @@ int resolve_check_g(resolve_wrapper_t *wres, char const *base, char const *name)
 
     char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
 
-    if (wres->type == DATA_SERVICE || wres->type == DATA_SERVICE_MASTER) {
+    if (wres->type == DATA_SERVICE) {
 
         auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
 
diff --git a/src/lib66/resolve/resolve_get_field_tosa.c b/src/lib66/resolve/resolve_get_field_tosa.c
index 51fa494d..2b1a2b94 100644
--- a/src/lib66/resolve/resolve_get_field_tosa.c
+++ b/src/lib66/resolve/resolve_get_field_tosa.c
@@ -32,12 +32,6 @@ int resolve_get_field_tosa(stralloc *sa, resolve_wrapper_t_ref wres, uint8_t fie
 
         return service_resolve_get_field_tosa(sa, res, field) ;
 
-    } else if (wres->type == DATA_SERVICE_MASTER) {
-
-        resolve_service_master_t_ref res = (resolve_service_master_t *)wres->obj  ;
-
-        return service_resolve_master_get_field_tosa(sa, res, field) ;
-
     } else if (wres->type == DATA_TREE) {
 
         resolve_tree_t_ref res = (resolve_tree_t *)wres->obj  ;
diff --git a/src/lib66/resolve/resolve_get_field_tosa_g.c b/src/lib66/resolve/resolve_get_field_tosa_g.c
index 08fedd32..2bd7413f 100644
--- a/src/lib66/resolve/resolve_get_field_tosa_g.c
+++ b/src/lib66/resolve/resolve_get_field_tosa_g.c
@@ -36,7 +36,6 @@ int resolve_get_field_tosa_g(stralloc *sa, char const *base, char const *name, u
     int e = 0 ;
 
     resolve_service_t res = RESOLVE_SERVICE_ZERO ;
-    resolve_service_master_t mres = RESOLVE_SERVICE_MASTER_ZERO ;
     resolve_tree_t tres = RESOLVE_TREE_ZERO ;
     resolve_tree_master_t tmres = RESOLVE_TREE_MASTER_ZERO ;
     resolve_wrapper_t_ref wres = 0 ;
@@ -45,10 +44,6 @@ int resolve_get_field_tosa_g(stralloc *sa, char const *base, char const *name, u
 
         wres = resolve_set_struct(data_type, &res) ;
 
-    } else if (data_type == DATA_SERVICE_MASTER) {
-
-        wres = resolve_set_struct(data_type, &mres) ;
-
     } else if (data_type == DATA_TREE) {
 
         wres = resolve_set_struct(data_type, &tres) ;
diff --git a/src/lib66/resolve/resolve_modify_field.c b/src/lib66/resolve/resolve_modify_field.c
index 101dbe50..ac3fc507 100644
--- a/src/lib66/resolve/resolve_modify_field.c
+++ b/src/lib66/resolve/resolve_modify_field.c
@@ -32,14 +32,6 @@ int resolve_modify_field(resolve_wrapper_t_ref wres, uint8_t field, char const *
 
         return service_resolve_modify_field(res, field, by) ;
 
-    } else if (wres->type == DATA_SERVICE_MASTER) {
-
-        resolve_service_master_t_ref res = (resolve_service_master_t *)wres->obj  ;
-
-        log_trace("modify field ", resolve_service_master_field_table[field].field," of resolve Master file of services with value: ", by) ;
-
-        return service_resolve_master_modify_field(res, field, by) ;
-
     } else if (wres->type == DATA_TREE) {
 
         resolve_tree_t_ref res = (resolve_tree_t *)wres->obj  ;
diff --git a/src/lib66/resolve/resolve_read_cdb.c b/src/lib66/resolve/resolve_read_cdb.c
index 43dde9d2..36df6e97 100644
--- a/src/lib66/resolve/resolve_read_cdb.c
+++ b/src/lib66/resolve/resolve_read_cdb.c
@@ -46,11 +46,6 @@ int resolve_read_cdb(resolve_wrapper_t *wres, char const *file)
         if (!service_resolve_read_cdb(&c, ((resolve_service_t *)wres->obj)))
             goto err ;
 
-    } else if (wres->type == DATA_SERVICE_MASTER) {
-
-        if (!service_resolve_master_read_cdb(&c, ((resolve_service_master_t *)wres->obj)))
-            goto err ;
-
     } else if (wres->type == DATA_TREE){
 
         if (!tree_resolve_read_cdb(&c, ((resolve_tree_t *)wres->obj)))
diff --git a/src/lib66/resolve/resolve_read_g.c b/src/lib66/resolve/resolve_read_g.c
index d7167779..2ea787d9 100644
--- a/src/lib66/resolve/resolve_read_g.c
+++ b/src/lib66/resolve/resolve_read_g.c
@@ -32,7 +32,7 @@ int resolve_read_g(resolve_wrapper_t *wres, char const *base, char const *name)
 
     char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + 1] ;
 
-    if (wres->type == DATA_SERVICE || wres->type == DATA_SERVICE_MASTER) {
+    if (wres->type == DATA_SERVICE) {
 
         auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
 
diff --git a/src/lib66/resolve/resolve_remove_g.c b/src/lib66/resolve/resolve_remove_g.c
index ae12d424..64aeb014 100644
--- a/src/lib66/resolve/resolve_remove_g.c
+++ b/src/lib66/resolve/resolve_remove_g.c
@@ -32,7 +32,7 @@ void resolve_remove_g(char const *base, char const *name, uint8_t data_type)
     size_t namelen = strlen(name) ;
     char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + 1] ;
 
-    if (data_type == DATA_SERVICE || data_type == DATA_SERVICE_MASTER) {
+    if (data_type == DATA_SERVICE) {
 
         auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
 
diff --git a/src/lib66/resolve/resolve_write_cdb.c b/src/lib66/resolve/resolve_write_cdb.c
index 2f6d88d7..4ece9f14 100644
--- a/src/lib66/resolve/resolve_write_cdb.c
+++ b/src/lib66/resolve/resolve_write_cdb.c
@@ -56,11 +56,6 @@ int resolve_write_cdb(resolve_wrapper_t *wres, char const *file)
         if (!service_resolve_write_cdb(&c, ((resolve_service_t *)wres->obj)))
             goto err ;
 
-    } else if (wres->type == DATA_SERVICE_MASTER) {
-
-        if (!service_resolve_master_write_cdb(&c, ((resolve_service_master_t *)wres->obj)))
-            goto err ;
-
     } else if (wres->type == DATA_TREE) {
 
         if (!tree_resolve_write_cdb(&c, ((resolve_tree_t *)wres->obj)))
diff --git a/src/lib66/resolve/resolve_write_g.c b/src/lib66/resolve/resolve_write_g.c
index e0441575..ca225ce7 100644
--- a/src/lib66/resolve/resolve_write_g.c
+++ b/src/lib66/resolve/resolve_write_g.c
@@ -29,7 +29,7 @@ int resolve_write_g(resolve_wrapper_t *wres, char const *base, char const *name)
 
     char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
 
-    if (wres->type == DATA_SERVICE || wres->type == DATA_SERVICE_MASTER) {
+    if (wres->type == DATA_SERVICE) {
 
         auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
 
diff --git a/src/lib66/service/deps-lib/deps b/src/lib66/service/deps-lib/deps
index 26051bc8..7c95830e 100644
--- a/src/lib66/service/deps-lib/deps
+++ b/src/lib66/service/deps-lib/deps
@@ -11,16 +11,8 @@ service_resolve_array_free.o
 service_resolve_array_search.o
 service_resolve_copy.o
 service_resolve_get_field_tosa.o
-service_resolve_master_copy.o
-service_resolve_master_create.o
-service_resolve_master_get_field_tosa.o
-service_resolve_master_modify_field.o
-service_resolve_master_read_cdb.o
-service_resolve_master_write.o
-service_resolve_master_write_cdb.o
 service_resolve_modify_field.o
 service_resolve_read_cdb.o
-service_resolve_sort_bytype.o
 service_resolve_write.o
 service_resolve_write_cdb.o
 -loblibs
diff --git a/src/lib66/service/service_resolve_master_copy.c b/src/lib66/service/service_resolve_master_copy.c
deleted file mode 100644
index 96791329..00000000
--- a/src/lib66/service/service_resolve_master_copy.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * service_resolve_master_copy.c
- *
- * Copyright (c) 2018-2021 Eric Vidal <eric@obarun.org>
- *
- * All rights reserved.
- *
- * This file is part of Obarun. It is subject to the license terms in
- * the LICENSE file found in the top-level directory of this
- * distribution.
- * This file may not be copied, modified, propagated, or distributed
- * except according to the terms contained in the LICENSE file.
- */
-
-#include <stddef.h>
-
-#include <oblibs/log.h>
-
-#include <skalibs/stralloc.h>
-
-#include <66/service.h>
-
-int service_resolve_master_copy(resolve_service_master_t *dst, resolve_service_master_t *mres)
-{
-    log_flow() ;
-
-    stralloc_free(&dst->sa) ;
-
-    size_t len = mres->sa.len - 1 ;
-    dst->salen = mres->salen ;
-
-    if (!stralloc_catb(&dst->sa,mres->sa.s,len) ||
-        !stralloc_0(&dst->sa))
-            return 0 ;
-
-    dst->name = mres->name ;
-    dst->classic = mres->classic ;
-    dst->bundle = mres->bundle ;
-    dst->oneshot = mres->oneshot ;
-    dst->module = mres->module ;
-    dst->enabled = mres->enabled ;
-    dst->disabled = mres->disabled ;
-    dst->contents = mres->contents ;
-
-    dst->nclassic = mres->nclassic ;
-    dst->nbundle = mres->nbundle ;
-    dst->noneshot = mres->noneshot ;
-    dst->nmodule = mres->nmodule ;
-    dst->nenabled = mres->nenabled ;
-    dst->ndisabled = mres->ndisabled ;
-    dst->ncontents = mres->ncontents ;
-
-    return 1 ;
-
-}
diff --git a/src/lib66/service/service_resolve_master_create.c b/src/lib66/service/service_resolve_master_create.c
deleted file mode 100644
index a17eb177..00000000
--- a/src/lib66/service/service_resolve_master_create.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * service_resolve_master_create.c
- *
- * Copyright (c) 2018-2021 Eric Vidal <eric@obarun.org>
- *
- * All rights reserved.
- *
- * This file is part of Obarun. It is subject to the license terms in
- * the LICENSE file found in the top-level directory of this
- * distribution.
- * This file may not be copied, modified, propagated, or distributed
- * except according to the terms contained in the LICENSE file./
- */
-
-#include <string.h>
-
-#include <oblibs/log.h>
-#include <oblibs/string.h>
-
-#include <66/constants.h>
-#include <66/resolve.h>
-#include <66/service.h>
-
-int service_resolve_master_create(char const *base, char const *treename)
-{
-
-    log_flow() ;
-
-    int e = 0 ;
-    size_t baselen = strlen(base), treelen = strlen(treename) ;
-    resolve_service_master_t mres = RESOLVE_SERVICE_MASTER_ZERO ;
-    resolve_wrapper_t_ref wres = resolve_set_struct(DATA_SERVICE_MASTER, &mres) ;
-    char dst[baselen + SS_SYSTEM_LEN + 1 + treelen + SS_SVDIRS_LEN + 1] ;
-
-    resolve_init(wres) ;
-
-    mres.name = resolve_add_string(wres, SS_MASTER + 1) ;
-
-    auto_strings(dst, base, SS_SYSTEM, "/", treename, SS_SVDIRS) ;
-
-    log_trace("write Master resolve file of services") ;
-    if (!resolve_write(wres, dst, SS_MASTER + 1))
-        goto err ;
-
-    e = 1 ;
-
-    err:
-        resolve_free(wres) ;
-        return e ;
-}
diff --git a/src/lib66/service/service_resolve_master_get_field_tosa.c b/src/lib66/service/service_resolve_master_get_field_tosa.c
deleted file mode 100644
index bec58c17..00000000
--- a/src/lib66/service/service_resolve_master_get_field_tosa.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * service_resolve_master_get_field_tosa.c
- *
- * Copyright (c) 2018-2021 Eric Vidal <eric@obarun.org>
- *
- * All rights reserved.
- *
- * This file is part of Obarun. It is subject to the license terms in
- * the LICENSE file found in the top-level directory of this
- * distribution.
- * This file may not be copied, modified, propagated, or distributed
- * except according to the terms contained in the LICENSE file./
- */
-
-#include <oblibs/log.h>
-#include <oblibs/string.h>
-
-#include <skalibs/stralloc.h>
-#include <skalibs/types.h>//UINT_FMT
-
-#include <66/service.h>
-
-int service_resolve_master_get_field_tosa(stralloc *sa, resolve_service_master_t *mres, resolve_service_master_enum_t field)
-{
-    log_flow() ;
-
-    char fmt[UINT32_FMT] ;
-    char const *str = 0 ;
-
-    switch(field) {
-
-        case E_RESOLVE_SERVICE_MASTER_NAME:
-            str = mres->sa.s + mres->name ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_CLASSIC:
-            str = mres->sa.s + mres->classic ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_BUNDLE:
-            str = mres->sa.s + mres->bundle ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_ONESHOT:
-            str = mres->sa.s + mres->oneshot ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_MODULE:
-            str = mres->sa.s + mres->module ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_ENABLED:
-            str = mres->sa.s + mres->enabled ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_DISABLED:
-            str = mres->sa.s + mres->disabled ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_CONTENTS:
-            str = mres->sa.s + mres->contents ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NCLASSIC:
-            fmt[uint32_fmt(fmt,mres->nclassic)] = 0 ;
-            str = fmt ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NBUNDLE:
-            fmt[uint32_fmt(fmt,mres->nbundle)] = 0 ;
-            str = fmt ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NONESHOT:
-            fmt[uint32_fmt(fmt,mres->noneshot)] = 0 ;
-            str = fmt ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NMODULE:
-            fmt[uint32_fmt(fmt,mres->nmodule)] = 0 ;
-            str = fmt ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NENABLED:
-            fmt[uint32_fmt(fmt,mres->nenabled)] = 0 ;
-            str = fmt ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NDISABLED:
-            fmt[uint32_fmt(fmt,mres->ndisabled)] = 0 ;
-            str = fmt ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NCONTENTS:
-            fmt[uint32_fmt(fmt,mres->ncontents)] = 0 ;
-            str = fmt ;
-            break ;
-
-        default:
-            return 0 ;
-    }
-
-    if (!auto_stra(sa,str))
-        return 0 ;
-
-    return 1 ;
-}
diff --git a/src/lib66/service/service_resolve_master_modify_field.c b/src/lib66/service/service_resolve_master_modify_field.c
deleted file mode 100644
index 9a39d827..00000000
--- a/src/lib66/service/service_resolve_master_modify_field.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * service_resolve_master_modify_field.c
- *
- * Copyright (c) 2018-2021 Eric Vidal <eric@obarun.org>
- *
- * All rights reserved.
- *
- * This file is part of Obarun. It is subject to the license terms in
- * the LICENSE file found in the top-level directory of this
- * distribution.
- * This file may not be copied, modified, propagated, or distributed
- * except according to the terms contained in the LICENSE file./
- */
-
-#include <stdint.h>
-#include <stdlib.h>
-
-#include <oblibs/log.h>
-
-#include <skalibs/types.h>
-
-#include <66/tree.h>
-#include <66/resolve.h>
-
-#include <66/service.h>
-
-resolve_field_table_t resolve_service_master_field_table[] = {
-
-    [E_RESOLVE_SERVICE_MASTER_NAME] = { .field = "name" },
-    [E_RESOLVE_SERVICE_MASTER_CLASSIC] = { .field = "classic" },
-    [E_RESOLVE_SERVICE_MASTER_BUNDLE] = { .field = "bundle" },
-    [E_RESOLVE_SERVICE_MASTER_ONESHOT] = { .field = "oneshot" },
-    [E_RESOLVE_SERVICE_MASTER_MODULE] = { .field = "module" },
-    [E_RESOLVE_SERVICE_MASTER_ENABLED] = { .field = "enabled" },
-    [E_RESOLVE_SERVICE_MASTER_DISABLED] = { .field = "disabled" },
-    [E_RESOLVE_SERVICE_MASTER_CONTENTS] = { .field = "contents" },
-
-    [E_RESOLVE_SERVICE_MASTER_NCLASSIC] = { .field = "nclassic" },
-    [E_RESOLVE_SERVICE_MASTER_NBUNDLE] = { .field = "nbundle" },
-    [E_RESOLVE_SERVICE_MASTER_NONESHOT] = { .field = "noneshot" },
-    [E_RESOLVE_SERVICE_MASTER_NMODULE] = { .field = "nmodule" },
-    [E_RESOLVE_SERVICE_MASTER_NENABLED] = { .field = "nenabled" },
-    [E_RESOLVE_SERVICE_MASTER_NDISABLED] = { .field = "ndisabled" },
-    [E_RESOLVE_SERVICE_MASTER_NCONTENTS] = { .field = "ncontents" },
-    [E_RESOLVE_SERVICE_MASTER_ENDOFKEY] = { .field = 0 },
-} ;
-
-int service_resolve_master_modify_field(resolve_service_master_t *mres, uint8_t field, char const *data)
-{
-    log_flow() ;
-
-    uint32_t ifield ;
-    int e = 0 ;
-
-    resolve_wrapper_t_ref wres = resolve_set_struct(DATA_SERVICE_MASTER, mres) ;
-
-    switch(field) {
-
-        case E_RESOLVE_SERVICE_MASTER_NAME:
-            mres->name = resolve_add_string(wres,data) ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_CLASSIC:
-            mres->classic = resolve_add_string(wres,data) ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_BUNDLE:
-            mres->bundle = resolve_add_string(wres,data) ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_ONESHOT:
-            mres->oneshot = resolve_add_string(wres,data) ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_MODULE:
-            mres->module = resolve_add_string(wres,data) ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_ENABLED:
-            mres->enabled = resolve_add_string(wres,data) ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_DISABLED:
-            mres->disabled = resolve_add_string(wres,data) ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_CONTENTS:
-            mres->contents = resolve_add_string(wres,data) ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NCLASSIC:
-            if (!data)
-                data = "0" ;
-            if (!uint0_scan(data, &ifield)) goto err ;
-            mres->nclassic= ifield ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NBUNDLE:
-            if (!data)
-                data = "0" ;
-            if (!uint0_scan(data, &ifield)) goto err ;
-            mres->nbundle = ifield ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NONESHOT:
-            if (!data)
-                data = "0" ;
-            if (!uint0_scan(data, &ifield)) goto err ;
-            mres->noneshot = ifield ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NMODULE:
-            if (!data)
-                data = "0" ;
-            if (!uint0_scan(data, &ifield)) goto err ;
-            mres->nmodule = ifield ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NENABLED:
-            if (!data)
-                data = "0" ;
-            if (!uint0_scan(data, &ifield)) goto err ;
-            mres->nenabled = ifield ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NDISABLED:
-            if (!data)
-                data = "0" ;
-            if (!uint0_scan(data, &ifield)) goto err ;
-            mres->ndisabled = ifield ;
-            break ;
-
-        case E_RESOLVE_SERVICE_MASTER_NCONTENTS:
-            if (!data)
-                data = "0" ;
-            if (!uint0_scan(data, &ifield)) goto err ;
-            mres->ncontents = ifield ;
-            break ;
-
-        default:
-            break ;
-    }
-
-    e = 1 ;
-
-    err:
-        free(wres) ;
-        return e ;
-
-}
diff --git a/src/lib66/service/service_resolve_master_read_cdb.c b/src/lib66/service/service_resolve_master_read_cdb.c
deleted file mode 100644
index 23447075..00000000
--- a/src/lib66/service/service_resolve_master_read_cdb.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * service_resolve_master_read_cdb.c
- *
- * Copyright (c) 2018-2021 Eric Vidal <eric@obarun.org>
- *
- * All rights reserved.
- *
- * This file is part of Obarun. It is subject to the license terms in
- * the LICENSE file found in the top-level directory of this
- * distribution.
- * This file may not be copied, modified, propagated, or distributed
- * except according to the terms contained in the LICENSE file./
- */
-
-#include <stdint.h>
-#include <stdlib.h>//free
-
-#include <oblibs/log.h>
-
-#include <skalibs/stralloc.h>
-#include <skalibs/cdb.h>
-
-#include <66/resolve.h>
-#include <66/service.h>
-
-int service_resolve_master_read_cdb(cdb *c, resolve_service_master_t *tres)
-{
-    log_flow() ;
-
-    stralloc tmp = STRALLOC_ZERO ;
-    resolve_wrapper_t_ref wres ;
-    uint32_t x ;
-
-    wres = resolve_set_struct(DATA_SERVICE_MASTER, tres) ;
-
-    resolve_init(wres) ;
-
-    /* name */
-    resolve_find_cdb(&tmp,c,"name") ;
-    tres->name = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
-
-    /* classic */
-    resolve_find_cdb(&tmp,c,"classic") ;
-    tres->classic = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
-
-    /* bundle */
-    resolve_find_cdb(&tmp,c,"bundle") ;
-    tres->bundle = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
-
-    /* oneshot */
-    resolve_find_cdb(&tmp,c,"oneshot") ;
-    tres->oneshot = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
-
-    /* modules */
-    resolve_find_cdb(&tmp,c,"module") ;
-    tres->module = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
-
-    /* enabled */
-    resolve_find_cdb(&tmp,c,"enabled") ;
-    tres->enabled = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
-
-    /* disabled */
-    resolve_find_cdb(&tmp,c,"disabled") ;
-    tres->disabled = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
-
-    /* contents */
-    resolve_find_cdb(&tmp,c,"contents") ;
-    tres->contents = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
-
-    /* nclassic */
-    x = resolve_find_cdb(&tmp,c,"nclassic") ;
-    tres->nclassic = x ;
-
-    /* nbundle */
-    x = resolve_find_cdb(&tmp,c,"nbundle") ;
-    tres->nbundle = x ;
-
-    /* noneshot */
-    x = resolve_find_cdb(&tmp,c,"noneshot") ;
-    tres->noneshot = x ;
-
-    /* nmodule */
-    x = resolve_find_cdb(&tmp,c,"nmodule") ;
-    tres->nmodule = x ;
-
-    /* nenabled */
-    x = resolve_find_cdb(&tmp,c,"nenabled") ;
-    tres->nenabled = x ;
-
-    /* ndisabled */
-    x = resolve_find_cdb(&tmp,c,"ndisabled") ;
-    tres->ndisabled = x ;
-
-    /* ncontents */
-    x = resolve_find_cdb(&tmp,c,"ncontents") ;
-    tres->ncontents = x ;
-
-    free(wres) ;
-    stralloc_free(&tmp) ;
-
-    return 1 ;
-}
diff --git a/src/lib66/service/service_resolve_master_write.c b/src/lib66/service/service_resolve_master_write.c
deleted file mode 100644
index 4aaa5f9f..00000000
--- a/src/lib66/service/service_resolve_master_write.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * service_resolve_master_write.c
- *
- * Copyright (c) 2018-2021 Eric Vidal <eric@obarun.org>
- *
- * All rights reserved.
- *
- * This file is part of Obarun. It is subject to the license terms in
- * the LICENSE file found in the top-level directory of this
- * distribution.
- * This file may not be copied, modified, propagated, or distributed
- * except according to the terms contained in the LICENSE file./
- */
-
-#include <string.h>
-
-#include <oblibs/log.h>
-#include <oblibs/string.h>
-#include <oblibs/types.h>
-
-#include <skalibs/genalloc.h>
-
-#include <66/constants.h>
-#include <66/resolve.h>
-#include <66/graph.h>
-#include <66/enum.h>
-#include <66/state.h>
-#include <66/service.h>
-
-int service_resolve_master_write(graph_t *graph, char const *dest)
-{
-    log_flow() ;
-
-    int e = 0 ;
-    unsigned int pos = 0 ;
-
-    ss_state_t ste = STATE_ZERO ;
-    resolve_service_master_t mres = RESOLVE_SERVICE_MASTER_ZERO ;
-    resolve_wrapper_t_ref mwres = resolve_set_struct(DATA_SERVICE_MASTER, &mres) ;
-
-    resolve_service_t res = RESOLVE_SERVICE_ZERO ;
-    resolve_wrapper_t_ref wres = resolve_set_struct(DATA_SERVICE, &res) ;
-
-    resolve_init(mwres) ;
-
-
-    for (; pos < graph->sort_count ; pos++) {
-
-        char *name = graph->data.s + genalloc_s(graph_hash_t,&graph->hash)[graph->sort[pos]].vertex ;
-
-        if (!resolve_check(dest, name) ||
-            !resolve_read(wres, dest, name)) {
-            log_warnu("read resolve file of: ", dest, name) ;
-            goto err ;
-        }
-
-        switch (res.type) {
-
-            case TYPE_CLASSIC:
-
-                mres.classic = resolve_add_string(mwres, name) ;
-                mres.nclassic++ ;
-                break ;
-
-            case TYPE_BUNDLE:
-
-                mres.bundle = resolve_add_string(mwres, name) ;
-                mres.nbundle++ ;
-                break ;
-
-            case TYPE_ONESHOT:
-
-                mres.oneshot = resolve_add_string(mwres, name) ;
-                mres.noneshot++ ;
-                break ;
-
-            case TYPE_MODULE:
-
-                mres.module = resolve_add_string(mwres, name) ;
-                mres.nmodule++ ;
-                break ;
-
-            default:
-                log_warn("unknown type") ;
-                goto err ;
-        }
-
-        if (!state_read(&ste, res.sa.s + res.path.home, name))
-            log_warnu("read state file of: ", name) ;
-
-
-        if (!FLAGS_ISSET(ste.isenabled, STATE_FLAGS_TRUE)) {
-
-            /* disabled */
-            mres.disabled = resolve_add_string(mwres, res.sa.s + res.name) ;
-            mres.ndisabled++ ;
-
-        } else {
-            /* enabled */
-
-            mres.enabled = resolve_add_string(mwres, res.sa.s + res.name) ;
-            mres.nenabled++ ;
-        }
-
-        mres.contents = resolve_add_string(mwres, res.sa.s + res.name) ;
-        mres.ncontents++ ;
-    }
-
-    if (!resolve_write(mwres, dest, SS_MASTER + 1))
-        goto err ;
-
-    e = 1 ;
-
-    err:
-        resolve_free(wres) ;
-        resolve_free(mwres) ;
-        return e ;
-}
-
diff --git a/src/lib66/service/service_resolve_master_write_cdb.c b/src/lib66/service/service_resolve_master_write_cdb.c
deleted file mode 100644
index 4f8a0cf2..00000000
--- a/src/lib66/service/service_resolve_master_write_cdb.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * service_resolve_master_write_cdb.c
- *
- * Copyright (c) 2018-2021 Eric Vidal <eric@obarun.org>
- *
- * All rights reserved.
- *
- * This file is part of Obarun. It is subject to the license terms in
- * the LICENSE file found in the top-level directory of this
- * distribution.
- * This file may not be copied, modified, propagated, or distributed
- * except according to the terms contained in the LICENSE file.
- */
-
-#include <oblibs/log.h>
-
-#include <skalibs/cdbmake.h>
-
-#include <66/service.h>
-#include <66/resolve.h>
-
-int service_resolve_master_write_cdb(cdbmaker *c, resolve_service_master_t *mres)
-{
-    log_flow() ;
-
-    char *str = mres->sa.s ;
-
-    /* name */
-    if (!resolve_add_cdb(c,"name",str + mres->name) ||
-
-    /* classic */
-    !resolve_add_cdb(c,"classic",str + mres->classic) ||
-
-    /* bundle */
-    !resolve_add_cdb(c,"bundle",str + mres->bundle) ||
-
-    /* oneshot */
-    !resolve_add_cdb(c,"oneshot",str + mres->oneshot) ||
-
-    /* module */
-    !resolve_add_cdb(c,"module",str + mres->module) ||
-
-    /* enabled */
-    !resolve_add_cdb(c,"enabled",str + mres->enabled) ||
-
-    /* disabled */
-    !resolve_add_cdb(c,"disabled",str + mres->disabled) ||
-
-    /* contents */
-    !resolve_add_cdb(c,"contents",str + mres->contents) ||
-
-    /* nclassic */
-    !resolve_add_cdb_uint(c,"nclassic",mres->nclassic) ||
-
-    /* nbundle */
-    !resolve_add_cdb_uint(c,"nbundle",mres->nbundle) ||
-
-    /* noneshot */
-    !resolve_add_cdb_uint(c,"noneshot",mres->noneshot) ||
-
-    /* nmodule */
-    !resolve_add_cdb_uint(c,"nmodule",mres->nmodule) ||
-
-    /* nenabled */
-    !resolve_add_cdb_uint(c,"nenabled",mres->nenabled) ||
-
-    /* ndisabled */
-    !resolve_add_cdb_uint(c,"ndisabled",mres->ndisabled) ||
-
-    /* ncontents */
-    !resolve_add_cdb_uint(c,"ncontents",mres->ncontents)) return 0 ;
-
-    return 1 ;
-}
-- 
GitLab