https://bugs.winehq.org/show_bug.cgi?id=38959
Bug ID: 38959 Summary: Microsoft .NET Framework 4.6 web installer fails silently (unable to load series of compressed PNG icon images from ICO files) Product: Wine Version: 1.7.47 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: user32 Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
as the summary says.
Prerequisite: WINEPREFIX Windows version set to 'Windows Vista' or higher.
Unwrapped the inner installer for easier reproduce.
Trace log:
--- snip --- $ WINEDEBUG=+tid,+seh,+relay,+msi,+resource,+icon,+cursor wine ./Setup.exe /x86 /x64 /web >>log.txt 2>&1 ... 0034:Call user32.LoadImageW(00000000,00e228e0 L"Z:\home\focht\Downloads\installer\graphics\Rotate1.ico",00000001,00000000,00000000,00000010) ret=0039967e 0034:trace:resource:LoadImageW ((nil),L"Z:\home\focht\Downloads\installer\graphics\Rotate1.ico",1,0,0,0x00000010) 0034:trace:cursor:CURSORICON_Load (nil), L"Z:\home\focht\Downloads\installer\graphics\Rotate1.ico", 0x0, depth 32, fCursor 0, flags 0x0010 0034:trace:cursor:CURSORICON_LoadFromFile loading L"Z:\home\focht\Downloads\installer\graphics\Rotate1.ico" 0034:warn:cursor:create_icon_from_bmi invalid header size 1196314761 0034:trace:cursor:CURSORICON_LoadFromFile loaded L"Z:\home\focht\Downloads\installer\graphics\Rotate1.ico" -> (nil) 0034:Ret user32.LoadImageW() retval=00000000 ret=0039967e ... 0034:Call user32.LoadImageW(00000000,00e228e0 L"Z:\home\focht\Downloads\installer\graphics\Rotate10.ico",00000001,00000000,00000000,00000010) ret=0039967e 0034:trace:resource:LoadImageW ((nil),L"Z:\home\focht\Downloads\installer\graphics\Rotate10.ico",1,0,0,0x00000010) 0034:trace:cursor:CURSORICON_Load (nil), L"Z:\home\focht\Downloads\installer\graphics\Rotate10.ico", 0x0, depth 32, fCursor 0, flags 0x0010 0034:trace:cursor:CURSORICON_LoadFromFile loading L"Z:\home\focht\Downloads\installer\graphics\Rotate10.ico" 0034:warn:cursor:create_icon_from_bmi invalid header size 1196314761 0034:trace:cursor:CURSORICON_LoadFromFile loaded L"Z:\home\focht\Downloads\installer\graphics\Rotate10.ico" -> (nil) 0034:Ret user32.LoadImageW() retval=00000000 ret=0039967e ... 0034:Call KERNEL32.RaiseException(c000008c,00000001,00000000,00000000) ret=003995ac 0034:trace:seh:raise_exception code=c000008c flags=1 addr=0x7b845ccd ip=7b845ccd tid=0034 0034:trace:seh:raise_exception eax=7b832afd ebx=00000000 ecx=01ede830 edx=00000001 esi=01ede874 edi=01ede840 0034:trace:seh:raise_exception ebp=01ede818 esp=01ede7b4 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200246 0034:trace:seh:call_stack_handlers calling handler at 0x100a52df code=c000008c flags=1 --- snip ---
It fails to load series of compressed PNG images embedded in ICO images. This is a feature that is supported on Windows Vista or higher.
--- quote --- Windows Vista added a 256×256-pixel icon view to Windows Explorer, as well as support for the compressed PNG format. Although compression is not required, Microsoft recommends that all 256×256 icons in ICO files should be stored in PNG format to reduce the overall size of the file.[7] The Windows Vista Explorer supports smoothly scaling icons to non-standard sizes which are rendered on the fly even if an image is not present for that size in the icon file. The Windows Vista shell adds a slider for "zooming" the icon sizes in and out. With users using higher resolutions and high DPI modes, larger icon formats (such as 256×256) are recommended.[7] --- quote ---
Image properties:
--- snip --- installer/Graphics>$ file *
Print.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Rotate10.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Rotate1.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Rotate2.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Rotate3.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Rotate4.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Rotate5.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Rotate6.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Rotate7.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Rotate8.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Rotate9.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Save.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors Setup.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors stop.ico: MS Windows icon resource - 36 icons, 256x256, 16 colors SysReqMet.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors SysReqNotMet.ico: MS Windows icon resource - 19 icons, 256x256, 16 colors warn.ico: MS Windows icon resource - 36 icons, 256x256, 16 colors
installer/Graphics>$ identify Rotate1.ico
Rotate1.ico[0] ICO 256x256 256x256+0+0 8-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[1] ICO 48x48 48x48+0+0 4-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[2] ICO 32x32 32x32+0+0 4-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[3] ICO 24x24 24x24+0+0 4-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[4] ICO 16x16 16x16+0+0 4-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[5] ICO 256x256 256x256+0+0 8-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[6] ICO 48x48 48x48+0+0 8-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[7] ICO 32x32 32x32+0+0 8-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[8] ICO 24x24 24x24+0+0 8-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[9] ICO 16x16 16x16+0+0 8-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[10] ICO 256x256 256x256+0+0 8-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[11] ICO 128x128 128x128+0+0 32-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[12] ICO 64x64 64x64+0+0 32-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[13] ICO 48x48 48x48+0+0 32-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[14] ICO 40x40 40x40+0+0 32-bit sRGB 144KB 0.000u 0:00.009 Rotate1.ico[15] ICO 32x32 32x32+0+0 32-bit sRGB 144KB 0.000u 0:00.000 Rotate1.ico[16] ICO 24x24 24x24+0+0 32-bit sRGB 144KB 0.000u 0:00.000 Rotate1.ico[17] ICO 20x20 20x20+0+0 32-bit sRGB 144KB 0.000u 0:00.000 Rotate1.ico[18] ICO 16x16 16x16+0+0 32-bit sRGB 144KB 0.000u 0:00.000 --- snip ---
$ sha1sum NDP46-KB3045560-Web.exe 480ca134b9e3f2437df10719d5a8c77ddec0a4f1 NDP46-KB3045560-Web.exe
$ du -sh NDP46-KB3045560-Web.exe 1.5M NDP46-KB3045560-Web.exe
$ wine --version wine-1.7.47-162-g0f9a0aa
Regards