Commit graph

51 commits

Author SHA1 Message Date
Mikhail
f4be6dc36f
[MSIEXEC][MSI] Sync msiexec and msi to wine-9.8 (#6897)
* [MSIEXEC] Sync msiexec to wine-9.8

* [WINESYNC] msi: Disable FS redirection for temporary file in cabinet_copy_file().

wine commit id a58c6251870dfb7d214464e709bbbc9ca649b900 by Paul Gofman <pgofman@codeweavers.com>

* [WINESYNC] msi/tests: Correct a couple of failure messages in test_msirecord.

wine commit id 2fde0a3f5c233b0ea1637f409998ce4ee85d28a7 by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Use the wcsdup function instead of reimplementing it.

wine commit id 7cc7a6defc08d4de7574b7a75d574c3ab1f32db8 by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Use _O_* constants from fcntl.h instead of redefining them.

wine commit id b07c95e79cdf6ae26c5170daa481ad160e0ce76a by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Remove wrappers around CRT memory allocation functions.

wine commit id d920aa81ad0c4618c27ebd7e9863618e988328e0 by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Initialize all members of WINTRUST_DATA.

The pSignatureSettings field was not unitilized so it got a random value from
the stack causing a later crash when it was dereferenced in Wintrust
(SoftPubloadSignature).

wine commit id 904bedb3e96bc68101652e151db102532399abe8 by Philip K. Gisslow <ripxorip@gmail.com>

* [WINESYNC] msi: Fix memory leak on realloc failure in create_diff_row_query (cppcheck).

wine commit id 3e231d0f36a56ce991c7edbb6ae7845094e8417e by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Fix memory leak on realloc failure in msi_get_window_text (cppcheck).

wine commit id 6c1dd0f2c5669e084eb1f84571c38761a97c0970 by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Fix memory leak on realloc failure in search_directory (cppcheck).

wine commit id d394df4a30feb685927908fce2887bf5496b5d66 by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] ntdll: Default to Windows 10.

wine commit id 69154f0329aec4fb64886a0689da198b5323dcde by Hans Leidekker <hans@codeweavers.com>

* [MSI] Fix build

* [WINESYNC] Update winesync file

* [WINESYNC] msi/tests: Avoid test failures when running with insufficient rights.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51040

wine commit id 79ec3d9fb8551e84e9ff71dcf18861430246278a by Hans Leidekker <hans@codeweavers.com>

* [WINESYNC] msi: Install and patch global assemblies in InstallFinalize.

Installing global assemblies requires assembly caches to be initialized and
this is no longer the case after the PE conversion (builtin fusion no longer
loads if the dll is not present on disk).

The next patch changes msi to perform late initialization of the assembly
caches so that native fusion can be loaded once it's installed by .NET
installers. However, there's no guarantee that all necessary files and
registry keys are installed before the InstallFiles and PatchFiles actions
are executed. Therefore this patch moves the parts of these actions handling
global assemblies to InstallFinalize.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51345

wine commit id 2c450fd6215c0da4685143f97ece8b6db0f54a0b by Hans Leidekker <hans@codeweavers.com>

* [WINESYNC] msi: Perform late initialization of the assembly caches.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51345

wine commit id d9d700f3328f00ec419571df0e02cef208fa1e7b by Hans Leidekker <hans@codeweavers.com>

* [WINESYNC] msi: Remove msi_ prefix from static functions.

wine commit id 3611398b7575177b91e8162a84ebca977c50c2f5 by Hans Leidekker <hans@codeweavers.com>

* [WINESYNC] msi: Get rid of unnecessary typedefs.

wine commit id 258012742512a4072265fcc47826c52319bd37ab by Hans Leidekker <hans@codeweavers.com>

* [WINESYNC] msi: Handle memory allocation failure in get_link_file (cppcheck).

wine commit id 687c4f5c8dc65def6fc066d5d802d7448db70d7f by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Annotate memory allocation functions with __WINE_(DEALLOC|MALLOC).

wine commit id 9df04bfdb03a3017f532e70a047ee83290dbc257 by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi/tests: Fix the ok() formats so they match the size of their arguments.

