[packages/chkconfig] - updated to 1.15, updated URLs
hawk
hawk at pld-linux.org
Tue May 4 20:40:42 CEST 2021
commit 6a99f3664bc0759ffd8835ca761b29c5cd0fb512
Author: Marcin Krol <hawk at tld-linux.org>
Date: Tue May 4 20:40:09 2021 +0200
- updated to 1.15, updated URLs
chkconfig-add.patch | 66 ++--
chkconfig-noxinet.patch | 805 ++++++++++++++++++++++++-----------------------
chkconfig-optflags.patch | 58 +---
chkconfig-pl.patch | 13 +-
chkconfig-rc.d.patch | 7 +-
chkconfig.spec | 12 +-
6 files changed, 474 insertions(+), 487 deletions(-)
---
diff --git a/chkconfig.spec b/chkconfig.spec
index f92f685..c54cc83 100644
--- a/chkconfig.spec
+++ b/chkconfig.spec
@@ -9,19 +9,19 @@ Summary(ru.UTF-8): Системная утилита для управления
Summary(tr.UTF-8): Sistem servis bilgilerini sorgular ve yeniler
Summary(uk.UTF-8): Системна утиліта для керування ієрархією /etc/rc.d
Name: chkconfig
-Version: 1.6
+Version: 1.15
Release: 1
Epoch: 2
License: GPL v2
Group: Applications/System
-Source0: https://fedorahosted.org/releases/c/h/chkconfig/%{name}-%{version}.tar.bz2
-# Source0-md5: e5c03e31ddadc3cdcddd8969345b00c0
+Source0: https://github.com/fedora-sysv/chkconfig/archive/refs/tags/%{version}.tar.gz
+# Source0-md5: 36c438a0fa5d95125dbe1093aa2b904c
Patch0: %{name}-add.patch
Patch1: %{name}-noxinet.patch
Patch2: %{name}-rc.d.patch
Patch3: %{name}-optflags.patch
Patch4: %{name}-pl.patch
-URL: https://git.fedorahosted.org/git/chkconfig.git
+URL: https://github.com/fedora-sysv/chkconfig
BuildRequires: gettext-tools
BuildRequires: libselinux-devel
BuildRequires: newt-devel
@@ -166,7 +166,7 @@ Perla; ma być zamiennikiem skryptu update-alternatives z Debiana.
CC="%{__cc}" \
OPTFLAGS="%{rpmcppflags} %{rpmcflags}" \
OPTLDFLAGS="%{rpmldflags}" \
- SYSTEMDDIR=/lib/systemd
+ SYSTEMDUTILDIR=/lib/systemd
%install
rm -rf $RPM_BUILD_ROOT
@@ -174,7 +174,7 @@ install -d $RPM_BUILD_ROOT{/etc/{rc.d/{init,rc{0,1,2,3,4,5,6}}.d,env.d},/sbin}
%{__make} install \
MANDIR=%{_mandir} \
- SYSTEMDDIR=/lib/systemd \
+ SYSTEMDUTILDIR=/lib/systemd \
DESTDIR=$RPM_BUILD_ROOT
%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/bal
diff --git a/chkconfig-add.patch b/chkconfig-add.patch
index cedbb04..b8249ca 100644
--- a/chkconfig-add.patch
+++ b/chkconfig-add.patch
@@ -1,45 +1,47 @@
---- chkconfig-1.3.58/chkconfig.c~ 2012-12-04 15:41:14.000000000 +0200
-+++ chkconfig-1.3.58/chkconfig.c 2012-12-04 15:42:06.080488828 +0200
-@@ -27,6 +27,7 @@
+diff -urNpa chkconfig-1.15.orig/chkconfig.c chkconfig-1.15/chkconfig.c
+--- chkconfig-1.15.orig/chkconfig.c 2021-01-21 09:19:06.000000000 +0100
++++ chkconfig-1.15/chkconfig.c 2021-05-03 16:44:13.175185842 +0200
+@@ -29,6 +29,7 @@
#include <unistd.h>
static char *progname;
+extern int addItem;
- #define _(String) gettext((String))
+ #define _(String) gettext((String))
-@@ -243,12 +244,10 @@
- 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);
-- }
- }
+@@ -347,12 +348,10 @@ static int addService(char *name, int ty
+ 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 0;
-@@ -626,7 +626,7 @@
+ return rc;
+@@ -690,7 +689,7 @@ void forwardSystemd(const char *name, in
}
- int main(int argc, const char ** argv) {
-- int listItem = 0, addItem = 0, delItem = 0, overrideItem = 0, noRedirectItem = 0;
-+ int listItem = 0, delItem = 0, overrideItem = 0, noRedirectItem = 0;
+ int main(int argc, const char **argv) {
+- int listItem = 0, addItem = 0, delItem = 0, overrideItem = 0,
++ int listItem = 0, delItem = 0, overrideItem = 0,
+ noRedirectItem = 0;
int type = TYPE_ANY;
int rc, i, x;
- char * levels = NULL;
---- chkconfig-1.4/leveldb.c~ 2015-04-25 12:18:41.000000000 +0300
-+++ chkconfig-1.4/leveldb.c 2015-04-25 12:19:52.959858162 +0300
-@@ -22,6 +22,7 @@
- #include <libintl.h>
- #include <locale.h>
+diff -urNpa chkconfig-1.15.orig/leveldb.c chkconfig-1.15/leveldb.c
+--- chkconfig-1.15.orig/leveldb.c 2021-01-21 09:19:06.000000000 +0100
++++ chkconfig-1.15/leveldb.c 2021-05-03 16:40:14.588185842 +0200
+@@ -28,6 +28,7 @@
+ #include <stdlib.h>
+ #include <string.h>
#include <sys/mman.h>
+#include <sys/types.h>
#include <sys/stat.h>
- #include <stdlib.h>
- #include <stdio.h>
+ #include <unistd.h>
+
@@ -41,6 +42,8 @@
#include "leveldb.h"
@@ -47,10 +49,10 @@
+int addItem = 0;
+
int selinux_restore(const char *name) {
- struct selabel_handle *hnd = NULL;
- struct stat buf;
-@@ -563,6 +567,25 @@
- serv.provides[1] = NULL;
+ struct selabel_handle *hnd = NULL;
+ struct stat buf;
+@@ -729,6 +732,25 @@ int parseServiceInfo(int fd, char *name,
+ serv.provides[1] = NULL;
}
+ if (addItem) {
diff --git a/chkconfig-noxinet.patch b/chkconfig-noxinet.patch
index b6a4fe0..83d58ed 100644
--- a/chkconfig-noxinet.patch
+++ b/chkconfig-noxinet.patch
@@ -1,6 +1,7 @@
---- chkconfig-1.3.63/chkconfig.8 2014-11-05 18:39:09.000000000 +0200
-+++ chkconfig-1.3.63.no-xinetd/chkconfig.8 2014-11-30 14:54:29.771983174 +0200
-@@ -63,16 +63,6 @@
+diff -urNpa chkconfig-1.15.orig/chkconfig.8 chkconfig-1.15/chkconfig.8
+--- chkconfig-1.15.orig/chkconfig.8 2021-01-21 09:19:06.000000000 +0100
++++ chkconfig-1.15/chkconfig.8 2021-05-03 16:45:40.506185842 +0200
+@@ -63,16 +63,6 @@ or a stop script. When switching runlev
an already-started service, and will not re-stop a service that is
not running.
@@ -17,155 +18,159 @@
.SH OPTIONS
.TP
\fB-\-level \fIlevels\fR
---- chkconfig-1.4/chkconfig.c~ 2015-04-25 12:27:57.000000000 +0300
-+++ chkconfig-1.4/chkconfig.c 2015-04-25 12:29:08.685346749 +0300
-@@ -102,7 +102,6 @@
- readServiceError(rc, name);
- return 1;
+diff -urNpa chkconfig-1.15.orig/chkconfig.c chkconfig-1.15/chkconfig.c
+--- chkconfig-1.15.orig/chkconfig.c 2021-05-03 16:44:13.175185842 +0200
++++ chkconfig-1.15/chkconfig.c 2021-05-03 17:27:19.517139905 +0200
+@@ -117,8 +117,6 @@ static int delService(char *name, int ty
+ readServiceError(rc, name);
+ return 1;
}
-- if (s.type == TYPE_XINETD) return 0;
+- if (s.type == TYPE_XINETD)
+- return 0;
checkRoot();
-@@ -298,7 +297,6 @@
- return 1;
+@@ -333,8 +331,6 @@ static int addService(char *name, int ty
+ return 1;
}
-- if (s.type == TYPE_XINETD) return 0;
+- if (s.type == TYPE_XINETD)
+- return 0;
checkRoot();
if (s.isLSB) {
-@@ -337,8 +335,6 @@
- return 0;
+@@ -373,9 +369,6 @@ static int overrideService(char *name, i
+ return 0;
}
-- if (s.type == TYPE_XINETD) return 0;
+- if (s.type == TYPE_XINETD)
+- return 0;
-
checkRoot();
- if ((s.levels == o.levels) &&
-@@ -416,10 +412,6 @@
+ if ((s.levels == o.levels) && (s.kPriority == o.kPriority) &&
+@@ -452,10 +445,6 @@ static int showServiceInfo(struct servic
}
printf("%-15s", s.name);
- if (s.type == TYPE_XINETD) {
-- printf("\t%s\n", s.levels ? _("on") : _("off"));
-- return 0;
+- 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"));
-@@ -425,7 +425,7 @@
+ printf("\t%d:%s", i, isOn(s.name, i) ? _("on") : _("off"));
+@@ -469,8 +458,7 @@ static int showServiceInfoByName(char *n
int rc;
struct service s;
-- if (systemdActive() && isOverriddenBySystemd(name) && !(type & TYPE_XINETD)) {
+- if (systemdActive() && isOverriddenBySystemd(name) &&
+- !(type & TYPE_XINETD)) {
+ if (systemdActive() && isOverriddenBySystemd(name)) {
return forgiving ? 0 : 1;
}
-@@ -448,33 +440,10 @@
+@@ -485,31 +473,10 @@ static int showServiceInfoByName(char *n
return showServiceInfo(s, forgiving);
}
--
-static int isXinetdEnabled() {
-- struct service s;
+- struct service s;
-
-- if (isOverriddenBySystemd("xinetd") && isEnabledInSystemd("xinetd"))
-- return 1;
+- if (isOverriddenBySystemd("xinetd") && isEnabledInSystemd("xinetd"))
+- return 1;
-
-- if (readServiceInfo("xinetd", TYPE_INIT_D, &s, 0)) {
-- return 0;
-- }
-- if (s.currentLevels)
-- return 1;
-- return 0;
+- if (readServiceInfo("xinetd", TYPE_INIT_D, &s, 0)) {
+- return 0;
+- }
+- if (s.currentLevels)
+- return 1;
+- return 0;
-}
-
- static int serviceNameCmp(const void * a, const void * b) {
- return strcmp(* (char **)a, * (char **)b);
+ 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;
+-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;
-@@ -502,54 +471,6 @@
- }
+ static int listService(char *item, int type) {
+ DIR *dir;
+ struct dirent *ent;
+@@ -539,55 +506,6 @@ static int listService(char *item, int t
}
}
--
+
- if (isXinetdEnabled() && type & TYPE_XINETD) {
-- struct service *s, *t;
--
-- printf("\n");
-- printf(_("xinetd based services:\n"));
-- if (!(dir = opendir(XINETDDIR))) {
-- fprintf(stderr, _("failed to open directory %s: %s\n"),
-- XINETDDIR, strerror(err));
-- return 1;
-- }
-- numServices = 0;
-- numServicesAlloced = 10;
-- s = malloc(sizeof (*s) * numServicesAlloced);
--
-- while ((ent = readdir(dir))) {
-- const char *dn;
--
-- /* Skip any file starting with a . */
-- if (ent->d_name[0] == '.') continue;
--
-- /* Skip files with known bad extensions */
-- if ((dn = strrchr(ent->d_name, '.')) != NULL &&
-- (!strcmp(dn, ".rpmsave") || !strcmp(dn, ".rpmnew") || !strcmp(dn, ".rpmorig") || !strcmp(dn, ".swp")))
-- continue;
--
-- dn = ent->d_name + strlen(ent->d_name) - 1;
-- if (*dn == '~' || *dn == ',')
-- continue;
--
-- if (numServices == numServicesAlloced) {
-- numServicesAlloced += 10;
-- s = realloc(s, numServicesAlloced * sizeof (*s));
-- }
-- if (readXinetdServiceInfo(ent->d_name, s + numServices) != -1)
-- numServices ++;
-- }
--
-- qsort(s, numServices, sizeof(*s), xinetdNameCmp);
-- t = s;
-- for (i = 0; i < numServices; i++, s++) {
-- char *tmp = malloc(strlen(s->name) + 5);
-- sprintf(tmp,"%s:",s->name);
-- printf("\t%-15s\t%s\n", tmp, s->levels ? _("on") : _("off"));
-- }
-- closedir(dir);
-- free(t);
+- struct service *s, *t;
+-
+- printf("\n");
+- printf(_("xinetd based services:\n"));
+- if (!(dir = opendir(XINETDDIR))) {
+- fprintf(stderr, _("failed to open directory %s: %s\n"), XINETDDIR,
+- strerror(err));
+- return 1;
+- }
+- numServices = 0;
+- numServicesAlloced = 10;
+- s = malloc(sizeof(*s) * numServicesAlloced);
+-
+- while ((ent = readdir(dir))) {
+- const char *dn;
+-
+- /* Skip any file starting with a . */
+- if (ent->d_name[0] == '.')
+- continue;
+-
+- /* Skip files with known bad extensions */
+- if ((dn = strrchr(ent->d_name, '.')) != NULL &&
+- (!strcmp(dn, ".rpmsave") || !strcmp(dn, ".rpmnew") ||
+- !strcmp(dn, ".rpmorig") || !strcmp(dn, ".swp")))
+- continue;
+-
+- dn = ent->d_name + strlen(ent->d_name) - 1;
+- if (*dn == '~' || *dn == ',')
+- continue;
+-
+- if (numServices == numServicesAlloced) {
+- numServicesAlloced += 10;
+- s = realloc(s, numServicesAlloced * sizeof(*s));
+- }
+- if (readXinetdServiceInfo(ent->d_name, s + numServices) != -1)
+- numServices++;
+- }
+-
+- qsort(s, numServices, sizeof(*s), xinetdNameCmp);
+- t = s;
+- for (i = 0; i < numServices; i++, s++) {
+- char *tmp = malloc(strlen(s->name) + 5);
+- sprintf(tmp, "%s:", s->name);
+- printf("\t%-15s\t%s\n", tmp, s->levels ? _("on") : _("off"));
+- }
+- closedir(dir);
+- free(t);
- }
return 0;
}
-@@ -610,11 +531,6 @@
- reloadSystemd();
+@@ -650,11 +568,6 @@ int setService(char *name, int type, int
+ reloadSystemd();
- return rc;
+ return rc;
- } else if (s.type == TYPE_XINETD) {
-- if (setXinetdService(s, state)) {
-- return 1;
-- }
-- system("/sbin/service xinetd reload >/dev/null 2>&1");
+- if (setXinetdService(s, state)) {
+- return 1;
+- }
+- system("/sbin/service xinetd reload >/dev/null 2>&1");
}
return 0;
-@@ -622,8 +538,6 @@
+@@ -662,8 +575,6 @@ int setService(char *name, int type, int
void forwardSystemd(const char *name, int type, const char *verb) {
int socket = 0;
@@ -173,168 +178,173 @@
- return;
if (!systemdIsInit())
- return;
-@@ -704,12 +618,10 @@
- if (help) usage(progname);
+ return;
+@@ -747,12 +658,10 @@ int main(int argc, const char **argv) {
+ usage(progname);
if (typeString) {
-- if (!strcmp(typeString, "xinetd"))
-- type = TYPE_XINETD;
-- else if (!strcmp(typeString, "sysv"))
-+ if (!strcmp(typeString, "sysv"))
- type = TYPE_INIT_D;
- else {
-- fprintf(stderr, _("--type must be 'sysv' or 'xinetd'\n"));
-+ fprintf(stderr, _("--type must be 'sysv'\n"));
- exit(1);
- }
+- if (!strcmp(typeString, "xinetd"))
+- type = TYPE_XINETD;
+- else if (!strcmp(typeString, "sysv"))
++ if (!strcmp(typeString, "sysv"))
+ type = TYPE_INIT_D;
+ else {
+- fprintf(stderr, _("--type must be 'sysv' or 'xinetd'\n"));
++ fprintf(stderr, _("--type must be 'sysv'\n"));
+ exit(1);
+ }
}
-@@ -809,16 +721,9 @@
- 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 {
- if (level == -1)
- level = currentRunlevel();
- return s.currentLevels & (1 << level) ? 0 : 1;
-- }
- } else if (!strcmp(state, "on")) {
- if (!noRedirectItem) {
- forwardSystemd(name, type, "enable");
---- chkconfig-1.4/leveldb.c~ 2015-04-25 12:20:58.000000000 +0300
-+++ chkconfig-1.4/leveldb.c 2015-04-25 12:21:39.535385553 +0300
-@@ -154,107 +154,6 @@
- return 0;
+@@ -877,16 +786,9 @@ int main(int argc, const char **argv) {
+ rc = readServiceInfo(name, type, &s, 0);
+ if (rc)
+ return 1;
+- if (s.type == TYPE_XINETD) {
+- if (isXinetdEnabled())
+- return !s.levels;
+- else
+- return 1;
+- } else {
+ if (level == -1)
+ level = currentRunlevel();
+ return s.currentLevels & (1 << level) ? 0 : 1;
+- }
+ } else if (!strcmp(state, "on")) {
+ if (!noRedirectItem) {
+ forwardSystemd(name, type, "enable");
+diff -urNpa chkconfig-1.15.orig/leveldb.c chkconfig-1.15/leveldb.c
+--- chkconfig-1.15.orig/leveldb.c 2021-05-03 16:40:14.588185842 +0200
++++ chkconfig-1.15/leveldb.c 2021-05-03 17:50:29.728139905 +0200
+@@ -204,114 +204,6 @@ int readDescription(char *start, char *b
+ return 0;
}
--int readXinetdServiceInfo(char *name, struct service * service) {
-- char * filename;
-- int fd;
-- struct service serv = {
-- name: NULL,
-- levels: -1,
-- kPriority: 100,
-- sPriority: -1,
-- desc: NULL,
-- startDeps: NULL,
-- stopDeps: NULL,
-- softStartDeps: NULL,
-- softStopDeps: NULL,
-- provides: NULL,
-- type: TYPE_XINETD,
-- isLSB: 0,
-- enabled: -1
-- };
-- struct stat sb;
-- char * buf = NULL, *ptr;
-- char * eng_desc = NULL, *start;
--
-- asprintf(&filename, XINETDDIR "/%s", name);
--
-- if ((fd = open(filename, O_RDONLY)) < 0) goto out_err;
-- fstat(fd,&sb);
-- if (! S_ISREG(sb.st_mode)) goto out_err;
-- buf = malloc(sb.st_size+1);
-- if (read(fd,buf,sb.st_size)!=sb.st_size) goto out_err;
-- close(fd);
-- serv.name = strdup(name);
-- buf[sb.st_size] = '\0';
-- start = buf;
-- while (buf) {
-- ptr = strchr(buf,'\n');
-- if (*buf == '#') {
-- buf++;
-- while (isspace(*buf) && buf < ptr) buf++;
-- if (!strncmp(buf,"default:", 9)) {
-- buf+=8;
-- while(isspace(*buf)) buf++;
-- if (!strncmp(buf+9,"on",2)) {
-- serv.enabled = 1;
-- } else {
-- serv.enabled = 0;
-- }
-- } else if (!strncmp(buf,"description:",12)) {
-- buf+=11;
-- if (readDescription(buf,start+sb.st_size,
-- &serv.desc,&eng_desc)) {
-- if (serv.desc) free(serv.desc);
-- }
-- if (!serv.desc) {
-- if (eng_desc)
-- serv.desc = eng_desc;
-- else
-- serv.desc = strdup(name);
-- } else if (eng_desc)
-- free (eng_desc);
-- }
-- if (ptr) {
-- *ptr = '\0';
-- ptr++;
-- }
-- buf = ptr;
-- continue;
-- }
-- while (isspace(*buf) && buf < ptr) buf++;
-- if (!strncmp(buf,"disable", 7)) {
-- buf = strstr(buf,"=");
-- if (buf)
-- do {
-- buf++;
-- } while(isspace(*buf));
+-int readXinetdServiceInfo(char *name, struct service *service) {
+- char *filename;
+- int fd;
+- struct service serv = {
+- name : NULL,
+- levels : -1,
+- kPriority : 100,
+- sPriority : -1,
+- desc : NULL,
+- startDeps : NULL,
+- stopDeps : NULL,
+- softStartDeps : NULL,
+- softStopDeps : NULL,
+- provides : NULL,
+- type : TYPE_XINETD,
+- isLSB : 0,
+- enabled : -1
+- };
+- struct stat sb;
+- char *buf = NULL, *ptr;
+- char *eng_desc = NULL, *start;
+-
+- asprintf(&filename, XINETDDIR "/%s", name);
-
-- if (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;
+- if ((fd = open(filename, O_RDONLY)) < 0)
+- goto out_err;
+- fstat(fd, &sb);
+- if (!S_ISREG(sb.st_mode))
+- goto out_err;
+- buf = malloc(sb.st_size + 1);
+- if (read(fd, buf, sb.st_size) != sb.st_size)
+- goto out_err;
+- close(fd);
+- serv.name = strdup(name);
+- buf[sb.st_size] = '\0';
+- start = buf;
+- while (buf) {
+- ptr = strchr(buf, '\n');
+- if (*buf == '#') {
+- buf++;
+- while (isspace(*buf) && buf < ptr)
+- buf++;
+- if (!strncmp(buf, "default:", 9)) {
+- buf += 8;
+- while (isspace(*buf))
+- buf++;
+- if (!strncmp(buf + 9, "on", 2)) {
+- serv.enabled = 1;
+- } else {
+- serv.enabled = 0;
+- }
+- } else if (!strncmp(buf, "description:", 12)) {
+- buf += 11;
+- if (readDescription(buf, start + sb.st_size, &serv.desc,
+- &eng_desc)) {
+- if (serv.desc)
+- free(serv.desc);
+- }
+- if (!serv.desc) {
+- if (eng_desc)
+- serv.desc = eng_desc;
+- else
+- serv.desc = strdup(name);
+- } else if (eng_desc)
+- free(eng_desc);
+- }
+- if (ptr) {
+- *ptr = '\0';
+- ptr++;
+- }
+- buf = ptr;
+- continue;
+- }
+- while (isspace(*buf) && buf < ptr)
+- buf++;
+- if (!strncmp(buf, "disable", 7)) {
+- buf = strstr(buf, "=");
+- if (buf)
+- do {
+- buf++;
+- } while (isspace(*buf));
+-
+- if (buf && strncmp(buf, "yes", 3)) {
+- serv.levels = parseLevels("0123456", 0);
+- if (serv.enabled == -1)
+- serv.enabled = 1;
+- } else {
+- serv.levels = 0;
+- if (serv.enabled == -1)
+- serv.enabled = 0;
+- }
+- }
+- if (ptr) {
+- *ptr = '\0';
+- ptr++;
+- }
+- buf = ptr;
+- }
+- *service = serv;
+- return 0;
-out_err:
-- if (fd >= 0)
-- close(fd);
-- free(buf);
-- free(filename);
-- return -1;
+- if (fd >= 0)
+- close(fd);
+- free(buf);
+- free(filename);
+- return -1;
-}
-
int readServices(struct service **services) {
- DIR * dir;
- struct dirent * ent;
-@@ -304,12 +203,14 @@
+ DIR *dir;
+ struct dirent *ent;
+@@ -365,12 +257,12 @@ int readServiceInfo(char *name, int type
int parseret;
if (!(type & TYPE_INIT_D))
-- goto try_xinetd;
-+ return -1;
+- goto try_xinetd;
++ return -1;
asprintf(&filename, RUNLEVELS "/init.d/%s", name);
-- if ((fd = open(filename, O_RDONLY)) < 0)
-- goto try_xinetd;
-+ if ((fd = open(filename, O_RDONLY)) < 0) {
-+ free(filename);
-+ return -1;
-+ }
+ if ((fd = open(filename, O_RDONLY)) < 0)
+- goto try_xinetd;
++ return -1;
free(filename);
parseret = parseServiceInfo(fd, name, &serv, honorHide, 0);
-@@ -338,12 +239,6 @@
+@@ -410,12 +302,6 @@ int readServiceInfo(char *name, int type
free(filename);
*service = serv;
return 0;
@@ -342,28 +352,27 @@
-try_xinetd:
- free(filename);
- if (!(type & TYPE_XINETD))
-- return -1;
-- return readXinetdServiceInfo(name,service);
+- return -1;
+- return readXinetdServiceInfo(name, service);
}
- int readServiceDifferences(char * name, int type, struct service * service, struct service * service_overrides, int honorHide) {
-@@ -353,12 +248,13 @@
+ int readServiceDifferences(char *name, int type, struct service *service,
+@@ -426,12 +312,12 @@ int readServiceDifferences(char *name, i
int parseret;
if (!(type & TYPE_INIT_D))
-- goto try_xinetd;
-+ return -1;
+- goto try_xinetd;
++ return -1;
asprintf(&filename, RUNLEVELS "/init.d/%s", name);
if ((fd = open(filename, O_RDONLY)) < 0) {
-- goto try_xinetd;
-+ free(filename);
-+ return -1;
+- goto try_xinetd;
++ return -1;
}
free(filename);
-@@ -382,12 +278,6 @@
+@@ -455,12 +341,6 @@ int readServiceDifferences(char *name, i
*service = serv;
*service_overrides = serv_overrides;
return 0;
@@ -371,81 +380,83 @@
-try_xinetd:
- free(filename);
- if (!(type & TYPE_XINETD))
-- return -1;
-- return readXinetdServiceInfo(name,service);
+- return -1;
+- return readXinetdServiceInfo(name, service);
}
static struct dep *parseDeps(char *pos, char *end) {
-@@ -682,67 +682,6 @@
+@@ -863,68 +743,6 @@ int whatLevels(char *name) {
return ret;
}
-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;
-- mode_t mode;
-- int r;
--
-- 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);
-- mode = umask(S_IRWXG | S_IRWXO);
-- newfd = mkstemp(newfname);
-- umask(mode);
-- 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);
-- unlink(oldfname);
-- r = rename(newfname,oldfname);
-- if (selinux_restore(oldfname) != 0)
-- fprintf(stderr, _("Unable to set selinux context for %s: %s\n"), oldfname,
-- strerror(errno));
-- return(r);
+- int oldfd, newfd;
+- char oldfname[100], newfname[100];
+- char tmpstr[50];
+- char *buf, *ptr, *tmp;
+- struct stat sb;
+- mode_t mode;
+- int r;
+-
+- 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);
+- mode = umask(S_IRWXG | S_IRWXO);
+- newfd = mkstemp(newfname);
+- umask(mode);
+- 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);
+- unlink(oldfname);
+- r = rename(newfname, oldfname);
+- if (selinux_restore(oldfname) != 0)
+- fprintf(stderr, _("Unable to set SELinux context for %s: %s\n"),
+- oldfname, strerror(errno));
+- return (r);
-}
-
int doSetService(struct service s, int level, int on) {
int priority = on ? s.sPriority : s.kPriority;
char linkname[200];
---- chkconfig-1.4/leveldb.h~ 2015-04-25 12:20:58.000000000 +0300
-+++ chkconfig-1.4/leveldb.h 2015-04-25 12:22:49.345672830 +0300
+diff -urNpa chkconfig-1.15.orig/leveldb.h chkconfig-1.15/leveldb.h
+--- chkconfig-1.15.orig/leveldb.h 2021-01-21 09:19:06.000000000 +0100
++++ chkconfig-1.15/leveldb.h 2021-05-03 17:47:25.388139905 +0200
@@ -17,14 +17,12 @@
#define H_LEVELDB
@@ -454,102 +465,106 @@
#include <glob.h>
- #define TYPE_INIT_D 0x1
--#define TYPE_XINETD 0x2
- #define TYPE_SYSTEMD 0x4
--#define TYPE_ANY (TYPE_INIT_D | TYPE_XINETD | TYPE_SYSTEMD)
-+#define TYPE_ANY (TYPE_INIT_D | TYPE_SYSTEMD)
+ #define TYPE_INIT_D 0x1
+-#define TYPE_XINETD 0x2
+ #define TYPE_SYSTEMD 0x4
+-#define TYPE_ANY (TYPE_INIT_D | TYPE_XINETD | TYPE_SYSTEMD)
++#define TYPE_ANY (TYPE_INIT_D | TYPE_SYSTEMD)
#ifndef SYSTEMD_SERVICE_PATH
#define SYSTEMD_SERVICE_PATH "/lib/systemd/system"
-@@ -67,8 +65,6 @@
- int whatLevels(char * name);
+@@ -71,8 +69,6 @@ int isConfigured(char *name, int level,
+ int whatLevels(char *name);
int doSetService(struct service s, int level, int on);
- int findServiceEntries(char * name, int level, glob_t * globresptr);
+ int findServiceEntries(char *name, int level, glob_t *globresptr);
-int readXinetdServiceInfo(char *name, struct service *service);
-int setXinetdService(struct service s, int on);
int systemdIsInit();
int systemdActive();
int isOverriddenBySystemd(const char *service);
---- chkconfig-1.4/ntsysv.c~ 2015-03-26 15:14:53.000000000 +0200
-+++ chkconfig-1.4/ntsysv.c 2015-04-25 12:25:27.840559610 +0300
-@@ -67,17 +67,12 @@
- if (last != services[i].type) {
- newtFormAddComponent(subform, newtCompactButton(-1, count,
- services[i].type == TYPE_INIT_D ? "SysV initscripts":
-- services[i].type == TYPE_XINETD ? "xinetd services":
- services[i].type == TYPE_SYSTEMD ? "systemd services":
- "Unknown"));
- count++;
- last = services[i].type;
+diff -urNpa chkconfig-1.15.orig/ntsysv.c chkconfig-1.15/ntsysv.c
+--- chkconfig-1.15.orig/ntsysv.c 2021-01-21 09:19:06.000000000 +0100
++++ chkconfig-1.15/ntsysv.c 2021-05-03 17:45:56.483139905 +0200
+@@ -69,19 +69,13 @@ static int servicesWindow(struct service
+ newtCompactButton(-1, count,
+ services[i].type == TYPE_INIT_D
+ ? "SysV initscripts"
+- : services[i].type == TYPE_XINETD
+- ? "xinetd services"
+ : services[i].type == TYPE_SYSTEMD
+ ? "systemd services"
+ : "Unknown"));
+ count++;
+ last = services[i].type;
}
-- if (services[i].type == TYPE_XINETD) {
-- checkboxes[i] = newtCheckbox(-1, count, services[i].name,
-- services[i].levels ? '*' : ' ', NULL,
-- states + i);
-- } else if (services[i].type == TYPE_SYSTEMD) {
-+ if (services[i].type == TYPE_SYSTEMD) {
- checkboxes[i] = newtCheckbox(-1, count, services[i].name,
- services[i].enabled ? '*' : ' ', NULL,
- states + i);
-@@ -142,11 +137,7 @@
- if (!update) return 1;
+- if (services[i].type == TYPE_XINETD) {
+- checkboxes[i] =
+- newtCheckbox(-1, count, services[i].name,
+- services[i].levels ? '*' : ' ', NULL, states + i);
+- } else if (services[i].type == TYPE_SYSTEMD) {
++ if (services[i].type == TYPE_SYSTEMD) {
+ checkboxes[i] =
+ newtCheckbox(-1, count, services[i].name,
+ services[i].enabled ? '*' : ' ', NULL, states + i);
+@@ -150,11 +144,7 @@ static int servicesWindow(struct service
+ 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 if (services[i].type == TYPE_SYSTEMD) {
-+ if (services[i].type == TYPE_SYSTEMD) {
- char *cmd = NULL;
- int en = 0;
- if (services[i].enabled && states[i] != '*')
-@@ -347,49 +338,6 @@
+- if (services[i].type == TYPE_XINETD) {
+- if ((services[i].enabled && states[i] != '*') ||
+- (!services[i].enabled && states[i] == '*'))
+- setXinetdService(services[i], states[i] == '*');
+- } else if (services[i].type == TYPE_SYSTEMD) {
++ if (services[i].type == TYPE_SYSTEMD) {
+ char *cmd = NULL;
+ int en = 0;
+ if (services[i].enabled && states[i] != '*')
+@@ -368,50 +358,6 @@ static int getServices(struct service **
closedir(dir);
-- if (!stat("/usr/sbin/xinetd",&sb)) {
-- if (!(dir = opendir(XINETDDIR))) {
-- fprintf(stderr, "failed to open " XINETDDIR ": %s\n",
-- strerror(errno));
-- return 2;
-- }
--
-- while ((ent = readdir(dir))) {
-- if (strchr(ent->d_name, '~') || strchr(ent->d_name, ',') ||
-- strchr(ent->d_name, '.')) continue;
--
-- sprintf(fn, "%s/%s", XINETDDIR, ent->d_name);
-- if (stat(fn, &sb))
-- {
-- err = errno;
-- continue;
-- }
-- if (!S_ISREG(sb.st_mode)) continue;
--
-- if (numServices == numServicesAlloced) {
-- numServicesAlloced += 10;
-- services = realloc(services,
-- numServicesAlloced * sizeof(*services));
-- }
--
-- rc = readXinetdServiceInfo(ent->d_name, services + numServices);
--
-- if (rc == -1) {
-- fprintf(stderr, _("error reading info for service %s: %s\n"),
-- ent->d_name, strerror(errno));
-- closedir(dir);
-- return 2;
-- } else if (!rc)
-- numServices++;
-- }
--
-- if (err) {
-- fprintf(stderr, _("error reading from directory %s: %s\n"),
-- XINETDDIR, strerror(err));
-- return 1;
-- }
+- if (!stat("/usr/sbin/xinetd", &sb)) {
+- if (!(dir = opendir(XINETDDIR))) {
+- fprintf(stderr, "failed to open " XINETDDIR ": %s\n",
+- strerror(errno));
+- return 2;
+- }
+-
+- while ((ent = readdir(dir))) {
+- if (strchr(ent->d_name, '~') || strchr(ent->d_name, ',') ||
+- strchr(ent->d_name, '.'))
+- continue;
+-
+- sprintf(fn, "%s/%s", XINETDDIR, ent->d_name);
+- if (stat(fn, &sb)) {
+- err = errno;
+- continue;
+- }
+- if (!S_ISREG(sb.st_mode))
+- continue;
+-
+- if (numServices == numServicesAlloced) {
+- numServicesAlloced += 10;
+- services =
+- realloc(services, numServicesAlloced * sizeof(*services));
+- }
+-
+- rc = readXinetdServiceInfo(ent->d_name, services + numServices);
+-
+- if (rc == -1) {
+- fprintf(stderr, _("error reading info for service %s: %s\n"),
+- ent->d_name, strerror(errno));
+- closedir(dir);
+- return 2;
+- } else if (!rc)
+- numServices++;
+- }
+-
+- if (err) {
+- fprintf(stderr, _("error reading from directory %s: %s\n"),
+- XINETDDIR, strerror(err));
+- return 1;
+- }
- }
-
getSystemdServices(&services, &numServices);
diff --git a/chkconfig-optflags.patch b/chkconfig-optflags.patch
index b7554ae..57511df 100644
--- a/chkconfig-optflags.patch
+++ b/chkconfig-optflags.patch
@@ -1,46 +1,14 @@
---- chkconfig-1.4/Makefile~ 2015-03-26 15:14:53.000000000 +0200
-+++ chkconfig-1.4/Makefile 2015-04-25 12:27:11.812618643 +0300
-@@ -1,8 +1,8 @@
- VERSION=$(shell awk '/Version:/ { print $$2 }' chkconfig.spec)
- TAG = chkconfig-$(VERSION)
-
--CFLAGS=-g -Wall $(RPM_OPT_FLAGS) -D_GNU_SOURCE
--LDFLAGS+=-g
-+CFLAGS=$(OPTFLAGS) -Wall -D_GNU_SOURCE
-+LDFLAGS+=$(OPTLDFLAGS)
- MAN=chkconfig.8 ntsysv.8 alternatives.8
- PROG=chkconfig
+diff -urNpa chkconfig-1.15.orig/Makefile chkconfig-1.15/Makefile
+--- chkconfig-1.15.orig/Makefile 2021-01-21 09:19:06.000000000 +0100
++++ chkconfig-1.15/Makefile 2021-05-04 10:44:37.807341418 +0200
+@@ -2,8 +2,8 @@ VERSION := $(shell awk '/Version:/ { pri
+ NEXT_VERSION := $(shell awk '/Version:/ { print $$2 + 0.01 }' chkconfig.spec)
+ TAG = $(VERSION)
+
+-CFLAGS = -g -Wall $(RPM_OPT_FLAGS) -D_GNU_SOURCE
+-LDFLAGS += -g
++CFLAGS = $(OPTFLAGS) -Wall -D_GNU_SOURCE
++LDFLAGS += $(OPTLDFLAGS)
+ MAN = chkconfig.8 ntsysv.8 alternatives.8
+ PROG = chkconfig
BINDIR = /sbin
-@@ -24,12 +24,12 @@ subdirs:
- done && test -z "$$fail"
-
- chkconfig: $(OBJS)
-- $(CC) $(LDFLAGS) -lselinux -lsepol -o chkconfig $(OBJS) -lpopt
-+ $(CC) $(LDFLAGS) -o chkconfig $(OBJS) -lpopt -lselinux -lsepol
-
- alternatives: alternatives.o
-
- ntsysv: $(NTOBJS)
-- $(CC) $(LDFLAGS) -lselinux -lsepol -o ntsysv $(NTOBJS) -lnewt -lpopt $(LIBMHACK)
-+ $(CC) $(LDFLAGS) -o ntsysv $(NTOBJS) -lnewt -lpopt -lselinux -lsepol $(LIBMHACK)
-
- chkconfig.o: chkconfig.c leveldb.h
- $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" -c chkconfig.c
-@@ -56,7 +56,7 @@ install:
- [ -d $(DESTDIR)/$(MANDIR)/man5 ] || mkdir -p $(DESTDIR)/$(MANDIR)/man5
- [ -d $(DESTDIR)/$(ALTDIR) ] || mkdir -p -m 755 $(DESTDIR)/$(ALTDIR)
- [ -d $(DESTDIR)/$(ALTDATADIR) ] || mkdir -p -m 755 $(DESTDIR)/$(ALTDATADIR)
-- [ -d $(DESTDIR)/usr/lib/systemd ] || mkdir -p -m 755 $(DESTDIR)/usr/lib/systemd
-+ [ -d $(DESTDIR)/$(SYSTEMDDIR) ] || mkdir -p -m 755 $(DESTDIR)/$(SYSTEMDDIR)
-
- install -m 755 $(PROG) $(DESTDIR)/$(BINDIR)/$(PROG)
- ln -s ../../../$(BINDIR)/$(PROG) $(DESTDIR)/usr/lib/systemd/systemd-sysv-install
-@@ -59,7 +59,7 @@ install:
- [ -d $(DESTDIR)/$(SYSTEMDDIR) ] || mkdir -p -m 755 $(DESTDIR)/$(SYSTEMDDIR)
-
- install -m 755 $(PROG) $(DESTDIR)/$(BINDIR)/$(PROG)
-- ln -s ../../../$(BINDIR)/$(PROG) $(DESTDIR)/usr/lib/systemd/systemd-sysv-install
-+ ln -s $(BINDIR)/$(PROG) $(DESTDIR)/$(SYSTEMDDIR)/systemd-sysv-install
-
- install -m 755 ntsysv $(DESTDIR)/$(SBINDIR)/ntsysv
- install -m 755 alternatives $(DESTDIR)/$(SBINDIR)/alternatives
diff --git a/chkconfig-pl.patch b/chkconfig-pl.patch
index 8232103..fd1f0b1 100644
--- a/chkconfig-pl.patch
+++ b/chkconfig-pl.patch
@@ -1,16 +1,17 @@
---- chkconfig-1.3.63/po/pl.po~ 2014-11-05 18:39:09.000000000 +0200
-+++ chkconfig-1.3.63/po/pl.po 2014-11-30 15:01:59.484752041 +0200
-@@ -106,11 +106,11 @@
+diff -urNpa chkconfig-1.15.orig/po/pl.po chkconfig-1.15/po/pl.po
+--- chkconfig-1.15.orig/po/pl.po 2021-01-21 09:19:06.000000000 +0100
++++ chkconfig-1.15/po/pl.po 2021-05-04 10:47:45.426341418 +0200
+@@ -131,11 +131,11 @@ msgstr "Brak wystarczających uprawnień
- #: ../chkconfig.c:419 ../chkconfig.c:424 ../chkconfig.c:547
+ #: ../chkconfig.c:457 ../chkconfig.c:462 ../chkconfig.c:587
msgid "on"
-msgstr "włączone"
+msgstr "wł"
- #: ../chkconfig.c:419 ../chkconfig.c:424 ../chkconfig.c:547
+ #: ../chkconfig.c:457 ../chkconfig.c:462 ../chkconfig.c:587
msgid "off"
-msgstr "wyłączone"
+msgstr "wył"
- #: ../chkconfig.c:509
+ #: ../chkconfig.c:547
#, c-format
diff --git a/chkconfig-rc.d.patch b/chkconfig-rc.d.patch
index 64fd588..f4cdb4d 100644
--- a/chkconfig-rc.d.patch
+++ b/chkconfig-rc.d.patch
@@ -1,6 +1,7 @@
---- ./leveldb.h~ 2002-03-13 09:09:04.000000000 +0200
-+++ ./leveldb.h 2005-10-22 15:45:40.000000000 +0300
-@@ -1,7 +1,7 @@
+diff -urNpa chkconfig-1.15.orig/leveldb.h chkconfig-1.15/leveldb.h
+--- chkconfig-1.15.orig/leveldb.h 2021-05-03 17:47:25.388139905 +0200
++++ chkconfig-1.15/leveldb.h 2021-05-04 10:30:35.849341418 +0200
+@@ -16,7 +16,7 @@
#ifndef H_LEVELDB
#define H_LEVELDB
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/chkconfig.git/commitdiff/6a99f3664bc0759ffd8835ca761b29c5cd0fb512
More information about the pld-cvs-commit
mailing list