Re: init.d scripts and bash
On Fri, 2007-03-09 at 01:08 -0800, Ned Ludd wrote:
> On Fri, 2007-03-09 at 07:39 +0000, Roy Marples wrote:
> > On Thu, 08 Mar 2007 16:00:50 -0800
> > Ned Ludd <solar@...> wrote:
> >
> > > On Thu, 2007-03-08 at 17:00 +0100, Natanael Copa wrote:
> > > > Hi,
> > > >
> > > > Are there anybody more than me that use the gentoo init.d scripts
> > > > without using bash?
> > > >
> > > > Most init.d scripts runs just fine with a small runscript wrapper.
> > > > A few needs patching to work, typically replacing:
> > > >
> > > > [[ expr || expr ]]
> > > >
> > > > with:
> > > >
> > > > [[ expr ]] || [[ expr ]]
> >
> > Well, not many shells support that either.
> > [ expr -o expr ]
> > or
> > [ expr ] || [ expr]
> > should work across the board.
> >
> > > > But sometimes arrays and such are used (very often its easy to work
> > > > around)
> >
> > Yes it's easy to work around.
> > Infact we had a discussion about this on -dev and posted the below
> > function
> >
> > _get_array() {
> > if [ -n "${BASH}" ] ; then
> > case "$(declare -p "$1" 2>/dev/null)" in
> > "declare -a "*)
> > echo "set -- \"\${$1[@]}\""
> > return
> > ;;
> > esac
> > fi
> >
> > echo "eval set -- \"\$$1\""
> > }
> >
> > eval "$(_get_array "config_${IFVAR}")"
> > for cmd in "$@" ; do
> > ...
> > done
> >
> > Which means we can support bash arrays AND a non bash array
> > config_eth0=( "one" "t w o" "three" )
> > and
> > config_eth0="'one' 't w o' 'three'"
> >
> > > >
> > > > Are there any hope for setting a gentoo policy that says bash
> > > > specific things should be avoided if possible in init.d scripts?
> >
> > There's no such policy. Our policy has always been init scripts should
> > be parseable by a shell. The shell in question has always been bash
> > because
> > 1) baselayout-1 requires it
> > 2) bash forces itself to be /bin/sh anyway
> >
> > The lastest bash in the tree no longer enforces it's /bin/sh - instead
> > it only creates the link if it does not exist, allowing any shell to be
> > used. Yay!
>
>
> Sweet ass sweet...
>
> I'm sure it will take time to get 99% of the misc remaining bash init
> scripts converted over as we find them. If we mostly target server stuff
> for now we will be fine..
>
> > > That is a goal with baselayout-2. I'd be interested if we started a
> > > tracker bug for such things. I think policy might be a bit far
> > > reaching at this point. But it's for sure a worthwhile goal.
> >
> > baselayout-2 is pure C (except for the init scripts themselves) and is
> > nearing the final stage of development before it enters the tree. It
> > currently works with any shell in portage except for zsh and ksh. It
> > can work with bb provided that some things are disabled.
Sweeeet!!!!
How can I getting envolved in the baselayout-2 development?
> Gimme bugs.. I need #'s if I'm going to work toward solving them.
I have a bunch of of them and patches too. I will start reporting them.
> I'd rather not disable vs update bb to conform with what you need.
> Removing our s-s-d for us is very undesirable as long as we have an
> alternative to the current bloated s-s-d. So please give us bugs
> to work towards solving etc..
I'm not sure I understood. Bugs where use of s-s-d dont work with
busybox s-s-d? They are few. I patched busybox s-s-d to support --chuid
user:group and the problems I had went away.
I think there is still need to fix the verbosity of busybox s-s-d. I
will look at it some day.
> I think Natanael might also become one of your best testers and bug
> reporters. He has been very helpful in the past and I'm sure he will
> continue to be in the future.
Looks like I will
My alpinelinux project (distro based on gentoo) is
going pretty well.
> > I'm making it a policy that all init scripts on my local machines have
> > already been changed. Naughty me. I've filed bugs for a few other
> > scripts too.
>
> Natanael please search bugzilla for scripts you have noticed in which
> Roy has not already filed bugs. If no bug exists please file one
> (patches attached if you can)
I have a bunch of patches. Will do!
> > So for a desktop it should work off the bat. Not sure if
> > I'll put baselayout-2 on my server right now as it's headless and it's a
> > PITA to get a head to it.
> >
> > Once baselayout-2 hits portage then we can have a tracker bug.
> >
> > Thanks
> >
> > Roy
> >
> --
> Ned Ludd <solar@...>
> Gentoo Linux
>