wine commit id b6fb1b8983af7644b78bb0ba5fb9d18a1f0822f1 by Francois Gouget <fgouget@codeweavers.com>

* [WINESYNC] msi/tests: Ok_() takes printf-style arguments.

This lets the compiler check that the format and argument sizes match.

wine commit id a80b183af74194a06af3281ee272590a7134b7f1 by Francois Gouget <fgouget@codeweavers.com>

* [WINESYNC] msi: Return ERROR_OUTOFMEMORY if calloc fails in TransformView_Create (scan-build).

Instead of ERROR_SUCCESS.

wine commit id daa20d9d636057d7009ff3652a8577b423d23fcf by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Make TransformView_Create static.

wine commit id 1da5618cbac1214082bfb897dc81804d14fc6e9e by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Fix memory leak in ready_media (scan-build).

base_url was never freed, and can simply be enlarged instead of copying
it to a new buffer.

wine commit id c39f785b34692ee994b2449cc17a96815517e9bf by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Fix memory leak on error path in MSI_ProcessMessage (scan-build).

wine commit id d06b3fd5274b056c720e2fb42eb189052d99404d by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Release record instead of free.

../dlls/msi/dialog.c:4476:11: warning: attempt to call free on non-heap object 'hdr' [-Wfree-nonheap-object]
    free( &rec->hdr );
          ^

wine commit id 7b3690dd7399cd64123554c8a6fc7e35dcbebbe1 by Daniel Lehman <dlehman25@gmail.com>

* [WINESYNC] include: Remove redundant __WINE_USE_MSVCRT checks.

wine commit id 93630ce14ebf16333fda8481b5ede6f587eb32ca by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] msi: Fix memory leak on error path in MSI_OpenPackageW (scan-build).

wine commit id 4db2ffa60e16e06b4f6ef89fcc4c73229f4446b1 by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Fix double free on error paths in TransformView_Create (scan-build).

If TransformView_Create returns an error, it should not return a pointer
that table_load_transform will try to free.

wine commit id 0653409e0631582d89edaab0ac516994710dae1a by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Fix memory leaks in HANDLE_CustomType23 (scan-build).

wine commit id 993f4d48d23477e70e92256890c77687a1c4ba08 by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Reject shorter/longer lines in MsiDatabaseImportA.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54532
Signed-off-by: David Kahurani <k.kahurani@gmail.com>

wine commit id e1ddc58a259d80f16bf1e62f23428775e1b070a0 by David Kahurani <k.kahurani@gmail.com>

* [WINESYNC] msi: Convert newlines to alternate representation when exporting.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54532
Signed-off-by: David Kahurani <k.kahurani@gmail.com>

wine commit id 60e4f8a261ae9044aafa9c4eec2a3f2aec6481b5 by David Kahurani <k.kahurani@gmail.com>

* [WINESYNC] msi: Remove DECLSPEC_HIDDEN usage.

wine commit id 51049c95a242f1553562a442142e813e37cee233 by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>

* [MSI] remove DECLSPEC_HIDDEN

* [WINESYNC] msi: Fully initialize the control structure in dialog_line_control().

Fixes: 76606eaea034c51a73190aac92e75d8b20e82164
Fixes: 174b7b51ac9e57c6cfa8f48e62bbf468ae3b1f24

wine commit id 735584076efafc29673e0c9418a64343634f9aa5 by Jinoh Kang <jinoh.kang.kr@gmail.com>

* [WINESYNC] msi: Make insertion order of line controls consistent with other controls.

Fixes: 2c5bd49297f79d9941a256d8ec61e0eb2bf9bf9c

wine commit id 3eceda2f2a77754f0bf93ea33018e8ef49e82669 by Jinoh Kang <jinoh.kang.kr@gmail.com>

* [WINESYNC] msi: Don't open code dialog_add_control() in dialog_line_control().

