https://bugs.winehq.org/show_bug.cgi?id=50463
Bug ID: 50463 Summary: winetricks dotnet30sp1 fails to install XpsFilt.dll Product: Wine Version: 6.0-rc5 Hardware: x86-64 OS: Linux Status: NEW Keywords: dotnet, download, Installer, regression Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: austinenglish@gmail.com Distribution: Gentoo
Followup to bug 49831.
winetricks -q dotnet30sp1 now finishes, but this dll no longer gets installed (it does get installed with wine-5.0):
warning: dotnet30sp1 install completed, but installed file /home/austin/.wine/dosdevices/c:/windows/system32/XpsFilt.dll not found
I'm not sure what commit broke it, since the ntdll PE conversion broke things for a while, and the wintrust regression from 49831 really blur things.
https://bugs.winehq.org/show_bug.cgi?id=50463
--- Comment #1 from Hans Leidekker hans@meelstraat.net --- (In reply to Austin English from comment #0)
Followup to bug 49831.
winetricks -q dotnet30sp1 now finishes, but this dll no longer gets installed (it does get installed with wine-5.0):
warning: dotnet30sp1 install completed, but installed file /home/austin/.wine/dosdevices/c:/windows/system32/XpsFilt.dll not found
This file is actually installed by 'XPSEP XP and Server 2003 32 bit.msi', not the .NET 3.0 package. Is that what the 'we're cheating a bit here' comment refers to?
In any case, if I install that package separately in a fresh 32-bit winxp prefix on current Wine this dll is installed properly. So it could be that one of the preceding steps in this recipe blocks it somehow.
https://bugs.winehq.org/show_bug.cgi?id=50463
--- Comment #2 from Hans Leidekker hans@meelstraat.net --- The dll is installed if I comment out the 'w_call dotnet30' step. It turns out that XPSEP installation is not needed on current Wine; dotnet30sp1 installs and verifies successfully if I comment out that step. I'm not sure if it's worth digging down further into dotnet30.
https://bugs.winehq.org/show_bug.cgi?id=50463
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #3 from Austin English austinenglish@gmail.com --- (In reply to Hans Leidekker from comment #2)
The dll is installed if I comment out the 'w_call dotnet30' step. It turns out that XPSEP installation is not needed on current Wine; dotnet30sp1 installs and verifies successfully if I comment out that step. I'm not sure if it's worth digging down further into dotnet30.
Makes sense to me; Focht, what do you think?
https://bugs.winehq.org/show_bug.cgi?id=50463
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|winetricks dotnet30sp1 |winetricks dotnet30sp1 |fails to install |fails to install |XpsFilt.dll |XpsFilt.dll from Microsoft | |XML Paper Specification | |(XPS) Essentials Pack 1.0 | |(2010) URL| |https://web.archive.org/web | |/20111211075227/http://down | |load.microsoft.com/download | |/8/F/E/8FEEE89D-9E4F-4BA3-9 | |93E-0FFEA8E21E1B/NetFx30SP1 | |_x86.exe
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
I've checked the history how this part got into 'winetricks dotnet30sp1'.
https://github.com/Winetricks/winetricks/commit/40a7124324d2228ebee9e9fcff34... (dotnet30sp1: added draft verb. Also add commented out lines in dotnet20 and dotnet30 showing what needs to be deleted first to make the installs real; will enable them once dotnet35 works. Also added checksum to dotnet35.")
which leads to:
Wine bug 25060 ("Microsoft .NET Framework 3.5 installer does not complete")
https://bugs.winehq.org/show_bug.cgi?id=25060#c10 (Hans):
--- quote --- This works for me: ... 12. wine dotnetfx3.exe # workaround for bug 16876: 13. wine msiexec /i XPSEP\ XP\ and\ Server\ 2003\ 32\ bit.msi 14. wine sc delete FontCache3.0.0.0 15. wine NetFx30SP1_x86.exe ... --- quote ---
Wine bug 16876 ("Multiple Microsoft component/prerequisite installers hang in basic UI mode due to incorrect PropertySheet 'Finish' return value for modal sheets (WIC, PowerShell, XPSEPSC)") which is still present.
'XML Paper Specification Shared Components Pack 1.0' (XPSEP dated 2006) also suffered from bug 35041 (Multiple apps and games crash with heap corruption or live-lock in libX11 ("EA Origin, Garmin Express Fit, SMPlayer, LotRO launcher, Kindle for PC, Conan Exiles)('taskset -c 0 wine ./foo.exe' is a workaround)") when being run in UI mode.
===
The reference to bug 16876 as reason why the part of verb was introduced confuses to me. 'XML Paper Specification Shared Components Pack 1.0' (XPSEP dated 2006) is part of .NET Framework 3.0 installer which bundles the installer as prerequisite.
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.
XPSEP (2006) installs successfully as part of .NET Framework 3.0 even with very old Wine versions. I've tested with Wine 1.4 and it behaved same as Wine 6.0-rc6 with regards to XPSEP installer: the sub-installer did not show any UI.
'XPSEP XP and Server 2003 32 bit.msi' is 'Microsoft XML Paper Specification (XPS) Essentials Pack 1.0' (2010) but not the same as the one bundled with .NET Framework 3.0 (2006). It's a refresh, targeting newer OS (as the name implies) and installs a different set of files.
I'm fine with the removal. The existence of this part of the 'dotnet30sp1' verb should have been questioned years ago though.
If you run the XPSEP packages manually (without .NET Frameworks) one after each other in 'Windows XP' WINEPREFIX, the essentials pack installer will crash at one point. But that seems to be a different bug.
Regards
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
https://bugs.winehq.org/show_bug.cgi?id=50463
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|regression | Resolution|--- |NOTOURBUG Status|NEW |RESOLVED
--- Comment #6 from Austin English austinenglish@gmail.com --- https://github.com/Winetricks/winetricks/commit/f39e3a357ec9a661d531295b957e...
https://bugs.winehq.org/show_bug.cgi?id=50463
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Austin English austinenglish@gmail.com --- Closing.