http://bugs.winehq.org/show_bug.cgi?id=34593
Bug #: 34593 Summary: MS .Net 2.0 x64 installer fails under XP mode (works under win2k3) Product: Wine Version: 1.7.2 Platform: x86-64 URL: http://www.microsoft.com/en-us/download/details.aspx?i d=6523 OS/Version: Linux Status: NEW Keywords: dotnet, download, Installer, win64 Severity: minor Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: austinenglish@gmail.com Classification: Unclassified
Noticed after bug 24196.
To reproduce: $ wine64 uninstaller # remove wine-mono $ wget http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de53... $ wine64 NetFx64.exe
will eventually fail with a generic 'installation failed' error.
Looking through the log, it's failing at: err:msi:ITERATE_Actions Execution halted, action L"CA_Check64OS.3643236F_FC70_11D3_A536_0090278A1BB8" returned 1603
and checking +relay: 002c:Call KERNEL32.MultiByteToWideChar(00000000,00000000,00e8ae14 "FX_64bit_Specific.3643236F_FC70_11D3_A536_0090278A1BB8{C5E50291-C7AC-4A6D-90A6-27131BCA00C9}This installation package supports only 64-bit version of Advanced Server 2003 or later.[CommonFiles64Folder][WindowsFolder.3643236F_FC70_11D3_A536_0090278A1BB8]Microsoft.NET\Framework64\[ProgramFiles64Folde"...,00000036,00b65130,53004500000036) ret=7fd5dd2826c0
indeed, setting winecfg's version to win2k3 let's it install. But I checked, and it does work under XP 64-bit. Looking further in +relay, it looks like it's checking VersionNT64, which wine doesn't seem to support: 002c:Call KERNEL32.MultiByteToWideChar(00000000,00000000,00e8ad62 "CA_SetSystem64Folder.3643236F_FC70_11D3_A536_0090278A1BB8( ((VersionNT64 < 502) OR (VersionNT64 = 502 AND WindowsBuild < 3506)) )CA_Check64OS.3643236F_FC70_11D3_A536_0090278A1BB8FX_64bit_Specific.3643236F_FC70_11D3_A536_0090278A1BB8{C5E50291-C7AC-4A6D-90A6-27131BCA00C9}This installation package suppo"...,00000039,00b64f70,53004500000039) ret=7fd5dd2826c0
austin@aw25 ~ $ sha1sum NetFx64.exe e59cca309463a5d98daeaada83d1b05fed5126c5 NetFx64.exe austin@aw25 ~ $ du -h NetFx64.exe 46M NetFx64.exe austin@aw25 ~ $ /opt/wine6432/bin/wine64 --version wine-1.7.2-200-g4544826
http://bugs.winehq.org/show_bug.cgi?id=34593
--- Comment #1 from Hans Leidekker hans@meelstraat.net 2013-09-25 13:17:42 CDT --- We do set VersionNT64. What is the version and build of your 64-bit Windows XP?
http://bugs.winehq.org/show_bug.cgi?id=34593
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #2 from Anastasius Focht focht@gmx.net 2013-09-25 14:33:56 CDT --- Hello folks,
Windows XP Professional x64 Edition uses 64-bit Windows Server 2003 Kernel hence it will report VersionNT64 == 502.
32-bit Windows XP: VersionNT = 501 64-bit Windows XP Professional: VersionNT64 = 502
32-bit Windows Server 2003: VersionNT = 502 64-bit Windows Server 2003: VersionNT64 = 502
Also briefly discussed in bug 33391 which fixed proper setting of VersionNT64 msi property.
Setting VersionNT64 = 502 in 64-bit "Windows XP" WINEPREFIX would confuse/break installers/apps.
What's the problem of using WinVer == Windows 2003 for 64-bit .NET recipe?
At one point Wine's default Winver will be Vista/Win7 anyway so why the hassle and potentially break stuff for 64-bit .NET installer?
Regards
http://bugs.winehq.org/show_bug.cgi?id=34593
--- Comment #3 from Austin English austinenglish@gmail.com 2013-09-25 15:43:37 CDT --- (In reply to comment #2)
Hello folks,
Windows XP Professional x64 Edition uses 64-bit Windows Server 2003 Kernel hence it will report VersionNT64 == 502.
32-bit Windows XP: VersionNT = 501 64-bit Windows XP Professional: VersionNT64 = 502
32-bit Windows Server 2003: VersionNT = 502 64-bit Windows Server 2003: VersionNT64 = 502
Also briefly discussed in bug 33391 which fixed proper setting of VersionNT64 msi property.
Setting VersionNT64 = 502 in 64-bit "Windows XP" WINEPREFIX would confuse/break installers/apps.
I'm sorry, you're saying it would break things for 64-bit WINEPREFIXs? Or for 32-bit WINEPREFIXs?
What's the problem of using WinVer == Windows 2003 for 64-bit .NET recipe?
It's a workaround, since the application in question DOES work in 64-bit Windows XP. The bug was set to minor for that reason.
http://bugs.winehq.org/show_bug.cgi?id=34593
--- Comment #4 from Anastasius Focht focht@gmx.net 2013-09-25 16:36:51 CDT --- Hello Austin,
--- quote --- I'm sorry, you're saying it would break things for 64-bit WINEPREFIXs? Or for 32-bit WINEPREFIXs? --- quote ---
Maybe the wording was a bit off - it might not really break prefixes but it makes things inconsistent from userspace perspective. Technically they have various differences in number of shipped userland components and feature sets (Wine doesn't make this distinction). Installers would really need to go through additional measures, e.g. looking at OSVERSIONINFOEX ProductType to disambiguate between 64-bit XP and Windows 2003 Server (WinVer and build numbers are the same) ... not sure if every app installer does this.
There were already attempts to get this in:
http://www.winehq.org/pipermail/wine-devel/2011-April/089681.html ("ntdll: Add support for Windows XP 64-bit")
Regards
http://bugs.winehq.org/show_bug.cgi?id=34593
--- Comment #5 from Austin English austinenglish@gmail.com 2013-09-25 22:24:32 CDT --- (In reply to comment #1)
We do set VersionNT64. What is the version and build of your 64-bit Windows XP?
For completeness, it's SP1/Build 3790
http://bugs.winehq.org/show_bug.cgi?id=34593
--- Comment #6 from Hans Leidekker hans@meelstraat.net 2013-09-26 02:30:08 CDT --- Created attachment 46080 --> http://bugs.winehq.org/attachment.cgi?id=46080 patch
How about this one?
http://bugs.winehq.org/show_bug.cgi?id=34593
--- Comment #7 from Hans Leidekker hans@meelstraat.net 2013-09-26 03:33:39 CDT --- (In reply to comment #6)
Created attachment 46080 [details] patch
How about this one?
Note that this would only work for 64-bit installers. It's probably not worth fixing installers of 64-bit programs wrapped in 32-bit executables. I think we should at least blend out Windows versions in winecfg for which no 64-bit release exists.
http://bugs.winehq.org/show_bug.cgi?id=34593
--- Comment #8 from Austin English austinenglish@gmail.com 2013-09-26 14:25:40 CDT --- (In reply to comment #6)
Created attachment 46080 [details] patch
How about this one?
Fails the same way.
http://bugs.winehq.org/show_bug.cgi?id=34593
--- Comment #9 from Anastasius Focht focht@gmx.net 2013-09-28 06:12:48 CDT --- Hello Austin,
you have to re-run 'winecfg', change selection, select "Windows XP" again and hit 'apply' to force update of registry with new values. Otherwise processes still get the initial (default) registry values at the time the prefix was created (wine.inf -> "VersionInfo" section).
You can verify what processes get by:
--- snip --- $ WINEDEBUG=+tid,+process,+ver wine foo.exe --- snip ---
Regards
http://bugs.winehq.org/show_bug.cgi?id=34593
--- Comment #10 from Austin English austinenglish@gmail.com 2013-09-30 13:26:40 CDT --- (In reply to comment #9)
Hello Austin,
you have to re-run 'winecfg', change selection, select "Windows XP" again and hit 'apply' to force update of registry with new values. Otherwise processes still get the initial (default) registry values at the time the prefix was created (wine.inf -> "VersionInfo" section).
I was using a clean WINEPREFIX, originally. I also tried: $ wine64 uninstaller # remove mono $ wine64 winecfg # select 2003, apply $ wineserver -w $ wine64 winecfg # select XP, apply $ wineserver -w $ wine64 NetFX.exe
it fails the same way (with Hans's patch).
http://bugs.winehq.org/show_bug.cgi?id=34593
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |b0755344c46886f8ae1f294fdc2 | |07166dc6783fc Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #11 from Hans Leidekker hans@meelstraat.net 2013-10-02 02:33:26 CDT --- Should be fixed by b0755344c46886f8ae1f294fdc207166dc6783fc.
http://bugs.winehq.org/show_bug.cgi?id=34593
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|FIXED | Ever Confirmed|1 |0
--- Comment #12 from Anastasius Focht focht@gmx.net 2013-10-02 02:39:27 CDT --- Hello Hans,
--- quote --- Should be fixed by b0755344c46886f8ae1f294fdc207166dc6783fc. --- quote ---
looks good but there is one missing bit - the default VersionInfo registry values imported at 64-bit WINEPREFIX creation are still for 32-bit Windows XP.
See here: http://source.winehq.org/git/wine.git/blob/acb1ff4af0be881813e8fbd85679d6519...
--- snip --- 3021 [VersionInfo] 3022 HKLM,%CurrentVersionNT%,"CurrentVersion",2,"5.1" 3023 HKLM,%CurrentVersionNT%,"CSDVersion",2,"Service Pack 3" 3024 HKLM,%CurrentVersionNT%,"CurrentBuildNumber",2,"2600" 3025 HKLM,%CurrentVersionNT%,"CurrentType",2,"Uniprocessor Free" 3026 HKLM,%CurrentVersionNT%,"ProductName",2,"Microsoft Windows XP" 3027 HKLM,%Control%\ProductOptions,"ProductType",2,"WinNT" 3028 HKLM,%Control%\Windows,"CSDVersion",0x10003,0x300 3029 HKLM,%Control%\Session Manager\Environment,"OS",2,"Windows_NT" --- snip ---
I added "[VersionInfo.ntamd64]" section to Wine.inf(.in) and reference it in "[DefaultInstall.ntamd64]" to import WinVer values specifically for 64-bit at initial WINEPREFIX creation.
This allows the 64-bit .NET installer to work out of the box with fresh 64-bit WINEPREFIX.
Regards
http://bugs.winehq.org/show_bug.cgi?id=34593
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1|b0755344c46886f8ae1f294fdc2 |621454ef0ed37c19c917aa1aa6d |07166dc6783fc |ba66e163e07d8 Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #13 from Anastasius Focht focht@gmx.net 2013-10-02 16:24:21 CDT --- Hello folks,
this is now finally fixed with http://source.winehq.org/git/wine.git/commitdiff/621454ef0ed37c19c917aa1aa6d...
The .NET Framework Setup Verification Tool from Aaron Stebner (Microsoft, Download here: http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx) which checks for proper installation of .NET assemblies and registry entries also says "yay!" ;-)
Thanks Hans
Regards
http://bugs.winehq.org/show_bug.cgi?id=34593
--- Comment #14 from Austin English austinenglish@gmail.com 2013-10-02 17:18:08 CDT --- (In reply to comment #13)
Hello folks,
this is now finally fixed with http://source.winehq.org/git/wine.git/commitdiff/621454ef0ed37c19c917aa1aa6d...
The .NET Framework Setup Verification Tool from Aaron Stebner (Microsoft, Download here: http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx) which checks for proper installation of .NET assemblies and registry entries also says "yay!" ;-)
Thanks Hans
Regards
Yep, working fine here as well. Thanks.
http://bugs.winehq.org/show_bug.cgi?id=34593
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #15 from Alexandre Julliard julliard@winehq.org 2013-10-11 12:30:36 CDT --- Closing bugs fixed in 1.7.4.
http://bugs.winehq.org/show_bug.cgi?id=34593
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |1.6.x
http://bugs.winehq.org/show_bug.cgi?id=34593
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|1.6.x |---
https://bugs.winehq.org/show_bug.cgi?id=34593
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |tools