Author: kevans
Date: Thu Jul  5 18:55:42 2018
New Revision: 336013
URL: https://svnweb.freebsd.org/changeset/base/336013

Log:
  Revert r336011,r336012 until I can competently test

Modified:
  head/Makefile.inc1
  head/usr.sbin/config/Makefile
  head/usr.sbin/config/mkmakefile.c

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1  Thu Jul  5 18:39:02 2018        (r336012)
+++ head/Makefile.inc1  Thu Jul  5 18:55:42 2018        (r336013)
@@ -2063,15 +2063,6 @@ _kerberos5_bootstrap_tools= \
 .ORDER: ${_kerberos5_bootstrap_tools:C/^/${_bt}-/g}
 .endif
 
-# Later config(8) requires newer libnv cnvlist* API
-.if ${BOOTSTRAPPING} < 1200070
-_config= \
-       lib/libnv \
-       usr.sbin/config
-.else
-_config= usr.sbin/config
-.endif
-
 ${_bt}-usr.bin/mandoc: ${_bt}-lib/libopenbsd
 
 bootstrap-tools: .PHONY
@@ -2096,7 +2087,7 @@ bootstrap-tools: .PHONY
     ${_lex} \
     usr.bin/xinstall \
     ${_gensnmptree} \
-    ${_config} \
+    usr.sbin/config \
     ${_crunchide} \
     ${_crunchgen} \
     ${_nmtree} \

Modified: head/usr.sbin/config/Makefile
==============================================================================
--- head/usr.sbin/config/Makefile       Thu Jul  5 18:39:02 2018        
(r336012)
+++ head/usr.sbin/config/Makefile       Thu Jul  5 18:55:42 2018        
(r336013)
@@ -14,11 +14,11 @@ kernconf.c: kernconf.tmpl
        ${FILE2C} 'char kernconfstr[] = {' ',0};' < \
            ${SRCDIR}/kernconf.tmpl > kernconf.c
 
-CFLAGS+= -I. -I${SRCDIR} -I${SRCTOP}/sys
+CFLAGS+= -I. -I${SRCDIR}
 
 NO_WMISSING_VARIABLE_DECLARATIONS=
 
-LIBADD=        l nv sbuf
+LIBADD=        l sbuf
 
 CLEANFILES+=   kernconf.c
 

Modified: head/usr.sbin/config/mkmakefile.c
==============================================================================
--- head/usr.sbin/config/mkmakefile.c   Thu Jul  5 18:39:02 2018        
(r336012)
+++ head/usr.sbin/config/mkmakefile.c   Thu Jul  5 18:55:42 2018        
(r336013)
@@ -49,8 +49,6 @@ static const char rcsid[] =
 #include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
-#include <sys/cnv.h>
-#include <sys/nv.h>
 #include <sys/param.h>
 #include "y.tab.h"
 #include "config.h"
@@ -64,10 +62,6 @@ static void do_objs(FILE *);
 static void do_before_depend(FILE *);
 static int opteq(const char *, const char *);
 static void read_files(void);
-static void sanitize_envline(char *result, const char *src);
-static void process_into_file(char *line, FILE *ofp);
-static void process_into_nvlist(char *line, nvlist_t *nvl);
-static void dump_nvlist(nvlist_t *nvl, FILE *ofp);
 
 static void errout(const char *fmt, ...)
 {
@@ -186,6 +180,64 @@ makefile(void)
        moveifchanged(path("Makefile.new"), path("Makefile"));
 }
 
+/*
+ * Build hints.c from the skeleton
+ */
+void
+makehints(void)
+{
+       FILE *ifp, *ofp;
+       char line[BUFSIZ];
+       char *s;
+       struct hint *hint;
+
+       ofp = fopen(path("hints.c.new"), "w");
+       if (ofp == NULL)
+               err(1, "%s", path("hints.c.new"));
+       fprintf(ofp, "#include <sys/types.h>\n");
+       fprintf(ofp, "#include <sys/systm.h>\n");
+       fprintf(ofp, "\n");
+       fprintf(ofp, "char static_hints[] = {\n");
+       STAILQ_FOREACH(hint, &hints, hint_next) {
+               ifp = fopen(hint->hint_name, "r");
+               if (ifp == NULL)
+                       err(1, "%s", hint->hint_name);
+               while (fgets(line, BUFSIZ, ifp) != NULL) {
+                       /* zap trailing CR and/or LF */
+                       while ((s = strrchr(line, '\n')) != NULL)
+                               *s = '\0';
+                       while ((s = strrchr(line, '\r')) != NULL)
+                               *s = '\0';
+                       /* remove # comments */
+                       s = strchr(line, '#');
+                       if (s)
+                               *s = '\0';
+                       /* remove any whitespace and " characters */
+                       s = line;
+                       while (*s) {
+                               if (*s == ' ' || *s == '\t' || *s == '"') {
+                                       while (*s) {
+                                               s[0] = s[1];
+                                               s++;
+                                       }
+                                       /* start over */
+                                       s = line;
+                                       continue;
+                               }
+                               s++;
+                       }
+                       /* anything left? */
+                       if (*line == '\0')
+                               continue;
+                       fprintf(ofp, "\"%s\\0\"\n", line);
+               }
+               fclose(ifp);
+       }
+       fprintf(ofp, "\"\\0\"\n};\n");
+       fclose(ofp);
+       moveifchanged(path("hints.c.new"), path("hints.c"));
+}
+
 static void
 sanitize_envline(char *result, const char *src)
 {
@@ -243,96 +295,14 @@ sanitize_envline(char *result, const char *src)
        *dst = 0;
 }
 
