On 11/8/2014 9:40 PM, Anurag Sharma wrote:
> Agree, this could be an issue with windows LFN to 8.3 SFN conversion. 
> 
> Another issue I found with my observation mentioned below, is the name
> of python executable name used in build.xml. On windows Python
> executable have same with different versions, python might be having
> version specific executable names on other OS.
> 
> Python installer for 2.7 and 3.4 version on windows installs python
> executable with 'python.exe'. 
> Since solr expects 3.2 or higher version I installed python 3.4 version.
> Not sure what's the executable name on linux.
> Ant  build.xml expects the name to be python32.exe and for a workaround
> I created copies of python.exe with python32.exe & python3.2.exe but
> still was getting java.io.IOException: Cannot run program "python3.2".
> It worked once I did below changes in build.xml

The executable names on Linux are exactly what the ant build tries to
use.  Here's some files in /usr/bin on an Ubuntu 14 system that I
maintain at home:

lrwxrwxrwx 1 root root       9 Dec 21  2013 python -> python2.7
lrwxrwxrwx 1 root root       9 Dec 21  2013 python2 -> python2.7
-rwxr-xr-x 1 root root 3349512 Mar 22  2014 python2.7
lrwxrwxrwx 1 root root       9 May 21 21:45 python3 -> python3.4
lrwxrwxrwx 1 root root       9 Nov  6 07:08 python3.2 -> python3.4
-rwxr-xr-x 2 root root 4061272 Apr 11  2014 python3.4
-rwxr-xr-x 2 root root 4061272 Apr 11  2014 python3.4m

All of these existed after installing python 3.4 packages.  I created
the python3.2 symlink myself.  On a CentOS 6 system that I also use for
building Solr, there were no distribution packages for any 3.x python
version, so I obtained the binary package from python.org and installed
it in /usr/local.  I created a python3.2 symlink for that as well.  I
haven't tried to make the python targets work on Windows.

The "python3" executable should exist on every system with the minimum
version installed, and I expect it would work with properly with the
Lucene ant targets on any operating system.

I see three ways to use "python3" and still have everything work the way
we expect:

One way is to rewrite the scripts so that any version 3 python is
acceptable.  This might not be possible -- 3.2 is probably a strict
minimum requirement for at least one of the scripts.

Another way is to put an explicit version check into each python script
that fails the script immediately if the version is not high enough for
that specific script, so the ant build can fail immediately with a
helpful message.

The last way would utilize ant itself to check the python version as a
prerequisite, sorta similar to how it fails if it does not detect a
suitable ivy version.  If we build the small script I described in my
last message and use it in an ant target called something like
"-python-minimum-version" that is called before any of the targets that
USE python, we should end up with the build failing with a helpful
message.  This should be the least intrusive change.  I am not a skilled
python programmer, but I could give it a try.

Thanks,
Shawn


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to