Commit b1cc87cb656 ("msi: The line control has a height of exactly 2
device units.", 2007-12-16) open-coded the body of
(msi_)dialog_add_control() inside dialog_line_control() modulo the
height override.

Except the fixed height, line controls have nothing special compared to
other controls.  Thus, there is little merit in open-coding it.

Also, dialog_line_control() has bit-rotted over time; it already missed
a few changes that were done to any other controls.

Fix this by just using dialog_add_control().  Also, add a special case
logic just for line controls.

wine commit id 1fca47b724b3835ac0267f58c5b3486fc222fc71 by Jinoh Kang <jinoh.kang.kr@gmail.com>

* [WINESYNC] msi: Use nameless unions/structs.

wine commit id 8de0a9dc740d3ed1e3cf9460852db7e609122f3b by Alexandre Julliard <julliard@winehq.org>

* [MSI] disable nameless structs

* [WINESYNC] msi/tests: Use nameless unions/structs.

wine commit id 490aee03e45222aa9d7e3e7fd6ff80064dc3778d by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] makedep: Use #pragma makedep testdll for TESTDLL resources.

wine commit id 81da9ff0f8dea4932a3afdc4c447c1c9242bb596 by Rémi Bernon <rbernon@codeweavers.com>

* [WINESYNC] msi: Use CreateFileW() for handling path from cabinet_open() instead.

wine commit id 085e95cd5eceb36c3e21cb7d42adab5a6af38a38 by Jactry Zeng <jzeng@codeweavers.com>

* [WINESYNC] msiexec: Use CRT allocation functions.

wine commit id 0f44b3bdcb3d91701a9a8ef1ad07f3e88c08a666 by Alex Henrie <alexhenrie24@gmail.com>

* [WINESYNC] msi: Remove DECLSPEC_HIDDEN usage.

wine commit id 91e81083458374706bbace11114f4ad5e473ac07 by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>

* [WINESYNC] msi: Store Context as MSIINSTALLCONTEXT in MSIPACKAGE.

Avoids casting to enum pointer in msi_locate_product call.

wine commit id 2daa8c9f95b35983c885f5f7efe9e1b48e91f679 by Jacek Caban <jacek@codeweavers.com>

* [WINESYNC] msi/tests: Initialize pathkey in test_installprops.

It could be used uninitialized on early no access return.

wine commit id 93668319dd63add97036fbb79b5745c699117313 by Jacek Caban <jacek@codeweavers.com>

* [WINESYNC] regsvr32: Use message boxes by default for output.

regsvr32 is in GUI subsystem and shouldn't interact with console.
Keeping unix I/O output in silent mode.
Removing -c option as not existing in native.

Signed-off-by: Eric Pouech <epouech@codeweavers.com>

wine commit id ac8da35b87005e45947b8164a4132f3bbb4ec2cc by Eric Pouech <epouech@codeweavers.com>

* [MSI]: Reduce diff

* [WINESYNC] msiexec: No longer use console/file output APIs.

Regular GUI apps don't.

Signed-off-by: Eric Pouech <epouech@codeweavers.com>

wine commit id e048f71ecbb103ae7c1876092cb8244b24a73cb7 by Eric Pouech <epouech@codeweavers.com>

* [WINESYNC] msi: Fix a memory leak (Coverity).

wine commit id 4afca1787febb012d0cdd2c007dd32beba35178d by Zhiyi Zhang <zzhang@codeweavers.com>

* [WINESYNC] msi: Don't write past end of string when selecting parent directory.

wine commit id bbce5d014db7f023b133d6d09e6846e027586f7d by Fabian Maurer <dark.shadow4@web.de>

* [WINESYNC] msi: Avoid leaking stream on DB update.

MSI_RecordGetIStream adds a reference to the stream. This
reference should be negated as we are done setting the stream.

Signed-off-by: David Kahurani <k.kahurani@gmail.com>

wine commit id 386dbe1059ba08485696760c267ef06dbed95bad by David Kahurani <k.kahurani@gmail.com>

* [WINESYNC] msi/tests: Expand costing tests.

wine commit id 674efeb1f7445935cf4f49dd1285727055664ab9 by Zebediah Figura <zfigura@codeweavers.com>

* [WINESYNC] msi: Round costs up to 4096 bytes instead of clamping.

wine commit id 9725a2286acdb791de316295d9bcb11411a3fd56 by Zebediah Figura <zfigura@codeweavers.com>

* [WINESYNC] msi: Store component cost in 512-byte units.

