[ 
https://issues.apache.org/jira/browse/NPANDAY-409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brett Porter updated NPANDAY-409:
---------------------------------

    Fix Version/s: 2.0
           Labels: mono  (was: )

> Executable path ignored during command execution while building NPanday on 
> Linux
> --------------------------------------------------------------------------------
>
>                 Key: NPANDAY-409
>                 URL: https://issues.apache.org/jira/browse/NPANDAY-409
>             Project: NPanday
>          Issue Type: Bug
>          Components: Maven Plugins
>    Affects Versions: 1.4-incubating
>         Environment: $ mvn -v
> Apache Maven 2.2.1 (rdebian-4)
> Java version: 1.6.0_24
> Java home: /usr/lib/jvm/java-6-sun-1.6.0.24/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux" version: "2.6.35-28-generic" arch: "amd64" Family: "unix"
>            Reporter: John R. Fallows
>              Labels: mono
>             Fix For: 2.0
>
>
> Checked out NPanday trunk r1095141 on Linux and applied the following patches.
>   o NPANDAY-400
>   o NPANDAY-402
>   o NPANDAY-407 (new)
> The ~/.m2/npanday-settings.xml file looks like this:
> {code}
> <npandaySettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>   <operatingSystem>linux 2.6.35-28-generic</operatingSystem>
>   <defaultSetup>
>     <vendorName>MONO</vendorName>
>     <vendorVersion>2.0.50727</vendorVersion>
>     <frameworkVersion>2.0.50727</frameworkVersion>
>   </defaultSetup>
>   <vendors>
>     <vendor>
>       <vendorName>MONO</vendorName>
>       <vendorVersion>2.0.50727</vendorVersion>
>       <frameworks>
>         <framework>
>           <frameworkVersion>2.0.50727</frameworkVersion>
>           <installRoot>/usr/lib/mono/2.0</installRoot>
>         </framework>
>       </frameworks>
>     </vendor>
>   </vendors>
> </npandaySettings>
> {code}
> When attempting to build on Linux, the error trace below is displayed trying 
> to execute "xsd" and the build fails.
> [INFO] NPANDAY-070-003: Found executable path for xsd: /usr/lib/mono/2.0
> [INFO] Cannot open assembly '/usr/lib/mono/1.0/xsd.exe': No such file or 
> directory.
> [DEBUG] NPANDAY-040-000: Executed command: Commandline =  /bin/sh -c cd 
> /usr/lib/mono/2.0 && xsd 
> /home/jfallows/Workspaces/npanday-trunk/dotnet/assemblies/NPanday.Model.Pom/Pom.xsd
>  
> /o:/home/jfallows/Workspaces/npanday-trunk/dotnet/assemblies/NPanday.Model.Pom/target/build-sources
>  /classes /language:CS /namespace:NPanday.Model.Pom, Result = 2
> [INFO] NPANDAY-070-003: Found executable path for xsd: /usr/lib/mono/2.0
> [INFO] NPANDAY-070-003: Found executable path for xsd: /usr/lib/mono/2.0
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] NPANDAY-1400-000: Unable to execute xsd: Vendor null, frameworkVersion 
> = 2.0.50727, Profile = XSD:SCHEMA
> Embedded error: NPANDAY-070-000: Execution Path = /usr/lib/mono/2.0, Command 
> = 
> [/home/jfallows/Workspaces/npanday-trunk/dotnet/assemblies/NPanday.Model.Pom/Pom.xsd,
>  
> /o:/home/jfallows/Workspaces/npanday-trunk/dotnet/assemblies/NPanday.Model.Pom/target/build-sources,
>  /classes, /language:CS, /namespace:NPanday.Model.Pom]
> NPANDAY-040-001: Could not execute: Command =  /bin/sh -c cd 
> /usr/lib/mono/2.0 && xsd 
> /home/jfallows/Workspaces/npanday-trunk/dotnet/assemblies/NPanday.Model.Pom/Pom.xsd
>  
> /o:/home/jfallows/Workspaces/npanday-trunk/dotnet/assemblies/NPanday.Model.Pom/target/build-sources
>  /classes /language:CS /namespace:NPanday.Model.Pom, Result = 2
> The executable that should be used is /usr/lib/mono/2.0/xsd.exe, and it is 
> correctly located in the executable paths.
> Notice that the shell commands "cd /usr/lib/mono/2.0 && xsd" would not 
> execute /usr/lib/mono/2.0/xsd.exe on Linux.
> Conversely, on Windows, the current directory is searched first on the path 
> by default, and the .exe extension can be omitted, which is why this has not 
> shown up as an issue thus far on Windows.  On Linux, the default path 
> contains executables such as /usr/bin/gmcs which force a specific version of 
> the Mono runtime to be used, such as 2.0 shown below.
> #!/bin/sh
> exec /usr/bin/mono $MONO_OPTIONS /usr/lib/mono/2.0/gmcs.exe "$@"
> In this case, my /usr/bin/xsd was pointing explicitly at Mono 1.0 
> unexpectedly, leading to the discovery of this issue.
> If the intent is to support targeting multiple different Mono runtimes for 
> different projects by using executable paths in npanday-settings.xml, then it 
> is necessary to use the fully qualified path complete with .exe extension on 
> Linux.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to