Hans Leidekker
9c9e0981b4
msi: Implement the DisableRollback standard action.
2011-05-20 12:44:22 +02:00
Hans Leidekker
01433f0f30
msi: Make sure that the target root directory has a trailing backslash.
2011-05-17 12:04:40 +02:00
Hans Leidekker
c5ab1c37bf
Revert "msi: Avoid loading cabinet streams more than once.".
...
This reverts commit 395479f0d1
.
2011-05-17 12:04:38 +02:00
Hans Leidekker
1650367e16
msi: Remove redundant tracing.
2011-05-12 18:22:40 +02:00
Hans Leidekker
e8bdbf879a
msi: Don't resolve child folders if the parent path is unmodified.
2011-05-11 14:56:49 +02:00
Hans Leidekker
bffd5e0cbb
msi: Destroy assembly caches right after use.
...
This avoids keeping dlls loaded that the .NET service pack installers want to replace.
2011-05-06 16:39:51 +02:00
Hans Leidekker
395479f0d1
msi: Avoid loading cabinet streams more than once.
2011-05-06 16:39:45 +02:00
Hans Leidekker
0c43024af7
msi: Get rid of helpers.c.
2011-05-06 16:39:08 +02:00
Hans Leidekker
cd34bfe6c1
msi: Define common strings just once.
2011-05-02 16:40:20 +02:00
Hans Leidekker
4668091528
msi: Rewrite the folder resolution code to keep track of the parent-child relationship.
2011-05-02 16:40:06 +02:00
Hans Leidekker
8fb5368d4e
msi: Use a separate function to retrieve the target folder path.
2011-05-02 16:39:52 +02:00
Hans Leidekker
0d0074d56b
msi: Skip disabled components in the InstallService action.
2011-05-02 16:39:44 +02:00
Hans Leidekker
eee070f1e0
msi: Add offsets to disk ids added by patches.
2011-04-14 17:37:23 +02:00
Hans Leidekker
846811be59
msi: Check the return value of MSIREG_OpenUpgradeCodesKey (valgrind).
2011-04-14 17:37:22 +02:00
Hans Leidekker
d447ae63b3
msi: Honor msidbFeatureAttributesFollowParent.
2011-04-05 14:42:56 +02:00
Hans Leidekker
ce0b3a030b
msi: Fix parsing of an empty property followed by a non-empty property.
2011-04-05 14:42:52 +02:00
Hans Leidekker
68d6158875
msi: Implement and test MsiEnumComponentCostsA/W.
2011-04-01 16:16:04 +02:00
Hans Leidekker
0aaf17c0d8
msi: Fix buffer size calculation in get_keypath.
2011-03-31 12:49:42 +02:00
Hans Leidekker
8d58ddfe12
msi: Accept whitespace-only property values on the command line.
2011-03-30 13:28:05 +02:00
Hans Leidekker
e4d19fc47b
msi: Explicitly pass product code and platform to MSIREG_OpenUninstallKey and MSIREG_DeleteUninstallKey.
2011-03-30 13:28:05 +02:00
Hans Leidekker
e82a4896f3
msi: Ignore invalid upgrade codes in the PublishProduct action.
2011-03-30 13:28:05 +02:00
David Hedberg
6771ed40e8
msi: Add support for patching files.
2011-03-29 12:22:34 +02:00
David Hedberg
fed6e5211c
msi: Add an offset to sequence numbers belonging to files added by a patch.
2011-03-29 12:21:49 +02:00
Hans Leidekker
12135acb70
msi: Skip reference counting for assembly components.
2011-03-16 14:14:23 +01:00
Hans Leidekker
888a19c02c
msi: Build the key path from the display name if the component is an assembly.
2011-03-09 12:31:56 +01:00
Hans Leidekker
e292eb121d
msi: Also register components without a key path.
2011-03-09 12:31:53 +01:00
Hans Leidekker
4a6c63e24a
msi: Make a second pass to determine which files to install in the InstallFiles action.
...
This is needed because the target path can still change after CostFinalize
is executed. This happens in the .NET 1.1 Service Pack 1 installer where a
custom action calls SetTargetPath.
2011-03-08 12:30:49 +01:00
Hans Leidekker
92b5b3fd8c
msi: Preserve existing advertise strings in the PublishComponents action.
2011-02-10 10:28:01 -06:00
Hans Leidekker
ba9f1f770a
msi: Get rid of msi_component_set_state and msi_feature_set_state.
2011-02-10 10:28:01 -06:00
Hans Leidekker
b96e5d21c6
msi: Split up resolve_folder.
2011-02-07 10:17:15 -06:00
Hans Leidekker
92203f1053
msi: Implement the MsiPublishAssemblies and MsiUnpublishAssemblies standard actions.
2011-01-24 16:04:28 +01:00
Hans Leidekker
701f14801f
msi: Clean up better when removing a product.
2011-01-20 12:23:09 +01:00
Hans Leidekker
8933013b62
msi: Search all contexts in ACTION_GetComponentInstallStates.
2011-01-20 12:23:04 +01:00
Hans Leidekker
34b9e4c20f
msi: Don't ignore disabled components when resolving install states.
...
Otherwise features are not published correctly.
2011-01-19 12:32:39 +01:00
Hans Leidekker
d08378a06f
msi: Fix parsing of patch product codes (valgrind).
2011-01-12 14:55:56 +01:00
Hans Leidekker
94f4c0f07d
msi: Fix a memory leak (valgrind).
2011-01-12 14:55:43 +01:00
Hans Leidekker
0c25649d3e
msi: Add support for comparing TrueType font versions.
2011-01-11 16:05:46 +01:00
Hans Leidekker
706b54daa7
msi: Use a function to determine if a feature is selected.
2010-12-24 15:51:25 +01:00
Hans Leidekker
6625f07ebf
msi: Don't flag an error in the InstallServices action if the component does not exist.
2010-12-23 17:45:07 +01:00
Hans Leidekker
489f82e9b4
msi: Rewrite command line parsing to handle quoted values correctly.
2010-12-23 17:44:47 +01:00
Hans Leidekker
b376f41766
msi: Don't try to install or remove ODBC drivers if the component is disabled.
2010-12-09 12:17:12 +01:00
Hans Leidekker
79da91eb7e
msi: Improve the stub implementations of RemoveExistingProducts and MigrateFeatureStates.
2010-11-30 16:21:19 +01:00
Hans Leidekker
09eb7f1eb7
msi: Look for transform files relative to the package directory.
2010-11-30 16:21:13 +01:00
Hans Leidekker
c47ecd1ccc
msi: Always ignore disabled components.
2010-11-30 16:21:01 +01:00
Hans Leidekker
1f96b882e9
msi: Fix the Create/RemoveFolders actions to actually create and remove empty folders.
2010-11-26 14:59:02 +01:00
Hans Leidekker
6d13e2fd4b
msi: Components don't require a key path.
2010-11-16 11:48:14 +01:00
Hans Leidekker
9d46ba417e
msi: Don't use a temporary directory for local assemblies.
2010-11-12 16:59:24 +01:00
Hans Leidekker
a23514eece
msi: Add support for installing side-by-side assemblies.
2010-11-11 12:23:06 +01:00
Hans Leidekker
3faddc21b3
msi: Calculate file install states after evaluating component conditions, not before.
2010-11-11 12:22:50 +01:00
Hans Leidekker
8fd47bbef7
msi: Remove redundant function msi_find_file.
2010-11-11 12:22:35 +01:00
Hans Leidekker
5871ad6d00
msi: Revert 3cd55cc916
.
...
It breaks the Office 2003 installer.
2010-11-03 16:06:43 +01:00
Hans Leidekker
ee7d8547b6
msi: Downgrade some warnings.
2010-11-03 16:06:21 +01:00
Hans Leidekker
566e67a491
msi: Components don't require a key path.
2010-11-03 16:06:17 +01:00
Aleksey Bragin
8c5718ec9d
msi: Fix freed memory access and fix freeing of invalid pointer.
2010-10-22 19:05:12 +02:00
Hans Leidekker
031c70c965
msi: Register service arguments in the InstallServices action.
2010-10-22 12:07:00 +02:00
Hans Leidekker
7f5204e1bc
msi: Register service dependencies in the InstallServices action.
2010-10-22 12:06:54 +02:00
Hans Leidekker
7a460eba71
msi: The LoadOrderGroup, StartName and Password fields from the ServiceInstall table are formatted strings.
2010-10-22 12:06:49 +02:00
Hans Leidekker
d7dbb7e08d
msi: Register the service description in the InstallServices action.
2010-10-22 12:06:44 +02:00
Hans Leidekker
ded22a58c0
msi: Don't inline msi_feature_set_state and msi_component_set_state.
2010-10-22 12:06:33 +02:00
Hans Leidekker
eaa57c5b7b
msi: Compare strings without depending on thread locale.
2010-10-19 13:49:54 +02:00
Hans Leidekker
59d6dcfddd
msi: Put keys from 32-bit packages starting with HLKM\Software under Wow6432Node on 64-bit.
2010-10-13 15:52:27 +02:00
Hans Leidekker
85874c07b9
msi: Look at the requested action instead of the action taken in MSI_SetFeatureStates.
2010-10-06 20:46:32 +02:00
Hans Leidekker
52aab76eb2
msi: Put the uninstall key for 32-bit packages under Wow6432Node on 64-bit.
2010-10-05 17:50:16 +02:00
Hans Leidekker
931bf05731
msi: Adjust the AdminUser property too after applying a patch.
2010-09-18 13:06:17 +02:00
Hans Leidekker
44b15b061b
msi: Create the product key if necessary in msi_publish_patches.
...
Fixes a regression caused by c9fb24927d
.
2010-08-27 12:08:16 +02:00
Hans Leidekker
64eec8f9fa
msi: Register dlls directly in the SelfRegModules and SelfUnregModules actions.
2010-07-23 11:46:16 +02:00
Hans Leidekker
bd634c0491
msi: Set/unset the SourceDir property at the right stage in the execution sequence.
2010-07-23 11:46:01 +02:00
Hans Leidekker
ad971803da
msi: Never defer standard actions.
2010-07-23 11:45:49 +02:00
Hans Leidekker
06afeec2a5
msi: Make sure properties are updated after applying a patch.
2010-07-22 16:09:09 +02:00
Hans Leidekker
424e3a9fb8
msi: Move the component enabled check into the standard actions.
2010-07-21 13:24:00 +02:00
Hans Leidekker
568c7c198c
msi: Set feature states to the installed state if the Preselected property is not set.
2010-07-21 13:24:00 +02:00
Hans Leidekker
c9fb24927d
msi: Publish patches regardless of any features being installed locally.
2010-07-21 13:24:00 +02:00
Hans Leidekker
b87271150a
msi: Unpublish the product after running all the actions.
2010-07-20 16:29:45 +02:00
Hans Leidekker
f7aa88fe7d
msi: Store the patch state in the registry.
2010-07-20 16:29:45 +02:00
Hans Leidekker
15f5b9dca3
msi: Compare file versions as numbers instead of strings.
2010-06-11 15:54:24 +02:00
Hans Leidekker
b8ac327e7e
msi: Display the directory identifier instead of the full path in standard actions.
2010-06-09 16:15:52 +02:00
Hans Leidekker
dcb501decd
msi: Create directories right before installing files.
2010-06-09 16:12:44 +02:00
Hans Leidekker
35a0461baa
msi: Improve parsing of patch summary information.
2010-05-31 12:46:08 +02:00
Hans Leidekker
d17ebc4032
msi: Advance to the right cabinet in ACTION_MsiPublishAssemblies.
2010-05-31 12:46:08 +02:00
Hans Leidekker
376c2fd02b
msi: Store the disk id in the MSIFILE structure.
2010-05-12 18:46:28 +02:00
Hans Leidekker
dd305c3700
msi: Set the SourceDir property to the registered source if the product is installed.
2010-05-11 16:28:18 +02:00
Hans Leidekker
41a7f025e4
msi: Avoid A->W conversions in msi_publish_install_properties.
2010-05-11 16:28:12 +02:00
Hans Leidekker
347bb13fc7
msi: Set install properties just once.
2010-05-11 16:28:07 +02:00
Hans Leidekker
82d7b04c2c
msi: Apply registered patches in MsiOpenPackage.
2010-05-05 15:27:12 +02:00
Hans Leidekker
920fc345ba
msi: Register more patch details.
2010-05-04 13:15:00 +02:00
Hans Leidekker
23eabb44c8
msi: Make a local copy of patch packages.
2010-05-04 13:15:00 +02:00
Hans Leidekker
162780d112
msi: Support multiple patches per package.
2010-04-29 10:19:40 -05:00
Hans Leidekker
df6b195a1a
msi: Simplify msi_set_context.
2010-04-29 10:19:40 -05:00
Hans Leidekker
c6f281fcf7
msi: Make sure to only open a patch database in msi_apply_patch_package.
2010-04-29 10:19:40 -05:00
Hans Leidekker
82fdc926a2
msi: Move all file comparisons to CostFinalize.
...
File costing can't be done correctly on upgrades unless we know
which files are going to be overwritten.
2010-04-28 15:04:40 -05:00
Hans Leidekker
9af488d236
msi: Always evaluate component conditions.
...
Fixes a regression caused by 0d770c96fe
.
2010-04-28 15:04:40 -05:00
Hans Leidekker
e31ee69f37
msi: Rename MSI_GetPropertyW and MSI_SetPropertyW.
...
For consistency with related functions msi_dup_property and msi_get_property_int
and because there is no ANSI version of these functions.
2010-04-21 11:57:33 +02:00
Hans Leidekker
44b7983913
msi: Make MSI_SetPropertyW take a pointer to a database instead of a package.
2010-04-21 11:57:33 +02:00
Hans Leidekker
186f4efa3f
msi: Make msi_get_property_int and friends take a pointer to a database instead of a package.
...
They only operate on a database and this way we can use them before a package is created.
2010-04-21 11:57:33 +02:00
Hans Leidekker
9a9faeffd8
msi: Don't assume unversioned files are present.
2010-04-19 14:57:43 +02:00
Hans Leidekker
33299faae4
msi: Move application of substorage transforms out of msi_parse_patch_summary.
2010-04-13 11:48:30 +02:00
Hans Leidekker
bcc0ad9b07
msi: Release summary information on error in msi_parse_patch_summary.
2010-04-13 11:48:25 +02:00
Hans Leidekker
3050cde95e
msi: Implement the UnregisterMIMEInfo standard action.
2010-04-02 15:22:49 +02:00
Hans Leidekker
17d7effd2a
msi: Implement the UnregisterExtensionInfo standard action.
2010-04-02 15:22:49 +02:00
Hans Leidekker
3bdfa1f624
msi: Implement the UnregisterProgIdInfo standard action.
2010-04-02 15:22:48 +02:00
Hans Leidekker
843968c056
msi: Implement the UnregisterClassInfo standard action.
2010-04-02 15:22:47 +02:00
Mikhail Maroukhine
86f76d2b48
msi: Fix compiler warnings with flag -Wcast-qual.
2010-03-29 12:14:44 +02:00
Mikhail Maroukhine
f930c87fd6
objbase.h: CLSIDFromString: Add constness to the parameters declaration in accordance with MSDN.
2010-03-29 12:11:02 +02:00
Hans Leidekker
5a08c9ed6f
msi: Improve the SetODBCFolders action stub.
2010-03-26 15:35:37 +01:00
Hans Leidekker
129161fec5
msi: Update the UI in the StartServices and StopServices actions.
2010-03-26 15:35:17 +01:00
Hans Leidekker
d0856c0ac5
msi: Display REG_EXPAND_SZ values too in the WriteRegistryValues action.
2010-03-23 13:24:26 +01:00
Hans Leidekker
18a85caa3c
msi: Update the UI in the UnpublishFeatures action.
2010-03-23 13:24:26 +01:00
Hans Leidekker
27e90274b5
msi: Set the action taken in the ProcessComponents and InstallFiles actions.
2010-03-23 13:24:26 +01:00
Hans Leidekker
8722d0c44a
msi: The AppSearch and CCPSearch actions must be run only once.
2010-03-23 13:24:26 +01:00
Hans Leidekker
a4be941df9
msi: Display the file identifier instead of the filename in the SelfRegModules and SelfUnregModules actions.
2010-03-23 13:24:26 +01:00
Hans Leidekker
ab9a181326
msi: Update the UI in the RegisterUser action.
2010-03-05 13:14:41 +01:00
Hans Leidekker
4341f18c7e
msi: Update the UI in the RegisterProduct action.
2010-03-05 13:14:36 +01:00
Hans Leidekker
c547fb3629
msi: Display the product code in the PublishProduct action.
2010-03-05 13:14:32 +01:00
Hans Leidekker
e90fbf09c7
msi: Update the UI in the MsiPublishAssemblies action.
2010-03-05 13:14:27 +01:00
Hans Leidekker
a358c7f6d4
msi: Update the UI in the MoveFiles action.
2010-03-05 13:14:23 +01:00
Hans Leidekker
aba6afc85e
msi: Move the implementation of the MoveFiles action to files.c.
2010-03-05 13:14:19 +01:00
Hans Leidekker
a5549305de
msi: Update the UI in the RemoveODBC action.
2010-03-05 13:14:11 +01:00
Hans Leidekker
eff0503f64
msi: Update the UI in the InstallODBC action.
2010-03-05 13:14:06 +01:00
Hans Leidekker
3c36d9d1f9
msi: Update the UI in the DeleteServices action.
2010-03-05 13:13:52 +01:00
Hans Leidekker
a70d86d3c9
msi: Display directory identifier instead of the full path in the CreateFolders action.
2010-03-05 13:13:47 +01:00
Hans Leidekker
31d0664ebd
msi: Update the UI in the AllocateRegistrySpace action.
2010-03-05 13:13:37 +01:00
Hans Leidekker
353035fadd
msi: Initialize a couple of variables.
...
Found by Valgrind.
2010-03-04 12:30:29 +01:00
Hans Leidekker
f62211198a
msi: Implement the RemoveEnvironmentStrings standard action.
2010-03-03 15:23:23 +01:00
Hans Leidekker
b891d0888a
msi: Implement the RemoveIniValues standard action.
2010-03-02 16:12:17 +01:00
Hans Leidekker
6c6b2a7a18
msi: Look at the requested action when publishing assemblies, not the action taken.
2010-03-02 16:11:53 +01:00
Hans Leidekker
ff3ed5f051
msi: Look at the requested action when moving files, not the action taken.
2010-03-02 16:11:49 +01:00
Hans Leidekker
c13d84fffc
msi: Look at the requested action when deleting services, not the action taken.
2010-03-02 16:11:44 +01:00
Hans Leidekker
2d3676d912
msi: Look at the requested action when stopping services, not the action taken.
2010-03-02 16:11:40 +01:00
Hans Leidekker
87448dcaeb
msi: Look at the requested action when installing services, not the action taken.
2010-03-02 16:11:36 +01:00
Hans Leidekker
c8308ef99d
msi: Only create environment strings when the component is set to be installed.
2010-03-02 16:11:31 +01:00
Hans Leidekker
a64372ca44
msi: Improve a trace.
2010-03-02 16:11:24 +01:00
Hans Leidekker
930b5e1c68
msi: The table for isolated components is called IsolatedComponent.
2010-02-26 14:20:53 +01:00
Hans Leidekker
342f866044
msi: Implement the RemoveRegistryValues standard action.
2010-02-25 16:00:51 +01:00
Hans Leidekker
253a7fa73c
msi: Implement the RemoveDuplicateFiles standard action.
2010-02-23 13:31:01 +01:00
Hans Leidekker
587e107398
msi: Allocate sufficient memory in ITERATE_InstallODBCDriver and ITERATE_InstallODBCTranslator.
...
Found by Valgrind.
2010-02-22 13:15:22 +01:00
Hans Leidekker
0f0e81d14a
msi: Implement the UnpublishComponents standard action.
2010-02-17 10:57:40 +01:00
Hans Leidekker
d95e3eb4d2
msi: PublishComponents must look at the requested install state of the feature, not the component.
2010-02-17 10:57:35 +01:00
Hans Leidekker
9cbb80d984
msi: Only run the CreateFolder and RemoveFolder actions when the component is set to be installed or removed, respectively.
2010-02-16 12:29:08 +01:00
Hans Leidekker
c32d9d7004
msi: Get rid of ACTION_VerifyFeatureForAction.
2010-02-16 12:29:01 +01:00
Hans Leidekker
598c542607
msi: Get rid of ACTION_VerifyComponentForAction.
2010-02-16 12:28:56 +01:00
Hans Leidekker
54391a11c0
msi: Update the UI when registering or unregistering type libraries.
2010-02-16 12:28:48 +01:00
Hans Leidekker
2276c291fc
msi: Implement the RemoveShortcuts standard action.
2010-02-15 12:20:02 +01:00
Hans Leidekker
f7879b43d5
msi: Fix a memory leak in ITERATE_StartService.
...
Found by Valgrind.
2010-02-12 14:49:38 +01:00
Hans Leidekker
82d50fa675
msi: Return the right error from ITERATE_RegisterTypeLibraries.
2010-02-12 14:49:38 +01:00
Hans Leidekker
98761037ab
msi: Implement the UnregisterTypeLibraries standard action.
2010-02-12 14:49:38 +01:00
Hans Leidekker
28bf8e1f0d
msi: Implement the RemoveODBC standard action.
2010-02-11 14:38:45 +01:00
Hans Leidekker
2568e5ec65
msi: Make sure attrs variable is properly double nul-terminated in ITERATE_InstallODBCDataSource.
2010-02-11 14:38:45 +01:00
Hans Leidekker
4742dfba98
msi: The File_Setup field in the ODBCDriver and ODBCTranslator tables is optional.
2010-02-11 14:38:45 +01:00
Hans Leidekker
068cb1291b
msi: Add a partial implementation of the ValidateProductID standard action.
2010-02-10 14:31:49 +01:00
Hans Leidekker
7331b3ca98
msi: Implement the UnregisterFonts standard action.
2010-02-10 14:31:15 +01:00