-static void
-process_into_file(char *line, FILE *ofp)
-{
-       char result[BUFSIZ];
-
-       sanitize_envline(result, line);
-       /* anything left? */
-       if (*result == '\0')
-               return;
-       fprintf(ofp, "\"%s\\0\"\n", result);
-}
-
-static void
-process_into_nvlist(char *line, nvlist_t *nvl)
-{
-       char result[BUFSIZ], *s;
-
-       sanitize_envline(result, line);
-       /* anything left? */
-       if (*result == '\0')
-               return;
-       s = strchr(result, '=');
-       *s = 0;
-       if (nvlist_exists(nvl, result))
-               nvlist_free(nvl, result);
-       nvlist_add_string(nvl, result, s + 1);
-}
-
-static void
-dump_nvlist(nvlist_t *nvl, FILE *ofp)
-{
-       const char *name;
-       void *cookie;
-
-       if (nvl == NULL)
-               return;
-
-       while (!nvlist_empty(nvl)) {
-               cookie = NULL;
-               name = nvlist_next(nvl, NULL, &cookie);
-               fprintf(ofp, "\"%s=%s\\0\"\n", name,
-                    cnvlist_get_string(cookie));
-
-               cnvlist_free_string(cookie);
-       }
-}
-
 /*
- * Build hints.c from the skeleton
- */
-void
-makehints(void)
-{
-       FILE *ifp, *ofp;
-       nvlist_t *nvl;
-       char line[BUFSIZ];
-       struct hint *hint;
-
-       ofp = fopen(path("hints.c.new"), "w");
-       if (ofp == NULL)
-               err(1, "%s", path("hints.c.new"));
-       fprintf(ofp, "#include <sys/types.h>\n");
-       fprintf(ofp, "#include <sys/systm.h>\n");
-       fprintf(ofp, "\n");
-       fprintf(ofp, "char static_hints[] = {\n");
-       nvl = nvlist_create(0);
-       STAILQ_FOREACH(hint, &hints, hint_next) {
-               ifp = fopen(hint->hint_name, "r");
-               if (ifp == NULL)
-                       err(1, "%s", hint->hint_name);
-               while (fgets(line, BUFSIZ, ifp) != NULL)
-                       process_into_nvlist(line, nvl);
-               dump_nvlist(nvl, ofp);
-               fclose(ifp);
-       }
-       nvlist_destroy(nvl);
-       fprintf(ofp, "\"\\0\"\n};\n");
-       fclose(ofp);
-       moveifchanged(path("hints.c.new"), path("hints.c"));
-}
-
-/*
  * Build env.c from the skeleton
  */
 void
 makeenv(void)
 {
        FILE *ifp, *ofp;
-       nvlist_t *nvl;
-       char line[BUFSIZ];
+       char line[BUFSIZ], result[BUFSIZ], *linep;
        struct envvar *envvar;
 
        ofp = fopen(path("env.c.new"), "w");
@@ -342,20 +312,27 @@ makeenv(void)
        fprintf(ofp, "#include <sys/systm.h>\n");
        fprintf(ofp, "\n");
        fprintf(ofp, "char static_env[] = {\n");
-       nvl = nvlist_create(0);
        STAILQ_FOREACH(envvar, &envvars, envvar_next) {
                if (envvar->env_is_file) {
                        ifp = fopen(envvar->env_str, "r");
                        if (ifp == NULL)
                                err(1, "%s", envvar->env_str);
-                       while (fgets(line, BUFSIZ, ifp) != NULL)
-                               process_into_nvlist(line, nvl);
-                       dump_nvlist(nvl, ofp);
+                       while (fgets(line, BUFSIZ, ifp) != NULL) {
+                               sanitize_envline(result, line);
+                               /* anything left? */
+                               if (*result == '\0')
+                                       continue;
+                               fprintf(ofp, "\"%s\\0\"\n", result);
+                       }
                        fclose(ifp);
-               } else
-                       process_into_file(envvar->env_str, ofp);
+               } else {
+                       linep = envvar->env_str;
+                       sanitize_envline(result, linep);
+                       if (*result == '\0')
+                               continue;
+                       fprintf(ofp, "\"%s\\0\"\n", result);
+               }
        }
-       nvlist_destroy(nvl);
        fprintf(ofp, "\"\\0\"\n};\n");
        fclose(ofp);
        moveifchanged(path("env.c.new"), path("env.c"));
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to