http://bugs.winehq.org/show_bug.cgi?id=12465
Summary: winetest compilation regression with 0.9.59 (Bourne shell problem) Product: Wine Version: CVS/GIT Platform: PC OS/Version: Solaris Status: UNCONFIRMED Severity: major Priority: P2 Component: build-env AssignedTo: wine-bugs@winehq.org ReportedBy: petr.sumbera@sun.com CC: julliard@winehq.org
Created an attachment (id=12013) --> (http://bugs.winehq.org/attachment.cgi?id=12013) changes shell code to be executable by Bourne shell
This is regression after:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=4e665b1e21ae63f33d0214...
Build fails with following error:
../../tools/wrc/wrc --nostdinc -I. -I. -I../../include -I../../include -DBUILD_SHA1="$(GIT_DIR=../../.git git rev-parse HEAD 2>/dev/null)" -fowinetest.res winetest.rc /bin/sh: syntax error at line 1: `(' unexpected gmake[2]: *** [winetest.res] Error 2 gmake[2]: Leaving directory `/builds/WINE/wine-0.9.59/programs/winetest' gmake[1]: *** [winetest] Error 2 gmake[1]: Leaving directory `/builds/WINE/wine-0.9.59/programs' gmake: *** [programs] Error 2 -bash-3.2$ cd /builds/WINE/wine-0.9.59/programs/winetest -bash-3.2$ pwd /builds/WINE/wine-0.9.59/programs/winetest
This is due the fact that Solaris's /bin/sh is Bourne shell and not BASH as on Linux. Therefore it's not capable of command substitution via $(command) syntax.
Please use instead ``. See example from my Solaris box:
bash-3.2$ echo "$(GIT_DIR=../../.git git rev-parse HEAD 2>/dev/null)" "" bash-3.2$ sh $ echo "$(GIT_DIR=../../.git git rev-parse HEAD 2>/dev/null)" syntax error: `(' unexpected $ echo "`GIT_DIR=../../.git git rev-parse HEAD 2>/dev/null`" git: not found "" $ bash-3.2$ echo "`GIT_DIR=../../.git git rev-parse HEAD 2>/dev/null`" ""
---
Note:
Other option could be to set SHELL variable to ksh for Solaris (in wine-0.9.59/Make.rules.in set SHELL = @SHELL@ and some more configure work).