[meego-commits] 5726: Changes to Trunk/chkconfig
Anas Nashif
nashif at linux.intel.com
Thu Jul 15 13:52:51 UTC 2010
Hi,
I have made the following changes to chkconfig in project Trunk. Please review and accept ASAP.
Thank You,
Anas Nashif
[This message was auto-generated]
---
Request #5726:
submit: Trunk:Testing/chkconfig(r7) -> Trunk/chkconfig
Message:
Move to Trunk
State: new 2010-07-15T01:47:31 nashif
Comment: None
changes files:
--------------
--- chkconfig.changes
+++ chkconfig.changes
@@ -0,0 +1,4 @@
+* Wed Jul 14 2010 Yan Yin <yan.yin at intel.com> - 1.3.46
+- Update to 1.3.46
+- Transfer to YAML package format
+
old:
----
chkconfig-1.3.44.tar.bz2
new:
----
Makefile
chkconfig-1.3.46.tar.bz2
chkconfig.yaml
spec files:
-----------
--- chkconfig.spec
+++ chkconfig.spec
@@ -1,12 +1,28 @@
-Summary: A system tool for maintaining the /etc/rc*.d hierarchy
+#
+# Do not Edit! Generated by:
+# spectacle version 0.17
+#
+# >> macros
+# << macros
+
Name: chkconfig
-Version: 1.3.44
-Release: 2
-License: GPLv2
+Summary: A system tool for maintaining the /etc/rc*.d hierarchy
+Version: 1.3.46
+Release: 1
Group: System/Base
-Source: %{name}-%{version}.tar.bz2
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
-BuildRequires: newt-devel gettext popt-devel ncurses-devel
+License: GPLv2
+URL: http://git.fedorahosted.org/git/chkconfig.git
+Source0: http://fedorahosted.org/releases/c/h/%{name}/%{name}-%{version}.tar.bz2
+Source100: chkconfig.yaml
+Requires(post): /sbin/service
+Requires(post): /sbin/chkconfig
+Requires(postun): /sbin/service
+Requires(postun): /sbin/chkconfig
+BuildRequires: pkgconfig(ncurses)
+BuildRequires: newt-devel
+BuildRequires: gettext
+BuildRequires: popt-devel
+
%description
Chkconfig is a basic system utility. It updates and queries runlevel
@@ -14,10 +30,12 @@
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/Base
-Requires: chkconfig = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description -n ntsysv
Ntsysv provides a simple interface for setting which system services
@@ -26,32 +44,49 @@
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
+%setup -q -n %{name}-%{version}
+
+# >> setup
+# << setup
%build
+# >> build pre
+# << build pre
-make RPM_OPT_FLAGS="$RPM_OPT_FLAGS" %{?_smp_mflags}
+make %{?jobs:-j%jobs}
+
+# >> build post
+# << build post
%install
-rm -rf $RPM_BUILD_ROOT
+rm -rf %{buildroot}
+# >> install pre
+# << install pre
+
make DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} SBINDIR=%{_sbindir} install
+# >> install post
+
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
+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
+
+# << install post
%find_lang %{name}
-%clean
-rm -rf $RPM_BUILD_ROOT
+
%files -f %{name}.lang
-%defattr(-,root,root)
+%defattr(-,root,root,-)
+# >> files
%doc COPYING
%dir /etc/alternatives
/sbin/chkconfig
@@ -66,9 +101,13 @@
%doc %{_mandir}/*/chkconfig*
%doc %{_mandir}/*/update-alternatives*
%doc %{_mandir}/*/alternatives*
+# << files
+
%files -n ntsysv
-%defattr(-,root,root)
+%defattr(-,root,root,-)
+# >> files ntsysv
%{_sbindir}/ntsysv
%doc %{_mandir}/*/ntsysv.8*
+# << files ntsysv
other changes:
--------------
++++++ Makefile (new)
--- Makefile
+++ Makefile
+PKG_NAME := chkconfig
+SPECFILE = $(addsuffix .spec, $(PKG_NAME))
+YAMLFILE = $(addsuffix .yaml, $(PKG_NAME))
+
+include /usr/share/packaging-tools/Makefile.common
+
++++++ chkconfig-1.3.44.tar.bz2 -> chkconfig-1.3.46.tar.bz2
--- chkconfig-1.3.44
+++ chkconfig-1.3.44
-(directory)
--- chkconfig-1.3.44/COPYING
+++ chkconfig-1.3.44/COPYING
(renamed to chkconfig-1.3.46/COPYING)
--- chkconfig-1.3.44/Makefile
+++ chkconfig-1.3.44/Makefile
(renamed to chkconfig-1.3.46/Makefile)
--- chkconfig-1.3.44/alternatives.8
+++ chkconfig-1.3.44/alternatives.8
(renamed to chkconfig-1.3.46/alternatives.8)
--- chkconfig-1.3.44/alternatives.c
+++ chkconfig-1.3.44/alternatives.c
(renamed to chkconfig-1.3.46/alternatives.c)
--- chkconfig-1.3.44/chkconfig.8
+++ chkconfig-1.3.44/chkconfig.8
(renamed to chkconfig-1.3.46/chkconfig.8)
--- chkconfig-1.3.44/chkconfig.c
+++ chkconfig-1.3.44/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 int frobOneDependencies(struct service *s, struct service *servs, int numservs, int target, int depfail) {
- int i, j, k;
- 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) {
- for (j = 0; s->startDeps[j].name ; j++) {
- if (!strcmp(s->startDeps[j].name, servs[i].name) && isSimilarlyConfigured(*s, servs[i], 1)) {
- s->sPriority = laterThan(s->sPriority, servs[i].sPriority);
- s->startDeps[j].handled = 1;
- }
- if (servs[i].provides) {
- for (k = 0; servs[i].provides[k]; k++) {
- if (!strcmp(s->startDeps[j].name, servs[i].provides[k]) && isSimilarlyConfigured(*s, servs[i], 1)) {
- s->sPriority = laterThan(s->sPriority, servs[i].sPriority);
- s->startDeps[j].handled = 1;
- }
- }
- }
- }
- }
- if (s->stopDeps) {
- for (j = 0; s->stopDeps[j].name ; j++) {
- if (!strcmp(s->stopDeps[j].name, servs[i].name) && isSimilarlyConfigured(*s, servs[i], 0)) {
- s->kPriority = earlierThan(s->kPriority, servs[i].kPriority);
- s->stopDeps[j].handled = 1;
- }
- if (servs[i].provides) {
- for (k = 0; servs[i].provides[k]; k++) {
- if (!strcmp(s->stopDeps[j].name, servs[i].provides[k]) && isSimilarlyConfigured(*s, servs[i], 0)) {
- s->kPriority = earlierThan(s->kPriority, servs[i].kPriority);
- s->stopDeps[j].handled = 1;
- }
- }
- }
- }
- }
- }
- if (depfail) {
- if (s->startDeps) {
- for (j = 0; s->startDeps[j].name; j++) {
- if (!s->startDeps[j].handled)
- return -1;
- }
- }
- if (s->stopDeps) {
- for (j = 0; s->stopDeps[j].name; j++) {
- if (!s->stopDeps[j].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.44/chkconfig.spec
+++ chkconfig-1.3.44/chkconfig.spec
-Summary: A system tool for maintaining the /etc/rc*.d hierarchy
-Name: chkconfig
-Version: 1.3.44
-Release: 1
-License: GPLv2
-Group: System Environment/Base
-Source: %{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
-* 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.44/leveldb.c
+++ chkconfig-1.3.44/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,
- 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.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);
-}
-
-
-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,
- 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)) {
- char *t;
- int numdeps = 0;
-
- start+=15;
- 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.startDeps = realloc(serv.startDeps,
- (numdeps + 1) * sizeof(struct dep));
- serv.startDeps[numdeps-1].name = strdup(start);
- serv.startDeps[numdeps-1].handled = 0;
- memset(&serv.startDeps[numdeps],'\0',sizeof(struct dep));
- if (!t || t >= end)
- break;
- else
- start = t;
- }
- } else if (!strncmp(start, "Required-Stop:", 14)) {
- char *t;
- int numdeps = 0;
-
- start+=14;
- 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.stopDeps = realloc(serv.stopDeps,
- (numdeps + 1) * sizeof(struct dep));
- serv.stopDeps[numdeps-1].name = strdup(start);
- serv.stopDeps[numdeps-1].handled = 0;
- memset(&serv.stopDeps[numdeps],'\0',sizeof(struct dep));
- if (!t || t >= end)
- break;
- else
- start = t;
- }
- } 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.44/leveldb.h
+++ chkconfig-1.3.44/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;
- 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.44/ntsysv.8
+++ chkconfig-1.3.44/ntsysv.8
(renamed to chkconfig-1.3.46/ntsysv.8)
--- chkconfig-1.3.44/ntsysv.c
+++ chkconfig-1.3.44/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, ',') ||
- strchr(ent->d_name, '.')) 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.44/po
+++ chkconfig-1.3.44/po
-(directory)
--- chkconfig-1.3.44/po/ChangeLog
+++ chkconfig-1.3.44/po/ChangeLog
(renamed to chkconfig-1.3.46/po/ChangeLog)
--- chkconfig-1.3.44/po/Makefile
+++ chkconfig-1.3.44/po/Makefile
(renamed to chkconfig-1.3.46/po/Makefile)
--- chkconfig-1.3.44/po/ar.po
+++ chkconfig-1.3.44/po/ar.po
(renamed to chkconfig-1.3.46/po/ar.po)
--- chkconfig-1.3.44/po/as.po
+++ chkconfig-1.3.44/po/as.po
(renamed to chkconfig-1.3.46/po/as.po)
--- chkconfig-1.3.44/po/bal.po
+++ chkconfig-1.3.44/po/bal.po
(renamed to chkconfig-1.3.46/po/bal.po)
--- chkconfig-1.3.44/po/be.po
+++ chkconfig-1.3.44/po/be.po
(renamed to chkconfig-1.3.46/po/be.po)
--- chkconfig-1.3.44/po/bg.po
+++ chkconfig-1.3.44/po/bg.po
(renamed to chkconfig-1.3.46/po/bg.po)
--- chkconfig-1.3.44/po/bn.po
+++ chkconfig-1.3.44/po/bn.po
(renamed to chkconfig-1.3.46/po/bn.po)
--- chkconfig-1.3.44/po/bn_IN.po
+++ chkconfig-1.3.44/po/bn_IN.po
(renamed to chkconfig-1.3.46/po/bn_IN.po)
--- chkconfig-1.3.44/po/bs.po
+++ chkconfig-1.3.44/po/bs.po
(renamed to chkconfig-1.3.46/po/bs.po)
--- chkconfig-1.3.44/po/ca.po
+++ chkconfig-1.3.44/po/ca.po
(renamed to chkconfig-1.3.46/po/ca.po)
--- chkconfig-1.3.44/po/chkconfig.pot
+++ chkconfig-1.3.44/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: 2009-03-09 15:56-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"
-"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:379 ../chkconfig.c:384 ../chkconfig.c:498
-msgid "on"
-msgstr ""
-
-#: ../chkconfig.c:379 ../chkconfig.c:384 ../chkconfig.c:498
-msgid "off"
-msgstr ""
-
-#: ../chkconfig.c:460
-#, c-format
-msgid "xinetd based services:\n"
-msgstr ""
-
-#: ../chkconfig.c:462
-#, c-format
-msgid "failed to open directory %s: %s\n"
-msgstr ""
-
-#: ../chkconfig.c:606
-#, c-format
-msgid "%s version %s\n"
-msgstr ""
-
-#: ../chkconfig.c:618
-#, c-format
-msgid "--type must be 'sysv' or 'xinetd'\n"
-msgstr ""
-
-#: ../chkconfig.c:626
-#, c-format
-msgid "only one of --list, --add, --del, or --override may be specified\n"
-msgstr ""
-
-#: ../chkconfig.c:686
-#, 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:259
-#, c-format
-msgid "failed to open %s/init.d: %s\n"
-msgstr ""
-
-#: ../leveldb.c:667
-#, c-format
-msgid "failed to glob pattern %s: %s\n"
-msgstr ""
-
-#: ../leveldb.c:710
-#, c-format
-msgid "cannot determine current run level\n"
-msgstr ""
-
-#: ../leveldb.c:798
-#, 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:270
-#, c-format
-msgid "numeric priority expected in %s\n"
-msgstr ""
-
-#: ../alternatives.c:292
-#, c-format
-msgid "slave path expected in %s\n"
-msgstr ""
-
-#: ../alternatives.c:311
-#, c-format
-msgid "unexpected line in %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:319
-#, c-format
-msgid "failed to read link %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:333
-#, c-format
-msgid "link points to no alternative -- setting mode to manual\n"
-msgstr ""
-
-#: ../alternatives.c:338
-#, c-format
-msgid "link changed -- setting mode to manual\n"
-msgstr ""
-
-#: ../alternatives.c:366 ../alternatives.c:373
-#, c-format
-msgid "would remove %s\n"
-msgstr ""
-
-#: ../alternatives.c:368 ../alternatives.c:375 ../alternatives.c:406
-#, c-format
-msgid "failed to remove link %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:391 ../alternatives.c:403
-#, c-format
-msgid "would link %s -> %s\n"
-msgstr ""
-
-#: ../alternatives.c:395 ../alternatives.c:412
-#, c-format
-msgid "failed to link %s -> %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:444
-#, c-format
-msgid "%s already exists\n"
-msgstr ""
-
-#: ../alternatives.c:446
-#, c-format
-msgid "failed to create %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:477
-#, c-format
-msgid "failed to replace %s with %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:503 ../alternatives.c:512
-#, c-format
-msgid "running %s\n"
-msgstr ""
-
-#: ../alternatives.c:539
-#, c-format
-msgid "the primary link for %s must be %s\n"
-msgstr ""
-
-#: ../alternatives.c:619
-#, c-format
-msgid "link %s incorrect for slave %s (%s %s)\n"
-msgstr ""
-
-#: ../alternatives.c:660
-#, c-format
-msgid "%s - status is auto.\n"
-msgstr ""
-
-#: ../alternatives.c:662
-#, c-format
-msgid "%s - status is manual.\n"
-msgstr ""
-
-#: ../alternatives.c:664
-#, c-format
-msgid " link currently points to %s\n"
-msgstr ""
-
-#: ../alternatives.c:667
-#, c-format
-msgid "%s - priority %d\n"
-msgstr ""
-
-#: ../alternatives.c:670
-#, c-format
-msgid " slave %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:675
-#, c-format
-msgid "Current `best' version is %s.\n"
-msgstr ""
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There is %d program that provides '%s'.\n"
-msgstr ""
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There are %d programs which provide '%s'.\n"
-msgstr ""
-
-#: ../alternatives.c:707
-#, c-format
-msgid " Selection Command\n"
-msgstr ""
-
-#: ../alternatives.c:716
-#, c-format
-msgid "Enter to keep the current selection[+], or type selection number: "
-msgstr ""
-
-#: ../alternatives.c:719
-#, c-format
-msgid ""
-"\n"
-"error reading choice\n"
-msgstr ""
-
-#: ../alternatives.c:746 ../alternatives.c:772
-#, c-format
-msgid "%s has not been configured as an alternative for %s\n"
-msgstr ""
-
-#: ../alternatives.c:788
-#, c-format
-msgid "(would remove %s\n"
-msgstr ""
-
-#: ../alternatives.c:790
-#, c-format
-msgid "failed to remove %s: %s\n"
-msgstr ""
-
-#: ../alternatives.c:912
-#, c-format
-msgid "altdir %s invalid\n"
-msgstr ""
-
-#: ../alternatives.c:918
-#, c-format
-msgid "admindir %s invalid\n"
-msgstr ""
-
-#: ../alternatives.c:928
-#, c-format
-msgid "alternatives version %s\n"
-msgstr ""
--- chkconfig-1.3.44/po/cs.po
+++ chkconfig-1.3.44/po/cs.po
(renamed to chkconfig-1.3.46/po/cs.po)
--- chkconfig-1.3.44/po/cy.po
+++ chkconfig-1.3.44/po/cy.po
(renamed to chkconfig-1.3.46/po/cy.po)
--- chkconfig-1.3.44/po/da.po
+++ chkconfig-1.3.44/po/da.po
(renamed to chkconfig-1.3.46/po/da.po)
--- chkconfig-1.3.44/po/de.po
+++ chkconfig-1.3.44/po/de.po
(renamed to chkconfig-1.3.46/po/de.po)
--- chkconfig-1.3.44/po/el.po
+++ chkconfig-1.3.44/po/el.po
-# Greek translation of chkconf.
-# Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-# Simos Xenitellis <simos at hellug.gr>, 2002.
-# Nikos Charonitakis <charosn at her.forthnet.gr>, 2004.
-# jiannis bonatakis <california17 at gmail.com>,2008 Nikos Charonitakis <charosn at her.forthnet.gr>, 2008.
-# Pierros Papadeas <ppapadeas at gmail.com>, 2008
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: el.po\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-06 01:38-0500\n"
-"PO-Revision-Date: 2009-05-20 12:38+0200\n"
-"Last-Translator: \n"
-"Language-Team: Greek <nls at tux.hellug.gr>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Greek\n"
-
-#: ../chkconfig.c:38
-#, c-format
-msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
-msgstr "%s έκδοση %s - Πνευματικά δικαιώματα (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 "Μπορείτε να το αναδιανείμετε σύμφωνα με τους όρους της Δημόσιας Άδειας GNU.\n"
-
-#: ../chkconfig.c:42
-#, c-format
-msgid "usage: %s [--list] [--type <type>] [name]\n"
-msgstr "χρήση: %s [--list] [--type <τύπος>] [όνομα]\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
-#, c-format
-msgid " %s [--level <levels>] [--type <type>] <name> %s\n"
-msgstr " %s [--level <επίπεδα>] [--type <τύπος>] <όνομα> %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 "Δεν έχετε επαρκή δικαιώματα για να εκτελέσετε αυτή την λειτουργία.\n"
-
-#: ../chkconfig.c:379
-#: ../chkconfig.c:384
-#: ../chkconfig.c:498
-msgid "on"
-msgstr "ενεργό"
-
-#: ../chkconfig.c:379
-#: ../chkconfig.c:384
-#: ../chkconfig.c:498
-msgid "off"
-msgstr "ανενεργό"
-
-#: ../chkconfig.c:460
-#, c-format
-msgid "xinetd based services:\n"
-msgstr "υπηρεσίες βασισμένες στο xinetd:\n"
-
-#: ../chkconfig.c:462
-#, c-format
-msgid "failed to open directory %s: %s\n"
-msgstr "αποτυχία ανοίγματος του καταλόγου %s: %s\n"
-
-#: ../chkconfig.c:606
-#, c-format
-msgid "%s version %s\n"
-msgstr "%s έκδοση %s\n"
-
-#: ../chkconfig.c:618
-#, c-format
-msgid "--type must be 'sysv' or 'xinetd'\n"
-msgstr "το --type πρέπει να είναι 'sysv' ή 'xinetd'\n"
-
-#: ../chkconfig.c:626
-#, c-format
-msgid "only one of --list, --add, --del, or --override may be specified\n"
-msgstr "μπορούν να καθοριστούν μόνο ένα από τα --list, --add ή --del\n"
-
-#: ../chkconfig.c:686
-#, c-format
-msgid "only one runlevel may be specified for a chkconfig query\n"
-msgstr ""
-"μόνο ένα επίπεδο εκτέλεσης μπορεί να καθοριστεί σε \n"
-"κάθε χρήση του 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.\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:259
-#, c-format
-msgid "failed to open %s/init.d: %s\n"
-msgstr "αποτυχία ανοίγματος του %s/init.d: %s\n"
-
-#: ../leveldb.c:667
-#, c-format
-msgid "failed to glob pattern %s: %s\n"
-msgstr "αποτυχία ανάπτυξης σχεδίου %s: %s\n"
-
-#: ../leveldb.c:710
-#, c-format
-msgid "cannot determine current run level\n"
-msgstr "αδύνατος ο καθορισμός του τρέχοντος επιπέδου εκτέλεσης\n"
-
-#: ../leveldb.c:798
-#, 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 - Πνευματικά δικαιώματα (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 ""
-"Μπορείτε να το αναδιανείμετε σύμφωνα με τους όρους της Δημόσιας Άδειας GNU Public Licence.\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 <service>]\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 μη αναμενόμενη στη %s\n"
-
-#: ../alternatives.c:231
-#, c-format
-msgid "missing path for slave %s in %s\n"
-msgstr "λείπει η διαδρομή για το δευτερεύον %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 "οι συνδέσεις δεν δείχνουν σε alternative -- ορισμός χειρωνακτικής κατάστασης\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"
-
-#~ msgid "error reading from directory %s/init.d: %s\n"
-#~ msgstr "σφάλμα ανάγνωσης από τον κατάλογο %s/init.d: %s\n"
-
--- chkconfig-1.3.44/po/en_GB.po
+++ chkconfig-1.3.44/po/en_GB.po
(renamed to chkconfig-1.3.46/po/en_GB.po)
--- chkconfig-1.3.44/po/es.po
+++ chkconfig-1.3.44/po/es.po
(renamed to chkconfig-1.3.46/po/es.po)
--- chkconfig-1.3.44/po/et.po
+++ chkconfig-1.3.44/po/et.po
(renamed to chkconfig-1.3.46/po/et.po)
--- chkconfig-1.3.44/po/fi.po
+++ chkconfig-1.3.44/po/fi.po
(renamed to chkconfig-1.3.46/po/fi.po)
--- chkconfig-1.3.44/po/fr.po
+++ chkconfig-1.3.44/po/fr.po
(renamed to chkconfig-1.3.46/po/fr.po)
--- chkconfig-1.3.44/po/gl.po
+++ chkconfig-1.3.44/po/gl.po
(renamed to chkconfig-1.3.46/po/gl.po)
--- chkconfig-1.3.44/po/gu.po
+++ chkconfig-1.3.44/po/gu.po
(renamed to chkconfig-1.3.46/po/gu.po)
--- chkconfig-1.3.44/po/he.po
+++ chkconfig-1.3.44/po/he.po
(renamed to chkconfig-1.3.46/po/he.po)
--- chkconfig-1.3.44/po/hi.po
+++ chkconfig-1.3.44/po/hi.po
(renamed to chkconfig-1.3.46/po/hi.po)
--- chkconfig-1.3.44/po/hr.po
+++ chkconfig-1.3.44/po/hr.po
(renamed to chkconfig-1.3.46/po/hr.po)
--- chkconfig-1.3.44/po/hu.po
+++ chkconfig-1.3.44/po/hu.po
-# Arpad Biro <biro_arpad at yahoo.com>, 2004, 2005, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: chkconfig\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-22 14:20-0500\n"
-"PO-Revision-Date: 2009-03-06 07:47+0100\n"
-"Last-Translator: Sulyok Péter <peti at sulyok.hu>\n"
-"Language-Team: Hungarian <fedora-trans-hu at redhat.com>\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);"
-
-#: ../chkconfig.c:38
-#, c-format
-msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
-msgstr "%s %s változat – Szerzői jog (C) Red Hat, Inc., 1997-2000.\n"
-
-#: ../chkconfig.c:39
-#, c-format
-msgid ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-msgstr ""
-"Ez a szoftver szabadon terjeszthető a GNU Public License feltételei "
-"szerint.\n"
-
-#: ../chkconfig.c:42
-#, c-format
-msgid "usage: %s [--list] [--type <type>] [name]\n"
-msgstr "használat: %s [--list] [--type <típus>] [név]\n"
-
-#: ../chkconfig.c:43
-#, c-format
-msgid " %s --add <name>\n"
-msgstr " %s --add <név>\n"
-
-#: ../chkconfig.c:44
-#, c-format
-msgid " %s --del <name>\n"
-msgstr " %s --del <név>\n"
-
-#: ../chkconfig.c:45
-#, c-format
-msgid " %s --override <name>\n"
-msgstr " %s --override <név>\n"
-
-#: ../chkconfig.c:46
-#, c-format
-msgid " %s [--level <levels>] [--type <type>] <name> %s\n"
-msgstr " %s [--level <szintek>] [--type <típus>] <név> %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 szolgáltatás támogatja a chkconfigot, de egyik futási szinten sem "
-"szerepel (adja ki a „chkconfig --add %s” parancsot)\n"
-
-#: ../chkconfig.c:55
-#, c-format
-msgid "service %s does not support chkconfig\n"
-msgstr "%s szolgáltatás nem támogatja a chkconfigot\n"
-
-#: ../chkconfig.c:57
-#, c-format
-msgid "error reading information on service %s: %s\n"
-msgstr "hiba történt %s szolgáltatás adatainak beolvasásakor: %s\n"
-
-#: ../chkconfig.c:66
-#, c-format
-msgid "You do not have enough privileges to perform this operation.\n"
-msgstr "Nincs elég joga e művelet elvégzéséhez.\n"
-
-#: ../chkconfig.c:357 ../chkconfig.c:362 ../chkconfig.c:476
-msgid "on"
-msgstr "be"
-
-#: ../chkconfig.c:357 ../chkconfig.c:362 ../chkconfig.c:476
-msgid "off"
-msgstr "ki"
-
-#: ../chkconfig.c:438
-#, c-format
-msgid "xinetd based services:\n"
-msgstr "xinetd-alapú szolgáltatások:\n"
-
-#: ../chkconfig.c:440
-#, c-format
-msgid "failed to open directory %s: %s\n"
-msgstr "nem sikerült megnyitni %s könyvtárt: %s\n"
-
-#: ../chkconfig.c:584
-#, c-format
-msgid "%s version %s\n"
-msgstr "%s %s\n"
-
-#: ../chkconfig.c:596
-#, c-format
-msgid "--type must be 'sysv' or 'xinetd'\n"
-msgstr "--type csak „sysv” vagy „xinetd” lehet\n"
-
-#: ../chkconfig.c:604
-#, c-format
-msgid "only one of --list, --add, --del, or --override may be specified\n"
-msgstr "a --list, --add, --del és --override közül csak egyet lehet megadni\n"
-
-#: ../chkconfig.c:664
-#, c-format
-msgid "only one runlevel may be specified for a chkconfig query\n"
-msgstr "csak egy futási szintet lehet megadni egy chkconfig-lekérdezésben\n"
-
-#: ../ntsysv.c:46
-msgid "Press <F1> for more information on a service."
-msgstr "Egy szolgáltatás jellemzőinek lekérdezéséhez nyomjon <F1>-et!"
-
-#: ../ntsysv.c:83 ../ntsysv.c:120
-msgid "Ok"
-msgstr "OK"
-
-#: ../ntsysv.c:83
-msgid "Back"
-msgstr "Vissza"
-
-#: ../ntsysv.c:83
-msgid "Cancel"
-msgstr "Mégsem"
-
-#: ../ntsysv.c:95
-msgid "What services should be automatically started?"
-msgstr "Mely szolgáltatások induljanak el automatikusan?"
-
-#: ../ntsysv.c:101
-msgid "Services"
-msgstr "Szolgáltatások"
-
-#: ../ntsysv.c:183 ../ntsysv.c:210 ../ntsysv.c:248
-#, c-format
-msgid "error reading info for service %s: %s\n"
-msgstr "hiba történt %s szolgáltatás adatainak beolvasásakor: %s\n"
-
-#: ../ntsysv.c:257
-#, c-format
-msgid "error reading from directory %s: %s\n"
-msgstr "hiba történt %s könyvtár olvasása közben: %s\n"
-
-#: ../ntsysv.c:293
-#, c-format
-msgid "You must be root to run %s.\n"
-msgstr "%s futtatása csak rendszergazdai jogosultsággal lehetséges.\n"
-
-#: ../ntsysv.c:310
-#, c-format
-msgid "bad argument to --levels\n"
-msgstr "hibás argumentum a --levels opcióhoz\n"
-
-#: ../ntsysv.c:317
-#, c-format
-msgid "No services may be managed by ntsysv!\n"
-msgstr "Egy szolgáltatás sem kezelhető az ntsysv programmal.\n"
-
-#: ../leveldb.c:259
-#, c-format
-msgid "failed to open %s/init.d: %s\n"
-msgstr "%s/init.d megnyitása nem sikerült: %s\n"
-
-#: ../leveldb.c:667
-#, c-format
-msgid "failed to glob pattern %s: %s\n"
-msgstr "nem sikerült értelmezni %s mintát: %s\n"
-
-#: ../leveldb.c:710
-#, c-format
-msgid "cannot determine current run level\n"
-msgstr "nem sikerült megállapítani az aktuális futási szintet\n"
-
-#: ../leveldb.c:798
-#, c-format
-msgid "failed to make symlink %s: %s\n"
-msgstr "%s szimbolikus link létrehozása nem sikerült: %s\n"
-
-#: ../alternatives.c:63
-#, c-format
-msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
-msgstr "alternatives %s - Szerzői jog ©Red Hat Inc., 2001.\n"
-
-#: ../alternatives.c:64
-#, c-format
-msgid ""
-"This may be freely redistributed under the terms of the GNU Public License.\n"
-"\n"
-msgstr ""
-"Ez a szoftver szabadon terjeszthető a GNU Public License feltételei "
-"szerint.\n"
-"\n"
-
-#: ../alternatives.c:65
-#, c-format
-msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
-msgstr ""
-"Használat: alternatives --install <link> <név> <elérési út> <prioritás>\n"
-
-#: ../alternatives.c:66
-#, c-format
-msgid " [--initscript <service>]\n"
-msgstr " [--initscript <szolgáltatás>]\n"
-
-#: ../alternatives.c:67
-#, c-format
-msgid " [--slave <link> <name> <path>]*\n"
-msgstr " [--slave <link> <név> <elérési út>]*\n"
-
-#: ../alternatives.c:68
-#, c-format
-msgid " alternatives --remove <name> <path>\n"
-msgstr " alternatives --remove <név> <elérési út>\n"
-
-#: ../alternatives.c:69
-#, c-format
-msgid " alternatives --auto <name>\n"
-msgstr " alternatives --auto <név>\n"
-
-#: ../alternatives.c:70
-#, c-format
-msgid " alternatives --config <name>\n"
-msgstr " alternatives --config <név>\n"
-
-#: ../alternatives.c:71
-#, c-format
-msgid " alternatives --display <name>\n"
-msgstr " alternatives --display <név>\n"
-
-#: ../alternatives.c:72
-#, c-format
-msgid " alternatives --set <name> <path>\n"
-msgstr " alternatives --set <név> <elérési út>\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 "általános opciók: --verbose --test --help --usage --version\n"
-
-#: ../alternatives.c:75
-#, c-format
-msgid " --altdir <directory> --admindir <directory>\n"
-msgstr " --altdir <könyvtár> --admindir <könyvtár>\n"
-
-#: ../alternatives.c:172
-#, c-format
-msgid "reading %s\n"
-msgstr "%s olvasása\n"
-
-#: ../alternatives.c:176
-#, c-format
-msgid "failed to open %s: %s\n"
-msgstr "%s megnyitása nem sikerült: %s\n"
-
-#: ../alternatives.c:185
-#, c-format
-msgid "failed to read %s: %s\n"
-msgstr "%s olvasása nem sikerült: %s\n"
-
-#: ../alternatives.c:194
-#, c-format
-msgid "%s empty!\n"
-msgstr "%s üres.\n"
-
-#: ../alternatives.c:203
-#, c-format
-msgid "bad mode on line 1 of %s\n"
-msgstr "hibás mód %s első sorában\n"
-
-#: ../alternatives.c:210
-#, c-format
-msgid "bad primary link in %s\n"
-msgstr "hibás elsődleges link ebben: %s\n"
-
-#: ../alternatives.c:222
-#, c-format
-msgid "path %s unexpected in %s\n"
-msgstr "nem várt elérési út (%s) ebben: %s\n"
-
-#: ../alternatives.c:231
-#, c-format
-msgid "missing path for slave %s in %s\n"
-msgstr "hiányzó elérési út %s slave-hez ebben: %s\n"
-
-#: ../alternatives.c:241
-#, c-format
-msgid "unexpected end of file in %s\n"
-msgstr "nem várt fájlvég ebben: %s\n"
-
-#: ../alternatives.c:250
-#, c-format
-msgid "path to alternate expected in %s\n"
-msgstr "az alternatíva elérési útja hiányzik ebből: %s\n"
-
-#: ../alternatives.c:270
-#, c-format
-msgid "numeric priority expected in %s\n"
-msgstr "a numerikus prioritás hiányzik ebből: %s\n"
-
-#: ../alternatives.c:292
-#, c-format
-msgid "slave path expected in %s\n"
-msgstr "slave elérési út hiányzik ebből: %s\n"
-
-#: ../alternatives.c:311
-#, c-format
-msgid "unexpected line in %s: %s\n"
-msgstr "nem várt sor ebben: %s: %s\n"
-
-#: ../alternatives.c:319
-#, c-format
-msgid "failed to read link %s: %s\n"
-msgstr "%s link olvasása nem sikerült: %s\n"
-
-#: ../alternatives.c:333
-#, c-format
-msgid "link points to no alternative -- setting mode to manual\n"
-msgstr "a link nem alternatívára mutat -- átállítás kézi módra\n"
-
-#: ../alternatives.c:338
-#, c-format
-msgid "link changed -- setting mode to manual\n"
-msgstr "a link megváltozott -- átállítás kézi módra\n"
-
-#: ../alternatives.c:366 ../alternatives.c:373
-#, c-format
-msgid "would remove %s\n"
-msgstr "eltávolítás: %s\n"
-
-#: ../alternatives.c:368 ../alternatives.c:375 ../alternatives.c:406
-#, c-format
-msgid "failed to remove link %s: %s\n"
-msgstr "%s link eltávolítása nem sikerült: %s\n"
-
-#: ../alternatives.c:391 ../alternatives.c:403
-#, c-format
-msgid "would link %s -> %s\n"
-msgstr "link létrehozása: %s -> %s\n"
-
-#: ../alternatives.c:395 ../alternatives.c:412
-#, c-format
-msgid "failed to link %s -> %s: %s\n"
-msgstr "%s -> %s linkelés sikertelen: %s\n"
-
-#: ../alternatives.c:444
-#, c-format
-msgid "%s already exists\n"
-msgstr "%s már létezik\n"
-
-#: ../alternatives.c:446
-#, c-format
-msgid "failed to create %s: %s\n"
-msgstr "%s létrehozása nem sikerült: %s\n"
-
-#: ../alternatives.c:477
-#, c-format
-msgid "failed to replace %s with %s: %s\n"
-msgstr "%s => %s csere nem sikerült: %s\n"
-
-#: ../alternatives.c:503 ../alternatives.c:512
-#, c-format
-msgid "running %s\n"
-msgstr "%s futtatása\n"
-
-#: ../alternatives.c:539
-#, c-format
-msgid "the primary link for %s must be %s\n"
-msgstr "%s elsődleges linkje csak ez lehet: %s\n"
-
-#: ../alternatives.c:619
-#, c-format
-msgid "link %s incorrect for slave %s (%s %s)\n"
-msgstr "%s link nem megfelelő %s slave-nek (%s %s)\n"
-
-#: ../alternatives.c:660
-#, c-format
-msgid "%s - status is auto.\n"
-msgstr "%s - automatikus módban.\n"
-
-#: ../alternatives.c:662
-#, c-format
-msgid "%s - status is manual.\n"
-msgstr "%s - kézi módban.\n"
-
-#: ../alternatives.c:664
-#, c-format
-msgid " link currently points to %s\n"
-msgstr " link jelenleg ide mutat: %s\n"
-
-#: ../alternatives.c:667
-#, c-format
-msgid "%s - priority %d\n"
-msgstr "%s - prioritás: %d\n"
-
-#: ../alternatives.c:670
-#, c-format
-msgid " slave %s: %s\n"
-msgstr " %s slave: %s\n"
-
-#: ../alternatives.c:675
-#, c-format
-msgid "Current `best' version is %s.\n"
-msgstr "A jelenlegi „legjobb” változat: %s\n"
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There is %d program that provides '%s'.\n"
-msgstr "%d program nyújtja ezt: „%s”.\n"
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There are %d programs which provide '%s'.\n"
-msgstr "%d program nyújtja ezt: „%s”.\n"
-
-#: ../alternatives.c:707
-#, c-format
-msgid " Selection Command\n"
-msgstr " Kijelölés Parancs\n"
-
-#: ../alternatives.c:716
-#, c-format
-msgid "Enter to keep the current selection[+], or type selection number: "
-msgstr ""
-"Az Enter lenyomásával megőrizhető a kijelölés [+] -- vagy adjon meg egy "
-"kijelölési számot: "
-
-#: ../alternatives.c:719
-#, c-format
-msgid ""
-"\n"
-"error reading choice\n"
-msgstr ""
-"\n"
-"hiba történt a választás beolvasásakor\n"
-
-#: ../alternatives.c:746 ../alternatives.c:772
-#, c-format
-msgid "%s has not been configured as an alternative for %s\n"
-msgstr "%s nincs beállítva %s alternatívájának\n"
-
-#: ../alternatives.c:788
-#, c-format
-msgid "(would remove %s\n"
-msgstr "(%s eltávolítása\n"
-
-#: ../alternatives.c:790
-#, c-format
-msgid "failed to remove %s: %s\n"
-msgstr "%s eltávolítása nem sikerült: %s\n"
-
-#: ../alternatives.c:912
-#, c-format
-msgid "altdir %s invalid\n"
-msgstr "%s altdir érvénytelen\n"
-
-#: ../alternatives.c:918
-#, c-format
-msgid "admindir %s invalid\n"
-msgstr "%s admindir érvénytelen\n"
-
-#: ../alternatives.c:928
-#, c-format
-msgid "alternatives version %s\n"
-msgstr "alternatives %s. változat\n"
-
--- chkconfig-1.3.44/po/hy.po
+++ chkconfig-1.3.44/po/hy.po
(renamed to chkconfig-1.3.46/po/hy.po)
--- chkconfig-1.3.44/po/id.po
+++ chkconfig-1.3.44/po/id.po
-# chkconfig Bahasa Indonesia
-# Copyright (C) 1999 Free Software Foundation, Inc.
-# Mohammad DAMT <mdamt at linux.or.id>, 1999.
-# Teguh DC <dheche at songolimo.net>, 2004-2008
-# $Id: id.po,v 1.27 2007/02/22 19:38:24 dheche Exp $
-msgid ""
-msgstr ""
-"Project-Id-Version: ID-chkconfig 1.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-04 23:29-0500\n"
-"PO-Revision-Date: 2008-09-02 12:36+0700\n"
-"Last-Translator: Teguh DC <dheche at songolimo.net>\n"
-"Language-Team: Fedora Trans ID <fedora-trans-id at redhat.com>\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 versi %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 ""
-"Program ini dapat didistribusikan di bawah Lisensi GNU Public License.\n"
-
-#: ../chkconfig.c:42
-#, fuzzy, c-format
-msgid "usage: %s [--list] [--type <type>] [name]\n"
-msgstr "cara pakai: %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 ""
-"layanan %s mendukung chkconfig, tapi belum memiliki referensi di runlevel "
-"manapun (jalankan 'chkconfig --add %s')\n"
-
-#: ../chkconfig.c:55
-#, c-format
-msgid "service %s does not support chkconfig\n"
-msgstr "layanan %s tidak mendukung chkconfig\n"
-
-#: ../chkconfig.c:57
-#, c-format
-msgid "error reading information on service %s: %s\n"
-msgstr "terdapat error ketika membaca informasi layanan %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 "hidup"
-
-#: ../chkconfig.c:351 ../chkconfig.c:356 ../chkconfig.c:470
-msgid "off"
-msgstr "mati"
-
-#: ../chkconfig.c:432
-#, c-format
-msgid "xinetd based services:\n"
-msgstr "Layanan berbasis xinetd:\n"
-
-#: ../chkconfig.c:434
-#, c-format
-msgid "failed to open directory %s: %s\n"
-msgstr "gagal untuk membuka direktori %s: %s\n"
-
-#: ../chkconfig.c:578
-#, c-format
-msgid "%s version %s\n"
-msgstr "%s versi %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 ""
-"hanya satu dari --list, --add, --del atau --override yang dapat dipilih\n"
-
-#: ../chkconfig.c:658
-#, c-format
-msgid "only one runlevel may be specified for a chkconfig query\n"
-msgstr "hanya satu runlevel yang dapat dipilih untuk query chkconfig\n"
-
-#: ../ntsysv.c:46
-msgid "Press <F1> for more information on a service."
-msgstr "Tekan <F1> untuk melihat informasi tentang suatu layanan."
-
-#: ../ntsysv.c:83 ../ntsysv.c:120
-msgid "Ok"
-msgstr "Ok"
-
-#: ../ntsysv.c:83
-msgid "Back"
-msgstr "Kembali"
-
-#: ../ntsysv.c:83
-msgid "Cancel"
-msgstr "Batal"
-
-#: ../ntsysv.c:95
-msgid "What services should be automatically started?"
-msgstr "Layanan mana yang harus distart secara otomatis?"
-
-#: ../ntsysv.c:101
-msgid "Services"
-msgstr "Layanan"
-
-#: ../ntsysv.c:183 ../ntsysv.c:210 ../ntsysv.c:248
-#, c-format
-msgid "error reading info for service %s: %s\n"
-msgstr "gagal membaca info layanan %s: %s\n"
-
-#: ../ntsysv.c:257
-#, c-format
-msgid "error reading from directory %s: %s\n"
-msgstr "gagal membaca dari direktori %s: %s\n"
-
-#: ../ntsysv.c:293
-#, c-format
-msgid "You must be root to run %s.\n"
-msgstr "anda harus menjalankan %s sebagai root.\n"
-
-#: ../ntsysv.c:310
-#, c-format
-msgid "bad argument to --levels\n"
-msgstr "parameter untuk --levels salah\n"
-
-#: ../ntsysv.c:317
-#, c-format
-msgid "No services may be managed by ntsysv!\n"
-msgstr "Tidak ada layanan yang dapat diatur oleh ntsysv!\n"
-
-#: ../leveldb.c:260
-#, c-format
-msgid "failed to open %s/init.d: %s\n"
-msgstr "gagal membuka %s/init.d: %s\n"
-
-#: ../leveldb.c:668
-#, c-format
-msgid "failed to glob pattern %s: %s\n"
-msgstr "gagal untuk mengglob pola %s: %s\n"
-
-#: ../leveldb.c:711
-#, c-format
-msgid "cannot determine current run level\n"
-msgstr "tidak dapat menentukan run level yang aktif\n"
-
-#: ../leveldb.c:799
-#, c-format
-msgid "failed to make symlink %s: %s\n"
-msgstr "gagal untuk membuat symlink %s: %s\n"
-
-#: ../alternatives.c:63
-#, c-format
-msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
-msgstr "alternatives versi %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 ""
-"Program ini dapat didistribusikan bebas di bawah Lisensi GNU Public "
-"License.\n"
-
-#: ../alternatives.c:65
-#, c-format
-msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
-msgstr "cara pakai: 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 "opsi umum: --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 "membaca %s\n"
-
-#: ../alternatives.c:176
-#, c-format
-msgid "failed to open %s: %s\n"
-msgstr "gagal membuka %s: %s\n"
-
-#: ../alternatives.c:185
-#, c-format
-msgid "failed to read %s: %s\n"
-msgstr "gagal membaca %s: %s\n"
-
-#: ../alternatives.c:194
-#, c-format
-msgid "%s empty!\n"
-msgstr "%s kosong!\n"
-
-#: ../alternatives.c:203
-#, c-format
-msgid "bad mode on line 1 of %s\n"
-msgstr "mode salah di baris 1 pada %s\n"
-
-#: ../alternatives.c:210
-#, c-format
-msgid "bad primary link in %s\n"
-msgstr "link utama di %s rusak\n"
-
-#: ../alternatives.c:222
-#, c-format
-msgid "path %s unexpected in %s\n"
-msgstr "path %s tidak seharusnya ada di %s\n"
-
-#: ../alternatives.c:231
-#, c-format
-msgid "missing path for slave %s in %s\n"
-msgstr "tidak ditemukan path untuk slave %s di %s\n"
-
-#: ../alternatives.c:241
-#, c-format
-msgid "unexpected end of file in %s\n"
-msgstr "akhir file yang tidak diharapkan di %s\n"
-
-#: ../alternatives.c:250
-#, c-format
-msgid "path to alternate expected in %s\n"
-msgstr "path ke alternate diharapkan pada %s\n"
-
-#: ../alternatives.c:270
-#, c-format
-msgid "numeric priority expected in %s\n"
-msgstr "prioritas angka diharapkan pada %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 "baris yang tidak diharapkan pada %s: %s\n"
-
-#: ../alternatives.c:319
-#, c-format
-msgid "failed to read link %s: %s\n"
-msgstr "gagal membaca link %s: %s\n"
-
-#: ../alternatives.c:333
-#, c-format
-msgid "link points to no alternative -- setting mode to manual\n"
-msgstr "link menuju pada tidak ada alternatif - mode set ke manual\n"
-
-#: ../alternatives.c:338
-#, c-format
-msgid "link changed -- setting mode to manual\n"
-msgstr "link berubah - mode set ke manual\n"
-
-#: ../alternatives.c:366 ../alternatives.c:373
-#, c-format
-msgid "would remove %s\n"
-msgstr "Akan dihapus %s\n"
-
-#: ../alternatives.c:368 ../alternatives.c:375 ../alternatives.c:406
-#, c-format
-msgid "failed to remove link %s: %s\n"
-msgstr "gagal untuk menghapus link %s: %s\n"
-
-#: ../alternatives.c:391 ../alternatives.c:403
-#, c-format
-msgid "would link %s -> %s\n"
-msgstr "Akan dilink %s -> %s\n"
-
-#: ../alternatives.c:395 ../alternatives.c:412
-#, c-format
-msgid "failed to link %s -> %s: %s\n"
-msgstr "gagal untuk membuat link %s -> %s: %s\n"
-
-#: ../alternatives.c:444
-#, c-format
-msgid "%s already exists\n"
-msgstr "%s sudah ada\n"
-
-#: ../alternatives.c:446
-#, c-format
-msgid "failed to create %s: %s\n"
-msgstr "gagal untuk membuat %s: %s\n"
-
-#: ../alternatives.c:477
-#, c-format
-msgid "failed to replace %s with %s: %s\n"
-msgstr "gagal untuk mengganti %s dengan %s: %s\n"
-
-#: ../alternatives.c:503 ../alternatives.c:512
-#, c-format
-msgid "running %s\n"
-msgstr "Jalan di %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 otomatis.\n"
-
-#: ../alternatives.c:662
-#, c-format
-msgid "%s - status is manual.\n"
-msgstr "%s - status manual.\n"
-
-#: ../alternatives.c:664
-#, c-format
-msgid " link currently points to %s\n"
-msgstr " link saat ini tertuju pada %s\n"
-
-#: ../alternatives.c:667
-#, c-format
-msgid "%s - priority %d\n"
-msgstr "%s - prioritas %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 "Versi `terbaik' saat ini adalah %s.\n"
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There is %d program that provides '%s'.\n"
-msgstr "Ada %d program yang menyediakan '%s'.\n"
-
-#: ../alternatives.c:705
-#, c-format
-msgid "There are %d programs which provide '%s'.\n"
-msgstr "Ada %d program yang menyediakan '%s'.\n"
-
-#: ../alternatives.c:707
-#, c-format
-msgid " Selection Command\n"
-msgstr " Perintah yang dipilih\n"
-
-#: ../alternatives.c:716
-#, c-format
-msgid "Enter to keep the current selection[+], or type selection number: "
-msgstr ""
-"Enter untuk mempertahankan pilihan[+] saat ini, atau ketik nomer yang "
-"dipilih: "
-
-#: ../alternatives.c:719
-#, c-format
-msgid ""
-"\n"
-"error reading choice\n"
-msgstr ""
-"\n"
-"gagal membaca pilihan\n"
-
-#: ../alternatives.c:746 ../alternatives.c:772
-#, c-format
-msgid "%s has not been configured as an alternative for %s\n"
-msgstr "%s belum dikonfigurasi sebagai alternatif untuk %s\n"
-
-#: ../alternatives.c:788
-#, c-format
-msgid "(would remove %s\n"
-msgstr "(akan dihapus %s\n"
-
-#: ../alternatives.c:790
-#, c-format
-msgid "failed to remove %s: %s\n"
-msgstr "gagal menghapus %s: %s\n"
-
-#: ../alternatives.c:912
-#, c-format
-msgid "altdir %s invalid\n"
-msgstr "altdir %s tidak valid\n"
-
-#: ../alternatives.c:918
-#, c-format
-msgid "admindir %s invalid\n"
-msgstr "admindir %s tidak valid\n"
-
-#: ../alternatives.c:928
-#, c-format
-msgid "alternatives version %s\n"
-msgstr "alternatives versi %s\n"
-
-#~ msgid "error reading from directory %s/init.d: %s\n"
-#~ msgstr "gagal membaca direktori %s/init.d: %s\n"
--- chkconfig-1.3.44/po/is.po
+++ chkconfig-1.3.44/po/is.po
(renamed to chkconfig-1.3.46/po/is.po)
--- chkconfig-1.3.44/po/it.po
+++ chkconfig-1.3.44/po/it.po
(renamed to chkconfig-1.3.46/po/it.po)
--- chkconfig-1.3.44/po/ja.po
+++ chkconfig-1.3.44/po/ja.po
(renamed to chkconfig-1.3.46/po/ja.po)
--- chkconfig-1.3.44/po/ka.po
+++ chkconfig-1.3.44/po/ka.po
(renamed to chkconfig-1.3.46/po/ka.po)
--- chkconfig-1.3.44/po/kn.po
+++ chkconfig-1.3.44/po/kn.po
-# translation of chkconfig.master.kn.po to Kannada
-# Chkconfig Japanese Translation
-# Copyright (C) 2001 Red Hat, Inc.
-#
-#
-# Omshivaprakash <omshivprakash at gmail.com>, 2007.
-# Shankar Prasad <svenkate at redhat.com>, 2007, 2008, 2009.
-msgid ""
-msgstr ""
-"Project-Id-Version: chkconfig.master.kn\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-06 01:38-0500\n"
-"PO-Revision-Date: 2009-04-02 00:28+0530\n"
-"Last-Translator: Shankar Prasad <svenkate at redhat.com>\n"
-"Language-Team: Kannada <en at li.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"
-"\n"
-
-#: ../chkconfig.c:38
-#, c-format
-msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
-msgstr "%s ಆವೃತ್ತಿ %s - ಕೃತಿಸ್ವಾಮ್ಯ (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 "ಇದನ್ನು GNU ಸಾರ್ವತ್ರಿಕ ಪರವಾನಗಿಯಡಿ ಮರು ಹಂಚಿಕೆ ಮಾಡಬಹುದಾಗಿದೆ.\n"
-
-#: ../chkconfig.c:42
-#, c-format
-msgid "usage: %s [--list] [--type <type>] [name]\n"
-msgstr "ಬಳಕೆ: %s [--list] [--type <type>] [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
-#, c-format
-msgid " %s [--level <levels>] [--type <type>] <name> %s\n"
-msgstr " %s [--level <levels>] [--type <type>] <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 ""
-"ಸೇವೆ %s chkconfig ಅನ್ನು ಅಶ್ರಯಿಸಿಕೊಳ್ಳಬಲ್ಲದು, ಆದರೆ ಇದನ್ನು ಯಾವುದೇ ಕ್ರಿಯಾಹಂತದಲ್ಲಿ "
-"ಬಳಸಲಾಗಿಲ್ಲ (ಪ್ರಯೋಗಿಸು 'chkconfig --ಸೇರಿಸು %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 "ಈ ಕಾರ್ಯವನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮ್ಮಲ್ಲಿ ಸವಲತ್ತುಗಳಿಲ್ಲ.\n"
-
-#: ../chkconfig.c:379 ../chkconfig.c:384 ../chkconfig.c:498
-msgid "on"
-msgstr "ಆನ್"
-
-#: ../chkconfig.c:379 ../chkconfig.c:384 ../chkconfig.c:498
-msgid "off"
-msgstr "ಆಫ್"
-
-#: ../chkconfig.c:460
-#, c-format
-msgid "xinetd based services:\n"
-msgstr "xinetd ಆಧರಿತ ಸೇವೆಗಳು:\n"
-
-#: ../chkconfig.c:462
-#, c-format
-msgid "failed to open directory %s: %s\n"
-msgstr " %s ಕಡತಕೋಶವನ್ನು ತೆರೆಯುವಲ್ಲಿ ವಿಫಲತೆ: %s\n"
-
-#: ../chkconfig.c:606
-#, c-format
-msgid "%s version %s\n"
-msgstr "%s ಆವೃತ್ತಿ %s\n"
-
-#: ../chkconfig.c:618
-#, c-format
-msgid "--type must be 'sysv' or 'xinetd'\n"
-msgstr "--type ಯು 'sysv' ಅಥವ 'xinetd' ಆಗಿರಲೆ ಬೇಕು\n"
-
-#: ../chkconfig.c:626
-#, c-format
-msgid "only one of --list, --add, --del, or --override may be specified\n"
-msgstr ""
-"--list, --add, --del, ಅಥವ --override ಇವುಗಳಿಂದ ಯಾವುದಾದರೂ ಒಂದನ್ನು ಮಾತ್ರ "
-"ಸೂಚಿಸಬಹುದಾಗಿದೆ\n"
-
-#: ../chkconfig.c:686
-#, 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 ಅನ್ನು ಚಲಾಯಿಸಲು ನೀವು ಮೂಲವಾಗಿರಬೇಕು.\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:259
-#, c-format
-msgid "failed to open %s/init.d: %s\n"
-msgstr "%s/init.d ಅನ್ನು ತೆರೆಯುವ ಯತ್ನ ವಿಪಲವಾಗಿದೆ: %s\n"
-
-#: ../leveldb.c:667
-#, c-format
-msgid "failed to glob pattern %s: %s\n"
-msgstr "ವಿನ್ಯಾಸ %s ಅನ್ನು glob ಮಾಡುವಲ್ಲಿ ವಿಫಲ: %s\n"
-
-#: ../leveldb.c:710
-#, c-format
-msgid "cannot determine current run level\n"
-msgstr "ಈಗಿನ ಕ್ರಿಯಾ ಹಂತವನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗಿಲ್ಲ\n"
-
-#: ../leveldb.c:798
-#, c-format
-msgid "failed to make symlink %s: %s\n"
-msgstr "symlink ಮಾಡುವಲ್ಲಿ ಅಡಚಣೆಯಾಗಿದೆ %s: %s\n"
-
-#: ../alternatives.c:63
-#, c-format
-msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
-msgstr "ಬದಲಿ ಆವೃತ್ತಿ %s - ಕೃತಿಸ್ವಾಮ್ಯ (C) 1997-2000 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 ""
-"ಇದನ್ನು ಜಿ ಎನ್ ಯು ಸಾರ್ವರ್ತಿಕ ಪರವಾನಗಿಯ ಕರಾರುಗಳಡಿಯಲ್ಲಿ ಉಚಿತವಾಗಿ ಮರು ಹಂಚಿಕೆ "
-"ಮಾಡಬಹುದಾಗಿದೆ.\n"
-"\n"
-
-#: ../alternatives.c:65
-#, c-format
-msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
-msgstr "ಬಳಕೆ: 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 "ಸಾಮಾನ್ಯ ಆಯ್ಕೆಗಳು: --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 "ಓದುತ್ತಿದೆ %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 "%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 ವು %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 ""
-"ಕೊಂಡಿಯು ಯಾವುದೇ ಪರ್ಯಾಯಕ್ಕೆ ಸೂಚಿತವಾಗಿಲ್ಲ-- ಕ್ರಮವನ್ನು ಸ್ವಹಸ್ತ(manual)ಗೆ "
-"ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ\n"
-
-#: ../alternatives.c:338
-#, c-format
-msgid "link changed -- setting mode to manual\n"
-msgstr "ಕೊಂಡಿ ಬದಲಾಗಿದೆ-- ಕ್ರಮವನ್ನು ಸ್ವಹಸ್ತ(manual)ಗೆ ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ\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 - ಸ್ಥಿತಿಯು ಸ್ವಯಂ(auto) ಆಗಿದೆ.\n"
-
-#: ../alternatives.c:662
-#, c-format
-msgid "%s - status is manual.\n"
-msgstr "%s - ಸ್ಥಿತಿಯು ಹಸ್ತಮುಖೇನ(manual) ಆಗಿದೆ.\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 "ಪ್ರಸಕ್ತ ಆಯ್ಕೆಯನ್ನು [+] ಉಳಿಸಿಕೊಳ್ಳಲು ನಮೂದಿಸಿ, ಅಥವ ಆಯ್ಕಾ ಸಂಖ್ಯೆಯನ್ನು ಆರಿಸಿ: "
-
-#: ../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 "ಬದಲಿಯ ಆವೃತ್ತಿ %s\n"
-
--- chkconfig-1.3.44/po/ko.po
+++ chkconfig-1.3.44/po/ko.po
-# translation of chkconfig.master.po to Korean
-#
-# Michelle J Kim <mkim at redhat.com>, 2003,2004.
-# Michelle Ji Yeen Kim <mkim at redhat.com>, 2005.
-# Eunju Kim <eukim at redhat.com>, 2007, 2008.
-msgid ""
-msgstr ""
-"Project-Id-Version: chkconfig.master\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-04 23:29-0500\n"
-"PO-Revision-Date: 2008-12-19 13:50+1000\n"
-"Last-Translator: Eunju Kim <eukim at redhat.com>\n"
-"Language-Team: Korean <ko at li.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\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 "이 프로그램은 GNU Public License 내에서 자유롭게 재배포될 수 있습니다.\n"
-
-#: ../chkconfig.c:42
-#, c-format
-msgid "usage: %s [--list] [--type <type>] [name]\n"
-msgstr "사용법: %s [--list] [--type <type>] [이름]\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
-#, c-format
-msgid " %s [--level <levels>] [--type <type>] <name> %s\n"
-msgstr " %s [--level <레벨>] [--type <type>] <이름> %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를 지원하지만 어떠한 런레벨에도 등록되지 않았습니다 "
-"( '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 "이 작업을 실행할 권한이 없습니다.\n"
-
-# #
-# # 이곳을 '켜짐' 과 '꺼짐'으로 번역하면,
-# # 한글의 시각적 특성상 보기에 좀 헷갈립니다.
-# # '끔' 과 '켬' 도 마찬가지 입니다. :-)
-# #
-#: ../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 "--type은 'sysv' 또는 'xinetd'이어야만 합니다\n"
-
-#: ../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 패턴을 glob 명령에 사용하는데 실패했습니다: %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 "대체 버전 %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 ""
-"이 프로그램은 GNU Public License를 따른다는 조건 하에서 이 문서를 \n"
-"자유롭게 재배포하실 수 있습니다.\n"
-
-#: ../alternatives.c:65
-#, c-format
-msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
-msgstr "사용법: 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 "일반 옵션들: --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 "%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 "%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가 예상치 못한 경로 %s를 포함하고 있습니다\n"
-
-#: ../alternatives.c:231
-#, c-format
-msgid "missing path for slave %s in %s\n"
-msgstr "%s에 슬레이브 %s로의 경로가 빠졌습니다\n"
-
-#: ../alternatives.c:241
-#, c-format
-msgid "unexpected end of file in %s\n"
-msgstr "%s에 예기치 않은 파일 끝 (EOF)이 있습니다\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 ""
-"현재 선택[+]을 유지하시려면 엔터키를 누르십시오. 그렇지 않으면, 선택 번호를 "
-"입력해 주십시오:"
-
-#: ../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 "대체 버전 %s\n"
-
--- chkconfig-1.3.44/po/ku.po
+++ chkconfig-1.3.44/po/ku.po
(renamed to chkconfig-1.3.46/po/ku.po)
--- chkconfig-1.3.44/po/lo.po
+++ chkconfig-1.3.44/po/lo.po
(renamed to chkconfig-1.3.46/po/lo.po)
--- chkconfig-1.3.44/po/lv.po
+++ chkconfig-1.3.44/po/lv.po
(renamed to chkconfig-1.3.46/po/lv.po)
--- chkconfig-1.3.44/po/mai.po
+++ chkconfig-1.3.44/po/mai.po
(renamed to chkconfig-1.3.46/po/mai.po)
--- chkconfig-1.3.44/po/mk.po
+++ chkconfig-1.3.44/po/mk.po
(renamed to chkconfig-1.3.46/po/mk.po)
--- chkconfig-1.3.44/po/ml.po
+++ chkconfig-1.3.44/po/ml.po
(renamed to chkconfig-1.3.46/po/ml.po)
--- chkconfig-1.3.44/po/mr.po
+++ chkconfig-1.3.44/po/mr.po
(renamed to chkconfig-1.3.46/po/mr.po)
--- chkconfig-1.3.44/po/ms.po
+++ chkconfig-1.3.44/po/ms.po
(renamed to chkconfig-1.3.46/po/ms.po)
--- chkconfig-1.3.44/po/my.po
+++ chkconfig-1.3.44/po/my.po
(renamed to chkconfig-1.3.46/po/my.po)
--- chkconfig-1.3.44/po/nb.po
+++ chkconfig-1.3.44/po/nb.po
(renamed to chkconfig-1.3.46/po/nb.po)
--- chkconfig-1.3.44/po/nl.po
+++ chkconfig-1.3.44/po/nl.po
(renamed to chkconfig-1.3.46/po/nl.po)
--- chkconfig-1.3.44/po/nn.po
+++ chkconfig-1.3.44/po/nn.po
(renamed to chkconfig-1.3.46/po/nn.po)
--- chkconfig-1.3.44/po/or.po
+++ chkconfig-1.3.44/po/or.po
(renamed to chkconfig-1.3.46/po/or.po)
--- chkconfig-1.3.44/po/pa.po
+++ chkconfig-1.3.44/po/pa.po
(renamed to chkconfig-1.3.46/po/pa.po)
--- chkconfig-1.3.44/po/pl.po
+++ chkconfig-1.3.44/po/pl.po
(renamed to chkconfig-1.3.46/po/pl.po)
--- chkconfig-1.3.44/po/pt.po
+++ chkconfig-1.3.44/po/pt.po
(renamed to chkconfig-1.3.46/po/pt.po)
--- chkconfig-1.3.44/po/pt_BR.po
+++ chkconfig-1.3.44/po/pt_BR.po
(renamed to chkconfig-1.3.46/po/pt_BR.po)
--- chkconfig-1.3.44/po/ro.po
+++ chkconfig-1.3.44/po/ro.po
(renamed to chkconfig-1.3.46/po/ro.po)
--- chkconfig-1.3.44/po/ru.po
+++ chkconfig-1.3.44/po/ru.po
(renamed to chkconfig-1.3.46/po/ru.po)
--- chkconfig-1.3.44/po/si.po
+++ chkconfig-1.3.44/po/si.po
(renamed to chkconfig-1.3.46/po/si.po)
--- chkconfig-1.3.44/po/sk.po
+++ chkconfig-1.3.44/po/sk.po
(renamed to chkconfig-1.3.46/po/sk.po)
--- chkconfig-1.3.44/po/sl.po
+++ chkconfig-1.3.44/po/sl.po
(renamed to chkconfig-1.3.46/po/sl.po)
--- chkconfig-1.3.44/po/sq.po
+++ chkconfig-1.3.44/po/sq.po
(renamed to chkconfig-1.3.46/po/sq.po)
--- chkconfig-1.3.44/po/sr.po
+++ chkconfig-1.3.44/po/sr.po
(renamed to chkconfig-1.3.46/po/sr.po)
--- chkconfig-1.3.44/po/sr at latin.po
+++ chkconfig-1.3.44/po/sr at latin.po
(renamed to chkconfig-1.3.46/po/sr at latin.po)
--- chkconfig-1.3.44/po/sv.po
+++ chkconfig-1.3.44/po/sv.po
(renamed to chkconfig-1.3.46/po/sv.po)
--- chkconfig-1.3.44/po/ta.po
+++ chkconfig-1.3.44/po/ta.po
(renamed to chkconfig-1.3.46/po/ta.po)
--- chkconfig-1.3.44/po/te.po
+++ chkconfig-1.3.44/po/te.po
(renamed to chkconfig-1.3.46/po/te.po)
--- chkconfig-1.3.44/po/tg.po
+++ chkconfig-1.3.44/po/tg.po
(renamed to chkconfig-1.3.46/po/tg.po)
--- chkconfig-1.3.44/po/tr.po
+++ chkconfig-1.3.44/po/tr.po
(renamed to chkconfig-1.3.46/po/tr.po)
--- chkconfig-1.3.44/po/uk.po
+++ chkconfig-1.3.44/po/uk.po
(renamed to chkconfig-1.3.46/po/uk.po)
--- chkconfig-1.3.44/po/ur.po
+++ chkconfig-1.3.44/po/ur.po
(renamed to chkconfig-1.3.46/po/ur.po)
--- chkconfig-1.3.44/po/vi.po
+++ chkconfig-1.3.44/po/vi.po
(renamed to chkconfig-1.3.46/po/vi.po)
--- chkconfig-1.3.44/po/zh_CN.po
+++ chkconfig-1.3.44/po/zh_CN.po
(renamed to chkconfig-1.3.46/po/zh_CN.po)
--- chkconfig-1.3.44/po/zh_TW.po
+++ chkconfig-1.3.44/po/zh_TW.po
(renamed to chkconfig-1.3.46/po/zh_TW.po)
--- chkconfig-1.3.46
+++ chkconfig-1.3.46
+(directory)
--- chkconfig-1.3.46/COPYING
+++ chkconfig-1.3.46/COPYING
(renamed from chkconfig-1.3.44/COPYING)
--- chkconfig-1.3.46/Makefile
+++ chkconfig-1.3.46/Makefile
(renamed from chkconfig-1.3.44/Makefile)
--- chkconfig-1.3.46/alternatives.8
+++ chkconfig-1.3.46/alternatives.8
(renamed from chkconfig-1.3.44/alternatives.8)
--- chkconfig-1.3.46/alternatives.c
+++ chkconfig-1.3.46/alternatives.c
(renamed from chkconfig-1.3.44/alternatives.c)
--- chkconfig-1.3.46/chkconfig.8
+++ chkconfig-1.3.46/chkconfig.8
(renamed from chkconfig-1.3.44/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 from chkconfig-1.3.44/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 from chkconfig-1.3.44/po/ChangeLog)
--- chkconfig-1.3.46/po/Makefile
+++ chkconfig-1.3.46/po/Makefile
(renamed from chkconfig-1.3.44/po/Makefile)
--- chkconfig-1.3.46/po/ar.po
+++ chkconfig-1.3.46/po/ar.po
(renamed from chkconfig-1.3.44/po/ar.po)
--- chkconfig-1.3.46/po/as.po
+++ chkconfig-1.3.46/po/as.po
(renamed from chkconfig-1.3.44/po/as.po)
--- chkconfig-1.3.46/po/bal.po
+++ chkconfig-1.3.46/po/bal.po
(renamed from chkconfig-1.3.44/po/bal.po)
--- chkconfig-1.3.46/po/be.po
+++ chkconfig-1.3.46/po/be.po
(renamed from chkconfig-1.3.44/po/be.po)
--- chkconfig-1.3.46/po/bg.po
+++ chkconfig-1.3.46/po/bg.po
(renamed from chkconfig-1.3.44/po/bg.po)
--- chkconfig-1.3.46/po/bn.po
+++ chkconfig-1.3.46/po/bn.po
(renamed from chkconfig-1.3.44/po/bn.po)
--- chkconfig-1.3.46/po/bn_IN.po
+++ chkconfig-1.3.46/po/bn_IN.po
(renamed from chkconfig-1.3.44/po/bn_IN.po)
--- chkconfig-1.3.46/po/bs.po
+++ chkconfig-1.3.46/po/bs.po
(renamed from chkconfig-1.3.44/po/bs.po)
--- chkconfig-1.3.46/po/ca.po
+++ chkconfig-1.3.46/po/ca.po
(renamed from chkconfig-1.3.44/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 from chkconfig-1.3.44/po/cs.po)
--- chkconfig-1.3.46/po/cy.po
+++ chkconfig-1.3.46/po/cy.po
(renamed from chkconfig-1.3.44/po/cy.po)
--- chkconfig-1.3.46/po/da.po
+++ chkconfig-1.3.46/po/da.po
(renamed from chkconfig-1.3.44/po/da.po)
--- chkconfig-1.3.46/po/de.po
+++ chkconfig-1.3.46/po/de.po
(renamed from chkconfig-1.3.44/po/de.po)
--- chkconfig-1.3.46/po/el.po
+++ chkconfig-1.3.46/po/el.po
+# Greek translation of chkconf.
+# Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+# Simos Xenitellis <simos at hellug.gr>, 2002.
+# Nikos Charonitakis <charosn at her.forthnet.gr>, 2004.
+# jiannis bonatakis <california17 at gmail.com>,2008 Nikos Charonitakis <charosn at her.forthnet.gr>, 2008.
+# Pierros Papadeas <ppapadeas at gmail.com>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: el.po\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-03-09 15:56-0400\n"
+"PO-Revision-Date: 2009-11-04 11:15+0200\n"
+"Last-Translator: Kostas Papadimas <pkst at gnome.org>\n"
+"Language-Team: Greek <nls at tux.hellug.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Greek\n"
+
+#: ../chkconfig.c:38
+#, c-format
+msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
+msgstr "%s έκδοση %s - Πνευματικά δικαιώματα (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 "Μπορείτε να το αναδιανείμετε σύμφωνα με τους όρους της Δημόσιας Άδειας GNU.\n"
+
+#: ../chkconfig.c:42
+#, c-format
+msgid "usage: %s [--list] [--type <type>] [name]\n"
+msgstr "χρήση: %s [--list] [--type <τύπος>] [όνομα]\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
+#, c-format
+msgid " %s [--level <levels>] [--type <type>] <name> %s\n"
+msgstr " %s [--level <επίπεδα>] [--type <τύπος>] <όνομα> %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 "Δεν έχετε επαρκή δικαιώματα για να εκτελέσετε αυτή την λειτουργία.\n"
+
+#: ../chkconfig.c:379
+#: ../chkconfig.c:384
+#: ../chkconfig.c:498
+msgid "on"
+msgstr "ενεργό"
+
+#: ../chkconfig.c:379
+#: ../chkconfig.c:384
+#: ../chkconfig.c:498
+msgid "off"
+msgstr "ανενεργό"
+
+#: ../chkconfig.c:460
+#, c-format
+msgid "xinetd based services:\n"
+msgstr "υπηρεσίες βασισμένες στο xinetd:\n"
+
+#: ../chkconfig.c:462
+#, c-format
+msgid "failed to open directory %s: %s\n"
+msgstr "αποτυχία ανοίγματος του καταλόγου %s: %s\n"
+
+#: ../chkconfig.c:606
+#, c-format
+msgid "%s version %s\n"
+msgstr "%s έκδοση %s\n"
+
+#: ../chkconfig.c:618
+#, c-format
+msgid "--type must be 'sysv' or 'xinetd'\n"
+msgstr "το --type πρέπει να είναι 'sysv' ή 'xinetd'\n"
+
+#: ../chkconfig.c:626
+#, c-format
+msgid "only one of --list, --add, --del, or --override may be specified\n"
+msgstr "μπορούν να καθοριστούν μόνο ένα από τα --list, --add ή --del\n"
+
+#: ../chkconfig.c:686
+#, c-format
+msgid "only one runlevel may be specified for a chkconfig query\n"
+msgstr ""
+"μόνο ένα επίπεδο εκτέλεσης μπορεί να καθοριστεί σε \n"
+"κάθε χρήση του 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.\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:259
+#, c-format
+msgid "failed to open %s/init.d: %s\n"
+msgstr "αποτυχία ανοίγματος του %s/init.d: %s\n"
+
+#: ../leveldb.c:667
+#, c-format
+msgid "failed to glob pattern %s: %s\n"
+msgstr "αποτυχία ανάπτυξης σχεδίου %s: %s\n"
+
+#: ../leveldb.c:710
+#, c-format
+msgid "cannot determine current run level\n"
+msgstr "αδύνατος ο καθορισμός του τρέχοντος επιπέδου εκτέλεσης\n"
+
+#: ../leveldb.c:798
+#, 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 - Πνευματικά δικαιώματα (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 ""
+"Μπορείτε να το αναδιανείμετε σύμφωνα με τους όρους της Δημόσιας Άδειας GNU Public Licence.\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 <service>]\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 μη αναμενόμενη στη %s\n"
+
+#: ../alternatives.c:231
+#, c-format
+msgid "missing path for slave %s in %s\n"
+msgstr "λείπει η διαδρομή για το δευτερεύον %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 "οι συνδέσεις δεν δείχνουν σε alternative -- ορισμός χειρωνακτικής κατάστασης\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"
+
+#~ msgid "error reading from directory %s/init.d: %s\n"
+#~ msgstr "σφάλμα ανάγνωσης από τον κατάλογο %s/init.d: %s\n"
+
--- chkconfig-1.3.46/po/en_GB.po
+++ chkconfig-1.3.46/po/en_GB.po
(renamed from chkconfig-1.3.44/po/en_GB.po)
--- chkconfig-1.3.46/po/es.po
+++ chkconfig-1.3.46/po/es.po
(renamed from chkconfig-1.3.44/po/es.po)
--- chkconfig-1.3.46/po/et.po
+++ chkconfig-1.3.46/po/et.po
(renamed from chkconfig-1.3.44/po/et.po)
--- chkconfig-1.3.46/po/fi.po
+++ chkconfig-1.3.46/po/fi.po
(renamed from chkconfig-1.3.44/po/fi.po)
--- chkconfig-1.3.46/po/fr.po
+++ chkconfig-1.3.46/po/fr.po
(renamed from chkconfig-1.3.44/po/fr.po)
--- chkconfig-1.3.46/po/gl.po
+++ chkconfig-1.3.46/po/gl.po
(renamed from chkconfig-1.3.44/po/gl.po)
--- chkconfig-1.3.46/po/gu.po
+++ chkconfig-1.3.46/po/gu.po
(renamed from chkconfig-1.3.44/po/gu.po)
--- chkconfig-1.3.46/po/he.po
+++ chkconfig-1.3.46/po/he.po
(renamed from chkconfig-1.3.44/po/he.po)
--- chkconfig-1.3.46/po/hi.po
+++ chkconfig-1.3.46/po/hi.po
(renamed from chkconfig-1.3.44/po/hi.po)
--- chkconfig-1.3.46/po/hr.po
+++ chkconfig-1.3.46/po/hr.po
(renamed from chkconfig-1.3.44/po/hr.po)
--- chkconfig-1.3.46/po/hu.po
+++ chkconfig-1.3.46/po/hu.po
+# Arpad Biro <biro_arpad at yahoo.com>, 2004, 2005, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: chkconfig\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-03 17:22-0500\n"
+"PO-Revision-Date: 2010-03-12 02:32+0100\n"
+"Last-Translator: Peter Bojtos <ptr at ulx.hu>\n"
+"Language-Team: Hungarian <fedora-trans-hu at redhat.com>\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"
+
+#: ../chkconfig.c:38
+#, c-format
+msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
+msgstr "%s %s változat – Szerzői jog (C) Red Hat, Inc., 1997-2000.\n"
+
+#: ../chkconfig.c:39
+#, c-format
+msgid "This may be freely redistributed under the terms of the GNU Public License.\n"
+msgstr "Ez a szoftver szabadon terjeszthető a GNU Public License feltételei szerint.\n"
+
+#: ../chkconfig.c:42
+#, c-format
+msgid "usage: %s [--list] [--type <type>] [name]\n"
+msgstr "használat: %s [--list] [--type <típus>] [név]\n"
+
+#: ../chkconfig.c:43
+#, c-format
+msgid " %s --add <name>\n"
+msgstr " %s --add <név>\n"
+
+#: ../chkconfig.c:44
+#, c-format
+msgid " %s --del <name>\n"
+msgstr " %s --del <név>\n"
+
+#: ../chkconfig.c:45
+#, c-format
+msgid " %s --override <name>\n"
+msgstr " %s --override <név>\n"
+
+#: ../chkconfig.c:46
+#, c-format
+msgid " %s [--level <levels>] [--type <type>] <name> %s\n"
+msgstr " %s [--level <szintek>] [--type <típus>] <név> %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 szolgáltatás támogatja a chkconfigot, de egyik futási szinten sem szerepel (adja ki a „chkconfig --add %s” parancsot)\n"
+
+#: ../chkconfig.c:55
+#, c-format
+msgid "service %s does not support chkconfig\n"
+msgstr "%s szolgáltatás nem támogatja a chkconfigot\n"
+
+#: ../chkconfig.c:57
+#, c-format
+msgid "error reading information on service %s: %s\n"
+msgstr "hiba történt %s szolgáltatás adatainak beolvasásakor: %s\n"
+
+#: ../chkconfig.c:66
+#, c-format
+msgid "You do not have enough privileges to perform this operation.\n"
+msgstr "Nincs elég joga e művelet elvégzéséhez.\n"
+
+#: ../chkconfig.c:411
+#: ../chkconfig.c:416
+#: ../chkconfig.c:530
+msgid "on"
+msgstr "be"
+
+#: ../chkconfig.c:411
+#: ../chkconfig.c:416
+#: ../chkconfig.c:530
+msgid "off"
+msgstr "ki"
+
+#: ../chkconfig.c:492
+#, c-format
+msgid "xinetd based services:\n"
+msgstr "xinetd-alapú szolgáltatások:\n"
+
+#: ../chkconfig.c:494
+#, c-format
+msgid "failed to open directory %s: %s\n"
+msgstr "nem sikerült megnyitni %s könyvtárt: %s\n"
+
+#: ../chkconfig.c:638
+#, c-format
+msgid "%s version %s\n"
+msgstr "%s %s\n"
+
+#: ../chkconfig.c:650
+#, c-format
+msgid "--type must be 'sysv' or 'xinetd'\n"
+msgstr "--type csak „sysv” vagy „xinetd” lehet\n"
+
+#: ../chkconfig.c:658
+#, c-format
+msgid "only one of --list, --add, --del, or --override may be specified\n"
+msgstr "a --list, --add, --del és --override közül csak egyet lehet megadni\n"
+
+#: ../chkconfig.c:718
+#, c-format
+msgid "only one runlevel may be specified for a chkconfig query\n"
+msgstr "csak egy futási szintet lehet megadni egy chkconfig-lekérdezésben\n"
+
+#: ../ntsysv.c:46
+msgid "Press <F1> for more information on a service."
+msgstr "Egy szolgáltatás jellemzőinek lekérdezéséhez nyomjon <F1>-et!"
+
+#: ../ntsysv.c:83
+#: ../ntsysv.c:120
+msgid "Ok"
+msgstr "OK"
+
+#: ../ntsysv.c:83
+msgid "Back"
+msgstr "Vissza"
+
+#: ../ntsysv.c:83
+msgid "Cancel"
+msgstr "Mégsem"
+
+#: ../ntsysv.c:95
+msgid "What services should be automatically started?"
+msgstr "Mely szolgáltatások induljanak el automatikusan?"
+
+#: ../ntsysv.c:101
+msgid "Services"
+msgstr "Szolgáltatások"
+
+#: ../ntsysv.c:183
+#: ../ntsysv.c:210
+#: ../ntsysv.c:248
+#, c-format
+msgid "error reading info for service %s: %s\n"
+msgstr "hiba történt %s szolgáltatás adatainak beolvasásakor: %s\n"
+
+#: ../ntsysv.c:257
+#, c-format
+msgid "error reading from directory %s: %s\n"
+msgstr "hiba történt %s könyvtár olvasása közben: %s\n"
+
+#: ../ntsysv.c:293
+#, c-format
+msgid "You must be root to run %s.\n"
+msgstr "%s futtatása csak rendszergazdai jogosultsággal lehetséges.\n"
+
+#: ../ntsysv.c:310
+#, c-format
+msgid "bad argument to --levels\n"
+msgstr "hibás argumentum a --levels opcióhoz\n"
+
+#: ../ntsysv.c:317
+#, c-format
+msgid "No services may be managed by ntsysv!\n"
+msgstr "Egy szolgáltatás sem kezelhető az ntsysv programmal.\n"
+
+#: ../leveldb.c:261
+#, c-format
+msgid "failed to open %s/init.d: %s\n"
+msgstr "%s/init.d megnyitása nem sikerült: %s\n"
+
+#: ../leveldb.c:662
+#, c-format
+msgid "failed to glob pattern %s: %s\n"
+msgstr "nem sikerült értelmezni %s mintát: %s\n"
+
+#: ../leveldb.c:705
+#, c-format
+msgid "cannot determine current run level\n"
+msgstr "nem sikerült megállapítani az aktuális futási szintet\n"
+
+#: ../leveldb.c:793
+#, c-format
+msgid "failed to make symlink %s: %s\n"
+msgstr "%s szimbolikus link létrehozása nem sikerült: %s\n"
+
+#: ../alternatives.c:63
+#, c-format
+msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
+msgstr "alternatives %s - Szerzői jog ©Red Hat Inc., 2001.\n"
+
+#: ../alternatives.c:64
+#, c-format
+msgid ""
+"This may be freely redistributed under the terms of the GNU Public License.\n"
+"\n"
+msgstr ""
+"Ez a szoftver szabadon terjeszthető a GNU Public License feltételei szerint.\n"
+"\n"
+
+#: ../alternatives.c:65
+#, c-format
+msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
+msgstr "Használat: alternatives --install <link> <név> <elérési út> <prioritás>\n"
+
+#: ../alternatives.c:66
+#, c-format
+msgid " [--initscript <service>]\n"
+msgstr " [--initscript <szolgáltatás>]\n"
+
+#: ../alternatives.c:67
+#, c-format
+msgid " [--slave <link> <name> <path>]*\n"
+msgstr " [--slave <link> <név> <elérési út>]*\n"
+
+#: ../alternatives.c:68
+#, c-format
+msgid " alternatives --remove <name> <path>\n"
+msgstr " alternatives --remove <név> <elérési út>\n"
+
+#: ../alternatives.c:69
+#, c-format
+msgid " alternatives --auto <name>\n"
+msgstr " alternatives --auto <név>\n"
+
+#: ../alternatives.c:70
+#, c-format
+msgid " alternatives --config <name>\n"
+msgstr " alternatives --config <név>\n"
+
+#: ../alternatives.c:71
+#, c-format
+msgid " alternatives --display <name>\n"
+msgstr " alternatives --display <név>\n"
+
+#: ../alternatives.c:72
+#, c-format
+msgid " alternatives --set <name> <path>\n"
+msgstr " alternatives --set <név> <elérési út>\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 "általános opciók: --verbose --test --help --usage --version\n"
+
+#: ../alternatives.c:75
+#, c-format
+msgid " --altdir <directory> --admindir <directory>\n"
+msgstr " --altdir <könyvtár> --admindir <könyvtár>\n"
+
+#: ../alternatives.c:172
+#, c-format
+msgid "reading %s\n"
+msgstr "%s olvasása\n"
+
+#: ../alternatives.c:176
+#, c-format
+msgid "failed to open %s: %s\n"
+msgstr "%s megnyitása nem sikerült: %s\n"
+
+#: ../alternatives.c:185
+#, c-format
+msgid "failed to read %s: %s\n"
+msgstr "%s olvasása nem sikerült: %s\n"
+
+#: ../alternatives.c:194
+#, c-format
+msgid "%s empty!\n"
+msgstr "%s üres.\n"
+
+#: ../alternatives.c:203
+#, c-format
+msgid "bad mode on line 1 of %s\n"
+msgstr "hibás mód %s első sorában\n"
+
+#: ../alternatives.c:210
+#, c-format
+msgid "bad primary link in %s\n"
+msgstr "hibás elsődleges link ebben: %s\n"
+
+#: ../alternatives.c:222
+#, c-format
+msgid "path %s unexpected in %s\n"
+msgstr "nem várt elérési út (%s) ebben: %s\n"
+
+#: ../alternatives.c:231
+#, c-format
+msgid "missing path for slave %s in %s\n"
+msgstr "hiányzó elérési út %s slave-hez ebben: %s\n"
+
+#: ../alternatives.c:241
+#, c-format
+msgid "unexpected end of file in %s\n"
+msgstr "nem várt fájlvég ebben: %s\n"
+
+#: ../alternatives.c:250
+#, c-format
+msgid "path to alternate expected in %s\n"
+msgstr "az alternatíva elérési útja hiányzik ebből: %s\n"
+
+#: ../alternatives.c:251
+#: ../alternatives.c:272
+#: ../alternatives.c:295
+#: ../alternatives.c:314
+#, c-format
+msgid "unexpected line in %s: %s\n"
+msgstr "nem várt sor ebben: %s: %s\n"
+
+#: ../alternatives.c:271
+#, c-format
+msgid "numeric priority expected in %s\n"
+msgstr "a numerikus prioritás hiányzik ebből: %s\n"
+
+#: ../alternatives.c:294
+#, c-format
+msgid "slave path expected in %s\n"
+msgstr "slave elérési út hiányzik ebből: %s\n"
+
+#: ../alternatives.c:322
+#, c-format
+msgid "failed to read link %s: %s\n"
+msgstr "%s link olvasása nem sikerült: %s\n"
+
+#: ../alternatives.c:336
+#, c-format
+msgid "link points to no alternative -- setting mode to manual\n"
+msgstr "a link nem alternatívára mutat -- átállítás kézi módra\n"
+
+#: ../alternatives.c:341
+#, c-format
+msgid "link changed -- setting mode to manual\n"
+msgstr "a link megváltozott -- átállítás kézi módra\n"
+
+#: ../alternatives.c:369
+#: ../alternatives.c:376
+#, c-format
+msgid "would remove %s\n"
+msgstr "eltávolítás: %s\n"
+
+#: ../alternatives.c:371
+#: ../alternatives.c:378
+#: ../alternatives.c:410
+#, c-format
+msgid "failed to remove link %s: %s\n"
+msgstr "%s link eltávolítása nem sikerült: %s\n"
+
+#: ../alternatives.c:394
+#: ../alternatives.c:407
+#, c-format
+msgid "would link %s -> %s\n"
+msgstr "link létrehozása: %s -> %s\n"
+
+#: ../alternatives.c:399
+#: ../alternatives.c:416
+#, c-format
+msgid "failed to link %s -> %s: %s\n"
+msgstr "%s -> %s linkelés sikertelen: %s\n"
+
+#: ../alternatives.c:448
+#, c-format
+msgid "%s already exists\n"
+msgstr "%s már létezik\n"
+
+#: ../alternatives.c:450
+#, c-format
+msgid "failed to create %s: %s\n"
+msgstr "%s létrehozása nem sikerült: %s\n"
+
+#: ../alternatives.c:481
+#, c-format
+msgid "failed to replace %s with %s: %s\n"
+msgstr "%s => %s csere nem sikerült: %s\n"
+
+#: ../alternatives.c:507
+#: ../alternatives.c:516
+#, c-format
+msgid "running %s\n"
+msgstr "%s futtatása\n"
+
+#: ../alternatives.c:543
+#, c-format
+msgid "the primary link for %s must be %s\n"
+msgstr "%s elsődleges linkje csak ez lehet: %s\n"
+
+#: ../alternatives.c:623
+#, c-format
+msgid "link %s incorrect for slave %s (%s %s)\n"
+msgstr "%s link nem megfelelő %s slave-nek (%s %s)\n"
+
+#: ../alternatives.c:664
+#, c-format
+msgid "%s - status is auto.\n"
+msgstr "%s - automatikus módban.\n"
+
+#: ../alternatives.c:666
+#, c-format
+msgid "%s - status is manual.\n"
+msgstr "%s - kézi módban.\n"
+
+#: ../alternatives.c:668
+#, c-format
+msgid " link currently points to %s\n"
+msgstr " link jelenleg ide mutat: %s\n"
+
+#: ../alternatives.c:671
+#, c-format
+msgid "%s - priority %d\n"
+msgstr "%s - prioritás: %d\n"
+
+#: ../alternatives.c:674
+#, c-format
+msgid " slave %s: %s\n"
+msgstr " %s slave: %s\n"
+
+#: ../alternatives.c:679
+#, c-format
+msgid "Current `best' version is %s.\n"
+msgstr "A jelenlegi „legjobb” változat: %s\n"
+
+#: ../alternatives.c:709
+#, c-format
+msgid "There is %d program that provides '%s'.\n"
+msgstr "%d program nyújtja ezt: „%s”.\n"
+
+#: ../alternatives.c:709
+#, c-format
+msgid "There are %d programs which provide '%s'.\n"
+msgstr "%d program nyújtja ezt: „%s”.\n"
+
+#: ../alternatives.c:711
+#, c-format
+msgid " Selection Command\n"
+msgstr " Kijelölés Parancs\n"
+
+#: ../alternatives.c:720
+#, c-format
+msgid "Enter to keep the current selection[+], or type selection number: "
+msgstr "Az Enter lenyomásával megőrizhető a kijelölés [+] -- vagy adjon meg egy kijelölési számot: "
+
+#: ../alternatives.c:723
+#, c-format
+msgid ""
+"\n"
+"error reading choice\n"
+msgstr ""
+"\n"
+"hiba történt a választás beolvasásakor\n"
+
+#: ../alternatives.c:750
+#: ../alternatives.c:776
+#, c-format
+msgid "%s has not been configured as an alternative for %s\n"
+msgstr "%s nincs beállítva %s alternatívájának\n"
+
+#: ../alternatives.c:792
+#, c-format
+msgid "(would remove %s\n"
+msgstr "(%s eltávolítása\n"
+
+#: ../alternatives.c:794
+#, c-format
+msgid "failed to remove %s: %s\n"
+msgstr "%s eltávolítása nem sikerült: %s\n"
+
+#: ../alternatives.c:916
+#, c-format
+msgid "altdir %s invalid\n"
+msgstr "%s altdir érvénytelen\n"
+
+#: ../alternatives.c:922
+#, c-format
+msgid "admindir %s invalid\n"
+msgstr "%s admindir érvénytelen\n"
+
+#: ../alternatives.c:932
+#, c-format
+msgid "alternatives version %s\n"
+msgstr "alternatives %s. változat\n"
+
--- chkconfig-1.3.46/po/hy.po
+++ chkconfig-1.3.46/po/hy.po
(renamed from chkconfig-1.3.44/po/hy.po)
--- chkconfig-1.3.46/po/id.po
+++ chkconfig-1.3.46/po/id.po
+# chkconfig Bahasa Indonesia
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Mohammad DAMT <mdamt at linux.or.id>, 1999.
+# Teguh DC <dheche at songolimo.net>, 2004-2009
+# $Id: id.po,v 1.27 2007/02/22 19:38:24 dheche Exp $
+msgid ""
+msgstr ""
+"Project-Id-Version: chkconfig\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-03-09 15:56-0400\n"
+"PO-Revision-Date: 2010-01-20 20:27+0700\n"
+"Last-Translator: Teguh DC <dheche at songolimo.net>\n"
+"Language-Team: Fedora Trans ID <fedora-trans-id at redhat.com>\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 versi %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 "Program ini dapat didistribusikan di bawah Lisensi GNU Public License.\n"
+
+#: ../chkconfig.c:42
+#, c-format
+msgid "usage: %s [--list] [--type <type>] [name]\n"
+msgstr "cara pakai: %s [--list] [--type <type>] [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
+#, c-format
+msgid " %s [--level <levels>] [--type <type>] <name> %s\n"
+msgstr " %s [--level <levels>] [--type <type>] <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 "layanan %s mendukung chkconfig, tapi belum memiliki referensi di runlevel manapun (jalankan 'chkconfig --add %s')\n"
+
+#: ../chkconfig.c:55
+#, c-format
+msgid "service %s does not support chkconfig\n"
+msgstr "layanan %s tidak mendukung chkconfig\n"
+
+#: ../chkconfig.c:57
+#, c-format
+msgid "error reading information on service %s: %s\n"
+msgstr "terdapat error ketika membaca informasi layanan %s: %s\n"
+
+#: ../chkconfig.c:66
+#, c-format
+msgid "You do not have enough privileges to perform this operation.\n"
+msgstr "Anda tidak memiliki hak akses yang memadai untuk menjalankan operasi ini.\n"
+
+#: ../chkconfig.c:379
+#: ../chkconfig.c:384
+#: ../chkconfig.c:498
+msgid "on"
+msgstr "hidup"
+
+#: ../chkconfig.c:379
+#: ../chkconfig.c:384
+#: ../chkconfig.c:498
+msgid "off"
+msgstr "mati"
+
+#: ../chkconfig.c:460
+#, c-format
+msgid "xinetd based services:\n"
+msgstr "Layanan berbasis xinetd:\n"
+
+#: ../chkconfig.c:462
+#, c-format
+msgid "failed to open directory %s: %s\n"
+msgstr "gagal untuk membuka direktori %s: %s\n"
+
+#: ../chkconfig.c:606
+#, c-format
+msgid "%s version %s\n"
+msgstr "%s versi %s\n"
+
+#: ../chkconfig.c:618
+#, c-format
+msgid "--type must be 'sysv' or 'xinetd'\n"
+msgstr "--type harus 'sysv' atau 'xinetd'\n"
+
+#: ../chkconfig.c:626
+#, c-format
+msgid "only one of --list, --add, --del, or --override may be specified\n"
+msgstr "hanya satu dari --list, --add, --del atau --override yang dapat dipilih\n"
+
+#: ../chkconfig.c:686
+#, c-format
+msgid "only one runlevel may be specified for a chkconfig query\n"
+msgstr "hanya satu runlevel yang dapat dipilih untuk query chkconfig\n"
+
+#: ../ntsysv.c:46
+msgid "Press <F1> for more information on a service."
+msgstr "Tekan <F1> untuk melihat informasi tentang suatu layanan."
+
+#: ../ntsysv.c:83
+#: ../ntsysv.c:120
+msgid "Ok"
+msgstr "Ok"
+
+#: ../ntsysv.c:83
+msgid "Back"
+msgstr "Kembali"
+
+#: ../ntsysv.c:83
+msgid "Cancel"
+msgstr "Batal"
+
+#: ../ntsysv.c:95
+msgid "What services should be automatically started?"
+msgstr "Layanan mana yang harus distart secara otomatis?"
+
+#: ../ntsysv.c:101
+msgid "Services"
+msgstr "Layanan"
+
+#: ../ntsysv.c:183
+#: ../ntsysv.c:210
+#: ../ntsysv.c:248
+#, c-format
+msgid "error reading info for service %s: %s\n"
+msgstr "gagal membaca info layanan %s: %s\n"
+
+#: ../ntsysv.c:257
+#, c-format
+msgid "error reading from directory %s: %s\n"
+msgstr "gagal membaca dari direktori %s: %s\n"
+
+#: ../ntsysv.c:293
+#, c-format
+msgid "You must be root to run %s.\n"
+msgstr "anda harus menjalankan %s sebagai root.\n"
+
+#: ../ntsysv.c:310
+#, c-format
+msgid "bad argument to --levels\n"
+msgstr "parameter untuk --levels salah\n"
+
+#: ../ntsysv.c:317
+#, c-format
+msgid "No services may be managed by ntsysv!\n"
+msgstr "Tidak ada layanan yang dapat diatur oleh ntsysv!\n"
+
+#: ../leveldb.c:259
+#, c-format
+msgid "failed to open %s/init.d: %s\n"
+msgstr "gagal membuka %s/init.d: %s\n"
+
+#: ../leveldb.c:667
+#, c-format
+msgid "failed to glob pattern %s: %s\n"
+msgstr "gagal untuk mengglob pola %s: %s\n"
+
+#: ../leveldb.c:710
+#, c-format
+msgid "cannot determine current run level\n"
+msgstr "tidak dapat menentukan run level yang aktif\n"
+
+#: ../leveldb.c:798
+#, c-format
+msgid "failed to make symlink %s: %s\n"
+msgstr "gagal untuk membuat symlink %s: %s\n"
+
+#: ../alternatives.c:63
+#, c-format
+msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
+msgstr "alternatives versi %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 "Program ini dapat didistribusikan bebas di bawah Lisensi GNU Public License.\n"
+
+#: ../alternatives.c:65
+#, c-format
+msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
+msgstr "cara pakai: 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 "opsi umum: --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 "membaca %s\n"
+
+#: ../alternatives.c:176
+#, c-format
+msgid "failed to open %s: %s\n"
+msgstr "gagal membuka %s: %s\n"
+
+#: ../alternatives.c:185
+#, c-format
+msgid "failed to read %s: %s\n"
+msgstr "gagal membaca %s: %s\n"
+
+#: ../alternatives.c:194
+#, c-format
+msgid "%s empty!\n"
+msgstr "%s kosong!\n"
+
+#: ../alternatives.c:203
+#, c-format
+msgid "bad mode on line 1 of %s\n"
+msgstr "mode salah di baris 1 pada %s\n"
+
+#: ../alternatives.c:210
+#, c-format
+msgid "bad primary link in %s\n"
+msgstr "link utama di %s rusak\n"
+
+#: ../alternatives.c:222
+#, c-format
+msgid "path %s unexpected in %s\n"
+msgstr "path %s tidak seharusnya ada di %s\n"
+
+#: ../alternatives.c:231
+#, c-format
+msgid "missing path for slave %s in %s\n"
+msgstr "tidak ditemukan path untuk slave %s di %s\n"
+
+#: ../alternatives.c:241
+#, c-format
+msgid "unexpected end of file in %s\n"
+msgstr "akhir file yang tidak diharapkan di %s\n"
+
+#: ../alternatives.c:250
+#, c-format
+msgid "path to alternate expected in %s\n"
+msgstr "path ke alternate diharapkan pada %s\n"
+
+#: ../alternatives.c:270
+#, c-format
+msgid "numeric priority expected in %s\n"
+msgstr "prioritas angka diharapkan pada %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 "baris yang tidak diharapkan pada %s: %s\n"
+
+#: ../alternatives.c:319
+#, c-format
+msgid "failed to read link %s: %s\n"
+msgstr "gagal membaca link %s: %s\n"
+
+#: ../alternatives.c:333
+#, c-format
+msgid "link points to no alternative -- setting mode to manual\n"
+msgstr "link menuju pada tidak ada alternatif - mode set ke manual\n"
+
+#: ../alternatives.c:338
+#, c-format
+msgid "link changed -- setting mode to manual\n"
+msgstr "link berubah - mode set ke manual\n"
+
+#: ../alternatives.c:366
+#: ../alternatives.c:373
+#, c-format
+msgid "would remove %s\n"
+msgstr "Akan dihapus %s\n"
+
+#: ../alternatives.c:368
+#: ../alternatives.c:375
+#: ../alternatives.c:406
+#, c-format
+msgid "failed to remove link %s: %s\n"
+msgstr "gagal untuk menghapus link %s: %s\n"
+
+#: ../alternatives.c:391
+#: ../alternatives.c:403
+#, c-format
+msgid "would link %s -> %s\n"
+msgstr "Akan dilink %s -> %s\n"
+
+#: ../alternatives.c:395
+#: ../alternatives.c:412
+#, c-format
+msgid "failed to link %s -> %s: %s\n"
+msgstr "gagal untuk membuat link %s -> %s: %s\n"
+
+#: ../alternatives.c:444
+#, c-format
+msgid "%s already exists\n"
+msgstr "%s sudah ada\n"
+
+#: ../alternatives.c:446
+#, c-format
+msgid "failed to create %s: %s\n"
+msgstr "gagal untuk membuat %s: %s\n"
+
+#: ../alternatives.c:477
+#, c-format
+msgid "failed to replace %s with %s: %s\n"
+msgstr "gagal untuk mengganti %s dengan %s: %s\n"
+
+#: ../alternatives.c:503
+#: ../alternatives.c:512
+#, c-format
+msgid "running %s\n"
+msgstr "Jalan di %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 otomatis.\n"
+
+#: ../alternatives.c:662
+#, c-format
+msgid "%s - status is manual.\n"
+msgstr "%s - status manual.\n"
+
+#: ../alternatives.c:664
+#, c-format
+msgid " link currently points to %s\n"
+msgstr " link saat ini tertuju pada %s\n"
+
+#: ../alternatives.c:667
+#, c-format
+msgid "%s - priority %d\n"
+msgstr "%s - prioritas %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 "Versi `terbaik' saat ini adalah %s.\n"
+
+#: ../alternatives.c:705
+#, c-format
+msgid "There is %d program that provides '%s'.\n"
+msgstr "Ada %d program yang menyediakan '%s'.\n"
+
+#: ../alternatives.c:705
+#, c-format
+msgid "There are %d programs which provide '%s'.\n"
+msgstr "Ada %d program yang menyediakan '%s'.\n"
+
+#: ../alternatives.c:707
+#, c-format
+msgid " Selection Command\n"
+msgstr " Perintah yang dipilih\n"
+
+#: ../alternatives.c:716
+#, c-format
+msgid "Enter to keep the current selection[+], or type selection number: "
+msgstr "Enter untuk mempertahankan pilihan[+] saat ini, atau ketik nomer yang dipilih: "
+
+#: ../alternatives.c:719
+#, c-format
+msgid ""
+"\n"
+"error reading choice\n"
+msgstr ""
+"\n"
+"gagal membaca pilihan\n"
+
+#: ../alternatives.c:746
+#: ../alternatives.c:772
+#, c-format
+msgid "%s has not been configured as an alternative for %s\n"
+msgstr "%s belum dikonfigurasi sebagai alternatif untuk %s\n"
+
+#: ../alternatives.c:788
+#, c-format
+msgid "(would remove %s\n"
+msgstr "(akan dihapus %s\n"
+
+#: ../alternatives.c:790
+#, c-format
+msgid "failed to remove %s: %s\n"
+msgstr "gagal menghapus %s: %s\n"
+
+#: ../alternatives.c:912
+#, c-format
+msgid "altdir %s invalid\n"
+msgstr "altdir %s tidak valid\n"
+
+#: ../alternatives.c:918
+#, c-format
+msgid "admindir %s invalid\n"
+msgstr "admindir %s tidak valid\n"
+
+#: ../alternatives.c:928
+#, c-format
+msgid "alternatives version %s\n"
+msgstr "alternatives versi %s\n"
+
+#~ msgid "error reading from directory %s/init.d: %s\n"
+#~ msgstr "gagal membaca direktori %s/init.d: %s\n"
+
--- chkconfig-1.3.46/po/is.po
+++ chkconfig-1.3.46/po/is.po
(renamed from chkconfig-1.3.44/po/is.po)
--- chkconfig-1.3.46/po/it.po
+++ chkconfig-1.3.46/po/it.po
(renamed from chkconfig-1.3.44/po/it.po)
--- chkconfig-1.3.46/po/ja.po
+++ chkconfig-1.3.46/po/ja.po
(renamed from chkconfig-1.3.44/po/ja.po)
--- chkconfig-1.3.46/po/ka.po
+++ chkconfig-1.3.46/po/ka.po
(renamed from chkconfig-1.3.44/po/ka.po)
--- chkconfig-1.3.46/po/kn.po
+++ chkconfig-1.3.46/po/kn.po
+# translation of chkconfig.master.kn.po to Kannada
+# Chkconfig Japanese Translation
+# Copyright (C) 2001 Red Hat, Inc.
+#
+#
+# Omshivaprakash <omshivprakash at gmail.com>, 2007.
+# Shankar Prasad <svenkate at redhat.com>, 2007, 2008, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: chkconfig.master.kn\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-03 17:22-0500\n"
+"PO-Revision-Date: 2009-04-02 00:28+0530\n"
+"Last-Translator: Shankar Prasad <svenkate at redhat.com>\n"
+"Language-Team: Kannada <en at li.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"
+"\n"
+
+#: ../chkconfig.c:38
+#, c-format
+msgid "%s version %s - Copyright (C) 1997-2000 Red Hat, Inc.\n"
+msgstr "%s ಆವೃತ್ತಿ %s - ಕೃತಿಸ್ವಾಮ್ಯ (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 "ಇದನ್ನು GNU ಸಾರ್ವತ್ರಿಕ ಪರವಾನಗಿಯಡಿ ಮರು ಹಂಚಿಕೆ ಮಾಡಬಹುದಾಗಿದೆ.\n"
+
+#: ../chkconfig.c:42
+#, c-format
+msgid "usage: %s [--list] [--type <type>] [name]\n"
+msgstr "ಬಳಕೆ: %s [--list] [--type <type>] [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
+#, c-format
+msgid " %s [--level <levels>] [--type <type>] <name> %s\n"
+msgstr " %s [--level <levels>] [--type <type>] <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 ""
+"ಸೇವೆ %s chkconfig ಅನ್ನು ಅಶ್ರಯಿಸಿಕೊಳ್ಳಬಲ್ಲದು, ಆದರೆ ಇದನ್ನು ಯಾವುದೇ ಕ್ರಿಯಾಹಂತದಲ್ಲಿ "
+"ಬಳಸಲಾಗಿಲ್ಲ (ಪ್ರಯೋಗಿಸು 'chkconfig --ಸೇರಿಸು %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 "ಈ ಕಾರ್ಯವನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮ್ಮಲ್ಲಿ ಸವಲತ್ತುಗಳಿಲ್ಲ.\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:650
+#, c-format
+msgid "--type must be 'sysv' or 'xinetd'\n"
+msgstr "--type ಯು 'sysv' ಅಥವ 'xinetd' ಆಗಿರಲೆ ಬೇಕು\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 ಅನ್ನು ಚಲಾಯಿಸಲು ನೀವು ನಿರ್ವಾಹಕರಾಗಿರಬೇಕು.\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 ಅನ್ನು glob ಮಾಡುವಲ್ಲಿ ವಿಫಲ: %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 "symlink ಮಾಡುವಲ್ಲಿ ಅಡಚಣೆಯಾಗಿದೆ %s: %s\n"
+
+#: ../alternatives.c:63
+#, c-format
+msgid "alternatives version %s - Copyright (C) 2001 Red Hat, Inc.\n"
+msgstr "ಬದಲಿ ಆವೃತ್ತಿ %s - ಕೃತಿಸ್ವಾಮ್ಯ (C) 1997-2000 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 ""
+"ಇದನ್ನು ಜಿ ಎನ್ ಯು ಸಾರ್ವರ್ತಿಕ ಪರವಾನಗಿಯ ಕರಾರುಗಳಡಿಯಲ್ಲಿ ಉಚಿತವಾಗಿ ಮರು ಹಂಚಿಕೆ "
+"ಮಾಡಬಹುದಾಗಿದೆ.\n"
+"\n"
+
+#: ../alternatives.c:65
+#, c-format
+msgid "usage: alternatives --install <link> <name> <path> <priority>\n"
+msgstr "ಬಳಕೆ: 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 "ಸಾಮಾನ್ಯ ಆಯ್ಕೆಗಳು: --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 "ಓದುತ್ತಿದೆ %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 "%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 ವು %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 ""
+"ಕೊಂಡಿಯು ಯಾವುದೇ ಪರ್ಯಾಯಕ್ಕೆ ಸೂಚಿತವಾಗಿಲ್ಲ-- ಕ್ರಮವನ್ನು ಸ್ವಹಸ್ತ(manual)ಗೆ "
+"ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ\n"
+
+#: ../alternatives.c:341
+#, c-format
+msgid "link changed -- setting mode to manual\n"
+msgstr "ಕೊಂಡಿ ಬದಲಾಗಿದೆ-- ಕ್ರಮವನ್ನು ಸ್ವಹಸ್ತ(manual)ಗೆ ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ\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 - ಸ್ಥಿತಿಯು ಸ್ವಯಂ(auto) ಆಗಿದೆ.\n"
+
+#: ../alternatives.c:666
+#, c-format
+msgid "%s - status is manual.\n"
+msgstr "%s - ಸ್ಥಿತಿಯು ಹಸ್ತಮುಖೇನ(manual) ಆಗಿದೆ.\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 "ಪ್ರಸಕ್ತ ಆಯ್ಕೆಯನ್ನು [+] ಉಳಿಸಿಕೊಳ್ಳಲು ನಮೂದಿಸಿ, ಅಥವ ಆಯ್ಕಾ ಸಂಖ್ಯೆಯನ್ನು ಆರಿಸಿ: "
+
+#: ../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 "ಬದಲಿಯ ಆವೃತ್ತಿ %s\n"
--- chkconfig-1.3.46/po/ko.po
+++ chkconfig-1.3.46/po/ko.po
+# translation of chkconfig.master.ko.po to Korean
+#
+# Michelle J Kim <mkim at redhat.com>, 2003,2004.
+# Michelle Ji Yeen Kim <mkim at redhat.com>, 2005.
+# Eunju Kim <eukim at redhat.com>, 2007, 2008.
+# Hyunsok Oh <hoh at redhat.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: chkconfig.master.ko\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-03 17:22-0500\n"
+"PO-Revision-Date: 2010-03-31 10:16+1000\n"
+"Last-Translator: Hyunsok Oh <hoh at redhat.com>\n"
+"Language-Team: Korean <ko at li.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"
+"\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 "이 프로그램은 GNU Public License(GPL)하에 자유롭게 재배포될 수 있습니다.\n"
+
+#: ../chkconfig.c:42
+#, c-format
+msgid "usage: %s [--list] [--type <type>] [name]\n"
+msgstr "사용법: %s [--list] [--type <종류>] [이름]\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
+#, c-format
+msgid " %s [--level <levels>] [--type <type>] <name> %s\n"
+msgstr " %s [--level <레벨>] [--type <종류>] <이름> %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를 지원하지만 어떠한 런레벨에도 등록되지 않았습니다 "
+"( '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 "이 작업을 실행할 권한이 없습니다.\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:650
+#, c-format
+msgid "--type must be 'sysv' or 'xinetd'\n"
+msgstr "--type은 'sysv' 또는 'xinetd'여야만 합니다\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 패턴을 glob 명령에 사용하는데 실패했습니다: %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 "대체 버전 %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 ""
+"GNU Public License하에서 이 프로그램을\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 "%s의 첫번째 줄이 부적절한 모드입니다.\n"
+
+#: ../alternatives.c:210
+#, c-format
+msgid "bad primary link in %s\n"
+msgstr "%s가 부적절한 일차 링크를 포함하고 있습니다\n"
+
+# %s의 순서에 따라 메시지를 구성해야 하므로
+# %s에 예상치 못한 경로 %s가 있습니다.. 라는
+# 형태로 번역해서는 안된다. 이하 %s가 둘이상
+# 들어가는 msgid에 대해서는 모두 주의할것!
+#: ../alternatives.c:222
+#, c-format
+
+msgid "path %s unexpected in %s\n"
+msgstr "예상치 못한 경로 %s가 %s에 들어가 있습니다\n"
+
+#: ../alternatives.c:231
+#, c-format
+msgid "missing path for slave %s in %s\n"
+msgstr "슬레이브 %s로의 경로가 %s에서 빠져있습니다\n"
+
+#: ../alternatives.c:241
+#, c-format
+msgid "unexpected end of file in %s\n"
+msgstr "%s에 예기치 않은 파일 끝 (EOF)이 있습니다\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 "현재 선택[+]을 유지하려면 엔터키를 누르고, 아니면 선택 번호를 입력하십시오:"
+
+#: ../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 "대체 버전 %s\n"
+
--- chkconfig-1.3.46/po/ku.po
+++ chkconfig-1.3.46/po/ku.po
(renamed from chkconfig-1.3.44/po/ku.po)
--- chkconfig-1.3.46/po/lo.po
+++ chkconfig-1.3.46/po/lo.po
(renamed from chkconfig-1.3.44/po/lo.po)
--- chkconfig-1.3.46/po/lv.po
+++ chkconfig-1.3.46/po/lv.po
(renamed from chkconfig-1.3.44/po/lv.po)
--- chkconfig-1.3.46/po/mai.po
+++ chkconfig-1.3.46/po/mai.po
(renamed from chkconfig-1.3.44/po/mai.po)
--- chkconfig-1.3.46/po/mk.po
+++ chkconfig-1.3.46/po/mk.po
(renamed from chkconfig-1.3.44/po/mk.po)
--- chkconfig-1.3.46/po/ml.po
+++ chkconfig-1.3.46/po/ml.po
(renamed from chkconfig-1.3.44/po/ml.po)
--- chkconfig-1.3.46/po/mr.po
+++ chkconfig-1.3.46/po/mr.po
(renamed from chkconfig-1.3.44/po/mr.po)
--- chkconfig-1.3.46/po/ms.po
+++ chkconfig-1.3.46/po/ms.po
(renamed from chkconfig-1.3.44/po/ms.po)
--- chkconfig-1.3.46/po/my.po
+++ chkconfig-1.3.46/po/my.po
(renamed from chkconfig-1.3.44/po/my.po)
--- chkconfig-1.3.46/po/nb.po
+++ chkconfig-1.3.46/po/nb.po
(renamed from chkconfig-1.3.44/po/nb.po)
--- chkconfig-1.3.46/po/nl.po
+++ chkconfig-1.3.46/po/nl.po
(renamed from chkconfig-1.3.44/po/nl.po)
--- chkconfig-1.3.46/po/nn.po
+++ chkconfig-1.3.46/po/nn.po
(renamed from chkconfig-1.3.44/po/nn.po)
--- chkconfig-1.3.46/po/or.po
+++ chkconfig-1.3.46/po/or.po
(renamed from chkconfig-1.3.44/po/or.po)
--- chkconfig-1.3.46/po/pa.po
+++ chkconfig-1.3.46/po/pa.po
(renamed from chkconfig-1.3.44/po/pa.po)
--- chkconfig-1.3.46/po/pl.po
+++ chkconfig-1.3.46/po/pl.po
(renamed from chkconfig-1.3.44/po/pl.po)
--- chkconfig-1.3.46/po/pt.po
+++ chkconfig-1.3.46/po/pt.po
(renamed from chkconfig-1.3.44/po/pt.po)
--- chkconfig-1.3.46/po/pt_BR.po
+++ chkconfig-1.3.46/po/pt_BR.po
(renamed from chkconfig-1.3.44/po/pt_BR.po)
--- chkconfig-1.3.46/po/ro.po
+++ chkconfig-1.3.46/po/ro.po
(renamed from chkconfig-1.3.44/po/ro.po)
--- chkconfig-1.3.46/po/ru.po
+++ chkconfig-1.3.46/po/ru.po
(renamed from chkconfig-1.3.44/po/ru.po)
--- chkconfig-1.3.46/po/si.po
+++ chkconfig-1.3.46/po/si.po
(renamed from chkconfig-1.3.44/po/si.po)
--- chkconfig-1.3.46/po/sk.po
+++ chkconfig-1.3.46/po/sk.po
(renamed from chkconfig-1.3.44/po/sk.po)
--- chkconfig-1.3.46/po/sl.po
+++ chkconfig-1.3.46/po/sl.po
(renamed from chkconfig-1.3.44/po/sl.po)
--- chkconfig-1.3.46/po/sq.po
+++ chkconfig-1.3.46/po/sq.po
(renamed from chkconfig-1.3.44/po/sq.po)
--- chkconfig-1.3.46/po/sr.po
+++ chkconfig-1.3.46/po/sr.po
(renamed from chkconfig-1.3.44/po/sr.po)
--- chkconfig-1.3.46/po/sr at latin.po
+++ chkconfig-1.3.46/po/sr at latin.po
(renamed from chkconfig-1.3.44/po/sr at latin.po)
--- chkconfig-1.3.46/po/sv.po
+++ chkconfig-1.3.46/po/sv.po
(renamed from chkconfig-1.3.44/po/sv.po)
--- chkconfig-1.3.46/po/ta.po
+++ chkconfig-1.3.46/po/ta.po
(renamed from chkconfig-1.3.44/po/ta.po)
--- chkconfig-1.3.46/po/te.po
+++ chkconfig-1.3.46/po/te.po
(renamed from chkconfig-1.3.44/po/te.po)
--- chkconfig-1.3.46/po/tg.po
+++ chkconfig-1.3.46/po/tg.po
(renamed from chkconfig-1.3.44/po/tg.po)
--- chkconfig-1.3.46/po/tr.po
+++ chkconfig-1.3.46/po/tr.po
(renamed from chkconfig-1.3.44/po/tr.po)
--- chkconfig-1.3.46/po/uk.po
+++ chkconfig-1.3.46/po/uk.po
(renamed from chkconfig-1.3.44/po/uk.po)
--- chkconfig-1.3.46/po/ur.po
+++ chkconfig-1.3.46/po/ur.po
(renamed from chkconfig-1.3.44/po/ur.po)
--- chkconfig-1.3.46/po/vi.po
+++ chkconfig-1.3.46/po/vi.po
(renamed from chkconfig-1.3.44/po/vi.po)
--- chkconfig-1.3.46/po/zh_CN.po
+++ chkconfig-1.3.46/po/zh_CN.po
(renamed from chkconfig-1.3.44/po/zh_CN.po)
--- chkconfig-1.3.46/po/zh_TW.po
+++ chkconfig-1.3.46/po/zh_TW.po
(renamed from chkconfig-1.3.44/po/zh_TW.po)
++++++ chkconfig.yaml (new)
--- chkconfig.yaml
+++ chkconfig.yaml
+Name: chkconfig
+Summary: A system tool for maintaining the /etc/rc*.d hierarchy
+Version: 1.3.46
+Release: 1
+Group: System/Base
+License: GPLv2
+URL: http://git.fedorahosted.org/git/chkconfig.git
+Sources:
+ - http://fedorahosted.org/releases/c/h/%{name}/%{name}-%{version}.tar.bz2
+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.
+
+PkgConfigBR:
+ - ncurses
+PkgBR:
+ - newt-devel
+ - gettext
+ - popt-devel
+Configure: none
+Builder: make
+LocaleName: "%{name}"
+SubPackages:
+ - Name: ntsysv
+ AsWholeName: yes
+ Summary: A tool to set the stop/start of system services in a runlevel
+ Group: System/Base
+ Description: |
+ 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).
+ Requires:
+ - chkconfig = %{version}-%{release}
+
More information about the MeeGo-commits
mailing list