Update to sysvinit 3.13

OBS-URL: https://build.opensuse.org/package/show/Base:System/sysvinit?expand=0&rev=277
This commit is contained in:
Dr. Werner Fink 2025-01-09 10:51:50 +00:00 committed by Git OBS Bridge
commit 11b2f3afca
21 changed files with 3438 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

15
killproc-2.23.dif Normal file
View File

@ -0,0 +1,15 @@
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- Makefile
+++ Makefile 2024-08-13 07:19:11.990329152 +0000
@@ -15,7 +15,7 @@ DESTDIR =
VERSION = 2.23
DATE = $(shell date +'%d%b%y' | tr '[:lower:]' '[:upper:]')
STATX = $(shell (test -d /lib64 && nm -D /lib64/libc.so.* || /lib/libc.so.*)|grep -c statx)
-SYSSTATX = $(shell echo -e '\#include <sys/syscall.h>\nint main () {return SYS_statx;}'|gcc -x c -o /dev/null -P - 2>/dev/null && echo 1 || echo 0)
+SYSSTATX = $(shell echo -e '#include <sys/syscall.h>\nint main () {return SYS_statx;}'|gcc -x c -o /dev/null -P - 2>/dev/null && echo 1 || echo 0)
OSTATX =
LIBS += -lblogger -lpthread

BIN
killproc-2.23.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

12
startpar-0.58.dif Normal file
View File

@ -0,0 +1,12 @@
diff -ur -p0 startpar-0.65/Makefile startpar/Makefile
--- Makefile 2020-07-07 02:04:06.000000000 +0200
+++ Makefile 2020-08-25 17:03:05.687028264 +0200
@@ -15 +14,0 @@ SRCS = startpar.c makeboot.c proc.c
-CXXSRCS = compiletest.cc
@@ -18 +17 @@ REST = COPYING Makefile startpar.1
-OBJS = $(SRCS:.c=.o) $(CXXSRCS:.cc=.o)
+OBJS = $(SRCS:.c=.o)
@@ -50,2 +49 @@ endif
-SOURCEFILES= compiletest.cc \
- CHANGELOG \
+SOURCEFILES= CHANGELOG \

BIN
startpar-0.65.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

8
startpar-0.65.tar.xz.sig Normal file
View File

@ -0,0 +1,8 @@
-----BEGIN PGP SIGNATURE-----
iLMEAAEKAB0WIQSlc+1eaHpA+J0w5r4qcutBkG+OSQUCXwO79gAKCRAqcutBkG+O
SVLjBACuhFWXX5DLGEQyWgkMps8tn6VwABdXKovoWp7ncD1ijRULpM9g3P0SWAuv
HfEnxifgs9INLtvtO/neAkVr5gH1sFt9CCx9vhpqEmGX8vI3GjDgl46DAeta3N5R
OKmO7p/MMryvCMWtDNI9BtcFajJ76zG2CSq8vy8zKrjV5Th5mw==
=5pnm
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,27 @@
---
man/killall5.8 | 3 ++-
man/pidof.8 | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
--- man/killall5.8
+++ man/killall5.8 2022-03-29 07:07:32.541031027 +0000
@@ -44,7 +44,8 @@ process were killed, and 1 if it was una
.SH SEE ALSO
.BR halt (8),
.BR reboot (8),
-.BR pidof (8)
+.BR pidof (8),
+.BR killproc (8)
.SH AUTHOR
.MT miquels@\:cistron\:.nl
Miquel van Smoorenburg
--- man/pidof.8
+++ man/pidof.8 2022-03-29 07:06:43.889930825 +0000
@@ -115,6 +115,7 @@ The \fB\-z\fP flag (see above) tells \fB
at the risk of failing or hanging.
.SH SEE ALSO
+.BR pidofproc (8),
.BR shutdown (8),
.BR init (8),
.BR halt (8),

235
sysvinit-2.90-no-kill.patch Normal file
View File

