diff options
Diffstat (limited to 'meta/recipes-core/sysvinit')
14 files changed, 330 insertions, 299 deletions
diff --git a/meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch b/meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch deleted file mode 100644 index 7b342901e1..0000000000 --- a/meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch +++ /dev/null @@ -1,25 +0,0 @@ -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 - -Index: sysvinit-2.88dsf/src/Makefile -=================================================================== ---- sysvinit-2.88dsf.orig/src/Makefile -+++ sysvinit-2.88dsf/src/Makefile -@@ -85,9 +85,13 @@ else - endif - - # Additional libs for GNU libc. -+ifneq ($(LCRYPT),) -+ SULOGINLIBS += $(LCRYPT) -+else - ifneq ($(wildcard /usr/lib*/libcrypt.a),) - SULOGINLIBS += -lcrypt - endif -+endif - - all: $(BIN) $(SBIN) $(USRBIN) - diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty b/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty index e15ae35f90..f5671ee53d 100644 --- a/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty +++ b/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty @@ -1,43 +1,20 @@ #!/bin/sh -############################################################################### -# This script is used to automatically set up the serial console(s) on startup. -# The variable SERIAL_CONSOLES can be set in meta/conf/machine/*.conf. -# Script enhancement has been done based on Bug YOCTO #10844. -# Most of the information is retrieved from /proc virtual filesystem containing -# all the runtime system information (eg. system memory, device mount, etc). -############################################################################### -# Get active serial filename. -active_serial=$(grep "serial" /proc/tty/drivers | cut -d/ -f1 | sed "s/ *$//") +SPEED=$1 +DEVICE=$2 +TERM=$3 -# Rephrase input parameter from ttyS target index (ttyS1, ttyS2, ttyAMA0, etc). -runtime_tty=$(echo $2 | grep -oh '[0-9]') +# busybox' getty does this itself, util-linux' agetty needs extra help +getty="/sbin/getty" +case $(readlink -f "${getty}") in + */busybox*) + ;; + *) + if [ -x "/usr/bin/setsid" ] ; then + setsid="/usr/bin/setsid" + fi + options="" + ;; +esac -# Backup $IFS. -DEFAULT_IFS=$IFS -# Customize Internal Field Separator. -IFS="$(printf '\n\t')" - -for line in $active_serial; do - # Check we have the file containing current active serial target index. - if [ -e "/proc/tty/driver/$line" ] - then - # Remove all unknown entries and discard the first line (desc). - activetty=$(grep -v "unknown" "/proc/tty/driver/$line" \ - | tail -n +2 | grep -oh "^\s*\S*[0-9]") - for active in $activetty; do - # If indexes do match then enable the serial console. - if [ $active -eq $runtime_tty ] - then - if [ -c /dev/$2 ] - then - /sbin/getty -L $1 $2 $3 - fi - break - fi - done - fi -done - -# Restore $IFS. -IFS=$DEFAULT_IFS +${setsid:-} ${getty} ${options:-} -L $SPEED $DEVICE $TERM diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb index 5b9c422caf..6ff2ca1bf4 100644 --- a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb +++ b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb @@ -1,13 +1,13 @@ SUMMARY = "Inittab configuration for SysVinit" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" -PR = "r10" SRC_URI = "file://inittab \ file://start_getty" -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" INHIBIT_DEFAULT_DEPS = "1" @@ -17,18 +17,19 @@ do_compile() { do_install() { install -d ${D}${sysconfdir} - install -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab + install -m 0644 ${S}/inittab ${D}${sysconfdir}/inittab install -d ${D}${base_bindir} - install -m 0755 ${WORKDIR}/start_getty ${D}${base_bindir}/start_getty + install -m 0755 ${S}/start_getty ${D}${base_bindir}/start_getty + sed -e 's,/usr/bin,${bindir},g' -i ${D}${base_bindir}/start_getty - set -x - tmp="${SERIAL_CONSOLES}" - for i in $tmp + CONSOLES="${SERIAL_CONSOLES}" + for s in $CONSOLES do - j=`echo ${i} | sed s/\;/\ /g` - l=`echo ${i} | sed -e 's/tty//' -e 's/^.*;//' -e 's/;.*//'` - label=`echo $l | sed 's/.*\(....\)/\1/'` - echo "$label:12345:respawn:${base_bindir}/start_getty ${j} vt102" >> ${D}${sysconfdir}/inittab + speed=$(echo $s | cut -d\; -f 1) + device=$(echo $s | cut -d\; -f 2) + label=$(echo $device | sed -e 's/tty//' | tail --bytes=5) + + echo "$label:12345:respawn:${sbindir}/ttyrun $device ${base_bindir}/start_getty $speed $device vt102" >> ${D}${sysconfdir}/inittab done if [ "${USE_VT}" = "1" ]; then @@ -52,39 +53,15 @@ EOF fi } -pkg_postinst_${PN} () { -# run this on the target -if [ "x$D" = "x" ] && [ -e /proc/consoles ]; then - tmp="${SERIAL_CONSOLES_CHECK}" - for i in $tmp - do - j=`echo ${i} | sed -e s/^.*\;//g -e s/\:.*//g` - k=`echo ${i} | sed s/^.*\://g` - if [ -z "`grep ${j} /proc/consoles`" ]; then - if [ -z "${k}" ] || [ -z "`grep ${k} /proc/consoles`" ] || [ ! -e /dev/${j} ]; then - sed -i -e /^.*${j}\ /d -e /^.*${j}$/d /etc/inittab - fi - fi - done - kill -HUP 1 -else - if [ "${SERIAL_CONSOLES_CHECK}" = "" ]; then - exit 0 - else - exit 1 - fi -fi -} - # USE_VT and SERIAL_CONSOLES are generally defined by the MACHINE .conf. # Set PACKAGE_ARCH appropriately. PACKAGE_ARCH = "${MACHINE_ARCH}" -FILES_${PN} = "${sysconfdir}/inittab ${base_bindir}/start_getty" -CONFFILES_${PN} = "${sysconfdir}/inittab" +FILES:${PN} = "${sysconfdir}/inittab ${base_bindir}/start_getty" +CONFFILES:${PN} = "${sysconfdir}/inittab" USE_VT ?= "1" SYSVINIT_ENABLED_GETTYS ?= "1" - - +RDEPENDS:${PN} = "ttyrun" +RCONFLICTS:${PN} = "busybox-inittab" 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-2.88dsf/install.patch b/meta/recipes-core/sysvinit/sysvinit/install.patch index 6c4225a678..bc6d493c2b 100644 --- a/meta/recipes-core/sysvinit/sysvinit-2.88dsf/install.patch +++ b/meta/recipes-core/sysvinit/sysvinit/install.patch @@ -1,10 +1,19 @@ -Upstream-Status: Pending +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 e2b8028..3e11e92 100644 +index 1b368dc..5b1a5a2 100644 --- a/src/Makefile +++ b/src/Makefile -@@ -65,7 +65,14 @@ else +@@ -77,7 +77,14 @@ else INSTALL_DATA = install -m 644 endif INSTALL_DIR = install -m 755 -d @@ -20,10 +29,10 @@ index e2b8028..3e11e92 100644 ifeq ($(WITH_SELINUX),yes) SELINUX_DEF = -DWITH_SELINUX -@@ -138,39 +145,39 @@ clobber: cleanobjs +@@ -191,43 +198,43 @@ clobber: cleanobjs distclean: clobber - install: + install: all - $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/ - $(INSTALL_DIR) $(ROOT)/usr/bin/ + $(INSTALL_DIR) $(ROOT)$(base_bindir)/ $(ROOT)$(base_sbindir)/ @@ -40,16 +49,15 @@ index e2b8028..3e11e92 100644 - $(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \ + $(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \ done -- # $(INSTALL_DIR) $(ROOT)/etc/ -- # $(INSTALL_EXEC) initscript.sample $(ROOT)/etc/ + # $(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; \ -+ # $(INSTALL_DIR) $(ROOT)$(sysconfdir)/ -+ # $(INSTALL_EXEC) 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 @@ -67,17 +75,23 @@ index e2b8028..3e11e92 100644 + $(INSTALL_DIR) $(ROOT)$(mandir)/man1/ + $(INSTALL_DIR) $(ROOT)$(mandir)/man5/ + $(INSTALL_DIR) $(ROOT)$(mandir)/man8/ - for i in $(MAN1); do \ -- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man1/; \ -+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man1/; \ + 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 i in $(MAN5); do \ -- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man5/; \ -+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man5/; \ + 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 i in $(MAN8); do \ -- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man8/; \ -+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man8/; \ + 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-2.88dsf/pidof-add-m-option.patch b/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch index 5b5dfdc001..8ef292ed12 100644 --- a/meta/recipes-core/sysvinit/sysvinit-2.88dsf/pidof-add-m-option.patch +++ b/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch @@ -1,4 +1,7 @@ -pidof: add -m option +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 @@ -7,29 +10,31 @@ each other's pids. https://bugzilla.redhat.com/show_bug.cgi?id=883856 -Upstream-Status: backport +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 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- + 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 -@@ -24,6 +24,7 @@ pidof -- find the process ID of a running program. - .RB [ \-c ] +@@ -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..] ] + .IR omitpid[,omitpid...] ] .RB [ \-o -@@ -63,6 +64,11 @@ shells running the named scripts. +@@ -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 \fIpidof\fP + 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 @@ -40,10 +45,10 @@ diff --git a/man/pidof.8 b/man/pidof.8 .TP .B 0 diff --git a/src/killall5.c b/src/killall5.c -index 5937d98..e73885e 100644 +index b0728fa..72289e3 100644 --- a/src/killall5.c +++ b/src/killall5.c -@@ -118,6 +118,7 @@ typedef struct _s_nfs +@@ -121,6 +121,7 @@ typedef struct _s_nfs /* List of processes. */ PROC *plist; @@ -51,7 +56,7 @@ index 5937d98..e73885e 100644 /* List of processes to omit. */ OMIT *omit; -@@ -345,6 +346,20 @@ static void clear_mnt(void) +@@ -356,6 +357,20 @@ static void clear_mnt(void) } } @@ -70,17 +75,17 @@ index 5937d98..e73885e 100644 +} + /* - * Check if path is ia shadow off a NFS partition. + * Check if path is a shadow off a NFS partition. */ -@@ -452,6 +467,7 @@ int readproc(int do_stat) +@@ -481,6 +496,7 @@ int readproc() DIR *dir; FILE *fp; PROC *p, *n; + OMIT *o, *m; struct dirent *d; - struct stat st; char path[PATH_MAX+1]; -@@ -624,6 +640,17 @@ int readproc(int do_stat) + char buf[PATH_MAX+1]; +@@ -670,6 +686,17 @@ int readproc() p->next = plist; plist = p; p->pid = pid; @@ -98,7 +103,7 @@ index 5937d98..e73885e 100644 } closedir(dir); -@@ -813,6 +840,26 @@ PIDQ_HEAD *pidof(char *prog) +@@ -870,6 +897,26 @@ PIDQ_HEAD *pidof(char *prog) return q; } @@ -125,42 +130,42 @@ index 5937d98..e73885e 100644 /* Give usage message and exit. */ void usage(void) { -@@ -845,6 +892,7 @@ void nsyslog(int pri, char *fmt, ...) - #define PIDOF_SINGLE 0x01 +@@ -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. -@@ -861,6 +909,7 @@ int main_pidof(int argc, char **argv) - struct stat st; +@@ -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; -@@ -868,7 +917,7 @@ int main_pidof(int argc, char **argv) +@@ -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,"hco:sxn")) != EOF) switch (opt) { -+ while ((opt = getopt(argc,argv,"hcmo:sxn")) != EOF) switch (opt) { +- 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(); -@@ -907,6 +956,9 @@ int main_pidof(int argc, char **argv) - case 'x': - scripts_too++; - break; +@@ -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; -@@ -938,10 +990,13 @@ int main_pidof(int argc, char **argv) +@@ -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) { @@ -176,14 +181,11 @@ index 5937d98..e73885e 100644 } /* -@@ -977,6 +1032,7 @@ int main_pidof(int argc, char **argv) - if (!first) +@@ -1071,6 +1126,7 @@ int main_pidof(int argc, char **argv) printf("\n"); + } + clear_omit(); clear_mnt(); closelog(); --- -1.8.1.2 - 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 diff --git a/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit_3.04.bb index 22a0ecf839..6a612468f3 100644 --- a/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb +++ b/meta/recipes-core/sysvinit/sysvinit_3.04.bb @@ -2,36 +2,40 @@ SUMMARY = "System-V like init" DESCRIPTION = "This package is required to boot in most configurations. It provides the /sbin/init program. This is the first process started on boot, and the last process terminated before the system halts." HOMEPAGE = "http://savannah.nongnu.org/projects/sysvinit/" SECTION = "base" -LICENSE = "GPLv2+" +LICENSE = "GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ - file://COPYRIGHT;endline=15;md5=349c872e0066155e1818b786938876a4" -PR = "r14" + file://COPYRIGHT;endline=15;md5=a1d3b3526501d3546d530bbe6ab6cdbe \ + " -RDEPENDS_${PN} = "${PN}-inittab" +RDEPENDS:${PN} = "${PN}-inittab" -SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.bz2 \ +SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.xz \ file://install.patch \ file://crypt-lib.patch \ file://pidof-add-m-option.patch \ - file://0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch \ file://realpath.patch \ + file://0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch \ + file://sysvinit_remove_linux_fs.patch \ file://rcS-default \ file://rc \ file://rcS \ file://bootlogd.init \ file://01_bootlogd \ -" - -SRC_URI[md5sum] = "6eda8a97b86e0a6f59dabbf25202aa6f" -SRC_URI[sha256sum] = "60bbc8c1e1792056e23761d22960b30bb13eccc2cabff8c7310a01f4d5df1519" + file://0001-hddown-include-libgen.h-for-basename-API.patch \ + " +SRC_URI[sha256sum] = "2a621fe6e4528bc91308b74867ddaaebbdf7753f02395c0c5bae817bd2b7e3a5" S = "${WORKDIR}/sysvinit-${PV}" -B = "${S}/src" -inherit update-alternatives -DEPENDS_append = " update-rc.d-native base-passwd" +inherit update-alternatives features_check +DEPENDS:append = " update-rc.d-native base-passwd virtual/crypt" +do_package_setscene[depends] = "${MLPREFIX}base-passwd:do_populate_sysroot" + +PACKAGECONFIG[psplash-text-updates] = ",," -ALTERNATIVE_${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall" +REQUIRED_DISTRO_FEATURES = "sysvinit" + +ALTERNATIVE:${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall" ALTERNATIVE_PRIORITY = "200" @@ -47,13 +51,13 @@ ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown" ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff" -ALTERNATIVE_${PN}-pidof = "pidof" +ALTERNATIVE:${PN}-pidof = "pidof" ALTERNATIVE_LINK_NAME[pidof] = "${base_bindir}/pidof" -ALTERNATIVE_${PN}-sulogin = "sulogin" +ALTERNATIVE:${PN}-sulogin = "sulogin" ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin" -ALTERNATIVE_${PN}-doc = "mountpoint.1 last.1 lastb.1 mesg.1 wall.1 sulogin.8 utmpdump.1" +ALTERNATIVE:${PN}-doc = "mountpoint.1 last.1 lastb.1 mesg.1 wall.1 sulogin.8 utmpdump.1" ALTERNATIVE_LINK_NAME[last.1] = "${mandir}/man1/last.1" ALTERNATIVE_LINK_NAME[lastb.1] = "${mandir}/man1/lastb.1" @@ -64,13 +68,13 @@ ALTERNATIVE_LINK_NAME[utmpdump.1] = "${mandir}/man1/utmpdump.1" ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1" PACKAGES =+ "sysvinit-pidof sysvinit-sulogin" -FILES_${PN} += "${base_sbindir}/* ${base_bindir}/*" -FILES_sysvinit-pidof = "${base_bindir}/pidof.sysvinit ${base_sbindir}/killall5" -FILES_sysvinit-sulogin = "${base_sbindir}/sulogin.sysvinit" +FILES:${PN} += "${base_sbindir}/* ${base_bindir}/*" +FILES:sysvinit-pidof = "${base_bindir}/pidof.sysvinit ${base_sbindir}/killall5" +FILES:sysvinit-sulogin = "${base_sbindir}/sulogin.sysvinit" -RDEPENDS_${PN} += "sysvinit-pidof initd-functions" +RDEPENDS:${PN} += "sysvinit-pidof initd-functions base-passwd" -CFLAGS_prepend = "-D_GNU_SOURCE " +CFLAGS:prepend = "-D_GNU_SOURCE " export LCRYPT = "-lcrypt" EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \ 'base_sbindir=${base_sbindir}' \ @@ -78,7 +82,8 @@ EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \ 'sbindir=${sbindir}' \ 'sysconfdir=${sysconfdir}' \ 'includedir=${includedir}' \ - 'mandir=${mandir}'" + 'mandir=${mandir}' \ + MNTPOINT=yes" do_install () { oe_runmake 'ROOT=${D}' install @@ -90,7 +95,10 @@ do_install () { install -d ${D}${sysconfdir}/rc$level.d done - install -m 0644 ${WORKDIR}/rcS-default ${D}${sysconfdir}/default/rcS + sed -e \ + 's:#PSPLASH_TEXT#:${@bb.utils.contains("PACKAGECONFIG","psplash-text-updates","yes","no", d)}:g' \ + ${WORKDIR}/rcS-default > ${D}${sysconfdir}/default/rcS + chmod 0644 ${D}${sysconfdir}/default/rcS install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd @@ -102,11 +110,10 @@ do_install () { install -d ${D}${sysconfdir}/default/volatiles install -m 0644 ${WORKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles - chown root.shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown + chown root:shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown -} -python () { - if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): - raise bb.parse.SkipPackage("'sysvinit' not in DISTRO_FEATURES") + # Already provided by e2fsprogs; sysvinit's version is a copy from there + rm ${D}${base_sbindir}/logsave + rm ${D}${mandir}/man8/logsave.8 } |