diff options
Diffstat (limited to 'meta/recipes-core/sysvinit')
6 files changed, 72 insertions, 39 deletions
diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty b/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty index 699a1ead1a..f5671ee53d 100644 --- a/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty +++ b/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty @@ -1,5 +1,9 @@ #!/bin/sh +SPEED=$1 +DEVICE=$2 +TERM=$3 + # busybox' getty does this itself, util-linux' agetty needs extra help getty="/sbin/getty" case $(readlink -f "${getty}") in @@ -9,9 +13,8 @@ case $(readlink -f "${getty}") in if [ -x "/usr/bin/setsid" ] ; then setsid="/usr/bin/setsid" fi + options="" ;; esac -if [ -e /sys/class/tty/$2 -a -c /dev/$2 ]; then - ${setsid:-} ${getty} -L $1 $2 $3 -fi +${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 7aad2e2bf2..6bbe517df1 100644 --- a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb +++ b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb @@ -2,7 +2,6 @@ SUMMARY = "Inittab configuration for SysVinit" 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" @@ -22,14 +21,14 @@ do_install() { install -m 0755 ${WORKDIR}/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 @@ -53,33 +52,6 @@ EOF fi } -pkg_postinst:${PN} () { -# run this on host and on target -if [ "${SERIAL_CONSOLES_CHECK}" = "" ]; then - exit 0 -fi -} - -pkg_postinst_ontarget:${PN} () { -# run this on the target -if [ -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 - exit 1 -fi -} - # USE_VT and SERIAL_CONSOLES are generally defined by the MACHINE .conf. # Set PACKAGE_ARCH appropriately. PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -90,4 +62,5 @@ 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-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/install.patch b/meta/recipes-core/sysvinit/sysvinit/install.patch index 90563a6294..bc6d493c2b 100644 --- a/meta/recipes-core/sysvinit/sysvinit/install.patch +++ b/meta/recipes-core/sysvinit/sysvinit/install.patch @@ -3,7 +3,7 @@ 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: Pending +Upstream-Status: Submitted [https://github.com/slicer69/sysvinit/pull/13] --- src/Makefile | 53 +++++++++++++++++++++++++++++----------------------- 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_3.04.bb b/meta/recipes-core/sysvinit/sysvinit_3.04.bb index f678f65c1e..6a612468f3 100644 --- a/meta/recipes-core/sysvinit/sysvinit_3.04.bb +++ b/meta/recipes-core/sysvinit/sysvinit_3.04.bb @@ -15,11 +15,13 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.xz \ file://pidof-add-m-option.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 \ + file://0001-hddown-include-libgen.h-for-basename-API.patch \ " SRC_URI[sha256sum] = "2a621fe6e4528bc91308b74867ddaaebbdf7753f02395c0c5bae817bd2b7e3a5" |