[meego-commits] 9170: Changes to Trunk/chkconfig

Peter Zhu no_reply at build.meego.com
Wed Nov 3 07:07:05 UTC 2010


Hi,
I have made the following changes to chkconfig in project Trunk. Please review and accept ASAP.

Thank You,
Peter Zhu

[This message was auto-generated]

---

Request #9170:

  submit:   Trunk:Testing/chkconfig(r11) -> Trunk/chkconfig


Message:
    Move to Trunk

State:   new          2010-11-03T00:07:04 peter
Comment: None



changes files:
--------------
--- chkconfig.changes
+++ chkconfig.changes
@@ -0,0 +1,4 @@
+* Fri Oct 29 2010 Yan Yin <yan.yin at intel.com> - 1.3.48
+- Update to 1.3.48
+- Fix broken YAML file
+

old:
----
  chkconfig-1.3.46.tar.bz2

new:
----
  chkconfig-1.3.48.tar.bz2

spec files:
-----------
--- chkconfig.spec
+++ chkconfig.spec
@@ -1,13 +1,13 @@
 # 
-# Do not Edit! Generated by:
-# spectacle version 0.17
+# Do NOT Edit the Auto-generated Part!
+# Generated by: spectacle version 0.20
 # 
 # >> macros
 # << macros
 
 Name:       chkconfig
 Summary:    A system tool for maintaining the /etc/rc*.d hierarchy
-Version:    1.3.46
+Version:    1.3.48
 Release:    1
 Group:      System/Base
 License:    GPLv2
@@ -53,18 +53,17 @@
 # << build pre
 
 
-make %{?jobs:-j%jobs}
 
 # >> build post
+make %{?jobs:-j%jobs}
 # << build post
 %install
 rm -rf %{buildroot}
 # >> install pre
 # << install pre
 
-make DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} SBINDIR=%{_sbindir} install
-
 # >> install post
+make DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} SBINDIR=%{_sbindir} install
 
 for n in 0 1 2 3 4 5 6; do
 mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc${n}.d
@@ -78,6 +77,12 @@
 
 
 
+
+
+
+
+
+
 %files -f %{name}.lang
 %defattr(-,root,root,-)
 # >> files

other changes:
--------------

