tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Implement dash as bootstrap shell



On Sat, 5 Dec 2015 08:03:40 +0000
Jonathan Perkin <jperkin%joyent.com@localhost> wrote:

> * On 2015-12-05 at 06:41 GMT, Tobias Nygren wrote:
> 
> > On Fri, 4 Dec 2015 22:04:04 +0000
> > Jonathan Perkin <jperkin%joyent.com@localhost> wrote:
> > 
> > > I'd like to make shells/dash a bootstrap shell, with the aim of
> > > eventually replacing shells/pdksh.  This commit adds initial support,
> > > adding a --with-dash bootstrap argument to enable it.
> > > 
> > >   https://github.com/joyent/pkgsrc/commit/6173446
> > > 
> > > The primary motivation is twofold:
> > > 
> > >  - shells/pdksh is horribly broken, with intermittent failures on at
> > >    least SunOS.
> > > 
> > >  - shells/dash is significantly faster than bash, the default shell on
> > >    a number of platforms.
> > > 
> > > I've been running variations of this diff in bulk builds for a while
> > > now, and dash is only a few packages behind the bash-based builds due
> > > to some non-POSIX constructs.  It has been tested on illumos, Solaris
> > > 9, and OSX with and without --with-dash.  Some older bulk build
> > > results that I performed with various shells are here:
> > > 
> > >   https://gist.github.com/jperkin/992c375d067c8960541d
> > > 
> > > The only change that could possibly affect users will be the addition
> > > of:
> > > 
> > >   CONFIGURE_ARGS+= --with-defshell=${TOOLS_PLATFORM.sh}
> > > 
> > > to the default set in devel/bmake, to accommodate the selection of a
> > > bootstrap shell.  In theory this shouldn't cause any problems, and any
> > > issues that do occur due to it are likely to be real bugs that need
> > > fixing anyway.
> > > 
> > > I'd like to get this in before the freeze to give users the chance to
> > > test it, and I'd certainly like to use it for our 2015Q4 package sets.
> > > 
> > > Opinions?
> > 
> > I'm in favor of this change. But personally I'd also remove the pdksh
> > bootstrap shell support. If we do want to permit ksh as an option we
> > should switch it from pdksh to mksh and build it like your patch does
> > for dash. So it might be a good idea to not hardcode dash in that code
> > but instead parametrize the package path and shell name.
> 
> Do we need ksh support?  We only ever define TOOLS_PLATFORM.ksh, I
> don't see it actually used anywhere.
> 
> The platforms which currently require pdksh are AIX and OSF1.  AIX is
> listed in the dash ChangeLog as being supported, but I have no idea
> about OSF1.  Maybe Sevan can perform his magic and get us an OSF1 host
> to test on? :)

No, I don't think we need ksh specifically for anything. pdksh was
chosen at the time primarily because it was small and portable. I will
test dash bootstrap on Tru64. If it does not work out of the box I'm
sure it will only be minor changes required to make it work.

-Tobias


Home | Main Index | Thread Index | Old Index