We have tried hard to remove exec/fork/subshell calls from the initOn Wed, 2014-07-23 at 09:49 -0500, Ben Shelton wrote:
> In the commit 'initscripts: save /etc/timestamp with seconds accuracy',
> a bashism was introduced in the bootmisc.sh script in the code to set
> the current date from the stored value in /etc/timestamp. This causes
> that operation to fail with the following message when /bin/sh is not
> bash:
>
> /etc/init.d/rc: /etc/rcS.d/S55bootmisc.sh: line 73: syntax error: bad substitution
>
> Fixed by using 'cut' (standard under POSIX) rather than bash-specific
> substring expansion.
>
> [YOCTO #6566]
>
> Signed-off-by: Ben Shelton <ben.shelton@ni.com>
> Tested-by: Maxin B. John <maxin.john@enea.com>
> ---
> meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh b/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
> index ccc7f9f..923fa88 100755
> --- a/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
> +++ b/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
> @@ -70,7 +70,10 @@ then
> read TIMESTAMP < /etc/timestamp
> if [ ${TIMESTAMP} -gt $SYSTEMDATE ]; then
> # format the timestamp as date expects it (2m2d2H2M4Y.2S)
> - date -u ${TIMESTAMP:4:8}${TIMESTAMP:0:4}.${TIMESTAMP:(-2)}
> + TS_YR=$(echo $TIMESTAMP | cut -c 1-4)
> + TS_SEC=$(echo $TIMESTAMP | cut -c 13-14)
> + TS_REST=$(echo $TIMESTAMP | cut -c 5-12)
> + date -u ${TS_REST}${TS_YR}.${TS_SEC}
> test -x /etc/init.d/hwclock.sh && /etc/init.d/hwclock.sh stop
> fi
> fi
processes since each one does cost quite some time. The above introduces
more than I'm comfortable with. Can we find some other way to do this
please?