diff --git a/package/deps.mak b/package/deps.mak
index 4208d78389b556aced74772688d12fbc1a5f717d..4cce9e5fbd16a2892119fd63014c6277128937e4 100644
--- a/package/deps.mak
+++ b/package/deps.mak
@@ -36,6 +36,7 @@ src/66/66-start.o src/66/66-start.lo: src/66/66-start.c src/include/66/ssexec.h
 src/66/66-stop.o src/66/66-stop.lo: src/66/66-stop.c src/include/66/ssexec.h
 src/66/66-svctl.o src/66/66-svctl.lo: src/66/66-svctl.c src/include/66/ssexec.h
 src/66/66-tree.o src/66/66-tree.lo: src/66/66-tree.c src/include/66/config.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/resolve.h src/include/66/state.h src/include/66/tree.h src/include/66/utils.h
+src/66/66-tree_backup.o src/66/66-tree_backup.lo: src/66/66-tree_backup.c src/include/66/config.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/resolve.h src/include/66/state.h src/include/66/tree.h src/include/66/utils.h
 src/66/66-update.o src/66/66-update.lo: src/66/66-update.c src/include/66/backup.h src/include/66/constants.h src/include/66/db.h src/include/66/parser.h src/include/66/resolve.h src/include/66/ssexec.h src/include/66/svc.h src/include/66/tree.h src/include/66/utils.h
 src/extra-tools/66-echo.o src/extra-tools/66-echo.lo: src/extra-tools/66-echo.c
 src/extra-tools/66-nuke.o src/extra-tools/66-nuke.lo: src/extra-tools/66-nuke.c
@@ -88,8 +89,10 @@ src/lib66/svc_unsupervise.o src/lib66/svc_unsupervise.lo: src/lib66/svc_unsuperv
 src/lib66/tree_cmd_state.o src/lib66/tree_cmd_state.lo: src/lib66/tree_cmd_state.c src/include/66/constants.h src/include/66/utils.h
 src/lib66/tree_copy.o src/lib66/tree_copy.lo: src/lib66/tree_copy.c src/include/66/constants.h src/include/66/tree.h
 src/lib66/tree_copy_tmp.o src/lib66/tree_copy_tmp.lo: src/lib66/tree_copy_tmp.c src/include/66/constants.h src/include/66/enum.h src/include/66/ssexec.h src/include/66/tree.h src/include/66/utils.h
+src/lib66/tree_create_from_seed.o src/lib66/tree_create_from_seed.lo: src/lib66/tree_create_from_seed.c src/include/66/config.h src/include/66/enum.h src/include/66/tree.h src/include/66/utils.h
 src/lib66/tree_find_current.o src/lib66/tree_find_current.lo: src/lib66/tree_find_current.c src/include/66/constants.h src/include/66/utils.h
 src/lib66/tree_get_permissions.o src/lib66/tree_get_permissions.lo: src/lib66/tree_get_permissions.c src/include/66/constants.h src/include/66/utils.h
+src/lib66/tree_isvalid.o src/lib66/tree_isvalid.lo: src/lib66/tree_isvalid.c src/include/66/constants.h src/include/66/ssexec.h src/include/66/tree.h
 src/lib66/tree_sethome.o src/lib66/tree_sethome.lo: src/lib66/tree_sethome.c src/include/66/constants.h src/include/66/tree.h
 src/lib66/tree_setname.o src/lib66/tree_setname.lo: src/lib66/tree_setname.c src/include/66/tree.h
 src/lib66/tree_switch_current.o src/lib66/tree_switch_current.lo: src/lib66/tree_switch_current.c src/include/66/config.h src/include/66/constants.h src/include/66/tree.h src/include/66/utils.h
diff --git a/src/66/66-boot.c b/src/66/66-boot.c
index 66d8d67be86e5ebdfbd44ea8c84772c46cb942aa..3d97fd0e2cf5ee8f9719c83225f275fd42e4db0c 100644
--- a/src/66/66-boot.c
+++ b/src/66/66-boot.c
@@ -547,7 +547,7 @@ int main(int argc, char const *const *argv,char const *const *envp)
 
     PROG = "66-boot" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/66/66-hpr.c b/src/66/66-hpr.c
index 24757b6fd6c9a19801da2078fa7301d91af5c9d9..a6f24ddf0fb6f05b8b0775232cff687a8a84a96e 100644
--- a/src/66/66-hpr.c
+++ b/src/66/66-hpr.c
@@ -89,7 +89,8 @@ int main (int argc, char const *const *argv)
 
     PROG = "66-hpr" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
