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]
