Author: kelmo-guest
Date: Tue Jul 22 15:34:03 2008
New Revision: 791

URL: http://svn.debian.org/wsvn/initscripts-ng/?sc=1&rev=791
Log:
Import new upstream 1.11.10 sources.

Added:
    branches/insserv-1.11.10/insserv-1.11.10.lsm
Removed:
    branches/insserv-1.11.10/insserv-1.11.9.lsm
Modified:
    branches/insserv-1.11.10/Makefile
    branches/insserv-1.11.10/debian/changelog
    branches/insserv-1.11.10/insserv.c
    branches/insserv-1.11.10/listing.h
    branches/insserv-1.11.10/tests/suite

Modified: branches/insserv-1.11.10/Makefile
URL: 
http://svn.debian.org/wsvn/initscripts-ng/branches/insserv-1.11.10/Makefile?rev=791&op=diff
==============================================================================
--- branches/insserv-1.11.10/Makefile (original)
+++ branches/insserv-1.11.10/Makefile Tue Jul 22 15:34:03 2008
@@ -11,7 +11,7 @@
 DEBUG   =
 ISSUSE  =      -DSUSE
 DESTDIR         =
-VERSION         =      1.11.9
+VERSION         =      1.11.10
 DATE    =      $(shell date +'%d%b%y' | tr '[:lower:]' '[:upper:]')
 
 #
@@ -27,7 +27,7 @@
          COPTS = -g -O2
 endif
 endif
-        CFLAGS = -Wall $(COPTS) $(DEBUG) $(LOOPS) -D_GNU_SOURCE 
-D_FILE_OFFSET_BITS=64 \
+        CFLAGS = -W -Wall $(COPTS) $(DEBUG) $(LOOPS) -D_GNU_SOURCE 
-D_FILE_OFFSET_BITS=64 \
                  $(ISSUSE) -DINITDIR=\"$(INITDIR)\" -DINSCONF=\"$(INSCONF)\" 
-pipe
          CLOOP = -falign-loops=0
        LDFLAGS = -Wl,-O,3,--relax
@@ -56,12 +56,23 @@
        CONFDIR = $(DESTDIR)/etc
         LSBDIR = $(DESTDIR)/lib/lsb
       USRLSBDIR = $(DESTDIR)/usr/lib/lsb
+
+#
+# Determine if glibc provides the atfile functions
+#
+      FUNCTIONS = fstatat openat readlinkat symlinkat unlinkat
+         CTEST = $(CC) -nostdinc -fno-builtin -o /dev/null -xc
+    cc-function = $(shell echo -e 'void *$(1)();\nint 
main(){return($(1)(0)?0:1);}'|$(CTEST) - -l$(2:lib%=%) > /dev/null 2>&1 && echo 
$(1))
 #
 #
 #
+
 TODO   =       insserv insserv.8
 
-all: .depend.listing .depend.insserv $(TODO)
+all:           $(TODO)
+
+insserv:       insserv.o listing.o
+       $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
 
 listing.o:     listing.c listing.h .system
        $(CC) $(CFLAGS) $(CLOOP) -c $<
@@ -69,8 +80,16 @@
 insserv.o:     insserv.c listing.h .system
        $(CC) $(CFLAGS) $(CLOOP) -c $<
 
-insserv:       insserv.o listing.o
-       $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
+listing.h:     config.h .system
+
+config.h:
+       @echo '/* Generated automatically by running make -- do not edit */'  > 
config.h
+       @echo '#ifndef CONFIG_H' >> config.h
+       @echo '#define CONFIG_H' >> config.h
+       @for def in $(foreach func,$(FUNCTIONS),$(call 
cc-function,$(func),libc)); do \
+           echo "#define HAS_$$def"; \
+        done >> config.h
+       @echo '#endif' >> config.h
 
 ifeq ($(ISSUSE),-DSUSE)
 insserv.8:     insserv.8.in .system
