summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/sysvinit/sysvinit
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/sysvinit/sysvinit')
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch52
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/0001-hddown-include-libgen.h-for-basename-API.patch38
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch50
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch38
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/install.patch97
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch191
-rwxr-xr-xmeta/recipes-core/sysvinit/sysvinit/rc16
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/rcS-default7
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/realpath.patch87
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/sysvinit_remove_linux_fs.patch17
10 files changed, 480 insertions, 113 deletions
diff --git a/meta/recipes-core/sysvinit/sysvinit/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch b/meta/recipes-core/sysvinit/sysvinit/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch
deleted file mode 100644
index f35c15cb31..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 36ac97bfe51797458442a6035219a504a42e703a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 21 Aug 2015 10:56:40 -0700
-Subject: [PATCH] This fixes an issue that clang reports about mutliple output
- files
-
-Issue is that we are passing .h file to link step as seen below.
-
-| arm-oe-linux-gnueabi-clang -march=armv7-a -mthumb -mfloat-abi=hard
--mfpu=neon-vfpv4 -mtune=cortex-a7 -D__extern_always_inline=inline
--no-integrated-as
---sysroot=/mnt/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-glibc/sysroots/raspberrypi2
--Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed halt.o ifdown.o hddown.o
-utmp.o reboot.h -o halt
-| clang-3.7: error: cannot specify -o when generating multiple output
-files
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/Makefile | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index e77ed5f..a6f9f40 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -103,9 +103,9 @@ all: $(BIN) $(SBIN) $(USRBIN)
- init: LDLIBS += $(INITLIBS) $(STATIC)
- init: init.o init_utmp.o
-
--halt: halt.o ifdown.o hddown.o utmp.o reboot.h
-+halt: halt.o ifdown.o hddown.o utmp.o
-
--last: last.o oldutmp.h
-+last: last.o
-
- mesg: mesg.o
-
-@@ -120,7 +120,7 @@ sulogin: sulogin.o
-
- wall: dowall.o wall.o
-
--shutdown: dowall.o shutdown.o utmp.o reboot.h
-+shutdown: dowall.o shutdown.o utmp.o
-
- bootlogd: LDLIBS += -lutil
- bootlogd: bootlogd.o
---
-2.1.4
-
diff --git a/meta/recipes-core/sysvinit/sysvinit/0001-hddown-include-libgen.h-for-basename-API.patch b/meta/recipes-core/sysvinit/sysvinit/0001-hddown-include-libgen.h-for-basename-API.patch
new file mode 100644
index 0000000000..5e4053bad1
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/0001-hddown-include-libgen.h-for-basename-API.patch
@@ -0,0 +1,38 @@
+From a07c1d94e79840c59563741b45e690e77d4f3dfa Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 3 Dec 2023 20:09:30 -0800
+Subject: [PATCH] hddown: include libgen.h for basename API
+
+musl has removed the non-prototype declaration of basename from string.h [1] which now results in build errors with clang-17+ compiler
+
+include libgen.h for using the posix declaration of the funciton.
+
+Fixes
+
+hddown.c:135:8: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
+ 135 | ptr = basename(lnk);
+ | ^ ~~~~~~~~~~~~~
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://github.com/slicer69/sysvinit/pull/21]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/hddown.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/hddown.c b/src/hddown.c
+index 7a2cf28..3b31bc0 100644
+--- a/src/hddown.c
++++ b/src/hddown.c
+@@ -24,6 +24,7 @@ char *v_hddown = "@(#)hddown.c 1.02 22-Apr-2003 miquels@cistron.nl";
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE
+ #endif
++#include <libgen.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+--
+2.43.0
+
diff --git a/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch b/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch
new file mode 100644
index 0000000000..60fbd87534
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch
@@ -0,0 +1,50 @@
+From c710a3accd1fabdb671274e1a458405282d51e0c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 6 Aug 2018 15:38:58 -0700
+Subject: [PATCH] include sys/sysmacros.h for major/minor definitions
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+---
+ src/bootlogd.c | 1 +
+ src/mountpoint.c | 1 +
+ src/shutdown.c | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/src/bootlogd.c b/src/bootlogd.c
+index 787db87..8b07903 100644
+--- a/src/bootlogd.c
++++ b/src/bootlogd.c
+@@ -29,6 +29,7 @@
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <sys/ioctl.h>
+ #include <sys/utsname.h>
+ #include <time.h>
+diff --git a/src/mountpoint.c b/src/mountpoint.c
+index 5f20522..94df7a1 100644
+--- a/src/mountpoint.c
++++ b/src/mountpoint.c
+@@ -25,6 +25,7 @@
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff --git a/src/shutdown.c b/src/shutdown.c
+index b744a2c..40b7faf 100644
+--- a/src/shutdown.c
++++ b/src/shutdown.c
+@@ -40,6 +40,7 @@
+ #endif
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <sys/wait.h>
+ #ifdef __linux__
+ #include <sys/sysmacros.h> /* brought in my LFS patch */
diff --git a/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch b/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
new file mode 100644
index 0000000000..5c39fb001b
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
@@ -0,0 +1,38 @@
+From c3a068cf24a22bea7349849ec111ae8d91a54db4 Mon Sep 17 00:00:00 2001
+From: Jeff Dike <jdike@x86_64.user-mode-linux.org>
+Date: Wed, 14 Jul 2010 14:35:52 -0400
+Subject: [PATCH] sysvinit - Remove sulogin dependency on /usr/lib*/libcrypt.a
+
+Upstream-Status: Inappropriate [configuration]
+
+# The src Makefile was checking for libcrypt.a on the host, not in the
+# build environment. This patch checks for $LCRYPT in the environment
+# and uses it if it's there.
+# - jdike@linux.intel.com
+
+---
+ src/Makefile | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 5b1a5a2..b686394 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -97,15 +97,8 @@ else
+ endif
+
+ # Additional libs for GNU libc.
+-ifneq ($(wildcard $(ROOT)/usr/lib*/libcrypt.*),)
+- SULOGINLIBS += -lcrypt
+-endif
+-
+-# Additional libs for GNU libc / multiarch on Debian based systems.
+-ifneq ($(wildcard $(ROOT)/usr/lib/*/libcrypt.*),)
+-ifneq ($(findstring -lcrypt, $(SULOGINLIBS)), -lcrypt)
+- SULOGINLIBS += -lcrypt
+-endif
++ifneq ($(LCRYPT),)
++ SULOGINLIBS += $(LCRYPT)
+ endif
+
+ all: $(BIN) $(SBIN) $(USRBIN)
diff --git a/meta/recipes-core/sysvinit/sysvinit/install.patch b/meta/recipes-core/sysvinit/sysvinit/install.patch
new file mode 100644
index 0000000000..bc6d493c2b
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/install.patch
@@ -0,0 +1,97 @@
+From 5e35aa105e7a2e85db2a89fee4114090b1ac55be Mon Sep 17 00:00:00 2001
+From: Qing He <qing.he@intel.com>
+Date: Fri, 18 Jun 2010 09:40:30 +0800
+Subject: [PATCH] sysvinit: upgrade to version 2.88dsf
+
+Upstream-Status: Submitted [https://github.com/slicer69/sysvinit/pull/13]
+
+---
+ src/Makefile | 53 +++++++++++++++++++++++++++++-----------------------
+ 1 file changed, 30 insertions(+), 23 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 1b368dc..5b1a5a2 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -77,7 +77,14 @@ else
+ INSTALL_DATA = install -m 644
+ endif
+ INSTALL_DIR = install -m 755 -d
+-MANDIR = /usr/share/man
++
++ROOT ?=
++base_bindir ?= /bin
++base_sbindir ?= /sbin
++bindir ?= /usr/bin
++sysconfdir ?= /etc
++includedir ?= /usr/include
++mandir ?= /usr/share/man
+
+ ifeq ($(WITH_SELINUX),yes)
+ SELINUX_DEF = -DWITH_SELINUX
+@@ -191,43 +198,43 @@ clobber: cleanobjs
+ distclean: clobber
+
+ install: all
+- $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/
+- $(INSTALL_DIR) $(ROOT)/usr/bin/
++ $(INSTALL_DIR) $(ROOT)$(base_bindir)/ $(ROOT)$(base_sbindir)/
++ $(INSTALL_DIR) $(ROOT)$(bindir)/
+ for i in $(BIN); do \
+- $(INSTALL_EXEC) $$i $(ROOT)/bin/ ; \
++ $(INSTALL_EXEC) $$i $(ROOT)$(base_bindir)/ ; \
+ done
+ for i in $(SBIN); do \
+- $(INSTALL_EXEC) $$i $(ROOT)/sbin/ ; \
++ $(INSTALL_EXEC) $$i $(ROOT)$(base_sbindir)/ ; \
+ done
+ for i in $(USRBIN); do \
+- $(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \
++ $(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \
+ done
+ # $(INSTALL_DIR) $(ROOT)/etc/
+ $(INSTALL_DIR) $(ROOT)/etc/inittab.d
+ # $(INSTALL_EXEC) ../doc/initscript.sample $(ROOT)/etc/
+- ln -sf halt $(ROOT)/sbin/reboot
+- ln -sf halt $(ROOT)/sbin/poweroff
+- ln -sf init $(ROOT)/sbin/telinit
+- ln -sf /sbin/killall5 $(ROOT)/bin/pidof
+- if [ ! -f $(ROOT)/usr/bin/lastb ]; then \
+- ln -sf last $(ROOT)/usr/bin/lastb; \
++ 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)/usr/include/
+- $(INSTALL_DATA) initreq.h $(ROOT)/usr/include/
+- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man1/
+- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/
+- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/
++ $(INSTALL_DIR) $(ROOT)$(includedir)/
++ $(INSTALL_DATA) initreq.h $(ROOT)$(includedir)/
++ $(INSTALL_DIR) $(ROOT)$(mandir)/man1/
++ $(INSTALL_DIR) $(ROOT)$(mandir)/man5/
++ $(INSTALL_DIR) $(ROOT)$(mandir)/man8/
+ for man in $(MAN1); do \
+- $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man1/; \
+- sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man1/$$man ; \
++ $(INSTALL_DATA) ../man/$$man $(ROOT)$(mandir)/man1/; \
++ sed -i "1{ $(MANDB); }" $(ROOT)$(mandir)/man1/$$man ; \
+ done
+ for man in $(MAN5); do \
+- $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man5/; \
+- sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man5/$$man ; \
++ $(INSTALL_DATA) ../man/$$man $(ROOT)$(mandir)/man5/; \
++ sed -i "1{ $(MANDB); }" $(ROOT)$(mandir)/man5/$$man ; \
+ done
+ for man in $(MAN8); do \
+- $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man8/; \
+- sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man8/$$man ; \
++ $(INSTALL_DATA) ../man/$$man $(ROOT)$(mandir)/man8/; \
++ sed -i "1{ $(MANDB); }" $(ROOT)$(mandir)/man8/$$man ; \
+ done
+ ifeq ($(ROOT),)
+ #
diff --git a/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch b/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
new file mode 100644
index 0000000000..8ef292ed12
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
@@ -0,0 +1,191 @@
+From 0e441712d0e366a0384ff3fa879f5a2d2607c24f Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 24 Jul 2013 17:07:22 +0800
+Subject: [PATCH] pidof: add -m option
+
+When used with -o, will also omit any processes that have the same
+argv[0] and argv[1] as any explicitly omitted process ids. This can be
+used to avoid multiple shell scripts concurrently calling pidof returning
+each other's pids.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=883856
+
+Upstream-Status: Backport
+Imported patch from: https://bugzilla.redhat.com/attachment.cgi?id=658166
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+---
+ man/pidof.8 | 6 +++++
+ src/killall5.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++---
+ 2 files changed, 65 insertions(+), 3 deletions(-)
+
+diff --git a/man/pidof.8 b/man/pidof.8
+index 6866cb3..a87d878 100644
+--- a/man/pidof.8
++++ b/man/pidof.8
+@@ -25,6 +25,7 @@ pidof - find the process ID of a running program
+ .RB [ \-n ]
+ .RB [ \-x ]
+ .RB [ \-z ]
++.RB [ \-m ]
+ .RB [ \-o
+ .IR omitpid[,omitpid...] ]
+ .RB [ \-o
+@@ -77,6 +78,11 @@ is shown. The default separator is a space.
+ Tells \fIpidof\fP to omit processes with that process id. The special
+ pid \fB%PPID\fP can be used to name the parent process of the \fBpidof\fP
+ program, in other words the calling shell or shell script.
++.IP -m
++When used with -o, will also omit any processes that have the same
++argv[0] and argv[1] as any explicitly omitted process ids. This can be
++used to avoid multiple shell scripts concurrently calling pidof returning
++each other's pids.
+ .SH "EXIT STATUS"
+ .TP
+ .B 0
+diff --git a/src/killall5.c b/src/killall5.c
+index b0728fa..72289e3 100644
+--- a/src/killall5.c
++++ b/src/killall5.c
+@@ -121,6 +121,7 @@ typedef struct _s_nfs
+
+ /* List of processes. */
+ PROC *plist;
++PROC *olist;
+
+ /* List of processes to omit. */
+ OMIT *omit;
+@@ -356,6 +357,20 @@ static void clear_mnt(void)
+ }
+ }
+
++static void clear_omit(void)
++{
++ OMIT *o;
++ PROC *p;
++ for (o = omit; o; o = omit) {
++ omit = omit->next;
++ free(o);
++ }
++ for (p = olist; p; p = olist) {
++ olist = olist->next;
++ free(p);
++ }
++}
++
+ /*
+ * Check if path is a shadow off a NFS partition.
+ */
+@@ -481,6 +496,7 @@ int readproc()
+ DIR *dir;
+ FILE *fp;
+ PROC *p, *n;
++ OMIT *o, *m;
+ struct dirent *d;
+ char path[PATH_MAX+1];
+ char buf[PATH_MAX+1];
+@@ -670,6 +686,17 @@ int readproc()
+ p->next = plist;
+ plist = p;
+ p->pid = pid;
++ /* Could be smarter, but it's a small list. */
++ m = omit;
++ for (o = omit; m; o = m) {
++ m = o->next;
++ if (o->pid == p->pid) {
++ n = (PROC*)xmalloc(sizeof(PROC));
++ *n = *p;
++ n->next = olist;
++ olist = n;
++ }
++ }
+ }
+ closedir(dir);
+
+@@ -870,6 +897,26 @@ PIDQ_HEAD *pidof(char *prog)
+ return q;
+ }
+
++int matches(PROC *o, PROC *p)
++{
++ int ret = 0;
++ char *oargv1, *pargv1;
++ if ((o->argv0 && p->argv0 && !strcmp(o->argv0,p->argv0))) {
++ if (o->argv1 && p->argv1) {
++ if ((oargv1 = canonicalize_file_name(o->argv1)) == NULL)
++ oargv1 = strdup(o->argv1);
++ if ((pargv1 = canonicalize_file_name(p->argv1)) == NULL)
++ pargv1 = strdup(p->argv1);
++ if (! strcmp(oargv1, pargv1)) {
++ ret = 1;
++ }
++ free(oargv1);
++ free(pargv1);
++ }
++ }
++ return ret;
++}
++
+ /* Give usage message and exit. */
+ void usage(void)
+ {
+@@ -920,6 +967,7 @@ void nsyslog(int pri, char *fmt, ...)
+ #define PIDOF_OMIT 0x02
+ #define PIDOF_NETFS 0x04
+ #define PIDOF_QUIET 0x08
++#define PIDOF_OMIT_OMIT_MATCHES 0x08
+
+ /*
+ * Pidof functionality.
+@@ -937,6 +985,7 @@ int main_pidof(int argc, char **argv)
+ char tmp[512];
+ char sep = ' ';
+
++ olist = (PROC*)0;
+ omit = (OMIT*)0;
+ nlist = (NFS*)0;
+ opterr = 0;
+@@ -944,7 +993,7 @@ int main_pidof(int argc, char **argv)
+ if ((token = getenv("PIDOF_NETFS")) && (strcmp(token,"no") != 0))
+ flags |= PIDOF_NETFS;
+
+- while ((opt = getopt(argc,argv,"qhco:d:sxzn")) != EOF) switch (opt) {
++ while ((opt = getopt(argc,argv,"qhcmo:d:sxzn")) != EOF) switch (opt) {
+ case '?':
+ nsyslog(LOG_ERR,"invalid options on command line!\n");
+ closelog();
+@@ -995,6 +1044,9 @@ int main_pidof(int argc, char **argv)
+ case 'z':
+ list_dz_processes = TRUE;
+ break;
++ case 'm':
++ flags |= PIDOF_OMIT_OMIT_MATCHES;
++ break;
+ case 'n':
+ flags |= PIDOF_NETFS;
+ break;
+@@ -1026,10 +1078,13 @@ int main_pidof(int argc, char **argv)
+ pid_t spid = 0;
+ while ((p = get_next_from_pid_q(q))) {
+ if ((flags & PIDOF_OMIT) && omit) {
+- OMIT * optr;
+- for (optr = omit; optr; optr = optr->next) {
++ PROC * optr;
++ for (optr = olist; optr; optr = optr->next) {
+ if (optr->pid == p->pid)
+ break;
++ if (flags & PIDOF_OMIT_OMIT_MATCHES)
++ if (matches(optr, p))
++ break;
+ }
+
+ /*
+@@ -1071,6 +1126,7 @@ int main_pidof(int argc, char **argv)
+ printf("\n");
+ }
+
++ clear_omit();
+ clear_mnt();
+
+ closelog();
diff --git a/meta/recipes-core/sysvinit/sysvinit/rc b/meta/recipes-core/sysvinit/sysvinit/rc
index 7ca41ae1ae..41196ec90b 100755
--- a/meta/recipes-core/sysvinit/sysvinit/rc
+++ b/meta/recipes-core/sysvinit/sysvinit/rc
@@ -17,6 +17,7 @@
. /etc/default/rcS
export VERBOSE
+export PSPLASH_FIFO_DIR
startup_progress() {
step=$(($step + $step_change))
@@ -26,11 +27,8 @@ startup_progress() {
progress=$progress_size
fi
#echo "PROGRESS is $progress $runlevel $first_step + ($step of $num_steps) $step_change $progress_size"
- #if type psplash-write >/dev/null 2>&1; then
- # TMPDIR=/mnt/.psplash psplash-write "PROGRESS $progress" || true
- #fi
- if [ -e /mnt/.psplash/psplash_fifo ]; then
- echo "PROGRESS $progress" > /mnt/.psplash/psplash_fifo
+ if type psplash-write >/dev/null 2>&1; then
+ psplash-write "PROGRESS $progress" || true
fi
}
@@ -66,7 +64,7 @@ startup() {
stty onlcr 0>&1
# Limit stack size for startup scripts
- [ "$STACK_SIZE" == "" ] || ulimit -S -s $STACK_SIZE
+ [ "$STACK_SIZE" = "" ] || ulimit -S -s $STACK_SIZE
# Now find out what the current and what the previous runlevel are.
@@ -162,6 +160,9 @@ startup() {
#
[ -f $previous_start ] && [ ! -f $stop ] && continue
fi
+ if [ x"${PSPLASH_TEXT_UPDATES}" = x"yes" ]; then
+ psplash-write "MSG $(basename $i .sh | cut -c 4-)" || true
+ fi
case "$runlevel" in
0|6)
startup $i stop
@@ -176,7 +177,6 @@ startup() {
#Uncomment to cause psplash to exit manually, otherwise it exits when it sees a VC switch
if [ "x$runlevel" != "xS" ] && [ ! -x /etc/rc${runlevel}.d/S??xserver-nodm ]; then
if type psplash-write >/dev/null 2>&1; then
- TMPDIR=/mnt/.psplash psplash-write "QUIT" || true
- umount -l /mnt/.psplash
+ psplash-write "QUIT" || true
fi
fi
diff --git a/meta/recipes-core/sysvinit/sysvinit/rcS-default b/meta/recipes-core/sysvinit/sysvinit/rcS-default
index 709cdf6ec5..f7c4a2f841 100644
--- a/meta/recipes-core/sysvinit/sysvinit/rcS-default
+++ b/meta/recipes-core/sysvinit/sysvinit/rcS-default
@@ -27,3 +27,10 @@ VOLATILE_ENABLE_CACHE=yes
# Setting ROOTFS_READ_ONLY to yes and rebooting will give you a read-only rootfs.
# Normally you should not change this value.
ROOTFS_READ_ONLY=no
+# rcS is also used when using busybox init and shares initscripts, some initscripts
+# need to have specific behavior depending on init system
+INIT_SYSTEM=sysvinit
+# set the psplash fifo directory
+PSPLASH_FIFO_DIR=/mnt
+# psplash textual updates knob
+PSPLASH_TEXT_UPDATES=#PSPLASH_TEXT#
diff --git a/meta/recipes-core/sysvinit/sysvinit/realpath.patch b/meta/recipes-core/sysvinit/sysvinit/realpath.patch
index 5e0dca3bf1..b559aa3b49 100644
--- a/meta/recipes-core/sysvinit/sysvinit/realpath.patch
+++ b/meta/recipes-core/sysvinit/sysvinit/realpath.patch
@@ -1,58 +1,27 @@
-Fix build on musl use realpath() API its available on all libcs
+From eb158c97f19d473d01befe96359a7f93ae834517 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 19 Nov 2015 00:10:03 +0000
+Subject: [PATCH] Fix build on musl use realpath() API its available on all
+ libcs
realpath() API doesnt work on systems with PATH_MAX set to be unlimited e.g. GNU/Hurd
However for Linux it should always work
-Upstream-Status: Inappropriate[Linux specific]
+Upstream-Status: Inappropriate [Linux specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: sysvinit-2.88dsf/src/ifdown.c
-===================================================================
---- sysvinit-2.88dsf.orig/src/ifdown.c 2010-03-23 07:37:01.000000000 -0700
-+++ sysvinit-2.88dsf/src/ifdown.c 2014-04-02 00:43:43.675437029 -0700
-@@ -26,11 +26,11 @@
- #include <unistd.h>
- #include <time.h>
- #include <string.h>
-+#include <errno.h>
-
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <sys/time.h>
--#include <sys/errno.h>
-
- #include <net/if.h>
- #include <netinet/in.h>
-Index: sysvinit-2.88dsf/src/init.c
-===================================================================
---- sysvinit-2.88dsf.orig/src/init.c 2014-04-02 00:42:10.488770162 -0700
-+++ sysvinit-2.88dsf/src/init.c 2014-04-02 00:42:59.432103823 -0700
-@@ -49,6 +49,7 @@
- #include <utmp.h>
- #include <ctype.h>
- #include <stdarg.h>
-+#include <sys/ttydefaults.h>
- #include <sys/syslog.h>
- #include <sys/time.h>
-
-Index: sysvinit-2.88dsf/src/mountpoint.c
-===================================================================
---- sysvinit-2.88dsf.orig/src/mountpoint.c 2009-09-10 01:28:49.000000000 -0700
-+++ sysvinit-2.88dsf/src/mountpoint.c 2014-04-02 00:44:18.248770942 -0700
-@@ -23,6 +23,7 @@
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-+#include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #include <stdlib.h>
-Index: sysvinit-2.88dsf/src/killall5.c
-===================================================================
---- sysvinit-2.88dsf.orig/src/killall5.c 2014-03-26 00:49:52.982668074 -0700
-+++ sysvinit-2.88dsf/src/killall5.c 2014-04-02 00:46:45.838771653 -0700
-@@ -846,9 +846,9 @@
+---
+ src/killall5.c | 4 ++--
+ src/mountpoint.c | 1 +
+ src/wall.c | 1 +
+ 3 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/killall5.c b/src/killall5.c
+index a664954..9798423 100644
+--- a/src/killall5.c
++++ b/src/killall5.c
+@@ -977,9 +977,9 @@ int matches(PROC *o, PROC *p)
char *oargv1, *pargv1;
if ((o->argv0 && p->argv0 && !strcmp(o->argv0,p->argv0))) {
if (o->argv1 && p->argv1) {
@@ -64,14 +33,26 @@ Index: sysvinit-2.88dsf/src/killall5.c
pargv1 = strdup(p->argv1);
if (! strcmp(oargv1, pargv1)) {
ret = 1;
-Index: sysvinit-2.88dsf/src/wall.c
-===================================================================
---- sysvinit-2.88dsf.orig/src/wall.c 2009-11-22 14:05:53.000000000 -0800
-+++ sysvinit-2.88dsf/src/wall.c 2014-04-02 00:49:15.258772217 -0700
-@@ -29,6 +29,7 @@
+diff --git a/src/mountpoint.c b/src/mountpoint.c
+index b24335e..5f20522 100644
+--- a/src/mountpoint.c
++++ b/src/mountpoint.c
+@@ -23,6 +23,7 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++#include <sys/types.h>
+ #include <sys/stat.h>
#include <unistd.h>
+ #include <stdlib.h>
+diff --git a/src/wall.c b/src/wall.c
+index d3a2c70..00826e9 100644
+--- a/src/wall.c
++++ b/src/wall.c
+@@ -30,6 +30,7 @@
#include <pwd.h>
#include <syslog.h>
+ #include <sys/types.h>
+#include <time.h>
#include "init.h"
diff --git a/meta/recipes-core/sysvinit/sysvinit/sysvinit_remove_linux_fs.patch b/meta/recipes-core/sysvinit/sysvinit/sysvinit_remove_linux_fs.patch
new file mode 100644
index 0000000000..89d65c23b7
--- /dev/null
+++ b/meta/recipes-core/sysvinit/sysvinit/sysvinit_remove_linux_fs.patch
@@ -0,0 +1,17 @@
+# From glibc 2.36, <linux/mount.h> (included from <linux/fs.h>) and
+# <sys/mount.h> (included from glibc) are no longer compatible:
+# https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- sysvinit-3.04/src/sulogin.c.orig 2022-08-07 23:07:42.952576274 +0200
++++ sysvinit-3.04/src/sulogin.c 2022-08-07 23:08:26.511470983 +0200
+@@ -51,7 +51,6 @@
+ #ifdef __linux__
+ # include <sys/statfs.h>
+ # include <sys/mount.h>
+-# include <linux/fs.h>
+ # include <linux/magic.h>
+ # include <linux/major.h>
+ # ifndef TMPFS_MAGIC