[Bug 19126] VS 2005 SP1 installation failure

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Jun 29 15:54:24 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=19126


Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net




--- Comment #1 from Anastasius Focht <focht at gmx.net>  2009-06-29 15:54:19 ---
Hello,

Wine's msi ignores embedded transforms stored in patch file (GUID
000C1082-0000-0000-C000-000000000046).

See:

http://blogs.msdn.com/heaths/archive/2006/02/27/539960.aspx ("Identifying
Windows Installer File Types")

--- snip ---
...
0028:Call msi.MsiGetSummaryInformationA(00000000,0032fc84
"C:\\windows\\temp\\f97.tmp",00000000,0032fc20) ret=01014f25
...
0028:trace:msi:MsiGetSummaryInformationW 0 L"C:\\windows\\temp\\f97.tmp" 0
0x32fc20
0028:trace:msi:MSI_OpenDatabaseW L"C:\\windows\\temp\\f97.tmp" (null)
0028:Call ole32.StgOpenStorage(0013d0e8
L"C:\\windows\\temp\\f97.tmp",00000000,00000020,00000000,00000000,0032fa6c)
ret=70511891
0028:Call KERNEL32.CreateFileW(0013d0e8
L"C:\\windows\\temp\\f97.tmp",80000000,00000001,00000000,00000003,10000080,00000000)
ret=7067410d
0028:Ret  KERNEL32.CreateFileW() retval=00000070 ret=7067410d 
...
0028:Ret  ole32.StgOpenStorage() retval=00000000 ret=70511891
...
0028:err:msi:MSI_OpenDatabaseW storage GUID is not a MSI database GUID
{000c1082-0000-0000-c000-000000000046} 
...
0028:Ret  msi.MsiGetSummaryInformationA() retval=0000065b ret=01014f25
0028:Call msi.MsiGetLastErrorRecord() ret=01011e3b
0028:fixme:msi:MsiGetLastErrorRecord 
0028:Ret  msi.MsiGetLastErrorRecord() retval=00000000 ret=01011e3b
0028:Call KERNEL32.CreateFileA(004a2770
"C:\\windows\\temp\\VS80sp1-KB926750-X86-ENU\\VS80sp1-KB926750-X86-ENU-wrapper.log",40000000,00000001,00000000,00000004,00000080,00000000)
ret=01011c66 
--- snip ---

--- snip msi/dlls/database.c ---
UINT MSI_OpenDatabaseW(LPCWSTR szDBPath, LPCWSTR szPersist, MSIDATABASE **pdb)
{ 
...
    if( szPersist == MSIDBOPEN_READONLY )
    {
        r = StgOpenStorage( szDBPath, NULL,
              STGM_DIRECT|STGM_READ|STGM_SHARE_DENY_WRITE, NULL, 0, &stg);
    } 
...
    if( FAILED( r ) || !stg )
    {
        FIXME("open failed r = %08x for %s\n", r, debugstr_w(szDBPath));
        return ERROR_FUNCTION_FAILED;
    }

    r = IStorage_Stat( stg, &stat, STATFLAG_NONAME );
    if( FAILED( r ) )
    {
        FIXME("Failed to stat storage\n");
        goto end;
    }

    if ( !IsEqualGUID( &stat.clsid, &CLSID_MsiDatabase ) &&
         !IsEqualGUID( &stat.clsid, &CLSID_MsiPatch ) ) 
    {
        ERR("storage GUID is not a MSI database GUID %s\n",
             debugstr_guid(&stat.clsid) );
        goto end;
    } 
--- snip msi/dlls/database.c ---

Though it should be able to load summary info from transforms with minor
effort.

---

As side note, the patch installer also produces its own log file to make
diagnosis easier. Though Wine debugging channels are much more verbose ;-)

See: http://blogs.msdn.com/heaths/archive/2005/10/20/483129.aspx

--- snip VS80sp1-KB926750-X86-ENU-wrapper.log ---
...
         + Initializing patch object from patch package
            + Releasing products
            - Releasing products
            Accessing summary info for LastSavedBy
            + Loading summary info from file
            - Loading summary info from file
            LastSavedBy = :T2_26ToU295_26;:#T2_26ToU295_26
            Products counted, 1 found
            Initializing all products found
            + Creating temporary file
            - Creating temporary file
            + Transform extraction...
               Extracting transform 'T2_26ToU295_26' to
"C:\windows\temp\f97.tmp"
            - Transform extraction...
            + Initializing product from transform
               + Loading summary info from file
                  ERROR: [1627] Failed to get summary information.
               - Loading summary info from file
               ERROR [1627]: ERROR_FUNCTION_FAILED

            - Initializing product from transform
            ERROR [1627]: ERROR_FUNCTION_FAILED

         - Initializing patch object from patch package
         ERROR [1627]: ERROR_FUNCTION_FAILED
...
--- snip VS80sp1-KB926750-X86-ENU-wrapper.log ---

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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