@@ -86,17 +105,18 @@
 
 .force:
 
+.PHONY:                clean
 clean:
-       $(RM) *.o *~ $(TODO) .depend.* .system
+       $(RM) *.o *~ $(TODO) config.h .depend.* .system
 
 ifneq ($(MAKECMDGOALS),clean)
 
--include .depend.listing .depend.insserv
+-include       .depend.listing .depend.insserv
 
-.depend.listing:
+.depend.listing::      listing.c listing.h
        @$(CC) $(CFLAGS) -M listing.c >$@ 2>/dev/null
 
-.depend.insserv:
+.depend.insserv::      insserv.c listing.h
        @$(CC) $(CFLAGS) -M insserv.c >$@ 2>/dev/null
 
 endif

Modified: branches/insserv-1.11.10/debian/changelog
URL: 
http://svn.debian.org/wsvn/initscripts-ng/branches/insserv-1.11.10/debian/changelog?rev=791&op=diff
==============================================================================
--- branches/insserv-1.11.10/debian/changelog (original)
+++ branches/insserv-1.11.10/debian/changelog Tue Jul 22 15:34:03 2008
@@ -1,4 +1,4 @@
-insserv (1.11.9-1) UNRELEASED; urgency=low
+insserv (1.11.10-1) UNRELEASED; urgency=low
 
   DO NOT RELEASE
 
@@ -51,7 +51,7 @@
     unproperly replaced with empty Default-Start or Default-Stop.
   * Make test_adding_start() case a more realistic example.
 
- -- Kel Modderman <[EMAIL PROTECTED]>  Tue, 22 Jul 2008 18:05:40 +1000
+ -- Kel Modderman <[EMAIL PROTECTED]>  Wed, 23 Jul 2008 01:32:37 +1000
 
 insserv (1.11.0-9) unstable; urgency=low
 

Added: branches/insserv-1.11.10/insserv-1.11.10.lsm
URL: 
http://svn.debian.org/wsvn/initscripts-ng/branches/insserv-1.11.10/insserv-1.11.10.lsm?rev=791&op=file
==============================================================================
--- branches/insserv-1.11.10/insserv-1.11.10.lsm (added)
+++ branches/insserv-1.11.10/insserv-1.11.10.lsm Tue Jul 22 15:34:03 2008
@@ -1,0 +1,29 @@
+Begin3
+\
+Title:         insserv tool for boot scripts
+\
+Version:       1.11.10
+\
+Entered-date:  22JUL08
+\
+Description:   Used for enabling of installed boot scripts
+\
+               by scanning comment headers which are LSB conform.
+\
+Keywords:      boot service control, LSB
+\
+Author:                Werner Fink <[EMAIL PROTECTED]>
+\
+Maintained-by: Werner Fink <[EMAIL PROTECTED]>
+\
+Primary-site:  sunsite.unc.edu /pub/Linux/system/daemons/init
+\
+               @UNKNOWN insserv-1.11.10.tar.gz
+\
+Alternate-site:        ftp.suse.com /pub/projects/init
+\
+Platforms:     Linux with System VR2 or higher boot scheme
+\
+Copying-policy:        GPL
+\
+End

Modified: branches/insserv-1.11.10/insserv.c
URL: 
http://svn.debian.org/wsvn/initscripts-ng/branches/insserv-1.11.10/insserv.c?rev=791&op=diff
==============================================================================
--- branches/insserv-1.11.10/insserv.c (original)
+++ branches/insserv-1.11.10/insserv.c Tue Jul 22 15:34:03 2008
@@ -281,6 +281,7 @@
                    error("%s", strerror(errno));
                memset(this, 0, alignof(req_t));
                insert(&this->list, list->prev);
+               this->flags = bit;
                this->serv = need;
            }
            /* Expand requested services for sorting */
@@ -402,34 +403,35 @@
 static boolean chkdependencies(service_t *restrict serv) 