This avoids overflow when component costs exceed 4 GB.

wine commit id d7bbe884ef29215f4db2027f450fb959314f5383 by Zebediah Figura <zfigura@codeweavers.com>

* [MSI] store component cost in 512-byte units

* [WINESYNC] msi: Multiply by 512 in dialog_vcl_add_drives().

The main motivation here is to avoid overflow, and multiplying in one place seems simpler.

wine commit id 4a227c62a59a55aff9bacf1473c7f478f5c83294 by Zebediah Figura <zfigura@codeweavers.com>

* [MSI] reduce diff

* [WINESYNC] msi: Create the custom action server as an elevated process.

Dragon Naturally Speaking 12.5 manually validates that the custom action server
is elevated.

One might imagine that the right approach here is to add a manifest to msiexec;
however, msiexec does not always trigger a UAC prompt on Windows.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51143

wine commit id 366398cc53c76028c8dfe8d8a16c78a6a10ce962 by Zebediah Figura <z.figura12@gmail.com>

* [WINESYNC] msi/tests: Delete the temp .msi file in all failure cases.

wine commit id 43fb0ecd0717ad1a6aa0702ed68368ee35d3ecda by Alexandre Julliard <julliard@winehq.org>

* [WINESYNC] msi/tests: Use the helpers from utils.h in more modules.

wine commit id b3f11ceb7a0ddcf5fe742377f99c947b0b56a051 by Hans Leidekker <hans@codeweavers.com>

* [MSITEST] include util header

* [WINESYNC] msi/tests: Try restarting tests elevated.

Wine starts processes non-elevated since e92ba2de43d7afbe0704b11b29f7c30f44dfaeca
which means that many tests are skipped now.

wine commit id a6eb51f0e595b2e5ddc521fb61b10d72849dd0f2 by Hans Leidekker <hans@codeweavers.com>

* [MSITEST] try restarting for tests elevated

* [WINESYNC] msi/tests: Get rid of workarounds for old Windows versions.

wine commit id 738ec8285583248a84349939734ed600a47ba73d by Hans Leidekker <hans@codeweavers.com>

* [MSI] fix patch failed

* [WINESYNC] msi: Install global assemblies before running deferred custom actions.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56493

wine commit id 7f0ca9c284d15d03f14a8fefefac834990d622cd by Hans Leidekker <hans@codeweavers.com>

* [WINESYNC] msi: Install global assemblies after install custom actions and before commit custom actions.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56609

wine commit id 27f5470ff4c20121b9eacd702c888400191c7d9e by Hans Leidekker <hans@codeweavers.com>

* [WINESYNC]: msi is now in sync with wine-staging wine-9.8

* [MSI] Fix build

* [WINESYNC] Update WINESYNC doc

* [MSI] Remove nonameless* defines

* [MSIEXEC] Fix build

* [MSIEXEC] Fix build

