On Tue, Jan 22, 2013 at 2:22 PM, Thomas de Roo <tho...@de-roo.org> wrote: > On 01/22/13 21:51, Baho Utot wrote: >> On 01/22/2013 02:18 PM, Thomas de Roo wrote: >>> On 01/22/13 18:32, Bruce Dubbs wrote: >>>> Bruce Dubbs wrote: >>>>> Thomas de Roo wrote: >>>>> >>>>>> OK, so I checked again. I issued >>>>>> >>>>>> cd /bin >>>>>> ln -s dash sh >>>>>> >>>>>> and rebooted. A lot of the bootscripts fail, both LFS and BLFS, from >>>>>> blfs-bootscripts-20120828 and lfs-bootscripts-20121013. So I suspect >>>>>> /lib/services/init-functions. For the log, see >>>>>> http://pastebin.com/k0b3RiD6. >>>>> OK, I'll take a closer look. A reboot should not be required though. >>>>> Just running one of the scripts should duplicate the problem. I can't >>>>> look tonight, but I'll look tomorrow. >>>> This impacts lfs too so I'm copying the lfs-dev list. >>>> >>>> There are a couple of issues with dash and the lfs bootscripts. >>>> >>>> First, dash does not like the construct: >>>> >>>> local logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` >>>> >>>> That's easy enough to fix by removing local. There are 5 instances of >>>> this, and the local part is not really required by the code logic. >>>> >>>> The other issue is that dash has a built-in echo command that is >>>> different from both bash and /bin/echo. The -e parameter is not >>>> recognized. This doesn't stop the script but does result in an >>>> unintended "-e" being printed. >>>> >>>> I tried specifying init-functions with /bin/bash, but that's ignored >>>> when the calling script is dash. >>>> >>>> There are 21 places in the init-functions that use echo -e, so I suppose >>>> we could to prepend /bin/ to these echo commands, but is more overhead. >>>> That overhead may be negligible though. >>>> >>>> These scripts have been working since about September 2011 (16 months) >>>> and this is the first complaint. >>>> >>>> I'm actually more inclined to put a note in BLFS that making sh -> dash >>>> breaks the bootscripts so don't do it. Marking all bootscripts as >>>> /bin/bash is another option, but that leaves out potential non-LFS >>>> bootscripts. >>>> >>>> Thoughts? >>>> >>>> -- Bruce >>> I would like a warning in the book instead of the current remark - so if >>> I want to link sh to dash, I know I can expect a challenge ;) "Don't do >>> it" is a but too harsh, I think. Figuring out how to implement this >>> deviation from the book (your distro, your rules) is what LFS is about! >>> >>> Groet, >>> Thomas >> why not leaving the shell as bash and then using dash for your shell as >> a user if you want to use dash? >> Just need to set the shell in /etc/passwd to dash. That way the system >> boots fine and the "user" gets dash if they want. >> > I'm afraid you're missing my original point: the book now suggests to > make a sh->dash link. That suggestion should be altered. > > Groet, > Thomas > -- > http://linuxfromscratch.org/mailman/listinfo/blfs-support > FAQ: http://www.linuxfromscratch.org/blfs/faq.html > Unsubscribe: See the above information page
If we use #!/bin/sh, then we should be compatible with sh. If we do want to use bash syntax, we should be using #!/bin/bash I opted to keep #!/bin/sh in the bootscripts originally, as there was minimal benefit to breaking compatibility with sh at the time. Also used to use ash/dash as /bin/sh, but I had not been testing that configuration for a few years. Anyway, the two options I put forward, are to use #!/bin/bash in the bootscripts, or fix compatibility with dash. -- Nathan Coulson (conathan) ------ Location: British Columbia, Canada Timezone: PST (-8) Webpage: http://www.nathancoulson.com -- http://linuxfromscratch.org/mailman/listinfo/blfs-support FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page