Hans Leidekker
a248f4f001
msi: Set the OriginalDatabase property after applying transforms, not before.
2013-01-21 16:27:41 +01:00
Hans Leidekker
6488a6a5e4
msi: Extend registry helpers to support opening the features key for a specific user.
2013-01-09 17:39:32 +01:00
Hans Leidekker
c66b78a810
msi: Don't set the Preselected property for a full reinstall.
2012-12-11 20:45:42 +01:00
Hans Leidekker
ed4ce217d3
msi: Don't set the REINSTALL property if the product will be patched.
2012-11-19 16:35:36 +01:00
Frédéric Delanoy
098b3c7294
msi: Fix leaks in ITERATE_InstallService (coverity).
2012-11-16 19:27:23 +01:00
Frédéric Delanoy
cac26d47a0
msi: Fix leaks in stop_service_dependents (coverity).
2012-11-16 19:26:50 +01:00
Hans Leidekker
e15121771c
msi: Fix use of uninitialized variables.
2012-11-09 17:09:02 +01:00
Hans Leidekker
b036ee6309
msi: Register dlls in a separate process.
2012-11-07 18:12:10 +01:00
Hans Leidekker
e2900c23c7
msi: Make sure either the REINSTALL or the REMOVE property is set when the product is already installed.
2012-11-07 18:12:09 +01:00
Hans Leidekker
26299647f7
msi: Remove a component regardless of its install state, unless it's a permanent component.
2012-11-07 18:12:09 +01:00
Hans Leidekker
7d3f903db1
msi: Fix handling of REG_MULTI_SZ values in the WriteRegistryValues action.
2012-11-05 17:44:18 +01:00
Hans Leidekker
929d234072
msi: Return length instead of size from deformat_string.
2012-10-29 14:41:41 +01:00
Hans Leidekker
0f1d3474a8
msi: Add a length parameter to msi_set_property and use it where appropriate.
2012-10-29 14:41:36 +01:00
Hans Leidekker
dd8f54a49f
msi: Don't reinstall components shared with other products.
2012-09-13 13:56:39 +02:00
Hans Leidekker
1ee3be6e80
msi: Only remove a component if the number of clients drops to zero.
2012-09-11 18:07:29 +02:00
Hans Leidekker
842525f423
msi: Try the registered install location first when resolving the target directory.
2012-08-13 11:45:15 +02:00
Hans Leidekker
b7cefc9997
msi: Avoid an out of bounds access in msi_build_directory_name.
2012-08-13 11:45:11 +02:00
Hans Leidekker
f180de40dd
msi: Implement the RemoveExistingProducts standard action.
2012-07-31 18:01:54 +02:00
Hans Leidekker
a17ca16495
msi: Keep assembly caches loaded until the package is destroyed.
2012-06-12 10:22:24 +02:00
Hans Leidekker
0ed61000d3
msi: Support registry key names that exceed 255 characters.
2012-06-11 21:03:48 +02:00
Hans Leidekker
fc2c8a215f
msi: Fail if a registry key cannot be created.
2012-06-11 21:03:48 +02:00
Hans Leidekker
fd0c2dabdf
msi: Ignore the value if a registry value name is special.
2012-06-11 21:03:47 +02:00
Hans Leidekker
f0ea60049c
msi: Add support for 64-bit registry components.
2012-06-11 21:03:47 +02:00
Hans Leidekker
e16bcda486
msi: Don't create empty values for special registry entries.
2012-05-31 12:37:22 +02:00
Hans Leidekker
4b32c09376
msi: Add support for the ActionInfo progress message subtype.
2012-05-15 16:26:38 +02:00
Hans Leidekker
32c7a52f5c
msi: Resolve the target path for the ODBC driver file if necessary.
2012-05-08 16:21:40 +02:00
Hans Leidekker
52f3d5bead
msi: Remove child folders first in the RemoveFolders action.
2012-04-23 17:55:21 +02:00
Hans Leidekker
f1af03fa16
msi: Reduce the indentation level in ACTION_GetComponentInstallStates.
2012-04-23 17:55:10 +02:00
Hans Leidekker
dd205230a0
msi: Keep the UI level fixed during the lifetime of a package.
2012-04-05 17:53:20 +02:00
Hans Leidekker
350449fc43
msi: Suspend the installation if an action sets MSIRUNMODE_REBOOTNOW.
2012-04-02 13:30:41 +02:00
Hans Leidekker
89c80c41ea
msi: Rename the need_reboot flag to need_reboot_at_end.
2012-04-02 13:30:24 +02:00
Hans Leidekker
9b2b760ea9
msi: Get the UI level from the global variable instead of the property.
2012-03-26 18:15:03 +02:00
Hans Leidekker
c98bf1b57b
msi: Fix deleting services on installation.
...
Based on a patch by Berhard Loos.
2012-03-13 13:30:11 +01:00
Hans Leidekker
bca0fd6a55
msi: Follow the parent state for preselected features unless the parent is an advertised feature.
2012-02-05 09:38:12 -06:00
Frédéric Delanoy
ca4fdc57ed
msi: Avoid dead code in parse_prop (Coverity).
2012-01-30 11:59:44 +01:00
Frédéric Delanoy
8ef373a7f2
msi: Avoid dead code in parse_prop (Coverity).
2012-01-25 11:24:58 +01:00
Hans Leidekker
fcce720a2f
msi: Don't evaluate msidbFeatureAttributesFollowParent when features are preselected.
2012-01-23 15:59:54 +01:00
Hans Leidekker
09a49fd784
msi: Pass the file identifier instead of the filename in action data for SelfRegModules/SelfUnregModules.
2012-01-20 16:01:48 +01:00
Hans Leidekker
d20c69c54d
msi: Don't parse the format string when building the shortcut target path.
...
It's no longer necessary because target paths are always normalized.
2012-01-19 21:08:51 +01:00
Hans Leidekker
9336c10619
msi: Make sure target paths are normalized.
...
Fix for the Lotus Notes 6.5.1 installer.
2012-01-18 16:25:21 +01:00
Hans Leidekker
b00e7039c5
msi: Execute custom actions in the right script.
2012-01-06 21:57:40 +01:00
Hans Leidekker
de11a50b91
msi: Don't crash on secondary root folders in msi_resolve_target_folder.
2012-01-05 20:54:25 +01:00
Hans Leidekker
bde25b2cb4
msi: Use a common function to validate a product ID.
2011-12-23 15:12:11 +01:00
Hans Leidekker
8cc5561fbf
msi: Don't run the rollback script in reinstall mode.
2011-12-13 18:59:15 +01:00
Hans Leidekker
39b7e6e50c
msi: Resolve the target folder if necessary in msi_get_target_folder.
2011-12-01 14:18:22 +01:00
Hans Leidekker
959ebdb118
msi: Split up delete_reg_key_or_value.
2011-12-01 14:18:14 +01:00
Hans Leidekker
319081cbf6
msi: Wait up to 30 seconds for services to start up.
2011-10-27 14:21:23 +02:00
Hans Leidekker
e973115a79
msi: Properly build the shortcut target path.
2011-10-11 13:37:50 +02:00
Michael Stefaniuc
6074bd51cc
msi: Remove casts to the type of the casted variable.
2011-09-23 16:21:26 +02:00
Hans Leidekker
2788a95c8e
msi: Support TrueType font files in MsiGetFileVersion.
2011-09-20 16:21:41 +02:00
Hans Leidekker
eede401d03
msi: Free the message string in ACTION_ResolveSource.
2011-09-14 14:55:28 +02:00
Hans Leidekker
258fc7137f
msi: Ignore unknown components in the FeatureComponents table.
2011-09-09 13:38:15 +02:00
Hans Leidekker
bd3885946c
msi: Return the right error from ResolveSource when the user cancels.
2011-09-09 13:38:04 +02:00
Hans Leidekker
984422bad1
msi: SelfUnregModules' counterpart is SelfRegModules.
2011-09-09 13:37:43 +02:00
Hans Leidekker
9d68804379
msi: Resolve the target folder if necessary when building link filenames.
2011-08-24 12:14:46 +02:00
Hans Leidekker
eb7ae99ddb
msi: Remove icons when the product is uninstalled.
2011-08-23 16:53:56 +02:00
Hans Leidekker
db6dbcf2a2
msi: Initialize the installation context from the registry if the product is installed.
2011-08-23 16:53:56 +02:00
Hans Leidekker
70e3790707
msi: Remove local patch packages when the product is removed.
2011-08-23 16:53:56 +02:00
Hans Leidekker
621b0405c9
msi: Don't create a temporary copy of the package.
...
There's no need for it now that we open the package in transacted mode.
2011-08-23 16:53:56 +02:00
Hans Leidekker
fe404d1d88
msi: Always check the return value of MSI_IterateRecords.
2011-07-27 11:55:23 +02:00
Hans Leidekker
e1c2e8828f
msi: Clean up the database queries.
2011-07-27 11:55:16 +02:00
Hans Leidekker
4202b1419c
msi: Use the return value of MSI_IterateRecords (clang).
2011-07-07 12:32:25 +02:00
Hans Leidekker
7d677fc327
msi: Delay creating local installer and patch packages until the product is registered.
2011-07-01 14:39:36 +02:00
Hans Leidekker
791fe136a9
msi: Remove directories after removing all files.
2011-07-01 14:39:36 +02:00
Hans Leidekker
b32c643c18
msi: Handle escaped double quotes in command line parsing.
2011-07-01 14:39:36 +02:00
Hans Leidekker
2cbeb20d39
msi: Use an enum to represent folder states.
2011-07-01 14:39:36 +02:00
Hans Leidekker
8ff57beb0e
msi: Perform a full uninstall if no feature resolves to INSTALLSTATE_LOCAL.
2011-07-01 14:39:36 +02:00
Hans Leidekker
ac994860af
msi: Make sure reported progress adds up to projected progress.
2011-06-23 10:00:09 +02:00
Hans Leidekker
4c9c50d86b
msi: Implement and test MsiGetFeatureInfo.
2011-06-10 10:55:11 +02:00
Hans Leidekker
aec97287bc
msi: Remove redundant function find_feature_by_name.
2011-06-10 10:54:57 +02:00
Hans Leidekker
597e166433
msi: Handle disabled components properly in the ProcessComponents action.
2011-06-07 14:18:33 +02:00
Hans Leidekker
4c49cf853d
msi: Set the SystemComponent installation property if necessary.
2011-05-30 11:16:13 +02:00
Hans Leidekker
ee80412330
msi: Support rollback of failed uninstalls.
2011-05-25 14:16:13 +02:00
Hans Leidekker
6c39fdf19a
msi: Don't schedule rollback actions during rollback.
2011-05-25 14:16:08 +02:00
Hans Leidekker
3ce11c7cc2
msi: Fix updating the component reference count during rollback.
2011-05-25 14:16:04 +02:00
Hans Leidekker
0ecb33e21e
msi: Fix the remaining actions to revert features and components to the installed state during rollback.
2011-05-25 14:16:00 +02:00
Hans Leidekker
fe2b4b1df6
msi: Fix the ODBC actions to revert components to the installed state during rollback.
2011-05-24 11:58:45 +02:00
Hans Leidekker
7dd95a386e
msi: Fix the service actions to revert components to the installed state during rollback.
2011-05-24 11:58:41 +02:00
Hans Leidekker
ad84982d92
msi: Fix the class actions to revert features to the installed state during rollback.
2011-05-24 11:58:38 +02:00
Hans Leidekker
50dd7b498a
msi: Fix the registry actions to revert components to the installed state during rollback.
2011-05-24 11:58:34 +02:00
Hans Leidekker
b7950cfe68
msi: Fix the folder actions to revert components to the installed state during rollback.
2011-05-24 11:58:24 +02:00
Hans Leidekker
f644601fc5
msi: Improve the BindImage action stub.
2011-05-24 11:58:11 +02:00
Hans Leidekker
02fb530401
msi: Move patch related functions to a separate file.
2011-05-24 11:57:57 +02:00
Hans Leidekker
1ab830188a
msi: Execute the rollback script if the installation failed.
2011-05-20 12:44:37 +02:00
Hans Leidekker
0f5cb14a67
msi: Schedule rollback for standard actions.
2011-05-20 12:44:32 +02:00
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