+
         for (;;)
         {
             int opt = subgetopt_r(argc, argv, "Hl:hprfdwWb:n", &l) ;
diff --git a/src/66/66-inresolve.c b/src/66/66-inresolve.c
index b9f721cec90b62bd873c21dd0abcd3ece668292f..e607a05e2a1ce51e17b84c806a540574dbf2eaf6 100644
--- a/src/66/66-inresolve.c
+++ b/src/66/66-inresolve.c
@@ -130,7 +130,7 @@ int main(int argc, char const *const *argv)
 
     PROG = "66-inresolve" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/66/66-inservice.c b/src/66/66-inservice.c
index 86530ca1359236063b8cc1294517107ddbba94d3..54d4db6c0ca3ba0351acf2c6f6c105b02183b5fe 100644
--- a/src/66/66-inservice.c
+++ b/src/66/66-inservice.c
@@ -43,7 +43,7 @@
 #include <66/environ.h>
 #include <66/state.h>
 
-#include <s6/s6-supervise.h>
+#include <s6/supervise.h>
 
 static unsigned int REVERSE = 0 ;
 static unsigned int NOFIELD = 1 ;
@@ -864,7 +864,7 @@ int main(int argc, char const *const *argv, char const *const *envp)
 
     PROG = "66-inservice" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/66/66-instate.c b/src/66/66-instate.c
index 0e0078d2111d5469a5993ec0baaee1445b9fdce7..799bcdfbdd7b45f2cd148c341368ba191a4a259b 100644
--- a/src/66/66-instate.c
+++ b/src/66/66-instate.c
@@ -109,7 +109,7 @@ int main(int argc, char const *const *argv)
 
     PROG = "66-instate" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/66/66-intree.c b/src/66/66-intree.c
index e71350469652c35cddf1fd311c633d59c24eea9c..a8761079f3c58276426b0155fb18c4d05faa8cf1 100644
--- a/src/66/66-intree.c
+++ b/src/66/66-intree.c
@@ -478,7 +478,7 @@ int main(int argc, char const *const *argv, char const *const *envp)
 
     PROG = "66-intree" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/66/66-parser.c b/src/66/66-parser.c
index bb6f7704cf472ca63fc1dc3bd0d4fae3f8419dfc..7a8ce010d6f7d085a8330458035fbdb6983aa9e7 100644
--- a/src/66/66-parser.c
+++ b/src/66/66-parser.c
@@ -89,7 +89,7 @@ int main(int argc, char const *const *argv,char const *const *envp)
 
     PROG = "66-parser" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/66/66-scanctl.c b/src/66/66-scanctl.c
index 2be6ac83030b6dc7c84a0352ebc83238fd3f0d55..8ae5075d62efed46034efec4e3152277093e9bcd 100644
--- a/src/66/66-scanctl.c
+++ b/src/66/66-scanctl.c
@@ -192,7 +192,7 @@ int main(int argc, char const *const *argv, char const *const *envp)
 
     PROG = "66-scanctl" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/66/66-scandir.c b/src/66/66-scandir.c
index 4c6544e1ea2113b0c02b87560f97978ebd5c5aa3..4caaa4d146cb371bccd445915f410da67345127f 100644
--- a/src/66/66-scandir.c
+++ b/src/66/66-scandir.c
@@ -582,7 +582,7 @@ int main(int argc, char const *const *argv, char const *const *envp)
 
     PROG = "66-scandir" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/66/66-shutdown.c b/src/66/66-shutdown.c
index 53e4571ac3dc40e0af71e75516d660e8c5582de3..eb956b8ba4db690d348150b197e6176fd04eccec 100644
--- a/src/66/66-shutdown.c
+++ b/src/66/66-shutdown.c
@@ -90,11 +90,11 @@ static inline void add_one_day (struct tm *tm)
     tm->tm_year++ ;
 }
 
-static inline void parse_hourmin (tain_t *when, char const *s)
+static inline void parse_hourmin (tain *when, char const *s)
 {
     log_flow() ;
 
-    tai_t taithen ;
+    tai taithen ;
     struct tm tmthen ;
     unsigned int hour, minute ;
     size_t len = uint_scan(s, &hour) ;
@@ -110,18 +110,18 @@ static inline void parse_hourmin (tain_t *when, char const *s)
     tmthen.tm_min = minute ;
     tmthen.tm_sec = 0 ;
     if (!tai_from_localtm(&taithen, &tmthen))
-        log_dieusys(LOG_EXIT_SYS, "assemble broken-down time into tain_t") ;
+        log_dieusys(LOG_EXIT_SYS, "assemble broken-down time into tain") ;
     if (tai_less(&taithen, tain_secp(&STAMP)))
     {
         add_one_day(&tmthen) ;
         if (!tai_from_localtm(&taithen, &tmthen))
-            log_dieusys(LOG_EXIT_SYS, "assemble broken-down time into tain_t") ;
+            log_dieusys(LOG_EXIT_SYS, "assemble broken-down time into tain") ;
     }
     when->sec = taithen ;
     when->nano = 0 ;
 }
 
-static void parse_mins (tain_t *when, char const *s)
+static void parse_mins (tain *when, char const *s)
 {
     log_flow() ;
 
@@ -130,7 +130,7 @@ static void parse_mins (tain_t *when, char const *s)
     tain_addsec_g(when, mins * 60) ;
 }
 
