maven-wrapper
maven-wrapper copied to clipboard
[MWRAPPER-152] only-mvnw is not POSIX compatible
Ryan Worcester opened MWRAPPER-152 and commented
The maven wrapper type only-script file mvnw declares a shebang of #!/bin/sh which is the default shell. The default shell can be any shell therefore for this script to work as expected it needs to only use things common to all shells.
v3.3.2 at https://github.com/apache/maven-wrapper/blob/maven-wrapper-3.3.2/maven-wrapper-distribution/src/resources/only-mvnw#L161 uses mktemp which is not POSIX compliant. mktemp doesn't exist in ksh (korn shell) and doesn't exist in some versions of bash. My app's server has bash "GNU bash, version 5.0.0(2){-}release{-}(powerpc-ibm-aix6.1.9.0)" which lacks mktemp.
Therefore only-mvnw should be updated to not use mktemp along with any other shell specific things it contains.
Affects: 3.3.2
Issue Links:
- MWRAPPER-88 mvnw is not POSIX compatible
Ryan Worcester commented
I know almost nothing about POSIX, I just copied MWRAPPER-88.
It seems to me that all the wrapper types should use the same mvnw source rather than 2 files.
Let me know if you need any more info.