* [MSI] Fix vcl_get_cost
2024-09-29 10:24:15 -07:00
winesync
1b18dc22d5
[WINESYNC] msi: Use CRT allocation functions.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 0d5f28457e8eced81677509f5129a20f10df526c by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:43 +01:00
winesync
00510cf555
[WINESYNC] include: Use the standard va_list instead of __ms_va_list when building with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 2a92c58e1152e1d80395cf31d7cd3f282d094540 by Alexandre Julliard <julliard@winehq.org>
2022-03-20 19:28:41 +01:00
winesync
026a2db614
[WINESYNC] msi: Fix ASCII / ANSI mixups in comments.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 45fb4ac4e2f94486e36d6d271c08b59feee4d12e by Francois Gouget <fgouget@free.fr>
2022-03-20 19:28:39 +01:00
winesync
74f53b4bcb
[WINESYNC] msi: Use wide character string literals in the remaining files.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id c4fc91f4bf0ffdc4a7dc2e582e5bd3fddca85222 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:35 +01:00
winesync
1cdb30ec0d
[WINESYNC] msi: Install feature when new component is added.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49350
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 877540b522c46134aa1b843519fa5694adb187ce by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:33 +01:00
winesync
791734c2e9
[WINESYNC] msi: Remove column_info.temporary field.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 76a2077c83048d8eead8ea0cbfafa70406c0cd88 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:31 +01:00
winesync
9cf1ecf2f3
[WINESYNC] msi: Fix adding temporary columns.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 15b47513a1926a103492e0774396119f57d2e8d5 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:31 +01:00
winesync
1bbb87bb26
[WINESYNC] msi: Add stub support for MSITRANSFORM_ERROR_VIEWTRANSFORM flag in MsiApplyTransform.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 8bc835b4517728fac8ff8a9cfa5e59b843e9a8df by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:28 +01:00
winesync
98d8ddaaa0
[WINESYNC] msi: Change unknown platform enum entry name.
Public shlwapi.h defines same name, it seems safer to rename internal type.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 5aeb9ed82efd4a02d24eac4ffdb64e7badb5f8bd by Nikolay Sivov <nsivov@codeweavers.com>
2022-03-20 19:28:27 +01:00
winesync
5741562d55
[WINESYNC] msi: Global variable compatibility update for gcc 10.
Signed-off-by: Michael Cronenworth <mike@cchtml.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id cc7f698b8245a48669d248569e7589ff824f2c70 by Michael Cronenworth <mike@cchtml.com>
2022-03-20 19:28:26 +01:00
winesync
796c6b07d2
[WINESYNC] msi: Use integers internally for MSIDBOPEN constants.
This fixes a bug where some verions of mingw and probably gcc
assume that the result of pointer subtraction will be non-NULL,
causing MSI_OpenDatabaseW to break when given the mode
MSIDBOPEN_READONLY + MSIDBOPEN_PATCHFILE.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id cce9a5f124ae6d3fffcc7772cab6523f09a1e3d1 by Vincent Povirk <vincent@codeweavers.com>
2022-03-20 19:28:25 +01:00
winesync
958f1addcf
[WINESYNC] msi: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 7cd3c9f0734d217e1d08319e72a9df91fe2ef882 by Alexandre Julliard <julliard@winehq.org>
2022-03-20 19:28:21 +01:00
winesync
3635da2096
[WINESYNC] msi: Use KEY_WOW64_* flags in ACTION_Register/UnregisterClassInfo.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 70732e273eb52821bfd725f3b1ea1919b8c0e3b0 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:18 +01:00
winesync
e342f3379d
[WINESYNC] msi: Disable filesystem redirection only when really needed.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46846
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 15f852015a0332313821804cc1fbad79216408c6 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:15 +01:00
winesync
8530abce68
[WINESYNC] msi: Don't use globals to manage assembly cache state.
Based on a patch by Zebediah Figura.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46719
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id c64d73c829c3bde7744362b2cd566075ab7e37df by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:14 +01:00
winesync
580d3e1be0
[WINESYNC] msi: Support setting streams in msi_select_update().
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>

wine commit id 044c1dd23b307a0b7f2188855d5bf6e479cefd5e by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:10 +01:00
winesync
f6659d1de9
[WINESYNC] msi: Get rid of the get_row() view operation.
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>

wine commit id 7c28a1dbddc012d497988f638b7ecb70e75b17c3 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:10 +01:00
winesync
97918c366e
[WINESYNC] msi: Set table values directly in msi_select_update().
In order to avoid the need to create a temporary record and copy values back
and forth.

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>

wine commit id f45a7b04a6caca4eed1d08f4e69884b119f3aa17 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:10 +01:00
winesync
211c410496
[WINESYNC] msi: Use a BOOL to track string persistence.
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>

wine commit id a7f455b97fdd0ef07a15b66eea63f82522ff4f31 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:09 +01:00
winesync
fb72dff218
[WINESYNC] msi: Get rid of the remove_column() view operation.
It was added to the structure, rather unnecessarily, by ccef56f2c.

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>

wine commit id c2810f40a0af6496cfbb7d87685e2e018befd43b by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:09 +01:00
winesync
43025b17d1
[WINESYNC] msi: Get rid of the find_matching_rows() view operation.
It was introduced in 9f487ba1d as part of an optimization, but ceased to be used in a52c2bf94.

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>