-static inline void parse_time (tain_t *when, char const *s)
+static inline void parse_time (tain *when, char const *s)
 {
     log_flow() ;
 
@@ -253,11 +253,12 @@ int main (int argc, char const *const *argv)
     int what = 0 ;
     int doactl = 0 ;
     int docancel = 0 ;
-    tain_t when ;
+    tain when ;
 
     PROG = "66-shutdown" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
+
         for (;;)
         {
             int opt = subgetopt_r(argc, argv, "v:Hl:hprkafFct:", &l) ;
diff --git a/src/66/66-shutdownd.c b/src/66/66-shutdownd.c
index 1f577c66a97f59397edd8e65b1126ddbbd7be4f3..b74a9551ddf85f782a6f637ac65079ba660a9f5f 100644
--- a/src/66/66-shutdownd.c
+++ b/src/66/66-shutdownd.c
@@ -45,7 +45,7 @@
 
 #include <execline/config.h>
 
-#include <s6/s6-supervise.h>
+#include <s6/supervise.h>
 #include <s6/config.h>
 
 #include <66/config.h>
@@ -188,7 +188,7 @@ static inline void run_rcshut (void)
     else log_warnusys("spawn ", rcshut) ;
 }
 
-static inline void prepare_shutdown (buffer *b, tain_t *deadline, unsigned int *grace_time)
+static inline void prepare_shutdown (buffer *b, tain *deadline, unsigned int *grace_time)
 {
     log_flow() ;
 
@@ -203,7 +203,7 @@ static inline void prepare_shutdown (buffer *b, tain_t *deadline, unsigned int *
     if (u && u <= 300000) *grace_time = u ;
 }
 
-static inline void handle_fifo (buffer *b, char *what, tain_t *deadline, unsigned int *grace_time)
+static inline void handle_fifo (buffer *b, char *what, tain *deadline, unsigned int *grace_time)
 {
     log_flow() ;
 
@@ -347,7 +347,7 @@ static inline void unsupervise_tree (void)
 int main (int argc, char const *const *argv)
 {
     unsigned int grace_time = 3000 ;
-    tain_t deadline ;
+    tain deadline ;
     int fdr, fdw ;
     buffer b ;
     char what = 'S' ;
@@ -355,7 +355,8 @@ int main (int argc, char const *const *argv)
 
     PROG = "66-shutdownd" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
+
         for (;;)
         {
             int opt = subgetopt_r(argc, argv, "hl:s:g:CB", &l) ;
@@ -419,7 +420,7 @@ int main (int argc, char const *const *argv)
     fdw = open_write(SHUTDOWND_FIFO) ;
     if (fdw == -1 || coe(fdw) == -1)
         log_dieusys(LOG_EXIT_SYS, "open ", SHUTDOWND_FIFO, " for writing") ;
-    if (sig_ignore(SIGPIPE) == -1)
+    if (!sig_ignore(SIGPIPE))
         log_dieusys(LOG_EXIT_SYS, "sig_ignore SIGPIPE") ;
     buffer_init(&b, &buffer_read, fdr, buf, 64) ;
     tain_now_set_stopwatch_g() ;
@@ -452,7 +453,7 @@ int main (int argc, char const *const *argv)
     prepare_stage4(what) ;
     unsupervise_tree() ;
 
-    if (sig_ignore(SIGTERM) == -1) log_warnusys("sig_ignore SIGTERM") ;
+    if (!sig_ignore(SIGTERM)) log_warnusys("sig_ignore SIGTERM") ;
 
     if (!inns)
     {
diff --git a/src/66/66-tree.c b/src/66/66-tree.c
index 674da05c699f53a8d2fc3b06b49d5511e773dbda..a74db4d51126ddb70a20f0d13d263e8cff2a6054 100644
--- a/src/66/66-tree.c
+++ b/src/66/66-tree.c
@@ -40,7 +40,7 @@
 #include <66/state.h>
 #include <66/resolve.h>
 
-#include <s6/s6-supervise.h>
+#include <s6/supervise.h>
 #include <s6-rc/s6rc-servicedir.h>
 #include <s6-rc/s6rc-constants.h>
 
@@ -556,7 +556,7 @@ void tree_modify_resolve(ss_resolve_t *res,ss_resolve_enum_t field,char const *r
             log_dieu_nclean(LOG_EXIT_SYS,&cleanup,"stralloc") ;
 
         sa.len-- ;
-	}
+    }
 
     if (!ss_resolve_modify_field(&modif,field,sa.s))
         log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"modify field: ",ss_resolve_field_table[field].field) ;
@@ -626,7 +626,7 @@ int main(int argc, char const *const *argv,char const *const *envp)
 
     PROG = "66-tree" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/66/66-update.c b/src/66/66-update.c
index bac6821af0a2b712b04308155fe313e2a379cdda..881f742c4077d4793e95c5c90e814f4e32e30f82 100644
--- a/src/66/66-update.c
+++ b/src/66/66-update.c
@@ -131,39 +131,6 @@ void tree_allowed(stralloc *list,char const *base, char const *treename)
     stralloc_free(&sa) ;
 }
 
-static int tree_contents_format(char const *tree)
-{
-    log_flow() ;
-
-    /** even on empty tree Master bundle is always present.
-     * Check its format. Cdb format allow to retrieve all information
-     * of the service whatever the 66 version whereas ss_resolve_src_path
-     * may cause troubles with module if multiple same module was enabled.
-     * So, check the validity of the cdb format and use it if we can.*/
-    int r = 1, e = errno, fd ;
-    size_t treelen = strlen(tree) ;
-    cdb_t c = CDB_ZERO ;
-    char d[treelen + SS_SVDIRS_LEN + SS_RESOLVE_LEN + SS_MASTER_LEN + 1] ;
-    auto_strings(d,tree,SS_SVDIRS,SS_RESOLVE,SS_MASTER) ;
-
-    fd = open_readb(d) ;
-    if (fd < 0)
-        log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"open: ",d) ;
-
-    if (!cdb_init_map(&c, fd, 1))
-        log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"cdb_init: ", d) ;
-
-    errno = 0 ;
-    r = cdb_find(&c, "name", 4) ;
-    if (r == -1 && errno == EPROTO) r == 0 ;
-    else r = 1 ;
-
-    fd_close(fd) ;
-    cdb_free(&c) ;
-    errno = e ;
-    return r ;
-}
-
 void tree_contents(stralloc *list,char const *tree,ssexec_t *info)
 {
     log_flow() ;
@@ -174,55 +141,29 @@ void tree_contents(stralloc *list,char const *tree,ssexec_t *info)
     stralloc sa = STRALLOC_ZERO ;
     char solve[treelen + SS_SVDIRS_LEN + SS_RESOLVE_LEN + SS_DB_LEN + SS_SRC_LEN + 1] ;
 
-    if (format == 1)
-    {
-        ss_resolve_t res = RESOLVE_ZERO ;
-        auto_strings(solve,tree,SS_SVDIRS,SS_RESOLVE) ;
-        if (!sastr_dir_get(&sa,solve,SS_MASTER + 1,S_IFREG))
-            log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"get the service resolve files of: ",tree) ;
-
-        auto_strings(solve,tree,SS_SVDIRS) ;
-
-        for (pos = 0 ;pos < sa.len; pos += strlen(sa.s + pos) + 1)
-        {
-            char *name = sa.s + pos ;
-            int logname = get_rstrlen_until(name,SS_LOG_SUFFIX) ;
-            if (logname > 0) continue ;
-
-            if (!ss_resolve_read(&res,solve,name))
-                log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"read resolve file of: ",solve,"/",name) ;
+    ss_resolve_t res = RESOLVE_ZERO ;
+    auto_strings(solve,tree,SS_SVDIRS,SS_RESOLVE) ;
+    if (!sastr_dir_get(&sa,solve,SS_MASTER + 1,S_IFREG))
+        log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"get the service resolve files of: ",tree) ;
 
-            if (res.disen)
-                if (!stralloc_catb(list,res.sa.s + res.src,strlen(res.sa.s + res.src) + 1))
-                    log_diesys_nclean(LOG_EXIT_SYS,&cleanup,"stralloc") ;
+    auto_strings(solve,tree,SS_SVDIRS) ;
 
-            log_trace(DRYRUN ? drun : "","tree: ",info->treename.s," contain service: ",res.sa.s + res.src) ;
-        }
-    }
-    else
+    for (pos = 0 ;pos < sa.len; pos += strlen(sa.s + pos) + 1)
     {
-        newlen = treelen + SS_SVDIRS_LEN ;
-        auto_strings(solve,tree,SS_SVDIRS,SS_SVC) ;
-
-        if (!sastr_dir_get(&sa,solve,"",S_IFDIR))
-            log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"get the source svc service files of: ",tree) ;
+        char *name = sa.s + pos ;
+        int logname = get_rstrlen_until(name,SS_LOG_SUFFIX) ;
+        if (logname > 0) continue ;
 
