maven-wrapper icon indicating copy to clipboard operation
maven-wrapper copied to clipboard

[MWRAPPER-152] only-mvnw is not POSIX compatible

Open jira-importer opened this issue 1 year ago • 1 comments

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:

jira-importer avatar Oct 14 '24 01:10 jira-importer

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.

jira-importer avatar Oct 14 '24 02:10 jira-importer