wine commit id ced768f2ec163e25b7e1cf54a87f4b01369a846e by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:08 +01:00
winesync
8c4b2b004b
[WINESYNC] msi: Only perform the media check if the label of the disk entry differs from the last.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40433
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 85fea53af80d324a4cf7f80a45f43fed8d8d65e1 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:07 +01:00
winesync
537188d764
[WINESYNC] msi: Increase MSI_INITIAL_MEDIA_TRANSFORM_DISKID to avoid conflicts.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 49e9fa376ca1ab251a0b5ccc506b255a93071bc2 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:06 +01:00
winesync
de59794f36
[WINESYNC] msi: Allow ARM64 installations.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id d5a169463b30af229368a5559b20f9ae415c3048 by André Hentschel <nerv@dawncrow.de>
2022-03-20 19:28:06 +01:00
winesync
14478462cc
[WINESYNC] msi: Fix the remote case for MsiViewModify(MSIMODIFY_UPDATE).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45972
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id c494570d89f270c9240519c625c5c757a4e8ff23 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:05 +01:00
winesync
312627c75b
[WINESYNC] msi: Remove unused fields from MSIFOLDER.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id de78ca24a5a2945e7431c1eb9a6e5404bbcfbf5d by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:04 +01:00
winesync
0922e524ec
[WINESYNC] msi: Rename msi_reset_folders to msi_reset_source_folders.
It was always called with source parameter set to TRUE.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 14ddb49df278e44fd184a8fd73ff1341ce0885ec by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:04 +01:00
winesync
2a9ae85885
[WINESYNC] msi: Add exception handling around all custom action RPC calls.
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>

wine commit id baea371c3d4153bc4a718c07f46971d4d39aa9f3 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:00 +01:00
winesync
fd8b07bdfc
[WINESYNC] 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>

wine commit id 2a9e0f1fada4a414cc750f6d45595342f473e02f by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:58 +01:00
winesync
82decec5f1
[WINESYNC] 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>

wine commit id 457431ab5bc1dd10c4957f145de85c4ba6d0ef72 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:57 +01:00
winesync
0a327bfe94
[WINESYNC] 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>

wine commit id 5c7cf0a47d9d43b11f84914f5890eae3fd694592 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:56 +01:00
winesync
a237138534
[WINESYNC] 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>

wine commit id 5924321ad63edc1d3fabf22d7b047e4efacbce66 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:27:56 +01:00
winesync
74196b8000
[WINESYNC] 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>

wine commit id 21836b79dd0acbd16f802f7364c070e1004e48ea by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:27:55 +01:00
winesync
da8483616c
[WINESYNC] 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>

wine commit id 6dc49e4b685850a76a35b1d1d102903a0231c5cc by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:27:55 +01:00
winesync
0d762dcba3
[WINESYNC] 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>

wine commit id 756bbb5bb756d1fcbeea41e10a6fdf2149fa1323 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:54 +01:00
winesync
0b125236c6
[WINESYNC] msi: Avoid using awstring in MsiFormatRecordW().
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>

wine commit id 6b54a4bc2eadd0b5cbc2553e2969ff572ff042d1 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:45 +01:00
winesync
d5e04177e7
[WINESYNC] msi: Handle the remote case directly in MsiFormatRecordA().
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>

wine commit id 75aa132b521f426fa670c05774a50c87247e9834 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:45 +01:00
winesync
d817f7cfa1
[WINESYNC] msi: Don't load a custom action DLL in the main process.
This has no effect anymore, and won't work if the architecture doesn't match.

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>

wine commit id e355cb62775f7fd39a03458c62334a603dcb0c78 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:43 +01:00
winesync
a8bc3902ba
[WINESYNC] msi: Execute custom actions in a separate process.
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>

wine commit id 85d1fb62b321e890004bc8d0ded7a0183216c42d by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:42 +01:00
winesync
aede536c83
[WINESYNC] msi: Make MsiViewModify() RPC-compatible.
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>

wine commit id c79fbc241e3c9a62ab50fb0826e33e85e97ae883 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:37 +01:00
winesync
795da5286b
[WINESYNC] msi: Make MsiViewFetch() RPC-compatible.
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>