-        auto_string_from(solve,newlen,SS_DB,SS_SRC) ;
+        if (!ss_resolve_read(&res,solve,name))
+            log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"read resolve file of: ",solve,"/",name) ;
 
-        if (!sastr_dir_get(&sa,solve,SS_MASTER + 1,S_IFDIR))
-            log_dieusys_nclean(LOG_EXIT_SYS,&cleanup,"get source of atomic service files of: ",tree) ;
+        if (res.disen)
+            if (!stralloc_catb(list,res.sa.s + res.src,strlen(res.sa.s + res.src) + 1))
+                log_diesys_nclean(LOG_EXIT_SYS,&cleanup,"stralloc") ;
 
-        for (pos = 0 ;pos < sa.len; pos += strlen(sa.s + pos) + 1)
-        {
-            char *name = sa.s + pos ;
-            int logname = get_rstrlen_until(name,SS_LOG_SUFFIX) ;
-            if (logname > 0) continue ;
-            log_trace(DRYRUN ? drun : "","tree: ",info->treename.s," contain service: ",name) ;
-            if (ss_resolve_src_path(list,name,info->owner,0) < 1)
-                log_dieu_nclean(LOG_EXIT_SYS,&cleanup,"resolve source path of: ",name) ;
-
-        }
+        log_trace(DRYRUN ? drun : "","tree: ",info->treename.s," contain service: ",res.sa.s + res.src) ;
     }
+
     stralloc_free(&sa) ;
 }
 
@@ -271,7 +212,8 @@ int main(int argc, char const *const *argv,char const *const *envp)
 
     PROG = "66-update" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