attribute((nonnull(1)));
 static boolean chkdependencies(service_t *restrict serv)
 {
+    const char * const name = serv->name;
+    boolean ret = true;
     list_t * ptr;
-    boolean ret = true;
 
     list_for_each(ptr, s_start) {
-       service_t * serv = getservice(ptr);
+       service_t * cur = getservice(ptr);
        list_t * pos;
 
-       if (!serv)
-           continue;
-
-       if ((serv->attr.flags & SERV_ENABLED) == 0)
-           continue;
-
-       if (serv->attr.flags & SERV_DUPLET)
-           continue;
-
-       if (list_empty(&serv->sort.req))
-           continue;
-
-       np_list_for_each(pos, &serv->sort.req) {
+       if (!cur)
+           continue;
+
+       if ((cur->attr.flags & SERV_ENABLED) == 0)
+           continue;
+
+       if (cur->attr.flags & SERV_DUPLET)
+           continue;
+
+       if (list_empty(&cur->sort.req))
+           continue;
+
+       np_list_for_each(pos, &cur->sort.req) {
            req_t *req = getreq(pos);
 
            if (!(req->flags & REQ_MUST))
                continue;
 
-           if (!strcmp(req->serv->name, serv->name)) {
+           if (!strcmp(req->serv->name, name)) {
                warn("Service %s has to be enabled to start service %s\n",
-                    serv->name, serv->name);
+                    name, cur->name);
                ret = false;
            }
        }
@@ -1292,7 +1294,13 @@
            error("exiting now!\n");
     }
 
-    if (verbose && (begin && end && (!provides || (provides == empty) || 
!required_start || !required_stop)))
+    if (begin && end && (!provides || (provides == empty) ||
+#ifdef SUSE
+                        !required_start || !required_stop || !default_start
+#else  /* not SUSE */
+                        !required_start || !required_stop || !default_start || 
!default_stop
+#endif /* not SUSE */
+       ))
     {
        char *name = basename(path);
        if (*name == 'S' || *name == 'K')
@@ -1306,6 +1314,12 @@
            warn("missing `Required-Start:' entry: please add even if 
empty.\n");
        if (!required_stop)
            warn("missing `Required-Stop:'  entry: please add even if 
empty.\n");
+       if (!default_start)
+           warn("missing `Default-Start:'  entry: please add even if 
empty.\n");
+#ifndef SUSE
+       if (!default_stop)
+           warn("missing `Default-Stop:'   entry: please add even if 
empty.\n");
+#endif
     }
 
 #undef provides
@@ -1325,8 +1339,8 @@
  * Follow symlinks, return the basename of the file pointed to by
  * symlinks or the basename of the current path if no symlink.
  */
-static char *scriptname(int dfd, const char *restrict const path, char 
**restrict first) attribute((nonnull(2)));
-static char *scriptname(int dfd, const char *restrict const path, char 
**restrict first)
+static char * scriptname(int dfd, const char *restrict const path, char 
**restrict first) attribute((malloc,nonnull(2)));
+static char * scriptname(int dfd, const char *restrict const path, char 
**restrict first)
 {
     uint deep = 0;
     char linkbuf[PATH_MAX+1];
@@ -1403,7 +1417,7 @@
 
     if (stat(fullpath, &statbuf) == 0 && S_ISREG(statbuf.st_mode))
         ret = scan_lsb_headers(-1, fullpath, cache, ignore);
-    if (ret)
+    if (ret & FOUND_LSB_HEADER)
        ret |= FOUND_LSB_OVERRIDE;
     return ret;
 }
@@ -1418,7 +1432,7 @@
                                  const boolean cache, const boolean ignore)
 {
     char * name = scriptname(dfd, path, first);
-    uchar ret = FOUND_LSB_DEFAULT;
+    uchar ret = 0;
 
     if (!name)
        return ret;
@@ -1429,19 +1443,19 @@
 #ifdef SUSE
     /* Common script ... */
     if (!strcmp(name, "halt")) {
-       ret |= FOUND_LSB_HEADER;
+       ret |= (FOUND_LSB_HEADER|FOUND_LSB_DEFAULT);
        goto out;
     }
 
     /* ... and its link */
     if (!strcmp(name, "reboot")) {
-       ret |= FOUND_LSB_HEADER;
+       ret |= (FOUND_LSB_HEADER|FOUND_LSB_DEFAULT);
        goto out;
     }
 
     /* Common script for single mode */
     if (!strcmp(name, "single")) {
-       ret |= FOUND_LSB_HEADER;
+       ret |= (FOUND_LSB_HEADER|FOUND_LSB_DEFAULT);
        goto out;
     }
 #endif /* SUSE */
@@ -1450,8 +1464,10 @@
     ret |= scan_lsb_headers(dfd, path, cache, ignore);
 
     /* Load values if the override file exist */
-    if ((ret & FOUND_LSB_DEFAULT) == FOUND_LSB_DEFAULT)
+    if ((ret & FOUND_LSB_HEADER) == 0)
        ret |= load_overrides("/usr/share/insserv/overrides", name, cache, 
ignore);
+    else
+       ret |= FOUND_LSB_DEFAULT;
 
     /*
      * Allow host-specific overrides to replace the content in the
@@ -1675,7 +1691,7 @@
                script_inf.provides = xstrdup(ptr);
 
 #ifndef SUSE
-           if (lsb == FOUND_LSB_DEFAULT) {
+           if (!lsb) {
                script_inf.required_start = xstrdup(DEFAULT_DEPENDENCY);
                script_inf.required_stop  = xstrdup(DEFAULT_DEPENDENCY);
            }
@@ -1711,11 +1727,11 @@
                    continue;
                service->attr.flags |= (SERV_KNOWN|SERV_ENABLED);
 
-               if (lsb == FOUND_LSB_DEFAULT)
+               if (!lsb)
                    service->attr.flags |= SERV_NOTLSB;
 
                if ((lsb & FOUND_LSB_HEADER) == 0) {
-                   if ((lsb & FOUND_LSB_OVERRIDE) == 0)
+                   if ((lsb & (FOUND_LSB_DEFAULT|FOUND_LSB_OVERRIDE)) == 0)
                      warn("warning: script '%s' missing LSB tags and 
overrides\n", d->d_name);
                    else
                        warn("warning: script '%s' missing LSB tags\n", 
d->d_name);
@@ -1723,24 +1739,12 @@
 
                if (script_inf.required_start && script_inf.required_start != 
empty) {
                    rememberreq(service, REQ_MUST, script_inf.required_start);
-#ifdef SUSE
-                   if (!script_inf.required_stop || script_inf.required_stop 
== empty)
-                       script_inf.required_stop = 
xstrdup(script_inf.required_start);
-#endif /* SUSE */
                }
                if (script_inf.should_start && script_inf.should_start != 
empty) {
                    rememberreq(service, REQ_SHLD, script_inf.should_start);
-#ifdef SUSE
-                   if (!script_inf.should_stop || script_inf.should_stop == 
empty)
-                       script_inf.should_stop = 
xstrdup(script_inf.should_start);
-#endif /* SUSE */
                }
                if (script_inf.start_before && script_inf.start_before != 
empty) {
                    reversereq(service, REQ_SHLD, script_inf.start_before);
-#ifdef SUSE
-                   if (!script_inf.stop_after || script_inf.stop_after == 
empty)
-                       script_inf.stop_after = 
xstrdup(script_inf.start_before);
-#endif /* SUSE */
                }
                if (script_inf.required_stop && script_inf.required_stop != 
empty) {
                    rememberreq(service, REQ_MUST|REQ_KILL, 
script_inf.required_stop);
@@ -2208,6 +2212,7 @@
     char * path = INITDIR;
     char * override_path = OVERRIDEDIR;
     char * insconf = INSCONF;
+    const char *const ipath = path;
     int runlevel, c, dfd;
     boolean del = false;
     boolean defaults = false;
@@ -2246,8 +2251,9 @@
            case 'p':
                if (optarg == (char*)0 || *optarg == '\0')
                    goto err;
+               if (path != ipath) free(path);
                l = strlen(optarg) - 1;
-               path = optarg;
+               path = xstrdup(optarg);
                if (*(path+l) == '/')
                    *(path+l) = '\0';
                break;
@@ -2298,7 +2304,8 @@
        if (S_ISDIR(st_script.st_mode)) {
            const size_t l = strlen(*argv) - 1;
 
-           path = *argv;
+           if (path != ipath) free(path);
+           path = xstrdup(*argv);
            if (*(path+l) == '/')
                *(path+l) = '\0';
 
@@ -2308,12 +2315,14 @@
                error("usage: %s [[-r] init_script|init_directory]\n", myname);
 
        } else {
-           char * base;
-
-           if ((base = strrchr(*argv, '/'))) {
+           char * base, * ptr = xstrdup(*argv);
+
+           if ((base = strrchr(ptr, '/'))) {
+               if (path != ipath) free(path);
                *base = '\0';
-               path  = *argv;
-           }
+               path  = ptr;
+           } else
+               free(ptr);
        }
     }
 
@@ -2501,7 +2510,7 @@
        lsb = scan_script_defaults(dfd, d->d_name, override_path, (char**)0, 
false, ignore);
 
        if ((lsb & FOUND_LSB_HEADER) == 0) {
-           if ((lsb & FOUND_LSB_OVERRIDE) == 0)
+           if ((lsb & (FOUND_LSB_DEFAULT|FOUND_LSB_OVERRIDE)) == 0)
                warn("warning: script '%s' missing LSB tags and overrides\n", 
d->d_name);
            else
                warn("warning: script '%s' missing LSB tags\n", d->d_name);
@@ -2514,7 +2523,7 @@
            serv = getorig(serv);
            makeprov(serv,   d->d_name);
            runlevels(serv, 'S', "0");
-           serv->attr.flags |= (SERV_ALL|SERV_NOSTOP);
+           serv->attr.flags |= (SERV_ALL|SERV_NOSTOP|SERV_INTRACT);
            continue;
        }
 
@@ -2524,7 +2533,7 @@
            serv = getorig(serv);
            makeprov(serv,   d->d_name);
            runlevels(serv, 'S', "6");
-           serv->attr.flags |= (SERV_ALL|SERV_NOSTOP);
+           serv->attr.flags |= (SERV_ALL|SERV_NOSTOP|SERV_INTRACT);
            continue;
        }
 
@@ -2534,14 +2543,14 @@
            serv = getorig(serv);
            makeprov(serv,   d->d_name);
            runlevels(serv, 'S', "1 S");
-           serv->attr.flags |= (SERV_ALL|SERV_NOSTOP);
+           serv->attr.flags |= (SERV_ALL|SERV_NOSTOP|SERV_INTRACT);
            rememberreq(serv, REQ_SHLD, "kbd");
            continue;
        }
 #endif /* SUSE */
 
 #ifndef SUSE
-       if (lsb == FOUND_LSB_DEFAULT) {
+       if (!lsb) {
            script_inf.required_start = xstrdup(DEFAULT_DEPENDENCY);
            script_inf.required_stop = xstrdup(DEFAULT_DEPENDENCY);
            script_inf.default_start = xstrdup(DEFAULT_START_LVL);
@@ -2710,17 +2719,9 @@
                    if (!known) {
                        if (script_inf.required_start && 
script_inf.required_start != empty) {
                            rememberreq(service, REQ_MUST, 
script_inf.required_start);
-#ifdef SUSE
-                           if (!script_inf.required_stop || 
script_inf.required_stop == empty)
-                               script_inf.required_stop = 
xstrdup(script_inf.required_start);
-#endif /* SUSE */
                        }
                        if (script_inf.should_start && script_inf.should_start 
!= empty) {
                            rememberreq(service, REQ_SHLD, 
script_inf.should_start);
-#ifdef SUSE
-                           if (!script_inf.should_stop || 
script_inf.should_stop == empty)
-                               script_inf.should_stop = 
xstrdup(script_inf.should_start);
-#endif /* SUSE */
                        }
                        if (script_inf.required_stop && 
script_inf.required_stop != empty) {
                            rememberreq(service, REQ_MUST|REQ_KILL, 
script_inf.required_stop);
@@ -2732,10 +2733,6 @@
 
                    if (script_inf.start_before && script_inf.start_before != 
empty) {
                        reversereq(service, REQ_SHLD, script_inf.start_before);
-#ifdef SUSE
-                       if (!script_inf.stop_after || script_inf.stop_after == 
empty)
-                           script_inf.stop_after = 
xstrdup(script_inf.start_before);
-#endif /* SUSE */
                    }
                    if (script_inf.stop_after && script_inf.stop_after != 
empty) {
                        reversereq(service, REQ_SHLD|REQ_KILL, 
script_inf.stop_after);
@@ -2768,8 +2765,8 @@
                             */
                            if (!defaults && (deflvls != service->start->lvl)) {
                                if (!del && chkfor(d->d_name, argv, argc) && 
!(argr[curr_argc]))
-                                   warn("Warning, current start runlevel(s) %s 
of script `%s' overwrites defaults %s.\n",
-                                        lvl2str(service->start->lvl), 
d->d_name, lvl2str(deflvls));
+                                   warn("Warning, current start runlevel(s) 
(%s) of script `%s' overwrites defaults (%s).\n",
+                                        service->start->lvl ? 
lvl2str(service->start->lvl) : "empty", d->d_name, lvl2str(deflvls));
                            }
                        } else
                            /*
@@ -2778,15 +2775,17 @@
                             */
                            service->start->lvl = deflvls;
 
-                   } else {
+                   } else if (!script_inf.default_start) {
                        /*
                         * Could be a none LSB script, use info from current 
link scheme.
                         * If not found use default.
                         */
                        if (service->attr.flags & SERV_ENABLED)
                            script_inf.default_start = 
lvl2str(service->start->lvl);
+#ifdef SUSE
                        else
                            script_inf.default_start = 
xstrdup(DEFAULT_START_LVL);
+#endif /* SUSE */
                    }
 #ifdef SUSE
                    /*
@@ -2794,7 +2793,10 @@
                     * Therefore default_stop is ignored and overwriten by 
default_start.
                     */
                    xreset(script_inf.default_stop);
-                   script_inf.default_stop = xstrdup(script_inf.default_start);
+                   if (script_inf.default_start && script_inf.default_start != 
empty)
+                       script_inf.default_stop = 
xstrdup(script_inf.default_start);
+                   else
+                       script_inf.default_stop = empty;
                    oneway(script_inf.default_stop);
 #endif /* SUSE */
                    if (script_inf.default_stop && script_inf.default_stop != 
empty) {
@@ -2811,8 +2813,8 @@
                             */
                            if (!defaults && (deflvlk != service->stopp->lvl)) {
                                if (!del && chkfor(d->d_name, argv, argc) && 
!(argr[curr_argc]))
-                                   warn("Warning, current stop runlevel(s) %s 
of script `%s' overwrites defaults %s.\n",
-                                        lvl2str(service->stopp->lvl), 
d->d_name, lvl2str(deflvlk));
+                                   warn("Warning, current stop runlevel(s) 
(%s) of script `%s' overwrites defaults (%s).\n",
+                                        service->stopp->lvl ? 
lvl2str(service->stopp->lvl) : "empty", d->d_name, lvl2str(deflvlk));
                            }
                        } else
                            /*
@@ -2821,15 +2823,17 @@
                             */
                            service->stopp->lvl = deflvlk;
 
-                   } else {
+                   } else if (!script_inf.default_stop) {
                        /*
                         * Could be a none LSB script, use info from current 
link scheme.
                         * If not found use default.
                         */
                        if (service->attr.flags & SERV_ENABLED)
                            script_inf.default_stop = 
lvl2str(service->stopp->lvl);
+#ifdef SUSE
                        else
                            script_inf.default_stop = xstrdup(DEFAULT_STOP_LVL);
+#endif /* SUSE */
                    }
                }
            }
@@ -2837,10 +2841,28 @@
        }
 
        /* Ahh ... set default multiuser with network */
-       if (!script_inf.default_start || script_inf.default_start == empty)
-           script_inf.default_start = xstrdup(DEFAULT_START_LVL);
-       if (!script_inf.default_stop  || script_inf.default_start == empty)
-           script_inf.default_stop  = xstrdup(DEFAULT_STOP_LVL);
+       if (!script_inf.default_start) {
+#ifdef SUSE
+           if (script_inf.default_start == empty)
+               script_inf.default_start = xstrdup(DEFAULT_START_LVL);
+           else
+#endif /* not SUSE */
+           {
+               warn("Default-Start undefined, assuming empty start runlevel(s) 
for script `%s'\n", d->d_name);
+               script_inf.default_start = empty;
+           }
+       }
+       if (!script_inf.default_stop) {
+#ifdef SUSE
+           if (script_inf.default_start == empty)
+               script_inf.default_stop  = xstrdup(DEFAULT_STOP_LVL);
+           else
+#endif /* not SUSE */
+           {
+               warn("Default-Stop  undefined, assuming empty stop  runlevel(s) 
for script `%s'\n", d->d_name);
+               script_inf.default_stop = empty;
+           }
+       }
 
        if (chkfor(d->d_name, argv, argc) && !defaults && !del) {
            if (argr[curr_argc]) {
@@ -2928,7 +2950,7 @@
        script_inf.provides = begin;
 
        /* Remember if not LSB conform script */
-       if (lsb == FOUND_LSB_DEFAULT && service) {
+       if (!lsb && service) {
            service = getorig(service);
            service->attr.flags |= SERV_NOTLSB;
        }
@@ -2960,7 +2982,7 @@
      */
     follow_all();
     if (is_loop_detected() && !ignore)
-       error("exiting now!\n");
+       error("exiting without changing boot order!\n");
 
     /*
      * Be sure that interactive scripts are the only member of
@@ -3313,5 +3335,11 @@
      */
     popd();
 
+    /*
+     * Make valgrind happy
+     */
+    if (path != ipath) free(path);
+    if (root) free(root);
+
     return 0;
 }

Modified: branches/insserv-1.11.10/listing.h
URL: 
http://svn.debian.org/wsvn/initscripts-ng/branches/insserv-1.11.10/listing.h?rev=791&op=diff
==============================================================================
--- branches/insserv-1.11.10/listing.h (original)
+++ branches/insserv-1.11.10/listing.h Tue Jul 22 15:34:03 2008
@@ -11,8 +11,8 @@
  */
 
 #include <stddef.h>
-#include <sys/syscall.h>
 #include <sys/types.h>
+#include "config.h"
 
 typedef enum _boolean {false, true} boolean;
 typedef unsigned char uchar;
@@ -306,7 +306,8 @@
 
 #define xreset(ptr)    \
        {char *restrict tmp = (char *restrict)ptr; if (ptr && *tmp) free(ptr);} 
ptr = NULL
-#if defined SYS_unlinkat
+
+#if defined(HAS_unlinkat) && defined(_ATFILE_SOURCE)
 # define xremove(d,x) (__extension__ ({ if ((dryrun ? 0 : \
        (unlinkat(d,x,0) != 0 && (errno != EISDIR || unlinkat(d,x,AT_REMOVEDIR) 
!= 0)))) \
        warn ("can not remove(%s%s): %s\n", rcd, x, strerror(errno)); \
@@ -318,7 +319,7 @@
        else \
        info("remove service %s/%s%s\n", path, rcd, x); }))
 #endif
