[OE-core] [PATCH] lsb: Remove bashisms from the rc.d functions
Marek Vasut
marex at denx.de
Fri Apr 7 22:41:36 UTC 2017
On 04/08/2017 12:31 AM, Richard Purdie wrote:
> On Fri, 2017-04-07 at 23:55 +0200, Marek Vasut wrote:
>> This bashism prevents functions from working on systems without bash,
>> ie. on systems with busybox shell or debian dash. Replace them with
>> bourne-compatible command instead.
>
> Note that you'd code adds in a couple of forks for code which currently
> doesn't need separate process execution. Its therefore not a clear cut
> win. Is there no way to do it without the forks in dash?
Well do you know of any bourne-compatible way ? I'll be happy to learn
something new ...
> Cheers,
>
> Richard
>
>> Signed-off-by: Marek Vasut <marex at denx.de>
>> Cc: Ross Burton <ross.burton at intel.com>
>> Cc: Richard Purdie <richard.purdie at linuxfoundation.org>
>> ---
>> .../0002-rc.d-Remove-bashism-from-functions.patch | 48
>> ++++++++++++++++++++++
>> meta/recipes-extended/lsb/lsbinitscripts_9.68.bb | 1 +
>> 2 files changed, 49 insertions(+)
>> create mode 100644 meta/recipes-extended/lsb/lsbinitscripts/0002-
>> rc.d-Remove-bashism-from-functions.patch
>>
>> diff --git a/meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d-
>> Remove-bashism-from-functions.patch b/meta/recipes-
>> extended/lsb/lsbinitscripts/0002-rc.d-Remove-bashism-from-
>> functions.patch
>> new file mode 100644
>> index 0000000000..44eed1cc18
>> --- /dev/null
>> +++ b/meta/recipes-extended/lsb/lsbinitscripts/0002-rc.d-Remove-
>> bashism-from-functions.patch
>> @@ -0,0 +1,48 @@
>> +From b7601dcd4663a9cb936a6d2d224665bea69fcc50 Mon Sep 17 00:00:00
>> 2001
>> +From: Marek Vasut <marex at denx.de>
>> +Date: Thu, 6 Apr 2017 19:15:56 +0200
>> +Subject: [PATCH] rc.d: Remove bashism from functions
>> +
>> +This bashism prevents functions from working on systems without
>> bash,
>> +ie. on systems with busybox shell or debian dash. Replace them with
>> +bourne-compatible command instead.
>> +
>> +Signed-off-by: Marek Vasut <marex at denx.de>
>> +---
>> + rc.d/init.d/functions | 9 ++-------
>> + 1 file changed, 2 insertions(+), 7 deletions(-)
>> +
>> +diff --git a/rc.d/init.d/functions b/rc.d/init.d/functions
>> +index 746b37d..3ba21ef 100644
>> +--- a/rc.d/init.d/functions
>> ++++ b/rc.d/init.d/functions
>> +@@ -115,15 +115,11 @@ __kill_pids_term_kill_checkpids() {
>> + local pid=
>> + local pids=$*
>> + local remaining=
>> +- local stat=
>> + local stime=
>> +
>> + for pid in $pids ; do
>> + [ ! -e "/proc/$pid" ] && continue
>> +- read -r line < "/proc/$pid/stat" 2> /dev/null
>> +-
>> +- stat=($line)
>> +- stime=${stat[21]}
>> ++ stime=`cut -d " " -f 22 < /proc/self/stat`
>> +
>> + [ -n "$stime" ] && [ "$base_stime" -lt "$stime" ] &&
>> continue
>> + remaining+="$pid "
>> +@@ -139,8 +135,7 @@ __kill_pids_term_kill() {
>> + local try=0
>> + local delay=3;
>> + local pid=
>> +- local stat=($(< /proc/self/stat))
>> +- local base_stime=${stat[21]}
>> ++ local base_stime=`cut -d " " -f 22 < /proc/self/stat`
>> +
>> + if [ "$1" = "-d" ]; then
>> + delay=$2
>> +--
>> +2.11.0
>> +
>> diff --git a/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb
>> b/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb
>> index 0c08fffcef..9ba0e01776 100644
>> --- a/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb
>> +++ b/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb
>> @@ -11,6 +11,7 @@ S="${WORKDIR}/initscripts-${PV}"
>> SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/initscripts/inits
>> cripts-${PV}.tar.bz2/6a51a5af38e01445f53989ed0727c3e1/initscripts-
>> ${PV}.tar.bz2 \
>> file://functions.patch \
>> file://0001-functions-avoid-exit-1-which-causes-init-
>> scripts-to-.patch \
>> + file://0002-rc.d-Remove-bashism-from-functions.patch \
>> "
>>
>> SRC_URI[md5sum] = "6a51a5af38e01445f53989ed0727c3e1"
--
Best regards,
Marek Vasut
More information about the Openembedded-core
mailing list