diff options
Diffstat (limited to 'source/a/sysvinit')
-rw-r--r-- | source/a/sysvinit/CHANGES | 1 | ||||
-rw-r--r-- | source/a/sysvinit/slack-desc | 2 | ||||
-rwxr-xr-x | source/a/sysvinit/sysvinit.SlackBuild | 32 | ||||
-rw-r--r-- | source/a/sysvinit/sysvinit.use_dev_initctl_not_run_initctl.diff | 267 |
4 files changed, 284 insertions, 18 deletions
diff --git a/source/a/sysvinit/CHANGES b/source/a/sysvinit/CHANGES deleted file mode 100644 index a4c1f96b..00000000 --- a/source/a/sysvinit/CHANGES +++ /dev/null @@ -1 +0,0 @@ -Removed pidof symlink. diff --git a/source/a/sysvinit/slack-desc b/source/a/sysvinit/slack-desc index 79d6b54a..0d585bf7 100644 --- a/source/a/sysvinit/slack-desc +++ b/source/a/sysvinit/slack-desc @@ -15,5 +15,5 @@ sysvinit: For example, the normal system runlevel is 3, which starts agetty sysvinit: on virtual consoles tty1 - tty6. Runlevel 4 starts xdm. sysvinit: Runlevel 0 shuts the system down. sysvinit: -sysvinit: +sysvinit: Homepage: http://www.nongnu.org/sysvinit/ sysvinit: diff --git a/source/a/sysvinit/sysvinit.SlackBuild b/source/a/sysvinit/sysvinit.SlackBuild index 8f31223f..b74de22a 100755 --- a/source/a/sysvinit/sysvinit.SlackBuild +++ b/source/a/sysvinit/sysvinit.SlackBuild @@ -23,8 +23,8 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=sysvinit -VERSION=${VERSION:-2.88dsf} -BUILD=${BUILD:-5} +VERSION=${VERSION:-2.90} +BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -54,20 +54,28 @@ cd $TMP rm -rf sysvinit-$VERSION tar xvf $CWD/sysvinit-$VERSION.tar.xz || exit 1 cd sysvinit-$VERSION + chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; # Fix paths for /etc/forcefsck and /etc/fastboot: zcat $CWD/sysvinit.paths.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 -cd doc +# Use /dev/initctl instead of /run/initctl ; this is a named pipe and probably +# should be in /dev anyway, but more importantly, having the upgraded package +# expect it in /run breaks shutdown/reboot without manual intervention +zcat $CWD/sysvinit.use_dev_initctl_not_run_initctl.diff.gz | patch -p1 --verbose || exit 1 + mkdir -p $PKG/usr/doc/sysvinit-$VERSION -cp -a Install Propaganda sysvinit-2.86.lsm \ - ../COPYING* ../COPYRIGHT ../README* \ +cp -a COPYING* COPYRIGHT* README* \ + doc/* \ $PKG/usr/doc/sysvinit-$VERSION -chmod -R 644 $PKG/usr/doc/sysvinit-$VERSION/* -chmod 755 $PKG/usr/doc/sysvinit-$VERSION -cd ../src +cd src make clobber || exit 1 make || exit 1 @@ -90,14 +98,6 @@ mv $PKG/sbin/init $PKG/sbin/init.new chmod 755 $PKG/sbin/init.new chown root:root $PKG/sbin/init.new -# This version is old. We use genpower now. -#cat wall > $PKG/usr/bin/wall -#strip --strip-unneeded powerd -#cat powerd > $PKG/sbin/powerd -#chmod 755 $PKG/usr/bin/wall $PKG/sbin/powerd -#chown root:root $PKG/usr/bin/wall $PKG/sbin/powerd -cp initscript.sample $PKG/sbin/initscript.sample - cd ../man mkdir -p $PKG/usr/man/man{1,5,8} for page in last.1 ; do diff --git a/source/a/sysvinit/sysvinit.use_dev_initctl_not_run_initctl.diff b/source/a/sysvinit/sysvinit.use_dev_initctl_not_run_initctl.diff new file mode 100644 index 00000000..0a0f23ed --- /dev/null +++ b/source/a/sysvinit/sysvinit.use_dev_initctl_not_run_initctl.diff @@ -0,0 +1,267 @@ +diff -Nur sysvinit-2.90.orig/doc/Install sysvinit-2.90/doc/Install +--- sysvinit-2.90.orig/doc/Install 2018-06-18 18:25:26.000000000 -0500 ++++ sysvinit-2.90/doc/Install 2018-06-19 19:25:46.523082855 -0500 +@@ -66,7 +66,7 @@ + manual page on shutdown to find out more about this. + + Running from a read-only file system (CDROM?): +-* All communication to init goes through the FIFO /run/initctl. ++* All communication to init goes through the FIFO /dev/initctl. + There should be no problem using a read-only root file system + If you use a Linux kernel > 1.3.66. Older kernels don't allow + writing to a FIFO on a read-only file system. +diff -Nur sysvinit-2.90.orig/doc/initctl sysvinit-2.90/doc/initctl +--- sysvinit-2.90.orig/doc/initctl 2018-06-18 18:25:26.000000000 -0500 ++++ sysvinit-2.90/doc/initctl 2018-06-19 19:26:00.277206540 -0500 +@@ -1,5 +1,5 @@ + This document describes the communiction pipe set up by SysV init +-at /run/initctl. This named pipe allows programs with the proper ++at /dev/initctl. This named pipe allows programs with the proper + permissions (typically programs run by root have read+write access to + the pipe) to send signals to the init program (PID 1). + +@@ -58,13 +58,13 @@ + might need to process our request. For example, when setting environment + variables. + +-When setting an environment variable through init's /run/initctl pipe, ++When setting an environment variable through init's /dev/initctl pipe, + the data variable should have the format VARIABLE=VALUE. The string + should be terminated with a NULL '\0' character. + + + The following C code example shows how to send a set environment variable +-request to the init process using the /run/initctl pipe. This example ++request to the init process using the /dev/initctl pipe. This example + is simplified and skips the error checking. A more comlpete example can be + found in the shutdown.c program's init_setnv() function. + +@@ -86,7 +86,7 @@ + + + +-Usually the /run/initctl pipe would only be used by low-level programs to ++Usually the /dev/initctl pipe would only be used by low-level programs to + request a power-related shutdown or change the runlevel, like telinit + would do. Most of the time there is no need to talk to init directly, but + this gives us an extenable approach so init can be taught how to learn +diff -Nur sysvinit-2.90.orig/man/init.8 sysvinit-2.90/man/init.8 +--- sysvinit-2.90.orig/man/init.8 2018-06-18 18:25:26.000000000 -0500 ++++ sysvinit-2.90/man/init.8 2018-06-19 19:26:15.470343168 -0500 +@@ -144,7 +144,7 @@ + the letter \fBF\fP. + .PP + Usage of \fBSIGPWR\fP and \fB/etc/powerstatus\fP is discouraged. Someone +-wanting to interact with \fBinit\fP should use the \fB/run/initctl\fP ++wanting to interact with \fBinit\fP should use the \fB/dev/initctl\fP + control channel - see the initctl manual page for more documentation + about this. + .PP +@@ -248,7 +248,7 @@ + the current runlevel. + .PP + .SH INTERFACE +-Init listens on a \fIfifo\fP in /dev, \fI/run/initctl\fP, for messages. ++Init listens on a \fIfifo\fP in /dev, \fI/dev/initctl\fP, for messages. + \fBTelinit\fP uses this to communicate with init. The interface is not + very well documented or finished. Those interested should study the + \fIinitreq.h\fP file in the \fIsrc/\fP subdirectory of the \fBinit\fP +@@ -262,11 +262,11 @@ + .TP 0.5i + .B SIGUSR1 + On receipt of this signals, init closes and re-opens its control fifo, +-\fB/run/initctl\fP. Useful for bootscripts when /dev is remounted. ++\fB/dev/initctl\fP. Useful for bootscripts when /dev is remounted. + .TP 0.5i + .B SIGUSR2 + When init receives SIGUSR2, init closes and leaves the control fifo, +-\fB/run/initctl\f\P, closed. This may be used to make sure init is not ++\fB/dev/initctl\f\P, closed. This may be used to make sure init is not + holding open any files. However, it also prevents init from switching + runlevels. Which means commands like shutdown no longer work. + The fifo can be re-opened by sending init the SIGUSR1 signal. +@@ -294,7 +294,7 @@ + /dev/console + /var/run/utmp + /var/log/wtmp +-/run/initctl ++/dev/initctl + .fi + .\"}}} + .\"{{{ Warnings +diff -Nur sysvinit-2.90.orig/man/initctl.5 sysvinit-2.90/man/initctl.5 +--- sysvinit-2.90.orig/man/initctl.5 2018-06-18 18:25:26.000000000 -0500 ++++ sysvinit-2.90/man/initctl.5 2018-06-19 19:26:43.481595070 -0500 +@@ -16,13 +16,13 @@ + .\" + .TH INITCTL 5 "April 13, 2018" "" "Linux System Administrator's Manual" + .SH NAME +-initctl \- /run/initctl is a named pipe which passes commands to SysV init. ++initctl \- /dev/initctl is a named pipe which passes commands to SysV init. + .SH SYNOPSIS +-/run/initctl ++/dev/initctl + .SH DESCRIPTION + + This document describes the communiction pipe set up by SysV init +-at /run/initctl. This named pipe allows programs with the proper ++at /dev/initctl. This named pipe allows programs with the proper + permissions (typically programs run by root have read+write access to + the pipe) to send signals to the init program (PID 1). + +@@ -86,14 +86,14 @@ + might need to process our request. For example, when setting environment + variables. + +-When setting an environment variable through init's /run/initctl pipe, ++When setting an environment variable through init's /dev/initctl pipe, + the data variable should have the format VARIABLE=VALUE. The string + should be terminated with a NULL character. + + .SH EXAMPLES + + The following C code example shows how to send a set environment variable +-request to the init process using the /run/initctl pipe. This example ++request to the init process using the /dev/initctl pipe. This example + is simplified and skips the error checking. A more comlpete example can be + found in the shutdown.c program's init_setnv() function. + +@@ -118,18 +118,18 @@ + .sp + .RE + .SH NOTES +-Usually the /run/initctl pipe would only be used by low-level programs to ++Usually the /dev/initctl pipe would only be used by low-level programs to + request a power-related shutdown or change the runlevel, like telinit + would do. Most of the time there is no need to talk to init directly, but + this gives us an extenable approach so init can be taught how to learn + more commands. + .PP +-The commands passed through the /run/initctl pipe must be sent in a specific ++The commands passed through the /dev/initctl pipe must be sent in a specific + binary format and be of a specific length. Larger data structures or ones + not using the proper format will be ignored. Typically, only root has the + ability to write to the initctl pipe for security reasons. + .PP +-The /run/initctl pipe can be closed by sending init (PID 1) the SIGUSR2 ++The /dev/initctl pipe can be closed by sending init (PID 1) the SIGUSR2 + signal. This closes the pipe and leaves it closed. This may be useful + for making sure init is not keeping any files open. However, when the + pipe is closed, init no longer receives signals, such as those sent by +@@ -137,12 +137,12 @@ + change its runlevel directly. The pipe may be re-opened by sending init (PID 1) + the SIGUSR1 signal. + .PP +-If the /run/initctl pipe is closed then it may still be possible to bring ++If the /dev/initctl pipe is closed then it may still be possible to bring + down the system using the shutdown command's -n flag, but this is not + always clean and not recommended. + .RE + .SH FILES +-/run/initctl ++/dev/initctl + /sbin/init + .SH AUTHOR + Jesse Smith <jsmith@resonatingmedia.com> +diff -Nur sysvinit-2.90.orig/src/Makefile sysvinit-2.90/src/Makefile +--- sysvinit-2.90.orig/src/Makefile 2018-06-18 18:25:26.000000000 -0500 ++++ sysvinit-2.90/src/Makefile 2018-06-19 19:27:26.501981961 -0500 +@@ -217,8 +217,8 @@ + # + # This part is skipped on Debian systems, the + # debian.preinst script takes care of it. +- @if [ ! -p /run/initctl ]; then \ +- echo "Creating /run/initctl"; \ +- rm -f /run/initctl; \ +- mknod -m 600 /run/initctl p; fi ++ @if [ ! -p /dev/initctl ]; then \ ++ echo "Creating /dev/initctl"; \ ++ rm -f /dev/initctl; \ ++ mknod -m 600 /dev/initctl p; fi + endif +diff -Nur sysvinit-2.90.orig/src/init.c sysvinit-2.90/src/init.c +--- sysvinit-2.90.orig/src/init.c 2018-06-18 18:25:26.000000000 -0500 ++++ sysvinit-2.90/src/init.c 2018-06-19 19:27:08.688821762 -0500 +@@ -131,7 +131,7 @@ + int maxproclen; /* Maximal length of argv[0] with \0 */ + struct utmp utproto; /* Only used for sizeof(utproto.ut_id) */ + char *console_dev; /* Console device. */ +-int pipe_fd = -1; /* /run/initctl */ ++int pipe_fd = -1; /* /dev/initctl */ + int did_boot = 0; /* Did we already do BOOT* stuff? */ + int main(int, char **); + +@@ -2354,13 +2354,13 @@ + int quit = 0; + + /* +- * First, try to create /run/initctl if not present. ++ * First, try to create /dev/initctl if not present. + */ + if (stat(INIT_FIFO, &st2) < 0 && errno == ENOENT) + (void)mkfifo(INIT_FIFO, 0600); + + /* +- * If /run/initctl is open, stat the file to see if it ++ * If /dev/initctl is open, stat the file to see if it + * is still the _same_ inode. + */ + if (pipe_fd >= 0) { +@@ -2374,7 +2374,7 @@ + } + + /* +- * Now finally try to open /run/initctl if pipe_fd is -1 ++ * Now finally try to open /dev/initctl if pipe_fd is -1 + * if it is -2, then we leave it closed + */ + if (pipe_fd == -1) { +@@ -2681,7 +2681,7 @@ + } + if (ISMEMBER(got_signals, SIGUSR1)) { + /* +- * SIGUSR1 means close and reopen /run/initctl ++ * SIGUSR1 means close and reopen /dev/initctl + */ + INITDBG(L_VB, "got SIGUSR1"); + if (pipe_fd) +@@ -2929,7 +2929,7 @@ + strerror(errno)); + + /* Open the fifo and write a command. */ +- /* Make sure we don't hang on opening /run/initctl */ ++ /* Make sure we don't hang on opening /dev/initctl */ + SETSIG(sa, SIGALRM, signal_handler, 0); + alarm(3); + if ((fd = open(INIT_FIFO, O_WRONLY)) >= 0) { +diff -Nur sysvinit-2.90.orig/src/initreq.h sysvinit-2.90/src/initreq.h +--- sysvinit-2.90.orig/src/initreq.h 2018-06-18 18:25:26.000000000 -0500 ++++ sysvinit-2.90/src/initreq.h 2018-06-19 19:26:51.388666180 -0500 +@@ -1,5 +1,5 @@ + /* +- * initreq.h Interface to talk to init through /run/initctl. ++ * initreq.h Interface to talk to init through /dev/initctl. + * + * Copyright (C) 1995-2004 Miquel van Smoorenburg + * +@@ -26,7 +26,7 @@ + #include <sys/param.h> + + #ifndef INIT_FIFO +-#define INIT_FIFO "/run/initctl" ++#define INIT_FIFO "/dev/initctl" + #endif + + #define INIT_MAGIC 0x03091969 +diff -Nur sysvinit-2.90.orig/src/shutdown.c sysvinit-2.90/src/shutdown.c +--- sysvinit-2.90.orig/src/shutdown.c 2018-06-18 18:25:26.000000000 -0500 ++++ sysvinit-2.90/src/shutdown.c 2018-06-19 19:27:13.214862465 -0500 +@@ -176,7 +176,7 @@ + + /* + * Open the fifo and write the command. +- * Make sure we don't hang on opening /run/initctl ++ * Make sure we don't hang on opening /dev/initctl + */ + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = alrm_handler; |