-#if defined SYS_symlinkat
+#if defined(HAS_symlinkat) && defined(_ATFILE_SOURCE)
 # define xsymlink(d,x,y) (__extension__ ({ if ((dryrun ? 0 : (symlinkat(x, d, 
y) != 0))) \
        warn ("can not symlink(%s, %s%s): %s\n", x, rcd, y, strerror(errno)); \
        else \
@@ -329,19 +330,19 @@
        else \
        info("enable service %s -> %s/%s%s\n", x, path, rcd, y); }))
 #endif
-#if defined SYS_fstatat64
+#if defined(HAS_fstatat) && defined(_ATFILE_SOURCE)
 # define xstat(d,x,s)  (__extension__ ({ fstatat(d,x,s, 0); }))
 # define xlstat(d,x,s) (__extension__ ({ fstatat(d,x,s, AT_SYMLINK_NOFOLLOW); 
}))
 #else
 # define xstat(d,x,s)  (__extension__ ({ stat(x,s); }))
 # define xlstat(d,x,s) (__extension__ ({ lstat(x,s); }))
 #endif
-#if defined SYS_fstatat64
+#if defined(HAS_readlinkat) && defined(_ATFILE_SOURCE)
 # define xreadlink(d,x,b,l)    (__extension__ ({ readlinkat(d,x,b,l); }))
 #else
 # define xreadlink(d,x,b,l)    (__extension__ ({ readlink(x,b,l); }))
 #endif
