https://bugs.winehq.org/show_bug.cgi?id=34178
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Component|-unknown |comctl32 Summary|MiKTeX 2.9 (32-bit) fails |MiKTeX 2.9 (32-bit) fails |to install |to install (wizard dialog | |caption reset by initial | |property page selection)
--- Comment #5 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
The installer spawns a process 'initexmf.exe' which fails to recognize its command line arguments:
--- snip --- $ WINEDEBUG=+tid,+seh,+relay ./basic-miktex-2.9.5105.exe >>log.txt 2>&1 ... 0037:Call KERNEL32.CreateProcessW(02afc6ac L"C:\Program Files\MiKTeX 2.9\miktex/bin\initexmf.exe",02afcab4 L""C:\Program Files\MiKTeX 2.9\miktex/bin\initexmf.exe" --common-install="C:\Program Files\MiKTeX 2.9" --rmfndb --admin --log-file="C:\Program Files\MiKTeX 2.9\miktex\config\uninst.log" --verbose",00000000,00000000,00000001,08000000,00000000,00000000,02afc62c,05692838) ret=0048ff28 ... 0028:Call KERNEL32.__wine_kernel_init() ret=7bc59dbc 0037:Ret KERNEL32.CreateProcessW() retval=00000001 ret=0048ff28 ... 0028:Call user32.EnumWindows(00401825,00dbf5d8) ret=00402ad5 ... 0028:Call winex11.drv.wine_get_gdi_driver(0000002e) ret=7eb8049c 0028:Ret winex11.drv.wine_get_gdi_driver() retval=7e145ce0 ret=7eb8049c 0028:Call winex11.drv.CreateDesktopWindow(00010020) ret=7eca5f5a 0028:Ret winex11.drv.CreateDesktopWindow() retval=00000001 ret=7eca5f5a 0028:Call user32.GetWindowTextW(000100b2,00dbec58,000000c8) ret=00402a04 0028:Ret user32.GetWindowTextW() retval=00000000 ret=00402a04 0028:Call user32.GetWindowTextW(000100ac,00dbec58,000000c8) ret=00402a04 0028:Ret user32.GetWindowTextW() retval=00000000 ret=00402a04 0028:Call user32.GetWindowTextW(00010070,00dbec58,000000c8) ret=00402a04 0028:Ret user32.GetWindowTextW() retval=00000000 ret=00402a04 0028:Call user32.GetWindowTextW(0002005c,00dbec58,000000c8) ret=00402a04 0028:Ret user32.GetWindowTextW() retval=00000012 ret=00402a04 0028:Call msvcr100.wcsstr(00dbec58 L"Untitled - Notepad",0041b88c L"MiKTeX") ret=00402a1b 0028:Ret msvcr100.wcsstr() retval=00000000 ret=00402a1b 0028:Call user32.GetWindowTextW(0001003e,00dbec58,000000c8) ret=00402a04 0028:Ret user32.GetWindowTextW() retval=00000000 ret=00402a04 0028:Call user32.GetWindowTextW(0001003c,00dbec58,000000c8) ret=00402a04 0028:Ret user32.GetWindowTextW() retval=00000000 ret=00402a04 0028:Call user32.GetWindowTextW(0001003a,00dbec58,000000c8) ret=00402a04 0028:Ret user32.GetWindowTextW() retval=00000000 ret=00402a04 0028:Call user32.GetWindowTextW(00010038,00dbec58,000000c8) ret=00402a04 0028:Ret user32.GetWindowTextW() retval=00000000 ret=00402a04 0028:Call user32.GetWindowTextW(00010034,00dbec58,000000c8) ret=00402a04 0028:Ret user32.GetWindowTextW() retval=00000000 ret=00402a04 0028:Ret user32.EnumWindows() retval=00000001 ret=00402ad5 ... 0028:Call msvcr100._CxxThrowException(00dbeebc,0041d590) ret=00402c6f 0028:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,00dbee54) ret=7e917321 0028:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b83ae8f ip=7b83ae8f tid=0028 0028:trace:seh:raise_exception info[0]=19930520 0028:trace:seh:raise_exception info[1]=00dbeebc 0028:trace:seh:raise_exception info[2]=0041d590 0028:trace:seh:raise_exception eax=7b826d6d ebx=7b8be000 ecx=19930520 edx=00dbeda4 esi=00dbee50 edi=00dbee10 0028:trace:seh:raise_exception ebp=00dbede8 esp=00dbed84 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000283 0028:trace:seh:call_stack_handlers calling handler at 0x416f04 code=e06d7363 flags=1 0028:trace:seh:call_stack_handlers handler at 0x416f04 returned 1 0028:trace:seh:call_stack_handlers calling handler at 0x416fe3 code=e06d7363 flags=1 0028:trace:seh:cxx_frame_handler handling C++ exception rec 0xdbed90 frame 0xdbf5cc trylevel 4 descr 0x41e908 nested_frame (nil) ... 0037:Call KERNEL32.OutputDebugStringW(054bbc30 L"241634 [basic-miktex-2.9.5105.setup]: initexmf: --common-install=C:\Program Files\MiKTeX 2.9: unknown option\n") ret=00457d23 --- snip ---
The app's option parser works with different command line argument sets, depending on actual run mode.
To determine the run mode, the app enumerates all top level windows and checks if the window title contains 'MiKTeX' and 'Setup' or 'Installer'. This fails hence the wrong argument set is selected which doesn't contain a handler for 'common-install'.
The installer uses a wizard dialog template (property sheet) and sets the window title to 'Basic MiKTeX 2.9.5105 Installer (32-bit)':
--- snip --- ... 0035:Call comctl32.PropertySheetW(014ad190) ret=0050da44 ... 0035:Call user32.CreateDialogIndirectParamW(00000000,0018e1f0,00000000,7e291640,0018d608) ret=7e28a6ee ... 0035:Ret window proc 0x50164e (hwnd=0x10088,msg=WM_INITDIALOG,wp=0001008a,lp=0018d828) retval=00000001 0035:Ret user32.CreateDialogIndirectParamW() retval=00010088 ret=7e28c497 ... 0035:Call user32.SendMessageW(00010070,00000478,00000000,014d4188) ret=0050eb3a 0035:Call window proc 0x50164e (hwnd=0x10070,msg=PSM_SETTITLEW,wp=00000000,lp=014d4188) 0035:Call user32.CallWindowProcW(7ebb2e8f,00010070,00000478,00000000,014d4188) ret=004fd15b 0035:Call window proc 0x7ebb2e8f (hwnd=0x10070,msg=PSM_SETTITLEW,wp=00000000,lp=014d4188) 0035:Call dialog proc 0x7e291640 (hwnd=0x10070,msg=PSM_SETTITLEW,wp=00000000,lp=014d4188) 0035:Call user32.GetPropW(00010070,7e2e81a0 L"PropertySheetInfo") ret=7e28e0a9 0035:Ret user32.GetPropW() retval=0018d608 ret=7e28e0a9 0035:Call user32.SetWindowTextW(00010070,014d4188 L"Basic MiKTeX 2.9.5105 Installer (32-bit)") ret=7e28e1ed 0035:Call window proc 0x50164e (hwnd=0x10070,msg=WM_SETTEXT,wp=00000000,lp=014d4188) 0035:Call user32.CallWindowProcW(7ebb2e8f,00010070,0000000c,00000000,014d4188) ret=004fd15b 0035:Call window proc 0x7ebb2e8f (hwnd=0x10070,msg=WM_SETTEXT,wp=00000000,lp=014d4188) 0035:Call dialog proc 0x7e291640 (hwnd=0x10070,msg=WM_SETTEXT,wp=00000000,lp=014d4188) 0035:Ret dialog proc 0x7e291640 (hwnd=0x10070,msg=WM_SETTEXT,wp=00000000,lp=014d4188) retval=00000000 result=00000000 0035:Call winex11.drv.SetWindowText(00010070,001918a0 L"Basic MiKTeX 2.9.5105 Installer (32-bit)") ret=7ebb3761 0035:Ret winex11.drv.SetWindowText() retval=00000001 ret=7ebb3761 0035:Ret window proc 0x7ebb2e8f (hwnd=0x10070,msg=WM_SETTEXT,wp=00000000,lp=014d4188) retval=00000001 0035:Ret user32.CallWindowProcW() retval=00000001 ret=004fd15b 0035:Ret window proc 0x50164e (hwnd=0x10070,msg=WM_SETTEXT,wp=00000000,lp=014d4188) retval=00000001 0035:Ret user32.SetWindowTextW() retval=00000001 ret=7e28e1ed 0035:Ret dialog proc 0x7e291640 (hwnd=0x10070,msg=PSM_SETTITLEW,wp=00000000,lp=014d4188) retval=00000001 result=00000000 0035:Ret window proc 0x7ebb2e8f (hwnd=0x10070,msg=PSM_SETTITLEW,wp=00000000,lp=014d4188) retval=00000000 0035:Ret user32.CallWindowProcW() retval=00000000 ret=004fd15b 0035:Ret window proc 0x50164e (hwnd=0x10070,msg=PSM_SETTITLEW,wp=00000000,lp=014d4188) retval=00000000 0035:Ret user32.SendMessageW() retval=00000000 ret=0050eb3a ... 0035:Ret comctl32.PropertySheetW() retval=00010070 ret=0050da44 --- snip ---
When the initial property page is selected into view, the dialog wizard caption is reset to an empty string (template has no caption).
'winetricks -q comctl32' works around, the window title is properly shown and the installer succeeds.
$ sha1sum basic-miktex-2.9.5105.exe 8a0797f119d796ff80adfab99945e76e6883609f basic-miktex-2.9.5105.exe
$ du -sh basic-miktex-2.9.5105.exe 164M basic-miktex-2.9.5105.exe
$ wine --version wine-1.7.23-78-g4a6ce97
Regards