https://bugs.winehq.org/show_bug.cgi?id=50463
--- Comment #5 from Anastasius Focht focht@gmx.net --- Hello folks,
an addendum to my previous comment:
--- quote --- If there was a problem with sub-installer UI hanging on exit, it would have to be run *before* 'dotnetfx3.exe' to be effective. Not sure what Hans tried to fix *after* .NET Framework 3.0 install. .NET Framework 3.0 SP1 will surely complain if XPSEP is missing. --- quote ---
It seems .NET Framework 3.0 SP1 installer checks for an *updated* XPSEP installation which can't be provided by XPSEP bundled in .NET Framework 3.0 installer.
Prerequisite check for XPSEP version:
--- snip --- ... [01/11/21,13:19:50] Component Data File: c:\860096690fcd61620af5583c5a29eb\baseline.dat [01/11/21,13:19:50] Dependency File: c:\860096690fcd61620af5583c5a29eb\vs_setup.pdi [01/11/21,13:19:50] Product to install: Microsoft .NET Framework 3.0 SP1 [01/11/21,13:19:50] Component Set: 64 [01/11/21,13:19:50] [01/11/21,13:19:50] !!Component Version Summary [01/11/21,13:19:50] Microsoft .NET Framework 3.0 SP1 [01/11/21,13:19:50] Windows 2003 Server Service Pack 1 Update Information [01/11/21,13:19:50] XPSEPSC Installer [01/11/21,13:19:50] WIC Installer [01/11/21,13:19:50] MSXML 6.0 Parser [01/11/21,13:19:50] RGB Rast [01/11/21,13:19:50] Microsoft .NET Framework 2.0 SP1 [01/11/21,13:19:50] Microsoft .NET Framework 3.0 SP1 [01/11/21,13:19:50] Microsoft .NET Framework 3.0 SP1 [01/11/21,13:19:50] Microsoft .NET Framework 3.0a [01/11/21,13:19:50] .NET Framework 35 [01/11/21,13:19:50] [01/11/21,13:19:50] !!Installation Summary [01/11/21,13:19:50] !!!TailorListForSetup() [01/11/21,13:19:50] Microsoft .NET Framework 3.0 SP1 == Component to be removed from installation list because it is marked "not to be installed". [01/11/21,13:19:50] Windows 2003 Server Service Pack 1 Update Information == Component to be removed from installation list because it is marked "not to be installed". [01/11/21,13:19:50] XPSEPSC Installer == [01/11/21,13:19:50] This component uses the FileVersionCheck version check method. It will compare a given version against the version of a file on your machine. [01/11/21,13:19:50] The file to be verified is C:\windows\system32\prntvpt.dll. [01/11/21,13:19:50] Version on user's machine: 6.0.5824.16384 [01/11/21,13:19:50] Version to be installed: 6.0.6000.16438 ... --- snip ---
Wine builtin 'prntvpt.dll' doesn't have a version resource so it will always get overwritten.
'prntvpt.dll' installed by .NET Framework 3.0 XPSEP installer:
--- snip --- -=[ ProtectionID v0.6.9.0 DECEMBER]=- (c) 2003-2017 CDKiLLER & TippeX Build 24/12/17-21:05:42 Ready... Scanning -> C:\windows\system32\prntvpt.dll File Type : 32-Bit Dll (Subsystem : Win CUI / 3), Size : 124416 (01E600h) Byte(s) | Machine: 0x14C (I386) Compilation TimeStamp : 0x45317622 -> Sat 14th Oct 2006 23:43:30 (GMT) [TimeStamp] 0x45317622 -> Sat 14th Oct 2006 23:43:30 (GMT) | PE Header | - | Offset: 0x00000100 | VA: 0x00400100 | - [TimeStamp] 0x453175A3 -> Sat 14th Oct 2006 23:41:23 (GMT) | Export | - | Offset: 0x0001A3F4 | VA: 0x0041AFF4 | - [TimeStamp] 0x45317622 -> Sat 14th Oct 2006 23:43:30 (GMT) | DebugDirectory | - | Offset: 0x00000654 | VA: 0x00401254 | - [LoadConfig] Struct determined as v8 (Expected size 140 | Actual size 64) [!] Executable uses SEH Tables (/SAFESEH) (2 calculated 2 recorded... 0 invalid addresses) [LoadConfig] CodeIntegrity -> Flags 0x1 | Catalog 0x0 (0) | Catalog Offset 0x746E7270 | Reserved 0x2E747076 [LoadConfig] GuardAddressTakenIatEntryTable 0x626470 | Count 0x0 (0) [LoadConfig] GuardLongJumpTargetTable 0x0 | Count 0x0 (0) [LoadConfig] HybridMetadataPointer 0x0 | DynamicValueRelocTable 0x0 [LoadConfig] FailFastIndirectProc 0x0 | FailFastPointer 0x0 [LoadConfig] UnknownZero1 0x0 [File Heuristics] -> Flag #1 : 00000100000001001101000100000000 (0x0404D100) [Entrypoint Section Entropy] : 6.20 (section #0) ".text " | Size : 0x1A3C7 (107463) byte(s) [DllCharacteristics] -> Flag : (0x0140) -> ASLR | DEP [SectionCount] 5 (0x5) | ImageSize 0x23000 (143360) byte(s) [Export] 100% of function(s) (27 of 27) are in file | 0 are forwarded | 27 code | 0 data | 0 uninit data | 0 unknown | [VersionInfo] Company Name : Microsoft Corporation [VersionInfo] Product Name : Microsoft® Windows® Operating System [VersionInfo] Product Version : 6.0.5824.16384 [VersionInfo] File Description : Print Ticket Services Module [VersionInfo] File Version : 6.0.5824.16384 (winmain(wmbla).060911-0725) [VersionInfo] Original FileName : prntvpt.dll [VersionInfo] Internal Name : prntvpt.dll [VersionInfo] Legal Copyrights : © Microsoft Corporation. All rights reserved. [ModuleReport] [IAT] Modules -> msvcrt.dll | ADVAPI32.dll | KERNEL32.dll | ole32.dll | OLEAUT32.dll | RPCRT4.dll | USER32.dll | VERSION.dll | WINSPOOL.DRV | GDI32.dll [Debug Info] (record 1 of 1) (file offset 0x650) Characteristics : 0x0 | TimeDateStamp : 0x45317622 (Sat 14th Oct 2006 23:43:30 (GMT)) | MajorVer : 0 / MinorVer : 0 -> (0.0) Type : 2 (0x2) -> CodeView | Size : 0x24 (36) AddressOfRawData : 0x77F0 | PointerToRawData : 0x6BF0 CvSig : 0x53445352 | SigGuid 88E3A58A-3F1B-4623-AAE2D6FBC23AADDA Age : 0x1 (1) | Pdb : prntvpt.pdb --- snip ---
-> 6.0.5824.16384 from 2006
--- quote --- It turns out that XPSEP installation is not needed on current Wine; dotnet30sp1 installs and verifies successfully if I comment out that step. --- quote ---
I've checked .NET Framework 3.0 SP1 installer on existing WINEPREFIX with .NET Framework 3.0 + 2.0 SP1. The installer always complains about 'XPSEPSC Installer: XPSEPSC must be installed before'.
Turns out this is another bug in 'winetricks':
https://github.com/Winetricks/winetricks/blob/master/src/winetricks#L9103
--- snip --- if w_workaround_wine_bug 47436 "Installing native prntvpt" 4.11,4.15 ;then w_call prntvpt fi --- snip ---
It will apply the "bugfix" even for Wine > 4.15 hence the 'prntvpt' version resource check will always succeed.
You could "recycle" the winetricks workaround for bug 47436 to remove need for 'XPSEP XP and Server 2003 32 bit.msi' installer but it was originally intended for a different problem which no longer exists. I don't consider re-purposing things this way a very clean approach.
The better way would be as Zeb commented in: https://bugs.winehq.org/show_bug.cgi?id=47436#c5
--- quote --- (side note: we should really just supply our own version resource and then stop installing XPSEP) --- quote ---
With that change in Wine both workarounds could be disabled for newer Wine versions.
Regards