summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2019-05-22 19:17:44 +0300
committerAndras Timar <andras.timar@collabora.com>2020-05-13 17:41:05 +0200
commitef61fd353973f502688e2b609aed7d0f2fc14eda (patch)
tree29a8205e756d6583d7505f13d12d30d19a6579c4 /solenv
parent78f1920937c87cde73358c9eda713072639ba884 (diff)
Register spsupp*.dll during installation
This registers SharePoint integration libraries using regsvr.exe. Both 32-bit and 64-bit libraries are registered; registration of LOSPSupport.OpenDocuments is unconditional. This introduces a new hidden MSI feature, which is disabled for installation: gm_SharePointSupport_SubstMSO. When installed, it registers SharePoint.OpenDocuments class in registry, thus overriding registration of this component by MS Office, allowing LibreOffice to serve as MS Office replacement working in IE with SharePoint. To install the feature, either a transform is needed setting the feature's level <= 100, or a command line: msiexec path-to-msi ADDLOCAL=gm_SharePointSupport_SubstMSO Change-Id: I5517bbb68dcc6db8bcb2bbc2368394ee4a62d741 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86452 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86462 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'solenv')
-rw-r--r--solenv/bin/modules/installer/windows/feature.pm23
1 files changed, 17 insertions, 6 deletions
diff --git a/solenv/bin/modules/installer/windows/feature.pm b/solenv/bin/modules/installer/windows/feature.pm
index 84d4e992d37f..c97be4a9c98e 100644
--- a/solenv/bin/modules/installer/windows/feature.pm
+++ b/solenv/bin/modules/installer/windows/feature.pm
@@ -125,13 +125,19 @@ sub get_feature_level
my $level = "20"; # the default
- my $localdefault = "";
-
- if ( $onefeature->{'Default'} ) { $localdefault = $onefeature->{'Default'}; }
-
- if ( $localdefault eq "NO" ) # explicitly set Default = "NO"
+ if ( $onefeature->{'Disabled'} )
{
- $level = "200"; # deselected in default installation, base is 100
+ if ( $onefeature->{'Disabled'} eq "YES" ) # Disabled = "YES"
+ {
+ $level = "0"; # disabled for installation at any INSTALLLEVEL
+ }
+ }
+ elsif ( $onefeature->{'Default'} )
+ {
+ if ( $onefeature->{'Default'} eq "NO" ) # explicitly set Default = "NO"
+ {
+ $level = "200"; # deselected in default installation, base is 100
+ }
}
return $level
@@ -162,6 +168,10 @@ sub get_feature_attributes
my $attributes;
+ # 2 = msidbFeatureAttributesFollowParent
+ # 8 = msidbFeatureAttributesDisallowAdvertise
+ # 16 = msidbFeatureAttributesUIDisallowAbsent
+
# No advertising of features and no leaving on network.
# Feature without parent must not have the "2"
@@ -169,6 +179,7 @@ sub get_feature_attributes
if ( $onefeature->{'ParentID'} ) { $parentgid = $onefeature->{'ParentID'}; }
if (( $parentgid eq "" ) || ( $parentgid eq $installer::globals::rootmodulegid )) { $attributes = "8"; }
+ elsif ( $onefeature->{'Independent'} && ($onefeature->{'Independent'} eq "YES") ) { $attributes = "8"; }
elsif ( get_feature_display($onefeature) eq "0" ) { $attributes = "26"; } # fdo#33798
else { $attributes = "10"; }