Commit Graph

3818 Commits

Author SHA1 Message Date
Zebediah Figura 6925846988 msi: Generate unique names for 32- and 64-bit custom action server pipes.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 10:15:59 +02:00
Zebediah Figura 2a9e0f1fad msi: Implement deferral for standard and custom actions.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 10:15:59 +02:00
Marcus Meissner 9f1cdb4970 msi: Do not free hPackage twice or uninitialized (Coverity).
Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 09:39:55 +02:00
Hans Leidekker ddf762a82f msi: Use msi_get_package_code in msi_publish_product_properties.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-18 14:13:43 +02:00
Piotr Caban 7837ae20cd msi: Fix condition evaluation when comparing literal and integer.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45445
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-16 09:14:19 +02:00
Zebediah Figura 457431ab5b msi: Reuse the custom action server process where possible.
We use a named pipe to communicate between the client (i.e. the process that
called MsiInstallProduct() and the custom action server. The naïve approach
has the client send custom action GUIDs to the server and the server send
back the results of executing the action, but this fails in the case of
nested custom actions, so instead we send back handles of threads for the
client to wait on.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-11 15:45:11 +02:00
Zebediah Figura 6135b38d7d msi: Avoid connecting to the RPC server more than once.
This is a no-op as is, but is necessary as of the next patch in the case of
nested custom actions.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-11 15:45:11 +02:00
Zebediah Figura 7908d6ee39 msi: Create the custom action thread inside msiexec.exe.
This patch is effectively a no-op by itself, but makes the next patch
architecturally much simpler. We need the main thread to be non-blocking
to allow nested custom actions to work, so creating the thread inside of
msiexec allows the custom action thread to write the result of the action to
the server pipe while the main thread simply reads from it.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-11 15:45:11 +02:00
Zebediah Figura 5c7cf0a47d msi: Avoid starting the RPC server more than once for a given package.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-11 15:45:11 +02:00
Michael Stefaniuc 962b31c80b include: Add a generic available ARRAY_SIZE().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-04 10:39:15 +02:00
Andrey Gusev 5bd1b6f410 msi: Remove checks for negative value.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 09:27:32 +02:00
Piotr Caban 5924321ad6 msi: Add support for re-caching package.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-22 11:31:17 +02:00
Piotr Caban 0657d966ff msi: Report error when cached installer has different version.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-22 11:24:58 +02:00
Piotr Caban 4c5d24ae20 msi: Add ProductToBeRegistered property tests.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-19 20:50:57 +02:00
Piotr Caban cecff8a353 msi: Add REINSTALLMODE=v installation mode test.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-19 20:50:53 +02:00
Piotr Caban 21836b79dd msi: Re-publish product if previous installation with different package is detected.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-19 20:50:47 +02:00
Piotr Caban 6dc49e4b68 msi: Add support for ProductToBeRegistered property.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-19 20:50:40 +02:00
Zebediah Figura d0451d5734 msi: Mark exported wine functions CDECL.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-19 20:46:50 +02:00
Piotr Caban bdf8895d76 msi/tests: Add package minor/major upgrade tests.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-15 20:53:17 +02:00
Michael Stefaniuc b716661c4a msi/tests: Use the available ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-15 20:53:17 +02:00
Michael Stefaniuc 74b0dec3c1 msi/tests: Avoid ARRAY_SIZE-like macros.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-13 22:13:27 +02:00
Zebediah Figura 756bbb5bb7 msi: Store the current script in the package.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-06 11:18:34 +02:00
Zebediah Figura 536a86f21f msi: Resolve source when executing InstallFiles.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-06 11:18:32 +02:00
Zebediah Figura 38747c3234 msi/tests: Test that some actions cause resolution of SourceDir.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-06 11:18:31 +02:00
Zebediah Figura ed2861c28c msi/tests: Test deferral of WriteRegistryValues.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 16:07:18 +02:00
Zebediah Figura 3c2b229431 msi/tests: Simplify and clarify WriteRegistryValues and RemoveRegistryValues tests.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 15:39:37 +02:00
Zebediah Figura 91e418073f msi: Only delete empty registry keys in delete_key().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 15:39:37 +02:00
Hans Leidekker f655bb7ee7 msi/tests: Remove duplicate service tests.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-31 20:00:38 +02:00
Zebediah Figura 377d32c4fb msi/tests: Test deferral of WriteIniValues and RemoveIniValues.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-31 20:00:38 +02:00
Zebediah Figura 1a78380e6f msi/tests: Add a simple test for WriteIniValues.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-31 20:00:38 +02:00
Zebediah Figura aae3d6b5af msi/tests: Test deferral of WriteEnvironmentStrings and RemoveEnvironmentStrings.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-31 20:00:38 +02:00
Zebediah Figura 2765b47780 msi/tests: Simplify and combine environment variable tests.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-31 20:00:38 +02:00
Zebediah Figura a08438afbd msi/tests: Test deferral of SelfRegModules and SelfUnregModules.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-30 22:26:49 +02:00
Zebediah Figura 8867712944 msi/tests: Test self-registration of a valid DLL.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-30 22:26:49 +02:00
Zebediah Figura d3023ad3f7 msi/tests: Test deferral of RegisterTypeLibraries and UnregisterTypeLibraries.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-30 22:26:49 +02:00
Zebediah Figura f5da1902aa msi/tests: Test registration of a valid typelib.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-30 22:26:49 +02:00
Zebediah Figura d0ab6deb77 msi/tests: Test deferral of RegisterUser.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 17:13:05 +02:00
Zebediah Figura 2fe0388d0c msi/tests: Test deferral of RegisterProgIdInfo and UnregisterProgIdInfo.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 17:13:05 +02:00
Zebediah Figura 71f3f2a6ed msi/tests: Test deferral of RegisterProduct.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 17:13:05 +02:00
Zebediah Figura 8d72829a87 msi/tests: Simplify key access flags in test_register_product().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 17:13:05 +02:00
Zebediah Figura f181e71400 msi/tests: Test deferral of RegisterMimeInfo and UnregisterMimeInfo.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-28 10:59:53 +02:00
Zebediah Figura a364e1a9c8 msi/tests: Test deferral of RegisterFonts and UnregisterFonts.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-28 10:59:50 +02:00
Zebediah Figura 884d146b32 msi/tests: Test deferral of RegisterExtensionInfo and UnregisterExtensionInfo.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-28 10:59:46 +02:00
Zebediah Figura fc6bd87375 msi/tests: Test deferral of RegisterClassInfo and UnregisterClassInfo.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-28 10:59:43 +02:00
Zebediah Figura 4f2bb46fd1 msi/tests: Test deferral of PublishProduct.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-25 12:09:17 +02:00
Zebediah Figura 920dde0b1e msi/tests: Test deferral of PublishFeatures and UnpublishFeatures.
test_publish_assemblies() was leaving behind feature data that caused this
test to fail when run multiple times.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-25 12:09:17 +02:00
Zebediah Figura 625ef14967 msi/tests: Test deferral of PublishComponents and UnpublishComponents.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-25 12:09:17 +02:00
Zebediah Figura 5e0e25d4b4 msi/tests: Test deferral of ProcessComponents.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-25 12:09:17 +02:00
Zebediah Figura 6eb7440914 msi/tests: Test deferral of MsiPublishAssemblies and MsiUnpublishAssemblies.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-25 12:09:17 +02:00
Zebediah Figura af737f9c2f msi/tests: Test deferral of MoveFiles.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-23 17:34:09 +02:00