Remove bash dependency for nscd init script

Message ID 20211202070658.2164977-1-raj.khem@gmail.com
State Superseded
Headers
Series Remove bash dependency for nscd init script |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Khem Raj Dec. 2, 2021, 7:06 a.m. UTC
  The nscd init script uses #! /bin/bash but only really uses one bashism
(translated strings), so remove them and switch the shell to #!/bin/sh.

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 nscd/nscd.init | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
  

Comments

Florian Weimer Dec. 2, 2021, 3:40 p.m. UTC | #1
* Khem Raj via Libc-alpha:

> The nscd init script uses #! /bin/bash but only really uses one bashism
> (translated strings), so remove them and switch the shell to #!/bin/sh.
>
> Signed-off-by: Ross Burton <ross.burton@intel.com>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  nscd/nscd.init | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/nscd/nscd.init b/nscd/nscd.init
> index a882da7d8b..b02986ec15 100644
> --- a/nscd/nscd.init
> +++ b/nscd/nscd.init
> @@ -1,4 +1,4 @@
> -#!/bin/bash
> +#!/bin/sh
>  #
>  # nscd:		Starts the Name Switch Cache Daemon
>  #
> @@ -49,7 +49,7 @@ prog=nscd
>  start () {
>      [ -d /var/run/nscd ] || mkdir /var/run/nscd
>      [ -d /var/db/nscd ] || mkdir /var/db/nscd
> -    echo -n $"Starting $prog: "
> +    echo -n "Starting $prog: "

I believe “echo -n” is still a bashim.  The current-POSIX portable
solution is to use printf.  But “echo -n” might actually be *more*
portable than printf in practice.

Thanks,
Florian
  
Khem Raj Dec. 2, 2021, 3:54 p.m. UTC | #2
On Thu, Dec 2, 2021 at 7:40 AM Florian Weimer <fweimer@redhat.com> wrote:
>
> * Khem Raj via Libc-alpha:
>
> > The nscd init script uses #! /bin/bash but only really uses one bashism
> > (translated strings), so remove them and switch the shell to #!/bin/sh.
> >
> > Signed-off-by: Ross Burton <ross.burton@intel.com>
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > ---
> >  nscd/nscd.init | 14 +++++++-------
> >  1 file changed, 7 insertions(+), 7 deletions(-)
> >
> > diff --git a/nscd/nscd.init b/nscd/nscd.init
> > index a882da7d8b..b02986ec15 100644
> > --- a/nscd/nscd.init
> > +++ b/nscd/nscd.init
> > @@ -1,4 +1,4 @@
> > -#!/bin/bash
> > +#!/bin/sh
> >  #
> >  # nscd:              Starts the Name Switch Cache Daemon
> >  #
> > @@ -49,7 +49,7 @@ prog=nscd
> >  start () {
> >      [ -d /var/run/nscd ] || mkdir /var/run/nscd
> >      [ -d /var/db/nscd ] || mkdir /var/db/nscd
> > -    echo -n $"Starting $prog: "
> > +    echo -n "Starting $prog: "
>
> I believe “echo -n” is still a bashim.  The current-POSIX portable
> solution is to use printf.  But “echo -n” might actually be *more*
> portable than printf in practice.

The fix is used to make it work with busybox shell and therefore not
tried to clean
full bash specific stuff.

>
> Thanks,
> Florian
>
  
Zack Weinberg Dec. 2, 2021, 5:40 p.m. UTC | #3
On Thu, Dec 2, 2021, at 10:40 AM, Florian Weimer via Libc-alpha wrote:
> * Khem Raj via Libc-alpha:
>
>> The nscd init script uses #! /bin/bash but only really uses one bashism
>> (translated strings), so remove them and switch the shell to #!/bin/sh
>
> I believe “echo -n” is still a bashim.  The current-POSIX portable
> solution is to use printf.  But “echo -n” might actually be *more*
> portable than printf in practice.

printf(1) is reliable enough in practice that autoconf scripts now use it unconditionally (as of 2.70).

zw
  
Florian Weimer Dec. 2, 2021, 6:57 p.m. UTC | #4
* Khem Raj:

> On Thu, Dec 2, 2021 at 7:40 AM Florian Weimer <fweimer@redhat.com> wrote:
>>
>> * Khem Raj via Libc-alpha:
>>
>> > The nscd init script uses #! /bin/bash but only really uses one bashism
>> > (translated strings), so remove them and switch the shell to #!/bin/sh.
>> >
>> > Signed-off-by: Ross Burton <ross.burton@intel.com>
>> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> > ---
>> >  nscd/nscd.init | 14 +++++++-------
>> >  1 file changed, 7 insertions(+), 7 deletions(-)
>> >
>> > diff --git a/nscd/nscd.init b/nscd/nscd.init
>> > index a882da7d8b..b02986ec15 100644
>> > --- a/nscd/nscd.init
>> > +++ b/nscd/nscd.init
>> > @@ -1,4 +1,4 @@
>> > -#!/bin/bash
>> > +#!/bin/sh
>> >  #
>> >  # nscd:              Starts the Name Switch Cache Daemon
>> >  #
>> > @@ -49,7 +49,7 @@ prog=nscd
>> >  start () {
>> >      [ -d /var/run/nscd ] || mkdir /var/run/nscd
>> >      [ -d /var/db/nscd ] || mkdir /var/db/nscd
>> > -    echo -n $"Starting $prog: "
>> > +    echo -n "Starting $prog: "
>>
>> I believe “echo -n” is still a bashim.  The current-POSIX portable
>> solution is to use printf.  But “echo -n” might actually be *more*
>> portable than printf in practice.
>
> The fix is used to make it work with busybox shell and therefore not
> tried to clean full bash specific stuff.

Fair enough, incremental changes are welcome.  But please adjust the
commit message. 8-)

Thanks,
Florian
  

Patch

diff --git a/nscd/nscd.init b/nscd/nscd.init
index a882da7d8b..b02986ec15 100644
--- a/nscd/nscd.init
+++ b/nscd/nscd.init
@@ -1,4 +1,4 @@ 
-#!/bin/bash
+#!/bin/sh
 #
 # nscd:		Starts the Name Switch Cache Daemon
 #
@@ -49,7 +49,7 @@  prog=nscd
 start () {
     [ -d /var/run/nscd ] || mkdir /var/run/nscd
     [ -d /var/db/nscd ] || mkdir /var/db/nscd
-    echo -n $"Starting $prog: "
+    echo -n "Starting $prog: "
     daemon /usr/sbin/nscd
     RETVAL=$?
     echo
@@ -58,7 +58,7 @@  start () {
 }
 
 stop () {
-    echo -n $"Stopping $prog: "
+    echo -n "Stopping $prog: "
     /usr/sbin/nscd -K
     RETVAL=$?
     if [ $RETVAL -eq 0 ]; then
@@ -67,9 +67,9 @@  stop () {
 	# a non-privileged user
 	rm -f /var/run/nscd/nscd.pid
 	rm -f /var/run/nscd/socket
-       	success $"$prog shutdown"
+	success "$prog shutdown"
     else
-       	failure $"$prog shutdown"
+	failure "$prog shutdown"
     fi
     echo
     return $RETVAL
@@ -103,13 +103,13 @@  case "$1" in
 	RETVAL=$?
 	;;
     force-reload | reload)
-    	echo -n $"Reloading $prog: "
+	echo -n "Reloading $prog: "
 	killproc /usr/sbin/nscd -HUP
 	RETVAL=$?
 	echo
 	;;
     *)
-	echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
+	echo "Usage: $0 {start|stop|status|restart|reload|condrestart}"
 	RETVAL=1
 	;;
 esac