++++++ chkconfig-1.3.46.tar.bz2 -> chkconfig-1.3.48.tar.bz2
--- chkconfig-1.3.46
+++ chkconfig-1.3.46
-(directory)
--- chkconfig-1.3.46/COPYING
+++ chkconfig-1.3.46/COPYING
(renamed to chkconfig-1.3.48/COPYING)
--- chkconfig-1.3.46/Makefile
+++ chkconfig-1.3.46/Makefile
(renamed to chkconfig-1.3.48/Makefile)
--- chkconfig-1.3.46/alternatives.8
+++ chkconfig-1.3.46/alternatives.8
(renamed to chkconfig-1.3.48/alternatives.8)
--- chkconfig-1.3.46/alternatives.c
+++ chkconfig-1.3.46/alternatives.c
(renamed to chkconfig-1.3.48/alternatives.c)
--- chkconfig-1.3.46/chkconfig.8
+++ chkconfig-1.3.46/chkconfig.8
(renamed to chkconfig-1.3.48/chkconfig.8)
--- chkconfig-1.3.46/chkconfig.c
+++ chkconfig-1.3.46/chkconfig.c
-/* Copyright 1997-2008 Red Hat, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-#include <ctype.h>
-#include <dirent.h>
-#include <errno.h>
-#include <glob.h>
-#include <libintl.h> 
-#include <locale.h> 
-#include <popt.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-static char *progname;
-
-#define _(String) gettext((String)) 
-
-#include "leveldb.h"
-
-static int LSB = 0;
-
-static void usage(void) {
-    fprintf(stderr, _("%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"), progname, VERSION);
-    fprintf(stderr, _("This may be freely redistributed under the terms of "
-			"the GNU Public License.\n"));
-    fprintf(stderr, "\n");
-    fprintf(stderr, _("usage:   %s [--list] [--type <type>] [name]\n"), progname);
-    fprintf(stderr, _("         %s --add <name>\n"), progname);
-    fprintf(stderr, _("         %s --del <name>\n"), progname);
-    fprintf(stderr, _("         %s --override <name>\n"), progname);
-    fprintf(stderr, _("         %s [--level <levels>] [--type <type>] <name> %s\n"), progname, "<on|off|reset|resetpriorities>");
-
-    exit(1);
-}
-
-static void readServiceError(int rc, char * name) {
-    if (rc == 2) {
-	fprintf(stderr, _("service %s supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add %s')\n"), name, name);
-    } else if (rc == 1) {
-	fprintf(stderr, _("service %s does not support chkconfig\n"), name);
-    } else {
-	fprintf(stderr, _("error reading information on service %s: %s\n"),
-		name, strerror(errno));
-    }
-
-    exit(1);
-}
-
-static void checkRoot() {
-	if (access(RUNLEVELS "/rc3.d", R_OK | W_OK) != 0) {
-		fprintf(stderr, _("You do not have enough privileges to perform this operation.\n"));
-		exit(1);
-	}
-}
-
-static int delService(char *name, int type, int level) {
-    int i, j, k, numservs, rc;
-    glob_t globres;
-    struct service s;
-    struct service *services;
-
-    if ((rc = readServiceInfo(name, type, &s, 0))) {
-	readServiceError(rc, name);
-	return 1;
-    }
-    if (s.type == TYPE_XINETD) return 0;
-
-    checkRoot();
-
-    if (LSB && level == -1) {
-	numservs = readServices(&services);
-
-	for (i = 0; i < numservs ; i++) {
-		if (services[i].startDeps) {
-			for (j = 0; services[i].startDeps[j].name ; j++) {
-				if (!strcmp(services[i].startDeps[j].name, s.name)) {
-				        for (k = 0 ; k <= 6; k++) {
-				            if (isOn(services[i].name, k))
-				                return 1;
-                                        }
-				}
-			}
-		}
-		if (services[i].stopDeps) {
-			for (j = 0; services[i].stopDeps[j].name ; j++) {
-				if (!strcmp(services[i].stopDeps[j].name, s.name)) {
-				        for (k = 0 ; k <= 6; k++) {
-				                if (!isOn(services[i].name, k))
-				                    return 1;
-                                        }
-				}
-			}
-		}
-	}
-    }
-
-    for (j = 0 ; j < 7; j++) {
-	 if (level == -1 || level == j) {
-		 if (!findServiceEntries(name, j, &globres)) {
-			 for (i = 0; i < globres.gl_pathc; i++)
-				 unlink(globres.gl_pathv[i]);
-			    if (globres.gl_pathc) globfree(&globres);
-		    }
-	 }
-    }
-    return 0;
-}
-
-static inline int laterThan(int i, int j) {
-	if (i <= j) {
-		i = j+1;
-		if (i > 99)
-			i = 99;
-	}
-	return i;
-}
-
-static inline int earlierThan(int i, int j) {
-	if (i >= j) {
-		i = j -1;
-		if (i < 0)
-			i = 0;
-	}
-	return i;
-}
-
-static int isSimilarlyConfigured(struct service s, struct service t, int start) {
-        int i, state_s, state_t;
-
-        for (i = 0; i <= 6; i ++) {
-                if (isConfigured(s.name, i, NULL, NULL)) {
-                        state_s = isOn(s.name, i);
-                } else {
-                        state_s = ((1<<i) & s.levels) ? 1 : 0;
-                }
-                state_t = isOn(t.name, i);
-                if (state_s == state_t && state_s == start)
-                        return 1;
-        }
-        return 0;
-}
-
-static void checkDeps(struct service *s, struct dep *deps, struct service *serv, int start) {
-        int j,k;
-
-        for (j = 0; deps[j].name ; j++) {
-                if (!strcmp(deps[j].name, serv->name) && isSimilarlyConfigured(*s, *serv, 0)) {
-                        if (start)
-                                s->sPriority = laterThan(s->sPriority, serv->sPriority);
-                        else
-                                s->kPriority = earlierThan(s->kPriority, serv->kPriority);
-                        deps[j].handled = 1;
-                }
-                if (serv->provides) {
-                        for (k = 0; serv->provides[k]; k++) {
-                                if (!strcmp(deps[j].name, serv->provides[k]) && isSimilarlyConfigured(*s, *serv, 0)) {
-                                        if (start)
-                                                s->sPriority = laterThan(s->sPriority, serv->sPriority);
-                                        else
-                                                s->kPriority = earlierThan(s->kPriority, serv->kPriority);
-                                        deps[j].handled = 1;
-                                }
-                        }
-                }
-        }
-}
-
-static int frobOneDependencies(struct service *s, struct service *servs, int numservs, int target, int depfail) {
-	int i;
-	int s0 = s->sPriority;
-	int k0 = s->kPriority;
-
-	if (s->sPriority < 0) s->sPriority = 50;
-	if (s->kPriority < 0) s->kPriority = 50;
-	for (i = 0; i < numservs ; i++) {
-		if (s->startDeps) {
-			checkDeps(s, s->startDeps, &servs[i], 1);
-		}
-		if (s->softStartDeps) {
-		        checkDeps(s, s->softStartDeps, &servs[i], 1);
-		}
-		if (s->stopDeps) {
-		        checkDeps(s, s->stopDeps, &servs[i], 0);
-		}
-		if (s->softStopDeps) {
-		        checkDeps(s, s->softStopDeps, &servs[i], 0);
-		}
-	}
-	if (depfail) {
-		if (s->startDeps) {
-			for (i = 0; s->startDeps[i].name; i++) {
-				if (!s->startDeps[i].handled)
-					return -1;
-			}
-		}
-		if (s->stopDeps) {
-			for (i = 0; s->stopDeps[i].name; i++) {
-				if (!s->stopDeps[i].handled)
-					return -1;
-			}
-		}
-	}
-
-	if (target || ((s0 != s->sPriority) || (k0 != s->kPriority))) {
-		for (i = 0; i < 7; i++) {
-			if (isConfigured(s->name, i, NULL, NULL)) {
-				int on = isOn(s->name, i);
-				delService(s->name, TYPE_INIT_D, i);
-				doSetService(*s, i, on);
-			} else if (target) {
-				delService(s->name, TYPE_INIT_D, i);
-				doSetService(*s, i, ((1<<i) & s->levels));
-			}
-		}
-		return 1; /* Resolved something */
-	}
-	return 0; /* Didn't resolve anything */
-}
-
-/* LSB-style dependency frobber. Calculates a usable start priority
- * and stop priority.
- * This algorithm will almost certainly break horribly at some point. */
-static int frobDependencies(struct service *s) {
-	struct service *servs = NULL;
-	int numservs = 0;
-	int nResolved = 0;
-
-	numservs = readServices(&servs);
-	/* Resolve recursively the other dependancies */
-	do {
-	  	nResolved = 0;
-		int i;
-		
-		for (i = 0; i < numservs ; i++) {
-			if ((servs+i)->isLSB && strcmp((servs+i)->name, s->name))
-				nResolved += frobOneDependencies(servs+i, servs, numservs, 0, 0);
-		}
-	} while (nResolved);
-
-	/* Resolve our target */
-	if (frobOneDependencies(s, servs, numservs, 1, LSB) == -1)
-		return 1;
-	return 0;
-}
-
-static int addService(char * name, int type) {
-    int i, rc;
-    struct service s;
-
-    if ((rc = readServiceInfo(name, type, &s, 0))) {
-	readServiceError(rc, name);
-	return 1;
-    }
-	
-    if (s.type == TYPE_XINETD) return 0;
-    checkRoot();
-
-    if (s.isLSB)
-		rc = frobDependencies(&s);
-    else
-    for (i = 0; i < 7; i++) {
-	if (!isConfigured(name, i, NULL, NULL)) {
-	    if ((1 << i) & s.levels)
-		doSetService(s, i, 1);
-	    else
-		doSetService(s, i, 0);
-	}
-    }
-
-    return rc;
-}
-
-static int overrideService(char * name, int srvtype) {
-    /* Apply overrides if available; no available overrides is no error */
-    int level, i, rc;
-    glob_t globres;
-    struct service s;
-    struct service o;
-    int priority;
-    char type;
-    int doChange = 1;
-    int configured = 0;
-    int thisLevelAdded, thisLevelOn;
-
-    if ((rc = readServiceDifferences(name, srvtype, &s, &o, 0))) {
-	return 0;
-    }
-	
-    if (s.type == TYPE_XINETD) return 0;
-
-    checkRoot();
-
-    if ((s.levels == o.levels) &&
-        (s.kPriority == o.kPriority) &&
-        (s.sPriority == o.sPriority)) {
-        /* no relevant changes in the override file */
-	return 0;
-    }
-
-    if (s.isLSB && (s.sPriority <= -1) && (s.kPriority <= -1))
-		frobDependencies(&s);
-    if ((s.isLSB || o.isLSB) && (o.sPriority <= -1) && (o.kPriority <= -1))
-		frobDependencies(&o);
-
-    /* Apply overrides only if the service has not been changed since
-     * being added, and not if the service has never been configured
-     * at all.
-     */
-    
-    for (level = 0; level < 7; level++) {
-	thisLevelAdded = isConfigured(name, level, &priority, &type);
-        thisLevelOn = s.levels & 1<<level;
-        if (thisLevelAdded) {
-            configured = 1;
-            if (type == 'S') {
-                if (priority != s.sPriority || !thisLevelOn) {
-                    doChange = 0;
-                    break;
-                }
-            } else if (type == 'K') {
-                if (priority != s.kPriority || thisLevelOn) {
-                    doChange = 0;
-                    break;
-                }
-            }
-	}
-    }
-
-    if (configured && doChange) {
-        for (level = 0; level < 7; level++) {
-            if (!findServiceEntries(name, level, &globres)) {
-                for (i = 0; i < globres.gl_pathc; i++)
-                    unlink(globres.gl_pathv[i]);
-                if (globres.gl_pathc)
-                    globfree(&globres);
-                if ((1 << level) & o.levels)
-                    doSetService(o, level, 1);
-                else
-                    doSetService(o, level, 0);
-            }
-        }
-    }
-
-    return 0;
-}
-
-static int showServiceInfo(struct service s, int forgiving) {
-    int rc;
-    int i;
-
-    if (s.type == TYPE_INIT_D) {
-	    rc = 2;
-	    for (i = 0 ; i < 7 ; i++) {
-		    if (isConfigured(s.name, i, NULL, NULL)) {
-			    rc = 0;
-			    break;
-		    }
-	    }
-    }
-
-    if (rc) {
-	if (!forgiving)
-	    readServiceError(rc, s.name);
-	return forgiving ? 0 : 1;
-    }
-
-    printf("%-15s", s.name);
-    if (s.type == TYPE_XINETD) {
-	    printf("\t%s\n", s.levels ? _("on") : _("off"));
-	    return 0;
-    }
-
-    for (i = 0; i < 7; i++) {
-	printf("\t%d:%s", i, isOn(s.name, i) ? _("on") : _("off"));
-    }
-    printf("\n");
-
-    return 0;
-}
-
-static int showServiceInfoByName(char * name, int type, int forgiving) {
-    int rc;
-    struct service s;
-
-    rc = readServiceInfo(name, type, &s, 0);
-
-    if (rc) {
-	if (!forgiving)
-	    readServiceError(rc, name);
-	return forgiving ? 0 : 1;
-    }
-
-    return showServiceInfo(s, forgiving);
-}
-
-
-static int isXinetdEnabled() {
-	int i;
-	struct service s;
-	
-	if (readServiceInfo("xinetd", TYPE_INIT_D, &s, 0)) {
-		return 0;
-	}
-	for (i = 0; i < 7; i++) {
-		if (isOn("xinetd", i))
-		  return 1;
-	}
-	return 0;
-}
-
-static int serviceNameCmp(const void * a, const void * b) {
-  return strcmp(* (char **)a, * (char **)b);
-}
-
-static int xinetdNameCmp(const void * a, const void * b) {
-    const struct service * first = a;
-    const struct service * second = b;
-
-    return strcmp(first->name, second->name);
-}
-
-
-static int listService(char * item, int type) {
-    DIR * dir;
-    struct dirent * ent;
-    struct service *services;
-    int i;
-    int numServices = 0;
-    int numServicesAlloced;
-    int err = 0;
-
-    if (item) return showServiceInfoByName(item, type, 0);
-
-    if (type & TYPE_INIT_D) {
-        numServices = readServices(&services);
-    
-        qsort(services, numServices, sizeof(*services), serviceNameCmp);
-	
-        for (i = 0; i < numServices ; i++) {
-	    if (showServiceInfo(services[i], 1)) {
-		    return 1;
-	    }
-        }
-    }
-		    
-    if (isXinetdEnabled() && type & TYPE_XINETD) {
-	    struct service *s, *t;
-	  
-	    printf("\n");
-	    printf(_("xinetd based services:\n"));
-	    if (!(dir = opendir(XINETDDIR))) {
-		    fprintf(stderr, _("failed to open directory %s: %s\n"),
-			    XINETDDIR, strerror(err));
-		    return 1;
-	    }
-	    numServices = 0;
-	    numServicesAlloced = 10;
-	    s = malloc(sizeof (*s) * numServicesAlloced);
-	    
-	    while ((ent = readdir(dir))) {
-		    const char *dn;
-
-		    /* Skip any file starting with a . */
-		    if (ent->d_name[0] == '.')	continue;
-
-		    /* Skip files with known bad extensions */
-		    if ((dn = strrchr(ent->d_name, '.')) != NULL &&
-			(!strcmp(dn, ".rpmsave") || !strcmp(dn, ".rpmnew") || !strcmp(dn, ".rpmorig") || !strcmp(dn, ".swp")))
-		      continue;
-
-		    dn = ent->d_name + strlen(ent->d_name) - 1;
-		    if (*dn == '~' || *dn == ',')
-		      continue;
-	    
-		    if (numServices == numServicesAlloced) {
-			    numServicesAlloced += 10;
-			    s = realloc(s, numServicesAlloced * sizeof (*s));
-		    }
-		    if (readXinetdServiceInfo(ent->d_name, s + numServices, 0) != -1)
-			    numServices ++;
-	    }
-	    
-	    qsort(s, numServices, sizeof(*s), xinetdNameCmp);
-	    t = s;
-	    for (i = 0; i < numServices; i++, s++) {
-		    char *tmp = malloc(strlen(s->name) + 5);
-		    sprintf(tmp,"%s:",s->name);
-		    printf("\t%-15s\t%s\n", tmp,  s->levels ? _("on") : _("off"));
-	    }
-	    closedir(dir);
-	    free(t);
-    }
-    return 0;
-}
-
-int setService(char * name, int type, int where, int state) {
-    int i, rc;
-    int what;
-    struct service s;
-    
-    if (!where && state != -1) {
-	/* levels 2, 3, 4, 5 */
-	where = (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5);
-    } else if (!where) {
-	where = (1 << 0) | (1 << 1) | (1 << 2) |
-	        (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6);
-    }
-
-    if ((rc = readServiceInfo(name, type, &s, 0))) {
-	readServiceError(rc, name);
-	return 1;
-    }
-
-    checkRoot();
-
-    if (s.type == TYPE_INIT_D) {
-	    int rc = 0;
-	    
-	    if (s.isLSB)
-		    frobDependencies(&s);
-	    for (i = 0; i < 7; i++) {
-		    
-		    if (!((1 << i) & where)) continue;
-
-		    if (state == 1 || state == 0)
-		      what = state;
-		    else if (state == -2)
-		      what = isOn(name, i);
-		    else if (s.levels & (1 << i))
-		      what = 1;
-		    else
-		      what = 0;
-		    rc |= doSetService(s, i, what);
-	    }
-	    return rc;
-    } else if (s.type == TYPE_XINETD) {
-	    if (setXinetdService(s, state)) {
-		    return 1;
-	    }
-	    system("/etc/init.d/xinetd reload >/dev/null 2>&1");
-    }
-
-    return 0;
-}
-
-int main(int argc, char ** argv) {
-    int listItem = 0, addItem = 0, delItem = 0, overrideItem = 0;
-    int type = TYPE_ANY;
-    int rc, i, x;
-    char * levels = NULL;
-    char * typeString = NULL;
-    int help=0, version=0;
-    struct service s;
-    poptContext optCon;
-    struct poptOption optionsTable[] = {
-	    { "add", '\0', 0, &addItem, 0 },
-	    { "del", '\0', 0, &delItem, 0 },
-	    { "override", '\0', 0, &overrideItem, 0 },
-	    { "list", '\0', 0, &listItem, 0 },
-	    { "level", '\0', POPT_ARG_STRING, &levels, 0 },
-	    { "levels", '\0', POPT_ARG_STRING, &levels, 0 },
-	    { "type", '\0', POPT_ARG_STRING, &typeString, 0 },
-	    { "help", 'h', POPT_ARG_NONE, &help, 0 },
-	    { "version", 'v', POPT_ARG_NONE, &version, 0 },
-	    { 0, 0, 0, 0, 0 } 
-    };
-
-    if ((progname = strrchr(argv[0], '/')) != NULL)
-	progname++;
-    else
-	progname = argv[0];
-    if (!strcmp(progname,"install_initd")) {
-	    addItem++;
-	    LSB++;
-    }
-    if (!strcmp(progname,"remove_initd")) {
-	    delItem++;
-	    LSB++;
-    }
-
-    setlocale(LC_ALL, ""); 
-    bindtextdomain("chkconfig","/usr/share/locale"); 
-    textdomain("chkconfig"); 
-
-    optCon = poptGetContext("chkconfig", argc, argv, optionsTable, 0);
-    poptReadDefaultConfig(optCon, 1);
-
-    if ((rc = poptGetNextOpt(optCon)) < -1) {
-	fprintf(stderr, "%s: %s\n", 
-		poptBadOption(optCon, POPT_BADOPTION_NOALIAS), 
-		poptStrerror(rc));
-	exit(1);
-    }
-
-    if (version) {
-	fprintf(stdout, _("%s version %s\n"), progname, VERSION);
-	exit(0);
-    }
-
-    if (help) usage();
-
-    if (typeString) {
-	if (!strcmp(typeString, "xinetd"))
-	    type = TYPE_XINETD;
-	else if (!strcmp(typeString, "sysv"))
-	    type = TYPE_INIT_D;
-	else {
-	    fprintf(stderr, _("--type must be 'sysv' or 'xinetd'\n"));
-	    exit(1);
-	}
-    }
-
-    if (argc == 1) return listService(NULL, type);
-
-    if ((listItem + addItem + delItem + overrideItem) > 1) {
-	fprintf(stderr, _("only one of --list, --add, --del, or --override"
-                " may be specified\n"));
-	exit(1);
-    }
-
-    if (addItem) {
-	char * name = (char *)poptGetArg(optCon);
-
-	if (!name || !*name || poptGetArg(optCon)) 
-	    usage();
-	
-	name = basename(name);
-	return addService(name, type);
-    } else if (delItem) {
-	char * name = (char *)poptGetArg(optCon);
-
-	if (!name || !*name || poptGetArg(optCon)) usage();
-
-	name = basename(name);
-	return delService(name, type, -1);
-    } else if (overrideItem) {
-	char * name = (char *)poptGetArg(optCon);
-
-	if (!name || !*name || poptGetArg(optCon)) usage();
-
-        name = basename(name);
-	return overrideService(name, type);
-    } else if (listItem) {
-	char * item = (char *)poptGetArg(optCon);
-
-	if (item && poptGetArg(optCon)) usage();
-
-	return listService(item, type);
-    } else {
-	char * name = (char *)poptGetArg(optCon);
-	char * state = (char *)poptGetArg(optCon);
-	int where = 0, level = -1;
-
-	if (!name) {
-		usage();
-	}
-	if (levels) {
-	    where = parseLevels(levels, 0);
-	    if (where == -1) usage();
-	}
-
-	if (!state) {
-	    if (where) {
-		rc = x = 0;
-		i = where;
-		while (i) {
-		    if (i & 1) {
-			rc++;
-			level = x;
-		    }
-		    i >>= 1;
-		    x++;
-		}
-
-		if (rc > 1) {
-		    fprintf(stderr, _("only one runlevel may be specified for "
-			    "a chkconfig query\n"));
-		    exit(1);
-		}
-	    } 
-	    rc = readServiceInfo(name, type, &s, 0);
-	    if (rc)
-	       return 1;
-	    if (s.type == TYPE_XINETD) {
-	       if (isOn("xinetd",level))
-		       return !s.levels;
-	       else
-		       return 1;
-	    } else	
-	       return isOn(name, level) ? 0 : 1;
-	} else if (!strcmp(state, "on"))
-	    return setService(name, type, where, 1);
-	else if (!strcmp(state, "off"))
-	    return setService(name, type, where, 0);
-	else if (!strcmp(state, "reset"))
-	    return setService(name, type, where, -1);
-	else if (!strcmp(state, "resetpriorities"))
-	    return setService(name, type, where, -2);
-	else
-	    usage();
-    }
-
-    usage();
-
-    return 1;
-}
--- chkconfig-1.3.46/chkconfig.spec
+++ chkconfig-1.3.46/chkconfig.spec
-Summary: A system tool for maintaining the /etc/rc*.d hierarchy
-Name: chkconfig
-Version: 1.3.46
-Release: 1%{?dist}
-License: GPLv2
-Group: System Environment/Base
-Source: http://fedorahosted.org/releases/c/h/chkconfig/%{name}-%{version}.tar.bz2
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: newt-devel gettext popt-devel
-Conflicts: initscripts <= 5.30-1
-
-%description
-Chkconfig is a basic system utility.  It updates and queries runlevel
-information for system services.  Chkconfig manipulates the numerous
-symbolic links in /etc/rc.d, to relieve system administrators of some 
-of the drudgery of manually editing the symbolic links.
-
-%package -n ntsysv
-Summary: A tool to set the stop/start of system services in a runlevel
-Group: System Environment/Base
-Requires: chkconfig = %{version}-%{release}
-
-%description -n ntsysv
-Ntsysv provides a simple interface for setting which system services
-are started or stopped in various runlevels (instead of directly
-manipulating the numerous symbolic links in /etc/rc.d). Unless you
-specify a runlevel or runlevels on the command line (see the man
-page), ntsysv configures the current runlevel (5 if you're using X).
-
-%prep
-%setup -q
-
-%build
-
-make RPM_OPT_FLAGS="$RPM_OPT_FLAGS" %{?_smp_mflags}
-
-%install
-rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} SBINDIR=%{_sbindir} install
-
-mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
-ln -s rc.d/init.d $RPM_BUILD_ROOT/etc/init.d
-for n in 0 1 2 3 4 5 6; do
-    mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc${n}.d
-    ln -s rc.d/rc${n}.d $RPM_BUILD_ROOT/etc/rc${n}.d
-done
-mkdir -p $RPM_BUILD_ROOT/etc/chkconfig.d
-
-%find_lang %{name}
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files -f %{name}.lang
-%defattr(-,root,root)
-%doc COPYING
-%dir /etc/alternatives
-/sbin/chkconfig
-%{_sbindir}/update-alternatives
-%{_sbindir}/alternatives
-/etc/chkconfig.d
-/etc/init.d
-/etc/rc.d/init.d
-/etc/rc[0-6].d
-/etc/rc.d/rc[0-6].d
-%dir /var/lib/alternatives
-%{_mandir}/*/chkconfig*
-%{_mandir}/*/update-alternatives*
-%{_mandir}/*/alternatives*
-
-%files -n ntsysv
-%defattr(-,root,root)
-%{_sbindir}/ntsysv
-%{_mandir}/*/ntsysv.8*
-
-%changelog
-* Wed May 05 2010 Bill Nottingham <notting at redhat.com> 1.3.46-1
-- translation updates: hu, kn, ko (#589187)
-
-* Thu Mar 04 2010 Bill Nottingham <notting at redhat.com> 1.3.45-1
-- add support for Should-Start, Should-Stop (#98470, <iarnell at gmail.com>)
-- ntsysv: don't drop initscripts with '.' in the name (#556751)
-- translation updates: el, id
-
-* Tue Sep 29 2009 Bill Nottingham <notting at redhat.com> 1.3.44-1
-- alternatives: update symlinks if they exist on installation (#104940)
-- alternatives: clarify error messages with more context (#441443)
-- alternatives: fix removal of manual links (#525021, <dtardon at redhat.com>)
-- translation updates: ml, mr, pl, ta, uk
-
-* Mon Sep 14 2009 Bill Nottingham <notting at redhat.com> 1.3.43-1
-- ntsysv man page tweak (#516599)
-- another minor LSB tweak (#474223)
-- translation updates
-
-* Fri Mar  6 2009 Bill Nottingham <notting at redhat.com> 1.3.42-1
-- further LSB fixes (#474223)
-- throw errors on various malformed init scripts (#481198)
-- man page updates re: LSB (#487979)
-- translation updates: mai, gu, pt_BR, ro, ca, pa, sr, fr, hu
-
-* Tue Jan 20 2009 Bill Nottingham <notting at redhat.com> 1.3.41-1
-- restore return code & error on unconfigured services (#480805)
-
-* Fri Dec  5 2008 Bill Nottingham <notting at redhat.com> 1.3.40-1
-- fix some overflows. (#176944)
-- add --type parameter to specify either xinetd or sysv services.
-  (#467863, <mschmidt at redhat.com>
-- do a permissions check before add/remove/on/off/resetpriorities. (#450254)
-- parse Short-Description correctly (#441813, <peter_e at gmx.net>)
-
-* Thu Dec  4 2008 Bill Nottingham <notting at redhat.com> 1.3.39-1
-- fail if dependencies fail on add/remove in LSB mode (#474223)
-
-* Wed Oct 29 2008 Bill Nottingham <notting at redhat.com> 1.3.38-1
-- Fix runlevel list in man page (#466739)
-- translation updates
-
-* Thu Nov  8 2007 Bill Nottingham <notting at redhat.com> 1.3.37-1
-- make no options do --list (#290241, #176184)
-- sr at Latn -> sr at latin
-
-* Tue Sep 25 2007 Bill Nottingham <notting at redhat.com> 1.3.36-1
-- buildreq popt-devel, link it dynamically (#279531)
-- translation updates: kn, ko, mr, ro
-
-* Fri Aug  3 2007 Bill Nottingham <notting at redhat.com> 1.3.35-1
-- clarify licensing
-
-* Mon Apr 16 2007 Bill Nottingham <notting at redhat.com> 1.3.34-1
-- translation updates: as, bg, bn_IN, bs, ca, de, fr, hi, hu, id, ja,
-  ka, ml, ms, nb, or, sk, sl
-- add resetpriorities to the man page (#197399)
-  
-* Tue Feb  6 2007 Bill Nottingham <notting at redhat.com> 1.3.33-1
-- various changes from review - support alternate %%{_sbindir}, fix
-  summaries, add version to requires, assorted other bits
-
-* Fri Feb  2 2007 Bill Nottingham <notting at redhat.com> 1.3.32-1
-- support overriding various defaults via /etc/chkconfig.d (<johnsonm at rpath.com>)
-
-* Thu Feb  1 2007 Bill Nottingham <notting at redhat.com> 1.3.31-1
-- fix man page (#220558, <esr at thyrus.com>)
-- add some more verbiage in alternatives man page (#221089)
-- don't print usage message on a nonexstent service (#226804)
-
-* Fri Dec  1 2006 Bill Nottingham <notting at redhat.com> 1.3.30.1-1
-- translation updates: as, ka, lv, ml, te (#216617)
-
-* Thu Sep  7 2006 Bill Nottingham <notting at redhat.com> 1.3.30-1
-- license cleanup
-
-* Fri Feb 24 2006 Bill Nottingham <notting at redhat.com> 1.3.29-1
-- fix accidental enabling of services on --add (#182729)
-
-* Mon Feb 13 2006 Bill Nottingham <notting at redhat.com> 1.3.27-1
-- translation updates
-
-* Thu Feb  2 2006 Bill Nottingham <notting at redhat.com> 1.3.26-1
-- add support for resetting priorities without on/off status (#178864)
-
-* Wed Nov 30 2005 Bill Nottingham <notting at redhat.com> 1.3.25-1
-- return an error if changing services fails (#150235)
-
-* Fri Nov 18 2005 Bill Nottingham <notting at redhat.com> 1.3.24-1
-- when removing alternatives links, check to make sure they're
-  actually links (#173685)
-
-* Fri Nov 11 2005 Bill Nottingham <notting at redhat.com> 1.3.23-1
-- fix ntsysv (#172996)
-
-* Wed Nov  9 2005 Bill Nottingham <notting at redhat.com>
-- fix doSetService call in frobOneDependencies
-
-* Tue Nov  8 2005 Bill Nottingham <notting at redhat.com>
-- for LSB scripts, use any chkconfig: priorities as a basis,
-  instead of 50/50 (#172599)
-- fix LSB script dependency setting when no chkconfig: line
-  is present (#161870, <jean-francois.larvoire at hp.com>)
-- fix LSB script dependency setting when one of Required-Stop
-  or Required-Start: is missing (#168457)
-
-* Fri Oct  7 2005 Bill Nottingham <notting at redhat.com>
-- fix segfault on directories in /etc/xinetd.d (#166385)
-- don't needlessly rewrite xinetd files (#81008)
-
-* Thu May  5 2005 Bill Nottingham <notting at redhat.com> 1.3.20-1
-- fix deletion of orphaned slave links (#131496, <mitr at redhat.com>)
-
-* Fri Apr 29 2005 Bill Nottingham <notting at redhat.com> 1.3.19-1
-- build with updated translations
-
-* Thu Mar  3 2005 Bill Nottingham <notting at redhat.com> 1.3.18-1
-- actually return an error code if changing a service info fails
-
-* Tue Feb 22 2005 Bill Nottingham <notting at redhat.com> 1.3.17-1
-- more chkconfig: vs. LSB fixes (#149066)
-
-* Thu Feb 10 2005 Bill Nottingham <notting at redhat.com> 1.3.16-1
-- prefer chkconfig: start/stop priorities in LSB mode unless
-  Required-Start/Stop are used
-
-* Mon Feb  7 2005 Bill Nottingham <notting at redhat.com> 1.3.15-1
-- print usage when various invalid args are passed (#147393)
-
-* Wed Feb  2 2005 Bill Nottingham <notting at redhat.com> 1.3.14-1
-- resize reasonably with larger screens (#74156)
-- don't error out completely on bad symlink (#74324)
-- use ngettext (#106176)
-- error out on invalid start/stop values (#109858)
-- some man page updates
-- fix return code of chkconfig for xinetd services (#63123)
-- sort chkconfig --list display (#61576, <shishz at alum.rpi.edu>)
-
-* Tue Jan 11 2005 Bill Nottingham <notting at redhat.com> 1.3.13-1
-- fix LSB comment parsing some more (#144739)
-
-* Thu Oct 28 2004 Bill Nottingham <notting at redhat.com> 1.3.11.2-1
-- fix manpage reference (#137492)
-
-* Fri Oct  1 2004 Bill Nottingham <notting at redhat.com> 1.3.11.1-1
-- rebuild with updated translations
-
-* Fri Jun  4 2004 Bill Nottingham <notting at redhat.com> 1.3.11-1
-- fix LSB comment parsing (#85678)
-
-* Wed May 29 2004 Bill Nottingham <notting at redhat.com> 1.3.10-1
-- mark alternatives help output for translation (#110526)
-
-* Wed Oct 22 2003 Bill Nottingham <notting at redhat.com> 1.3.9-1
-- update translations
-
-* Mon Jul 28 2003 Bill Nottingham <notting at redhat.com> 1.3.8-4
-- rebuild
-
-* Tue May 13 2003 Dan Walsh <dwalsh at redhat.com> 1.3.8-3
-- Update for RHEL
-
-* Thu May 8 2003 Dan Walsh <dwalsh at redhat.com> 1.3.8-2
-- Fix readXinetdServiceInfo to return error on not regular files
-- Fix chkconfig to not write messages if readXinetdServiceInfo gets an error
-
-* Fri Jan 31 2003 Bill Nottingham <notting at redhat.com> 1.3.8-1
-- fix some wording in alternatives (#76213)
-- actually mark alternatives for translation
-
-* Thu Dec 12 2002 Elliot Lee <sopwith at redhat.com> 1.3.7-1
-- Link to libpopt in a multilib-safe fashion.
-
-* Thu Aug 29 2002 Trond Eivind Glomsrød <teg at redhat.com> 1.3.6-3
-- bump
-
-* Thu Aug 15 2002 Bill Nottingham <notting at redhat.com> 1.3.6-2
-- rebuild against new newt
-
-* Mon Aug 12 2002 Bill Nottingham <notting at redhat.com> 1.3.6-1
-- make on and off handle runlevel 2 too (#70766)
-
-* Mon Apr 15 2002 Trond Eivind Glomsrød <teg at redhat.com> 1.3.5-3
-- Update translations
-
-* Mon Apr 15 2002 Trond Eivind Glomsrød <teg at redhat.com> 1.3.5-2
-- Update translations
-
-* Sun Apr  7 2002 Jeremy Katz <katzj at redhat.com> 1.3.5-1
-- alternatives: handle default with --config properly (#62009)
-
-* Thu Mar 14 2002 Bill Nottingham <notting at redhat.com> 1.3.4-1
-- don't apply the dependency logic to things that already have
-  start/stop priorities
-- fix silly display bug in --config
-
-* Tue Mar 12 2002 Bill Nottingham <notting at redhat.com> 1.3.2-1
-- chkconfig: LSB support
-
-* Fri Mar  8 2002 Bill Nottingham <notting at redhat.com>
-- alternatives: handle initscripts too; --initscript command-line option
-- chkconfig/ntsysv (and serviceconf, indirectly): services with
-   *no* links in /etc/rc*.d are no longer displayed with --list, or
-   available for configuration except via chkconfig command-line options
-- alternatives: fix trying to enable disable a null service
-
-* Tue Mar  5 2002 Bill Nottingham <notting at redhat.com>
-- alternatives: handle things with different numbers of slave links
-
-* Mon Mar  4 2002 Bill Nottingham <notting at redhat.com>
-- minor alternatives tweaks: don't install the same thing multiple times
-
-* Wed Jan 30 2002 Bill Nottingham <notting at redhat.com>
-- actually, put the alternatives stuff back in /usr/sbin
-- ship /etc/alternatives dir
-- random alternatives fixes
-
-* Sun Jan 27 2002 Erik Troan <ewt at redhat.com>
-- reimplemented update-alternatives as just alternatives
-
-* Thu Jan 25 2002 Bill Nottingham <notting at redhat.com>
-- add in update-alternatives stuff (perl ATM)
-
-* Mon Aug 27 2001 Trond Eivind Glomsrød <teg at redhat.com>
-- Update translations
-
-* Tue Jun 12 2001 Bill Nottingham <notting at redhat.com>
-- don't segfault on files that are exactly the length of a page size
-  (#44199, <kmori at redhat.com>)
-
-* Sun Mar  4 2001 Bill Nottingham <notting at redhat.com>
-- don't show xinetd services in ntsysv if xinetd doesn't appear to be
-  installed (#30565)
-
-* Wed Feb 14 2001 Preston Brown <pbrown at redhat.com>
-- final translation update.
-
-* Tue Feb 13 2001 Preston Brown <pbrown at redhat.com>
-- warn in ntsysv if not running as root.
-
-* Fri Feb  2 2001 Preston Brown <pbrown at redhat.com>
-- use lang finder script
-
-* Fri Feb  2 2001 Bill Nottingham <notting at redhat.com>
-- finally fix the bug Nalin keeps complaining about :)
-
-* Wed Jan 24 2001 Preston Brown <pbrown at redhat.com>
-- final i18n update before Beta.
-
-* Wed Oct 18 2000 Bill Nottingham <notting at redhat.com>
-- ignore .rpmnew files (#18915)
-- fix typo in error message (#17575)
-
-* Wed Aug 30 2000 Nalin Dahyabhai <nalin at redhat.com>
-- make xinetd config files mode 0644, not 644
-
-* Thu Aug 24 2000 Erik Troan <ewt at redhat.com>
-- updated it and es translations
-
-* Sun Aug 20 2000 Bill Nottingham <notting at redhat.com>
-- get man pages in proper packages
-
-* Sun Aug 20 2000 Matt Wilson <msw at redhat.com>
-- new translations
-
-* Tue Aug 16 2000 Nalin Dahyabhai <nalin at redhat.com>
-- don't worry about extra whitespace on chkconfig: lines (#16150)
-
-* Wed Aug 10 2000 Trond Eivind Glomsrød <teg at redhat.com>
-- i18n merge
-
-* Wed Jul 26 2000 Matt Wilson <msw at redhat.com>
-- new translations for de fr it es
-
-* Tue Jul 25 2000 Bill Nottingham <notting at redhat.com>
-- change prereqs
-
-* Sun Jul 23 2000 Bill Nottingham <notting at redhat.com>
-- fix ntsysv's handling of xinetd/init files with the same name
-
-* Fri Jul 21 2000 Bill Nottingham <notting at redhat.com>
-- fix segv when reading malformed files
-
-* Wed Jul 19 2000 Bill Nottingham <notting at redhat.com>
-- put links, rc[0-6].d dirs back, those are necessary
-
-* Tue Jul 18 2000 Bill Nottingham <notting at redhat.com>
-- add quick hack support for reading descriptions from xinetd files
-
-* Mon Jul 17 2000 Bernhard Rosenkraenzer <bero at redhat.com>
-- don't own the /etc/rc[0-6].d symlinks; they're owned by initscripts
-
-* Sat Jul 15 2000 Matt Wilson <msw at redhat.com>
-- move back to old file layout
-
-* Thu Jul 13 2000 Preston Brown <pbrown at redhat.com>
-- bump copyright date
-
-* Tue Jul 11 2000 Bill Nottingham <notting at redhat.com>
-- no %%pre today. Maybe tomorrow.
-
-* Thu Jul  6 2000 Bill Nottingham <notting at redhat.com>
-- put initscripts %%pre here too
-
-* Mon Jul  3 2000 Bill Nottingham <notting at redhat.com>
-- oops, if we don't prereq initscripts, we *need* to own /etc/rc[0-6].d
-
-* Sun Jul  2 2000 Bill Nottingham <notting at redhat.com>
-- add xinetd support
-
-* Tue Jun 27 2000 Matt Wilson <msw at redhat.com>
-- changed Prereq: initscripts >= 5.18 to Conflicts: initscripts < 5.18
-- fixed sumary and description where a global string replace nuked them
-
-* Mon Jun 26 2000 Matt Wilson <msw at redhat.com>
-- what Bill said, but actually build this version
-
-* Thu Jun 15 2000 Bill Nottingham <notting at redhat.com>
-- don't own /etc/rc.*
-
-* Fri Feb 11 2000 Bill Nottingham <notting at redhat.com>
-- typo in man page
-
-* Wed Feb 02 2000 Cristian Gafton <gafton at redhat.com>
-- fix description
-
-* Wed Jan 12 2000 Bill Nottingham <notting at redhat.com>
-- link chkconfig statically against popt
-
-* Mon Oct 18 1999 Bill Nottingham <notting at redhat.com>
-- fix querying alternate levels
-
-* Mon Aug 23 1999 Jeff Johnson <jbj at redhat.com>
-- don't use strchr to skip unwanted files, look at extension instead (#4166).
-
-* Thu Aug  5 1999 Bill Nottingham <notting at redhat.com>
-- fix --help, --verson
-
-* Mon Aug  2 1999 Matt Wilson <msw at redhat.com>
-- rebuilt ntsysv against newt 0.50
-
-* Mon Aug  2 1999 Jeff Johnson <jbj at redhat.com>
-- fix i18n problem in usage message (#4233).
-- add --help and --version.
-
-* Mon Apr 19 1999 Cristian Gafton <gafton at redhat.com>
-- release for Red Hat 6.0
-
-* Thu Apr  8 1999 Matt Wilson <msw at redhat.com>
-- added support for a "hide: true" tag in initscripts that will make
-  services not appear in ntsysv when run with the "--hide" flag
-
-* Thu Apr  1 1999 Matt Wilson <msw at redhat.com>
-- added --hide flag for ntsysv that allows you to hide a service from the
-  user.
-
-* Mon Mar 22 1999 Bill Nottingham <notting at redhat.com>
-- fix glob, once and for all. Really. We mean it.
-
-* Thu Mar 18 1999 Bill Nottingham <notting at redhat.com>
-- revert fix for services at levels, it's broken
-- change default to only edit the current runlevel
-
-* Mon Mar 15 1999 Bill Nottingham <notting at redhat.com>
-- don't remove scripts that don't support chkconfig
-
-* Tue Mar 09 1999 Erik Troan <ewt at redhat.com>
-- made glob a bit more specific so xinetd and inetd don't cause improper matches
-
-* Thu Feb 18 1999 Matt Wilson <msw at redhat.com>
-- removed debugging output when starting ntsysv
-
-* Thu Feb 18 1999 Preston Brown <pbrown at redhat.com>
-- fixed globbing error
-- fixed ntsysv running services not at their specified levels.
-
-* Tue Feb 16 1999 Matt Wilson <msw at redhat.com>
-- print the value of errno on glob failures.
-
-* Sun Jan 10 1999 Matt Wilson <msw at redhat.com>
-- rebuilt for newt 0.40 (ntsysv)
-
-* Tue Dec 15 1998 Jeff Johnson <jbj at redhat.com>
-- add ru.po.
-
-* Thu Oct 22 1998 Bill Nottingham <notting at redhat.com>
-- build for Raw Hide (slang-1.2.2)
-
-* Wed Oct 14 1998 Cristian Gafton <gafton at redhat.com>
-- translation updates
-
-* Thu Oct 08 1998 Cristian Gafton <gafton at redhat.com>
-- updated czech translation (and use cs instead of cz)
-
-* Tue Sep 22 1998 Arnaldo Carvalho de Melo <acme at conectiva.com.br>
-- added pt_BR translations
-- added more translatable strings
-- support for i18n init.d scripts description
-
-* Sun Aug 02 1998 Erik Troan <ewt at redhat.com>
-- built against newt 0.30
-- split ntsysv into a separate package
-
-* Thu May 07 1998 Erik Troan <ewt at redhat.com>
-- added numerous translations
-
-* Mon Mar 23 1998 Erik Troan <ewt at redhat.com>
-- added i18n support
-
-* Sun Mar 22 1998 Erik Troan <ewt at redhat.com>
-- added --back
--- chkconfig-1.3.46/leveldb.c
+++ chkconfig-1.3.46/leveldb.c
-/* Copyright 1997-2008 Red Hat, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-#include <alloca.h>
-#include <ctype.h>
-#include <dirent.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <glob.h>
-#include <libintl.h> 
-#include <locale.h> 
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-/* Changes
-   1998-09-22 - Arnaldo Carvalho de Melo <acme at conectiva.com.br>
-                i18n for init.d scripts (eg.: description(pt_BR) is a brazilian
-		portuguese description for the package) 
-*/
-
-#define _(String) gettext((String)) 
-
-#include "leveldb.h"
-
-int parseLevels(char * str, int emptyOk) {
-    char * chptr = str;
-    int rc = 0;
-
-    if (!str || !strlen(str))
-	return emptyOk ? 0 : -1;
-
-    while (*chptr) {
-	if (!isdigit(*chptr) || *chptr > '6') return -1;
-	rc |= 1 << (*chptr - '0');
-	chptr++;
-    }
-
-    return rc;
-}
-
-int readDescription(char *start, char *bufstop, char **english_desc, char **serv_desc) { 
-	char english;
-	char my_lang_loaded = 0;
-	char is_my_lang = 0;
-	char * lang = getenv ("LANG");
-	char * final_parenthesis;
-	char * end, *next;
-	int i;
-	
-	english = *start == ':';
-	end = strchr(start, '\n');
-	if (!end) 
-	    next = end = bufstop;
-	else
-	    next = end + 1;
-
-	if (!english) {
-		if (*start != '(') {
-		    return 1;
-		}
-
-                ++start;
-		final_parenthesis = strchr (start, ')');
-
-		if (final_parenthesis == NULL || final_parenthesis - start > 5) {
-		    return 1;
-		}
-
-		is_my_lang = lang ? strncmp (lang, start, strlen (lang)) == 0 : 0;
-		start = final_parenthesis + 2;
-	    } else ++start;
-
-	    while (isspace(*start) && start < end) start++;
-	    if (start >= end) {
-		return 1;
-	    }
-          {
-	    char* desc = malloc(end - start + 1);
-	    strncpy(desc, start, end - start);
-	    desc[end - start] = '\0';
-
-	    start = next;
-
-	    while (desc[strlen(desc) - 1] == '\\') {
-		desc[strlen(desc) - 1] = '\0';
-		start = next;
-		
-		while (isspace(*start) && start < bufstop) start++;
-		if (start == bufstop || *start != '#') {
-		    return 1;
-		}
-
-		start++;
-
-		while (isspace(*start) && start < bufstop) start++;
-		if (start == bufstop) {
-		    return 1;
-		}
-
-		end = strchr(start, '\n');
-		if (!end) 
-		    next = end = bufstop;
-		else
-		    next = end + 1;
-
-		i = strlen(desc);
-		desc = realloc(desc, i + end - start + 1);
-		strncat(desc, start, end - start);
-		desc[i + end - start] = '\0';
-
-		start = next;
-	    }
-
-	    if (desc) {
-		    if (my_lang_loaded) {
-			    free(desc);
-		    } else if (is_my_lang) {
-			    if (*serv_desc)
-			      free(*serv_desc);
-
-			    *serv_desc = desc;
-			    return 0;
-		    } else if (english) {
-			    if (*serv_desc)
-			      free(*serv_desc);
-
-			    if (*english_desc)
-			      free (*english_desc);
-
-			    *english_desc = desc;
-		    } else free (desc);
-	    }
-	  }
-	return 0;
-}
-
-int readXinetdServiceInfo(char *name, struct service * service, int honorHide) {
-	char * filename = alloca(strlen(name) + strlen(XINETDDIR) + 50);
-	int fd;
-	struct service serv = { 
-			name: NULL,
-			levels: -1,
-			kPriority: -1,
-			sPriority: -1, 
-			desc: NULL, 
-			startDeps: NULL, 
-			stopDeps: NULL,
-			softStartDeps: NULL,
-			softStopDeps: NULL,
-		        provides: NULL,
-			type: TYPE_XINETD, 
-			isLSB: 0, 
-			enabled: -1
-	};
-	struct stat sb;
-	char * buf, *ptr;
-	char * eng_desc = NULL, *start;
-	
-	snprintf(filename, strlen(name)+strlen(XINETDDIR)+50, XINETDDIR "/%s", name);
-	
-	if ((fd = open(filename, O_RDONLY)) < 0) return -1;
-	fstat(fd,&sb);
-	if (! S_ISREG(sb.st_mode)) return -1;
-	buf = malloc(sb.st_size+1);
-	if (read(fd,buf,sb.st_size)!=sb.st_size) {
-		close(fd);
-		free(buf);
-		return -1;
-	}
-	close(fd);
-        serv.name = strdup(name);
-	buf[sb.st_size] = '\0';
-	start = buf;
-	while (buf) {
-		ptr = strchr(buf,'\n');
-		if (*buf == '#') {
-			buf++;
-			while (isspace(*buf) && buf < ptr) buf++;
-			if (!strncmp(buf,"default:", 9)) {
-				buf+=8;
-				while(isspace(*buf)) buf++;
-				if (!strncmp(buf+9,"on",2)) {
-					serv.enabled = 1;
-				} else {
-					serv.enabled = 0;
-				}
-			} else if (!strncmp(buf,"description:",12)) {
-				buf+=11;
-				if (readDescription(buf,start+sb.st_size,
-						    &serv.desc,&eng_desc)) {
-					if (serv.desc) free(serv.desc);
-				}
-				if (!serv.desc) {
-					if (eng_desc)
-					  serv.desc = eng_desc;
-                                        else
-                                          serv.desc = strdup(name);
-				} else if (eng_desc)
-					  free (eng_desc);
-			}
-			if (ptr) {
-				*ptr = '\0';
-				ptr++;
-			} 
-			buf = ptr;
-			continue;
-		}
-		while (isspace(*buf) && buf < ptr) buf++;
-		if (!strncmp(buf,"disable", 7)) {
-			buf = strstr(buf,"=");
-			if (buf) 
-			  do {
-				  buf++;
-			  } while(isspace(*buf));
-
-			if (buf && strncmp(buf,"yes",3)) {
-				serv.levels = parseLevels("0123456",0);
-				if (serv.enabled == -1)
-				  serv.enabled = 1;
-			} else {
-				serv.levels = 0;
-				if (serv.enabled == -1)
-				  serv.enabled = 0;
-			}
-		}
-		if (ptr) {
-			*ptr = '\0';
-			ptr++;
-		} 
-		buf = ptr;
-	}
-	*service = serv;
-	return 0;
-}
-
-int readServices(struct service **services) {
-	DIR * dir;
-	struct dirent * ent;
-	struct stat sb;
-	struct service *servs = NULL;
-	int numservs = 0;
-	char fn[1024];
-
-	if (!(dir = opendir(RUNLEVELS "/init.d"))) {
-		fprintf(stderr, _("failed to open %s/init.d: %s\n"), RUNLEVELS,
-			strerror(errno));
-		return 1;
-	}
-
-	while ((ent = readdir(dir))) {
-		const char *dn;
-
-		/* Skip any file starting with a . */
-		if (ent->d_name[0] == '.')	continue;
-
-		/* Skip files with known bad extensions */
-		if ((dn = strrchr(ent->d_name, '.')) != NULL &&
-		    (!strcmp(dn, ".rpmsave") || !strcmp(dn, ".rpmnew") || !strcmp(dn, ".rpmorig") || !strcmp(dn, ".swp")))
-			continue;
-
-		dn = ent->d_name + strlen(ent->d_name) - 1;
-		if (*dn == '~' || *dn == ',')
-			continue;
-
-		sprintf(fn, RUNLEVELS "/init.d/%s", ent->d_name);
-		if (stat(fn, &sb)) {
-			continue;
-		}
-		if (!S_ISREG(sb.st_mode)) continue;
-		servs = realloc(servs, (numservs+1) * sizeof(struct service));
-		if (!readServiceInfo(ent->d_name, TYPE_INIT_D, servs + numservs, 0))
-			numservs++;
-	}
-	*services = servs;
-	return numservs;
-}
-
-int readServiceInfo(char * name, int type, struct service * service, int honorHide) {
-    char * filename = alloca(strlen(name) + strlen(RUNLEVELS) + 50);
-    int fd;
-    struct service serv, serv_overrides;
-    int parseret;
-
-    if (!(type & TYPE_INIT_D))
-	goto try_xinetd;
-
-    sprintf(filename, RUNLEVELS "/init.d/%s", name);
-
-    if ((fd = open(filename, O_RDONLY)) < 0)
-	goto try_xinetd;
-
-    parseret = parseServiceInfo(fd, name, &serv, honorHide, 0);
-    if (parseret)
-        return parseret;
-
-    sprintf(filename, RUNLEVELS "/chkconfig.d/%s", name);
-    if ((fd = open(filename, O_RDONLY)) >= 0) {
-        parseret = parseServiceInfo(fd, name, &serv_overrides, honorHide, 1);
-        if (parseret >= 0) {
-            if (serv_overrides.name) serv.name = serv_overrides.name;
-            if (serv_overrides.levels != -1) serv.levels = serv_overrides.levels;
-            if (serv_overrides.kPriority != -2) serv.kPriority = serv_overrides.kPriority;
-            if (serv_overrides.sPriority != -2) serv.sPriority = serv_overrides.sPriority;
-            if (serv_overrides.desc) serv.desc = serv_overrides.desc;
-            if (serv_overrides.startDeps) serv.startDeps = serv_overrides.startDeps;
-            if (serv_overrides.stopDeps) serv.stopDeps = serv_overrides.stopDeps;
-            if (serv_overrides.softStartDeps) serv.softStartDeps = serv_overrides.softStartDeps;
-            if (serv_overrides.softStopDeps) serv.softStopDeps = serv_overrides.softStopDeps;
-            if (serv_overrides.provides) serv.provides = serv_overrides.provides;
-            if (serv_overrides.isLSB || serv.isLSB) serv.isLSB = 1;
-        }
-    }
-
-    *service = serv;
-    return 0;
-
-try_xinetd:
-    if (!(type & TYPE_XINETD))
-	return -1;
-    return readXinetdServiceInfo(name,service,honorHide);
-}
-
-int readServiceDifferences(char * name, int type, struct service * service, struct service * service_overrides, int honorHide) {
-    char * filename = alloca(strlen(name) + strlen(RUNLEVELS) + 50);
-    int fd;
-    struct service serv, serv_overrides;
-    int parseret;
-
-    if (!(type & TYPE_INIT_D))
-	goto try_xinetd;
-
-    sprintf(filename, RUNLEVELS "/init.d/%s", name);
-
-    if ((fd = open(filename, O_RDONLY)) < 0) {
-	goto try_xinetd;
-    }
-
-    parseret = parseServiceInfo(fd, name, &serv, honorHide, 0);
-    if (parseret) {
-        return parseret;
-    }
-
-    sprintf(filename, RUNLEVELS "/chkconfig.d/%s", name);
-    if ((fd = open(filename, O_RDONLY)) >= 0) {
-        parseret = parseServiceInfo(fd, name, &serv_overrides, honorHide, 1);
-    } else {
-        return 1;
-    }
-    if (parseret) {
-        return 1;
-    }
-
-    *service = serv;
-    *service_overrides = serv_overrides;
-    return 0;
-
-try_xinetd:
-    if (!(type & TYPE_XINETD))
-	return -1;
-    return readXinetdServiceInfo(name,service,honorHide);
-}
-
-static struct dep *parseDeps(char *pos, char *end) {
-    char *t;
-    int numdeps = 0;
-    struct dep *deps = NULL;
-
-    while (1) {
-	while (*pos && isspace(*pos) && pos < end) pos++;
-	if (pos == end)
-            break;
-        t = pos;
-        while (*t && !isspace(*t) && t < end) t++;
-        if (isspace(*t)) {
-            *t = '\0';
-            t++;
-        }
-        numdeps++;
-        deps = realloc(deps,
-		 (numdeps + 1) * sizeof(struct dep));
-        deps[numdeps-1].name = strdup(pos);
-        deps[numdeps-1].handled = 0;
-        memset(&deps[numdeps],'\0',sizeof(struct dep));
-        if (!t || t >= end)
-            break;
-        else
-            pos = t;
-    }
-    return deps;
-}
-
-
-int parseServiceInfo(int fd, char * name, struct service * service, int honorHide, int partialOk) {
-    struct stat sb;
-    char * bufstart, * bufstop, * start, * end, * next, *tmpbufstart;
-    struct service serv = { 
-	    	    name: NULL, 
-		    levels: -1, 
-		    kPriority: -1, 
-		    sPriority: -1, 
-		    desc: NULL, 
-		    startDeps: NULL, 
-		    stopDeps: NULL,
-		    softStartDeps: NULL, 
-		    softStopDeps: NULL,
-		    provides: NULL,
-		    type: TYPE_INIT_D, 
-		    isLSB: 0, 
-		    enabled: 0
-    };
-    char overflow;
-    char levelbuf[20];
-    char * english_desc = NULL;
-
-    fstat(fd, &sb);
-
-    bufstart = mmap(NULL, sb.st_size, PROT_READ, MAP_SHARED, fd, 0);
-    if (bufstart == ((caddr_t) -1)) {
-	close(fd);	
-	return -1;
-    }
-
-    tmpbufstart = (char*)malloc(sb.st_size+1);
-    if (tmpbufstart == NULL) {
-	close(fd);	
-	return -1;
-    }
-
-    memcpy(tmpbufstart, bufstart, sb.st_size);
-    munmap(bufstart, sb.st_size);
-
-    bufstart = tmpbufstart;
-    bufstop = bufstart + sb.st_size;
-    *bufstop = 0;
-
-    close(fd);
-
-    next = bufstart;
-    while (next < bufstop && (serv.levels == -1 || !serv.desc)) {
-	start = next;
-
-	while (isspace(*start) && start < bufstop) start++;
-	if (start == bufstop) break; 
-
-	end = strchr(start, '\n');
-	if (!end) 
-	    next = end = bufstop;
-	else
-	    next = end + 1;
-
-	if (*start != '#') continue;
-
-	start++;
-	if (!strncmp(start, "## BEGIN INIT INFO", 18))
-		    serv.isLSB = 1;
-		
-	while (isspace(*start) && start < end) start++;
-	if (start == end) continue;
-	if (honorHide && !strncmp(start, "hide:", 5)) {
-	    start += 5;
-	    while (isspace(*start) && start < end) start++;
-	    if (start == end || !strncmp(start, "true", 4)) {
-		if (serv.desc) free(serv.desc);
-		free(bufstart);
-		return 1;
-	    }
-	}
-
-	if (!strncmp(start, "chkconfig:", 10)) {
-	    int spri, kpri;
-	     
-	    start += 10;
-	    while (isspace(*start) && start < end) start++;
-	    if (start == end) {
-		if (serv.desc) free(serv.desc);
-		free(bufstart);
-		return 1;
-	    }
-
-	    if ((sscanf(start, "%15s %d %d%c", levelbuf,
-			&spri, &kpri, &overflow) != 4) ||
-		 !isspace(overflow)) {
-		if (serv.desc) free(serv.desc);
-		free(bufstart);
-		return 1;
-	    }
-	    if (spri > 99 || kpri > 99 || kpri < 0 || spri < 0) {
-		    if (serv.desc) free(serv.desc);
-		    free(bufstart);
-		    return 1;
-	    }
-	    if (serv.sPriority == -1)
-			serv.sPriority = spri;
-	    if (serv.kPriority == -1)
-			serv.kPriority = kpri;
-
-	    if (serv.levels == -1) {
-		    if (!strcmp(levelbuf, "-"))
-			    serv.levels = 0;
-		    else
-			    serv.levels = parseLevels(levelbuf, 0);
-	    }
-	    if (serv.levels == -1) {
-		if (serv.desc) free(serv.desc);
-		free(bufstart);
-		return 1;
-	    }
-	} else if (!strncmp(start, "description", 11) ||
-		   !strncmp(start, "Description:", 12)) {
-		if (readDescription(start+11, bufstop, &english_desc, &serv.desc)) {
-			if (serv.desc) free(serv.desc);
-		}
-	} else if (!strncmp(start, "Short-Description:", 18)) {
-		if (readDescription(start+17, bufstop, &english_desc, &serv.desc)) {
-			if (serv.desc) free(serv.desc);
-		}
-	} else if (!strncmp(start, "Default-Start:", 14)) {
-		char *t;
-		
-		start+=14;
-		while (1) {
-			int lev;
-			
-			lev = strtol(start, &t, 10);
-			if (t && t != start)
-				start = t;
-			else
-				break;
-			if (serv.levels == -1)
-				serv.levels = 0;
-			serv.levels |= 1 << lev;
-		}
-	} else if (!strncmp(start, "Default-Stop:", 13)) {
-		char *t;
-		
-		start+=13;
-		while (1) {
-			int lev;
-			
-			lev = strtol(start, &t, 10);
-			if (t && t != start)
-				start = t;
-			else
-				break;
-			if (serv.levels == -1)
-				serv.levels = 0;
-			serv.levels &= ~(1 << lev);
-		}
-	} else if (!strncmp(start, "Required-Start:", 15)) {
-		start+=15;
-		serv.startDeps = parseDeps(start, end);
-	} else if (!strncmp(start, "Required-Stop:", 14)) {
-		start+=14;
-		serv.stopDeps = parseDeps(start, end);
-	} else if (!strncmp(start, "Should-Start:", 13)) {
-		start+=13;
-		serv.softStartDeps = parseDeps(start, end);
-	} else if (!strncmp(start, "Should-Stop:", 12)) {
-		start+=12;
-		serv.softStopDeps = parseDeps(start, end);
-	} else if (!strncmp(start, "Provides:", 9)) {
-		char *t;
-		int numdeps = 0;
-		
-		start+=9;
-		while (1) {
-			while (*start && isspace(*start) && start < end) start++;
-			if (start == end)
-				break;
-			t = start;
-			while (*t && !isspace(*t) && t < end) t++;
-			if (isspace(*t)) {
-				*t = '\0';
-				t++;
-			}
-			numdeps++;
-			serv.provides = realloc(serv.provides,
-						 (numdeps + 1) * sizeof(char *));
-			serv.provides[numdeps-1] = strdup(start);
-			serv.provides[numdeps] = NULL;
-			if (!t || t >= end)
-				break;
-			else
-				start = t;
-		}
-		
-	}
-    }
-
-    free(bufstart);
-
-    if (!serv.desc) {
-      if (english_desc)
-	serv.desc = english_desc;
-      else
-        serv.desc = strdup(name);
-    } else if (english_desc)
-	free (english_desc);
-
-    if (!partialOk && ((serv.levels == -1) || !serv.desc || (!serv.isLSB && (serv.sPriority == -1 || serv.kPriority == -1)))) {
-	return 1;
-    } 
-
-    serv.name = strdup(name);
-    if (!serv.provides) {
-	    serv.provides = malloc(2 * sizeof(char *));
-	    serv.provides[0] = strdup(name);
-	    serv.provides[1] = NULL;
-    }
-
-    *service = serv;
-    return 0;
-}
-
-/* returns -1 on error */
-int currentRunlevel(void) {
-    FILE * p;
-    char response[50];
-
-    p = popen("/sbin/runlevel", "r");
-    if (!p) return -1;
-
-    if (!fgets(response, sizeof(response), p)) {
-	pclose(p);
-	return -1;
-    }
-
-    pclose(p);
-
-    if (response[1] != ' ' || !isdigit(response[2]) || response[3] != '\n') 
-	return -1;
-
-    return response[2] - '0';
-}
-
-int findServiceEntries(char * name, int level, glob_t * globresptr) {
-    char match[200];
-    glob_t globres;
-    int rc;
-
-    sprintf(match, "%s/rc%d.d/[SK][0-9][0-9]%s", RUNLEVELS, level, name);
-
-    rc = glob(match, GLOB_ERR | GLOB_NOSORT, NULL, &globres);
-
-    if (rc && rc != GLOB_NOMATCH) {
-	fprintf(stderr, _("failed to glob pattern %s: %s\n"), match,
-		strerror(errno));
-	return 1;
-    } else if (rc == GLOB_NOMATCH) {
-	globresptr->gl_pathc = 0;
-	return 0;
-    }
-
-    *globresptr = globres;
-    return 0;
-}
-
-int isConfigured(char * name, int level, int *priority, char *type) {
-    glob_t globres;
-    char *pri_string;
-
-    if (findServiceEntries(name, level, &globres))
-	exit(1);
-
-    if (!globres.gl_pathc)
-	return 0;
-
-    if (type) {
-        *type = globres.gl_pathv[0][11];
-    }
-
-    if (priority) {
-        pri_string = strndup(globres.gl_pathv[0]+12, 2);
-        if (!pri_string) return 0;
-        sscanf(pri_string, "%d", priority);
-        free(pri_string);
-    }
-
-    globfree(&globres);
-    return 1;
-}
-
-int isOn(char * name, int level) {
-    glob_t globres;
-
-    if (level == -1) {
-	level = currentRunlevel();
-	if (level == -1) {
-	    fprintf(stderr, _("cannot determine current run level\n"));
-	    return 0;
-	}
-    }
-
-    if (findServiceEntries(name, level, &globres))
-	exit(1);
-
-    if (!globres.gl_pathc || !strstr(globres.gl_pathv[0], "/S"))
-	return 0;
-
-    globfree(&globres);
-    return 1;
-}
-
-int setXinetdService(struct service s, int on) {
-	int oldfd, newfd;
-	char oldfname[100], newfname[100];
-	char tmpstr[50];
-	char *buf, *ptr, *tmp;
-	struct stat sb;
-	
-	if (on == -1) {
-		on = s.enabled ? 1 : 0;
-	}
-	snprintf(oldfname,100,"%s/%s",XINETDDIR,s.name);
-	if ( (oldfd = open(oldfname,O_RDONLY)) == -1 ) {
-		return -1;
-	}
-	fstat(oldfd,&sb);
-	buf = malloc(sb.st_size+1);
-	if (read(oldfd,buf,sb.st_size)!=sb.st_size) {
-		close(oldfd);
-		free(buf);
-		return -1;
-	}
-	close(oldfd);
-	buf[sb.st_size] = '\0';
-	snprintf(newfname,100,"%s/%s.XXXXXX",XINETDDIR,s.name);
-	newfd = mkstemp(newfname);
-	if (newfd == -1) {
-		free(buf);
-		return -1;
-	}
-	while (buf) {
-		tmp = buf;
-		ptr = strchr(buf,'\n');
-		if (ptr) {
-			*ptr = '\0';
-			ptr++;
-		} 
-		while (isspace(*buf)) buf++;
-		if (strncmp(buf,"disable", 7) && strlen(buf)) {
-			write(newfd,tmp,strlen(tmp));
-			write(newfd,"\n",1);
-			if (buf[0] == '{') {
-				snprintf(tmpstr,50,"\tdisable\t= %s", on ? "no" : "yes");
-				write(newfd,tmpstr,strlen(tmpstr));
-				write(newfd,"\n",1);
-			}
-		}
-		buf = ptr;
-	}
-	close(newfd);
-	chmod(newfname,0644);
-	unlink(oldfname);
-	return(rename(newfname,oldfname));
-}
-
-int doSetService(struct service s, int level, int on) {
-    int priority = on ? s.sPriority : s.kPriority;
-    char linkname[200];
-    char linkto[200];
-    glob_t globres;
-    int i;
-
-    if (!findServiceEntries(s.name, level, &globres)) {
-	for (i = 0; i < globres.gl_pathc; i++)
-	    unlink(globres.gl_pathv[i]);
-	if (globres.gl_pathc) globfree(&globres);
-    }
-
-    sprintf(linkname, "%s/rc%d.d/%c%02d%s", RUNLEVELS, level,
-			on ? 'S' : 'K', priority, s.name);
-    sprintf(linkto, "../init.d/%s", s.name);
-
-    unlink(linkname);	/* just in case */
-    if (symlink(linkto, linkname)) {
-	fprintf(stderr, _("failed to make symlink %s: %s\n"), linkname,
-		strerror(errno));
-	return 1;
-    }
-
-    return 0; 
-}
-
--- chkconfig-1.3.46/leveldb.h
+++ chkconfig-1.3.46/leveldb.h
-/* Copyright 1997-2008 Red Hat, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-#ifndef H_LEVELDB
-#define H_LEVELDB
-
-#define RUNLEVELS "/etc"
-#define XINETDDIR "/etc/xinetd.d"
-
-#include <glob.h>
-
-#define TYPE_INIT_D	0x1
-#define TYPE_XINETD	0x2
-#define TYPE_ANY	(TYPE_INIT_D | TYPE_XINETD)
-
-struct dep {
-    char *name;
-    int handled;
-};
-
-struct service {
-    char * name;
-    int levels, kPriority, sPriority;
-    char * desc;
-    struct dep *startDeps;
-    struct dep *stopDeps;
-    struct dep *softStartDeps;
-    struct dep *softStopDeps;
-    char **provides;
-    int type;
-    int isLSB;
-    int enabled;
-};
-
-int parseLevels(char * str, int emptyOk);
-
-/* returns 0 on success, 1 if the service is not chkconfig-able, -1 if an
-   I/O error occurs (in which case errno can be checked) */
-int readServiceInfo(char * name, int type, struct service * service, int honorHide);
-int readServices(struct service **services);
-int readServiceDifferences(char * name, int type, struct service * service, struct service * service_overrides, int honorHide);
-int parseServiceInfo(int fd, char * name, struct service * service, int honorHide, int partialOk);
-int currentRunlevel(void);
-int isOn(char * name, int where);
-int isConfigured(char * name, int level, int *priority, char *type);
-int doSetService(struct service s, int level, int on);
-int findServiceEntries(char * name, int level, glob_t * globresptr);
-int readXinetdServiceInfo(char *name, struct service *service, int honorHide);
-int setXinetdService(struct service s, int on);
-
-#endif
--- chkconfig-1.3.46/ntsysv.8
+++ chkconfig-1.3.46/ntsysv.8
(renamed to chkconfig-1.3.48/ntsysv.8)
--- chkconfig-1.3.46/ntsysv.c
+++ chkconfig-1.3.46/ntsysv.c
-/* Copyright 1997-2007 Red Hat, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-#include <alloca.h>
-#include <ctype.h>
-#include <dirent.h>
-#include <errno.h>
-#include <libintl.h> 
-#include <locale.h> 
-#include <newt.h>
-#include <popt.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#define _(String) gettext((String)) 
-
-#include "leveldb.h"
-
-/* return 1 on cancel, 2 on error, 0 on success */
-static int servicesWindow(struct service * services, int numServices,
-			  int levels, int backButton) {
-    newtComponent label, subform, ok, cancel;
-    newtComponent * checkboxes, form, curr, blank;
-    newtComponent sb = NULL;
-    newtGrid grid, subgrid, buttons;
-    char * states;
-    int i, done = 0, update = 0, j;
-    int width, height;
-    struct newtExitStruct e;
-
-    newtPushHelpLine(_("Press <F1> for more information on a service."));
-
-    newtGetScreenSize(&width, &height);
-    width = width > 80 ? width - 60 : 20;
-    height = height > 25 ? height - 17 : 8;
-	
-	
-    sb = newtVerticalScrollbar(-1, -1, height, NEWT_COLORSET_CHECKBOX,
-				    NEWT_COLORSET_ACTCHECKBOX);
-
-    subform = newtForm(sb, NULL, 0);
-    newtFormSetBackground(subform, NEWT_COLORSET_CHECKBOX);
-    newtFormSetHeight(subform, height);
-
-    checkboxes = alloca(sizeof(*checkboxes) * numServices);
-    states = alloca(sizeof(*states) * numServices);
-    
-    for (i = 0; i < numServices; i++) {
-	if (services[i].type == TYPE_XINETD) {
-		checkboxes[i] = newtCheckbox(-1, i, services[i].name, 
-				     services[i].levels ? '*' : ' ', NULL, 
-				     states + i);
-	} else {
-		for (j = 0; j < 7; j++) {
-			if (levels & (1 << j)) {
-				if (isOn(services[i].name, j)) break;
-			}
-		}
-		checkboxes[i] = newtCheckbox(-1, i, services[i].name, 
-					     (j != 7) ? '*' : ' ', NULL, 
-					     states + i);
-	}
-	newtFormAddComponent(subform, checkboxes[i]);
-    }
-
-    newtFormSetWidth(subform, width);
-
-    buttons = newtButtonBar(_("Ok"), &ok, backButton ? _("Back") : _("Cancel"),
-			    &cancel, NULL);
-
-    blank = newtForm(NULL, NULL, 0);
-    newtFormSetWidth(blank, 2);
-    newtFormSetHeight(blank, height);
-    newtFormSetBackground(blank, NEWT_COLORSET_CHECKBOX);
-
-    subgrid = newtGridHCloseStacked(NEWT_GRID_COMPONENT, subform,
-			            NEWT_GRID_COMPONENT, blank,
-			            NEWT_GRID_COMPONENT, sb, NULL);
-
-    label = newtTextboxReflowed(-1, -1,  _("What services should be "
-				"automatically started?"), 30, 0, 20, 0);
-    grid = newtGridBasicWindow(label, subgrid, buttons);
-
-    form = newtForm(NULL, NULL, 0);
-    newtGridAddComponentsToForm(grid, form, 1);
-    newtGridWrappedWindow(grid, _("Services"));
-    newtGridFree(grid, 1);
-
-    newtFormAddHotKey(form, NEWT_KEY_F1);
-
-    while (!done) {
-	newtFormRun(form, &e);
-
-	if (e.reason == NEWT_EXIT_HOTKEY) {
-	    if (e.u.key == NEWT_KEY_F12) {
-		done = 1;
-		update = 1;
-	    } else {
-		/* must be F1 */
-		curr = newtFormGetCurrent(subform);
-		for (i = 0; i < numServices; i++)
-		    if (curr == checkboxes[i]) break;
-
-		if (i < numServices && services[i].desc) 
-		    newtWinMessage(services[i].name, _("Ok"), services[i].desc);
-	    }
-	} else {
-	    done = 1;
-	    update = (e.u.co == ok);
-	}
-    }
-    
-    newtPopWindow();
-    newtFormDestroy(form);
-    
-    if (!update) return 1;
-
-    for (i = 0; i < numServices; i++) {
-      if (services[i].type == TYPE_XINETD) {
-        if ((services[i].enabled && states[i] != '*') ||
-	    (!services[i].enabled && states[i] == '*'))
-	      setXinetdService(services[i], states[i] == '*');
-      } else {
-	      for (j = 0; j < 7; j++) {
-		      if (levels & (1 << j))
-			doSetService(services[i], j, states[i] == '*');
-	      }
-      }
-    }
-
-    return 0;
-}
-
-static int serviceNameCmp(const void * a, const void * b) {
-    const struct service * first = a;
-    const struct service * second = b;
-
-    return strcmp(first->name, second->name);
-}
-
-static int getServices(struct service ** servicesPtr, int * numServicesPtr,
-		       int backButton, int honorHide) {
-    DIR * dir;
-    struct dirent * ent;
-    struct stat sb;
-    char fn[1024];
-    struct service * services;
-    int numServices = 0;
-    int numServicesAlloced, rc;
-    int err = 0;
-
-    numServicesAlloced = 10;
-    services = malloc(sizeof(*services) * numServicesAlloced);
-
-    if (!(dir = opendir(RUNLEVELS "/init.d"))) {
-	fprintf(stderr, "failed to open " RUNLEVELS "/init.d: %s\n",
-		strerror(errno));
-        return 2;
-    }
-
-    while ((ent = readdir(dir))) {
-	if (strchr(ent->d_name, '~') || strchr(ent->d_name, ',') ||
-	    (ent->d_name[0] == '.')) continue;
-
-	sprintf(fn, RUNLEVELS "/init.d/%s", ent->d_name);
-	if (stat(fn, &sb))
-	{
-		fprintf(stderr, _("error reading info for service %s: %s\n"),
-			ent->d_name, strerror(errno));
-		continue;
-	}
-	if (!S_ISREG(sb.st_mode)) continue;
-
-	if (numServices == numServicesAlloced) {
-	    numServicesAlloced += 10;
-	    services = realloc(services, 
-				numServicesAlloced * sizeof(*services));
-	}
-
-	rc = readServiceInfo(ent->d_name, TYPE_INIT_D, services + numServices, honorHide);
-        
-	if (!rc) {
-		int i;
-		
-		rc = -2;
-		for (i = 0 ; i < 7 ; i++) {
-			if (isConfigured(ent->d_name, i, NULL, NULL)) {
-				rc = 0;
-				break;
-			}
-		}
-	}
-	 
-	if (rc == -1) {
-	    fprintf(stderr, _("error reading info for service %s: %s\n"),
-			ent->d_name, strerror(errno));
-	    closedir(dir);
-	    return 2;
-	} else if (!rc)
-	    numServices++;
-    }
-
-    closedir(dir);
-
-    if (!stat("/usr/sbin/xinetd",&sb)) {
-    if (!(dir = opendir(XINETDDIR))) {
-	fprintf(stderr, "failed to open " XINETDDIR ": %s\n",
-		strerror(errno));
-        return 2;
-    }
-
-    while ((ent = readdir(dir))) {
-	if (strchr(ent->d_name, '~') || strchr(ent->d_name, ',') ||
-	    strchr(ent->d_name, '.')) continue;
-
-	sprintf(fn, "%s/%s", XINETDDIR, ent->d_name);
-	if (stat(fn, &sb))
-	{
-		err = errno;
-		continue;
-	}
-	if (!S_ISREG(sb.st_mode)) continue;
-
-	if (numServices == numServicesAlloced) {
-	    numServicesAlloced += 10;
-	    services = realloc(services, 
-				numServicesAlloced * sizeof(*services));
-	}
-
-	rc = readXinetdServiceInfo(ent->d_name, services + numServices, honorHide);
-	
-	if (rc == -1) {
-	    fprintf(stderr, _("error reading info for service %s: %s\n"),
-			ent->d_name, strerror(errno));
-	    closedir(dir);
-	    return 2;
-	} else if (!rc)
-	    numServices++;
-    }
-
-    if (err) {
-	fprintf(stderr, _("error reading from directory %s: %s\n"),
-		XINETDDIR, strerror(err));
-        return 1;
-    }
-    }
-
-    qsort(services, numServices, sizeof(*services), serviceNameCmp);
-
-    *servicesPtr = services;
-    *numServicesPtr = numServices;
-
-    return 0;
-}
-
-int main(int argc, char ** argv) {
-    struct service * services;
-    int numServices;
-    int levels = -1;
-    char * levelsStr = NULL;
-    char *progName;
-    poptContext optCon;
-    int rc, backButton = 0, hide = 0;
-    struct poptOption optionsTable[] = {
-	    { "back", '\0', 0, &backButton, 0 },
-	    { "level", '\0', POPT_ARG_STRING, &levelsStr, 0 },
-	    { "hide", '\0', 0, &hide, 0 },
-	    { 0, 0, 0, 0, 0 } 
-    };
-
-    setlocale(LC_ALL, ""); 
-    bindtextdomain("chkconfig", "/usr/share/locale"); 
-    textdomain("chkconfig"); 
-
-    progName = argv[0];
-
-    if (getuid() != 0) {
-	fprintf(stderr, _("You must be root to run %s.\n"),progName);
-	exit(1);
-    }
-    
-    optCon = poptGetContext(progName, argc, argv, optionsTable, 0);
-    poptReadDefaultConfig(optCon, 1);
-
-    if ((rc = poptGetNextOpt(optCon)) < -1) {
-	fprintf(stderr, "%s: %s\n", 
-		poptBadOption(optCon, POPT_BADOPTION_NOALIAS), 
-		poptStrerror(rc));
-	exit(1);
-    }
-
-    if (levelsStr) {
-	levels = parseLevels(levelsStr, 0);
-	if (levels == -1) {
-	    fprintf(stderr, _("bad argument to --levels\n"));
-	    exit(2);
-	}
-    }
-
-    if (getServices(&services, &numServices, backButton, hide)) return 1;
-    if (!numServices) {
-	fprintf(stderr, _("No services may be managed by ntsysv!\n"));
-	return 2;
-    }
-
-    newtInit();
-    newtCls();
-
-    newtPushHelpLine(NULL);
-    newtDrawRootText(0, 0,
-		     "ntsysv " VERSION " - (C) 2000-2001 Red Hat, Inc. ");
-   
-    if (levels==-1) 
-     levels=(1<<currentRunlevel());
-
-    rc = servicesWindow(services, numServices, levels, backButton);
-
-    newtFinished();
-
-    return rc;
-}
--- chkconfig-1.3.46/po
+++ chkconfig-1.3.46/po
-(directory)
--- chkconfig-1.3.46/po/ChangeLog
+++ chkconfig-1.3.46/po/ChangeLog
(renamed to chkconfig-1.3.48/po/ChangeLog)
--- chkconfig-1.3.46/po/Makefile
+++ chkconfig-1.3.46/po/Makefile
(renamed to chkconfig-1.3.48/po/Makefile)
--- chkconfig-1.3.46/po/ar.po
+++ chkconfig-1.3.46/po/ar.po
(renamed to chkconfig-1.3.48/po/ar.po)
--- chkconfig-1.3.46/po/as.po
+++ chkconfig-1.3.46/po/as.po
(renamed to chkconfig-1.3.48/po/as.po)
--- chkconfig-1.3.46/po/bal.po
+++ chkconfig-1.3.46/po/bal.po
(renamed to chkconfig-1.3.48/po/bal.po)
--- chkconfig-1.3.46/po/be.po
+++ chkconfig-1.3.46/po/be.po
(renamed to chkconfig-1.3.48/po/be.po)
--- chkconfig-1.3.46/po/bg.po
+++ chkconfig-1.3.46/po/bg.po
-# translation of bg.po to Bulgarian
-# translation of bg.po to
-# translation of bg.po to
-# translation of bg.po to
-# translation of chkconfig.po to
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER.
-#
-# Николай Сърмаджиев,преносим <nikolayds at msn.com>, 2004.
-# Doncho N. Gunchev <mr700 at globalnet.bg>, 2005.
-# Doncho N. Gunchev <gunchev at gmail.com>, 2007.
-# Alexander Todorov <atodorov at redhat.com>, 2008.
-msgid ""
-msgstr ""
-"Project-Id-Version: bg\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-04 23:29-0500\n"
-"PO-Revision-Date: 2008-03-11 10:41+0100\n"
-"Last-Translator: Alexander Todorov <atodorov at redhat.com>\n"
-"Language-Team: Bulgarian <Bulgarian Translators' Team <dict at fsa-bg.org>>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../chkconfig.c:38
-#, c-format
-msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
-msgstr "%s версия %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
-
-#: ../chkconfig.c:39
-#, c-format
-msgid ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-msgstr "Програмата се разпространява свободно под условията на GPL.\n"
-
-#: ../chkconfig.c:42
-#, fuzzy, c-format
-msgid "usage:   %s [--list] [--type <type>] [name]\n"
-msgstr "употреба:   %s [--list] [име]\n"
-
-#: ../chkconfig.c:43
-#, c-format
-msgid "         %s --add <name>\n"
-msgstr "         %s --add <име>\n"
-
-#: ../chkconfig.c:44
-#, c-format
-msgid "         %s --del <name>\n"
-msgstr "         %s --del <име>\n"
-
-#: ../chkconfig.c:45
-#, c-format
-msgid "         %s --override <name>\n"
-msgstr "         %s --override <име>\n"
-
-#: ../chkconfig.c:46
-#, fuzzy, c-format
-msgid "         %s [--level <levels>] [--type <type>] <name> %s\n"
-msgstr "         %s [--level <нива>] <име> %s\n"
-
-#: ../chkconfig.c:53
-#, c-format
-msgid ""
-"service %s supports chkconfig, but is not referenced in any runlevel (run "
-"'chkconfig --add %s')\n"
-msgstr ""
-"услугата %s поддържа chkconfig, но не е включена в никое работно ниво "
-"(runlevel) (изпълнете chkconfig --add %s')\n"
-
-#: ../chkconfig.c:55
-#, c-format
-msgid "service %s does not support chkconfig\n"
-msgstr "услугата %s не поддържа chkconfig\n"
-
-#: ../chkconfig.c:57
-#, c-format
-msgid "error reading information on service %s: %s\n"
-msgstr "грешка при четене на информацията за услуга %s: %s\n"
-
-#: ../chkconfig.c:66
-#, c-format
-msgid "You do not have enough privileges to perform this operation.\n"
-msgstr ""
-
-#: ../chkconfig.c:351 ../chkconfig.c:356 ../chkconfig.c:470
-msgid "on"
-msgstr "да"
-
-#: ../chkconfig.c:351 ../chkconfig.c:356 ../chkconfig.c:470
-msgid "off"
-msgstr "не "
-
-#: ../chkconfig.c:432
-#, c-format
-msgid "xinetd based services:\n"
-msgstr "xinetd базирани услуги:\n"
-
-#: ../chkconfig.c:434
-#, c-format
-msgid "failed to open directory %s: %s\n"
-msgstr "неуспех при отваряне на директория %s: %s\n"
-
-#: ../chkconfig.c:578
-#, c-format
-msgid "%s version %s\n"
-msgstr "%s версия %s\n"
-
-#: ../chkconfig.c:590
-#, c-format
-msgid "--type must be 'sysv' or 'xinetd'\n"
-msgstr ""
-
-#: ../chkconfig.c:598
-#, c-format
-msgid "only one of --list, --add, --del, or --override may be specified\n"
-msgstr ""
-"може да бъде зададена само една от опциите --list, --add, --del или --"
-"override\n"
-
-#: ../chkconfig.c:658
-#, c-format
-msgid "only one runlevel may be specified for a chkconfig query\n"
-msgstr ""
-"може да бъде зададено само едно работно ниво при запитване към chkconfig\n"
-
-#: ../ntsysv.c:46
-msgid "Press <F1> for more information on a service."
-msgstr "Натиснете <F1> за повече информация за дадена услуга."
-
-#: ../ntsysv.c:83 ../ntsysv.c:120
-msgid "Ok"
-msgstr "Добре"
-
-#: ../ntsysv.c:83
-msgid "Back"
-msgstr "Назад"
-
-#: ../ntsysv.c:83
-msgid "Cancel"
-msgstr "Отказ"
-
-#: ../ntsysv.c:95
-msgid "What services should be automatically started?"
-msgstr "Кои услуги да се стартират автоматично?"
-
-#: ../ntsysv.c:101
-msgid "Services"
-msgstr "Услуги"
-
-#: ../ntsysv.c:183 ../ntsysv.c:210 ../ntsysv.c:248
-#, c-format
-msgid "error reading info for service %s: %s\n"
-msgstr "грешка при четене на информацията за услуга %s: %s\n"
-
-#: ../ntsysv.c:257
-#, c-format
-msgid "error reading from directory %s: %s\n"
-msgstr "грешка при четене от директория %s: %s\n"
-
-#: ../ntsysv.c:293
-#, c-format
-msgid "You must be root to run %s.\n"
-msgstr "За да изпълните %s трябва да бъдете root.\n"
-
-#: ../ntsysv.c:310
-#, c-format
-msgid "bad argument to --levels\n"
-msgstr "лош аргумент за --levels\n"
-
-#: ../ntsysv.c:317
-#, c-format
-msgid "No services may be managed by ntsysv!\n"
-msgstr "Няма услуги, които биха могли да се управляват от ntsysv!\n"
-
-#: ../leveldb.c:260
-#, c-format
-msgid "failed to open %s/init.d: %s\n"
-msgstr "неуспех при отваряне на %s/init.d: %s\n"
-
-#: ../leveldb.c:668
-#, c-format
-msgid "failed to glob pattern %s: %s\n"
-msgstr "невъзможно е ползването на шаблона %s: %s\n"
-
-#: ../leveldb.c:711
-#, c-format
-msgid "cannot determine current run level\n"
-msgstr "не може да се определи текущото работно ниво\n"
-
-#: ../leveldb.c:799
-#, c-format
-msgid "failed to make symlink %s: %s\n"
-msgstr "неуспех при създаване на символна връзка %s: %s\n"
-
-#: ../alternatives.c:63
-#, c-format
-msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
-msgstr "alternatives версия %s - Copyright (C) 2001 Red Hat, Inc.\n"
-
-#: ../alternatives.c:64
-#, c-format
-msgid ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-"\n"
-msgstr ""
-"Програмата се разпространява свободно под условията на GPL.\n"
-"\n"
-
-#: ../alternatives.c:65
-#, c-format
-msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
-msgstr "употреба: alternatives --install <връзка> <име> <път> <приоритет>\n"
-
-#: ../alternatives.c:66
-#, c-format
-msgid "                    [--initscript <service>]\n"
-msgstr "                    [--initscript <услуга>]\n"
-
-#: ../alternatives.c:67
-#, c-format
-msgid "                    [--slave <link> <name> <path>]*\n"
-msgstr "                    [--slave <връзка> <име> <път>]*\n"
-
-#: ../alternatives.c:68
-#, c-format
-msgid "       alternatives --remove <name> <path>\n"
-msgstr "       alternatives --remove <име> <път>\n"
-
-#: ../alternatives.c:69
-#, c-format
-msgid "       alternatives --auto <name>\n"
-msgstr "       alternatives --auto <име>\n"
-
-#: ../alternatives.c:70
-#, c-format
-msgid "       alternatives --config <name>\n"
-msgstr "       alternatives --config <име>\n"
-
-#: ../alternatives.c:71
-#, c-format
-msgid "       alternatives --display <name>\n"
-msgstr "       alternatives --display <име>\n"
-
-#: ../alternatives.c:72
-#, c-format
-msgid "       alternatives --set <name> <path>\n"
-msgstr "       alternatives --set <име> <път>\n"
-
-#: ../alternatives.c:73
-#, c-format
-msgid "\n"
-msgstr "\n"
-
-#: ../alternatives.c:74
-#, c-format
-msgid "common options: --verbose --test --help --usage --version\n"
-msgstr "общи параметри: --verbose --test --help --usage --version\n"
-
-#: ../alternatives.c:75
-#, c-format
-msgid "                --altdir <directory> --admindir <directory>\n"
-msgstr "                --altdir <директория> --admindir <директория>\n"
-
-#: ../alternatives.c:172
-#, c-format
-msgid "reading %s\n"
-msgstr "четене %s\n"
-
-#: ../alternatives.c:176
-#, c-format
-msgid "failed to open %s: %s\n"
-msgstr "неуспех при отваряне на %s: %s\n"
-
-#: ../alternatives.c:185
-#, c-format
-msgid "failed to read %s: %s\n"
-msgstr "неуспех при четене на %s: %s\n"
-
-#: ../alternatives.c:194
-#, c-format
-msgid "%s empty!\n"
-msgstr "%s празен!\n"
-
-#: ../alternatives.c:203
-#, c-format
-msgid "bad mode on line 1 of %s\n"
-msgstr "неправилен режим на ред 1 от %s\n"
-
-#: ../alternatives.c:210
-#, c-format
-msgid "bad primary link in %s\n"
-msgstr "неправилна първична връзка в %s\n"
-
-#: ../alternatives.c:222
-#, c-format
-msgid "path %s unexpected in %s\n"
-msgstr "пътя %s e неочакван в %s\n"
-
-#: ../alternatives.c:231
-#, c-format
-msgid "missing path for slave %s in %s\n"
-msgstr "липсва пътя за slave %s в %s\n"
-
-#: ../alternatives.c:241
-#, c-format
-msgid "unexpected end of file in %s\n"
-msgstr "неочакван край на файла в %s\n"
-
-#: ../alternatives.c:250
-#, c-format
-msgid "path to alternate expected in %s\n"
-msgstr "очаква се път до алтернатива в %s\n"
-
-#: ../alternatives.c:270
-#, c-format
-msgid "numeric priority expected in %s\n"
-msgstr "очаква се цифров приоритет в %s\n"
-
-#: ../alternatives.c:292
-#, c-format
-msgid "slave path expected in %s\n"
-msgstr "очаква се подчинен път в %s\n"
-
-#: ../alternatives.c:311
-#, c-format
-msgid "unexpected line in %s: %s\n"
-msgstr "неочаквана линия в %s: %s\n"
-
-#: ../alternatives.c:319
-#, c-format
-msgid "failed to read link %s: %s\n"
-msgstr "неуспешно четене на връзката %s: %s\n"
-
-#: ../alternatives.c:333
-#, c-format
-msgid "link points to no alternative -- setting mode to manual\n"
-msgstr "връзката не сочи към алтернатива. -- установяване режима на ръчен\n"
-
-#: ../alternatives.c:338
-#, c-format
-msgid "link changed -- setting mode to manual\n"
-msgstr "връзката е променена -- установяване режима на ръчен\n"
-
-#: ../alternatives.c:366 ../alternatives.c:373
-#, c-format
-msgid "would remove %s\n"
-msgstr "би премахнало %s\n"
-
-#: ../alternatives.c:368 ../alternatives.c:375 ../alternatives.c:406
-#, c-format
-msgid "failed to remove link %s: %s\n"
-msgstr "неуспех при премахване на връзка %s: %s\n"
-
-#: ../alternatives.c:391 ../alternatives.c:403
-#, c-format
-msgid "would link %s -> %s\n"
-msgstr "би свързало %s -> %s\n"
-
-#: ../alternatives.c:395 ../alternatives.c:412
-#, c-format
-msgid "failed to link %s -> %s: %s\n"
-msgstr "неуспешно свързване %s -> %s: %s\n"
-
-#: ../alternatives.c:444
-#, c-format
-msgid "%s already exists\n"
-msgstr "%s вече съществува\n"
-
-#: ../alternatives.c:446
-#, c-format
-msgid "failed to create %s: %s\n"
-msgstr "неуспех при създаване на %s: %s\n"
-
-#: ../alternatives.c:477
-#, c-format
-msgid "failed to replace %s with %s: %s\n"
-msgstr "неуспех при заместване на %s с %s: %s\n"
-
-#: ../alternatives.c:503 ../alternatives.c:512
-#, c-format
-msgid "running %s\n"
-msgstr "изпълнява %s\n"
-
-#: ../alternatives.c:539
-#, c-format
-msgid "the primary link for %s must be %s\n"
-msgstr "първичната връзка за %s трябва да бъде %s\n"
-
-#: ../alternatives.c:619
-#, c-format
-msgid "link %s incorrect for slave %s (%s %s)\n"
-msgstr "връзката %s е неправилна за подчинения %s (%s %s)\n"
-
-#: ../alternatives.c:660
-#, c-format
-msgid "%s - status is auto.\n"
-msgstr "%s - статуса е автоматичен.\n"
-
-#: ../alternatives.c:662
-#, c-format
-msgid "%s - status is manual.\n"
-msgstr "%s - статуса е ръчен.\n"
-
-#: ../alternatives.c:664
-#, c-format
-msgid " link currently points to %s\n"
-msgstr " връзката в момента сочи към %s\n"
-
-#: ../alternatives.c:667
-#, c-format
-msgid "%s - priority %d\n"
-msgstr "%s - приоритет %d\n"
-
-#: ../alternatives.c:670
-#, c-format
-msgid " slave %s: %s\n"
-msgstr " подчинен %s: %s\n"
-
-#: ../alternatives.c:675
-#, c-format
-msgid "Current `best' version is %s.\n"
-msgstr "Текущата 'най-добра' версия е %s.\n"
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There is %d program that provides '%s'.\n"
-msgstr "Има %d програма осигуряваща '%s'.\n"
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There are %d programs which provide '%s'.\n"
-msgstr "Има %d програми осигуряващи '%s'.\n"
-
-#: ../alternatives.c:707
-#, c-format
-msgid "  Selection    Command\n"
-msgstr "  Избор    Команда\n"
-
-#: ../alternatives.c:716
-#, c-format
-msgid "Enter to keep the current selection[+], or type selection number: "
-msgstr "Enter за да запазите текущата избор[+] или въведете номер за избор: "
-
-#: ../alternatives.c:719
-#, c-format
-msgid ""
-"\n"
-"error reading choice\n"
-msgstr ""
-"\n"
-"грешка при четенето на избора\n"
-
-#: ../alternatives.c:746 ../alternatives.c:772
-#, c-format
-msgid "%s has not been configured as an alternative for %s\n"
-msgstr "%s не е настроен като алтернатива на %s\n"
-
-#: ../alternatives.c:788
-#, c-format
-msgid "(would remove %s\n"
-msgstr "(ще премахне %s\n"
-
-#: ../alternatives.c:790
-#, c-format
-msgid "failed to remove %s: %s\n"
-msgstr "неуспех при премахване на %s: %s\n"
-
-#: ../alternatives.c:912
-#, c-format
-msgid "altdir %s invalid\n"
-msgstr "altdir %s е невалидна\n"
-
-#: ../alternatives.c:918
-#, c-format
-msgid "admindir %s invalid\n"
-msgstr "admindir %s е невалидна\n"
-
-#: ../alternatives.c:928
-#, c-format
-msgid "alternatives version %s\n"
-msgstr "alternatives версия %s\n"
--- chkconfig-1.3.46/po/bn.po
+++ chkconfig-1.3.46/po/bn.po
(renamed to chkconfig-1.3.48/po/bn.po)
--- chkconfig-1.3.46/po/bn_IN.po
+++ chkconfig-1.3.46/po/bn_IN.po
(renamed to chkconfig-1.3.48/po/bn_IN.po)
--- chkconfig-1.3.46/po/bs.po
+++ chkconfig-1.3.46/po/bs.po
(renamed to chkconfig-1.3.48/po/bs.po)
--- chkconfig-1.3.46/po/ca.po
+++ chkconfig-1.3.46/po/ca.po
(renamed to chkconfig-1.3.48/po/ca.po)
--- chkconfig-1.3.46/po/chkconfig.pot
+++ chkconfig-1.3.46/po/chkconfig.pot
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-03 17:22-0500\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../chkconfig.c:38
-#, c-format
-msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
-msgstr ""
-
-#: ../chkconfig.c:39
-#, c-format
-msgid ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-msgstr ""
-
-#: ../chkconfig.c:42
-#, c-format
-msgid "usage:   %s [--list] [--type <type>] [name]\n"
-msgstr ""
-
-#: ../chkconfig.c:43
-#, c-format
-msgid "         %s --add <name>\n"
-msgstr ""
-
-#: ../chkconfig.c:44
-#, c-format
-msgid "         %s --del <name>\n"
-msgstr ""
-
-#: ../chkconfig.c:45
-#, c-format
-msgid "         %s --override <name>\n"
-msgstr ""
-
-#: ../chkconfig.c:46
-#, c-format
-msgid "         %s [--level <levels>] [--type <type>] <name> %s\n"
-msgstr ""
-
-#: ../chkconfig.c:53
-#, c-format
-msgid ""
-"service %s supports chkconfig, but is not referenced in any runlevel (run "
-"'chkconfig --add %s')\n"
-msgstr ""
-
-#: ../chkconfig.c:55
-#, c-format
-msgid "service %s does not support chkconfig\n"
-msgstr ""
-
-#: ../chkconfig.c:57
-#, c-format
-msgid "error reading information on service %s: %s\n"
-msgstr ""
-
-#: ../chkconfig.c:66
-#, c-format
-msgid "You do not have enough privileges to perform this operation.\n"
-msgstr ""
-
-#: ../chkconfig.c:411 ../chkconfig.c:416 ../chkconfig.c:530
-msgid "on"
-msgstr ""
-
-#: ../chkconfig.c:411 ../chkconfig.c:416 ../chkconfig.c:530
-msgid "off"
-msgstr ""
-
-#: ../chkconfig.c:492
-#, c-format
-msgid "xinetd based services:\n"
-msgstr ""
-
-#: ../chkconfig.c:494
-#, c-format
-msgid "failed to open directory %s: %s\n"
-msgstr ""
-
-#: ../chkconfig.c:638
-#, c-format
-msgid "%s version %s\n"
-msgstr ""
-
-#: ../chkconfig.c:650
-#, c-format
-msgid "--type must be 'sysv' or 'xinetd'\n"
-msgstr ""
-
-#: ../chkconfig.c:658
-#, c-format
-msgid "only one of --list, --add, --del, or --override may be specified\n"
-msgstr ""
-
-#: ../chkconfig.c:718
-#, c-format
-msgid "only one runlevel may be specified for a chkconfig query\n"
-msgstr ""
-
-#: ../ntsysv.c:46
-msgid "Press <F1> for more information on a service."
-msgstr ""
-
-#: ../ntsysv.c:83 ../ntsysv.c:120
-msgid "Ok"
-msgstr ""
-
-#: ../ntsysv.c:83
-msgid "Back"
-msgstr ""
-
-#: ../ntsysv.c:83
-msgid "Cancel"
-msgstr ""
-
-#: ../ntsysv.c:95
-msgid "What services should be automatically started?"
-msgstr ""
-
-#: ../ntsysv.c:101
-msgid "Services"
-msgstr ""
-
-#: ../ntsysv.c:183 ../ntsysv.c:210 ../ntsysv.c:248
-#, c-format
-msgid "error reading info for service %s: %s\n"
-msgstr ""
-
-#: ../ntsysv.c:257
-#, c-format
-msgid "error reading from directory %s: %s\n"
-msgstr ""
-
-#: ../ntsysv.c:293
-#, c-format
-msgid "You must be root to run %s.\n"
-msgstr ""
-
-#: ../ntsysv.c:310
-#, c-format
-msgid "bad argument to --levels\n"
-msgstr ""
-
-#: ../ntsysv.c:317
-#, c-format
-msgid "No services may be managed by ntsysv!\n"
-msgstr ""
-
-#: ../leveldb.c:261
-#, c-format
-msgid "failed to open %s/init.d: %s\n"
-msgstr ""
-
-#: ../leveldb.c:662
-#, c-format
-msgid "failed to glob pattern %s: %s\n"
-msgstr ""
-
-#: ../leveldb.c:705
-#, c-format
-msgid "cannot determine current run level\n"
-msgstr ""
-
-#: ../leveldb.c:793
-#, c-format
-msgid "failed to make symlink %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:63
-#, c-format
-msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
-msgstr ""
-
-#: ../alternatives.c:64
-#, c-format
-msgid ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-"\n"
-msgstr ""
-
-#: ../alternatives.c:65
-#, c-format
-msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
-msgstr ""
-
-#: ../alternatives.c:66
-#, c-format
-msgid "                    [--initscript <service>]\n"
-msgstr ""
-
-#: ../alternatives.c:67
-#, c-format
-msgid "                    [--slave <link> <name> <path>]*\n"
-msgstr ""
-
-#: ../alternatives.c:68
-#, c-format
-msgid "       alternatives --remove <name> <path>\n"
-msgstr ""
-
-#: ../alternatives.c:69
-#, c-format
-msgid "       alternatives --auto <name>\n"
-msgstr ""
-
-#: ../alternatives.c:70
-#, c-format
-msgid "       alternatives --config <name>\n"
-msgstr ""
-
-#: ../alternatives.c:71
-#, c-format
-msgid "       alternatives --display <name>\n"
-msgstr ""
-
-#: ../alternatives.c:72
-#, c-format
-msgid "       alternatives --set <name> <path>\n"
-msgstr ""
-
-#: ../alternatives.c:73
-#, c-format
-msgid "\n"
-msgstr ""
-
-#: ../alternatives.c:74
-#, c-format
-msgid "common options: --verbose --test --help --usage --version\n"
-msgstr ""
-
-#: ../alternatives.c:75
-#, c-format
-msgid "                --altdir <directory> --admindir <directory>\n"
-msgstr ""
-
-#: ../alternatives.c:172
-#, c-format
-msgid "reading %s\n"
-msgstr ""
-
-#: ../alternatives.c:176
-#, c-format
-msgid "failed to open %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:185
-#, c-format
-msgid "failed to read %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:194
-#, c-format
-msgid "%s empty!\n"
-msgstr ""
-
-#: ../alternatives.c:203
-#, c-format
-msgid "bad mode on line 1 of %s\n"
-msgstr ""
-
-#: ../alternatives.c:210
-#, c-format
-msgid "bad primary link in %s\n"
-msgstr ""
-
-#: ../alternatives.c:222
-#, c-format
-msgid "path %s unexpected in %s\n"
-msgstr ""
-
-#: ../alternatives.c:231
-#, c-format
-msgid "missing path for slave %s in %s\n"
-msgstr ""
-
-#: ../alternatives.c:241
-#, c-format
-msgid "unexpected end of file in %s\n"
-msgstr ""
-
-#: ../alternatives.c:250
-#, c-format
-msgid "path to alternate expected in %s\n"
-msgstr ""
-
-#: ../alternatives.c:251 ../alternatives.c:272 ../alternatives.c:295
-#: ../alternatives.c:314
-#, c-format
-msgid "unexpected line in %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:271
-#, c-format
-msgid "numeric priority expected in %s\n"
-msgstr ""
-
-#: ../alternatives.c:294
-#, c-format
-msgid "slave path expected in %s\n"
-msgstr ""
-
-#: ../alternatives.c:322
-#, c-format
-msgid "failed to read link %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:336
-#, c-format
-msgid "link points to no alternative -- setting mode to manual\n"
-msgstr ""
-
-#: ../alternatives.c:341
-#, c-format
-msgid "link changed -- setting mode to manual\n"
-msgstr ""
-
-#: ../alternatives.c:369 ../alternatives.c:376
-#, c-format
-msgid "would remove %s\n"
-msgstr ""
-
-#: ../alternatives.c:371 ../alternatives.c:378 ../alternatives.c:410
-#, c-format
-msgid "failed to remove link %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:394 ../alternatives.c:407
-#, c-format
-msgid "would link %s -> %s\n"
-msgstr ""
-
-#: ../alternatives.c:399 ../alternatives.c:416
-#, c-format
-msgid "failed to link %s -> %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:448
-#, c-format
-msgid "%s already exists\n"
-msgstr ""
-
-#: ../alternatives.c:450
-#, c-format
-msgid "failed to create %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:481
-#, c-format
-msgid "failed to replace %s with %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:507 ../alternatives.c:516
-#, c-format
-msgid "running %s\n"
-msgstr ""
-
-#: ../alternatives.c:543
-#, c-format
-msgid "the primary link for %s must be %s\n"
-msgstr ""
-
-#: ../alternatives.c:623
-#, c-format
-msgid "link %s incorrect for slave %s (%s %s)\n"
-msgstr ""
-
-#: ../alternatives.c:664
-#, c-format
-msgid "%s - status is auto.\n"
-msgstr ""
-
-#: ../alternatives.c:666
-#, c-format
-msgid "%s - status is manual.\n"
-msgstr ""
-
-#: ../alternatives.c:668
-#, c-format
-msgid " link currently points to %s\n"
-msgstr ""
-
-#: ../alternatives.c:671
-#, c-format
-msgid "%s - priority %d\n"
-msgstr ""
-
-#: ../alternatives.c:674
-#, c-format
-msgid " slave %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:679
-#, c-format
-msgid "Current `best' version is %s.\n"
-msgstr ""
-
-#: ../alternatives.c:709
-#, c-format
-msgid "There is %d program that provides '%s'.\n"
-msgstr ""
-
-#: ../alternatives.c:709
-#, c-format
-msgid "There are %d programs which provide '%s'.\n"
-msgstr ""
-
-#: ../alternatives.c:711
-#, c-format
-msgid "  Selection    Command\n"
-msgstr ""
-
-#: ../alternatives.c:720
-#, c-format
-msgid "Enter to keep the current selection[+], or type selection number: "
-msgstr ""
-
-#: ../alternatives.c:723
-#, c-format
-msgid ""
-"\n"
-"error reading choice\n"
-msgstr ""
-
-#: ../alternatives.c:750 ../alternatives.c:776
-#, c-format
-msgid "%s has not been configured as an alternative for %s\n"
-msgstr ""
-
-#: ../alternatives.c:792
-#, c-format
-msgid "(would remove %s\n"
-msgstr ""
-
-#: ../alternatives.c:794
-#, c-format
-msgid "failed to remove %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:916
-#, c-format
-msgid "altdir %s invalid\n"
-msgstr ""
-
-#: ../alternatives.c:922
-#, c-format
-msgid "admindir %s invalid\n"
-msgstr ""
-
-#: ../alternatives.c:932
-#, c-format
-msgid "alternatives version %s\n"
-msgstr ""
--- chkconfig-1.3.46/po/cs.po
+++ chkconfig-1.3.46/po/cs.po
(renamed to chkconfig-1.3.48/po/cs.po)
--- chkconfig-1.3.46/po/cy.po
+++ chkconfig-1.3.46/po/cy.po
(renamed to chkconfig-1.3.48/po/cy.po)
--- chkconfig-1.3.46/po/da.po
+++ chkconfig-1.3.46/po/da.po
(renamed to chkconfig-1.3.48/po/da.po)
--- chkconfig-1.3.46/po/de.po
+++ chkconfig-1.3.46/po/de.po
(renamed to chkconfig-1.3.48/po/de.po)
--- chkconfig-1.3.46/po/el.po
+++ chkconfig-1.3.46/po/el.po
(renamed to chkconfig-1.3.48/po/el.po)
--- chkconfig-1.3.46/po/en_GB.po
+++ chkconfig-1.3.46/po/en_GB.po
-# English (British) translation.
-# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Abigail Brady <morwen at evilmagic.org>, Bastien Nocera <hadess at hadess.net>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-04 23:29-0500\n"
-"PO-Revision-Date: 2007-06-11 13:15+0000\n"
-"Last-Translator: Abigail Brady <morwen at evilmagic.org>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../chkconfig.c:38
-#, c-format
-msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
-msgstr "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
-
-#: ../chkconfig.c:39
-#, c-format
-msgid ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-msgstr ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-
-#: ../chkconfig.c:42
-#, fuzzy, c-format
-msgid "usage:   %s [--list] [--type <type>] [name]\n"
-msgstr "usage:   %s --list [name]\n"
-
-#: ../chkconfig.c:43
-#, c-format
-msgid "         %s --add <name>\n"
-msgstr "         %s --add <name>\n"
-
-#: ../chkconfig.c:44
-#, c-format
-msgid "         %s --del <name>\n"
-msgstr "         %s --del <name>\n"
-
-#: ../chkconfig.c:45
-#, c-format
-msgid "         %s --override <name>\n"
-msgstr "         %s --override <name>\n"
-
-#: ../chkconfig.c:46
-#, fuzzy, c-format
-msgid "         %s [--level <levels>] [--type <type>] <name> %s\n"
-msgstr "         %s [--level <levels>] <name> %s\n"
-
-#: ../chkconfig.c:53
-#, c-format
-msgid ""
-"service %s supports chkconfig, but is not referenced in any runlevel (run "
-"'chkconfig --add %s')\n"
-msgstr ""
-"service %s supports chkconfig, but is not referenced in any runlevel (run "
-"'chkconfig --add %s')\n"
-
-#: ../chkconfig.c:55
-#, c-format
-msgid "service %s does not support chkconfig\n"
-msgstr "service %s does not support chkconfig\n"
-
-#: ../chkconfig.c:57
-#, c-format
-msgid "error reading information on service %s: %s\n"
-msgstr "error reading information on service %s: %s\n"
-
-#: ../chkconfig.c:66
-#, c-format
-msgid "You do not have enough privileges to perform this operation.\n"
-msgstr ""
-
-#: ../chkconfig.c:351 ../chkconfig.c:356 ../chkconfig.c:470
-msgid "on"
-msgstr "on"
-
-#: ../chkconfig.c:351 ../chkconfig.c:356 ../chkconfig.c:470
-msgid "off"
-msgstr "off"
-
-#: ../chkconfig.c:432
-#, c-format
-msgid "xinetd based services:\n"
-msgstr "xinetd based services:\n"
-
-#: ../chkconfig.c:434
-#, c-format
-msgid "failed to open directory %s: %s\n"
-msgstr "failed to open directory %s: %s\n"
-
-#: ../chkconfig.c:578
-#, c-format
-msgid "%s version %s\n"
-msgstr "%s version %s\n"
-
-#: ../chkconfig.c:590
-#, c-format
-msgid "--type must be 'sysv' or 'xinetd'\n"
-msgstr ""
-
-#: ../chkconfig.c:598
-#, c-format
-msgid "only one of --list, --add, --del, or --override may be specified\n"
-msgstr "only one of --list, --add, --del, or --override may be specified\n"
-
-#: ../chkconfig.c:658
-#, c-format
-msgid "only one runlevel may be specified for a chkconfig query\n"
-msgstr "only one runlevel may be specified for a chkconfig query\n"
-
-#: ../ntsysv.c:46
-msgid "Press <F1> for more information on a service."
-msgstr "Press <F1> for more information on a service."
-
-#: ../ntsysv.c:83 ../ntsysv.c:120
-msgid "Ok"
-msgstr "Ok"
-
-#: ../ntsysv.c:83
-msgid "Back"
-msgstr "Back"
-
-#: ../ntsysv.c:83
-msgid "Cancel"
-msgstr "Cancel"
-
-#: ../ntsysv.c:95
-msgid "What services should be automatically started?"
-msgstr "What services should be automatically started?"
-
-#: ../ntsysv.c:101
-msgid "Services"
-msgstr "Services"
-
-#: ../ntsysv.c:183 ../ntsysv.c:210 ../ntsysv.c:248
-#, c-format
-msgid "error reading info for service %s: %s\n"
-msgstr "error reading info for service %s: %s\n"
-
-#: ../ntsysv.c:257
-#, c-format
-msgid "error reading from directory %s: %s\n"
-msgstr "error reading from directory %s: %s\n"
-
-#: ../ntsysv.c:293
-#, c-format
-msgid "You must be root to run %s.\n"
-msgstr "You must be root to run %s.\n"
-
-#: ../ntsysv.c:310
-#, c-format
-msgid "bad argument to --levels\n"
-msgstr "bad argument to --levels\n"
-
-#: ../ntsysv.c:317
-#, c-format
-msgid "No services may be managed by ntsysv!\n"
-msgstr "No services may be managed by ntsysv!\n"
-
-#: ../leveldb.c:260
-#, c-format
-msgid "failed to open %s/init.d: %s\n"
-msgstr "failed to open %s/init.d: %s\n"
-
-#: ../leveldb.c:668
-#, c-format
-msgid "failed to glob pattern %s: %s\n"
-msgstr "failed to glob pattern %s: %s\n"
-
-#: ../leveldb.c:711
-#, c-format
-msgid "cannot determine current run level\n"
-msgstr "cannot determine current run level\n"
-
-#: ../leveldb.c:799
-#, c-format
-msgid "failed to make symlink %s: %s\n"
-msgstr "failed to make symlink %s: %s\n"
-
-#: ../alternatives.c:63
-#, c-format
-msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
-msgstr "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
-
-#: ../alternatives.c:64
-#, c-format
-msgid ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-"\n"
-msgstr ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-"\n"
-
-#: ../alternatives.c:65
-#, c-format
-msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
-msgstr "usage: alternatives --install <link> <name> <path> <priority>\n"
-
-#: ../alternatives.c:66
-#, c-format
-msgid "                    [--initscript <service>]\n"
-msgstr "                    [--initscript <service>]\n"
-
-#: ../alternatives.c:67
-#, c-format
-msgid "                    [--slave <link> <name> <path>]*\n"
-msgstr "                    [--slave <link> <name> <path>]*\n"
-
-#: ../alternatives.c:68
-#, c-format
-msgid "       alternatives --remove <name> <path>\n"
-msgstr "       alternatives --remove <name> <path>\n"
-
-#: ../alternatives.c:69
-#, c-format
-msgid "       alternatives --auto <name>\n"
-msgstr "       alternatives --auto <name>\n"
-
-#: ../alternatives.c:70
-#, c-format
-msgid "       alternatives --config <name>\n"
-msgstr "       alternatives --config <name>\n"
-
-#: ../alternatives.c:71
-#, c-format
-msgid "       alternatives --display <name>\n"
-msgstr "       alternatives --display <name>\n"
-
-#: ../alternatives.c:72
-#, c-format
-msgid "       alternatives --set <name> <path>\n"
-msgstr "       alternatives --set <name> <path>\n"
-
-#: ../alternatives.c:73
-#, c-format
-msgid "\n"
-msgstr "\n"
-
-#: ../alternatives.c:74
-#, c-format
-msgid "common options: --verbose --test --help --usage --version\n"
-msgstr "common options: --verbose --test --help --usage --version\n"
-
-#: ../alternatives.c:75
-#, c-format
-msgid "                --altdir <directory> --admindir <directory>\n"
-msgstr "                --altdir <directory> --admindir <directory>\n"
-
-#: ../alternatives.c:172
-#, c-format
-msgid "reading %s\n"
-msgstr "reading %s\n"
-
-#: ../alternatives.c:176
-#, c-format
-msgid "failed to open %s: %s\n"
-msgstr "failed to open %s: %s\n"
-
-#: ../alternatives.c:185
-#, c-format
-msgid "failed to read %s: %s\n"
-msgstr "failed to read %s: %s\n"
-
-#: ../alternatives.c:194
-#, c-format
-msgid "%s empty!\n"
-msgstr "%s empty!\n"
-
-#: ../alternatives.c:203
-#, c-format
-msgid "bad mode on line 1 of %s\n"
-msgstr "bad mode on line 1 of %s\n"
-
-#: ../alternatives.c:210
-#, c-format
-msgid "bad primary link in %s\n"
-msgstr "bad primary link in %s\n"
-
-#: ../alternatives.c:222
-#, c-format
-msgid "path %s unexpected in %s\n"
-msgstr "path %s unexpected in %s\n"
-
-#: ../alternatives.c:231
-#, c-format
-msgid "missing path for slave %s in %s\n"
-msgstr "missing path for slave %s in %s\n"
-
-#: ../alternatives.c:241
-#, c-format
-msgid "unexpected end of file in %s\n"
-msgstr "unexpected end of file in %s\n"
-
-#: ../alternatives.c:250
-#, c-format
-msgid "path to alternate expected in %s\n"
-msgstr "path to alternate expected in %s\n"
-
-#: ../alternatives.c:270
-#, c-format
-msgid "numeric priority expected in %s\n"
-msgstr "numeric priority expected in %s\n"
-
-#: ../alternatives.c:292
-#, c-format
-msgid "slave path expected in %s\n"
-msgstr "slave path expected in %s\n"
-
-#: ../alternatives.c:311
-#, c-format
-msgid "unexpected line in %s: %s\n"
-msgstr "unexpected line in %s: %s\n"
-
-#: ../alternatives.c:319
-#, c-format
-msgid "failed to read link %s: %s\n"
-msgstr "failed to read link %s: %s\n"
-
-#: ../alternatives.c:333
-#, c-format
-msgid "link points to no alternative -- setting mode to manual\n"
-msgstr "link points to no alternative -- setting mode to manual\n"
-
-#: ../alternatives.c:338
-#, c-format
-msgid "link changed -- setting mode to manual\n"
-msgstr "link changed -- setting mode to manual\n"
-
-#: ../alternatives.c:366 ../alternatives.c:373
-#, c-format
-msgid "would remove %s\n"
-msgstr "would remove %s\n"
-
-#: ../alternatives.c:368 ../alternatives.c:375 ../alternatives.c:406
-#, c-format
-msgid "failed to remove link %s: %s\n"
-msgstr "failed to remove link %s: %s\n"
-
-#: ../alternatives.c:391 ../alternatives.c:403
-#, c-format
-msgid "would link %s -> %s\n"
-msgstr "would link %s -> %s\n"
-
-#: ../alternatives.c:395 ../alternatives.c:412
-#, c-format
-msgid "failed to link %s -> %s: %s\n"
-msgstr "failed to link %s -> %s: %s\n"
-
-#: ../alternatives.c:444
-#, c-format
-msgid "%s already exists\n"
-msgstr "%s already exists\n"
-
-#: ../alternatives.c:446
-#, c-format
-msgid "failed to create %s: %s\n"
-msgstr "failed to create %s: %s\n"
-
-#: ../alternatives.c:477
-#, c-format
-msgid "failed to replace %s with %s: %s\n"
-msgstr "failed to replace %s with %s: %s\n"
-
-#: ../alternatives.c:503 ../alternatives.c:512
-#, c-format
-msgid "running %s\n"
-msgstr "running %s\n"
-
-#: ../alternatives.c:539
-#, c-format
-msgid "the primary link for %s must be %s\n"
-msgstr "the primary link for %s must be %s\n"
-
-#: ../alternatives.c:619
-#, c-format
-msgid "link %s incorrect for slave %s (%s %s)\n"
-msgstr "link %s incorrect for slave %s (%s %s)\n"
-
-#: ../alternatives.c:660
-#, c-format
-msgid "%s - status is auto.\n"
-msgstr "%s - status is auto.\n"
-
-#: ../alternatives.c:662
-#, c-format
-msgid "%s - status is manual.\n"
-msgstr "%s - status is manual.\n"
-
-#: ../alternatives.c:664
-#, c-format
-msgid " link currently points to %s\n"
-msgstr " link currently points to %s\n"
-
-#: ../alternatives.c:667
-#, c-format
-msgid "%s - priority %d\n"
-msgstr "%s - priority %d\n"
-
-#: ../alternatives.c:670
-#, c-format
-msgid " slave %s: %s\n"
-msgstr " slave %s: %s\n"
-
-#: ../alternatives.c:675
-#, c-format
-msgid "Current `best' version is %s.\n"
-msgstr "Current `best' version is %s.\n"
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There is %d program that provides '%s'.\n"
-msgstr "There is %d program that provides '%s'.\n"
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There are %d programs which provide '%s'.\n"
-msgstr "There are %d programs which provide '%s'.\n"
-
-#: ../alternatives.c:707
-#, c-format
-msgid "  Selection    Command\n"
-msgstr "  Selection    Command\n"
-
-#: ../alternatives.c:716
-#, c-format
-msgid "Enter to keep the current selection[+], or type selection number: "
-msgstr "Enter to keep the current selection[+], or type selection number: "
-
-#: ../alternatives.c:719
-#, c-format
-msgid ""
-"\n"
-"error reading choice\n"
-msgstr ""
-"\n"
-"error reading choice\n"
-
-#: ../alternatives.c:746 ../alternatives.c:772
-#, c-format
-msgid "%s has not been configured as an alternative for %s\n"
-msgstr "%s has not been configured as an alternative for %s\n"
-
-#: ../alternatives.c:788
-#, c-format
-msgid "(would remove %s\n"
-msgstr "(would remove %s\n"
-
-#: ../alternatives.c:790
-#, c-format
-msgid "failed to remove %s: %s\n"
-msgstr "failed to remove %s: %s\n"
-
-#: ../alternatives.c:912
-#, c-format
-msgid "altdir %s invalid\n"
-msgstr "altdir %s invalid\n"
-
-#: ../alternatives.c:918
-#, c-format
-msgid "admindir %s invalid\n"
-msgstr "admindir %s invalid\n"
-
-#: ../alternatives.c:928
-#, c-format
-msgid "alternatives version %s\n"
-msgstr "alternatives version %s\n"
--- chkconfig-1.3.46/po/es.po
+++ chkconfig-1.3.46/po/es.po
(renamed to chkconfig-1.3.48/po/es.po)
--- chkconfig-1.3.46/po/et.po
+++ chkconfig-1.3.46/po/et.po
(renamed to chkconfig-1.3.48/po/et.po)
--- chkconfig-1.3.46/po/fi.po
+++ chkconfig-1.3.46/po/fi.po
(renamed to chkconfig-1.3.48/po/fi.po)
--- chkconfig-1.3.46/po/fr.po
+++ chkconfig-1.3.46/po/fr.po
(renamed to chkconfig-1.3.48/po/fr.po)
--- chkconfig-1.3.46/po/gl.po
+++ chkconfig-1.3.46/po/gl.po
(renamed to chkconfig-1.3.48/po/gl.po)
--- chkconfig-1.3.46/po/gu.po
+++ chkconfig-1.3.46/po/gu.po
(renamed to chkconfig-1.3.48/po/gu.po)
--- chkconfig-1.3.46/po/he.po
+++ chkconfig-1.3.46/po/he.po
(renamed to chkconfig-1.3.48/po/he.po)
--- chkconfig-1.3.46/po/hi.po
+++ chkconfig-1.3.46/po/hi.po
(renamed to chkconfig-1.3.48/po/hi.po)
--- chkconfig-1.3.46/po/hr.po
+++ chkconfig-1.3.46/po/hr.po
(renamed to chkconfig-1.3.48/po/hr.po)
--- chkconfig-1.3.46/po/hu.po
+++ chkconfig-1.3.46/po/hu.po
(renamed to chkconfig-1.3.48/po/hu.po)
--- chkconfig-1.3.46/po/hy.po
+++ chkconfig-1.3.46/po/hy.po
(renamed to chkconfig-1.3.48/po/hy.po)
--- chkconfig-1.3.46/po/id.po
+++ chkconfig-1.3.46/po/id.po
(renamed to chkconfig-1.3.48/po/id.po)
--- chkconfig-1.3.46/po/is.po
+++ chkconfig-1.3.46/po/is.po
(renamed to chkconfig-1.3.48/po/is.po)
--- chkconfig-1.3.46/po/it.po
+++ chkconfig-1.3.46/po/it.po
(renamed to chkconfig-1.3.48/po/it.po)
--- chkconfig-1.3.46/po/ja.po
+++ chkconfig-1.3.46/po/ja.po
(renamed to chkconfig-1.3.48/po/ja.po)
--- chkconfig-1.3.46/po/ka.po
+++ chkconfig-1.3.46/po/ka.po
(renamed to chkconfig-1.3.48/po/ka.po)
--- chkconfig-1.3.46/po/kn.po
+++ chkconfig-1.3.46/po/kn.po
(renamed to chkconfig-1.3.48/po/kn.po)
--- chkconfig-1.3.46/po/ko.po
+++ chkconfig-1.3.46/po/ko.po
(renamed to chkconfig-1.3.48/po/ko.po)
--- chkconfig-1.3.46/po/ku.po
+++ chkconfig-1.3.46/po/ku.po
(renamed to chkconfig-1.3.48/po/ku.po)
--- chkconfig-1.3.46/po/lo.po
+++ chkconfig-1.3.46/po/lo.po
(renamed to chkconfig-1.3.48/po/lo.po)
--- chkconfig-1.3.46/po/lv.po
+++ chkconfig-1.3.46/po/lv.po
(renamed to chkconfig-1.3.48/po/lv.po)
--- chkconfig-1.3.46/po/mai.po
+++ chkconfig-1.3.46/po/mai.po
(renamed to chkconfig-1.3.48/po/mai.po)
--- chkconfig-1.3.46/po/mk.po
+++ chkconfig-1.3.46/po/mk.po
(renamed to chkconfig-1.3.48/po/mk.po)
--- chkconfig-1.3.46/po/ml.po
+++ chkconfig-1.3.46/po/ml.po
(renamed to chkconfig-1.3.48/po/ml.po)
--- chkconfig-1.3.46/po/mr.po
+++ chkconfig-1.3.46/po/mr.po
(renamed to chkconfig-1.3.48/po/mr.po)
--- chkconfig-1.3.46/po/ms.po
+++ chkconfig-1.3.46/po/ms.po
(renamed to chkconfig-1.3.48/po/ms.po)
--- chkconfig-1.3.46/po/my.po
+++ chkconfig-1.3.46/po/my.po
(renamed to chkconfig-1.3.48/po/my.po)
--- chkconfig-1.3.46/po/nb.po
+++ chkconfig-1.3.46/po/nb.po
(renamed to chkconfig-1.3.48/po/nb.po)
--- chkconfig-1.3.46/po/nl.po
+++ chkconfig-1.3.46/po/nl.po
-# translation of chkconfig.master.nl.po to Dutch
-# Dutch translation of chkconfig
-# Copyright (C) 2003, 2005, 2007, 2009 Free Software Foundation, Inc.
-#
-# Tino Meinen <a.t.meinen at chello.nl>, 2003, 2004.
-# Peter van Egdom <p.van.egdom at gmail.com>, 2003, 2005, 2007.
-# R.E. van der Luit <nippur at fedoraproject.org>, 2009.
-msgid ""
-msgstr ""
-"Project-Id-Version: chkconfig.master.nl\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-04 23:29-0500\n"
-"PO-Revision-Date: 2009-01-16 22:36+0100\n"
-"Last-Translator: R.E. van der Luit <nippur at fedoraproject.org>\n"
-"Language-Team: Dutch <nippur at fedoraproject.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-
-#: ../chkconfig.c:38
-#, c-format
-msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
-msgstr "%s versie %s - Copyright © 1997-2000 Red Hat, Inc.\n"
-
-#: ../chkconfig.c:39
-#, c-format
-msgid "This may be freely redistributed under the terms of the GNU Public License.\n"
-msgstr ""
-"Dit mag vrijelijk worden verspreid onder de voorwaarden van de GNU Public "
-"License.\n"
-
-#: ../chkconfig.c:42
-#, c-format
-msgid "usage:   %s [--list] [--type <type>] [name]\n"
-msgstr "gebruik:   %s [--list] [--type <type>] [naam]\n"
-
-#: ../chkconfig.c:43
-#, c-format
-msgid "         %s --add <name>\n"
-msgstr "         %s --add <naam>\n"
-
-#: ../chkconfig.c:44
-#, c-format
-msgid "         %s --del <name>\n"
-msgstr "         %s --del <naam>\n"
-
-#: ../chkconfig.c:45
-#, c-format
-msgid "         %s --override <name>\n"
-msgstr "         %s --override <naam>\n"
-
-#: ../chkconfig.c:46
-#, c-format
-msgid "         %s [--level <levels>] [--type <type>] <name> %s\n"
-msgstr "         %s [--level <levels>] [--type <type>] <naam> %s\n"
-
-#: ../chkconfig.c:53
-#, c-format
-msgid ""
-"service %s supports chkconfig, but is not referenced in any runlevel (run "
-"'chkconfig --add %s')\n"
-msgstr "service %s ondersteunt chkconfig, maar in geen enkel runlevel staat een verwijzing naar deze service (voer 'chkconfig --add %s' uit)\n"
-
-#: ../chkconfig.c:55
-#, c-format
-msgid "service %s does not support chkconfig\n"
-msgstr "service %s ondersteunt chkconfig niet\n"
-
-#: ../chkconfig.c:57
-#, c-format
-msgid "error reading information on service %s: %s\n"
-msgstr "fout bij lezen van informatie over service %s: %s\n"
-
-#: ../chkconfig.c:66
-#, c-format
-msgid "You do not have enough privileges to perform this operation.\n"
-msgstr "U hebt niet genoeg rechten om deze actie te laten uitvoeren.\n"
-
-#: ../chkconfig.c:351 ../chkconfig.c:356 ../chkconfig.c:470
-msgid "on"
-msgstr "on"
-
-#: ../chkconfig.c:351 ../chkconfig.c:356 ../chkconfig.c:470
-msgid "off"
-msgstr "off"
-
-#: ../chkconfig.c:432
-#, c-format
-msgid "xinetd based services:\n"
-msgstr "services gebaseerd op xinetd:\n"
-
-#: ../chkconfig.c:434
-#, c-format
-msgid "failed to open directory %s: %s\n"
-msgstr "openen van map %s mislukt: %s\n"
-
-#: ../chkconfig.c:578
-#, c-format
-msgid "%s version %s\n"
-msgstr "%s versie %s\n"
-
-#: ../chkconfig.c:590
-#, c-format
-msgid "--type must be 'sysv' or 'xinetd'\n"
-msgstr "--type dient te zijn 'sysv' of 'xinetd'\n"
-
-#: ../chkconfig.c:598
-#, c-format
-msgid "only one of --list, --add, --del, or --override may be specified\n"
-msgstr "slechts één van --list, --add, --del of --override mag worden opgegeven\n"
-
-#: ../chkconfig.c:658
-#, c-format
-msgid "only one runlevel may be specified for a chkconfig query\n"
-msgstr "slechts één runlevel mag worden opgegeven voor een chkconfig zoekopdracht\n"
-
-#: ../ntsysv.c:46
-msgid "Press <F1> for more information on a service."
-msgstr "Druk op <F1> voor meer informatie over een service."
-
-#: ../ntsysv.c:83 ../ntsysv.c:120
-msgid "Ok"
-msgstr "Ok"
-
-#: ../ntsysv.c:83
-msgid "Back"
-msgstr "Terug"
-
-#: ../ntsysv.c:83
-msgid "Cancel"
-msgstr "Annuleren"
-
-#: ../ntsysv.c:95
-msgid "What services should be automatically started?"
-msgstr "Welke services moeten automatisch worden gestart?"
-
-#: ../ntsysv.c:101
-msgid "Services"
-msgstr "Services"
-
-#: ../ntsysv.c:183 ../ntsysv.c:210 ../ntsysv.c:248
-#, c-format
-msgid "error reading info for service %s: %s\n"
-msgstr "fout bij lezen van informatie over service %s: %s\n"
-
-#: ../ntsysv.c:257
-#, c-format
-msgid "error reading from directory %s: %s\n"
-msgstr "fout bij lezen uit map %s: %s\n"
-
-#: ../ntsysv.c:293
-#, c-format
-msgid "You must be root to run %s.\n"
-msgstr "U moet root zijn om %s uit te kunnen voeren.\n"
-
-#: ../ntsysv.c:310
-#, c-format
-msgid "bad argument to --levels\n"
-msgstr "verkeerd argument voor --levels\n"
-
-#: ../ntsysv.c:317
-#, c-format
-msgid "No services may be managed by ntsysv!\n"
-msgstr "Er mogen geen services worden beheerd door ntsysv!\n"
-
-#: ../leveldb.c:260
-#, c-format
-msgid "failed to open %s/init.d: %s\n"
-msgstr "openen van %s/init.d mislukt: %s\n"
-
-#: ../leveldb.c:668
-#, c-format
-msgid "failed to glob pattern %s: %s\n"
-msgstr "globben van patroon %s mislukt: %s\n"
-
-#: ../leveldb.c:711
-#, c-format
-msgid "cannot determine current run level\n"
-msgstr "kan het huidige runlevel niet bepalen\n"
-
-#: ../leveldb.c:799
-#, c-format
-msgid "failed to make symlink %s: %s\n"
-msgstr "maken van symbolische link %s mislukt: %s\n"
-
-#: ../alternatives.c:63
-#, c-format
-msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
-msgstr "alternatives versie %s - Copyright © 2001 Red Hat, Inc.\n"
-
-#: ../alternatives.c:64
-#, c-format
-msgid ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-"\n"
-msgstr ""
-"Dit mag vrijelijk worden verspreid onder de voorwaarden van de GNU Public "
-"License.\n"
-"\n"
-
-#: ../alternatives.c:65
-#, c-format
-msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
-msgstr "gebruik: alternatives --install <link> <naam> <pad> <prioriteit>\n"
-
-#: ../alternatives.c:66
-#, c-format
-msgid "                    [--initscript <service>]\n"
-msgstr "                    [--initscript <service>]\n"
-
-#: ../alternatives.c:67
-#, c-format
-msgid "                    [--slave <link> <name> <path>]*\n"
-msgstr "                    [--slave <link> <naam> <pad>]*\n"
-
-#: ../alternatives.c:68
-#, c-format
-msgid "       alternatives --remove <name> <path>\n"
-msgstr "       alternatives --remove <naam> <pad>\n"
-
-#: ../alternatives.c:69
-#, c-format
-msgid "       alternatives --auto <name>\n"
-msgstr "       alternatives --auto <naam>\n"
-
-#: ../alternatives.c:70
-#, c-format
-msgid "       alternatives --config <name>\n"
-msgstr "       alternatives --config <naam>\n"
-
-#: ../alternatives.c:71
-#, c-format
-msgid "       alternatives --display <name>\n"
-msgstr "       alternatives --display <naam>\n"
-
-#: ../alternatives.c:72
-#, c-format
-msgid "       alternatives --set <name> <path>\n"
-msgstr "       alternatives --set <naam> <pad>\n"
-
-#: ../alternatives.c:73
-#, c-format
-msgid "\n"
-msgstr "\n"
-
-#: ../alternatives.c:74
-#, c-format
-msgid "common options: --verbose --test --help --usage --version\n"
-msgstr "gebruikelijke opties: --verbose --test --help --usage --version\n"
-
-#: ../alternatives.c:75
-#, c-format
-msgid "                --altdir <directory> --admindir <directory>\n"
-msgstr "                --altdir <map> --admindir <map>\n"
-
-#: ../alternatives.c:172
-#, c-format
-msgid "reading %s\n"
-msgstr "lezen van %s\n"
-
-#: ../alternatives.c:176
-#, c-format
-msgid "failed to open %s: %s\n"
-msgstr "openen van %s mislukt: %s\n"
-
-#: ../alternatives.c:185
-#, c-format
-msgid "failed to read %s: %s\n"
-msgstr "lezen van %s mislukt: %s\n"
-
-#: ../alternatives.c:194
-#, c-format
-msgid "%s empty!\n"
-msgstr "%s is leeg!\n"
-
-#: ../alternatives.c:203
-#, c-format
-msgid "bad mode on line 1 of %s\n"
-msgstr "verkeerde modus op regel 1 van %s\n"
-
-#: ../alternatives.c:210
-#, c-format
-msgid "bad primary link in %s\n"
-msgstr "verkeerde primaire link in %s\n"
-
-#: ../alternatives.c:222
-#, c-format
-msgid "path %s unexpected in %s\n"
-msgstr "pad %s niet verwacht in %s\n"
-
-#: ../alternatives.c:231
-#, c-format
-msgid "missing path for slave %s in %s\n"
-msgstr "ontbrekend pad voor slaaf %s in %s\n"
-
-#: ../alternatives.c:241
-#, c-format
-msgid "unexpected end of file in %s\n"
-msgstr "onverwacht einde van bestand in %s\n"
-
-#: ../alternatives.c:250
-#, c-format
-msgid "path to alternate expected in %s\n"
-msgstr "pad voor alternatief verwacht in %s\n"
-
-#: ../alternatives.c:270
-#, c-format
-msgid "numeric priority expected in %s\n"
-msgstr "numerieke prioriteit verwacht in %s\n"
-
-#: ../alternatives.c:292
-#, c-format
-msgid "slave path expected in %s\n"
-msgstr "pad voor slaaf verwacht in %s\n"
-
-#: ../alternatives.c:311
-#, c-format
-msgid "unexpected line in %s: %s\n"
-msgstr "onverwachte regel in %s: %s\n"
-
-#: ../alternatives.c:319
-#, c-format
-msgid "failed to read link %s: %s\n"
-msgstr "lezen van link %s mislukt: %s\n"
-
-#: ../alternatives.c:333
-#, c-format
-msgid "link points to no alternative -- setting mode to manual\n"
-msgstr "link verwijst niet naar alternatief -- modus wordt op handmatig gezet\n"
-
-#: ../alternatives.c:338
-#, c-format
-msgid "link changed -- setting mode to manual\n"
-msgstr "link veranderd -- modus wordt op handmatig gezet\n"
-
-#: ../alternatives.c:366 ../alternatives.c:373
-#, c-format
-msgid "would remove %s\n"
-msgstr "zou %s verwijderen\n"
-
-#: ../alternatives.c:368 ../alternatives.c:375 ../alternatives.c:406
-#, c-format
-msgid "failed to remove link %s: %s\n"
-msgstr "verwijderen van link %s mislukt: %s\n"
-
-#: ../alternatives.c:391 ../alternatives.c:403
-#, c-format
-msgid "would link %s -> %s\n"
-msgstr "zou %s linken -> %s\n"
-
-#: ../alternatives.c:395 ../alternatives.c:412
-#, c-format
-msgid "failed to link %s -> %s: %s\n"
-msgstr "aanmaken van link %s -> %s mislukt: %s\n"
-
-#: ../alternatives.c:444
-#, c-format
-msgid "%s already exists\n"
-msgstr "%s bestaat reeds\n"
-
-#: ../alternatives.c:446
-#, c-format
-msgid "failed to create %s: %s\n"
-msgstr "aanmaken van %s mislukt: %s\n"
-
-#: ../alternatives.c:477
-#, c-format
-msgid "failed to replace %s with %s: %s\n"
-msgstr "vervangen van %s door %s mislukt: %s\n"
-
-#: ../alternatives.c:503 ../alternatives.c:512
-#, c-format
-msgid "running %s\n"
-msgstr "uitvoeren van %s\n"
-
-#: ../alternatives.c:539
-#, c-format
-msgid "the primary link for %s must be %s\n"
-msgstr "de primaire link voor %s moet zijn %s\n"
-
-#: ../alternatives.c:619
-#, c-format
-msgid "link %s incorrect for slave %s (%s %s)\n"
-msgstr "link %s is incorrect voor slaaf %s (%s %s)\n"
-
-#: ../alternatives.c:660
-#, c-format
-msgid "%s - status is auto.\n"
-msgstr "%s - status is auto.\n"
-
-#: ../alternatives.c:662
-#, c-format
-msgid "%s - status is manual.\n"
-msgstr "%s - status is handmatig.\n"
-
-#: ../alternatives.c:664
-#, c-format
-msgid " link currently points to %s\n"
-msgstr " link wijst momenteel naar %s\n"
-
-#: ../alternatives.c:667
-#, c-format
-msgid "%s - priority %d\n"
-msgstr "%s - prioriteit %d\n"
-
-#: ../alternatives.c:670
-#, c-format
-msgid " slave %s: %s\n"
-msgstr " slaaf %s: %s\n"
-
-#: ../alternatives.c:675
-#, c-format
-msgid "Current `best' version is %s.\n"
-msgstr "Huidige 'beste' versie is %s.\n"
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There is %d program that provides '%s'.\n"
-msgstr "Er is %d programma die '%s' levert.\n"
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There are %d programs which provide '%s'.\n"
-msgstr "Er zijn %d programma's die '%s' leveren.\n"
-
-#: ../alternatives.c:707
-#, c-format
-msgid "  Selection    Command\n"
-msgstr "  Selectie    Opdracht\n"
-
-#: ../alternatives.c:716
-#, c-format
-msgid "Enter to keep the current selection[+], or type selection number: "
-msgstr "<enter> om de huidige selectie te bewaren[+], of type een selectienummer: "
-
-#: ../alternatives.c:719
-#, c-format
-msgid ""
-"\n"
-"error reading choice\n"
-msgstr ""
-"\n"
-"fout bij lezen keuze\n"
-
-#: ../alternatives.c:746 ../alternatives.c:772
-#, c-format
-msgid "%s has not been configured as an alternative for %s\n"
-msgstr "%s is niet geconfigureerd als alternatief voor %s\n"
-
-#: ../alternatives.c:788
-#, c-format
-msgid "(would remove %s\n"
-msgstr "(zou %s verwijderen\n"
-
-#: ../alternatives.c:790
-#, c-format
-msgid "failed to remove %s: %s\n"
-msgstr "verwijderen van %s mislukt: %s\n"
-
-#: ../alternatives.c:912
-#, c-format
-msgid "altdir %s invalid\n"
-msgstr "altdir %s is ongeldig\n"
-
-#: ../alternatives.c:918
-#, c-format
-msgid "admindir %s invalid\n"
-msgstr "admindir %s is ongeldig\n"
-
-#: ../alternatives.c:928
-#, c-format
-msgid "alternatives version %s\n"
-msgstr "alternatives versie %s\n"
-
--- chkconfig-1.3.46/po/nn.po
+++ chkconfig-1.3.46/po/nn.po
(renamed to chkconfig-1.3.48/po/nn.po)
--- chkconfig-1.3.46/po/or.po
+++ chkconfig-1.3.46/po/or.po
(renamed to chkconfig-1.3.48/po/or.po)
--- chkconfig-1.3.46/po/pa.po
+++ chkconfig-1.3.46/po/pa.po
(renamed to chkconfig-1.3.48/po/pa.po)
--- chkconfig-1.3.46/po/pl.po
+++ chkconfig-1.3.46/po/pl.po
(renamed to chkconfig-1.3.48/po/pl.po)
--- chkconfig-1.3.46/po/pt.po
+++ chkconfig-1.3.46/po/pt.po
(renamed to chkconfig-1.3.48/po/pt.po)
--- chkconfig-1.3.46/po/pt_BR.po
+++ chkconfig-1.3.46/po/pt_BR.po
(renamed to chkconfig-1.3.48/po/pt_BR.po)
--- chkconfig-1.3.46/po/ro.po
+++ chkconfig-1.3.46/po/ro.po
(renamed to chkconfig-1.3.48/po/ro.po)
--- chkconfig-1.3.46/po/ru.po
+++ chkconfig-1.3.46/po/ru.po
(renamed to chkconfig-1.3.48/po/ru.po)
--- chkconfig-1.3.46/po/si.po
+++ chkconfig-1.3.46/po/si.po
(renamed to chkconfig-1.3.48/po/si.po)
--- chkconfig-1.3.46/po/sk.po
+++ chkconfig-1.3.46/po/sk.po
(renamed to chkconfig-1.3.48/po/sk.po)
--- chkconfig-1.3.46/po/sl.po
+++ chkconfig-1.3.46/po/sl.po
(renamed to chkconfig-1.3.48/po/sl.po)
--- chkconfig-1.3.46/po/sq.po
+++ chkconfig-1.3.46/po/sq.po
(renamed to chkconfig-1.3.48/po/sq.po)
--- chkconfig-1.3.46/po/sr.po
+++ chkconfig-1.3.46/po/sr.po
(renamed to chkconfig-1.3.48/po/sr.po)
--- chkconfig-1.3.46/po/sr at latin.po
+++ chkconfig-1.3.46/po/sr at latin.po
(renamed to chkconfig-1.3.48/po/sr at latin.po)
--- chkconfig-1.3.46/po/sv.po
+++ chkconfig-1.3.46/po/sv.po
(renamed to chkconfig-1.3.48/po/sv.po)
--- chkconfig-1.3.46/po/ta.po
+++ chkconfig-1.3.46/po/ta.po
(renamed to chkconfig-1.3.48/po/ta.po)
--- chkconfig-1.3.46/po/te.po
+++ chkconfig-1.3.46/po/te.po
(renamed to chkconfig-1.3.48/po/te.po)
--- chkconfig-1.3.46/po/tg.po
+++ chkconfig-1.3.46/po/tg.po
(renamed to chkconfig-1.3.48/po/tg.po)
--- chkconfig-1.3.46/po/tr.po
+++ chkconfig-1.3.46/po/tr.po
(renamed to chkconfig-1.3.48/po/tr.po)
--- chkconfig-1.3.46/po/uk.po
+++ chkconfig-1.3.46/po/uk.po
(renamed to chkconfig-1.3.48/po/uk.po)
--- chkconfig-1.3.46/po/ur.po
+++ chkconfig-1.3.46/po/ur.po
(renamed to chkconfig-1.3.48/po/ur.po)
--- chkconfig-1.3.46/po/vi.po
+++ chkconfig-1.3.46/po/vi.po
(renamed to chkconfig-1.3.48/po/vi.po)
--- chkconfig-1.3.46/po/zh_CN.po
+++ chkconfig-1.3.46/po/zh_CN.po
(renamed to chkconfig-1.3.48/po/zh_CN.po)
--- chkconfig-1.3.46/po/zh_TW.po
+++ chkconfig-1.3.46/po/zh_TW.po
(renamed to chkconfig-1.3.48/po/zh_TW.po)
--- chkconfig-1.3.48
+++ chkconfig-1.3.48
+(directory)
--- chkconfig-1.3.48/COPYING
+++ chkconfig-1.3.48/COPYING
(renamed from chkconfig-1.3.46/COPYING)
--- chkconfig-1.3.48/Makefile
+++ chkconfig-1.3.48/Makefile
(renamed from chkconfig-1.3.46/Makefile)
--- chkconfig-1.3.48/alternatives.8
+++ chkconfig-1.3.48/alternatives.8
(renamed from chkconfig-1.3.46/alternatives.8)
--- chkconfig-1.3.48/alternatives.c
+++ chkconfig-1.3.48/alternatives.c
(renamed from chkconfig-1.3.46/alternatives.c)
--- chkconfig-1.3.48/chkconfig.8
+++ chkconfig-1.3.48/chkconfig.8
(renamed from chkconfig-1.3.46/chkconfig.8)
--- chkconfig-1.3.48/chkconfig.c
+++ chkconfig-1.3.48/chkconfig.c
+/* Copyright 1997-2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+#include <ctype.h>
+#include <dirent.h>
+#include <errno.h>
+#include <glob.h>
+#include <libintl.h> 
+#include <locale.h> 
+#include <popt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+static char *progname;
+
+#define _(String) gettext((String)) 
+
+#include "leveldb.h"
+
+static int LSB = 0;
+
+static void usage(void) {
+    fprintf(stderr, _("%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"), progname, VERSION);
+    fprintf(stderr, _("This may be freely redistributed under the terms of "
+			"the GNU Public License.\n"));
+    fprintf(stderr, "\n");
+    fprintf(stderr, _("usage:   %s [--list] [--type <type>] [name]\n"), progname);
+    fprintf(stderr, _("         %s --add <name>\n"), progname);
+    fprintf(stderr, _("         %s --del <name>\n"), progname);
+    fprintf(stderr, _("         %s --override <name>\n"), progname);
+    fprintf(stderr, _("         %s [--level <levels>] [--type <type>] <name> %s\n"), progname, "<on|off|reset|resetpriorities>");
+
+    exit(1);
+}
+
+static void readServiceError(int rc, char * name) {
+    if (rc == 2) {
+	fprintf(stderr, _("service %s supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add %s')\n"), name, name);
+    } else if (rc == 1) {
+	fprintf(stderr, _("service %s does not support chkconfig\n"), name);
+    } else {
+	fprintf(stderr, _("error reading information on service %s: %s\n"),
+		name, strerror(errno));
+    }
+
+    exit(1);
+}
+
+static void checkRoot() {
+	if (access(RUNLEVELS "/rc3.d", R_OK | W_OK) != 0) {
+		fprintf(stderr, _("You do not have enough privileges to perform this operation.\n"));
+		exit(1);
+	}
+}
+
+static int delService(char *name, int type, int level) {
+    int i, j, k, numservs, rc;
+    glob_t globres;
+    struct service s;
+    struct service *services;
+
+    if ((rc = readServiceInfo(name, type, &s, 0))) {
+	readServiceError(rc, name);
+	return 1;
+    }
+    if (s.type == TYPE_XINETD) return 0;
+
+    checkRoot();
+
+    if (LSB && level == -1) {
+	numservs = readServices(&services);
+
+	for (i = 0; i < numservs ; i++) {
+		if (services[i].startDeps) {
+			for (j = 0; services[i].startDeps[j].name ; j++) {
+				if (!strcmp(services[i].startDeps[j].name, s.name)) {
+				        for (k = 0 ; k <= 6; k++) {
+				            if (isOn(services[i].name, k))
+				                return 1;
+                                        }
+				}
+			}
+		}
+		if (services[i].stopDeps) {
+			for (j = 0; services[i].stopDeps[j].name ; j++) {
+				if (!strcmp(services[i].stopDeps[j].name, s.name)) {
+				        for (k = 0 ; k <= 6; k++) {
+				                if (!isOn(services[i].name, k))
+				                    return 1;
+                                        }
+				}
+			}
+		}
+	}
+    }
+
+    for (j = 0 ; j < 7; j++) {
+	 if (level == -1 || level == j) {
+		 if (!findServiceEntries(name, j, &globres)) {
+			 for (i = 0; i < globres.gl_pathc; i++)
+				 unlink(globres.gl_pathv[i]);
+			    if (globres.gl_pathc) globfree(&globres);
+		    }
+	 }
+    }
+    return 0;
+}
+
+static inline int laterThan(int i, int j) {
+	if (i <= j) {
+		i = j+1;
+		if (i > 99)
+			i = 99;
+	}
+	return i;
+}
+
+static inline int earlierThan(int i, int j) {
+	if (i >= j) {
+		i = j -1;
+		if (i < 0)
+			i = 0;
+	}
+	return i;
+}
+
+static int isSimilarlyConfigured(struct service s, struct service t, int start) {
+        int i, state_s, state_t;
+
+        for (i = 0; i <= 6; i ++) {
+                if (isConfigured(s.name, i, NULL, NULL)) {
+                        state_s = isOn(s.name, i);
+                } else {
+                        state_s = ((1<<i) & s.levels) ? 1 : 0;
+                }
+                state_t = isOn(t.name, i);
+                if (state_s == state_t && state_s == start)
+                        return 1;
+        }
+        return 0;
+}
+
+static void checkDeps(struct service *s, struct dep *deps, struct service *serv, int start) {
+        int j,k;
+
+        for (j = 0; deps[j].name ; j++) {
+                if (!strcmp(deps[j].name, serv->name) && isSimilarlyConfigured(*s, *serv, start)) {
+                        if (start)
+                                s->sPriority = laterThan(s->sPriority, serv->sPriority);
+                        else
+                                s->kPriority = earlierThan(s->kPriority, serv->kPriority);
+                        deps[j].handled = 1;
+                }
+                if (serv->provides) {
+                        for (k = 0; serv->provides[k]; k++) {
+                                if (!strcmp(deps[j].name, serv->provides[k]) && isSimilarlyConfigured(*s, *serv, start)) {
+                                        if (start)
+                                                s->sPriority = laterThan(s->sPriority, serv->sPriority);
+                                        else
+                                                s->kPriority = earlierThan(s->kPriority, serv->kPriority);
+                                        deps[j].handled = 1;
+                                }
+                        }
+                }
+        }
+}
+
+static int frobOneDependencies(struct service *s, struct service *servs, int numservs, int target, int depfail) {
+	int i;
+	int s0 = s->sPriority;
+	int k0 = s->kPriority;
+
+	if (s->sPriority < 0) s->sPriority = 50;
+	if (s->kPriority < 0) s->kPriority = 50;
+	for (i = 0; i < numservs ; i++) {
+		if (s->startDeps) {
+			checkDeps(s, s->startDeps, &servs[i], 1);
+		}
+		if (s->softStartDeps) {
+		        checkDeps(s, s->softStartDeps, &servs[i], 1);
+		}
+		if (s->stopDeps) {
+		        checkDeps(s, s->stopDeps, &servs[i], 0);
+		}
+		if (s->softStopDeps) {
+		        checkDeps(s, s->softStopDeps, &servs[i], 0);
+		}
+	}
+	if (depfail) {
+		if (s->startDeps) {
+			for (i = 0; s->startDeps[i].name; i++) {
+				if (!s->startDeps[i].handled && strcmp(s->startDeps[i].name,"$local_fs"))
+					return -1;
+			}
+		}
+		if (s->stopDeps) {
+			for (i = 0; s->stopDeps[i].name; i++) {
+				if (!s->stopDeps[i].handled && strcmp(s->stopDeps[i].name,"$local_fs"))
+					return -1;
+			}
+		}
+	}
+
+	if (target || ((s0 != s->sPriority) || (k0 != s->kPriority))) {
+		for (i = 0; i < 7; i++) {
+			if (isConfigured(s->name, i, NULL, NULL)) {
+				int on = isOn(s->name, i);
+				delService(s->name, TYPE_INIT_D, i);
+				doSetService(*s, i, on);
+			} else if (target) {
+				delService(s->name, TYPE_INIT_D, i);
+				doSetService(*s, i, ((1<<i) & s->levels));
+			}
+		}
+		return 1; /* Resolved something */
+	}
+	return 0; /* Didn't resolve anything */
+}
+
+/* LSB-style dependency frobber. Calculates a usable start priority
+ * and stop priority.
+ * This algorithm will almost certainly break horribly at some point. */
+static int frobDependencies(struct service *s) {
+	struct service *servs = NULL;
+	int numservs = 0;
+	int nResolved = 0;
+
+	numservs = readServices(&servs);
+	/* Resolve recursively the other dependancies */
+	do {
+	  	nResolved = 0;
+		int i;
+		
+		for (i = 0; i < numservs ; i++) {
+			if ((servs+i)->isLSB && strcmp((servs+i)->name, s->name))
+				nResolved += frobOneDependencies(servs+i, servs, numservs, 0, 0);
+		}
+	} while (nResolved);
+
+	/* Resolve our target */
+	if (frobOneDependencies(s, servs, numservs, 1, LSB) == -1)
+		return 1;
+	return 0;
+}
+
+static int addService(char * name, int type) {
+    int i, rc;
+    struct service s;
+
+    if ((rc = readServiceInfo(name, type, &s, 0))) {
+	readServiceError(rc, name);
+	return 1;
+    }
+	
+    if (s.type == TYPE_XINETD) return 0;
+    checkRoot();
+
+    if (s.isLSB)
+		rc = frobDependencies(&s);
+    else
+    for (i = 0; i < 7; i++) {
+	if (!isConfigured(name, i, NULL, NULL)) {
+	    if ((1 << i) & s.levels)
+		doSetService(s, i, 1);
+	    else
+		doSetService(s, i, 0);
+	}
+    }
+
+    return rc;
+}
+
+static int overrideService(char * name, int srvtype) {
+    /* Apply overrides if available; no available overrides is no error */
+    int level, i, rc;
+    glob_t globres;
+    struct service s;
+    struct service o;
+    int priority;
+    char type;
+    int doChange = 1;
+    int configured = 0;
+    int thisLevelAdded, thisLevelOn;
+
+    if ((rc = readServiceDifferences(name, srvtype, &s, &o, 0))) {
+	return 0;
+    }
+	
+    if (s.type == TYPE_XINETD) return 0;
+
+    checkRoot();
+
+    if ((s.levels == o.levels) &&
+        (s.kPriority == o.kPriority) &&
+        (s.sPriority == o.sPriority)) {
+        /* no relevant changes in the override file */
+	return 0;
+    }
+
+    if (s.isLSB && (s.sPriority <= -1) && (s.kPriority <= -1))
+		frobDependencies(&s);
+    if ((s.isLSB || o.isLSB) && (o.sPriority <= -1) && (o.kPriority <= -1))
+		frobDependencies(&o);
+
+    /* Apply overrides only if the service has not been changed since
+     * being added, and not if the service has never been configured
+     * at all.
+     */
+    
+    for (level = 0; level < 7; level++) {
+	thisLevelAdded = isConfigured(name, level, &priority, &type);
+        thisLevelOn = s.levels & 1<<level;
+        if (thisLevelAdded) {
+            configured = 1;
+            if (type == 'S') {
+                if (priority != s.sPriority || !thisLevelOn) {
+                    doChange = 0;
+                    break;
+                }
+            } else if (type == 'K') {
+                if (priority != s.kPriority || thisLevelOn) {
+                    doChange = 0;
+                    break;
+                }
+            }
+	}
+    }
+
+    if (configured && doChange) {
+        for (level = 0; level < 7; level++) {
+            if (!findServiceEntries(name, level, &globres)) {
+                for (i = 0; i < globres.gl_pathc; i++)
+                    unlink(globres.gl_pathv[i]);
+                if (globres.gl_pathc)
+                    globfree(&globres);
+                if ((1 << level) & o.levels)
+                    doSetService(o, level, 1);
+                else
+                    doSetService(o, level, 0);
+            }
+        }
+    }
+
+    return 0;
+}
+
+static int showServiceInfo(struct service s, int forgiving) {
+    int rc;
+    int i;
+
+    if (s.type == TYPE_INIT_D) {
+	    rc = 2;
+	    for (i = 0 ; i < 7 ; i++) {
+		    if (isConfigured(s.name, i, NULL, NULL)) {
+			    rc = 0;
+			    break;
+		    }
+	    }
+    }
+
+    if (rc) {
+	if (!forgiving)
+	    readServiceError(rc, s.name);
+	return forgiving ? 0 : 1;
+    }
+
+    printf("%-15s", s.name);
+    if (s.type == TYPE_XINETD) {
+	    printf("\t%s\n", s.levels ? _("on") : _("off"));
+	    return 0;
+    }
+
+    for (i = 0; i < 7; i++) {
+	printf("\t%d:%s", i, isOn(s.name, i) ? _("on") : _("off"));
+    }
+    printf("\n");
+
+    return 0;
+}
+
+static int showServiceInfoByName(char * name, int type, int forgiving) {
+    int rc;
+    struct service s;
+
+    rc = readServiceInfo(name, type, &s, 0);
+
+    if (rc) {
+	if (!forgiving)
+	    readServiceError(rc, name);
+	return forgiving ? 0 : 1;
+    }
+
+    return showServiceInfo(s, forgiving);
+}
+
+
+static int isXinetdEnabled() {
+	int i;
+	struct service s;
+	
+	if (readServiceInfo("xinetd", TYPE_INIT_D, &s, 0)) {
+		return 0;
+	}
+	for (i = 0; i < 7; i++) {
+		if (isOn("xinetd", i))
+		  return 1;
+	}
+	return 0;
+}
+
+static int serviceNameCmp(const void * a, const void * b) {
+  return strcmp(* (char **)a, * (char **)b);
+}
+
+static int xinetdNameCmp(const void * a, const void * b) {
+    const struct service * first = a;
+    const struct service * second = b;
+
+    return strcmp(first->name, second->name);
+}
+
+
+static int listService(char * item, int type) {
+    DIR * dir;
+    struct dirent * ent;
+    struct service *services;
+    int i;
+    int numServices = 0;
+    int numServicesAlloced;
+    int err = 0;
+
+    if (item) return showServiceInfoByName(item, type, 0);
+
+    if (type & TYPE_INIT_D) {
+        numServices = readServices(&services);
+    
+        qsort(services, numServices, sizeof(*services), serviceNameCmp);
+	
+        for (i = 0; i < numServices ; i++) {
+	    if (showServiceInfo(services[i], 1)) {
+		    return 1;
+	    }
+        }
+    }
+		    
+    if (isXinetdEnabled() && type & TYPE_XINETD) {
+	    struct service *s, *t;
+	  
+	    printf("\n");
+	    printf(_("xinetd based services:\n"));
+	    if (!(dir = opendir(XINETDDIR))) {
+		    fprintf(stderr, _("failed to open directory %s: %s\n"),
+			    XINETDDIR, strerror(err));
+		    return 1;
+	    }
+	    numServices = 0;
+	    numServicesAlloced = 10;
+	    s = malloc(sizeof (*s) * numServicesAlloced);
+	    
+	    while ((ent = readdir(dir))) {
+		    const char *dn;
+
+		    /* Skip any file starting with a . */
+		    if (ent->d_name[0] == '.')	continue;
+
+		    /* Skip files with known bad extensions */
+		    if ((dn = strrchr(ent->d_name, '.')) != NULL &&
+			(!strcmp(dn, ".rpmsave") || !strcmp(dn, ".rpmnew") || !strcmp(dn, ".rpmorig") || !strcmp(dn, ".swp")))
+		      continue;
+
+		    dn = ent->d_name + strlen(ent->d_name) - 1;
+		    if (*dn == '~' || *dn == ',')
+		      continue;
+	    
+		    if (numServices == numServicesAlloced) {
+			    numServicesAlloced += 10;
+			    s = realloc(s, numServicesAlloced * sizeof (*s));
+		    }
+		    if (readXinetdServiceInfo(ent->d_name, s + numServices) != -1)
+			    numServices ++;
+	    }
+	    
+	    qsort(s, numServices, sizeof(*s), xinetdNameCmp);
+	    t = s;
+	    for (i = 0; i < numServices; i++, s++) {
+		    char *tmp = malloc(strlen(s->name) + 5);
+		    sprintf(tmp,"%s:",s->name);
+		    printf("\t%-15s\t%s\n", tmp,  s->levels ? _("on") : _("off"));
+	    }
+	    closedir(dir);
+	    free(t);
+    }
+    return 0;
+}
+
+int setService(char * name, int type, int where, int state) {
+    int i, rc;
+    int what;
+    struct service s;
+    
+    if (!where && state != -1) {
+	/* levels 2, 3, 4, 5 */
+	where = (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5);
+    } else if (!where) {
+	where = (1 << 0) | (1 << 1) | (1 << 2) |
+	        (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6);
+    }
+
+    if ((rc = readServiceInfo(name, type, &s, 0))) {
+	readServiceError(rc, name);
+	return 1;
+    }
+
+    checkRoot();
+
+    if (s.type == TYPE_INIT_D) {
+	    int rc = 0;
+	    
+	    if (s.isLSB)
+		    frobDependencies(&s);
+	    for (i = 0; i < 7; i++) {
+		    
+		    if (!((1 << i) & where)) continue;
+
+		    if (state == 1 || state == 0)
+		      what = state;
+		    else if (state == -2)
+		      what = isOn(name, i);
+		    else if (s.levels & (1 << i))
+		      what = 1;
+		    else
+		      what = 0;
+		    rc |= doSetService(s, i, what);
+	    }
+	    return rc;
+    } else if (s.type == TYPE_XINETD) {
+	    if (setXinetdService(s, state)) {
+		    return 1;
+	    }
+	    system("/etc/init.d/xinetd reload >/dev/null 2>&1");
+    }
+
+    return 0;
+}
+
+int main(int argc, const char ** argv) {
+    int listItem = 0, addItem = 0, delItem = 0, overrideItem = 0;
+    int type = TYPE_ANY;
+    int rc, i, x;
+    char * levels = NULL;
+    char * typeString = NULL;
+    int help=0, version=0;
+    struct service s;
+    poptContext optCon;
+    struct poptOption optionsTable[] = {
+	    { "add", '\0', 0, &addItem, 0 },
+	    { "del", '\0', 0, &delItem, 0 },
+	    { "override", '\0', 0, &overrideItem, 0 },
+	    { "list", '\0', 0, &listItem, 0 },
+	    { "level", '\0', POPT_ARG_STRING, &levels, 0 },
+	    { "levels", '\0', POPT_ARG_STRING, &levels, 0 },
+	    { "type", '\0', POPT_ARG_STRING, &typeString, 0 },
+	    { "help", 'h', POPT_ARG_NONE, &help, 0 },
+	    { "version", 'v', POPT_ARG_NONE, &version, 0 },
+	    { 0, 0, 0, 0, 0 } 
+    };
+
+    if ((progname = strrchr(argv[0], '/')) != NULL)
+	progname++;
+    else
+	progname = (char *)argv[0];
+    if (!strcmp(progname,"install_initd")) {
+	    addItem++;
+	    LSB++;
+    }
+    if (!strcmp(progname,"remove_initd")) {
+	    delItem++;
+	    LSB++;
+    }
+
+    setlocale(LC_ALL, ""); 
+    bindtextdomain("chkconfig","/usr/share/locale"); 
+    textdomain("chkconfig"); 
+
+    optCon = poptGetContext("chkconfig", argc, argv, optionsTable, 0);
+    poptReadDefaultConfig(optCon, 1);
+
+    if ((rc = poptGetNextOpt(optCon)) < -1) {
+	fprintf(stderr, "%s: %s\n", 
+		poptBadOption(optCon, POPT_BADOPTION_NOALIAS), 
+		poptStrerror(rc));
+	exit(1);
+    }
+
+    if (version) {
+	fprintf(stdout, _("%s version %s\n"), progname, VERSION);
+	exit(0);
+    }
+
+    if (help) usage();
+
+    if (typeString) {
+	if (!strcmp(typeString, "xinetd"))
+	    type = TYPE_XINETD;
+	else if (!strcmp(typeString, "sysv"))
+	    type = TYPE_INIT_D;
+	else {
+	    fprintf(stderr, _("--type must be 'sysv' or 'xinetd'\n"));
+	    exit(1);
+	}
+    }
+
+    if (argc == 1) return listService(NULL, type);
+
+    if ((listItem + addItem + delItem + overrideItem) > 1) {
+	fprintf(stderr, _("only one of --list, --add, --del, or --override"
+                " may be specified\n"));
+	exit(1);
+    }
+
+    if (addItem) {
+	char * name = (char *)poptGetArg(optCon);
+
+	if (!name || !*name || poptGetArg(optCon)) 
+	    usage();
+	
+	name = basename(name);
+	return addService(name, type);
+    } else if (delItem) {
+	char * name = (char *)poptGetArg(optCon);
+
+	if (!name || !*name || poptGetArg(optCon)) usage();
+
+	name = basename(name);
+	return delService(name, type, -1);
+    } else if (overrideItem) {
+	char * name = (char *)poptGetArg(optCon);
+
+	if (!name || !*name || poptGetArg(optCon)) usage();
+
+        name = basename(name);
+	return overrideService(name, type);
+    } else if (listItem) {
+	char * item = (char *)poptGetArg(optCon);
+
+	if (item && poptGetArg(optCon)) usage();
+
+	return listService(item, type);
+    } else {
+	char * name = (char *)poptGetArg(optCon);
+	char * state = (char *)poptGetArg(optCon);
+	int where = 0, level = -1;
+
+	if (!name) {
+		usage();
+	}
+	if (levels) {
+	    where = parseLevels(levels, 0);
+	    if (where == -1) usage();
+	}
+
+	if (!state) {
+	    if (where) {
+		rc = x = 0;
+		i = where;
+		while (i) {
+		    if (i & 1) {
+			rc++;
+			level = x;
+		    }
+		    i >>= 1;
+		    x++;
+		}
+
+		if (rc > 1) {
+		    fprintf(stderr, _("only one runlevel may be specified for "
+			    "a chkconfig query\n"));
+		    exit(1);
+		}
+	    } 
+	    rc = readServiceInfo(name, type, &s, 0);
+	    if (rc)
+	       return 1;
+	    if (s.type == TYPE_XINETD) {
+	       if (isOn("xinetd",level))
+		       return !s.levels;
+	       else
+		       return 1;
+	    } else	
+	       return isOn(name, level) ? 0 : 1;
+	} else if (!strcmp(state, "on"))
+	    return setService(name, type, where, 1);
+	else if (!strcmp(state, "off"))
+	    return setService(name, type, where, 0);
+	else if (!strcmp(state, "reset"))
+	    return setService(name, type, where, -1);
+	else if (!strcmp(state, "resetpriorities"))
+	    return setService(name, type, where, -2);
+	else
+	    usage();
+    }
+
+    usage();
+
+    return 1;
+}
--- chkconfig-1.3.48/chkconfig.spec
+++ chkconfig-1.3.48/chkconfig.spec
+Summary: A system tool for maintaining the /etc/rc*.d hierarchy
+Name: chkconfig
+Version: 1.3.48
+Release: 1%{?dist}
+License: GPLv2
+Group: System Environment/Base
+Source: http://fedorahosted.org/releases/c/h/chkconfig/%{name}-%{version}.tar.bz2
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: newt-devel gettext popt-devel
+Conflicts: initscripts <= 5.30-1
+
+%description
+Chkconfig is a basic system utility.  It updates and queries runlevel
+information for system services.  Chkconfig manipulates the numerous
+symbolic links in /etc/rc.d, to relieve system administrators of some 
+of the drudgery of manually editing the symbolic links.
+
+%package -n ntsysv
+Summary: A tool to set the stop/start of system services in a runlevel
+Group: System Environment/Base
+Requires: chkconfig = %{version}-%{release}
+
+%description -n ntsysv
+Ntsysv provides a simple interface for setting which system services
+are started or stopped in various runlevels (instead of directly
+manipulating the numerous symbolic links in /etc/rc.d). Unless you
+specify a runlevel or runlevels on the command line (see the man
+page), ntsysv configures the current runlevel (5 if you're using X).
+
+%prep
+%setup -q
+
+%build
+
+make RPM_OPT_FLAGS="$RPM_OPT_FLAGS" %{?_smp_mflags}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} SBINDIR=%{_sbindir} install
+
+mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
+ln -s rc.d/init.d $RPM_BUILD_ROOT/etc/init.d
+for n in 0 1 2 3 4 5 6; do
+    mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc${n}.d
+    ln -s rc.d/rc${n}.d $RPM_BUILD_ROOT/etc/rc${n}.d
+done
+mkdir -p $RPM_BUILD_ROOT/etc/chkconfig.d
+
+%find_lang %{name}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files -f %{name}.lang
+%defattr(-,root,root)
+%doc COPYING
+%dir /etc/alternatives
+/sbin/chkconfig
+%{_sbindir}/update-alternatives
+%{_sbindir}/alternatives
+/etc/chkconfig.d
+/etc/init.d
+/etc/rc.d/init.d
+/etc/rc[0-6].d
+/etc/rc.d/rc[0-6].d
+%dir /var/lib/alternatives
+%{_mandir}/*/chkconfig*
+%{_mandir}/*/update-alternatives*
+%{_mandir}/*/alternatives*
+
+%files -n ntsysv
+%defattr(-,root,root)
+%{_sbindir}/ntsysv
+%{_mandir}/*/ntsysv.8*
+
+%changelog
+* Wed Oct 27 2010 Bill Nottingham <notting at redhat.com> 1.3.48-1
+- fix install_initd invocation for services that require $local_fs (#632294)
+
+* Tue Aug 10 2010 Bill Nottingham <notting at redhat.com> 1.3.47-1
+- Fix regression introduced in 1.3.45 (#622799)
+
+* Wed May 05 2010 Bill Nottingham <notting at redhat.com> 1.3.46-1
+- translation updates: hu, kn, ko (#589187)
+
+* Thu Mar 04 2010 Bill Nottingham <notting at redhat.com> 1.3.45-1
+- add support for Should-Start, Should-Stop (#98470, <iarnell at gmail.com>)
+- ntsysv: don't drop initscripts with '.' in the name (#556751)
+- translation updates: el, id
+
+* Tue Sep 29 2009 Bill Nottingham <notting at redhat.com> 1.3.44-1
+- alternatives: update symlinks if they exist on installation (#104940)
+- alternatives: clarify error messages with more context (#441443)
+- alternatives: fix removal of manual links (#525021, <dtardon at redhat.com>)
+- translation updates: ml, mr, pl, ta, uk
+
+* Mon Sep 14 2009 Bill Nottingham <notting at redhat.com> 1.3.43-1
+- ntsysv man page tweak (#516599)
+- another minor LSB tweak (#474223)
+- translation updates
+
+* Fri Mar  6 2009 Bill Nottingham <notting at redhat.com> 1.3.42-1
+- further LSB fixes (#474223)
+- throw errors on various malformed init scripts (#481198)
+- man page updates re: LSB (#487979)
+- translation updates: mai, gu, pt_BR, ro, ca, pa, sr, fr, hu
+
+* Tue Jan 20 2009 Bill Nottingham <notting at redhat.com> 1.3.41-1
+- restore return code & error on unconfigured services (#480805)
+
+* Fri Dec  5 2008 Bill Nottingham <notting at redhat.com> 1.3.40-1
+- fix some overflows. (#176944)
+- add --type parameter to specify either xinetd or sysv services.
+  (#467863, <mschmidt at redhat.com>
+- do a permissions check before add/remove/on/off/resetpriorities. (#450254)
+- parse Short-Description correctly (#441813, <peter_e at gmx.net>)
+
+* Thu Dec  4 2008 Bill Nottingham <notting at redhat.com> 1.3.39-1
+- fail if dependencies fail on add/remove in LSB mode (#474223)
+
+* Wed Oct 29 2008 Bill Nottingham <notting at redhat.com> 1.3.38-1
+- Fix runlevel list in man page (#466739)
+- translation updates
+
+* Thu Nov  8 2007 Bill Nottingham <notting at redhat.com> 1.3.37-1
+- make no options do --list (#290241, #176184)
+- sr at Latn -> sr at latin
+
+* Tue Sep 25 2007 Bill Nottingham <notting at redhat.com> 1.3.36-1
+- buildreq popt-devel, link it dynamically (#279531)
+- translation updates: kn, ko, mr, ro
+
+* Fri Aug  3 2007 Bill Nottingham <notting at redhat.com> 1.3.35-1
+- clarify licensing
+
+* Mon Apr 16 2007 Bill Nottingham <notting at redhat.com> 1.3.34-1
+- translation updates: as, bg, bn_IN, bs, ca, de, fr, hi, hu, id, ja,
+  ka, ml, ms, nb, or, sk, sl
+- add resetpriorities to the man page (#197399)
+  
+* Tue Feb  6 2007 Bill Nottingham <notting at redhat.com> 1.3.33-1
+- various changes from review - support alternate %%{_sbindir}, fix
+  summaries, add version to requires, assorted other bits
+
+* Fri Feb  2 2007 Bill Nottingham <notting at redhat.com> 1.3.32-1
+- support overriding various defaults via /etc/chkconfig.d (<johnsonm at rpath.com>)
+
+* Thu Feb  1 2007 Bill Nottingham <notting at redhat.com> 1.3.31-1
+- fix man page (#220558, <esr at thyrus.com>)
+- add some more verbiage in alternatives man page (#221089)
+- don't print usage message on a nonexstent service (#226804)
+
+* Fri Dec  1 2006 Bill Nottingham <notting at redhat.com> 1.3.30.1-1
+- translation updates: as, ka, lv, ml, te (#216617)
+
+* Thu Sep  7 2006 Bill Nottingham <notting at redhat.com> 1.3.30-1
+- license cleanup
+
+* Fri Feb 24 2006 Bill Nottingham <notting at redhat.com> 1.3.29-1
+- fix accidental enabling of services on --add (#182729)
+
+* Mon Feb 13 2006 Bill Nottingham <notting at redhat.com> 1.3.27-1
+- translation updates
+
+* Thu Feb  2 2006 Bill Nottingham <notting at redhat.com> 1.3.26-1
+- add support for resetting priorities without on/off status (#178864)
+
+* Wed Nov 30 2005 Bill Nottingham <notting at redhat.com> 1.3.25-1
+- return an error if changing services fails (#150235)
+
+* Fri Nov 18 2005 Bill Nottingham <notting at redhat.com> 1.3.24-1
+- when removing alternatives links, check to make sure they're
+  actually links (#173685)
+
+* Fri Nov 11 2005 Bill Nottingham <notting at redhat.com> 1.3.23-1
+- fix ntsysv (#172996)
+
+* Wed Nov  9 2005 Bill Nottingham <notting at redhat.com>
+- fix doSetService call in frobOneDependencies
+
+* Tue Nov  8 2005 Bill Nottingham <notting at redhat.com>
+- for LSB scripts, use any chkconfig: priorities as a basis,
+  instead of 50/50 (#172599)
+- fix LSB script dependency setting when no chkconfig: line
+  is present (#161870, <jean-francois.larvoire at hp.com>)
+- fix LSB script dependency setting when one of Required-Stop
+  or Required-Start: is missing (#168457)
+
+* Fri Oct  7 2005 Bill Nottingham <notting at redhat.com>
+- fix segfault on directories in /etc/xinetd.d (#166385)
+- don't needlessly rewrite xinetd files (#81008)
+
+* Thu May  5 2005 Bill Nottingham <notting at redhat.com> 1.3.20-1
+- fix deletion of orphaned slave links (#131496, <mitr at redhat.com>)
+
+* Fri Apr 29 2005 Bill Nottingham <notting at redhat.com> 1.3.19-1
+- build with updated translations
+
+* Thu Mar  3 2005 Bill Nottingham <notting at redhat.com> 1.3.18-1
+- actually return an error code if changing a service info fails
+
+* Tue Feb 22 2005 Bill Nottingham <notting at redhat.com> 1.3.17-1
+- more chkconfig: vs. LSB fixes (#149066)
+
+* Thu Feb 10 2005 Bill Nottingham <notting at redhat.com> 1.3.16-1
+- prefer chkconfig: start/stop priorities in LSB mode unless
+  Required-Start/Stop are used
+
+* Mon Feb  7 2005 Bill Nottingham <notting at redhat.com> 1.3.15-1
+- print usage when various invalid args are passed (#147393)
+
+* Wed Feb  2 2005 Bill Nottingham <notting at redhat.com> 1.3.14-1
+- resize reasonably with larger screens (#74156)
+- don't error out completely on bad symlink (#74324)
+- use ngettext (#106176)
+- error out on invalid start/stop values (#109858)
+- some man page updates
+- fix return code of chkconfig for xinetd services (#63123)
+- sort chkconfig --list display (#61576, <shishz at alum.rpi.edu>)
+
+* Tue Jan 11 2005 Bill Nottingham <notting at redhat.com> 1.3.13-1
+- fix LSB comment parsing some more (#144739)
+
+* Thu Oct 28 2004 Bill Nottingham <notting at redhat.com> 1.3.11.2-1
+- fix manpage reference (#137492)
+
+* Fri Oct  1 2004 Bill Nottingham <notting at redhat.com> 1.3.11.1-1
+- rebuild with updated translations
+
+* Fri Jun  4 2004 Bill Nottingham <notting at redhat.com> 1.3.11-1
+- fix LSB comment parsing (#85678)
+
+* Wed May 29 2004 Bill Nottingham <notting at redhat.com> 1.3.10-1
+- mark alternatives help output for translation (#110526)
+
+* Wed Oct 22 2003 Bill Nottingham <notting at redhat.com> 1.3.9-1
+- update translations
+
+* Mon Jul 28 2003 Bill Nottingham <notting at redhat.com> 1.3.8-4
+- rebuild
+
+* Tue May 13 2003 Dan Walsh <dwalsh at redhat.com> 1.3.8-3
+- Update for RHEL
+
+* Thu May 8 2003 Dan Walsh <dwalsh at redhat.com> 1.3.8-2
+- Fix readXinetdServiceInfo to return error on not regular files
+- Fix chkconfig to not write messages if readXinetdServiceInfo gets an error
+
+* Fri Jan 31 2003 Bill Nottingham <notting at redhat.com> 1.3.8-1
+- fix some wording in alternatives (#76213)
+- actually mark alternatives for translation
+
+* Thu Dec 12 2002 Elliot Lee <sopwith at redhat.com> 1.3.7-1
+- Link to libpopt in a multilib-safe fashion.
+
+* Thu Aug 29 2002 Trond Eivind Glomsrød <teg at redhat.com> 1.3.6-3
+- bump
+
+* Thu Aug 15 2002 Bill Nottingham <notting at redhat.com> 1.3.6-2
+- rebuild against new newt
+
+* Mon Aug 12 2002 Bill Nottingham <notting at redhat.com> 1.3.6-1
+- make on and off handle runlevel 2 too (#70766)
+
+* Mon Apr 15 2002 Trond Eivind Glomsrød <teg at redhat.com> 1.3.5-3
+- Update translations
+
+* Mon Apr 15 2002 Trond Eivind Glomsrød <teg at redhat.com> 1.3.5-2
+- Update translations
+
+* Sun Apr  7 2002 Jeremy Katz <katzj at redhat.com> 1.3.5-1
+- alternatives: handle default with --config properly (#62009)
+
+* Thu Mar 14 2002 Bill Nottingham <notting at redhat.com> 1.3.4-1
+- don't apply the dependency logic to things that already have
+  start/stop priorities
+- fix silly display bug in --config
+
+* Tue Mar 12 2002 Bill Nottingham <notting at redhat.com> 1.3.2-1
+- chkconfig: LSB support
+
+* Fri Mar  8 2002 Bill Nottingham <notting at redhat.com>
+- alternatives: handle initscripts too; --initscript command-line option
+- chkconfig/ntsysv (and serviceconf, indirectly): services with
+   *no* links in /etc/rc*.d are no longer displayed with --list, or
+   available for configuration except via chkconfig command-line options
+- alternatives: fix trying to enable disable a null service
+
+* Tue Mar  5 2002 Bill Nottingham <notting at redhat.com>
+- alternatives: handle things with different numbers of slave links
+
+* Mon Mar  4 2002 Bill Nottingham <notting at redhat.com>
+- minor alternatives tweaks: don't install the same thing multiple times
+
+* Wed Jan 30 2002 Bill Nottingham <notting at redhat.com>
+- actually, put the alternatives stuff back in /usr/sbin
+- ship /etc/alternatives dir
+- random alternatives fixes
+
+* Sun Jan 27 2002 Erik Troan <ewt at redhat.com>
+- reimplemented update-alternatives as just alternatives
+
+* Thu Jan 25 2002 Bill Nottingham <notting at redhat.com>
+- add in update-alternatives stuff (perl ATM)
+
+* Mon Aug 27 2001 Trond Eivind Glomsrød <teg at redhat.com>
+- Update translations
+
+* Tue Jun 12 2001 Bill Nottingham <notting at redhat.com>
+- don't segfault on files that are exactly the length of a page size
+  (#44199, <kmori at redhat.com>)
+
+* Sun Mar  4 2001 Bill Nottingham <notting at redhat.com>
+- don't show xinetd services in ntsysv if xinetd doesn't appear to be
+  installed (#30565)
+
+* Wed Feb 14 2001 Preston Brown <pbrown at redhat.com>
+- final translation update.
+
+* Tue Feb 13 2001 Preston Brown <pbrown at redhat.com>
+- warn in ntsysv if not running as root.
+
+* Fri Feb  2 2001 Preston Brown <pbrown at redhat.com>
+- use lang finder script
+
+* Fri Feb  2 2001 Bill Nottingham <notting at redhat.com>
+- finally fix the bug Nalin keeps complaining about :)
+
+* Wed Jan 24 2001 Preston Brown <pbrown at redhat.com>
+- final i18n update before Beta.
+
+* Wed Oct 18 2000 Bill Nottingham <notting at redhat.com>
+- ignore .rpmnew files (#18915)
+- fix typo in error message (#17575)
+
+* Wed Aug 30 2000 Nalin Dahyabhai <nalin at redhat.com>
+- make xinetd config files mode 0644, not 644
+
+* Thu Aug 24 2000 Erik Troan <ewt at redhat.com>
+- updated it and es translations
+
+* Sun Aug 20 2000 Bill Nottingham <notting at redhat.com>
+- get man pages in proper packages
+
+* Sun Aug 20 2000 Matt Wilson <msw at redhat.com>
+- new translations
+
+* Tue Aug 16 2000 Nalin Dahyabhai <nalin at redhat.com>
+- don't worry about extra whitespace on chkconfig: lines (#16150)
+
+* Wed Aug 10 2000 Trond Eivind Glomsrød <teg at redhat.com>
+- i18n merge
+
+* Wed Jul 26 2000 Matt Wilson <msw at redhat.com>
+- new translations for de fr it es
+
+* Tue Jul 25 2000 Bill Nottingham <notting at redhat.com>
+- change prereqs
+
+* Sun Jul 23 2000 Bill Nottingham <notting at redhat.com>
+- fix ntsysv's handling of xinetd/init files with the same name
+
+* Fri Jul 21 2000 Bill Nottingham <notting at redhat.com>
+- fix segv when reading malformed files
+
+* Wed Jul 19 2000 Bill Nottingham <notting at redhat.com>
+- put links, rc[0-6].d dirs back, those are necessary
+
+* Tue Jul 18 2000 Bill Nottingham <notting at redhat.com>
+- add quick hack support for reading descriptions from xinetd files
+
+* Mon Jul 17 2000 Bernhard Rosenkraenzer <bero at redhat.com>
+- don't own the /etc/rc[0-6].d symlinks; they're owned by initscripts
+
+* Sat Jul 15 2000 Matt Wilson <msw at redhat.com>
+- move back to old file layout
+
+* Thu Jul 13 2000 Preston Brown <pbrown at redhat.com>
+- bump copyright date
+
+* Tue Jul 11 2000 Bill Nottingham <notting at redhat.com>
+- no %%pre today. Maybe tomorrow.
+
+* Thu Jul  6 2000 Bill Nottingham <notting at redhat.com>
+- put initscripts %%pre here too
+
+* Mon Jul  3 2000 Bill Nottingham <notting at redhat.com>
+- oops, if we don't prereq initscripts, we *need* to own /etc/rc[0-6].d
+
+* Sun Jul  2 2000 Bill Nottingham <notting at redhat.com>
+- add xinetd support
+
+* Tue Jun 27 2000 Matt Wilson <msw at redhat.com>
+- changed Prereq: initscripts >= 5.18 to Conflicts: initscripts < 5.18
+- fixed sumary and description where a global string replace nuked them
+
+* Mon Jun 26 2000 Matt Wilson <msw at redhat.com>
+- what Bill said, but actually build this version
+
+* Thu Jun 15 2000 Bill Nottingham <notting at redhat.com>
+- don't own /etc/rc.*
+
+* Fri Feb 11 2000 Bill Nottingham <notting at redhat.com>
+- typo in man page
+
+* Wed Feb 02 2000 Cristian Gafton <gafton at redhat.com>
+- fix description
+
+* Wed Jan 12 2000 Bill Nottingham <notting at redhat.com>
+- link chkconfig statically against popt
+
+* Mon Oct 18 1999 Bill Nottingham <notting at redhat.com>
+- fix querying alternate levels
+
+* Mon Aug 23 1999 Jeff Johnson <jbj at redhat.com>
+- don't use strchr to skip unwanted files, look at extension instead (#4166).
+
+* Thu Aug  5 1999 Bill Nottingham <notting at redhat.com>
+- fix --help, --verson
+
+* Mon Aug  2 1999 Matt Wilson <msw at redhat.com>
+- rebuilt ntsysv against newt 0.50
+
+* Mon Aug  2 1999 Jeff Johnson <jbj at redhat.com>
+- fix i18n problem in usage message (#4233).
+- add --help and --version.
+
+* Mon Apr 19 1999 Cristian Gafton <gafton at redhat.com>
+- release for Red Hat 6.0
+
+* Thu Apr  8 1999 Matt Wilson <msw at redhat.com>
+- added support for a "hide: true" tag in initscripts that will make
+  services not appear in ntsysv when run with the "--hide" flag
+
+* Thu Apr  1 1999 Matt Wilson <msw at redhat.com>
+- added --hide flag for ntsysv that allows you to hide a service from the
+  user.
+
+* Mon Mar 22 1999 Bill Nottingham <notting at redhat.com>
+- fix glob, once and for all. Really. We mean it.
+
+* Thu Mar 18 1999 Bill Nottingham <notting at redhat.com>
+- revert fix for services at levels, it's broken
+- change default to only edit the current runlevel
+
+* Mon Mar 15 1999 Bill Nottingham <notting at redhat.com>
+- don't remove scripts that don't support chkconfig
+
+* Tue Mar 09 1999 Erik Troan <ewt at redhat.com>
+- made glob a bit more specific so xinetd and inetd don't cause improper matches
+
+* Thu Feb 18 1999 Matt Wilson <msw at redhat.com>
+- removed debugging output when starting ntsysv
+
+* Thu Feb 18 1999 Preston Brown <pbrown at redhat.com>
+- fixed globbing error
+- fixed ntsysv running services not at their specified levels.
+
+* Tue Feb 16 1999 Matt Wilson <msw at redhat.com>
+- print the value of errno on glob failures.
+
+* Sun Jan 10 1999 Matt Wilson <msw at redhat.com>
+- rebuilt for newt 0.40 (ntsysv)
+
+* Tue Dec 15 1998 Jeff Johnson <jbj at redhat.com>
+- add ru.po.
+
+* Thu Oct 22 1998 Bill Nottingham <notting at redhat.com>
+- build for Raw Hide (slang-1.2.2)
+
+* Wed Oct 14 1998 Cristian Gafton <gafton at redhat.com>
+- translation updates
+
+* Thu Oct 08 1998 Cristian Gafton <gafton at redhat.com>
+- updated czech translation (and use cs instead of cz)
+
+* Tue Sep 22 1998 Arnaldo Carvalho de Melo <acme at conectiva.com.br>
+- added pt_BR translations
+- added more translatable strings
+- support for i18n init.d scripts description
+
+* Sun Aug 02 1998 Erik Troan <ewt at redhat.com>
+- built against newt 0.30
+- split ntsysv into a separate package
+
+* Thu May 07 1998 Erik Troan <ewt at redhat.com>
+- added numerous translations
+
+* Mon Mar 23 1998 Erik Troan <ewt at redhat.com>
+- added i18n support
+
+* Sun Mar 22 1998 Erik Troan <ewt at redhat.com>
+- added --back
--- chkconfig-1.3.48/leveldb.c
+++ chkconfig-1.3.48/leveldb.c
+/* Copyright 1997-2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+#include <alloca.h>
+#include <ctype.h>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <glob.h>
+#include <libintl.h> 
+#include <locale.h> 
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+/* Changes
+   1998-09-22 - Arnaldo Carvalho de Melo <acme at conectiva.com.br>
+                i18n for init.d scripts (eg.: description(pt_BR) is a brazilian
+		portuguese description for the package) 
+*/
+
+#define _(String) gettext((String)) 
+
+#include "leveldb.h"
+
+int parseLevels(char * str, int emptyOk) {
+    char * chptr = str;
+    int rc = 0;
+
+    if (!str || !strlen(str))
+	return emptyOk ? 0 : -1;
+
+    while (*chptr) {
+	if (!isdigit(*chptr) || *chptr > '6') return -1;
+	rc |= 1 << (*chptr - '0');
+	chptr++;
+    }
+
+    return rc;
+}
+
+int readDescription(char *start, char *bufstop, char **english_desc, char **serv_desc) { 
+	char english;
+	char my_lang_loaded = 0;
+	char is_my_lang = 0;
+	char * lang = getenv ("LANG");
+	char * final_parenthesis;
+	char * end, *next;
+	int i;
+	
+	english = *start == ':';
+	end = strchr(start, '\n');
+	if (!end) 
+	    next = end = bufstop;
+	else
+	    next = end + 1;
+
+	if (!english) {
+		if (*start != '(') {
+		    return 1;
+		}
+
+                ++start;
+		final_parenthesis = strchr (start, ')');
+
+		if (final_parenthesis == NULL || final_parenthesis - start > 5) {
+		    return 1;
+		}
+
+		is_my_lang = lang ? strncmp (lang, start, strlen (lang)) == 0 : 0;
+		start = final_parenthesis + 2;
+	    } else ++start;
+
+	    while (isspace(*start) && start < end) start++;
+	    if (start >= end) {
+		return 1;
+	    }
+          {
+	    char* desc = malloc(end - start + 1);
+	    strncpy(desc, start, end - start);
+	    desc[end - start] = '\0';
+
+	    start = next;
+
+	    while (desc[strlen(desc) - 1] == '\\') {
+		desc[strlen(desc) - 1] = '\0';
+		start = next;
+		
+		while (isspace(*start) && start < bufstop) start++;
+		if (start == bufstop || *start != '#') {
+		    return 1;
+		}
+
+		start++;
+
+		while (isspace(*start) && start < bufstop) start++;
+		if (start == bufstop) {
+		    return 1;
+		}
+
+		end = strchr(start, '\n');
+		if (!end) 
+		    next = end = bufstop;
+		else
+		    next = end + 1;
+
+		i = strlen(desc);
+		desc = realloc(desc, i + end - start + 1);
+		strncat(desc, start, end - start);
+		desc[i + end - start] = '\0';
+
+		start = next;
+	    }
+
+	    if (desc) {
+		    if (my_lang_loaded) {
+			    free(desc);
+		    } else if (is_my_lang) {
+			    if (*serv_desc)
+			      free(*serv_desc);
+
+			    *serv_desc = desc;
+			    return 0;
+		    } else if (english) {
+			    if (*serv_desc)
+			      free(*serv_desc);
+
+			    if (*english_desc)
+			      free (*english_desc);
+
+			    *english_desc = desc;
+		    } else free (desc);
+	    }
+	  }
+	return 0;
+}
+
+int readXinetdServiceInfo(char *name, struct service * service) {
+	char * filename;
+	int fd;
+	struct service serv = { 
+			name: NULL,
+			levels: -1,
+			kPriority: -1,
+			sPriority: -1, 
+			desc: NULL, 
+			startDeps: NULL, 
+			stopDeps: NULL,
+			softStartDeps: NULL,
+			softStopDeps: NULL,
+		        provides: NULL,
+			type: TYPE_XINETD, 
+			isLSB: 0, 
+			enabled: -1
+	};
+	struct stat sb;
+	char * buf = NULL, *ptr;
+	char * eng_desc = NULL, *start;
+	
+	asprintf(&filename, XINETDDIR "/%s", name);
+	
+	if ((fd = open(filename, O_RDONLY)) < 0) goto out_err;
+	fstat(fd,&sb);
+	if (! S_ISREG(sb.st_mode)) goto out_err;
+	buf = malloc(sb.st_size+1);
+	if (read(fd,buf,sb.st_size)!=sb.st_size) goto out_err;
+	close(fd);
+        serv.name = strdup(name);
+	buf[sb.st_size] = '\0';
+	start = buf;
+	while (buf) {
+		ptr = strchr(buf,'\n');
+		if (*buf == '#') {
+			buf++;
+			while (isspace(*buf) && buf < ptr) buf++;
+			if (!strncmp(buf,"default:", 9)) {
+				buf+=8;
+				while(isspace(*buf)) buf++;
+				if (!strncmp(buf+9,"on",2)) {
+					serv.enabled = 1;
+				} else {
+					serv.enabled = 0;
+				}
+			} else if (!strncmp(buf,"description:",12)) {
+				buf+=11;
+				if (readDescription(buf,start+sb.st_size,
+						    &serv.desc,&eng_desc)) {
+					if (serv.desc) free(serv.desc);
+				}
+				if (!serv.desc) {
+					if (eng_desc)
+					  serv.desc = eng_desc;
+                                        else
+                                          serv.desc = strdup(name);
+				} else if (eng_desc)
+					  free (eng_desc);
+			}
+			if (ptr) {
+				*ptr = '\0';
+				ptr++;
+			} 
+			buf = ptr;
+			continue;
+		}
+		while (isspace(*buf) && buf < ptr) buf++;
+		if (!strncmp(buf,"disable", 7)) {
+			buf = strstr(buf,"=");
+			if (buf) 
+			  do {
+				  buf++;
+			  } while(isspace(*buf));
+
+			if (buf && strncmp(buf,"yes",3)) {
+				serv.levels = parseLevels("0123456",0);
+				if (serv.enabled == -1)
+				  serv.enabled = 1;
+			} else {
+				serv.levels = 0;
+				if (serv.enabled == -1)
+				  serv.enabled = 0;
+			}
+		}
+		if (ptr) {
+			*ptr = '\0';
+			ptr++;
+		} 
+		buf = ptr;
+	}
+	*service = serv;
+	return 0;
+out_err:
+        close(fd);
+        free(buf);
+        free(filename);
+        return -1;
+}
+
+int readServices(struct service **services) {
+	DIR * dir;
+	struct dirent * ent;
+	struct stat sb;
+	struct service *servs = NULL;
+	int numservs = 0;
+	char fn[1024];
+
+	if (!(dir = opendir(RUNLEVELS "/init.d"))) {
+		fprintf(stderr, _("failed to open %s/init.d: %s\n"), RUNLEVELS,
+			strerror(errno));
+		return 1;
+	}
+
+	while ((ent = readdir(dir))) {
+		const char *dn;
+
+		/* Skip any file starting with a . */
+		if (ent->d_name[0] == '.')	continue;
+
+		/* Skip files with known bad extensions */
+		if ((dn = strrchr(ent->d_name, '.')) != NULL &&
+		    (!strcmp(dn, ".rpmsave") || !strcmp(dn, ".rpmnew") || !strcmp(dn, ".rpmorig") || !strcmp(dn, ".swp")))
+			continue;
+
+		dn = ent->d_name + strlen(ent->d_name) - 1;
+		if (*dn == '~' || *dn == ',')
+			continue;
+
+		sprintf(fn, RUNLEVELS "/init.d/%s", ent->d_name);
+		if (stat(fn, &sb)) {
+			continue;
+		}
+		if (!S_ISREG(sb.st_mode)) continue;
+		servs = realloc(servs, (numservs+1) * sizeof(struct service));
+		if (!readServiceInfo(ent->d_name, TYPE_INIT_D, servs + numservs, 0))
+			numservs++;
+	}
+	*services = servs;
+	return numservs;
+}
+
+int readServiceInfo(char * name, int type, struct service * service, int honorHide) {
+    char * filename;
+    int fd;
+    struct service serv, serv_overrides;
+    int parseret;
+
+    if (!(type & TYPE_INIT_D))
+	goto try_xinetd;
+
+    asprintf(&filename, RUNLEVELS "/init.d/%s", name);
+
+    if ((fd = open(filename, O_RDONLY)) < 0)
+	goto try_xinetd;
+
+    free(filename);
+    parseret = parseServiceInfo(fd, name, &serv, honorHide, 0);
+    if (parseret)
+        return parseret;
+
+    asprintf(&filename, RUNLEVELS "/chkconfig.d/%s", name);
+    if ((fd = open(filename, O_RDONLY)) >= 0) {
+        parseret = parseServiceInfo(fd, name, &serv_overrides, honorHide, 1);
+        if (parseret >= 0) {
+            if (serv_overrides.name) serv.name = serv_overrides.name;
+            if (serv_overrides.levels != -1) serv.levels = serv_overrides.levels;
+            if (serv_overrides.kPriority != -2) serv.kPriority = serv_overrides.kPriority;
+            if (serv_overrides.sPriority != -2) serv.sPriority = serv_overrides.sPriority;
+            if (serv_overrides.desc) serv.desc = serv_overrides.desc;
+            if (serv_overrides.startDeps) serv.startDeps = serv_overrides.startDeps;
+            if (serv_overrides.stopDeps) serv.stopDeps = serv_overrides.stopDeps;
+            if (serv_overrides.softStartDeps) serv.softStartDeps = serv_overrides.softStartDeps;
+            if (serv_overrides.softStopDeps) serv.softStopDeps = serv_overrides.softStopDeps;
+            if (serv_overrides.provides) serv.provides = serv_overrides.provides;
+            if (serv_overrides.isLSB || serv.isLSB) serv.isLSB = 1;
+        }
+    }
+
+    free(filename);
+    *service = serv;
+    return 0;
+
+try_xinetd:
+    free(filename);
+    if (!(type & TYPE_XINETD))
+	return -1;
+    return readXinetdServiceInfo(name,service);
+}
+
+int readServiceDifferences(char * name, int type, struct service * service, struct service * service_overrides, int honorHide) {
+    char * filename;
+    int fd;
+    struct service serv, serv_overrides;
+    int parseret;
+
+    if (!(type & TYPE_INIT_D))
+	goto try_xinetd;
+
+    asprintf(&filename, RUNLEVELS "/init.d/%s", name);
+
+    if ((fd = open(filename, O_RDONLY)) < 0) {
+	goto try_xinetd;
+    }
+
+    free(filename);
+    parseret = parseServiceInfo(fd, name, &serv, honorHide, 0);
+    if (parseret) {
+        return parseret;
+    }
+
+    asprintf(&filename, RUNLEVELS "/chkconfig.d/%s", name);
+    if ((fd = open(filename, O_RDONLY)) >= 0) {
+        parseret = parseServiceInfo(fd, name, &serv_overrides, honorHide, 1);
+    } else {
+        parseret = 1;
+    }
+
+    free(filename);
+    if (parseret) {
+        return 1;
+    }
+
+    *service = serv;
+    *service_overrides = serv_overrides;
+    return 0;
+
+try_xinetd:
+    free(filename);
+    if (!(type & TYPE_XINETD))
+	return -1;
+    return readXinetdServiceInfo(name,service);
+}
+
+static struct dep *parseDeps(char *pos, char *end) {
+    char *t;
+    int numdeps = 0;
+    struct dep *deps = NULL;
+
+    while (1) {
+	while (*pos && isspace(*pos) && pos < end) pos++;
+	if (pos == end)
+            break;
+        t = pos;
+        while (*t && !isspace(*t) && t < end) t++;
+        if (isspace(*t)) {
+            *t = '\0';
+            t++;
+        }
+        numdeps++;
+        deps = realloc(deps,
+		 (numdeps + 1) * sizeof(struct dep));
+        deps[numdeps-1].name = strdup(pos);
+        deps[numdeps-1].handled = 0;
+        memset(&deps[numdeps],'\0',sizeof(struct dep));
+        if (!t || t >= end)
+            break;
+        else
+            pos = t;
+    }
+    return deps;
+}
+
+
+int parseServiceInfo(int fd, char * name, struct service * service, int honorHide, int partialOk) {
+    struct stat sb;
+    char * bufstart, * bufstop, * start, * end, * next, *tmpbufstart;
+    struct service serv = { 
+	    	    name: NULL, 
+		    levels: -1, 
+		    kPriority: -1, 
+		    sPriority: -1, 
+		    desc: NULL, 
+		    startDeps: NULL, 
+		    stopDeps: NULL,
+		    softStartDeps: NULL, 
+		    softStopDeps: NULL,
+		    provides: NULL,
+		    type: TYPE_INIT_D, 
+		    isLSB: 0, 
+		    enabled: 0
+    };
+    char overflow;
+    char levelbuf[20];
+    char * english_desc = NULL;
+
+    fstat(fd, &sb);
+
+    bufstart = mmap(NULL, sb.st_size, PROT_READ, MAP_SHARED, fd, 0);
+    if (bufstart == ((caddr_t) -1)) {
+	close(fd);	
+	return -1;
+    }
+
+    tmpbufstart = (char*)malloc(sb.st_size+1);
+    if (tmpbufstart == NULL) {
+	close(fd);	
+	return -1;
+    }
+
+    memcpy(tmpbufstart, bufstart, sb.st_size);
+    munmap(bufstart, sb.st_size);
+
+    bufstart = tmpbufstart;
+    bufstop = bufstart + sb.st_size;
+    *bufstop = 0;
+
+    close(fd);
+
+    next = bufstart;
+    while (next < bufstop && (serv.levels == -1 || !serv.desc)) {
+	start = next;
+
+	while (isspace(*start) && start < bufstop) start++;
+	if (start == bufstop) break; 
+
+	end = strchr(start, '\n');
+	if (!end) 
+	    next = end = bufstop;
+	else
+	    next = end + 1;
+
+	if (*start != '#') continue;
+
+	start++;
+	if (!strncmp(start, "## BEGIN INIT INFO", 18))
+		    serv.isLSB = 1;
+		
+	while (isspace(*start) && start < end) start++;
+	if (start == end) continue;
+	if (honorHide && !strncmp(start, "hide:", 5)) {
+	    start += 5;
+	    while (isspace(*start) && start < end) start++;
+	    if (start == end || !strncmp(start, "true", 4)) {
+		if (serv.desc) free(serv.desc);
+		free(bufstart);
+		return 1;
+	    }
+	}
+
+	if (!strncmp(start, "chkconfig:", 10)) {
+	    int spri, kpri;
+	     
+	    start += 10;
+	    while (isspace(*start) && start < end) start++;
+	    if (start == end) {
+		if (serv.desc) free(serv.desc);
+		free(bufstart);
+		return 1;
+	    }
+
+	    if ((sscanf(start, "%15s %d %d%c", levelbuf,
+			&spri, &kpri, &overflow) != 4) ||
+		 !isspace(overflow)) {
+		if (serv.desc) free(serv.desc);
+		free(bufstart);
+		return 1;
+	    }
+	    if (spri > 99 || kpri > 99 || kpri < 0 || spri < 0) {
+		    if (serv.desc) free(serv.desc);
+		    free(bufstart);
+		    return 1;
+	    }
+	    if (serv.sPriority == -1)
+			serv.sPriority = spri;
+	    if (serv.kPriority == -1)
+			serv.kPriority = kpri;
+
+	    if (serv.levels == -1) {
+		    if (!strcmp(levelbuf, "-"))
+			    serv.levels = 0;
+		    else
+			    serv.levels = parseLevels(levelbuf, 0);
+	    }
+	    if (serv.levels == -1) {
+		if (serv.desc) free(serv.desc);
+		free(bufstart);
+		return 1;
+	    }
+	} else if (!strncmp(start, "description", 11) ||
+		   !strncmp(start, "Description:", 12)) {
+		if (readDescription(start+11, bufstop, &english_desc, &serv.desc)) {
+			if (serv.desc) free(serv.desc);
+		}
+	} else if (!strncmp(start, "Short-Description:", 18)) {
+		if (readDescription(start+17, bufstop, &english_desc, &serv.desc)) {
+			if (serv.desc) free(serv.desc);
+		}
+	} else if (!strncmp(start, "Default-Start:", 14)) {
+		char *t;
+		
+		start+=14;
+		while (1) {
+			int lev;
+			
+			lev = strtol(start, &t, 10);
+			if (t && t != start)
+				start = t;
+			else
+				break;
+			if (serv.levels == -1)
+				serv.levels = 0;
+			serv.levels |= 1 << lev;
+		}
+	} else if (!strncmp(start, "Default-Stop:", 13)) {
+		char *t;
+		
+		start+=13;
+		while (1) {
+			int lev;
+			
+			lev = strtol(start, &t, 10);
+			if (t && t != start)
+				start = t;
+			else
+				break;
+			if (serv.levels == -1)
+				serv.levels = 0;
+			serv.levels &= ~(1 << lev);
+		}
+	} else if (!strncmp(start, "Required-Start:", 15)) {
+		start+=15;
+		serv.startDeps = parseDeps(start, end);
+	} else if (!strncmp(start, "Required-Stop:", 14)) {
+		start+=14;
+		serv.stopDeps = parseDeps(start, end);
+	} else if (!strncmp(start, "Should-Start:", 13)) {
+		start+=13;
+		serv.softStartDeps = parseDeps(start, end);
+	} else if (!strncmp(start, "Should-Stop:", 12)) {
+		start+=12;
+		serv.softStopDeps = parseDeps(start, end);
+	} else if (!strncmp(start, "Provides:", 9)) {
+		char *t;
+		int numdeps = 0;
+		
+		start+=9;
+		while (1) {
+			while (*start && isspace(*start) && start < end) start++;
+			if (start == end)
+				break;
+			t = start;
+			while (*t && !isspace(*t) && t < end) t++;
+			if (isspace(*t)) {
+				*t = '\0';
+				t++;
+			}
+			numdeps++;
+			serv.provides = realloc(serv.provides,
+						 (numdeps + 1) * sizeof(char *));
+			serv.provides[numdeps-1] = strdup(start);
+			serv.provides[numdeps] = NULL;
+			if (!t || t >= end)
+				break;
+			else
+				start = t;
+		}
+		
+	}
+    }
+
+    free(bufstart);
+
+    if (!serv.desc) {
+      if (english_desc)
+	serv.desc = english_desc;
+      else
+        serv.desc = strdup(name);
+    } else if (english_desc)
+	free (english_desc);
+
+    if (!partialOk && ((serv.levels == -1) || !serv.desc || (!serv.isLSB && (serv.sPriority == -1 || serv.kPriority == -1)))) {
+	return 1;
+    } 
+
+    serv.name = strdup(name);
+    if (!serv.provides) {
+	    serv.provides = malloc(2 * sizeof(char *));
+	    serv.provides[0] = strdup(name);
+	    serv.provides[1] = NULL;
+    }
+
+    *service = serv;
+    return 0;
+}
+
+/* returns -1 on error */
+int currentRunlevel(void) {
+    FILE * p;
+    char response[50];
+
+    p = popen("/sbin/runlevel", "r");
+    if (!p) return -1;
+
+    if (!fgets(response, sizeof(response), p)) {
+	pclose(p);
+	return -1;
+    }
+
+    pclose(p);
+
+    if (response[1] != ' ' || !isdigit(response[2]) || response[3] != '\n') 
+	return -1;
+
+    return response[2] - '0';
+}
+
+int findServiceEntries(char * name, int level, glob_t * globresptr) {
+    char match[200];
+    glob_t globres;
+    int rc;
+
+    sprintf(match, "%s/rc%d.d/[SK][0-9][0-9]%s", RUNLEVELS, level, name);
+
+    rc = glob(match, GLOB_ERR | GLOB_NOSORT, NULL, &globres);
+
+    if (rc && rc != GLOB_NOMATCH) {
+	fprintf(stderr, _("failed to glob pattern %s: %s\n"), match,
+		strerror(errno));
+	return 1;
+    } else if (rc == GLOB_NOMATCH) {
+	globresptr->gl_pathc = 0;
+	return 0;
+    }
+
+    *globresptr = globres;
+    return 0;
+}
+
+int isConfigured(char * name, int level, int *priority, char *type) {
+    glob_t globres;
+    char *pri_string;
+
+    if (findServiceEntries(name, level, &globres))
+	exit(1);
+
+    if (!globres.gl_pathc)
+	return 0;
+
+    if (type) {
+        *type = globres.gl_pathv[0][11];
+    }
+
+    if (priority) {
+        pri_string = strndup(globres.gl_pathv[0]+12, 2);
+        if (!pri_string) return 0;
+        sscanf(pri_string, "%d", priority);
+        free(pri_string);
+    }
+
+    globfree(&globres);
+    return 1;
+}
+
+int isOn(char * name, int level) {
+    glob_t globres;
+
+    if (level == -1) {
+	level = currentRunlevel();
+	if (level == -1) {
+	    fprintf(stderr, _("cannot determine current run level\n"));
+	    return 0;
+	}
+    }
+
+    if (findServiceEntries(name, level, &globres))
+	exit(1);
+
+    if (!globres.gl_pathc || !strstr(globres.gl_pathv[0], "/S"))
+	return 0;
+
+    globfree(&globres);
+    return 1;
+}
+
+int setXinetdService(struct service s, int on) {
+	int oldfd, newfd;
+	char oldfname[100], newfname[100];
+	char tmpstr[50];
+	char *buf, *ptr, *tmp;
+	struct stat sb;
+	
+	if (on == -1) {
+		on = s.enabled ? 1 : 0;
+	}
+	snprintf(oldfname,100,"%s/%s",XINETDDIR,s.name);
+	if ( (oldfd = open(oldfname,O_RDONLY)) == -1 ) {
+		return -1;
+	}
+	fstat(oldfd,&sb);
+	buf = malloc(sb.st_size+1);
+	if (read(oldfd,buf,sb.st_size)!=sb.st_size) {
+		close(oldfd);
+		free(buf);
+		return -1;
+	}
+	close(oldfd);
+	buf[sb.st_size] = '\0';
+	snprintf(newfname,100,"%s/%s.XXXXXX",XINETDDIR,s.name);
+	newfd = mkstemp(newfname);
+	if (newfd == -1) {
+		free(buf);
+		return -1;
+	}
+	while (buf) {
+		tmp = buf;
+		ptr = strchr(buf,'\n');
+		if (ptr) {
+			*ptr = '\0';
+			ptr++;
+		} 
+		while (isspace(*buf)) buf++;
+		if (strncmp(buf,"disable", 7) && strlen(buf)) {
+			write(newfd,tmp,strlen(tmp));
+			write(newfd,"\n",1);
+			if (buf[0] == '{') {
+				snprintf(tmpstr,50,"\tdisable\t= %s", on ? "no" : "yes");
+				write(newfd,tmpstr,strlen(tmpstr));
+				write(newfd,"\n",1);
+			}
+		}
+		buf = ptr;
+	}
+	close(newfd);
+	chmod(newfname,0644);
+	unlink(oldfname);
+	return(rename(newfname,oldfname));
+}
+
+int doSetService(struct service s, int level, int on) {
+    int priority = on ? s.sPriority : s.kPriority;
+    char linkname[200];
+    char linkto[200];
+    glob_t globres;
+    int i;
+
+    if (!findServiceEntries(s.name, level, &globres)) {
+	for (i = 0; i < globres.gl_pathc; i++)
+	    unlink(globres.gl_pathv[i]);
+	if (globres.gl_pathc) globfree(&globres);
+    }
+
+    sprintf(linkname, "%s/rc%d.d/%c%02d%s", RUNLEVELS, level,
+			on ? 'S' : 'K', priority, s.name);
+    sprintf(linkto, "../init.d/%s", s.name);
+
+    unlink(linkname);	/* just in case */
+    if (symlink(linkto, linkname)) {
+	fprintf(stderr, _("failed to make symlink %s: %s\n"), linkname,
+		strerror(errno));
+	return 1;
+    }
+
+    return 0; 
+}
+
--- chkconfig-1.3.48/leveldb.h
+++ chkconfig-1.3.48/leveldb.h
+/* Copyright 1997-2008 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+#ifndef H_LEVELDB
+#define H_LEVELDB
+
+#define RUNLEVELS "/etc"
+#define XINETDDIR "/etc/xinetd.d"
+
+#include <glob.h>
+
+#define TYPE_INIT_D	0x1
+#define TYPE_XINETD	0x2
+#define TYPE_ANY	(TYPE_INIT_D | TYPE_XINETD)
+
+struct dep {
+    char *name;
+    int handled;
+};
+
+struct service {
+    char * name;
+    int levels, kPriority, sPriority;
+    char * desc;
+    struct dep *startDeps;
+    struct dep *stopDeps;
+    struct dep *softStartDeps;
+    struct dep *softStopDeps;
+    char **provides;
+    int type;
+    int isLSB;
+    int enabled;
+};
+
+int parseLevels(char * str, int emptyOk);
+
+/* returns 0 on success, 1 if the service is not chkconfig-able, -1 if an
+   I/O error occurs (in which case errno can be checked) */
+int readServiceInfo(char * name, int type, struct service * service, int honorHide);
+int readServices(struct service **services);
+int readServiceDifferences(char * name, int type, struct service * service, struct service * service_overrides, int honorHide);
+int parseServiceInfo(int fd, char * name, struct service * service, int honorHide, int partialOk);
+int currentRunlevel(void);
+int isOn(char * name, int where);
+int isConfigured(char * name, int level, int *priority, char *type);
+int doSetService(struct service s, int level, int on);
+int findServiceEntries(char * name, int level, glob_t * globresptr);
+int readXinetdServiceInfo(char *name, struct service *service);
+int setXinetdService(struct service s, int on);
+
+#endif
--- chkconfig-1.3.48/ntsysv.8
+++ chkconfig-1.3.48/ntsysv.8
(renamed from chkconfig-1.3.46/ntsysv.8)
--- chkconfig-1.3.48/ntsysv.c
+++ chkconfig-1.3.48/ntsysv.c
+/* Copyright 1997-2007 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+#include <alloca.h>
+#include <ctype.h>
+#include <dirent.h>
+#include <errno.h>
+#include <libintl.h> 
+#include <locale.h> 
+#include <newt.h>
+#include <popt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#define _(String) gettext((String)) 
+
+#include "leveldb.h"
+
+/* return 1 on cancel, 2 on error, 0 on success */
+static int servicesWindow(struct service * services, int numServices,
+			  int levels, int backButton) {
+    newtComponent label, subform, ok, cancel;
+    newtComponent * checkboxes, form, curr, blank;
+    newtComponent sb = NULL;
+    newtGrid grid, subgrid, buttons;
+    char * states;
+    int i, done = 0, update = 0, j;
+    int width, height;
+    struct newtExitStruct e;
+
+    newtPushHelpLine(_("Press <F1> for more information on a service."));
+
+    newtGetScreenSize(&width, &height);
+    width = width > 80 ? width - 60 : 20;
+    height = height > 25 ? height - 17 : 8;
+	
+	
+    sb = newtVerticalScrollbar(-1, -1, height, NEWT_COLORSET_CHECKBOX,
+				    NEWT_COLORSET_ACTCHECKBOX);
+
+    subform = newtForm(sb, NULL, 0);
+    newtFormSetBackground(subform, NEWT_COLORSET_CHECKBOX);
+    newtFormSetHeight(subform, height);
+
+    checkboxes = alloca(sizeof(*checkboxes) * numServices);
+    states = alloca(sizeof(*states) * numServices);
+    
+    for (i = 0; i < numServices; i++) {
+	if (services[i].type == TYPE_XINETD) {
+		checkboxes[i] = newtCheckbox(-1, i, services[i].name, 
+				     services[i].levels ? '*' : ' ', NULL, 
+				     states + i);
+	} else {
+		for (j = 0; j < 7; j++) {
+			if (levels & (1 << j)) {
+				if (isOn(services[i].name, j)) break;
+			}
+		}
+		checkboxes[i] = newtCheckbox(-1, i, services[i].name, 
+					     (j != 7) ? '*' : ' ', NULL, 
+					     states + i);
+	}
+	newtFormAddComponent(subform, checkboxes[i]);
+    }
+
+    newtFormSetWidth(subform, width);
+
+    buttons = newtButtonBar(_("Ok"), &ok, backButton ? _("Back") : _("Cancel"),
+			    &cancel, NULL);
+
+    blank = newtForm(NULL, NULL, 0);
+    newtFormSetWidth(blank, 2);
+    newtFormSetHeight(blank, height);
+    newtFormSetBackground(blank, NEWT_COLORSET_CHECKBOX);
+
+    subgrid = newtGridHCloseStacked(NEWT_GRID_COMPONENT, subform,
+			            NEWT_GRID_COMPONENT, blank,
+			            NEWT_GRID_COMPONENT, sb, NULL);
+
+    label = newtTextboxReflowed(-1, -1,  _("What services should be "
+				"automatically started?"), 30, 0, 20, 0);
+    grid = newtGridBasicWindow(label, subgrid, buttons);
+
+    form = newtForm(NULL, NULL, 0);
+    newtGridAddComponentsToForm(grid, form, 1);
+    newtGridWrappedWindow(grid, _("Services"));
+    newtGridFree(grid, 1);
+
+    newtFormAddHotKey(form, NEWT_KEY_F1);
+
+    while (!done) {
+	newtFormRun(form, &e);
+
+	if (e.reason == NEWT_EXIT_HOTKEY) {
+	    if (e.u.key == NEWT_KEY_F12) {
+		done = 1;
+		update = 1;
+	    } else {
+		/* must be F1 */
+		curr = newtFormGetCurrent(subform);
+		for (i = 0; i < numServices; i++)
+		    if (curr == checkboxes[i]) break;
+
+		if (i < numServices && services[i].desc) 
+		    newtWinMessage(services[i].name, _("Ok"), services[i].desc);
+	    }
+	} else {
+	    done = 1;
+	    update = (e.u.co == ok);
+	}
+    }
+    
+    newtPopWindow();
+    newtFormDestroy(form);
+    
+    if (!update) return 1;
+
+    for (i = 0; i < numServices; i++) {
+      if (services[i].type == TYPE_XINETD) {
+        if ((services[i].enabled && states[i] != '*') ||
+	    (!services[i].enabled && states[i] == '*'))
+	      setXinetdService(services[i], states[i] == '*');
+      } else {
+	      for (j = 0; j < 7; j++) {
+		      if (levels & (1 << j))
+			doSetService(services[i], j, states[i] == '*');
+	      }
+      }
+    }
+
+    return 0;
+}
+
+static int serviceNameCmp(const void * a, const void * b) {
+    const struct service * first = a;
+    const struct service * second = b;
+
+    return strcmp(first->name, second->name);
+}
+
+static int getServices(struct service ** servicesPtr, int * numServicesPtr,
+		       int backButton, int honorHide) {
+    DIR * dir;
+    struct dirent * ent;
+    struct stat sb;
+    char fn[1024];
+    struct service * services;
+    int numServices = 0;
+    int numServicesAlloced, rc;
+    int err = 0;
+
+    numServicesAlloced = 10;
+    services = malloc(sizeof(*services) * numServicesAlloced);
+
+    if (!(dir = opendir(RUNLEVELS "/init.d"))) {
+	fprintf(stderr, "failed to open " RUNLEVELS "/init.d: %s\n",
+		strerror(errno));
+        return 2;
+    }
+
+    while ((ent = readdir(dir))) {
+	if (strchr(ent->d_name, '~') || strchr(ent->d_name, ',') ||
+	    (ent->d_name[0] == '.')) continue;
+
+	sprintf(fn, RUNLEVELS "/init.d/%s", ent->d_name);
+	if (stat(fn, &sb))
+	{
+		fprintf(stderr, _("error reading info for service %s: %s\n"),
+			ent->d_name, strerror(errno));
+		continue;
+	}
+	if (!S_ISREG(sb.st_mode)) continue;
+
+	if (numServices == numServicesAlloced) {
+	    numServicesAlloced += 10;
+	    services = realloc(services, 
+				numServicesAlloced * sizeof(*services));
+	}
+
+	rc = readServiceInfo(ent->d_name, TYPE_INIT_D, services + numServices, honorHide);
+        
+	if (!rc) {
+		int i;
+		
+		rc = -2;
+		for (i = 0 ; i < 7 ; i++) {
+			if (isConfigured(ent->d_name, i, NULL, NULL)) {
+				rc = 0;
+				break;
+			}
+		}
+	}
+	 
+	if (rc == -1) {
+	    fprintf(stderr, _("error reading info for service %s: %s\n"),
+			ent->d_name, strerror(errno));
+	    continue;
+	} else if (!rc)
+	    numServices++;
+    }
+
+    closedir(dir);
+
+    if (!stat("/usr/sbin/xinetd",&sb)) {
+    if (!(dir = opendir(XINETDDIR))) {
+	fprintf(stderr, "failed to open " XINETDDIR ": %s\n",
+		strerror(errno));
+        return 2;
+    }
+
+    while ((ent = readdir(dir))) {
+	if (strchr(ent->d_name, '~') || strchr(ent->d_name, ',') ||
+	    strchr(ent->d_name, '.')) continue;
+
+	sprintf(fn, "%s/%s", XINETDDIR, ent->d_name);
+	if (stat(fn, &sb))
+	{
+		err = errno;
+		continue;
+	}
+	if (!S_ISREG(sb.st_mode)) continue;
+
+	if (numServices == numServicesAlloced) {
+	    numServicesAlloced += 10;
+	    services = realloc(services, 
+				numServicesAlloced * sizeof(*services));
+	}
+
+	rc = readXinetdServiceInfo(ent->d_name, services + numServices);
+	
+	if (rc == -1) {
+	    fprintf(stderr, _("error reading info for service %s: %s\n"),
+			ent->d_name, strerror(errno));
+	    closedir(dir);
+	    return 2;
+	} else if (!rc)
+	    numServices++;
+    }
+
+    if (err) {
+	fprintf(stderr, _("error reading from directory %s: %s\n"),
+		XINETDDIR, strerror(err));
+        return 1;
+    }
+    }
+
+    qsort(services, numServices, sizeof(*services), serviceNameCmp);
+
+    *servicesPtr = services;
+    *numServicesPtr = numServices;
+
+    return 0;
+}
+
+int main(int argc, const char ** argv) {
+    struct service * services;
+    int numServices;
+    int levels = -1;
+    char * levelsStr = NULL;
+    char *progName;
+    poptContext optCon;
+    int rc, backButton = 0, hide = 0;
+    struct poptOption optionsTable[] = {
+	    { "back", '\0', 0, &backButton, 0 },
+	    { "level", '\0', POPT_ARG_STRING, &levelsStr, 0 },
+	    { "hide", '\0', 0, &hide, 0 },
+	    { 0, 0, 0, 0, 0 } 
+    };
+
+    setlocale(LC_ALL, ""); 
+    bindtextdomain("chkconfig", "/usr/share/locale"); 
+    textdomain("chkconfig"); 
+
+    progName = (char *)argv[0];
+
+    if (getuid() != 0) {
+	fprintf(stderr, _("You must be root to run %s.\n"),progName);
+	exit(1);
+    }
+    
+    optCon = poptGetContext(progName, argc, argv, optionsTable, 0);
+    poptReadDefaultConfig(optCon, 1);
+
+    if ((rc = poptGetNextOpt(optCon)) < -1) {
+	fprintf(stderr, "%s: %s\n", 
+		poptBadOption(optCon, POPT_BADOPTION_NOALIAS), 
+		poptStrerror(rc));
+	exit(1);
+    }
+
+    if (levelsStr) {
+	levels = parseLevels(levelsStr, 0);
+	if (levels == -1) {
+	    fprintf(stderr, _("bad argument to --levels\n"));
+	    exit(2);
+	}
+    }
+
+    if (getServices(&services, &numServices, backButton, hide)) return 1;
+    if (!numServices) {
+	fprintf(stderr, _("No services may be managed by ntsysv!\n"));
+	return 2;
+    }
+
+    newtInit();
+    newtCls();
+
+    newtPushHelpLine(NULL);
+    newtDrawRootText(0, 0,
+		     "ntsysv " VERSION " - (C) 2000-2001 Red Hat, Inc. ");
+   
+    if (levels==-1) 
+     levels=(1<<currentRunlevel());
+
+    rc = servicesWindow(services, numServices, levels, backButton);
+
+    newtFinished();
+
+    return rc;
+}
--- chkconfig-1.3.48/po
+++ chkconfig-1.3.48/po
+(directory)
--- chkconfig-1.3.48/po/ChangeLog
+++ chkconfig-1.3.48/po/ChangeLog
(renamed from chkconfig-1.3.46/po/ChangeLog)
--- chkconfig-1.3.48/po/Makefile
+++ chkconfig-1.3.48/po/Makefile
(renamed from chkconfig-1.3.46/po/Makefile)
--- chkconfig-1.3.48/po/ar.po
+++ chkconfig-1.3.48/po/ar.po
(renamed from chkconfig-1.3.46/po/ar.po)
--- chkconfig-1.3.48/po/as.po
+++ chkconfig-1.3.48/po/as.po
(renamed from chkconfig-1.3.46/po/as.po)
--- chkconfig-1.3.48/po/bal.po
+++ chkconfig-1.3.48/po/bal.po
(renamed from chkconfig-1.3.46/po/bal.po)
--- chkconfig-1.3.48/po/be.po
+++ chkconfig-1.3.48/po/be.po
(renamed from chkconfig-1.3.46/po/be.po)
--- chkconfig-1.3.48/po/bg.po
+++ chkconfig-1.3.48/po/bg.po
+# translation of bg.po to Bulgarian
+# translation of bg.po to
+# translation of bg.po to
+# translation of bg.po to
+# translation of chkconfig.po to
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER.
+# 
+# Николай Сърмаджиев,преносим <nikolayds at msn.com>, 2004.
+# Doncho N. Gunchev <mr700 at globalnet.bg>, 2005.
+# Doncho N. Gunchev <gunchev at gmail.com>, 2007.
+# Alexander Todorov <atodorov at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: bg\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-03 17:22-0500\n"
+"PO-Revision-Date: 2008-03-11 10:41+0100\n"
+"Last-Translator: Alexander Todorov <atodorov at redhat.com>\n"
+"Language-Team: Bulgarian <Bulgarian Translators' Team <dict at fsa-bg.org>>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../chkconfig.c:38
+#, c-format
+msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
+msgstr "%s версия %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
+
+#: ../chkconfig.c:39
+#, c-format
+msgid "This may be freely redistributed under the terms of the GNU Public License.\n"
+msgstr "Програмата се разпространява свободно под условията на GPL.\n"
+
+#: ../chkconfig.c:43
+#, c-format
+msgid "         %s --add <name>\n"
+msgstr "         %s --add <име>\n"
+
+#: ../chkconfig.c:44
+#, c-format
+msgid "         %s --del <name>\n"
+msgstr "         %s --del <име>\n"
+
+#: ../chkconfig.c:45
+#, c-format
+msgid "         %s --override <name>\n"
+msgstr "         %s --override <име>\n"
+
+#: ../chkconfig.c:53
+#, c-format
+msgid "service %s supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add %s')\n"
+msgstr "услугата %s поддържа chkconfig, но не е включена в никое работно ниво (runlevel) (изпълнете chkconfig --add %s')\n"
+
+#: ../chkconfig.c:55
+#, c-format
+msgid "service %s does not support chkconfig\n"
+msgstr "услугата %s не поддържа chkconfig\n"
+
+#: ../chkconfig.c:57
+#, c-format
+msgid "error reading information on service %s: %s\n"
+msgstr "грешка при четене на информацията за услуга %s: %s\n"
+
+#: ../chkconfig.c:411 ../chkconfig.c:416 ../chkconfig.c:530
+msgid "on"
+msgstr "да"
+
+#: ../chkconfig.c:411 ../chkconfig.c:416 ../chkconfig.c:530
+msgid "off"
+msgstr "не "
+
+#: ../chkconfig.c:492
+#, c-format
+msgid "xinetd based services:\n"
+msgstr "xinetd базирани услуги:\n"
+
+#: ../chkconfig.c:494
+#, c-format
+msgid "failed to open directory %s: %s\n"
+msgstr "неуспех при отваряне на директория %s: %s\n"
+
+#: ../chkconfig.c:638
+#, c-format
+msgid "%s version %s\n"
+msgstr "%s версия %s\n"
+
+#: ../chkconfig.c:658
+#, c-format
+msgid "only one of --list, --add, --del, or --override may be specified\n"
+msgstr "може да бъде зададена само една от опциите --list, --add, --del или --override\n"
+
+#: ../chkconfig.c:718
+#, c-format
+msgid "only one runlevel may be specified for a chkconfig query\n"
+msgstr "може да бъде зададено само едно работно ниво при запитване към chkconfig\n"
+
+#: ../ntsysv.c:46
+msgid "Press <F1> for more information on a service."
+msgstr "Натиснете <F1> за повече информация за дадена услуга."
+
+#: ../ntsysv.c:83 ../ntsysv.c:120
+msgid "Ok"
+msgstr "Добре"
+
+#: ../ntsysv.c:83
+msgid "Back"
+msgstr "Назад"
+
+#: ../ntsysv.c:83
+msgid "Cancel"
+msgstr "Отказ"
+
+#: ../ntsysv.c:95
+msgid "What services should be automatically started?"
+msgstr "Кои услуги да се стартират автоматично?"
+
+#: ../ntsysv.c:101
+msgid "Services"
+msgstr "Услуги"
+
+#: ../ntsysv.c:183 ../ntsysv.c:210 ../ntsysv.c:248
+#, c-format
+msgid "error reading info for service %s: %s\n"
+msgstr "грешка при четене на информацията за услуга %s: %s\n"
+
+#: ../ntsysv.c:257
+#, c-format
+msgid "error reading from directory %s: %s\n"
+msgstr "грешка при четене от директория %s: %s\n"
+
+#: ../ntsysv.c:293
+#, c-format
+msgid "You must be root to run %s.\n"
+msgstr "За да изпълните %s трябва да бъдете root.\n"
+
+#: ../ntsysv.c:310
+#, c-format
+msgid "bad argument to --levels\n"
+msgstr "лош аргумент за --levels\n"
+
+#: ../ntsysv.c:317
+#, c-format
+msgid "No services may be managed by ntsysv!\n"
+msgstr "Няма услуги, които биха могли да се управляват от ntsysv!\n"
+
+#: ../leveldb.c:261
+#, c-format
+msgid "failed to open %s/init.d: %s\n"
+msgstr "неуспех при отваряне на %s/init.d: %s\n"
+
+#: ../leveldb.c:662
+#, c-format
+msgid "failed to glob pattern %s: %s\n"
+msgstr "невъзможно е ползването на шаблона %s: %s\n"
+
+#: ../leveldb.c:705
+#, c-format
+msgid "cannot determine current run level\n"
+msgstr "не може да се определи текущото работно ниво\n"
+
+#: ../leveldb.c:793
+#, c-format
+msgid "failed to make symlink %s: %s\n"
+msgstr "неуспех при създаване на символна връзка %s: %s\n"
+
+#: ../alternatives.c:63
+#, c-format
+msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
+msgstr "alternatives версия %s - Copyright (C) 2001 Red Hat, Inc.\n"
+
+#: ../alternatives.c:64
+#, c-format
+msgid ""
+"This may be freely redistributed under the terms of the GNU Public License.\n"
+"\n"
+msgstr ""
+"Програмата се разпространява свободно под условията на GPL.\n"
+"\n"
+
+#: ../alternatives.c:65
+#, c-format
+msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
+msgstr "употреба: alternatives --install <връзка> <име> <път> <приоритет>\n"
+
+#: ../alternatives.c:66
+#, c-format
+msgid "                    [--initscript <service>]\n"
+msgstr "                    [--initscript <услуга>]\n"
+
+#: ../alternatives.c:67
+#, c-format
+msgid "                    [--slave <link> <name> <path>]*\n"
+msgstr "                    [--slave <връзка> <име> <път>]*\n"
+
+#: ../alternatives.c:68
+#, c-format
+msgid "       alternatives --remove <name> <path>\n"
+msgstr "       alternatives --remove <име> <път>\n"
+
+#: ../alternatives.c:69
+#, c-format
+msgid "       alternatives --auto <name>\n"
+msgstr "       alternatives --auto <име>\n"
+
+#: ../alternatives.c:70
+#, c-format
+msgid "       alternatives --config <name>\n"
+msgstr "       alternatives --config <име>\n"
+
+#: ../alternatives.c:71
+#, c-format
+msgid "       alternatives --display <name>\n"
+msgstr "       alternatives --display <име>\n"
+
+#: ../alternatives.c:72
+#, c-format
+msgid "       alternatives --set <name> <path>\n"
+msgstr "       alternatives --set <име> <път>\n"
+
+#: ../alternatives.c:73
+#, c-format
+msgid "\n"
+msgstr "\n"
+
+#: ../alternatives.c:74
+#, c-format
+msgid "common options: --verbose --test --help --usage --version\n"
+msgstr "общи параметри: --verbose --test --help --usage --version\n"
+
+#: ../alternatives.c:75
+#, c-format
+msgid "                --altdir <directory> --admindir <directory>\n"
+msgstr "                --altdir <директория> --admindir <директория>\n"
+
+#: ../alternatives.c:172
+#, c-format
+msgid "reading %s\n"
+msgstr "четене %s\n"
+
+#: ../alternatives.c:176
+#, c-format
+msgid "failed to open %s: %s\n"
+msgstr "неуспех при отваряне на %s: %s\n"
+
+#: ../alternatives.c:185
+#, c-format
+msgid "failed to read %s: %s\n"
+msgstr "неуспех при четене на %s: %s\n"
+
+#: ../alternatives.c:194
+#, c-format
+msgid "%s empty!\n"
+msgstr "%s празен!\n"
+
+#: ../alternatives.c:203
+#, c-format
+msgid "bad mode on line 1 of %s\n"
+msgstr "неправилен режим на ред 1 от %s\n"
+
+#: ../alternatives.c:210
+#, c-format
+msgid "bad primary link in %s\n"
+msgstr "неправилна първична връзка в %s\n"
+
+#: ../alternatives.c:222
+#, c-format
+msgid "path %s unexpected in %s\n"
+msgstr "пътя %s e неочакван в %s\n"
+
+#: ../alternatives.c:231
+#, c-format
+msgid "missing path for slave %s in %s\n"
+msgstr "липсва пътя за slave %s в %s\n"
+
+#: ../alternatives.c:241
+#, c-format
+msgid "unexpected end of file in %s\n"
+msgstr "неочакван край на файла в %s\n"
+
+#: ../alternatives.c:250
+#, c-format
+msgid "path to alternate expected in %s\n"
+msgstr "очаква се път до алтернатива в %s\n"
+
+#: ../alternatives.c:251 ../alternatives.c:272 ../alternatives.c:295
+#: ../alternatives.c:314
+#, c-format
+msgid "unexpected line in %s: %s\n"
+msgstr "неочаквана линия в %s: %s\n"
+
+#: ../alternatives.c:271
+#, c-format
+msgid "numeric priority expected in %s\n"
+msgstr "очаква се цифров приоритет в %s\n"
+
+#: ../alternatives.c:294
+#, c-format
+msgid "slave path expected in %s\n"
+msgstr "очаква се подчинен път в %s\n"
+
+#: ../alternatives.c:322
+#, c-format
+msgid "failed to read link %s: %s\n"
+msgstr "неуспешно четене на връзката %s: %s\n"
+
+#: ../alternatives.c:336
+#, c-format
+msgid "link points to no alternative -- setting mode to manual\n"
+msgstr "връзката не сочи към алтернатива. -- установяване режима на ръчен\n"
+
+#: ../alternatives.c:341
+#, c-format
+msgid "link changed -- setting mode to manual\n"
+msgstr "връзката е променена -- установяване режима на ръчен\n"
+
+#: ../alternatives.c:369 ../alternatives.c:376
+#, c-format
+msgid "would remove %s\n"
+msgstr "би премахнало %s\n"
+
+#: ../alternatives.c:371 ../alternatives.c:378 ../alternatives.c:410
+#, c-format
+msgid "failed to remove link %s: %s\n"
+msgstr "неуспех при премахване на връзка %s: %s\n"
+
+#: ../alternatives.c:394 ../alternatives.c:407
+#, c-format
+msgid "would link %s -> %s\n"
+msgstr "би свързало %s -> %s\n"
+
+#: ../alternatives.c:399 ../alternatives.c:416
+#, c-format
+msgid "failed to link %s -> %s: %s\n"
+msgstr "неуспешно свързване %s -> %s: %s\n"
+
+#: ../alternatives.c:448
+#, c-format
+msgid "%s already exists\n"
+msgstr "%s вече съществува\n"
+
+#: ../alternatives.c:450
+#, c-format
+msgid "failed to create %s: %s\n"
+msgstr "неуспех при създаване на %s: %s\n"
+
+#: ../alternatives.c:481
+#, c-format
+msgid "failed to replace %s with %s: %s\n"
+msgstr "неуспех при заместване на %s с %s: %s\n"
+
+#: ../alternatives.c:507 ../alternatives.c:516
+#, c-format
+msgid "running %s\n"
+msgstr "изпълнява %s\n"
+
+#: ../alternatives.c:543
+#, c-format
+msgid "the primary link for %s must be %s\n"
+msgstr "първичната връзка за %s трябва да бъде %s\n"
+
+#: ../alternatives.c:623
+#, c-format
+msgid "link %s incorrect for slave %s (%s %s)\n"
+msgstr "връзката %s е неправилна за подчинения %s (%s %s)\n"
+
+#: ../alternatives.c:664
+#, c-format
+msgid "%s - status is auto.\n"
+msgstr "%s - статуса е автоматичен.\n"
+
+#: ../alternatives.c:666
+#, c-format
+msgid "%s - status is manual.\n"
+msgstr "%s - статуса е ръчен.\n"
+
+#: ../alternatives.c:668
+#, c-format
+msgid " link currently points to %s\n"
+msgstr " връзката в момента сочи към %s\n"
+
+#: ../alternatives.c:671
+#, c-format
+msgid "%s - priority %d\n"
+msgstr "%s - приоритет %d\n"
+
+#: ../alternatives.c:674
+#, c-format
+msgid " slave %s: %s\n"
+msgstr " подчинен %s: %s\n"
+
+#: ../alternatives.c:679
+#, c-format
+msgid "Current `best' version is %s.\n"
+msgstr "Текущата 'най-добра' версия е %s.\n"
+
+#: ../alternatives.c:709
+#, c-format
+msgid "There is %d program that provides '%s'.\n"
+msgstr "Има %d програма осигуряваща '%s'.\n"
+
+#: ../alternatives.c:709
+#, c-format
+msgid "There are %d programs which provide '%s'.\n"
+msgstr "Има %d програми осигуряващи '%s'.\n"
+
+#: ../alternatives.c:711
+#, c-format
+msgid "  Selection    Command\n"
+msgstr "  Избор    Команда\n"
+
+#: ../alternatives.c:720
+#, c-format
+msgid "Enter to keep the current selection[+], or type selection number: "
+msgstr "Enter за да запазите текущата избор[+] или въведете номер за избор: "
+
+#: ../alternatives.c:723
+#, c-format
+msgid ""
+"\n"
+"error reading choice\n"
+msgstr ""
+"\n"
+"грешка при четенето на избора\n"
+
+#: ../alternatives.c:750 ../alternatives.c:776
+#, c-format
+msgid "%s has not been configured as an alternative for %s\n"
+msgstr "%s не е настроен като алтернатива на %s\n"
+
+#: ../alternatives.c:792
+#, c-format
+msgid "(would remove %s\n"
+msgstr "(ще премахне %s\n"
+
+#: ../alternatives.c:794
+#, c-format
+msgid "failed to remove %s: %s\n"
+msgstr "неуспех при премахване на %s: %s\n"
+
+#: ../alternatives.c:916
+#, c-format
+msgid "altdir %s invalid\n"
+msgstr "altdir %s е невалидна\n"
+
+#: ../alternatives.c:922
+#, c-format
+msgid "admindir %s invalid\n"
+msgstr "admindir %s е невалидна\n"
+
+#: ../alternatives.c:932
+#, c-format
+msgid "alternatives version %s\n"
+msgstr "alternatives версия %s\n"
+
+#: ../chkconfig.c:42
+#, c-format
+msgid "usage:   %s [--list] [--type <type>] [name]\n"
+msgstr "usage: %s [--list] [--type <тип>] [име]\n"
+
+#: ../chkconfig.c:46
+#, c-format
+msgid "         %s [--level <levels>] [--type <type>] <name> %s\n"
+msgstr "%s [--level <нива>] [--type <тип>] <име> %s\n"
+
+#: ../chkconfig.c:66
+#, c-format
+msgid "You do not have enough privileges to perform this operation.\n"
+msgstr "Нямате достатъчно права за да изпълнявате тази операция.\n"
+
+#: ../chkconfig.c:650
+#, c-format
+msgid "--type must be 'sysv' or 'xinetd'\n"
+msgstr "--type трябва да бъде 'sysv' или 'xinetd'\n"
--- chkconfig-1.3.48/po/bn.po
+++ chkconfig-1.3.48/po/bn.po
(renamed from chkconfig-1.3.46/po/bn.po)
--- chkconfig-1.3.48/po/bn_IN.po
+++ chkconfig-1.3.48/po/bn_IN.po
(renamed from chkconfig-1.3.46/po/bn_IN.po)
--- chkconfig-1.3.48/po/bs.po
+++ chkconfig-1.3.48/po/bs.po
(renamed from chkconfig-1.3.46/po/bs.po)
--- chkconfig-1.3.48/po/ca.po
+++ chkconfig-1.3.48/po/ca.po
(renamed from chkconfig-1.3.46/po/ca.po)
--- chkconfig-1.3.48/po/chkconfig.pot
+++ chkconfig-1.3.48/po/chkconfig.pot
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-10 15:18-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../chkconfig.c:38
+#, c-format
+msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
+msgstr ""
+
+#: ../chkconfig.c:39
+#, c-format
+msgid ""
+"This may be freely redistributed under the terms of the GNU Public License.\n"
+msgstr ""
+
+#: ../chkconfig.c:42
+#, c-format
+msgid "usage:   %s [--list] [--type <type>] [name]\n"
+msgstr ""
+
+#: ../chkconfig.c:43
+#, c-format
+msgid "         %s --add <name>\n"
+msgstr ""
+
+#: ../chkconfig.c:44
+#, c-format
+msgid "         %s --del <name>\n"
+msgstr ""
+
+#: ../chkconfig.c:45
+#, c-format
+msgid "         %s --override <name>\n"
+msgstr ""
+
+#: ../chkconfig.c:46
+#, c-format
+msgid "         %s [--level <levels>] [--type <type>] <name> %s\n"
+msgstr ""
+
+#: ../chkconfig.c:53
+#, c-format
+msgid ""
+"service %s supports chkconfig, but is not referenced in any runlevel (run "
+"'chkconfig --add %s')\n"
+msgstr ""
+
+#: ../chkconfig.c:55
+#, c-format
+msgid "service %s does not support chkconfig\n"
+msgstr ""
+
+#: ../chkconfig.c:57
+#, c-format
+msgid "error reading information on service %s: %s\n"
+msgstr ""
+
+#: ../chkconfig.c:66
+#, c-format
+msgid "You do not have enough privileges to perform this operation.\n"
+msgstr ""
+
+#: ../chkconfig.c:384 ../chkconfig.c:389 ../chkconfig.c:503
+msgid "on"
+msgstr ""
+
+#: ../chkconfig.c:384 ../chkconfig.c:389 ../chkconfig.c:503
+msgid "off"
+msgstr ""
+
+#: ../chkconfig.c:465
+#, c-format
+msgid "xinetd based services:\n"
+msgstr ""
+
+#: ../chkconfig.c:467
+#, c-format
+msgid "failed to open directory %s: %s\n"
+msgstr ""
+
+#: ../chkconfig.c:611
+#, c-format
+msgid "%s version %s\n"
+msgstr ""
+
+#: ../chkconfig.c:623
+#, c-format
+msgid "--type must be 'sysv' or 'xinetd'\n"
+msgstr ""
+
+#: ../chkconfig.c:631
+#, c-format
+msgid "only one of --list, --add, --del, or --override may be specified\n"
+msgstr ""
+
+#: ../chkconfig.c:691
+#, c-format
+msgid "only one runlevel may be specified for a chkconfig query\n"
+msgstr ""
+
+#: ../ntsysv.c:46
+msgid "Press <F1> for more information on a service."
+msgstr ""
+
+#: ../ntsysv.c:83 ../ntsysv.c:120
+msgid "Ok"
+msgstr ""
+
+#: ../ntsysv.c:83
+msgid "Back"
+msgstr ""
+
+#: ../ntsysv.c:83
+msgid "Cancel"
+msgstr ""
+
+#: ../ntsysv.c:95
+msgid "What services should be automatically started?"
+msgstr ""
+
+#: ../ntsysv.c:101
+msgid "Services"
+msgstr ""
+
+#: ../ntsysv.c:183 ../ntsysv.c:210 ../ntsysv.c:247
+#, c-format
+msgid "error reading info for service %s: %s\n"
+msgstr ""
+
+#: ../ntsysv.c:256
+#, c-format
+msgid "error reading from directory %s: %s\n"
+msgstr ""
+
+#: ../ntsysv.c:292
+#, c-format
+msgid "You must be root to run %s.\n"
+msgstr ""
+
+#: ../ntsysv.c:309
+#, c-format
+msgid "bad argument to --levels\n"
+msgstr ""
+
+#: ../ntsysv.c:316
+#, c-format
+msgid "No services may be managed by ntsysv!\n"
+msgstr ""
+
+#: ../leveldb.c:261
+#, c-format
+msgid "failed to open %s/init.d: %s\n"
+msgstr ""
+
+#: ../leveldb.c:662
+#, c-format
+msgid "failed to glob pattern %s: %s\n"
+msgstr ""
+
+#: ../leveldb.c:705
+#, c-format
+msgid "cannot determine current run level\n"
+msgstr ""
+
+#: ../leveldb.c:793
+#, c-format
+msgid "failed to make symlink %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:63
+#, c-format
+msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
+msgstr ""
+
+#: ../alternatives.c:64
+#, c-format
+msgid ""
+"This may be freely redistributed under the terms of the GNU Public License.\n"
+"\n"
+msgstr ""
+
+#: ../alternatives.c:65
+#, c-format
+msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
+msgstr ""
+
+#: ../alternatives.c:66
+#, c-format
+msgid "                    [--initscript <service>]\n"
+msgstr ""
+
+#: ../alternatives.c:67
+#, c-format
+msgid "                    [--slave <link> <name> <path>]*\n"
+msgstr ""
+
+#: ../alternatives.c:68
+#, c-format
+msgid "       alternatives --remove <name> <path>\n"
+msgstr ""
+
+#: ../alternatives.c:69
+#, c-format
+msgid "       alternatives --auto <name>\n"
+msgstr ""
+
+#: ../alternatives.c:70
+#, c-format
+msgid "       alternatives --config <name>\n"
+msgstr ""
+
+#: ../alternatives.c:71
+#, c-format
+msgid "       alternatives --display <name>\n"
+msgstr ""
+
+#: ../alternatives.c:72
+#, c-format
+msgid "       alternatives --set <name> <path>\n"
+msgstr ""
+
+#: ../alternatives.c:73
+#, c-format
+msgid "\n"
+msgstr ""
+
+#: ../alternatives.c:74
+#, c-format
+msgid "common options: --verbose --test --help --usage --version\n"
+msgstr ""
+
+#: ../alternatives.c:75
+#, c-format
+msgid "                --altdir <directory> --admindir <directory>\n"
+msgstr ""
+
+#: ../alternatives.c:172
+#, c-format
+msgid "reading %s\n"
+msgstr ""
+
+#: ../alternatives.c:176
+#, c-format
+msgid "failed to open %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:185
+#, c-format
+msgid "failed to read %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:194
+#, c-format
+msgid "%s empty!\n"
+msgstr ""
+
+#: ../alternatives.c:203
+#, c-format
+msgid "bad mode on line 1 of %s\n"
+msgstr ""
+
+#: ../alternatives.c:210
+#, c-format
+msgid "bad primary link in %s\n"
+msgstr ""
+
+#: ../alternatives.c:222
+#, c-format
+msgid "path %s unexpected in %s\n"
+msgstr ""
+
+#: ../alternatives.c:231
+#, c-format
+msgid "missing path for slave %s in %s\n"
+msgstr ""
+
+#: ../alternatives.c:241
+#, c-format
+msgid "unexpected end of file in %s\n"
+msgstr ""
+
+#: ../alternatives.c:250
+#, c-format
+msgid "path to alternate expected in %s\n"
+msgstr ""
+
+#: ../alternatives.c:251 ../alternatives.c:272 ../alternatives.c:295
+#: ../alternatives.c:314
+#, c-format
+msgid "unexpected line in %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:271
+#, c-format
+msgid "numeric priority expected in %s\n"
+msgstr ""
+
+#: ../alternatives.c:294
+#, c-format
+msgid "slave path expected in %s\n"
+msgstr ""
+
+#: ../alternatives.c:322
+#, c-format
+msgid "failed to read link %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:336
+#, c-format
+msgid "link points to no alternative -- setting mode to manual\n"
+msgstr ""
+
+#: ../alternatives.c:341
+#, c-format
+msgid "link changed -- setting mode to manual\n"
+msgstr ""
+
+#: ../alternatives.c:369 ../alternatives.c:376
+#, c-format
+msgid "would remove %s\n"
+msgstr ""
+
+#: ../alternatives.c:371 ../alternatives.c:378 ../alternatives.c:410
+#, c-format
+msgid "failed to remove link %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:394 ../alternatives.c:407
+#, c-format
+msgid "would link %s -> %s\n"
+msgstr ""
+
+#: ../alternatives.c:399 ../alternatives.c:416
+#, c-format
+msgid "failed to link %s -> %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:448
+#, c-format
+msgid "%s already exists\n"
+msgstr ""
+
+#: ../alternatives.c:450
+#, c-format
+msgid "failed to create %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:481
+#, c-format
+msgid "failed to replace %s with %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:507 ../alternatives.c:516
+#, c-format
+msgid "running %s\n"
+msgstr ""
+
+#: ../alternatives.c:543
+#, c-format
+msgid "the primary link for %s must be %s\n"
+msgstr ""
+
+#: ../alternatives.c:623
+#, c-format
+msgid "link %s incorrect for slave %s (%s %s)\n"
+msgstr ""
+
+#: ../alternatives.c:664
+#, c-format
+msgid "%s - status is auto.\n"
+msgstr ""
+
+#: ../alternatives.c:666
+#, c-format
+msgid "%s - status is manual.\n"
+msgstr ""
+
+#: ../alternatives.c:668
+#, c-format
+msgid " link currently points to %s\n"
+msgstr ""
+
+#: ../alternatives.c:671
+#, c-format
+msgid "%s - priority %d\n"
+msgstr ""
+
+#: ../alternatives.c:674
+#, c-format
+msgid " slave %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:679
+#, c-format
+msgid "Current `best' version is %s.\n"
+msgstr ""
+
+#: ../alternatives.c:709
+#, c-format
+msgid "There is %d program that provides '%s'.\n"
+msgstr ""
+
+#: ../alternatives.c:709
+#, c-format
+msgid "There are %d programs which provide '%s'.\n"
+msgstr ""
+
+#: ../alternatives.c:711
+#, c-format
+msgid "  Selection    Command\n"
+msgstr ""
+
+#: ../alternatives.c:720
+#, c-format
+msgid "Enter to keep the current selection[+], or type selection number: "
+msgstr ""
+
+#: ../alternatives.c:723
+#, c-format
+msgid ""
+"\n"
+"error reading choice\n"
+msgstr ""
+
+#: ../alternatives.c:750 ../alternatives.c:776
+#, c-format
+msgid "%s has not been configured as an alternative for %s\n"
+msgstr ""
+
+#: ../alternatives.c:792
+#, c-format
+msgid "(would remove %s\n"
+msgstr ""
+
+#: ../alternatives.c:794
+#, c-format
+msgid "failed to remove %s: %s\n"
+msgstr ""
+
+#: ../alternatives.c:916
+#, c-format
+msgid "altdir %s invalid\n"
+msgstr ""
+
+#: ../alternatives.c:922
+#, c-format
+msgid "admindir %s invalid\n"
+msgstr ""
+
+#: ../alternatives.c:932
+#, c-format
+msgid "alternatives version %s\n"
+msgstr ""
--- chkconfig-1.3.48/po/cs.po
+++ chkconfig-1.3.48/po/cs.po
(renamed from chkconfig-1.3.46/po/cs.po)
--- chkconfig-1.3.48/po/cy.po
+++ chkconfig-1.3.48/po/cy.po
(renamed from chkconfig-1.3.46/po/cy.po)
--- chkconfig-1.3.48/po/da.po
+++ chkconfig-1.3.48/po/da.po
(renamed from chkconfig-1.3.46/po/da.po)
--- chkconfig-1.3.48/po/de.po
+++ chkconfig-1.3.48/po/de.po
(renamed from chkconfig-1.3.46/po/de.po)
--- chkconfig-1.3.48/po/el.po
+++ chkconfig-1.3.48/po/el.po
(renamed from chkconfig-1.3.46/po/el.po)
--- chkconfig-1.3.48/po/en_GB.po
+++ chkconfig-1.3.48/po/en_GB.po
+# English (British) translation.
+# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Abigail Brady <morwen at evilmagic.org>, Bastien Nocera <hadess at hadess.net>, 2007.
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-03 17:22-0500\n"
+"PO-Revision-Date: 2007-06-11 13:15+0000\n"
+"Last-Translator: Abigail Brady <morwen at evilmagic.org>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../chkconfig.c:38
+#, c-format
+msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
+msgstr "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
+
+#: ../chkconfig.c:39
+#, c-format
+msgid "This may be freely redistributed under the terms of the GNU Public License.\n"
+msgstr "This may be freely redistributed under the terms of the GNU Public License.\n"
+
+#: ../chkconfig.c:43
+#, c-format
+msgid "         %s --add <name>\n"
+msgstr "         %s --add <name>\n"
+
+#: ../chkconfig.c:44
+#, c-format
+msgid "         %s --del <name>\n"
+msgstr "         %s --del <name>\n"
+
+#: ../chkconfig.c:45
+#, c-format
+msgid "         %s --override <name>\n"
+msgstr "         %s --override <name>\n"
+
+#: ../chkconfig.c:53
+#, c-format
+msgid "service %s supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add %s')\n"
+msgstr "service %s supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add %s')\n"
+
+#: ../chkconfig.c:55
+#, c-format
+msgid "service %s does not support chkconfig\n"
+msgstr "service %s does not support chkconfig\n"
+
+#: ../chkconfig.c:57
+#, c-format
+msgid "error reading information on service %s: %s\n"
+msgstr "error reading information on service %s: %s\n"
+
+#: ../chkconfig.c:411 ../chkconfig.c:416 ../chkconfig.c:530
+msgid "on"
+msgstr "on"
+
+#: ../chkconfig.c:411 ../chkconfig.c:416 ../chkconfig.c:530
+msgid "off"
+msgstr "off"
+
+#: ../chkconfig.c:492
+#, c-format
+msgid "xinetd based services:\n"
+msgstr "xinetd based services:\n"
+
+#: ../chkconfig.c:494
+#, c-format
+msgid "failed to open directory %s: %s\n"
+msgstr "failed to open directory %s: %s\n"
+
+#: ../chkconfig.c:638
+#, c-format
+msgid "%s version %s\n"
+msgstr "%s version %s\n"
+
+#: ../chkconfig.c:658
+#, c-format
+msgid "only one of --list, --add, --del, or --override may be specified\n"
+msgstr "only one of --list, --add, --del, or --override may be specified\n"
+
+#: ../chkconfig.c:718
+#, c-format
+msgid "only one runlevel may be specified for a chkconfig query\n"
+msgstr "only one runlevel may be specified for a chkconfig query\n"
+
+#: ../ntsysv.c:46
+msgid "Press <F1> for more information on a service."
+msgstr "Press <F1> for more information on a service."
+
+#: ../ntsysv.c:83 ../ntsysv.c:120
+msgid "Ok"
+msgstr "Ok"
+
+#: ../ntsysv.c:83
+msgid "Back"
+msgstr "Back"
+
+#: ../ntsysv.c:83
+msgid "Cancel"
+msgstr "Cancel"
+
+#: ../ntsysv.c:95
+msgid "What services should be automatically started?"
+msgstr "What services should be automatically started?"
+
+#: ../ntsysv.c:101
+msgid "Services"
+msgstr "Services"
+
+#: ../ntsysv.c:183 ../ntsysv.c:210 ../ntsysv.c:248
+#, c-format
+msgid "error reading info for service %s: %s\n"
+msgstr "error reading info for service %s: %s\n"
+
+#: ../ntsysv.c:257
+#, c-format
+msgid "error reading from directory %s: %s\n"
+msgstr "error reading from directory %s: %s\n"
+
+#: ../ntsysv.c:293
+#, c-format
+msgid "You must be root to run %s.\n"
+msgstr "You must be root to run %s.\n"
+
+#: ../ntsysv.c:310
+#, c-format
+msgid "bad argument to --levels\n"
+msgstr "bad argument to --levels\n"
+
+#: ../ntsysv.c:317
+#, c-format
+msgid "No services may be managed by ntsysv!\n"
+msgstr "No services may be managed by ntsysv!\n"
+
+#: ../leveldb.c:261
+#, c-format
+msgid "failed to open %s/init.d: %s\n"
+msgstr "failed to open %s/init.d: %s\n"
+
+#: ../leveldb.c:662
+#, c-format
+msgid "failed to glob pattern %s: %s\n"
+msgstr "failed to glob pattern %s: %s\n"
+
+#: ../leveldb.c:705
+#, c-format
+msgid "cannot determine current run level\n"
+msgstr "cannot determine current run level\n"
+
+#: ../leveldb.c:793
+#, c-format
+msgid "failed to make symlink %s: %s\n"
+msgstr "failed to make symlink %s: %s\n"
+
+#: ../alternatives.c:63
+#, c-format
+msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
+msgstr "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
+
+#: ../alternatives.c:64
+#, c-format
+msgid ""
+"This may be freely redistributed under the terms of the GNU Public License.\n"
+"\n"
+msgstr ""
+"This may be freely redistributed under the terms of the GNU Public License.\n"
+"\n"
+
+#: ../alternatives.c:65
+#, c-format
+msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
+msgstr "usage: alternatives --install <link> <name> <path> <priority>\n"
+
+#: ../alternatives.c:66
+#, c-format
+msgid "                    [--initscript <service>]\n"
+msgstr "                    [--initscript <service>]\n"
+
+#: ../alternatives.c:67
+#, c-format
+msgid "                    [--slave <link> <name> <path>]*\n"
+msgstr "                    [--slave <link> <name> <path>]*\n"
+
+#: ../alternatives.c:68
+#, c-format
+msgid "       alternatives --remove <name> <path>\n"
+msgstr "       alternatives --remove <name> <path>\n"
+
+#: ../alternatives.c:69
+#, c-format
+msgid "       alternatives --auto <name>\n"
+msgstr "       alternatives --auto <name>\n"
+
+#: ../alternatives.c:70
+#, c-format
+msgid "       alternatives --config <name>\n"
+msgstr "       alternatives --config <name>\n"
+
+#: ../alternatives.c:71
+#, c-format
+msgid "       alternatives --display <name>\n"
+msgstr "       alternatives --display <name>\n"
+
+#: ../alternatives.c:72
+#, c-format
+msgid "       alternatives --set <name> <path>\n"
+msgstr "       alternatives --set <name> <path>\n"
+
+#: ../alternatives.c:73
+#, c-format
+msgid "\n"
+msgstr "\n"
+
+#: ../alternatives.c:74
+#, c-format
+msgid "common options: --verbose --test --help --usage --version\n"
+msgstr "common options: --verbose --test --help --usage --version\n"
+
+#: ../alternatives.c:75
+#, c-format
+msgid "                --altdir <directory> --admindir <directory>\n"
+msgstr "                --altdir <directory> --admindir <directory>\n"
+
+#: ../alternatives.c:172
+#, c-format
+msgid "reading %s\n"
+msgstr "reading %s\n"
+
+#: ../alternatives.c:176
+#, c-format
+msgid "failed to open %s: %s\n"
+msgstr "failed to open %s: %s\n"
+
+#: ../alternatives.c:185
+#, c-format
+msgid "failed to read %s: %s\n"
+msgstr "failed to read %s: %s\n"
+
+#: ../alternatives.c:194
+#, c-format
+msgid "%s empty!\n"
+msgstr "%s empty!\n"
+
+#: ../alternatives.c:203
+#, c-format
+msgid "bad mode on line 1 of %s\n"
+msgstr "bad mode on line 1 of %s\n"
+
+#: ../alternatives.c:210
+#, c-format
+msgid "bad primary link in %s\n"
+msgstr "bad primary link in %s\n"
+
+#: ../alternatives.c:222
+#, c-format
+msgid "path %s unexpected in %s\n"
+msgstr "path %s unexpected in %s\n"
+
+#: ../alternatives.c:231
+#, c-format
+msgid "missing path for slave %s in %s\n"
+msgstr "missing path for slave %s in %s\n"
+
+#: ../alternatives.c:241
+#, c-format
+msgid "unexpected end of file in %s\n"
+msgstr "unexpected end of file in %s\n"
+
+#: ../alternatives.c:250
+#, c-format
+msgid "path to alternate expected in %s\n"
+msgstr "path to alternate expected in %s\n"
+
+#: ../alternatives.c:251 ../alternatives.c:272 ../alternatives.c:295
+#: ../alternatives.c:314
+#, c-format
+msgid "unexpected line in %s: %s\n"
+msgstr "unexpected line in %s: %s\n"
+
+#: ../alternatives.c:271
+#, c-format
+msgid "numeric priority expected in %s\n"
+msgstr "numeric priority expected in %s\n"
+
+#: ../alternatives.c:294
+#, c-format
+msgid "slave path expected in %s\n"
+msgstr "slave path expected in %s\n"
+
+#: ../alternatives.c:322
+#, c-format
+msgid "failed to read link %s: %s\n"
+msgstr "failed to read link %s: %s\n"
+
+#: ../alternatives.c:336
+#, c-format
+msgid "link points to no alternative -- setting mode to manual\n"
+msgstr "link points to no alternative -- setting mode to manual\n"
+
+#: ../alternatives.c:341
+#, c-format
+msgid "link changed -- setting mode to manual\n"
+msgstr "link changed -- setting mode to manual\n"
+
+#: ../alternatives.c:369 ../alternatives.c:376
+#, c-format
+msgid "would remove %s\n"
+msgstr "would remove %s\n"
+
+#: ../alternatives.c:371 ../alternatives.c:378 ../alternatives.c:410
+#, c-format
+msgid "failed to remove link %s: %s\n"
+msgstr "failed to remove link %s: %s\n"
+
+#: ../alternatives.c:394 ../alternatives.c:407
+#, c-format
+msgid "would link %s -> %s\n"
+msgstr "would link %s -> %s\n"
+
+#: ../alternatives.c:399 ../alternatives.c:416
+#, c-format
+msgid "failed to link %s -> %s: %s\n"
+msgstr "failed to link %s -> %s: %s\n"
+
+#: ../alternatives.c:448
+#, c-format
+msgid "%s already exists\n"
+msgstr "%s already exists\n"
+
+#: ../alternatives.c:450
+#, c-format
+msgid "failed to create %s: %s\n"
+msgstr "failed to create %s: %s\n"
+
+#: ../alternatives.c:481
+#, c-format
+msgid "failed to replace %s with %s: %s\n"
+msgstr "failed to replace %s with %s: %s\n"
+
+#: ../alternatives.c:507 ../alternatives.c:516
+#, c-format
+msgid "running %s\n"
+msgstr "running %s\n"
+
+#: ../alternatives.c:543
+#, c-format
+msgid "the primary link for %s must be %s\n"
+msgstr "the primary link for %s must be %s\n"
+
+#: ../alternatives.c:623
+#, c-format
+msgid "link %s incorrect for slave %s (%s %s)\n"
+msgstr "link %s incorrect for slave %s (%s %s)\n"
+
+#: ../alternatives.c:664
+#, c-format
+msgid "%s - status is auto.\n"
+msgstr "%s - status is auto.\n"
+
+#: ../alternatives.c:666
+#, c-format
+msgid "%s - status is manual.\n"
+msgstr "%s - status is manual.\n"
+
+#: ../alternatives.c:668
+#, c-format
+msgid " link currently points to %s\n"
+msgstr " link currently points to %s\n"
+
+#: ../alternatives.c:671
+#, c-format
+msgid "%s - priority %d\n"
+msgstr "%s - priority %d\n"
+
+#: ../alternatives.c:674
+#, c-format
+msgid " slave %s: %s\n"
+msgstr " slave %s: %s\n"
+
+#: ../alternatives.c:679
+#, c-format
+msgid "Current `best' version is %s.\n"
+msgstr "Current `best' version is %s.\n"
+
+#: ../alternatives.c:709
+#, c-format
+msgid "There is %d program that provides '%s'.\n"
+msgstr "There is %d program that provides '%s'.\n"
+
+#: ../alternatives.c:709
+#, c-format
+msgid "There are %d programs which provide '%s'.\n"
+msgstr "There are %d programs which provide '%s'.\n"
+
+#: ../alternatives.c:711
+#, c-format
+msgid "  Selection    Command\n"
+msgstr "  Selection    Command\n"
+
+#: ../alternatives.c:720
+#, c-format
+msgid "Enter to keep the current selection[+], or type selection number: "
+msgstr "Enter to keep the current selection[+], or type selection number: "
+
+#: ../alternatives.c:723
+#, c-format
+msgid ""
+"\n"
+"error reading choice\n"
+msgstr ""
+"\n"
+"error reading choice\n"
+
+#: ../alternatives.c:750 ../alternatives.c:776
+#, c-format
+msgid "%s has not been configured as an alternative for %s\n"
+msgstr "%s has not been configured as an alternative for %s\n"
+
+#: ../alternatives.c:792
+#, c-format
+msgid "(would remove %s\n"
+msgstr "(would remove %s\n"
+
+#: ../alternatives.c:794
+#, c-format
+msgid "failed to remove %s: %s\n"
+msgstr "failed to remove %s: %s\n"
+
+#: ../alternatives.c:916
+#, c-format
+msgid "altdir %s invalid\n"
+msgstr "altdir %s invalid\n"
+
+#: ../alternatives.c:922
+#, c-format
+msgid "admindir %s invalid\n"
+msgstr "admindir %s invalid\n"
+
+#: ../alternatives.c:932
+#, c-format
+msgid "alternatives version %s\n"
+msgstr "alternatives version %s\n"
+
+#: ../chkconfig.c:42
+#, c-format
+msgid "usage:   %s [--list] [--type <type>] [name]\n"
+msgstr "usage: %s [--list] [--type <type>] [name]\n"
+
+#: ../chkconfig.c:46
+#, c-format
+msgid "         %s [--level <levels>] [--type <type>] <name> %s\n"
+msgstr "%s [--level <levels>] [--type <type>] <name> %s\n"
+
+#: ../chkconfig.c:66
+#, c-format
+msgid "You do not have enough privileges to perform this operation.\n"
+msgstr "You do not have enough privileges to perform this operation.\n"
+
+#: ../chkconfig.c:650
+#, c-format
+msgid "--type must be 'sysv' or 'xinetd'\n"
+msgstr "--type must be 'sysv' or 'xinetd'\n"
--- chkconfig-1.3.48/po/es.po
+++ chkconfig-1.3.48/po/es.po
(renamed from chkconfig-1.3.46/po/es.po)
--- chkconfig-1.3.48/po/et.po
+++ chkconfig-1.3.48/po/et.po
(renamed from chkconfig-1.3.46/po/et.po)
--- chkconfig-1.3.48/po/fi.po
+++ chkconfig-1.3.48/po/fi.po
(renamed from chkconfig-1.3.46/po/fi.po)
--- chkconfig-1.3.48/po/fr.po
+++ chkconfig-1.3.48/po/fr.po
(renamed from chkconfig-1.3.46/po/fr.po)
--- chkconfig-1.3.48/po/gl.po
+++ chkconfig-1.3.48/po/gl.po
(renamed from chkconfig-1.3.46/po/gl.po)
--- chkconfig-1.3.48/po/gu.po
+++ chkconfig-1.3.48/po/gu.po
(renamed from chkconfig-1.3.46/po/gu.po)
--- chkconfig-1.3.48/po/he.po
+++ chkconfig-1.3.48/po/he.po
(renamed from chkconfig-1.3.46/po/he.po)
--- chkconfig-1.3.48/po/hi.po
+++ chkconfig-1.3.48/po/hi.po
(renamed from chkconfig-1.3.46/po/hi.po)
--- chkconfig-1.3.48/po/hr.po
+++ chkconfig-1.3.48/po/hr.po
(renamed from chkconfig-1.3.46/po/hr.po)
--- chkconfig-1.3.48/po/hu.po
+++ chkconfig-1.3.48/po/hu.po
(renamed from chkconfig-1.3.46/po/hu.po)
--- chkconfig-1.3.48/po/hy.po
+++ chkconfig-1.3.48/po/hy.po
(renamed from chkconfig-1.3.46/po/hy.po)
--- chkconfig-1.3.48/po/id.po
+++ chkconfig-1.3.48/po/id.po
(renamed from chkconfig-1.3.46/po/id.po)
--- chkconfig-1.3.48/po/is.po
+++ chkconfig-1.3.48/po/is.po
(renamed from chkconfig-1.3.46/po/is.po)
--- chkconfig-1.3.48/po/it.po
+++ chkconfig-1.3.48/po/it.po
(renamed from chkconfig-1.3.46/po/it.po)
--- chkconfig-1.3.48/po/ja.po
+++ chkconfig-1.3.48/po/ja.po
(renamed from chkconfig-1.3.46/po/ja.po)
--- chkconfig-1.3.48/po/ka.po
+++ chkconfig-1.3.48/po/ka.po
(renamed from chkconfig-1.3.46/po/ka.po)
--- chkconfig-1.3.48/po/kn.po
+++ chkconfig-1.3.48/po/kn.po
(renamed from chkconfig-1.3.46/po/kn.po)
--- chkconfig-1.3.48/po/ko.po
+++ chkconfig-1.3.48/po/ko.po
(renamed from chkconfig-1.3.46/po/ko.po)
--- chkconfig-1.3.48/po/ku.po
+++ chkconfig-1.3.48/po/ku.po
(renamed from chkconfig-1.3.46/po/ku.po)
--- chkconfig-1.3.48/po/lo.po
+++ chkconfig-1.3.48/po/lo.po
(renamed from chkconfig-1.3.46/po/lo.po)
--- chkconfig-1.3.48/po/lv.po
+++ chkconfig-1.3.48/po/lv.po
(renamed from chkconfig-1.3.46/po/lv.po)
--- chkconfig-1.3.48/po/mai.po
+++ chkconfig-1.3.48/po/mai.po
(renamed from chkconfig-1.3.46/po/mai.po)
--- chkconfig-1.3.48/po/mk.po
+++ chkconfig-1.3.48/po/mk.po
(renamed from chkconfig-1.3.46/po/mk.po)
--- chkconfig-1.3.48/po/ml.po
+++ chkconfig-1.3.48/po/ml.po
(renamed from chkconfig-1.3.46/po/ml.po)
--- chkconfig-1.3.48/po/mr.po
+++ chkconfig-1.3.48/po/mr.po
(renamed from chkconfig-1.3.46/po/mr.po)
--- chkconfig-1.3.48/po/ms.po
+++ chkconfig-1.3.48/po/ms.po
(renamed from chkconfig-1.3.46/po/ms.po)
--- chkconfig-1.3.48/po/my.po
+++ chkconfig-1.3.48/po/my.po
(renamed from chkconfig-1.3.46/po/my.po)
--- chkconfig-1.3.48/po/nb.po
+++ chkconfig-1.3.48/po/nb.po
(renamed from chkconfig-1.3.46/po/nb.po)
--- chkconfig-1.3.48/po/nl.po
+++ chkconfig-1.3.48/po/nl.po
+# translation of chkconfig.master.nl.po to Dutch
+# Dutch translation of chkconfig
+# Copyright (C) 2003, 2005, 2007, 2009 Free Software Foundation, Inc.
+# Tino Meinen <a.t.meinen at chello.nl>, 2003, 2004.
+# Peter van Egdom <p.van.egdom at gmail.com>, 2003, 2005, 2007.
+# R.E. van der Luit <nippur at fedoraproject.org>, 2009.
+# Geert Warrink <geert.warrink at onsnet.nu>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: chkconfig.master.nl\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-03 17:22-0500\n"
+"PO-Revision-Date: 2010-06-22 17:34+0200\n"
+"Last-Translator: Geert Warrink <geert.warrink at onsnet.nu>\n"
+"Language-Team: Fedora\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Virtaal 0.5.2\n"
+
+#: ../chkconfig.c:38
+#, c-format
+msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
+msgstr "%s versie %s - Copyright © 1997-2000 Red Hat, Inc.\n"
+
+#: ../chkconfig.c:39
+#, c-format
+msgid ""
+"This may be freely redistributed under the terms of the GNU Public License.\n"
+msgstr "Dit mag vrijelijk worden verspreid onder de voorwaarden van de GNU Public "
+"License.\n"
+
+#: ../chkconfig.c:42
+#, c-format
+msgid "usage:   %s [--list] [--type <type>] [name]\n"
+msgstr "gebruik:   %s [--list] [--type <type>] [naam]\n"
+
+#: ../chkconfig.c:43
+#, c-format
+msgid "         %s --add <name>\n"
+msgstr "         %s --add <naam>\n"
+
+#: ../chkconfig.c:44
+#, c-format
+msgid "         %s --del <name>\n"
+msgstr "         %s --del <naam>\n"
+
+#: ../chkconfig.c:45
+#, c-format
+msgid "         %s --override <name>\n"
+msgstr "         %s --override <naam>\n"
+
+#: ../chkconfig.c:46
+#, c-format
+msgid "         %s [--level <levels>] [--type <type>] <name> %s\n"
+msgstr "         %s [--level <levels>] [--type <type>] <naam> %s\n"
+
+#: ../chkconfig.c:53
+#, c-format
+msgid ""
+"service %s supports chkconfig, but is not referenced in any runlevel (run "
+"'chkconfig --add %s')\n"
+msgstr "service %s ondersteunt chkconfig, maar in geen enkel runlevel staat een "
+"verwijzing naar deze service (voer 'chkconfig --add %s' uit)\n"
+
+#: ../chkconfig.c:55
+#, c-format
+msgid "service %s does not support chkconfig\n"
+msgstr "service %s ondersteunt chkconfig niet\n"
+
+#: ../chkconfig.c:57
+#, c-format
+msgid "error reading information on service %s: %s\n"
+msgstr "fout bij lezen van informatie over service %s: %s\n"
+
+#: ../chkconfig.c:66
+#, c-format
+msgid "You do not have enough privileges to perform this operation.\n"
+msgstr "Je hebt niet genoeg rechten om deze actie uit te voeren.\n"
+
+#: ../chkconfig.c:411 ../chkconfig.c:416 ../chkconfig.c:530
+msgid "on"
+msgstr "aan"
+
+#: ../chkconfig.c:411 ../chkconfig.c:416 ../chkconfig.c:530
+msgid "off"
+msgstr "uit"
+
+#: ../chkconfig.c:492
+#, c-format
+msgid "xinetd based services:\n"
+msgstr "services gebaseerd op xinetd:\n"
+
+#: ../chkconfig.c:494
+#, c-format
+msgid "failed to open directory %s: %s\n"
+msgstr "openen van map %s mislukt: %s\n"
+
+#: ../chkconfig.c:638
+#, c-format
+msgid "%s version %s\n"
+msgstr "%s versie %s\n"
+
+#: ../chkconfig.c:650
+#, c-format
+msgid "--type must be 'sysv' or 'xinetd'\n"
+msgstr "--type moet zijn 'sysv' of 'xinetd'\n"
+
+#: ../chkconfig.c:658
+#, c-format
+msgid "only one of --list, --add, --del, or --override may be specified\n"
+msgstr "slechts één van --list, --add, --del of --override mag worden opgegeven\n"
+
+#: ../chkconfig.c:718
+#, c-format
+msgid "only one runlevel may be specified for a chkconfig query\n"
+msgstr "slechts één runlevel mag worden opgegeven voor een chkconfig zoekopdracht\n"
+
+#: ../ntsysv.c:46
+msgid "Press <F1> for more information on a service."
+msgstr "Druk op <F1> voor meer informatie over een service."
+
+#: ../ntsysv.c:83 ../ntsysv.c:120
+msgid "Ok"
+msgstr "Ok"
+
+#: ../ntsysv.c:83
+msgid "Back"
+msgstr "Terug"
+
+#: ../ntsysv.c:83
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: ../ntsysv.c:95
+msgid "What services should be automatically started?"
+msgstr "Welke services moeten automatisch worden gestart?"
+
+#: ../ntsysv.c:101
+msgid "Services"
+msgstr "Services"
+
+#: ../ntsysv.c:183 ../ntsysv.c:210 ../ntsysv.c:248
+#, c-format
+msgid "error reading info for service %s: %s\n"
+msgstr "fout bij lezen van informatie over service %s: %s\n"
+
+#: ../ntsysv.c:257
+#, c-format
+msgid "error reading from directory %s: %s\n"
+msgstr "fout bij lezen uit map %s: %s\n"
+
+#: ../ntsysv.c:293
+#, c-format
+msgid "You must be root to run %s.\n"
+msgstr "Je moet root zijn om %s uit te kunnen voeren.\n"
+
+#: ../ntsysv.c:310
+#, c-format
+msgid "bad argument to --levels\n"
+msgstr "verkeerd argument voor --levels\n"
+
+#: ../ntsysv.c:317
+#, c-format
+msgid "No services may be managed by ntsysv!\n"
+msgstr "Er mogen geen services worden beheerd door ntsysv!\n"
+
+#: ../leveldb.c:261
+#, c-format
+msgid "failed to open %s/init.d: %s\n"
+msgstr "openen van %s/init.d mislukt: %s\n"
+
+#: ../leveldb.c:662
+#, c-format
+msgid "failed to glob pattern %s: %s\n"
+msgstr "klonteren van patroon %s mislukt: %s\n"
+
+#: ../leveldb.c:705
+#, c-format
+msgid "cannot determine current run level\n"
+msgstr "kan het huidige runlevel niet bepalen\n"
+
+#: ../leveldb.c:793
+#, c-format
+msgid "failed to make symlink %s: %s\n"
+msgstr "maken van symbolische link %s mislukt: %s\n"
+
+#: ../alternatives.c:63
+#, c-format
+msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
+msgstr "alternatives versie %s - Copyright © 2001 Red Hat, Inc.\n"
+
+#: ../alternatives.c:64
+#, c-format
+msgid ""
+"This may be freely redistributed under the terms of the GNU Public License.\n"
+"\n"
+msgstr ""
+"Dit mag vrijelijk worden verspreid onder de voorwaarden van de GNU Public "
+"License.\n"
+"\n"
+
+#: ../alternatives.c:65
+#, c-format
+msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
+msgstr "gebruik: alternatives --install <link> <naam> <pad> <prioriteit>\n"
+
+#: ../alternatives.c:66
+#, c-format
+msgid "                    [--initscript <service>]\n"
+msgstr "                    [--initscript <service>]\n"
+
+#: ../alternatives.c:67
+#, c-format
+msgid "                    [--slave <link> <name> <path>]*\n"
+msgstr "                    [--slave <link> <naam> <pad>]*\n"
+
+#: ../alternatives.c:68
+#, c-format
+msgid "       alternatives --remove <name> <path>\n"
+msgstr "       alternatives --remove <naam> <pad>\n"
+
+#: ../alternatives.c:69
+#, c-format
+msgid "       alternatives --auto <name>\n"
+msgstr "       alternatives --auto <naam>\n"
+
+#: ../alternatives.c:70
+#, c-format
+msgid "       alternatives --config <name>\n"
+msgstr "       alternatives --config <naam>\n"
+
+#: ../alternatives.c:71
+#, c-format
+msgid "       alternatives --display <name>\n"
+msgstr "       alternatives --display <naam>\n"
+
+#: ../alternatives.c:72
+#, c-format
+msgid "       alternatives --set <name> <path>\n"
+msgstr "       alternatives --set <naam> <pad>\n"
+
+#: ../alternatives.c:73
+#, c-format
+msgid "\n"
+msgstr "\n"
+
+#: ../alternatives.c:74
+#, c-format
+msgid "common options: --verbose --test --help --usage --version\n"
+msgstr "gebruikelijke opties: --verbose --test --help --usage --version\n"
+
+#: ../alternatives.c:75
+#, c-format
+msgid "                --altdir <directory> --admindir <directory>\n"
+msgstr "                --altdir <map> --admindir <map>\n"
+
+#: ../alternatives.c:172
+#, c-format
+msgid "reading %s\n"
+msgstr "lezen van %s\n"
+
+#: ../alternatives.c:176
+#, c-format
+msgid "failed to open %s: %s\n"
+msgstr "openen van %s mislukt: %s\n"
+
+#: ../alternatives.c:185
+#, c-format
+msgid "failed to read %s: %s\n"
+msgstr "lezen van %s mislukt: %s\n"
+
+#: ../alternatives.c:194
+#, c-format
+msgid "%s empty!\n"
+msgstr "%s is leeg!\n"
+
+#: ../alternatives.c:203
+#, c-format
+msgid "bad mode on line 1 of %s\n"
+msgstr "verkeerde mode op regel 1 van %s\n"
+
+#: ../alternatives.c:210
+#, c-format
+msgid "bad primary link in %s\n"
+msgstr "verkeerde primaire link in %s\n"
+
+#: ../alternatives.c:222
+#, c-format
+msgid "path %s unexpected in %s\n"
+msgstr "pad %s niet verwacht in %s\n"
+
+#: ../alternatives.c:231
+#, c-format
+msgid "missing path for slave %s in %s\n"
+msgstr "ontbrekend pad voor slaaf %s in %s\n"
+
+#: ../alternatives.c:241
+#, c-format
+msgid "unexpected end of file in %s\n"
+msgstr "onverwacht einde van bestand in %s\n"
+
+#: ../alternatives.c:250
+#, c-format
+msgid "path to alternate expected in %s\n"
+msgstr "pad voor alternatief verwacht in %s\n"
+
+#: ../alternatives.c:251 ../alternatives.c:272 ../alternatives.c:295
+#: ../alternatives.c:314
+#, c-format
+msgid "unexpected line in %s: %s\n"
+msgstr "onverwachte regel in %s: %s\n"
+
+#: ../alternatives.c:271
+#, c-format
+msgid "numeric priority expected in %s\n"
+msgstr "numerieke prioriteit verwacht in %s\n"
+
+#: ../alternatives.c:294
+#, c-format
+msgid "slave path expected in %s\n"
+msgstr "pad voor slaaf verwacht in %s\n"
+
+#: ../alternatives.c:322
+#, c-format
+msgid "failed to read link %s: %s\n"
+msgstr "lezen van link %s mislukt: %s\n"
+
+#: ../alternatives.c:336
+#, c-format
+msgid "link points to no alternative -- setting mode to manual\n"
+msgstr "link verwijst niet naar alternatief -- mode wordt op handmatig ingesteld\n"
+
+#: ../alternatives.c:341
+#, c-format
+msgid "link changed -- setting mode to manual\n"
+msgstr "link veranderd -- mode wordt op handmatig ingesteld\n"
+
+#: ../alternatives.c:369 ../alternatives.c:376
+#, c-format
+msgid "would remove %s\n"
+msgstr "zou %s verwijderen\n"
+
+#: ../alternatives.c:371 ../alternatives.c:378 ../alternatives.c:410
+#, c-format
+msgid "failed to remove link %s: %s\n"
+msgstr "verwijderen van link %s mislukt: %s\n"
+
+#: ../alternatives.c:394 ../alternatives.c:407
+#, c-format
+msgid "would link %s -> %s\n"
+msgstr "zou %s linken -> %s\n"
+
+#: ../alternatives.c:399 ../alternatives.c:416
+#, c-format
+msgid "failed to link %s -> %s: %s\n"
+msgstr "aanmaken van link %s -> %s mislukt: %s\n"
+
+#: ../alternatives.c:448
+#, c-format
+msgid "%s already exists\n"
+msgstr "%s bestaat reeds\n"
+
+#: ../alternatives.c:450
+#, c-format
+msgid "failed to create %s: %s\n"
+msgstr "aanmaken van %s mislukt: %s\n"
+
+#: ../alternatives.c:481
+#, c-format
+msgid "failed to replace %s with %s: %s\n"
+msgstr "vervangen van %s door %s mislukt: %s\n"
+
+#: ../alternatives.c:507 ../alternatives.c:516
+#, c-format
+msgid "running %s\n"
+msgstr "uitvoeren van %s\n"
+
+#: ../alternatives.c:543
+#, c-format
+msgid "the primary link for %s must be %s\n"
+msgstr "de primaire link voor %s moet zijn %s\n"
+
+#: ../alternatives.c:623
+#, c-format
+msgid "link %s incorrect for slave %s (%s %s)\n"
+msgstr "link %s is incorrect voor slaaf %s (%s %s)\n"
+
+#: ../alternatives.c:664
+#, c-format
+msgid "%s - status is auto.\n"
+msgstr "%s - status is auto.\n"
+
+#: ../alternatives.c:666
+#, c-format
+msgid "%s - status is manual.\n"
+msgstr "%s - status is handmatig.\n"
+
+#: ../alternatives.c:668
+#, c-format
+msgid " link currently points to %s\n"
+msgstr " link wijst momenteel naar %s\n"
+
+#: ../alternatives.c:671
+#, c-format
+msgid "%s - priority %d\n"
+msgstr "%s - prioriteit %d\n"
+
+#: ../alternatives.c:674
+#, c-format
+msgid " slave %s: %s\n"
+msgstr " slaaf %s: %s\n"
+
+#: ../alternatives.c:679
+#, c-format
+msgid "Current `best' version is %s.\n"
+msgstr "Huidige 'beste' versie is %s.\n"
+
+#: ../alternatives.c:709
+#, c-format
+msgid "There is %d program that provides '%s'.\n"
+msgstr "Er is %d programma die '%s' levert.\n"
+
+#: ../alternatives.c:709
+#, c-format
+msgid "There are %d programs which provide '%s'.\n"
+msgstr "Er zijn %d programma's die '%s' leveren.\n"
+
+#: ../alternatives.c:711
+#, c-format
+msgid "  Selection    Command\n"
+msgstr "  Selectie    Commando\n"
+
+#: ../alternatives.c:720
+#, c-format
+msgid "Enter to keep the current selection[+], or type selection number: "
+msgstr ""
+"<enter> om de huidige selectie te bewaren[+], of type een selectie nummer: "
+
+#: ../alternatives.c:723
+#, c-format
+msgid ""
+"\n"
+"error reading choice\n"
+msgstr ""
+"\n"
+"fout bij lezen van keuze\n"
+
+#: ../alternatives.c:750 ../alternatives.c:776
+#, c-format
+msgid "%s has not been configured as an alternative for %s\n"
+msgstr "%s is niet geconfigureerd als alternatief voor %s\n"
+
+#: ../alternatives.c:792
+#, c-format
+msgid "(would remove %s\n"
+msgstr "(zou %s verwijderen\n"
+
+#: ../alternatives.c:794
+#, c-format
+msgid "failed to remove %s: %s\n"
+msgstr "verwijderen van %s mislukt: %s\n"
+
+#: ../alternatives.c:916
+#, c-format
+msgid "altdir %s invalid\n"
+msgstr "altdir %s is ongeldig\n"
+
+#: ../alternatives.c:922
+#, c-format
+msgid "admindir %s invalid\n"
+msgstr "admindir %s is ongeldig\n"
+
+#: ../alternatives.c:932
+#, c-format
+msgid "alternatives version %s\n"
+msgstr "alternatives versie %s\n"
--- chkconfig-1.3.48/po/nn.po
+++ chkconfig-1.3.48/po/nn.po
(renamed from chkconfig-1.3.46/po/nn.po)
--- chkconfig-1.3.48/po/or.po
+++ chkconfig-1.3.48/po/or.po
(renamed from chkconfig-1.3.46/po/or.po)
--- chkconfig-1.3.48/po/pa.po
+++ chkconfig-1.3.48/po/pa.po
(renamed from chkconfig-1.3.46/po/pa.po)
--- chkconfig-1.3.48/po/pl.po
+++ chkconfig-1.3.48/po/pl.po
(renamed from chkconfig-1.3.46/po/pl.po)
--- chkconfig-1.3.48/po/pt.po
+++ chkconfig-1.3.48/po/pt.po
(renamed from chkconfig-1.3.46/po/pt.po)
--- chkconfig-1.3.48/po/pt_BR.po
+++ chkconfig-1.3.48/po/pt_BR.po
(renamed from chkconfig-1.3.46/po/pt_BR.po)
--- chkconfig-1.3.48/po/ro.po
+++ chkconfig-1.3.48/po/ro.po
(renamed from chkconfig-1.3.46/po/ro.po)
--- chkconfig-1.3.48/po/ru.po
+++ chkconfig-1.3.48/po/ru.po
(renamed from chkconfig-1.3.46/po/ru.po)
--- chkconfig-1.3.48/po/si.po
+++ chkconfig-1.3.48/po/si.po
(renamed from chkconfig-1.3.46/po/si.po)
--- chkconfig-1.3.48/po/sk.po
+++ chkconfig-1.3.48/po/sk.po
(renamed from chkconfig-1.3.46/po/sk.po)
--- chkconfig-1.3.48/po/sl.po
+++ chkconfig-1.3.48/po/sl.po
(renamed from chkconfig-1.3.46/po/sl.po)
--- chkconfig-1.3.48/po/sq.po
+++ chkconfig-1.3.48/po/sq.po
(renamed from chkconfig-1.3.46/po/sq.po)
--- chkconfig-1.3.48/po/sr.po
+++ chkconfig-1.3.48/po/sr.po
(renamed from chkconfig-1.3.46/po/sr.po)
--- chkconfig-1.3.48/po/sr at latin.po
+++ chkconfig-1.3.48/po/sr at latin.po
(renamed from chkconfig-1.3.46/po/sr at latin.po)
--- chkconfig-1.3.48/po/sv.po
+++ chkconfig-1.3.48/po/sv.po
(renamed from chkconfig-1.3.46/po/sv.po)
--- chkconfig-1.3.48/po/ta.po
+++ chkconfig-1.3.48/po/ta.po
(renamed from chkconfig-1.3.46/po/ta.po)
--- chkconfig-1.3.48/po/te.po
+++ chkconfig-1.3.48/po/te.po
(renamed from chkconfig-1.3.46/po/te.po)
--- chkconfig-1.3.48/po/tg.po
+++ chkconfig-1.3.48/po/tg.po
(renamed from chkconfig-1.3.46/po/tg.po)
--- chkconfig-1.3.48/po/tr.po
+++ chkconfig-1.3.48/po/tr.po
(renamed from chkconfig-1.3.46/po/tr.po)
--- chkconfig-1.3.48/po/uk.po
+++ chkconfig-1.3.48/po/uk.po
(renamed from chkconfig-1.3.46/po/uk.po)
--- chkconfig-1.3.48/po/ur.po
+++ chkconfig-1.3.48/po/ur.po
(renamed from chkconfig-1.3.46/po/ur.po)
--- chkconfig-1.3.48/po/vi.po
+++ chkconfig-1.3.48/po/vi.po
(renamed from chkconfig-1.3.46/po/vi.po)
--- chkconfig-1.3.48/po/zh_CN.po
+++ chkconfig-1.3.48/po/zh_CN.po
(renamed from chkconfig-1.3.46/po/zh_CN.po)
--- chkconfig-1.3.48/po/zh_TW.po
+++ chkconfig-1.3.48/po/zh_TW.po
(renamed from chkconfig-1.3.46/po/zh_TW.po)

++++++ chkconfig.yaml
--- chkconfig.yaml
+++ chkconfig.yaml
@@ -1,6 +1,6 @@
 Name: chkconfig
 Summary: A system tool for maintaining the /etc/rc*.d hierarchy
-Version: 1.3.46
+Version: 1.3.48
 Release: 1
 Group: System/Base
 License: GPLv2
@@ -20,7 +20,7 @@
     - gettext
     - popt-devel
 Configure: none
-Builder: make
+Builder: none
 LocaleName: "%{name}"
 SubPackages:
     - Name: ntsysv
@@ -33,6 +33,3 @@
           manipulating the numerous symbolic links in /etc/rc.d). Unless you
           specify a runlevel or runlevels on the command line (see the man
           page), ntsysv configures the current runlevel (5 if you're using X).
-      Requires:
-          - chkconfig = %{version}-%{release}
-



More information about the MeeGo-commits mailing list