summaryrefslogtreecommitdiff
path: root/scp2
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2020-08-10 13:58:57 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2020-08-10 15:06:14 +0200
commit0872e8cc87d753e6bdda9fad510a6b71cf96565f (patch)
tree8abe498a88ae72a2645cfe43908e23040686a68a /scp2
parentf6e9feb5bf7d227b33fe9cd4e61720d6205e5143 (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.scp4
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