[Bug 21744] New: msi.MsiGetMode( MSIRUNMODE_MAINTENANCE) case should return false on new installs (TecDoc CATALOG 1/2010 installer)

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Feb 16 16:13:11 CST 2010


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

           Summary: msi.MsiGetMode( MSIRUNMODE_MAINTENANCE) case should
                    return false on new installs (TecDoc CATALOG 1/2010
                    installer)
           Product: Wine
           Version: 1.1.38
          Platform: x86
               URL: http://www.tecdoc.de
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: msi
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: focht at gmx.net


Hello,

TecDoc CATALOG 1/2010 DVD installer fails because Wine msi doesn't explicitly
handle MsiGetMode( ... MSIRUNMODE_MAINTENANCE), returning "true" by default.
This lets the app installer assume an already installed product (id) which
doesn't exist, leading to subsequent failure.
On new installs, msi must not return MSIRUNMODE_MAINTENANCE == true.

--- snip ---
...
0040:Call msi.MsiGetMode(00000002,00000002) ret=10007cd0
0040:Call KERNEL32.InterlockedIncrement(001802b0) ret=6894088f
0040:Ret  KERNEL32.InterlockedIncrement() retval=00000002 ret=6894088f
0040:fixme:msi:MsiGetMode 2 2
0040:Ret  msi.MsiGetMode() retval=00000001 ret=10007cd0 
...
0040:Call KERNEL32.MultiByteToWideChar(00000000,00000000,017208c8
"INSTALLSCRIPT(2-16-2010 22:04:44)-> bRunModeMAINTENANCE
[1]",00000400,0143ed2e,00000400) ret=10005f1d 
...
--- snip ---

Installer log (c:\windows\OfflineCatalogue_1_2010_TECDOC_CD.log):

------------SystemInfo----------------------
...
INSTALLSCRIPT(2-16-2010 22:04:44)-> Command line []
INSTALLSCRIPT(2-16-2010 22:04:44)-> Product code
[{02DBE211-1FE3-4644-A386-1B2F3366D92F}]
INSTALLSCRIPT(2-16-2010 22:04:44)-> Start <InitializationSetup()>
INSTALLSCRIPT(2-16-2010 22:04:44)-> Start <GetCompanyName()>
INSTALLSCRIPT(2-16-2010 22:04:44)-> Finish <GetCompanyName(TECDOC)>
INSTALLSCRIPT(2-16-2010 22:04:44)-> COMPANY_NAME [TECDOC]
INSTALLSCRIPT(2-16-2010 22:04:44)-> bRunModeMAINTENANCE [1]
INSTALLSCRIPT(2-16-2010 22:04:44)-> MAINTENANCE [0] 
...
INSTALLSCRIPT(2-16-2010 22:04:44)-> Finish <CheckRelease()>. Return code [0]
INSTALLSCRIPT(2-16-2010 22:04:44)-> Will be uinstalled [TECDOC CD 1.2010]
INSTALLSCRIPT(2-16-2010 22:04:44)-> Start <GetSetupTypeProduct
({02DBE211-1FE3-4644-A386-1B2F3366D92F},0)>
INSTALLSCRIPT(2-16-2010 22:04:44)-> Return code MsiQueryProductState [-1]
INSTALLSCRIPT(2-16-2010 22:04:44)-> Finish <GetSetupTypeProduct
({02DBE211-1FE3-4644-A386-1B2F3366D92F},-1)>. Return code [-1]
INSTALLSCRIPT(2-16-2010 22:04:44)-> Installed setup type [-1]
INSTALLSCRIPT(2-16-2010 22:04:44)-> Setup type current installation [303]
INSTALLSCRIPT(2-16-2010 22:04:44)-> Start
<GetLocateProduct({02DBE211-1FE3-4644-A386-1B2F3366D92F},,1,1)>
INSTALLSCRIPT(2-16-2010 22:04:44)-> Start <GetProductVersion
({02DBE211-1FE3-4644-A386-1B2F3366D92F},,_)>
INSTALLSCRIPT(2-16-2010 22:04:44)-> Finish <GetProductVersion
({02DBE211-1FE3-4644-A386-1B2F3366D92F},1_2010,_)>
INSTALLSCRIPT(2-16-2010 22:04:44)-> Return code MsiEnumComponents(0,) [259]
INSTALLSCRIPT(2-16-2010 22:04:44)-> Finish
<GetLocateProduct({02DBE211-1FE3-4644-A386-1B2F3366D92F},,1,1)>. Return code
[-1]
INSTALLSCRIPT(2-16-2010 22:04:44)-> Install dir and Product ID uninstalled
product [],[]
User aborts the installation, ready to launch __OnAbort.
------------------------------------------
SETUP WAS ABORTED
The following actions were occured after abort.
------------------------------------------
INSTALLSCRIPT(2-16-2010 22:04:44)-> Start <OnAbort()>
INSTALLSCRIPT(2-16-2010 22:04:44)-> Finish <OnAbort()> 
--- snip ---

--- snip dlls/msi/install.c ---
BOOL WINAPI MsiGetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode)
{
...
    default:
        FIXME("%d %d\n", hInstall, iRunMode);
        r = TRUE;
    }

    return r;
}
--- snip dlls/msi/install.c ---

Returning false for msi.MsiGetMode( MSIRUNMODE_MAINTENANCE) on new installs
lets the installer proceed.

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