[PATCH 3/3] msi: Defer the appropriate standard actions to the install script.

Hans Leidekker hans at codeweavers.com
Thu Sep 21 02:31:51 CDT 2017


On Wed, 2017-09-20 at 23:53 -0500, Zebediah Figura wrote:
> diff --git a/dlls/msi/action.c b/dlls/msi/action.c
> index 915ff173e9..b5ed7c75a8 100644
> --- a/dlls/msi/action.c
> +++ b/dlls/msi/action.c
> @@ -7764,6 +7764,7 @@ static UINT ACTION_InstallSFPCatalogFile( MSIPACKAGE *package )
>  
>  static const struct
>  {
> +    BOOL deferred;
>      const WCHAR *action;
>      const UINT description;
>      const UINT template;
> @@ -7772,83 +7773,83 @@ static const struct
>  }
>  StandardActions[] =
>  {
[...]
> +    { 0, szAllocateRegistrySpace, IDS_DESC_ALLOCATEREGISTRYSPACE, IDS_TEMP_ALLOCATEREGISTRYSPACE, ACTION_AllocateRegistrySpace, NULL },
> +    { 0, szAppSearch, IDS_DESC_APPSEARCH, IDS_TEMP_APPSEARCH, ACTION_AppSearch, NULL },
> +    { 0, szBindImage, IDS_DESC_BINDIMAGE, IDS_TEMP_BINDIMAGE, ACTION_BindImage, NULL },
> +    { 0, szCCPSearch, IDS_DESC_CCPSEARCH, 0, ACTION_CCPSearch, NULL },
> +    { 0, szCostFinalize, IDS_DESC_COSTFINALIZE, 0, ACTION_CostFinalize, NULL },
> +    { 0, szCostInitialize, IDS_DESC_COSTINITIALIZE, 0, ACTION_CostInitialize, NULL },
> +    { 1, szCreateFolders, IDS_DESC_CREATEFOLDERS, IDS_TEMP_CREATEFOLDERS, ACTION_CreateFolders, szRemoveFolders },
> +    { 1, szCreateShortcuts, IDS_DESC_CREATESHORTCUTS, IDS_TEMP_CREATESHORTCUTS, ACTION_CreateShortcuts, szRemoveShortcuts },
> +    { 1, szDeleteServices, IDS_DESC_DELETESERVICES, IDS_TEMP_DELETESERVICES, ACTION_DeleteServices, szInstallServices },
> +    { 0, szDisableRollback, 0, 0, ACTION_DisableRollback, NULL },
> +    { 1, szDuplicateFiles, IDS_DESC_DUPLICATEFILES, IDS_TEMP_DUPLICATEFILES, ACTION_DuplicateFiles, szRemoveDuplicateFiles },
> +    { 0, szExecuteAction, 0, 0, ACTION_ExecuteAction, NULL },
> +    { 0, szFileCost, IDS_DESC_FILECOST, 0, ACTION_FileCost, NULL },
> +    { 0, szFindRelatedProducts, IDS_DESC_FINDRELATEDPRODUCTS, IDS_TEMP_FINDRELATEDPRODUCTS, ACTION_FindRelatedProducts, NULL },
> +    { 0, szForceReboot, 0, 0, ACTION_ForceReboot, NULL },
> +    { 0, szInstallAdminPackage, IDS_DESC_INSTALLADMINPACKAGE, IDS_TEMP_INSTALLADMINPACKAGE, ACTION_InstallAdminPackage, NULL },
> +    { 0, szInstallExecute, 0, 0, ACTION_InstallExecute, NULL },
> +    { 0, szInstallExecuteAgain, 0, 0, ACTION_InstallExecute, NULL },
> +    { 1, szInstallFiles, IDS_DESC_INSTALLFILES, IDS_TEMP_INSTALLFILES, ACTION_InstallFiles, szRemoveFiles },
> +    { 0, szInstallFinalize, 0, 0, ACTION_InstallFinalize, NULL },
> +    { 0, szInstallInitialize, 0, 0, ACTION_InstallInitialize, NULL },
> +    { 1, szInstallODBC, IDS_DESC_INSTALLODBC, 0, ACTION_InstallODBC, szRemoveODBC },
> +    { 1, szInstallServices, IDS_DESC_INSTALLSERVICES, IDS_TEMP_INSTALLSERVICES, ACTION_InstallServices, szDeleteServices },
> +    { 0, szInstallSFPCatalogFile, IDS_DESC_INSTALLSFPCATALOGFILE, IDS_TEMP_INSTALLSFPCATALOGFILE, ACTION_InstallSFPCatalogFile, NULL },
> +    { 0, szInstallValidate, IDS_DESC_INSTALLVALIDATE, 0, ACTION_InstallValidate, NULL },
> +    { 0, szIsolateComponents, 0, 0, ACTION_IsolateComponents, NULL },
> +    { 0, szLaunchConditions, IDS_DESC_LAUNCHCONDITIONS, 0, ACTION_LaunchConditions, NULL },
> +    { 0, szMigrateFeatureStates, IDS_DESC_MIGRATEFEATURESTATES, IDS_TEMP_MIGRATEFEATURESTATES, ACTION_MigrateFeatureStates, NULL },
> +    { 0, szMoveFiles, IDS_DESC_MOVEFILES, IDS_TEMP_MOVEFILES, ACTION_MoveFiles, NULL },
> +    { 1, szMsiPublishAssemblies, IDS_DESC_MSIPUBLISHASSEMBLIES, IDS_TEMP_MSIPUBLISHASSEMBLIES, ACTION_MsiPublishAssemblies, szMsiUnpublishAssemblies },
> +    { 1, szMsiUnpublishAssemblies, IDS_DESC_MSIUNPUBLISHASSEMBLIES, IDS_TEMP_MSIUNPUBLISHASSEMBLIES, ACTION_MsiUnpublishAssemblies, szMsiPublishAssemblies },
> +    { 0, szPatchFiles, IDS_DESC_PATCHFILES, IDS_TEMP_PATCHFILES, ACTION_PatchFiles, NULL },

If the criterion is making modifications to the system, why are MoveFiles and PatchFiles
not deferred?





More information about the wine-devel mailing list