diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2020-08-10 13:58:57 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2020-08-10 15:06:14 +0200 |
commit | 0872e8cc87d753e6bdda9fad510a6b71cf96565f (patch) | |
tree | 8abe498a88ae72a2645cfe43908e23040686a68a /scp2 | |
parent | f6e9feb5bf7d227b33fe9cd4e61720d6205e5143 (diff) |
tdf#135579: Don't uninstall vc_redist: make it permanent
Redist is a system component, that includes a varying set of DLLs,
and those DLLs are ref-counted. Installing a newer redist - i.e.
updating and increasing refcount of existing DLLs - may add new
DLLs (with initial refcount 1) in addition to the updated old DLLs
that start depending on the newly added ones; at uninstall, the
newly added DLLs may get removed because their refcount gets 0,
while other redist DLLs are kept at the updated levels - so their
dependencies now are not met, and redist gets broken.
Just mark the redist components permanent, which, according to [1],
"registers an extra system client for the component in the Windows
Installer registry settings".
A downside is that uninstall doesn't restore the original system
state ideally.
[1] https://docs.microsoft.com/en-us/windows/win32/msi/component-table
Change-Id: I3fe82bcb5844f826f5b1df622273b4e3a1e3c436
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100426
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'scp2')
-rw-r--r-- | scp2/source/ooo/vc_redist.scp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/scp2/source/ooo/vc_redist.scp b/scp2/source/ooo/vc_redist.scp index d32758312766..75ccf2b8d09d 100644 --- a/scp2/source/ooo/vc_redist.scp +++ b/scp2/source/ooo/vc_redist.scp @@ -32,22 +32,26 @@ #if defined(WINDOWS_X86_MERGEMODULE) +/* Attributes: msidbComponentAttributesPermanent = 0x10 */ MergeModule WINDOWS_X86_MERGEMODULE Feature = gm_Root; Name = WINDOWS_X86_MERGEMODULE_FILE; RootDir = "TARGETDIR"; ComponentCondition = "VC_REDIST=1"; + Attributes_Add = "0x10"; End #endif #if defined(WINDOWS_X64) && defined(WINDOWS_X64_MERGEMODULE) +/* Attributes: msidbComponentAttributesPermanent = 0x10 */ MergeModule WINDOWS_X64_MERGEMODULE Feature = gm_Root; Name = WINDOWS_X64_MERGEMODULE_FILE; RootDir = "TARGETDIR"; ComponentCondition = "VC_REDIST=1"; + Attributes_Add = "0x10"; End #endif |