http://bugs.winehq.org/show_bug.cgi?id=7480
Summary: Regression with Word viewer installer Product: Wine Version: 0.9.30. Platform: Other OS/Version: other Status: NEW Severity: normal Priority: P2 Component: wine-msi AssignedTo: wine-bugs@winehq.org ReportedBy: myasar@free.fr
I've found an old regression with MS Word viewer 2003 installer. (you can get it from: http://www.microsoft.com/downloads/details.aspx?FamilyID=95e24c87-8732-48d5-...).
With Wine version 0.9.16 the installation is almost OK. The files are copied, the installer displays an error after installation but WordViewer is usable.
Since Wine v0.9.17 (and all version until 0.9.31) the installation stops before copying any files.
With git bisect, I have found that the following patch has caused the regression :
commit 7c35db000b26852fc2bf4a7a7e349953f60d183f msiexec: Use CommandLineToArgvW instead of process_args to reduce code duplication.
The patch replaces the function process_args() by CommandLineToArgvW() in msiexec.c, the result is that the decodification of the command line is different. (Note that I have pasted here the output of multiple runs, each time the name of the temporary file is different)
Original command line : ----------------------- "c:\windows\system32\msiexec.exe" /I C:\windows\temp\IXP044.TMP\WORDVIEW.MSI CDCACHE="2" LAUNCHEDFROMSETUP="1" SETUPEXEPATH="C:\windows\temp\IXP044.TMP\" SETUPEXENAME="SETUP.EXE" /lpiwaeo "C:\windows\temp\Microsoft Office Word Viewer 2003 Setup(0071)_Task(0001).txt" CDCACHE="0" DWSETUPLOGFILE="C:\windows\temp\Microsoft Office Word Viewer 2003 Setup(0071).txt" DWSETUPLOGFILE="C:\windows\temp\Microsoft Office Word Viewer 2003 Setup(0071).txt" DWMSILOGFILE="C:\windows\temp\Microsoft Office Word Viewer 2003 Setup(0071)_Task(0001).txt" -----------------------
argv returned by process_args() ------------------------------ argc = 12 argv[0]=L"c:\windows\system32\msiexec.exe" argv[1]=L"/I" argv[2]=L"C:\windows\temp\IXP034.TMP\WORDVIEW.MSI" argv[3]=L"CDCACHE=2" argv[4]=L"LAUNCHEDFROMSETUP=1" argv[5]=L"SETUPEXEPATH=C:\windows\temp\IXP034.TMP\" argv[6]=L"SETUPEXENAME=SETUP.EXE" argv[7]=L"/lpiwaeo" argv[8]=L"C:\windows\temp\Microsoft Office Word Viewer 2003 Setup(0054)_Task(0001).txt" argv[9]=L"CDCACHE=0" argv[10]=L"DWSETUPLOGFILE=C:\windows\temp\Microsoft Office Word Viewer 2003 Setup(0054).txt" argv[11]=L"DWMSILOGFILE=C:\windows\temp\Microsoft Office Word Viewer 2003 Setup(0054)_Task(0001).txt" ------------------------------
argv returned by CommandLineToArgvW () ------------------------------ argc = 21 argv[0]=L"c:\windows\system32\msiexec.exe" argv[1]=L"/I" argv[2]=L"C:\windows\temp\IXP034.TMP\WORDVIEW.MSI" argv[3]=L"CDCACHE=2" argv[4]=L"LAUNCHEDFROMSETUP=1" argv[5]=L"SETUPEXEPATH=C:\windows\temp\IXP034.TMP" SETUPEXENAME=SETUP.EXE /lpiwaeov C:\windows\temp\Microsoft" argv[6]=L"Office" argv[7]=L"Word" argv[8]=L"Viewer" argv[9]=L"2003" argv[10]=L"Setup(0053)_Task(0001).txt LOGVERBOSE=1 CDCACHE=0 DWSETUPLOGFILE=C:\windows\temp\Microsoft" argv[11]=L"Office" argv[12]=L"Word" argv[13]=L"Viewer" argv[14]=L"2003" argv[15]=L"Setup(0053).txt DWMSILOGFILE=C:\windows\temp\Microsoft" argv[16]=L"Office" argv[17]=L"Word" argv[18]=L"Viewer" argv[19]=L"2003" argv[20]=L"Setup(0053)_Task(0001).txt" ------------------------------
Obviously the result of CommandLineToArgvW is wrong.