All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Marek Vasut <marex@denx.de>, openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] lsb: Remove bashisms from the rc.d functions
Date: Fri, 07 Apr 2017 23:31:48 +0100	[thread overview]
Message-ID: <1491604308.17200.106.camel@linuxfoundation.org> (raw)
In-Reply-To: <20170407215501.31916-1-marex@denx.de>

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?

Cheers,

Richard

> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Ross Burton <ross.burton@intel.com>
> Cc: Richard Purdie <richard.purdie@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@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@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"


  parent reply	other threads:[~2017-04-07 22:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-07 21:55 [PATCH] lsb: Remove bashisms from the rc.d functions Marek Vasut
2017-04-07 22:02 ` ✗ patchtest: failure for lsb: Remove bashisms from the rc.d functions (rev2) Patchwork
2017-04-07 22:31 ` Richard Purdie [this message]
2017-04-07 22:41   ` [PATCH] lsb: Remove bashisms from the rc.d functions Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1491604308.17200.106.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --cc=marex@denx.de \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.