[Bug 50463] winetricks dotnet30sp1 fails to install XpsFilt.dll from Microsoft XML Paper Specification (XPS) Essentials Pack 1.0 (2010)

WineHQ Bugzilla wine-bugs at winehq.org
Mon Jan 11 06:49:01 CST 2021


https://bugs.winehq.org/show_bug.cgi?id=50463

--- Comment #5 from Anastasius Focht <focht at 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

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list