[ https://issues.apache.org/jira/browse/MNG-5882?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ben Caradoc-Davies updated MNG-5882: ------------------------------------ Description: bin/mvn includes both local and export commands that perform assignment but do not protect against word splitting. These cause failures on Debian when run in a path with spaces because /bin/sh is dash which performs word splitting for assignment in local and export commands. See discussion here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598239 "Bash and others treat 'local' (just like export, etc) differently, but it's a known shell portability issue." For example, in this working directory: {noformat} /home/ben/geoserver/src with spaces/geotools {noformat} Running bin/mvn results in: {noformat} $ mvn [options] /home/ben/java/maven/bin/mvn: 200: local: spaces/geotools: bad variable name [...] {noformat} Moving the two local commands in find_maven_basedir to their own lines leaves: {noformat} $ mvn [options] /home/ben/java/maven/bin/mvn: 221: export: spaces/geotools: bad variable name {noformat} So the export command for MAVEN_PROJECTBASEDIR is also affected, and needs to be moved to the following line. This is a regression because bin/mvn from Maven 3.2.5 worked just fine on Debian in this working directory. Both problems are fixed in the attached patch. Another workaround is to change the bin/mvn interpreter from /bin/sh to /bin/bash. was: bin/mvn includes both local and export commands that perform assignment but do not protect against word splitting. These cause failures on Debian when run in a path with spaces because /bin/sh is dash which performs word splitting for assignment in local and export commands. See discussion here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598239 "Bash and others treat 'local' (just like export, etc) differently, but it's a known shell portability issue." For example, in this working directory: {noformat} /home/ben/geoserver/src with spaces/geotools {noformat} Running bin/mvn results in: {noformat} $ mvn [options] /home/ben/java/maven/bin/mvn: 200: local: spaces/geotools: bad variable name [...] {noformat} Moving the two local commands in find_maven_basedir to their own lines leaves: {noformat} $ mvn [options] /home/ben/java/maven/bin/mvn: 221: export: spaces/geotools: bad variable name {noformat} So the export command for MAVEN_PROJECTBASEDIR is also affected, and needs to be moved to the following line. This is a regression because bin/mvn from Maven 3.2.5 worked just fine on Debian in this working directory. Both problems are fixed in the attached patch. Another workaround is to change the bin/mvn interpreter from /bin/sh to /bin/bash. > Nonportable shell constructs cause bin/mvn errors on Debian > ----------------------------------------------------------- > > Key: MNG-5882 > URL: https://issues.apache.org/jira/browse/MNG-5882 > Project: Maven > Issue Type: Bug > Components: Command Line > Affects Versions: 3.3.3 > Environment: debian/unstable with dash 0.5.7-4+b1 amd64 > Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; > 2015-04-22T23:57:37+12:00) > Maven home: /home/ben/java/maven > Java version: 1.7.0_79, vendor: Oracle Corporation > Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre > Default locale: en_GB, platform encoding: UTF-8 > OS name: "linux", version: "4.1.0-2-amd64", arch: "amd64", family: "unix" > Reporter: Ben Caradoc-Davies > Attachments: mvn-dash.patch > > > bin/mvn includes both local and export commands that perform assignment but > do not protect against word splitting. These cause failures on Debian when > run in a path with spaces because /bin/sh is dash which performs word > splitting for assignment in local and export commands. See discussion here: > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598239 > "Bash and others treat 'local' (just like export, etc) differently, but it's > a known shell portability issue." > For example, in this working directory: > {noformat} > /home/ben/geoserver/src with spaces/geotools > {noformat} > Running bin/mvn results in: > {noformat} > $ mvn [options] > /home/ben/java/maven/bin/mvn: 200: local: spaces/geotools: bad variable name > [...] > {noformat} > Moving the two local commands in find_maven_basedir to their own lines leaves: > {noformat} > $ mvn [options] > /home/ben/java/maven/bin/mvn: 221: export: spaces/geotools: bad variable name > {noformat} > So the export command for MAVEN_PROJECTBASEDIR is also affected, and needs to > be moved to the following line. This is a regression because bin/mvn from > Maven 3.2.5 worked just fine on Debian in this working directory. Both > problems are fixed in the attached patch. > Another workaround is to change the bin/mvn interpreter from /bin/sh to > /bin/bash. -- This message was sent by Atlassian JIRA (v6.3.4#6332)