You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nutch.apache.org by Rod Taylor <rb...@sitesell.com> on 2006/01/27 15:23:19 UTC
Re: svn commit: r372810 - /lucene/nutch/trunk/bin/nutch
Please don't do that.
bash-2.05b$ ls /bin/bash
ls: /bin/bash: No such file or directory
bash-2.05b$ uname -a
FreeBSD home 6.0-RELEASE FreeBSD 6.0-RELEASE #13: Sat Nov 5
00:19:49 EST 2005 root@home:/usr/obj/usr/src/sys/HOME amd64
bash-2.05b$ ls /bin/*sh
/bin/csh /bin/sh /bin/tcsh
On Fri, 2006-01-27 at 10:45 +0000, cutting@apache.org wrote:
> Author: cutting
> Date: Fri Jan 27 02:45:35 2006
> New Revision: 372810
>
> URL: http://svn.apache.org/viewcvs?rev=372810&view=rev
> Log:
> Explicitly specify bash, since this script requires some bash-specific features.
>
> Modified:
> lucene/nutch/trunk/bin/nutch
>
> Modified: lucene/nutch/trunk/bin/nutch
> URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/bin/nutch?rev=372810&r1=372809&r2=372810&view=diff
> ==============================================================================
> --- lucene/nutch/trunk/bin/nutch (original)
> +++ lucene/nutch/trunk/bin/nutch Fri Jan 27 02:45:35 2006
> @@ -1,4 +1,4 @@
> -#!/bin/sh
> +#!/bin/bash
> #
> # The Nutch command script
> #
>
>
>
--
Rod Taylor <rb...@sitesell.com>
Re: svn commit: r372810 - /lucene/nutch/trunk/bin/nutch
Posted by Rod Taylor <rb...@sitesell.com>.
On Fri, 2006-01-27 at 13:37 -0800, Doug Cutting wrote:
> Andrzej Bialecki wrote:
> > #!/usr/bin/env bash
>
> +1
>
> This works on Solaris, Linux & cygwin. Does it work on FreeBSD?
Yes. It will fail on some older and obscure systems but I don't imagine
those will have a JVM anyway.
--
Rod Taylor <rb...@sitesell.com>
Re: svn commit: r372810 - /lucene/nutch/trunk/bin/nutch
Posted by Doug Cutting <cu...@nutch.org>.
Andrzej Bialecki wrote:
> #!/usr/bin/env bash
+1
This works on Solaris, Linux & cygwin. Does it work on FreeBSD?
Doug
Re: svn commit: r372810 - /lucene/nutch/trunk/bin/nutch
Posted by Andrzej Bialecki <ab...@getopt.org>.
Rod Taylor wrote:
>> The problem is that for 90% of the maintainers of this script, /bin/sh
>> is bash, so it is hard to ensure that the use of bash features does not
>> creep into it. Is installing bash on FreeBSD onerous? It is the
>>
>
> It is installed but the path is /usr/local/bin/bash like any other user
> installed package would be on FreeBSD.
>
Hmm. I believe we could solve it by the following incantation (typing
from memory...):
---------- cut here -------------
#!/bin/sh
BASH=`which bash`
if [ "X$BASH" = "X" ]
then
echo "This script requires Bash somewhere on your PATH"
exit -1
fi
/bin/true; exec $BASH "$0" "$@"
---------- cut here -------------
Or yet another incantation:
---------- cut here -------------
#!/usr/bin/env bash
---------- cut here -------------
Both versions require Bash to work properly, but it doesn't matter where
it's installed.
--
Best regards,
Andrzej Bialecki <><
___. ___ ___ ___ _ _ __________________________________
[__ || __|__/|__||\/| Information Retrieval, Semantic Web
___|||__|| \| || | Embedded Unix, System Integration
http://www.sigram.com Contact: info at sigram dot com
Re: svn commit: r372810 - /lucene/nutch/trunk/bin/nutch
Posted by Rod Taylor <rb...@sitesell.com>.
On Fri, 2006-01-27 at 10:34 -0800, Doug Cutting wrote:
> Rod Taylor wrote:
> > Please don't do that.
> >
> > bash-2.05b$ ls /bin/bash
> > ls: /bin/bash: No such file or directory
> >
> > bash-2.05b$ uname -a
> > FreeBSD home 6.0-RELEASE FreeBSD 6.0-RELEASE #13: Sat Nov 5
> > 00:19:49 EST 2005 root@home:/usr/obj/usr/src/sys/HOME amd64
> >
> > bash-2.05b$ ls /bin/*sh
> > /bin/csh /bin/sh /bin/tcsh
>
> Yes, the script would have run before, but it wouldn't have worked
> correctly. Now it fails with a clear reason: it requires bash. Perhaps
> we should go farther and remove the bash dependency. This change didn't
> break anything that wasn't already broken, nor fix anything. It simply
> made the failure mode more clear.
>
> The problem is that for 90% of the maintainers of this script, /bin/sh
> is bash, so it is hard to ensure that the use of bash features does not
> creep into it. Is installing bash on FreeBSD onerous? It is the
It is installed but the path is /usr/local/bin/bash like any other user
installed package would be on FreeBSD.
--
Rod Taylor <rb...@sitesell.com>
Re: svn commit: r372810 - /lucene/nutch/trunk/bin/nutch
Posted by Doug Cutting <cu...@nutch.org>.
Rod Taylor wrote:
> Please don't do that.
>
> bash-2.05b$ ls /bin/bash
> ls: /bin/bash: No such file or directory
>
> bash-2.05b$ uname -a
> FreeBSD home 6.0-RELEASE FreeBSD 6.0-RELEASE #13: Sat Nov 5
> 00:19:49 EST 2005 root@home:/usr/obj/usr/src/sys/HOME amd64
>
> bash-2.05b$ ls /bin/*sh
> /bin/csh /bin/sh /bin/tcsh
Yes, the script would have run before, but it wouldn't have worked
correctly. Now it fails with a clear reason: it requires bash. Perhaps
we should go farther and remove the bash dependency. This change didn't
break anything that wasn't already broken, nor fix anything. It simply
made the failure mode more clear.
The problem is that for 90% of the maintainers of this script, /bin/sh
is bash, so it is hard to ensure that the use of bash features does not
creep into it. Is installing bash on FreeBSD onerous? It is the
default for Linux and for cygwin, which have far greater market share
than FreeBSD. Requiring compatiblity with something that's difficult
for most developers to test makes it fragile, and I'd rather add a
dependency for FreeBSD and Solaris users than make this more fragile.
Doug