wine commit id 39c116fd0c0aca6517b9c1f31296bf8665cf7834 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:37 +01:00
winesync
34c2011c9f
[WINESYNC] msi: Don't cache the base URL.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 99aa0eb5d8777b790f1aa3c643217571274b744f by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:27:35 +01:00
winesync
2e19edd6a0
[WINESYNC] msi: Make MsiProcessMessage() RPC-compatible.
Instead of passing a remote MSIHANDLE and creating a set of remote_Record*()
methods, we marshal the whole record as a wire struct. We do this for two
reasons: firstly, because chances are whoever is reading the record is going
to want to read the whole thing, so it's much less taxing on IPC to just pass
the whole record once; and secondly, because records can be created on the
client side or returned from the server side, and we don't want to have to
write a lot of extra code to deal with both possibilities.

The wire_record struct is designed so that we can simply pass the relevant
part of an MSIRECORD to the server.

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>

wine commit id bbf0f2da8211da73066fb36a444593ab0e8901f2 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:35 +01:00
winesync
78fc7f9ea8
[WINESYNC] msi: Store a record's associated query privately.
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>

wine commit id 9d121203955da5c761cfb5c22b6428278e41f0c7 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:35 +01:00
winesync
b74b77aa65
[WINESYNC] msi: Convert the IWineMsiRemote* remote interfaces to RPC stubs.
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>

wine commit id 8bfb4e8b6209d02a18be3299717b1f38db7045fe by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:34 +01:00
winesync
f9131763ed
[WINESYNC] msi: Allocate the remote handle on the server side.
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>

wine commit id b9b459810f646c48bdac981a066f0102acb9201c by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:27:34 +01:00
Amine Khaldi
c42b133eb1 [MSI] Sync with Wine Staging 3.3. CORE-14434 2018-03-05 00:30:58 +01:00
Amine Khaldi
f8b992f2d3 [MSI] Sync with Wine 3.0. CORE-14225 2018-01-20 12:29:30 +01:00
Amine Khaldi
71bffdcde9 [MSI] Sync with Wine Staging 2.16. CORE-13762
cb4c1dc msi: Always return MSIDBSTATE_ERROR when MsiGetDatabaseState is called from a custom action.
04d242d msi: Create dummy thread to initialize COM for custom actions.
52fbaeb msi: Add support for ActionText table.
700ebc8 msi: Return the correct values from dialogs.
a3dd99c msi: Return the current date and time.
4ccc82a msi: Use the Error table for more messages.
77e3d33 msi: Use MsiProcessMessage() to send error messages.
3ca2dfe msi: Avoid uninitialized pointer access on error path (Coverity).
d631714 msi: Add a trailing linefeed to a FIXME() trace.
39c2ff0 msi: Send the dialog created message in dialog_create().
14f865e msi: Don't queue a parent dialog to be shown in EndDialog.
8826584 msi: Process ShowDialog/EndDialog after all other control events.
44fb23d msi: Don't set _BrowseProperty.
b4c39f4 msi: Avoid a null pointer dereference.
51bd884 msi: Properly parse empty format strings.
16f0dff msi: Return the correct values from custom actions.
f348c7c msi: Rewrite dump_record().
f9c68df msi: Use the given record for INSTALLMESSAGE_ACTIONDATA.
c788ed85 msi: Provide the result of the last action.
1505912 msi: Allow setting NULL in MsiSetInteger().
f9f53fe msi: Correctly format the template field for MsiProcessMessage().
3033dae msi: Implement UI messages for dialogs.
5da9250 msi: Don't increment the refcount when creating dialogs.
48237e2 msi: Add a basic internal UI implementation.
39b841d msi: Fix a buffer overrun.
9032279 msi: Implement UI messages in MsiOpenPackage().
bcc4a04 msi: Implement INSTALLMESSAGE_INITIALIZE and INSTALLMESSAGE_TERMINATE.
a388906 msi: Send the correct UI messages upon calling MsiDoAction().
de5246a msi: Don't reimplement record formatting.
4e49ae3cc msi: Pass the given record to the callback.
df31a7c msi: Store string and record callback data separately.
cef6799 msi: Use an external UI record handler before a string handler.
2017-10-08 11:31:31 +01:00