summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2019-05-22 19:17:44 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2020-01-09 07:23:48 +0100
commitf480617ca3a4869c9afd4d3d68f8057a6067d489 (patch)
treea476f4630c2194596ebfa1d5a449672a002a8ed2 /solenv
parentd9fe1a661c6a76f0b122c82edf73ec9efbdff349 (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>
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"; }