@ -0,0 +1,235 @@
---
src/killall5.c | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 132 insertions(+), 13 deletions(-)
--- src/killall5.c
+++ src/killall5.c 2023-05-02 14:14:02.198263058 +0000
@@ -67,6 +67,9 @@
#endif
#define STATNAMELEN 15
+#define DO_NETFS 2
+#define DO_STAT 1
+#define NO_STAT 0
/* Info about a process. */
typedef struct proc {
@@ -76,6 +79,8 @@ typedef struct proc {
char *argv1; /* Name as found out from argv[1] */
char *argv1base; /* `basename argv[1]` */
char *statname; /* the statname without braces */
+ ino_t ino; /* Inode number */
+ dev_t dev; /* Device it is on */
pid_t pid; /* Process ID. */
pid_t sid; /* Session ID. */
char kernel; /* Kernel thread or zombie. */
@@ -473,20 +478,54 @@ int readarg(FILE *fp, char *buf, int sz)
}
/*
+ * Scan the filedescriptors of pid for /dev/fuse
+ */
+int is_fuse(const char *pid) {
+ DIR *dir;
+ char path[256];
+ char buf[256];
+ struct dirent *d;
+ ssize_t len;
+
+ /* Open /proc/pid/fd/ */
+ snprintf(path, sizeof(path), "/proc/%s/fd", pid);
+ if ((dir = opendir(path)) != NULL) {
+ int dfd = dirfd(dir);
+ /* Walk through the directory. */
+ while ((d = readdir(dir)) != NULL) {
+ if (*d->d_name == '.')
+ continue;
+ /* check for /dev/fuse */
+ if ((len = readlinkat(dfd, d->d_name, buf, sizeof(buf))) > 0) {
+ buf[len] = '\0';
+ if (strcmp("/dev/fuse", buf) == 0)
+ return 1; /* Fuse filesystem */
+ }
+ }
+ closedir(dir);
+ }
+
+ /* Not a fuse filesystem */
+ return 0;
+}
+
+/*
* Read the proc filesystem.
* CWD must be /proc to avoid problems if / is affected by the killing (ie depend on fuse).
*/
-int readproc()
+int readproc(int do_stat)
{
DIR *dir;
FILE *fp;
PROC *p, *n;
struct dirent *d;
+ struct stat st;
char path[PATH_MAX+1];
char buf[PATH_MAX+1];
char *s, *q;
unsigned long startcode, endcode;
int pid, f;
+ ssize_t len;
char process_status[11];
/* Open the /proc directory. */
@@ -593,8 +632,12 @@ int readproc()
p->kernel = 1;
fclose(fp);
if ( (! list_dz_processes) &&
- (strchr(process_status, 'Z') != NULL) ) {
- /* Ignore zombie processes */
+ ( (strchr(process_status, 'D') != NULL) ||
+ (strchr(process_status, 'Z') != NULL) ) ){
+ /* Ignore zombie processes or processes in
+ disk sleep, as attempts
+ to access the stats of these will
+ sometimes fail. */
if (p->argv0) free(p->argv0);
if (p->argv1) free(p->argv1);
if (p->statname) free(p->statname);
@@ -661,11 +704,76 @@ int readproc()
/* Try to stat the executable. */
snprintf(path, sizeof(path), "/proc/%s/exe", d->d_name);
- p->pathname = (char *)xmalloc(PATH_MAX);
- memset(p->pathname, 0, PATH_MAX);
- if (readlink(path, p->pathname, PATH_MAX) == -1) {
- p->pathname = NULL;
- }
+
+ p->nfs = 0;
+
+ switch (do_stat) {
+ case NO_STAT:
+ if ((len = readlink(path, buf, PATH_MAX)) < 0)
+ break;
+ buf[len] = '\0';
+
+ /* Check for uevent handler, mdmon, and for providers
+ of FUSE filesystems */
+ if ((strncmp(buf, "/usr/sbin/mdmon", 15) == 0) ||
+ (strncmp(buf, "/sbin/mdmon", 11) == 0) ||
+ (strncmp(buf, "/usr/lib/systemd/systemd-udevd", 30) == 0) ||
+ (is_fuse(d->d_name))) {
+ OMIT *restrict optr;
+
+ xmemalign((void*)&optr, sizeof(void*), alignof(OMIT));
+ optr->next = omit;
+ optr->prev = (OMIT*)0;
+ optr->pid = pid;
+ omit = optr;
+ }
+
+ break;
+ case DO_NETFS:
+ if ((p->nfs = check4nfs(path, buf)))
+ goto link;
+ /* else fall through */
+ case DO_STAT:
+ if (stat(path, &st) != 0) {
+ char * ptr;
+
+ len = readlink(path, buf, PATH_MAX);
+ if (len <= 0)
+ break;
+ buf[len] = '\0';
+
+ ptr = strstr(buf, " (deleted)");
+ if (!ptr)
+ break;
+ *ptr = '\0';
+ len -= strlen(" (deleted)");
+
+ if (stat(buf, &st) != 0)
+ break;
+ p->dev = st.st_dev;
+ p->ino = st.st_ino;
+ p->pathname = (char *)xmalloc(len + 1);
+ memcpy(p->pathname, buf, len);
+ p->pathname[len] = '\0';
+
+ /* All done */
+ break;
+ }
+
+ p->dev = st.st_dev;
+ p->ino = st.st_ino;
+
+ /* Fall through */
+ default:
+ link:
+ len = readlink(path, buf, PATH_MAX);
+ if (len > 0) {
+ p->pathname = (char *)xmalloc(len + 1);
+ memcpy(p->pathname, buf, len);
+ p->pathname[len] = '\0';
+ }
+ break;
+ }
/* Link it into the list. */
p->next = plist;
@@ -728,6 +836,7 @@ PIDQ_HEAD *pidof(char *prog)
{
PROC *p;
PIDQ_HEAD *q;
+ struct stat st;
char *s;
int nfs = 0;
int dostat = 0;
@@ -742,7 +851,15 @@ PIDQ_HEAD *pidof(char *prog)
/* Try to stat the executable. */
memset(real_path, 0, sizeof(real_path));
if ( (prog[0] == '/') && ( realpath(prog, real_path) ) ) {
- dostat++;
+
+ if (check4nfs(prog, real_path))
+ nfs++;
+
+ if (real_path[0] != '\0')
+ prog = &real_path[0]; /* Binary located on network FS. */
+
+ if ((nfs == 0) && (stat(prog, &st) == 0))
+ dostat++; /* Binary located on a local FS. */
}
/* Get basename of program. */
@@ -758,9 +875,11 @@ PIDQ_HEAD *pidof(char *prog)
q = init_pid_q(q);
/* First try to find a match based on dev/ino pair. */
- if (dostat) {
+ if (dostat && !nfs) {
for (p = plist; p; p = p->next) {
- if (p->pathname && strcmp(real_path, p->pathname) == 0) {
+ if (p->nfs)
+ continue;
+ if (p->dev == st.st_dev && p->ino == st.st_ino) {
add_pid_to_q(q, p);
foundone++;
}
@@ -1026,7 +1145,7 @@ int main_pidof(int argc, char **argv)
init_nfs(); /* Which network based FS are online? */
/* Print out process-ID's one by one. */
- readproc();
+ readproc((flags & PIDOF_NETFS) ? DO_NETFS : DO_STAT);
for(f = 0; f < argc; f++) {
if ((q = pidof(argv[f])) != NULL) {
@@ -1171,7 +1290,7 @@ int main(int argc, char **argv)
}
/* Read /proc filesystem */
- if (readproc() < 0) {
+ if (readproc(NO_STAT) < 0) {
if (sent_sigstop)
kill(-1, SIGCONT);
return(1);

60
sysvinit-2.90.dif Normal file
View File

@ -0,0 +1,60 @@
---
src/Makefile | 24 +++++++-----------------
1 file changed, 7 insertions(+), 17 deletions(-)
--- src/Makefile
+++ src/Makefile 2025-01-09 10:46:54.490430980 +0000
@@ -9,7 +9,7 @@
#
CPPFLAGS =
-CFLAGS ?= -O2
+CFLAGS ?= $(RPM_OPT_FLAGS)
override CFLAGS += -ansi -fomit-frame-pointer -fstack-protector-strong -W -Wall -Wunreachable-code -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -D_XOPEN_SOURCE -D_GNU_SOURCE -DVERSION=\"$(VERSION)\"
override CFLAGS += $(shell getconf LFS_CFLAGS)
STATIC =
@@ -23,13 +23,13 @@ MNTPOINT=
# For some known distributions we do not build all programs, otherwise we do.
BIN =
-SBIN = init halt shutdown runlevel killall5 fstab-decode logsave
-USRBIN = last mesg readbootlog
+SBIN = killall5 fstab-decode
+USRBIN =
-MAN1 = last.1 lastb.1 mesg.1 readbootlog.1
-MAN5 = initscript.5 inittab.5 initctl.5
-MAN8 = halt.8 init.8 killall5.8 pidof.8 poweroff.8 reboot.8 runlevel.8
-MAN8 += shutdown.8 telinit.8 fstab-decode.8 logsave.8
+MAN1 =
+MAN5 =
+MAN8 = killall5.8 pidof.8
+MAN8 += fstab-decode.8
ifeq ($(DISTRO),)
SBIN += sulogin bootlogd
@@ -53,10 +53,6 @@ endif
ifeq ($(DISTRO),SuSE)
CPPFLAGS+= -DUSE_SYSFS -DSANE_TIO -DSIGINT_ONLYONCE -DUSE_ONELINE
-SBIN += sulogin
-USRBIN += utmpdump
-MAN1 += utmpdump.1
-MAN8 += sulogin.8
MANDB :=
endif
@@ -213,13 +209,7 @@ install: all
# $(INSTALL_DIR) $(ROOT)/$(sysconfdir)/
$(INSTALL_DIR) $(ROOT)/$(sysconfdir)/inittab.d
# $(INSTALL_EXEC) ../doc/initscript.sample $(ROOT)/$(sysconfdir)/
- ln -sf halt $(ROOT)$(base_sbindir)/reboot
- ln -sf halt $(ROOT)$(base_sbindir)/poweroff
- ln -sf init $(ROOT)$(base_sbindir)/telinit
ln -sf $(base_sbindir)/killall5 $(ROOT)$(base_bindir)/pidof
- if [ ! -f $(ROOT)$(bindir)/lastb ]; then \
- ln -sf last $(ROOT)$(bindir)/lastb; \
- fi
$(INSTALL_DIR) $(ROOT)$(includedir)/
$(INSTALL_DATA) initreq.h $(ROOT)$(includedir)/
for lang in '' $(patsubst ../man/po/%.po,%,$(wildcard ../man/po/??.po)); do \

3
sysvinit-3.08.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:60ae974f146ff2b0cb072d3ffb6cdd81ba00a2fca55e989c76505bb9bca9fc6c
size 268296

16
sysvinit-3.08.tar.xz.sig Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEwaRDLYiJZynkMAsEr9G5i/MnOBIFAmTemYQACgkQr9G5i/Mn
OBK8ew/9HOJ4t863Kse4PraX0Chi2VdP96SNFXIMuJDx0OujIZwZGxlzmTIEqKhV
Vu+cxt9dK1TO3aqeANosSTYagmmYOaZEo4yZOplxNn0p9KBF2T0DCqbYDnwQxS8E
omD3B+0WzzoM7Bop1KaPBLhCk0p1lzaJVuxbQVKbJB7i21OyUsj4OPoOSDIwFdg2
fQFutnjdSt3W6LjsxF4EyKnsxxS7RyfZuqsaDoqBz0pgfsDd2S0iP5VT1MoQOOgV
P8ppinHR1bB/He9TEWmv9TrZGvCY2Jc3I0ArD1PNhzouKoqdpZAuCN4b3WZ85Yl6
IjW64euqj+gy9skM4/WdpkcY93T2qt2o1SpJPgpb+w/O5azkFaKHywub0Hkysano
KD9c3ghVVh0PaLJJ7y1Mif9omAwq6iKfUdF818egDlKZuI3FN0PUyD1orR13yYcg
Z8KkbA1CAQzxclC82B+zJnt3R6GPXjWXda7H5mI1yUIgv/T0DN+myCIRDYSQU11A
Zy3lD327bUMSG8KYx0eDIhJQO+rIA9uINMKKxt29UxyNexhEIvAGr4QG59Ts2grW
56IYb7zRCNIi8Xej6qBwIfROWxsNzndQgUidxhdCAD1cbAk7wBJq9PbXBJuh0bdl
USGmDRE4bYx+d9tEK1ai+I2hxgUtcjjOPsfe1/00cQiYgFpg0cw=
=nrsg
-----END PGP SIGNATURE-----

3
sysvinit-3.10.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c52d22f63e187a1247ad491b6a3a049561b887400a166d6b04fc9d67705c4da6
size 240060

16
sysvinit-3.10.tar.xz.sig Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEWi3Ghs3F1gh9iMGYNR91+kXVNlYFAmanm4AACgkQNR91+kXV
NlZV7RAAnltlprjmI3wJu+B62M7EsOgpxSHVgosIKiwtEfo81Bu2GU6dBcy812FE
4s62A9ftbqVMPwrSYBJNeownJKSbXVH3oJ/UU/Lsoq62IGYw3+Fn+f2zQJcXHT7r
eZ++LOUVugGh7r72KnUi7c3COrr3aDKqpfV5JWoa7Kl/TMpaLyJWBsTVfC8dp8Yu
344YtYZIItJ03DhV/cLTAvme7jPSYqOx6teFarVpxK861mVMZfs/tvZlX0hPzIAT
FMdHFngYBsYy30yg4GdwEWCOH/6EjHHu84i4I/lcxEmTlEVceio3BthzzFVEpYkq
24fs4d/xqBFhwJ7KhaDKxyGceGXwgz1BSuuL6HZC3P98rK8iSEyeo7gsMtzhfUMt
8KWU96w2nSJgHs1LKSiZypiIZZeMa103tFtz6nGuszxr1AWIs5RgIxS16olgpXi0
6sHnpe1kTriLMMwQmcOQzIRkBECrzmn0OQNsJsGTS9pwGlaQl5X/2qvXvQEEcGi9
TivN3kQLbjUchiT4/jzcqe6zBv2VjcIUqvbMNRLA/nsChJMNmYoCdALBN0ICrQC5
9uA604yVNmIqKm7cP5zOCUOL+MfQa3O02aY3mhtrmn/L/aIgUOvSzuuw3Xq0n3KF
OKEm5hkcqgRTCOUyLjfQ25nmLvQgE657tkn3J9gJqWZ1l2dVFHc=
=LFP3
-----END PGP SIGNATURE-----

3
sysvinit-3.11.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:04f1b7d67413af1c09c41acc1e3ce946f2d0f7a1e47c9978744bc542864e13d4
size 240212

16
sysvinit-3.11.tar.xz.sig Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEWi3Ghs3F1gh9iMGYNR91+kXVNlYFAmcWnf8ACgkQNR91+kXV
Nlaj5g/9GT3aqTB3s75uDkVu2P9jkDzbGCNvNz1atwd/qJVrM/H8SKD31RUWg/Ks
CQ8REuKxBoR8YtxISkFwr2WZT4NQ7pY6EZPkA5Z3QsqmVyM0opezJZ0V80Ak56y4
yaNAntnwhrXgpz0ifb264CInk4BVEhITu7oBFvTmi/BBHg9WFkrG0G4x/zD1lqge
8LtC3ZELtdfaCd2IJdbkjA602s1gDrlR3zG0bIKxg9iSkfxPlEpcMCkydMZx5SDc
laWn4HjcJYBUVIpggHxUoBWg45LLW/q5jdGs9eOBTD0jkdvNdDTuirGA7aMazNPl
vK1loSKXadv6k097Se5cjDtWIHE9eDIeTh/BAY5W8fJVpgweUAAQchGnxGOSZwhc
XLz8mz/DSXbbTLYYw3zss2+Eg5bqDrke1DY+eHmhGh70UEXlmhBjUKBhXHE5vWMz
dE05YWKhn9ucDrz5VsnnBOAE5E41Ob65UTs96kjS+jthzVqnykEUlSz6Z/9jHfJt
eWC606uVblpAwpE99yJM4kfgdmmKmyTabDYAEmPKQPjAriA2R5sXbaMaZViujsxL
nVX3BgpBy2Nb/vmdq0LVNdS16ZHgvl6BlClXCgmG8+eXwhsspM5bDbECa6Ancw2H
6zSoXE58npgOlGUz7/Q+7Lu5a+cu3ZXQwohw+NSgQf49bRQQOFI=
=RqJo
-----END PGP SIGNATURE-----

3
sysvinit-3.13.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cbaeabddc35a6511b87c87452ee5e87c678a26329c7d7d17fb69a2b42a314d86
size 240964

16
sysvinit-3.13.tar.xz.sig Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEWi3Ghs3F1gh9iMGYNR91+kXVNlYFAmd4UhsACgkQNR91+kXV
NlYU5hAAnC0wTct1MfhM8zpsYgBvgFNYNzAHfci/L/kio/Ze5Bu6APQDl63MKEKJ
CTI3o0d3WymwdpenVRFplh3WrK32hrm3aju8LnhczFmDxYLuVxJZ31ldN7suc9iq
yoLEj1MtqM1Hx56pKDDXuMBmB9fimv8AHGmh5ofMFlIn+LhyquEASdebf4WMLbii
0g9dBJ+8oAOjt+7FpFuN5dd+cr+gHZpHfkscL4POoE6npwDTZnHs52eZJLgD0EGb
NqBsxD0fDt4rgBrTVZs4ugUR7sP9624rbHOKlAzy6ES6lNJWp1HxB4tDZ+OQz85/
goQ7V/951QCy4ijpSRvaxcJHcNDWydNtQuEwDcX1d7yn1ZJR/mraGRR+lCjV+++/
0EznBTqzgFGNvRrKTn/o05OWxAHAV1WxIUVL1mDt6ia/tsKuYe6YcjtzZ64LsR+h
bvKpO3ZDUXftbydtBA/rIUeYYELYfHy7X5MsrT0rZUAn8HtA8hPAoc+3CWBsBylS
3STFkFZX02tS+Gdqx+gqbLPkHZSngie8StGVghWlrWploeU1YgOey6kcIkcSlpeS
H067pS47BVNq2VslSV0SaIxw0p17TBFSNyMWz+CzSaCfmiasutHTRGtikw7lTr2i
qFvSE5ZPJ/NkxuKYk8rRKLb+fwT4Wg4GcvXbbzE6YKst4aGzirc=
=Kx5X
-----END PGP SIGNATURE-----

2671
sysvinit.changes Normal file

File diff suppressed because it is too large Load Diff

133
sysvinit.keyring Normal file
View File

@ -0,0 +1,133 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBE9OedMBCADE5cOljya4PFe9mWW6p+USPCJL3ONX8eNd7kgR/V/ypUp/tweL
H9vgvFutSp3C2/ANUYHERY32+UcftZsPqFam/GLTmfi0F9DsM9itZKTops4XOa2y
JS1FDMiZpusOYvg6lTnG0G7B2ybG8YJuFyG2amqE4LYTZg+0tYoGOr9qA2h5xs77
hN+f+idj2iyzyJDZgGDpqQxFV0KEFK7G4lNd7eIjGue/FneuHt5H6yyNXSNyjdQx
TZjyFZQuGcFTTgUFQGFhc3OHriYbCoQlKhfCmyxCiJizqRIfSjisgvnrXM1BmDuC
/4umGPInbMJEsBjcpA1u92HL2EzYvc1p5tSPABEBAAG0KEplc3NlIFNtaXRoIDxq
c21pdGhAcmVzb25hdGluZ21lZGlhLmNvbT6JATgEEwECACIFAk9OedMCGy8GCwkI
BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPo+x5pMDBHMz0wH/RVn4LXqNbPDXFkJ
ZHM2COhJRI8IcOZr/jh129OR6NcfGJdQSkv/KjNpIWflDXIqBEfnfRN++KB/cjkp
xzgQY4ABtpm97s4ML1Nm174UTynhqF14nRTaLi5lBqJzx4Cx0+mNiHJgUEaUKbRk
4dMZSb8/Lx1jMSpieP/NP5oZAbM1Vxcz1l2KPNRrr3Tu2FPnmy1CQV0/o8WwwZn/
/utOmr6bLO1FZG34HmCkZMc1V0+9VQFyMulFxWZzSzEmLYqv6k4d0zKaGwnDCzux
Fe/bjSXUnp8ftvn7J7h5EoAen6nXVvupPGJj19TSpxqyRGnnjXHMSgK/Fe0qzIPp
CPzU8PO4jQRPTnnTAQQAyek6C0O9n/tt+dwa9OIXPEv/VlCVRe3I9/6SxSHZHx5+
S2QSYZh2c1Mnutg0blc8HsecZYbiVP8lCeNKkavHMo3G6sH8PYmI1+KXLWWOCsnK
sMk4SQJqeFDlJy3u8c74N+qxZ6nEOs7K/AHaGtyQkWenf7PQkgpazm4LnU2PavkA
EQEAAYkBvQQYAQIACQUCT0550wIbLgCoCRD6PseaTAwRzJ0gBBkBAgAGBQJPTnnT
AAoJECpy60GQb45JVaYD/2mf35Hmc1y6ccE/OhY4HdmowVb1KTLZS/vY0aBbyrVn
rEdj6FxKs5c9IFZbxml36fiBRuzf7tR5YyhY9JfWmishM4qO0pfGxlJGyOI7lRAU
7JM7uE+oMPaRzLLyLOdsSenRiiHr+anV0N9byhWE4N0WwwknrOg6yqWyABEBf2cr
5ewH/jXcTqa7S3cuO3PsXaUY/RGWaHChZGnkp1mZAa8gx4B+tn2M8PLkVi5tjf/J
NQS0jSwoHmTROSKwxu+lUePKy/gjZRoROiq7zqa31jUlPZVZ8zBq1bSjB7V+1GyS
793Yuj2o14rrFSclPAlJXBwOn7SIoUA+ZE4p0J496HfhS6aBH4HNv/DjxY02JzAS
foyhlhvkUQqE+ysq7yULHKJYnzwGz8CtrQNdcXU6iAxl8VM7UsR69+8tRV8/NGcw
y/DkhYkz9cKa6FvGZYWTuTq0cSz7EyJ6t8Wp2Yc5L91dACF7gKmv/t0QwXQ6yJNb
pivinLwAx8pMRewMbPoY+bdH0KY=
=EE8+
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGFV5hkBEACx1PlNbZj3qentJIUWZxjZvfDSAUwZ29IFA/m4QcyM7aq/Jabt
Lb49K5zYMLAATcEMBSUkuserr/v7IBbbiD8ISbshNMrM24FYFdfXd+EaIQupfP4w
FioI2j3+kkIPXZdnMpzPSQU33653wUaUFwcFz5iIT4ioZZhlP4wpRVLbM7pR+PNq
rX6SIQkEhEPWd3n2kMFE58Hlb+0wFG2vf5Cz/qHH2WnPDii/Yyq3/iTTi+PK/TQz
vuVBI8gEl8zrYjnYR/aVk+iZ3fxNFXAEyAJXDgARCRyUcNV0sBMF0ciLKCuDnAX1
Do6vIqj1kZFm3YhvVvOr31rTgGriaehlpYDHTAU5ixIULdNt16gXwF2D7Z7NzrUR
uMxOrNn5NZGu5Oa7YI+BXEUDH1WWvyedwJIoB8XRv3UUqGPJT7D+IkNervMUWcyV
WzAP3wk6D6RXBFTOKnk1aEnM0ZypEHpzuSwFgWKjLokiIgq4u0iKtOeztYt4b1LU
onwHkggAqmzOFPvkEz3mh+dAVrxZGeWWMGq/0WM5WFqzj0CTph76bxC4wS++C8OG
nADZ7T7lnqtfi+f5rgFLVdn9XUjco6Lwe5SYbR04bhbLFBmF/tEih6W8ryjNuNnA
lPQtJFKbXVNGrs0KnMe1r3dhG9nOg90CvBi7UngNN2ITQCbuoGkXVElkKwARAQAB
tCJKZXNzZSA8anNtaXRoQHJlc29uYXRpbmdtZWRpYS5jb20+iQJOBBMBCgA4FiEE
Wi3Ghs3F1gh9iMGYNR91+kXVNlYFAmFV5hkCGwMFCwkIBwIGFQoJCAsCBBYCAwEC
HgECF4AACgkQNR91+kXVNla8bQ//ed1ZyOoITXhKCZ3tKPXV9fjCevxq08uGLve7
0Nqj5EjQkyKFeLo7AOlo19OQ6YSsI4YuRZFOzlYiBDPdsuObAQ3JE7/DKcGn+p5l
CtW9jYeVJzjNtH2ZoDxBSOvZ3GAyCClAFWRDMXXMl/TlGrBKufvkjseSatScXBZw
kkuMuT4iS1whsy+dbg1NXHYGkKdKrHchYJIR21s4is5WE9yZtczBuCIsG863VJDn
XO2paEoJmhgNAfSzDzoefzmKltXoDS/0MLVaEp5wWi+R9qXUan76Aq0AA8MQ+n+R
FJrwdWXOHNJbuhHTt/VSpOyzXsYZiY5phdvS8QKxh7rJceQKQNxyIDlBL78FN7Q5
OS4wUEFUbZ/ZNb+BR+DYLzszikqVgpZpVPfkuQwrJHG5p2oykJ4qRoXtIoKs/Hzj
xdj91DpDZ4Thvv7Y7wZKAtU7Vat8C+tmhdKE9JGcfI49R6shtiK1EPtsAgXSgtgj
YN9tLxSh7qaie3NECVT8zqfBRI0GA8HYmP4ka4xHZ83SVOcoxsVSPRCr281VEdun
nkbgxT8PvajOYAIVBye7xi+xa4tBcmeiNFtESIOdnIBX5zRPtT3zf1tPdQGOp/1Q
QelVGiNO0zlN6HOmUSRzVLnpRRksCdwyy4ohz69Ig/kcVpMRScEboPR7D8bEdadz
qOp0cea5Ag0EYVXmGQEQANB+UH7Z9Or/qpWKnOn9IXkk7hErP7AEMIQXdamX6xdG
WwySD2dQgqsu2Fes2psTy6wSoEKwl55iJ8yzSlnrgE9hbso5OaDukY3wNpb1UhnG
liEDSZgV6xt7MhiIdgUrb6rzpvjg1cXUyjl/2HQ7OyxoNIN0vZkyWAr7SeF4xXIQ
CvbPyEbdE/nf3B6UZc0BUJnNFKirv7GnQNqwks8BcZpcwafXauausvsPcQ88gfip
bObmc/7j0/4KUhlhhDFq4kBcISisWZ9tA7XSIuutPnytr0IeNfNVeUqGdzp+ZsTk
gOVBf5E//DW8stJGiWQWFXfxOeWEaQjmmOm04L8jjZgp/62TzuSDbZWEx9rKgsqv
LUzfQ8+L+v708zeZMhMRGSnsCn+xZudVv+Y6bpkD5rcUjUJRpWdReWHULIRfYN9L
HAqqJ+MTTXrG6fcjQs7dSrr/e8Xt0Ba6L9cyM4GFzm4m+JZNXzaxT/NGH22Py63r
zbkrgEDIPKMRN0jF6ZkecyCxqAmmXO0hffdRojN4GcKjg1IGvdMcYe4ZYBFOnn9k
248StM9Ae2p1Y0TJ2xMtPMFEnrEgcmZjI8FaMXlGyTo6MkxjLOb9f/bsUFQRdY25
0NaZ0KXPp6j2Ld3lr4cD54e6vjfVG5xNKZmht0o9ODZrjPLNg+KAkkvR3MFxz/Th
ABEBAAGJAjYEGAEKACAWIQRaLcaGzcXWCH2IwZg1H3X6RdU2VgUCYVXmGQIbDAAK
CRA1H3X6RdU2VuXsEACje3hOHH+pr83LiRyzfKyn+6hBkSqiDt6Tx13Iw9Tha3LM
fmyyeMAtlaVWWZl6hSZHg/+xSPyhMGLiLnBxowJVJEmPI8KF3c5Bn5Cq77pHyOGp
eLkQnDOnIoAjt2L8GFOn+9RfSqhAqrKpKcP0kCdYg8a91J8Jlo3aYgOXew4hnXcC
84xo5Oldo0b1jXS6eWgCS0+HRcDdfawvgthOlp3TJqQ4mcc/Bhj2A6ThfRaOvZvE
fkFPGh3p0KlZxMGKxzBnQNbgo5cYFVjl5zZ8UU4LgKX5urZt1CQlcfajqOPjhBFw
QTRgJZrH7nmmecI8NzBILqIVRcXg/5kzRSqnrSBxlMjNHNC3r8yS2oxaT+Epoz+w
+W9NhFe/0eNG6kwwb5xhUYHcuiMv4WqCesAQ+AmYkVr4AanQcavz+w/EKx+otyXB
WU0wKf2u2thuPsqOg8GxTRrGTmZKxUhqkPdbnp2TIztfeEQ3SF8WpAx4Gxm+QXQb
E24aMHpZcbNYKrNYtb8mnvtybZ4/00gIdo65MrrHZjj6glONbDwAl7bwD2bfpHOd
N3T/w4uea3U1iRFWQ4T+XTkPRTN1ucLnA4utrJSKwyVCLAlTk9E+6YXAaT0eMvkP
FwFZujFBmA0cA/gz+qbO+2zdnBmwe1Nw6K0oV6UnnT6b8Bnlu7MHdBwFW8oUcA==
=kQSc
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
f1E+dA==
=I0bv
-----END PGP PUBLIC KEY BLOCK-----

171
sysvinit.spec Normal file
View File

@ -0,0 +1,171 @@
#
# spec file for package sysvinit
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%if 0%{?suse_version} >= 1550
%define sbindir %_sbindir
%define bindir %_bindir
%else
%define sbindir /sbin
%define bindir /bin
%endif
Name: sysvinit
%define KPVER 2.23
%define SIVER 3.13
%define START 0.65
Version: %{SIVER}
Release: 0
Summary: SysV-Style init
License: GPL-2.0-or-later
Group: System/Base
BuildRequires: blog-devel
BuildRequires: po4a
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#!BuildIgnore: sysvinit-tools
URL: https://savannah.nongnu.org/projects/sysvinit/
Source0: https://github.com/slicer69/sysvinit/releases/download/%{SIVER}/sysvinit-%{SIVER}.tar.xz
Source1: https://github.com/bitstreamout/killproc/archive/v%{KPVER}.tar.gz#/killproc-%{KPVER}.tar.gz
Source2: https://download.savannah.nongnu.org/releases/sysvinit/startpar-%{START}.tar.xz
Source3: https://github.com/slicer69/sysvinit/releases/download/%{SIVER}/sysvinit-%{SIVER}.tar.xz.sig
Source4: https://download.savannah.nongnu.org/releases/sysvinit/startpar-%{START}.tar.xz.sig
Source5: %{name}.keyring
Patch0: %{name}-2.90.dif
Patch2: %{name}-2.88dsf-suse.patch
Patch9: %{name}-2.90-no-kill.patch
Patch20: killproc-2.23.dif
Patch50: startpar-0.58.dif
%description
System V style init programs by Miquel van Smoorenburg that control the
booting and shutdown of your system. These support a number of system
runlevels, each one associated with a specific set of utilities. For
example, the normal system runlevel is 3, which starts a getty on
virtual consoles tty1-tty6. Runlevel 5 starts xdm. Runlevel 0 shuts
down the system. See the individual man pages for inittab, initscript,
halt, init, powerd, reboot, runlevel, shutdown, and telinit for
more information.
%package tools
Summary: Tools for basic booting
Group: System/Base
Suggests: %{name}-tools-doc
Requires: blog
%description tools
Helper tools from sysvinit that support booting, including but not exclusive
to startpar and killproc. System V init specific programs are in the
sysvinit package.
%package tools-doc
Summary: Documentation of tools for basic booting
Group: Documentation/Other
Requires: %{name}-tools
BuildArch: noarch
%description tools-doc
Documentation of helper tools from sysvinit that support booting, including but not exclusive
to startpar and killproc.
%prep
ls -l
rm -rf killproc-%{KPVER}
rm -rf startpar-%{START} startpar
ln -sf startpar startpar-%{START}
%setup -n %{name}-%{SIVER} -q -b 1 -b 2
%patch -P 2 -p0 -b .suse
%patch -P 9 -p0 -b .no-kill
%patch -P 0 -b .p0
pushd doc
mkdir killproc
popd
pushd ../killproc-%{KPVER}
%patch -P 20
ln -t../%{name}-%{SIVER}/doc/killproc README.md
popd
pushd ../startpar-%{START}
%patch -P 50
popd
%_fixowner .
%_fixgroup .
/bin/chmod -Rf a+rX,g-w,o-w .
%build
RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -std=gnu89 -D_FILE_OFFSET_BITS=64 -pipe"
CC=%__cc
export RPM_OPT_FLAGS CC
make %{?_smp_mflags} WITH_SELINUX=yes DISTRO=SuSE
pushd ../killproc-%{KPVER}
make %{?_smp_mflags} CC="%__cc"
popd
pushd ../startpar-%{START}
make %{?_smp_mflags} CC="%__cc"
popd
%install
make install -C src MANPATH=%{_mandir} ROOT=%{buildroot} DISTRO=SuSE
pushd ../killproc-%{KPVER}
make install MANPATH=%{_mandir} INSTBINFLAGS="-m 0755" DESTDIR=%{buildroot}
popd
pushd ../startpar-%{START}
make install DESTDIR=%{buildroot}
popd
#
# Remove files not packed:
#
rm -vf %{buildroot}/usr/include/initreq.h
%if 0%{?suse_version} && %suse_version > 1500
# pidof is part of procps-ng; let's remove the symlinks to killproc5 here
rm -f %{buildroot}{/sbin,/bin,%{_mandir}/man8}/pidof{,.8}
%endif
%if 0%{?suse_version} >= 1550
# it's all hardcoded in Makefiles so move here
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_sbindir}
mv %{buildroot}/bin/* %{buildroot}%{_bindir}
mv %{buildroot}/sbin/* %{buildroot}%{_sbindir}
%endif
%files tools
%defattr (-,root,root,755)
%license COPYING COPYRIGHT
%doc doc/Propaganda doc/Changelog doc/killproc
%{bindir}/usleep
%{bindir}/fsync
%{sbindir}/fstab-decode
%{sbindir}/checkproc
%{sbindir}/pidofproc
%{sbindir}/killproc
%{sbindir}/killall5
%{sbindir}/startproc
%{sbindir}/rvmtab
%{sbindir}/vhangup
%{sbindir}/mkill
%{sbindir}/start_daemon
%{_bindir}/startpar
%if 0%{?suse_version} && %suse_version <= 1500
%{bindir}/pidof
%{sbindir}/pidof
%doc %{_mandir}/man8/pidof.8%{?ext_man}
%endif
%files tools-doc
%doc %{_mandir}/man1/*.1%{?ext_man}
%doc %{_mandir}/man8/*.8%{?ext_man}
%doc %{_mandir}/*/man8/*.8%{?ext_man}
%changelog