On Fri, 2007-03-09 at 07:39 +0000, Roy Marples wrote:
> On Thu, 08 Mar 2007 16:00:50 -0800
> Ned Ludd <[EMAIL PROTECTED]> 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 -- \"[EMAIL PROTECTED]""
>                 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.

Gimme bugs.. I need #'s if I'm going to work toward solving 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 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.



> 
> 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)


> 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 <[EMAIL PROTECTED]>
Gentoo Linux

-- 
[email protected] mailing list

Reply via email to