-#if defined SYS_openat
+#if defined(HAS_openat) && defined(_ATFILE_SOURCE)
 # define xopen(d,x,f)  (__extension__ ({ openat(d,x,f); }))
 #else
 # define xopen(d,x,f)  (__extension__ ({ open(x,f); }))

Modified: branches/insserv-1.11.10/tests/suite
URL: 
http://svn.debian.org/wsvn/initscripts-ng/branches/insserv-1.11.10/tests/suite?rev=791&op=diff
==============================================================================
--- branches/insserv-1.11.10/tests/suite (original)
+++ branches/insserv-1.11.10/tests/suite Tue Jul 22 15:34:03 2008
@@ -15,12 +15,15 @@
 : ${debug:=""}
 
 declare -i retval=0
+declare -i checkfailed=0
+declare -i testcount=0
+declare -i testfailed=0
 finish_test ()
 {
     if test 0 -ne $retval ; then
-        echo "error: one or more test failed."
+        echo "error: $testcount test executed, $checkfailed fatal tests 
failed, $testfailed nonfatal test failed."
     else
-        echo "success: no test failed."
+        echo "success: $testcount test executed, $testfailed nonfatal tests 
failed."
     fi
     rm -rf ${tmpdir}
     return $retval
@@ -172,15 +175,22 @@
     echo "$path"
 }
 
+counttest ()
+{
+    testcount=$(expr $testcount + 1)
+}
+
 error ()
 {
     echo error: $@
+    checkfailed=$(expr $checkfailed + 1)
     retval=1
 }
 
 warning ()
 {
     echo warning: $@
+    testfailed=$(expr $testfailed + 1)
 }
 
 addscript ()
@@ -204,6 +214,7 @@
     local script=$1;   shift
     local ret=0
     test -L ${rcdpath}/[KS][0-9][0-9]$script || ret=1
+    counttest
     return $ret
 }
 
@@ -271,6 +282,7 @@
     fi
     popd &> /dev/null
     test "$order" = "$script1 $script2" || ret=1
+    counttest
     return $ret
 }
 


_______________________________________________
Initscripts-ng-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/initscripts-ng-commits

Reply via email to