+
         for (;;)
         {
             int opt = subgetopt_r(argc,argv, "hzv:l:d", &l) ;
diff --git a/src/extra-tools/66-echo.c b/src/extra-tools/66-echo.c
index 85878e16a85a15eddbb506883849f292f18acac0..8b42c2bde028758f36f83fed8e462f1bb48fa910 100644
--- a/src/extra-tools/66-echo.c
+++ b/src/extra-tools/66-echo.c
@@ -42,7 +42,8 @@ int main (int argc, char const *const *argv)
     char donl = 1 ;
     PROG = "66-echo" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
+
         for (;;)
         {
             int opt = subgetopt_r(argc, argv, "hns:", &l) ;
diff --git a/src/extra-tools/execl-envfile.c b/src/extra-tools/execl-envfile.c
index c56d2c4eda4be2705cbedf4212cfdc761a55f4b4..a1536214afc9bdb0b4776eb11e5a9d362d2016f4 100644
--- a/src/extra-tools/execl-envfile.c
+++ b/src/extra-tools/execl-envfile.c
@@ -65,7 +65,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
 
     PROG = "execl-envfile" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/include/66/hpr.h b/src/include/66/hpr.h
index 5a0d8017618adeaf6a29343c187d065ec5d0037b..b3be701e080dda7cea2c01c075eb131e97dbde7f 100644
--- a/src/include/66/hpr.h
+++ b/src/include/66/hpr.h
@@ -32,7 +32,7 @@
 
 #define hpr_send(l,s, n) openwritenclose_unsafe(l, (s), n)
 #define hpr_cancel(l) hpr_send(l,"c", 1)
-extern int hpr_shutdown (char const *live, unsigned int, tain_t const *, unsigned int) ;
+extern int hpr_shutdown (char const *live, unsigned int, tain const *, unsigned int) ;
 extern void hpr_wall (char const *) ;
 
 #endif
diff --git a/src/include/66/resolve.h b/src/include/66/resolve.h
index 1c56de3be33c89d5463e817d81aac7f0d84fff1d..4e3822e1214790bb5f06bd5c14cce2c380394b88 100644
--- a/src/include/66/resolve.h
+++ b/src/include/66/resolve.h
@@ -22,7 +22,7 @@
 #include <skalibs/stralloc.h>
 #include <skalibs/types.h>
 #include <skalibs/cdb.h>
-#include <skalibs/cdb_make.h>
+#include <skalibs/cdbmake.h>
 #include <skalibs/gccattributes.h>
 
 #include <66/ssexec.h>
@@ -195,8 +195,8 @@ extern int ss_resolve_graph_publish(ss_resolve_graph_t *graph,unsigned int rever
 /** cdb */
 extern int ss_resolve_read_cdb(ss_resolve_t *dres, char const *name) ;
 extern int ss_resolve_write_cdb(ss_resolve_t *res, char const *dst, char const *name) ;
-extern int ss_resolve_add_cdb(struct cdb_make *c,char const *key,char const *data) ;
-extern int ss_resolve_add_cdb_uint(struct cdb_make *c, char const *key,uint32_t data) ;
-extern int ss_resolve_find_cdb(stralloc *result, cdb_t *c,char const *key) ;
+extern int ss_resolve_add_cdb(cdbmaker *c,char const *key,char const *data) ;
+extern int ss_resolve_add_cdb_uint(cdbmaker *c, char const *key,uint32_t data) ;
+extern int ss_resolve_find_cdb(stralloc *result, cdb const *c,char const *key) ;
 
 #endif
diff --git a/src/include/66/svc.h b/src/include/66/svc.h
index aba7a464470e2d52a1f48b59cd861969125cde1a..8c6cdb487c8ebc664d8d71525afa8cf800a54547 100644
--- a/src/include/66/svc.h
+++ b/src/include/66/svc.h
@@ -29,7 +29,7 @@ struct ss_resolve_sig_s
     ss_resolve_t res ;
     unsigned int notify ;
     unsigned int ndeath;
-    tain_t deadline ;
+    tain deadline ;
     uint16_t ids ;
     char *sigtosend ;
     int sig ;
@@ -77,7 +77,7 @@ enum sigactions_e
 
 extern int svc_switch_to(ssexec_t *info,unsigned int where) ;
 extern int svc_init(ssexec_t *info,char const *src, genalloc *ga) ;
-extern int svc_init_pipe(ftrigr_t *fifo,genalloc *gasv,tain_t *deadline) ;
+extern int svc_init_pipe(ftrigr_t *fifo,genalloc *gasv,tain *deadline) ;
 extern int svc_send(ssexec_t *info,genalloc *ga,char const *sig,char const *const *envp) ;
 extern int svc_unsupervise(ssexec_t *info,genalloc *ga,char const *sig,char const *const *envp) ;
 
diff --git a/src/lib66/backup_cmd_switcher.c b/src/lib66/backup_cmd_switcher.c
index 4cff08c6215977b5fef3304a9fc06acf67c02a40..a0441891225433135040b2a62dae2c5d2c24cca9 100644
--- a/src/lib66/backup_cmd_switcher.c
+++ b/src/lib66/backup_cmd_switcher.c
@@ -51,7 +51,7 @@ int backup_switcher(int argc, char const *const *argv,ssexec_t *info)
     type = -1 ;
 
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/lib66/hpr_shutdown.c b/src/lib66/hpr_shutdown.c
index 0e2dcdb7c73f979dc527e8a4c5a450fb89ec299a..c5f5384c09efc48774806411a836a815a2ed28cf 100644
--- a/src/lib66/hpr_shutdown.c
+++ b/src/lib66/hpr_shutdown.c
@@ -25,7 +25,7 @@
 
 #include <66/hpr.h>
 
-int hpr_shutdown (char const *live, unsigned int what, tain_t const *when, unsigned int grace)
+int hpr_shutdown (char const *live, unsigned int what, tain const *when, unsigned int grace)
 {
     log_flow() ;
 
diff --git a/src/lib66/rc_manage.c b/src/lib66/rc_manage.c
index 62ed0ab9bfa0bc9b9836856366828ada7fd2c706..551b6085effd5cfd321082585e135b8ff2ac2875 100644
--- a/src/lib66/rc_manage.c
+++ b/src/lib66/rc_manage.c
@@ -43,7 +43,7 @@ int rc_manage(ssexec_t *info,genalloc *ga)
     stralloc sares = STRALLOC_ZERO ;
     size_t newlen ;
 
-    tain_t deadline ;
+    tain deadline ;
     if (info->timeout) tain_from_millisecs(&deadline, info->timeout) ;
     else deadline = tain_infinite_relative ;
     tain_now_g() ;
diff --git a/src/lib66/ss_info_utils.c b/src/lib66/ss_info_utils.c
index 277336291437d2cdb23767f02f20e655d6ba0552..4c6e3e528aef9c68cb5c3380614bcfb97c43a81f 100644
--- a/src/lib66/ss_info_utils.c
+++ b/src/lib66/ss_info_utils.c
@@ -28,7 +28,7 @@
 #include <skalibs/buffer.h>
 #include <skalibs/lolstdio.h>
 
-#include <s6/s6-supervise.h>
+#include <s6/supervise.h>
 
 #include <66/resolve.h>
 #include <66/state.h>
diff --git a/src/lib66/ss_resolve.c b/src/lib66/ss_resolve.c
index 6c66a34259abfe98771bc91caa2707f81f2f612b..df94c4861ac42be4ea0d3077e22db18be6c6e820 100644
--- a/src/lib66/ss_resolve.c
+++ b/src/lib66/ss_resolve.c
@@ -31,7 +31,7 @@
 #include <skalibs/direntry.h>
 #include <skalibs/unix-transactional.h>
 #include <skalibs/diuint32.h>
-#include <skalibs/cdb_make.h>
+#include <skalibs/cdbmake.h>
 #include <skalibs/cdb.h>
 #include <skalibs/posixplz.h>//unlink_void
 
@@ -43,7 +43,7 @@
 #include <66/ssexec.h>
 #include <66/state.h>
 
-#include <s6/s6-supervise.h>
+#include <s6/supervise.h>
 
 ss_resolve_field_table_t ss_resolve_field_table[] = {
 
@@ -1470,7 +1470,7 @@ int ss_resolve_svtree(stralloc *svtree,char const *svname,char const *tree)
         return -1 ;
 }
 
-int ss_resolve_add_cdb_uint(struct cdb_make *c, char const *key,uint32_t data)
+int ss_resolve_add_cdb_uint(cdbmaker *c, char const *key,uint32_t data)
 {
     log_flow() ;
 
@@ -1478,20 +1478,20 @@ int ss_resolve_add_cdb_uint(struct cdb_make *c, char const *key,uint32_t data)
     size_t klen = strlen(key) ;
 
     uint32_pack_big(pack, data) ;
-    if (cdb_make_add(c,key,klen,pack,4) < 0)
+    if (!cdbmake_add(c,key,klen,pack,4))
         log_warnsys_return(LOG_EXIT_ZERO,"cdb_make_add: ",key) ;
 
     return 1 ;
 }
 
-int ss_resolve_add_cdb(struct cdb_make *c,char const *key,char const *data)
+int ss_resolve_add_cdb(cdbmaker *c,char const *key,char const *data)
 {
     log_flow() ;
 
     size_t klen = strlen(key) ;
     size_t dlen = strlen(data) ;
 
-    if (cdb_make_add(c,key,klen,dlen ? data : 0,dlen) < 0)
+    if (!cdbmake_add(c,key,klen,dlen ? data : 0,dlen))
         log_warnsys_return(LOG_EXIT_ZERO,"cdb_make_add: ",key) ;
 
     return 1 ;
@@ -1503,7 +1503,7 @@ int ss_resolve_write_cdb(ss_resolve_t *res, char const *dst, char const *name)
 
     int fd ;
     size_t dstlen = strlen(dst), namelen = strlen(name);
-    struct cdb_make c = CDB_MAKE_ZERO ;
+    cdbmaker c = CDBMAKER_ZERO ;
     char tfile[dstlen + 1 + namelen + namelen + 9] ;
     char dfile[dstlen + 1 + namelen + 1] ;
 
@@ -1519,8 +1519,8 @@ int ss_resolve_write_cdb(ss_resolve_t *res, char const *dst, char const *name)
         goto err_fd ;
     }
 
-    if (cdb_make_start(&c, fd) < 0) {
-        log_warnusys("cdb_make_start") ;
+    if (!cdbmake_start(&c, fd)) {
+        log_warnusys("cdbmake_start") ;
         goto err ;
     }
 
@@ -1620,7 +1620,7 @@ int ss_resolve_write_cdb(ss_resolve_t *res, char const *dst, char const *name)
     /* disen */
     !ss_resolve_add_cdb_uint(&c,"disen",res->disen)) goto err ;
 
-    if (cdb_make_finish(&c) < 0 || fsync(fd) < 0) {
+    if (!cdbmake_finish(&c) || fsync(fd) < 0) {
         log_warnusys("write to: ", tfile) ;
         goto err ;
     }
@@ -1641,29 +1641,30 @@ int ss_resolve_write_cdb(ss_resolve_t *res, char const *dst, char const *name)
         return 0 ;
 }
 
-int ss_resolve_find_cdb(stralloc *result, cdb_t *c,char const *key)
+int ss_resolve_find_cdb(stralloc *result, cdb const *c,char const *key)
 {
     log_flow() ;
 
     uint32_t x = 0 ;
     size_t klen = strlen(key) ;
+    cdb_data cdata ;
 
     result->len = 0 ;
 
-    int r = cdb_find(c, key, klen) ;
-    if (r == -1) log_warnusys_return(LOG_EXIT_LESSONE,"search on cdb key: ",key) ;
-    if (!r) log_warnusys_return(LOG_EXIT_ZERO,"unknown key on cdb: ",key) ;
-    {
-        char pack[cdb_datalen(c) + 1] ;
+    int r = cdb_find(c, &cdata, key, klen) ;
+    if (r == -1)
+        log_warnusys_return(LOG_EXIT_LESSONE,"search on cdb key: ",key) ;
+
+    if (!r)
+        log_warnusys_return(LOG_EXIT_ZERO,"unknown cdb key: ",key) ;
 
-        if (cdb_read(c, pack, cdb_datalen(c),cdb_datapos(c)) < 0)
-            log_warnusys_return(LOG_EXIT_LESSONE,"read on cdb value of key: ",key) ;
+    if (!cdata.len)
+        log_warnusys_return(LOG_EXIT_ZERO,"empty value of cdb key: ",key) ;
 
-        pack[cdb_datalen(c)] = 0 ;
-        uint32_unpack_big(pack, &x) ;
+    if (!auto_stra(result,cdata.s))
+        log_warnusys_return(LOG_EXIT_LESSONE,"stralloc") ;
 
-        if (!auto_stra(result,pack)) log_warnusys_return(LOG_EXIT_LESSONE,"stralloc") ;
-    }
+    uint32_unpack_big(cdata.s, &x) ;
 
     return x ;
 }
@@ -1675,7 +1676,7 @@ int ss_resolve_read_cdb(ss_resolve_t *dres, char const *name)
     int fd ;
     uint32_t x ;
 
-    cdb_t c = CDB_ZERO ;
+    cdb c = CDB_ZERO ;
     stralloc tmp = STRALLOC_ZERO ;
     ss_resolve_t res = RESOLVE_ZERO ;
 
@@ -1684,7 +1685,7 @@ int ss_resolve_read_cdb(ss_resolve_t *dres, char const *name)
         log_warnusys("open: ",name) ;
         goto err_fd ;
     }
-    if (!cdb_init_map(&c, fd, 1)) {
+    if (!cdb_init_fromfd(&c, fd)) {
         log_warnusys("cdb_init: ", name) ;
         goto err ;
     }
@@ -1796,7 +1797,7 @@ int ss_resolve_read_cdb(ss_resolve_t *dres, char const *name)
     res.ndeps = x ;
 
     /* noptsdeps */
-    x =ss_resolve_find_cdb(&tmp,&c,"noptsdeps") ;
+    x = ss_resolve_find_cdb(&tmp,&c,"noptsdeps") ;
     res.noptsdeps = x ;
 
     /* nextdeps */
diff --git a/src/lib66/ss_utils.c b/src/lib66/ss_utils.c
index dc8f1ec499e479a001fff63242d06edac6ccc5ee..abba2223801a8f9aeaa75329d1c8e798cd945976 100644
--- a/src/lib66/ss_utils.c
+++ b/src/lib66/ss_utils.c
@@ -35,7 +35,7 @@
 #include <66/resolve.h>
 #include <66/parser.h>
 
-#include <s6/s6-supervise.h>
+#include <s6/supervise.h>
 
 sv_alltype const sv_alltype_zero = SV_ALLTYPE_ZERO ;
 sv_name_t const sv_name_zero = SV_NAME_ZERO ;
diff --git a/src/lib66/ssexec_all.c b/src/lib66/ssexec_all.c
index 557ccb39e416124142e6af76e6f561cdcf73ef03..8b60de73b69fe4500bef2a41c24bf92a769e9b6d 100644
--- a/src/lib66/ssexec_all.c
+++ b/src/lib66/ssexec_all.c
@@ -237,7 +237,7 @@ int ssexec_all(int argc, char const *const *argv,char const *const *envp,ssexec_
     stralloc contents = STRALLOC_ZERO ;
 
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/lib66/ssexec_dbctl.c b/src/lib66/ssexec_dbctl.c
index 5e371b142f117b8ad65f898787c642faf5101f0c..3656d1c5d528b547195fa0771658482245d6226e 100644
--- a/src/lib66/ssexec_dbctl.c
+++ b/src/lib66/ssexec_dbctl.c
@@ -26,7 +26,7 @@
 #include <skalibs/genalloc.h>
 #include <skalibs/djbunix.h>
 
-#include <s6/s6-supervise.h>
+#include <s6/supervise.h>
 #include <s6-rc/config.h>
 
 #include <66/constants.h>
@@ -175,7 +175,7 @@ static pid_t send(genalloc *gasv, char const *livetree, char const *signal,char
 {
     log_flow() ;
 
-    tain_t deadline ;
+    tain deadline ;
     tain_from_millisecs(&deadline, DEADLINE) ;
 
     tain_now_g() ;
@@ -232,7 +232,7 @@ int ssexec_dbctl(int argc, char const *const *argv,char const *const *envp,ssexe
 
     //PROG = "66-dbctl" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/lib66/ssexec_disable.c b/src/lib66/ssexec_disable.c
index 2e74e5b162edbaba5f39c7f231e886026697ea64..06401c975b899833512d8dfdb23aba955cc460f6 100644
--- a/src/lib66/ssexec_disable.c
+++ b/src/lib66/ssexec_disable.c
@@ -196,7 +196,7 @@ int ssexec_disable(int argc, char const *const *argv,char const *const *envp,sse
     r = nclassic = nlongrun = stop = logname = force = 0 ;
 
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/lib66/ssexec_enable.c b/src/lib66/ssexec_enable.c
index 3907c1dd0e4560b7c0aec87a030c577e39d482a6..98fae2c0dbd1478a8d58f0c10e4cf8929582b592 100644
--- a/src/lib66/ssexec_enable.c
+++ b/src/lib66/ssexec_enable.c
@@ -260,7 +260,7 @@ int ssexec_enable(int argc, char const *const *argv,char const *const *envp,ssex
     r = nbsv = nclassic = nlongrun = start = 0 ;
 
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/lib66/ssexec_env.c b/src/lib66/ssexec_env.c
index c57b428ffa92e592efe43607fcb0a5516ee2b234..9e150e91a670bd1efac64b1cbba8019f2ecda128 100644
--- a/src/lib66/ssexec_env.c
+++ b/src/lib66/ssexec_env.c
@@ -222,7 +222,7 @@ int ssexec_env(int argc, char const *const *argv,char const *const *envp,ssexec_
     char const *sv = 0, *svconf = 0, *src = 0, *treename = 0, *import = 0 ;
 
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/lib66/ssexec_main.c b/src/lib66/ssexec_main.c
index 17f303fec0ec2cc3d36c4e868297ce028f7dbfa6..29120e622b7bb3b98256a159f921ac90bfbdaa20 100644
--- a/src/lib66/ssexec_main.c
+++ b/src/lib66/ssexec_main.c
@@ -84,7 +84,8 @@ int ssexec_main(int argc, char const *const *argv,char const *const *envp,ssexec
 
     nargv[n++] = "fake_name" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
+
         int f = 0 ;
         for (;;)
         {
diff --git a/src/lib66/ssexec_start.c b/src/lib66/ssexec_start.c
index 88237360fab1b5c336c9057e560aafbd26f7b66b..254ea4ac23d21b16792e0b10c990af235b14ed8b 100644
--- a/src/lib66/ssexec_start.c
+++ b/src/lib66/ssexec_start.c
@@ -224,7 +224,7 @@ int ssexec_start(int argc, char const *const *argv,char const *const *envp,ssexe
     cl = rc = logname = 0  ;
 
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/lib66/ssexec_stop.c b/src/lib66/ssexec_stop.c
index fa0aedff6af0607ac71cfe28cda933673a76be7a..f5ba88113c42d758cd031dfaae0b80ea7c343a54 100644
--- a/src/lib66/ssexec_stop.c
+++ b/src/lib66/ssexec_stop.c
@@ -133,7 +133,7 @@ int ssexec_stop(int argc, char const *const *argv,char const *const *envp,ssexec
     cl = rc = sigopt = 0 ;
 
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
diff --git a/src/lib66/ssexec_svctl.c b/src/lib66/ssexec_svctl.c
index 3bfa52b2c84e43fb658ec5fe459d22b10d7ac036..88d51174bf3b3a2d1a34cbfdc288817897581fe3 100644
--- a/src/lib66/ssexec_svctl.c
+++ b/src/lib66/ssexec_svctl.c
@@ -34,7 +34,7 @@
 #include <skalibs/tai.h>
 #include <skalibs/sig.h>//sig_ignore
 
-#include <s6/s6-supervise.h>//s6_svstatus_t
+#include <s6/supervise.h>//s6_svstatus_t
 #include <s6/ftrigr.h>
 
 
@@ -339,11 +339,11 @@ static int handle_signal_pipe(genalloc *gakeep)
     return ok ;
 
 }
-static int compute_timeout(tain_t *start,tain_t *tsv)
+static int compute_timeout(tain *start,tain *tsv)
 {
     log_flow() ;
 
-    tain_t now,tpass ;
+    tain now,tpass ;
     tain_now_g() ;
     tain_copynow(&now) ;
     tain_sub(&tpass,&now,start) ;
@@ -359,12 +359,12 @@ static void svc_listen_less(int state_val, int *state,unsigned int *did,unsigned
     did[pos] = 1 ;
     (*loop)--;
 }
-static void svc_listen(unsigned int nsv,tain_t *deadline)
+static void svc_listen(unsigned int nsv,tain *deadline)
 {
     log_flow() ;
 
     int r ;
-    tain_t start ;
+    tain start ;
     stralloc sa = STRALLOC_ZERO ;
     iopause_fd x = { .fd = ftrigr_fd(&fifo), .events = IOPAUSE_READ } ;
     ss_resolve_sig_t_ref svc ;
@@ -449,7 +449,7 @@ static void svc_async(unsigned int i,unsigned int nsv)
     return ;
 }
 
-int doit (int spfd, genalloc *gakeep, tain_t *deadline)
+int doit (int spfd, genalloc *gakeep, tain *deadline)
 {
     log_flow() ;
 
@@ -492,7 +492,7 @@ int ssexec_svctl(int argc, char const *const *argv,char const *const *envp,ssexe
     int e, isup, r, ret = 1 ;
     unsigned int death, tsv, reverse, tsv_g ;
     int SIGNAL = -1 ;
-    tain_t ttmain ;
+    tain ttmain ;
 
     genalloc gakeep = GENALLOC_ZERO ; //type ss_resolve_sig
     stralloc sares = STRALLOC_ZERO ;
@@ -509,7 +509,7 @@ int ssexec_svctl(int argc, char const *const *argv,char const *const *envp,ssexe
 
     //PROG = "66-svctl" ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {
@@ -631,7 +631,7 @@ int ssexec_svctl(int argc, char const *const *argv,char const *const *envp,ssexe
         }
         else sv_signal.ndeath = death ;
 
-        tain_t tcheck ;
+        tain tcheck ;
         tain_from_millisecs(&tcheck,tsv) ;
         int check = tain_to_millisecs(&tcheck) ;
         if (check > 0)
@@ -681,10 +681,10 @@ int ssexec_svctl(int argc, char const *const *argv,char const *const *envp,ssexe
 
     int spfd = selfpipe_init() ;
     if (spfd < 0) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ;
-    if (selfpipe_trap(SIGCHLD) < 0) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ;
-    if (selfpipe_trap(SIGINT) < 0) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ;
-    if (selfpipe_trap(SIGTERM) < 0) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ;
-    if (sig_ignore(SIGPIPE) < 0) log_dieusys(LOG_EXIT_SYS,"ignore SIGPIPE") ;
+    if (!selfpipe_trap(SIGCHLD)) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ;
+    if (!selfpipe_trap(SIGINT)) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ;
+    if (!selfpipe_trap(SIGTERM)) log_dieusys(LOG_EXIT_SYS, "selfpipe_trap") ;
+    if (!sig_ignore(SIGPIPE)) log_dieusys(LOG_EXIT_SYS,"ignore SIGPIPE") ;
 
     if (!svc_init_pipe(&fifo,&gakeep,&ttmain)) log_dieu(LOG_EXIT_SYS,"init pipe") ;
 
diff --git a/src/lib66/svc_init.c b/src/lib66/svc_init.c
index d834b5f5be9aa3cbf798bf861d4b0bcfb27b51be..a4642b20a6da1fbfc3489aa12ee8f438a933c5b0 100644
--- a/src/lib66/svc_init.c
+++ b/src/lib66/svc_init.c
@@ -28,7 +28,7 @@
 #include <skalibs/djbunix.h>
 #include <skalibs/posixplz.h>//touch
 
-#include <s6/s6-supervise.h>
+#include <s6/supervise.h>
 #include <s6/ftrigr.h>
 #include <s6/ftrigw.h>
 
@@ -52,7 +52,7 @@ int svc_init(ssexec_t *info,char const *src, genalloc *ga)
     genalloc ids = GENALLOC_ZERO ; // uint16_t
     ss_state_t sta = STATE_ZERO ;
 
-    tain_t deadline ;
+    tain deadline ;
     tain_now_set_stopwatch_g() ;
     tain_addsec(&deadline,&STAMP,2) ;
 
diff --git a/src/lib66/svc_init_pipe.c b/src/lib66/svc_init_pipe.c
index e03502957fa770469c750407e43223b51fa481bc..6747fc37709416ae6325eec00f128269aa23c853 100644
--- a/src/lib66/svc_init_pipe.c
+++ b/src/lib66/svc_init_pipe.c
@@ -24,13 +24,13 @@
 
 #include <s6/ftrigr.h>
 #include <s6/ftrigw.h>
-#include <s6/s6-supervise.h>
+#include <s6/supervise.h>
 
 #include <66/utils.h>
 #include <66/resolve.h>
 
 
-int svc_init_pipe(ftrigr_t *fifo,genalloc *gasv,tain_t *deadline)
+int svc_init_pipe(ftrigr_t *fifo,genalloc *gasv,tain *deadline)
 {
     log_flow() ;
 
diff --git a/src/lib66/tree_cmd_state.c b/src/lib66/tree_cmd_state.c
index 239bfa8c7cdc7e4fbfa8b5faa5bc2a7a591ae290..5d8ae727ef384d52df34885c31f69b0c88410e36 100644
--- a/src/lib66/tree_cmd_state.c
+++ b/src/lib66/tree_cmd_state.c
@@ -45,7 +45,7 @@ int tree_state(int argc, char const *const *argv)
     verbosity = 1 ;
     add = del = sch = err = 0 ;
     {
-        subgetopt_t l = SUBGETOPT_ZERO ;
+        subgetopt l = SUBGETOPT_ZERO ;
 
         for (;;)
         {