[Bug 37078] Full Spectrum Warrior demo installer: 'Next' button has no effect after path selection (needs msi builtin 'OutOfNoRbDiskSpace' property)

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Aug 9 14:37:21 CDT 2014


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
          Component|-unknown                    |msi
            Summary|Full Spectrum Warrior demo  |Full Spectrum Warrior demo
                   |install failure             |installer: 'Next' button
                   |                            |has no effect after path
                   |                            |selection (needs msi
                   |                            |builtin
                   |                            |'OutOfNoRbDiskSpace'
                   |                            |property)

--- Comment #1 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming.

It seems Wine msi needs to provide 'OutOfNoRbDiskSpace' property.

'ControlEvent' table dumped with 'ORCA':

--- snip ---
CustomSetup    Help    SpawnDialog    CustomSetupTips    1    1
CustomSetup    Cancel    SpawnDialog    CancelSetup    1    1
CustomSetup    Back    NewDialog    LanguageSelection    Installed    2
CustomSetup    Back    NewDialog    GameInformation    NOT Installed    1
CustomSetup    Details    SelectionBrowse    DiskSpaceRequirements    1    1
CustomSetup    Next    NewDialog    ReadyToInstall    INSTALLDIRSMALL = 1 AND
OutOfNoRbDiskSpace <> 1    3
CustomSetup    Next    NewDialog    OutOfSpace    OutOfNoRbDiskSpace = 1    1
CustomSetup    Next    DoAction    CheckPathLength    OutOfNoRbDiskSpace = 0   
2
CustomSetup    Next    [_IsSetupTypeMin]    Custom    1    4
CustomSetup    ChangeFolder    SpawnDialog    InstallChangeFolder    1    1
CustomSetup    ChangeFolder    [_BrowseProperty]    INSTALLDIR    1    2
--- snip ---

Trace log when clicking 'Next' button:

--- snip ---
...
0087:trace:msi:msi_dialog_oncommand 0x1ef0d0 0x60138 00000000
...
0087:trace:msi:MSI_DatabaseOpenViewW L"SELECT * FROM ControlEvent WHERE
`Dialog_` = 'CustomSetup' AND `Control_` = 'Next' ORDER BY `Ordering`" 0x33f250
0
...
0087:trace:msi:MSI_EvaluateConditionW L"OutOfNoRbDiskSpace = 1"
...
0087:trace:msi:COND_GetString Got identifier L"OutOfNoRbDiskSpace" 
...
0087:trace:msi:msi_get_property property L"OutOfNoRbDiskSpace" not found
...
0087:trace:msi:MSI_EvaluateConditionW 0 <- L"OutOfNoRbDiskSpace = 1" 
...
0087:trace:msi:MSI_EvaluateConditionW L"OutOfNoRbDiskSpace = 0" 
...
0087:trace:msi:msi_get_property property L"OutOfNoRbDiskSpace" not found
...
0087:trace:msi:MSI_EvaluateConditionW 0 <- L"OutOfNoRbDiskSpace = 0"
...
0087:trace:msi:MSI_EvaluateConditionW L"INSTALLDIRSMALL = 1 AND
OutOfNoRbDiskSpace <> 1" 
...
0087:trace:msi:msi_get_property returning L"0" for property L"INSTALLDIRSMALL" 
...
0087:trace:msi:msi_get_property property L"OutOfNoRbDiskSpace" not found
...
0087:trace:msi:MSI_EvaluateConditionW 0 <- L"INSTALLDIRSMALL = 1 AND
OutOfNoRbDiskSpace <> 1" 
...
0087:trace:msi:MSI_EvaluateConditionW 1 <- L"1"
...
0087:trace:msi:msi_set_property 0x14db58 L"_IsSetupTypeMin" L"Custom" -1
...
0087:trace:msi:msi_dialog_evaluate_control_conditions 0x1ef0d0 L"CustomSetup" 
...
0087:trace:msi:MSI_EvaluateConditionW 0 <- L"Installed"
--- snip ---

'OutOfNoRbDiskSpace' property should be 'false' (= enough space) which triggers
'CheckPathLength' custom action (order id = 2).
After that 'ReadyToInstall' dialog should be spawned (order id = 3).

MSDN: http://msdn.microsoft.com/en-us/library/aa370565%28v=vs.85%29.aspx

--- quote ---
The installer sets the OutOfNoRbDiskSpace property to True if any volume that
is a target of the installation has insufficient disk space to accommodate the
installation. In this case, the OutOfNoRbDiskSpace property is set to True even
if rollback has been disabled. If all volumes have sufficient space, the value
is False.

A developer of an installation package can handle the situation when the
OutOfDiskSpace property is True and the OutOfNoRbDiskSpace property is False by
authoring a user interface that presents the user with an option to disable
rollback and continue the installation. For information about conditionally
displaying a dialog box, see ControlEvent Overview. For information about
disabling rollback, see EnableRollback ControlEvent.

The OutOfNoRbDiskSpace property is valid at any time after the CostFinalize
action has been executed. The OutOfNoRbDiskSpace property status is dynamically
updated any time the total installation cost is recalculated (for example, any
time the installation state of any feature is changed through the Selection
dialog). Selection resolution actions use this value to cancel an installation
and generate a dialog box.
--- quote ---

$ sha1sum fullspectrumwarrior_demo.zip 
03661c7f254dc5ccc4975bd9faeb25da373fc10f  fullspectrumwarrior_demo.zip

$ du -sh fullspectrumwarrior_demo.zip 
302M    fullspectrumwarrior_demo.zip

$ wine --version
wine-1.7.24

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