Dmitry Timoshkov
42caac841e
msi: Correctly parse double quotes in the token value.
...
This fixes an installer that passes to InstallProduct a command line like
PROPERTY1="Installing ""Product name"" version 8.0" PROPERTY2=1 PROPERTY3=1
In this case properties PROPERTY2 and PROPERTY3 were not recognized and that
led to an installation failure when a custom action didn't see them as set.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2015-10-06 22:59:38 +09:00
Hans Leidekker
9a5788afc1
msi: Set the PrimaryVolumeSpaceRequired and PrimaryVolumeSpaceRemaining properties.
...
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
2015-10-01 16:23:15 +09:00
Hans Leidekker
ddaba7a369
msi: Don't add the same environment string more than once.
2015-08-26 23:15:26 +09:00
Hans Leidekker
99dfc15e72
msi: Only remove environment strings that were added on install.
2015-08-18 17:30:17 +09:00
Huw Davies
fed41f5306
msi: Don't call CloseServiceHandle() with an invalid handle.
2015-07-16 21:20:50 +09:00
Hans Leidekker
17405f6b91
msi: Check the return value of MSI_QueryGetRecord (Coverity).
2015-07-15 23:19:23 +09:00
Huw Davies
e1a65bed68
msi: Be more selective about which access modes are used to open or create keys.
...
An installer was failing when trying to create subkeys after denying
delete access to their parent key.
2015-07-15 23:19:09 +09:00
Huw Davies
4a992fec01
msi: Fix a registry key leak.
2015-07-15 23:18:54 +09:00
Hans Leidekker
597c5f9c4b
msi: Open database cabinet streams through the streams implementation.
2015-06-22 19:18:48 +09:00
Hans Leidekker
17b05316a5
msi: Clean up handling of temporary files.
2015-04-01 22:34:20 +09:00
Hans Leidekker
20ef12a762
msi: Don't mark global assembly files as installed when they are extracted.
2015-04-01 22:34:20 +09:00
Hans Leidekker
006801366e
msi: Don't apply file patches in the cabinet extraction callback.
2015-04-01 22:34:19 +09:00
Hans Leidekker
0762dd68f8
msi: Store the disk id for file patches.
2015-04-01 22:34:19 +09:00
Hans Leidekker
7a4d8f57c7
msi: Improve tracing.
2015-03-17 00:19:48 +09:00
Hans Leidekker
4c1791f53e
msi: Add offsets to file patch sequence numbers.
2015-03-04 23:57:42 +09:00
Marcus Meissner
c4bf8a85ee
msi: Fix memory leak (Coverity).
2015-02-16 19:18:44 +09:00
Akihiro Sagawa
e52cbbcd03
msi: Remove 32-bit component registry keys with KEY_WOW64_32KEY flag.
2015-01-19 14:20:27 +01:00
Akihiro Sagawa
cdf3c23645
msi: Open 32-bit component registry keys with KEY_WOW64_32KEY flag.
2015-01-19 14:20:10 +01:00
Michael Stefaniuc
165c9e7cb9
msi: Remove no-op toupperW() statement (PVS-Studio).
2014-12-10 13:32:01 +01:00
Hans Leidekker
2a8043aa6b
msi: Properly handle service control events in Start/StopService.
2014-12-02 13:07:16 +01:00
Hans Leidekker
609de1a80a
msi: Call execute_script directly in InstallFinalize.
2014-11-04 21:19:31 +09:00
Hans Leidekker
98ae03ff4d
msi: Update properties after each transform that affects the property table.
2014-11-04 21:19:28 +09:00
Hans Leidekker
35ce56ac85
msi: Pass a database pointer to msi_clone_properties instead of a package pointer.
2014-11-04 21:19:24 +09:00
Hans Leidekker
7f57d8f19a
msi: Format registry values before interpreting value type.
2014-10-31 10:49:19 +09:00
Hans Leidekker
29baed1bc2
msi: Improve support for advertized shortcuts.
2014-09-12 15:30:13 +02:00
Hans Leidekker
614cb7eac7
msi: Update the cached product code when the property has changed.
2014-09-01 21:10:12 +02:00
Hans Leidekker
04f9058a28
msi: Set the OutOfNoRbDiskSpace property.
2014-09-01 21:10:12 +02:00
Piotr Caban
b1a4055245
msi: Don't check feature install level on features specified in arguments.
2014-07-24 13:02:45 +02:00
Piotr Caban
0dff7bff9a
msi: Fix feature actions overriding in process_state_property.
2014-07-24 13:02:43 +02:00
Piotr Caban
331c86f124
msi: Don't publish features with non positive install level.
2014-07-24 13:02:42 +02:00
Marcus Meissner
3fa41c9e70
msi: Fixed missing free in an error path (Coverity).
2014-03-10 10:41:15 +01:00
Hans Leidekker
f525038142
msi: Remove the product reference when a shared component is unregistered.
2014-03-03 17:02:51 +01:00
Hans Leidekker
1ae3bcc94d
msi: Don't install services without an image path.
...
Spotted by Aric Stewart.
2014-02-22 08:41:22 -06:00
Frédéric Delanoy
f21225a41b
msi: Fix typo in a field name.
2014-02-13 17:52:15 +01:00
Hans Leidekker
48908c130c
msi: Remove the unused CurrentlyScripting field from MSISCRIPT.
2014-01-03 17:00:12 +01:00
Hans Leidekker
41d2b53c5b
msi: Always derive the SourceDir property from the database path.
2014-01-03 17:00:02 +01:00
Qian Hong
9612ed1ba6
msi: Get extension name by strrchrW instead of strchrW.
2013-11-13 18:31:36 +01:00
Frédéric Delanoy
8793b5fe28
msi: Use BOOL type where appropriate.
2013-10-28 10:40:20 +01:00
Hans Leidekker
b64fabf39e
msi: Don't defer custom actions in the UI sequence if they match the currently running script.
2013-06-03 21:11:51 +02:00
Hans Leidekker
74aa47fa8e
msi: The UI sequence exists if there are runnable actions in the InstallUISequence table.
2013-05-29 18:12:01 +02:00
Daniel Jelinski
4b4bd0201c
msi: Remove trailing spaces from command line property name.
2013-05-20 21:15:38 +02:00
Hans Leidekker
10975967df
msi: Set the PrimaryVolumePath and PrimaryVolumeSpaceAvailable properties.
2013-05-09 19:24:16 +02:00
Hans Leidekker
b98ef8f087
msi: Treat an empty install location as missing.
2013-05-07 17:20:46 +02:00
Hans Leidekker
aeb7d70ffd
msi: Handle more than one patch per file.
2013-02-27 19:23:13 +01:00
Hans Leidekker
bfe5e58d3a
msi: Don't remove products if msidbUpgradeAttributesOnlyDetect is set.
2013-02-15 16:56:19 +01:00
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