← Index
NYTProf Performance Profile   « block view • line view • sub view »
For C:/lo/libo-master/solenv/bin/make_installer.pl
  Run on Mon Sep 24 00:52:54 2012
Reported on Mon Sep 24 07:34:34 2012

Filename/cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer/windows/property.pm
StatementsExecuted 101599 statements in 390ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
10911205ms423msinstaller::windows::property::::update_property_tableinstaller::windows::property::update_property_table
1091154.7ms166msinstaller::windows::property::::set_codes_in_property_tableinstaller::windows::property::set_codes_in_property_table
6779812148.6ms48.6msinstaller::windows::property::::CORE:substinstaller::windows::property::CORE:subst (opcode)
1091143.7ms48.4msinstaller::windows::property::::set_important_propertiesinstaller::windows::property::set_important_properties
15042218.41ms8.41msinstaller::windows::property::::CORE:matchinstaller::windows::property::CORE:match (opcode)
109117.19ms127msinstaller::windows::property::::set_languages_in_property_tableinstaller::windows::property::set_languages_in_property_table
109113.91ms16.0msinstaller::windows::property::::get_arpcomments_for_property_tableinstaller::windows::property::get_arpcomments_for_property_table
109113.65ms3.65msinstaller::windows::property::::set_ms_file_types_propertiesinstaller::windows::property::set_ms_file_types_properties
109112.79ms3.47msinstaller::windows::property::::get_productname_for_property_tableinstaller::windows::property::get_productname_for_property_table
109111.74ms2.15msinstaller::windows::property::::get_quickstarterlinkname_for_property_tableinstaller::windows::property::get_quickstarterlinkname_for_property_table
109111.34ms2.69msinstaller::windows::property::::get_productlanguage_for_property_tableinstaller::windows::property::get_productlanguage_for_property_table
218211.08ms1.08msinstaller::windows::property::::get_productnameinstaller::windows::property::get_productname
10911768µs768µsinstaller::windows::property::::update_checkbox_tableinstaller::windows::property::update_checkbox_table
10911468µs468µsinstaller::windows::property::::get_ischeckforproductupdates_for_property_tableinstaller::windows::property::get_ischeckforproductupdates_for_property_table
10911468µs468µsinstaller::windows::property::::get_productversion_for_property_tableinstaller::windows::property::get_productversion_for_property_table
10911468µs468µsinstaller::windows::property::::get_installlevel_for_property_tableinstaller::windows::property::get_installlevel_for_property_table
10911416µs416µsinstaller::windows::property::::get_manufacturer_for_property_tableinstaller::windows::property::get_manufacturer_for_property_table
111391µs395µsinstaller::windows::property::::BEGIN@30installer::windows::property::BEGIN@30
11117µs19µsinstaller::windows::property::::BEGIN@31installer::windows::property::BEGIN@31
11116µs19µsinstaller::windows::property::::BEGIN@33installer::windows::property::BEGIN@33
11116µs19µsinstaller::windows::property::::BEGIN@32installer::windows::property::BEGIN@32
11115µs17µsinstaller::windows::property::::BEGIN@34installer::windows::property::BEGIN@34
0000s0sinstaller::windows::property::::get_english_language_stringinstaller::windows::property::get_english_language_string
0000s0sinstaller::windows::property::::get_language_stringinstaller::windows::property::get_language_string
0000s0sinstaller::windows::property::::set_featurename_properties_for_patchinstaller::windows::property::set_featurename_properties_for_patch
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1#*************************************************************************
2#
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# Copyright 2000, 2010 Oracle and/or its affiliates.
6#
7# OpenOffice.org - a multi-platform office productivity suite
8#
9# This file is part of OpenOffice.org.
10#
11# OpenOffice.org is free software: you can redistribute it and/or modify
12# it under the terms of the GNU Lesser General Public License version 3
13# only, as published by the Free Software Foundation.
14#
15# OpenOffice.org is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18# GNU Lesser General Public License version 3 for more details
19# (a copy is included in the LICENSE file that accompanied this code).
20#
21# You should have received a copy of the GNU Lesser General Public License
22# version 3 along with OpenOffice.org. If not, see
23# <http://www.openoffice.org/license.html>
24# for a copy of the LGPLv3 License.
25#
26#*************************************************************************
27
28package installer::windows::property;
29
30270µs2399µs
# spent 395µs (391+4) within installer::windows::property::BEGIN@30 which was called: # once (391µs+4µs) by installer::BEGIN@77 at line 30
use installer::exiter;
# spent 395µs making 1 call to installer::windows::property::BEGIN@30 # spent 4µs making 1 call to UNIVERSAL::import
31261µs221µs
# spent 19µs (17+2) within installer::windows::property::BEGIN@31 which was called: # once (17µs+2µs) by installer::BEGIN@77 at line 31
use installer::files;
# spent 19µs making 1 call to installer::windows::property::BEGIN@31 # spent 2µs making 1 call to UNIVERSAL::import
32254µs222µs
# spent 19µs (16+3) within installer::windows::property::BEGIN@32 which was called: # once (16µs+3µs) by installer::BEGIN@77 at line 32
use installer::globals;
# spent 19µs making 1 call to installer::windows::property::BEGIN@32 # spent 3µs making 1 call to UNIVERSAL::import
33257µs222µs
# spent 19µs (16+3) within installer::windows::property::BEGIN@33 which was called: # once (16µs+3µs) by installer::BEGIN@77 at line 33
use installer::windows::idtglobal;
# spent 19µs making 1 call to installer::windows::property::BEGIN@33 # spent 2µs making 1 call to UNIVERSAL::import
3426.84ms220µs
# spent 17µs (15+2) within installer::windows::property::BEGIN@34 which was called: # once (15µs+2µs) by installer::BEGIN@77 at line 34
use installer::windows::language;
# spent 17µs making 1 call to installer::windows::property::BEGIN@34 # spent 2µs making 1 call to UNIVERSAL::import
35
36#############################################
37# Setting the properties dynamically
38# for the table Property.idt
39#############################################
40
41sub get_arpcomments_for_property_table
42
# spent 16.0ms (3.91+12.1) within installer::windows::property::get_arpcomments_for_property_table which was called 109 times, avg 147µs/call: # 109 times (3.91ms+12.1ms) by installer::windows::property::update_property_table at line 469, avg 147µs/call
{
43174416.1ms my ( $allvariables, $languagestringref ) = @_;
44
45 my $name = $allvariables->{'PRODUCTNAME'};
46 my $version = $allvariables->{'PRODUCTVERSION'};
47 my $comment = $name . " " . $version;
48
49 my $postversionextension = "";
50 if ( $allvariables->{'POSTVERSIONEXTENSION'} )
51 {
52 $postversionextension = $allvariables->{'POSTVERSIONEXTENSION'};
53 $comment = $comment . " " . $postversionextension;
54 }
55
56 if ( $installer::globals::languagepack ) { $comment = $comment . " " . "Language Pack"; }
57 elsif ( $installer::globals::helppack ) { $comment = $comment . " " . "Help Pack"; }
58
59 if ( $installer::globals::patch )
60 {
61 if ( ! $allvariables->{'WINDOWSPATCHLEVEL'} ) { installer::exiter::exit_program("ERROR: No Patch level defined for Windows patch: WINDOWSPATCHLEVEL", "get_arpcomments_for_property_table"); }
62 my $patchstring = "Product Update" . " " . $allvariables->{'WINDOWSPATCHLEVEL'};
63 $comment = $comment . " " . $patchstring;
64 }
65
66 my $languagestring = $$languagestringref;
6710912.1ms $languagestring =~ s/\_/\,/g;
# spent 12.1ms making 109 calls to installer::windows::property::CORE:subst, avg 111µs/call
68
69 $comment = $comment . " ($languagestring)";
70
71 my $localminor = "";
72 $localminor = $installer::globals::minor;
73
74 my $buildidstring = "(" . $installer::globals::build . $localminor . "(Build:" . $installer::globals::buildid . "))";
75
76 $comment = $comment . " " . $buildidstring;
77
78 return $comment;
79}
80
81sub get_installlevel_for_property_table
82
# spent 468µs within installer::windows::property::get_installlevel_for_property_table which was called 109 times, avg 4µs/call: # 109 times (468µs+0s) by installer::windows::property::update_property_table at line 470, avg 4µs/call
{
83218778µs my $installlevel = "100";
84 return $installlevel;
85}
86
87sub get_ischeckforproductupdates_for_property_table
88
# spent 468µs within installer::windows::property::get_ischeckforproductupdates_for_property_table which was called 109 times, avg 4µs/call: # 109 times (468µs+0s) by installer::windows::property::update_property_table at line 471, avg 4µs/call
{
89218769µs my $ischeckforproductupdates = "1";
90 return $ischeckforproductupdates;
91}
92
93sub get_manufacturer_for_property_table
94
# spent 416µs within installer::windows::property::get_manufacturer_for_property_table which was called 109 times, avg 4µs/call: # 109 times (416µs+0s) by installer::windows::property::update_property_table at line 472, avg 4µs/call
{
95109725µs return $installer::globals::manufacturer;
96}
97
98sub get_productlanguage_for_property_table
99
# spent 2.69ms (1.34+1.36) within installer::windows::property::get_productlanguage_for_property_table which was called 109 times, avg 25µs/call: # 109 times (1.34ms+1.36ms) by installer::windows::property::update_property_table at line 473, avg 25µs/call
{
1003271.44ms my ($language) = @_;
1011091.36ms my $windowslanguage = installer::windows::language::get_windows_language($language);
# spent 1.36ms making 109 calls to installer::windows::language::get_windows_language, avg 12µs/call
102 return $windowslanguage;
103}
104
105sub get_language_string
106{
107 my $langstring = "";
108
109 for ( my $i = 0; $i <= $#installer::globals::languagenames; $i++ )
110 {
111 $langstring = $langstring . $installer::globals::languagenames[$i] . ", ";
112 }
113
114 $langstring =~ s/\,\s*$//;
115 $langstring = "(" . $langstring . ")";
116
117 return $langstring;
118}
119
120sub get_english_language_string
121{
122 my $langstring = "";
123
124 # Sorting value not keys, therefore collecting all values
125 my %helper = ();
126 foreach my $lang ( keys %installer::globals::all_required_english_languagestrings )
127 {
128 $helper{$installer::globals::all_required_english_languagestrings{$lang}} = 1;
129 }
130
131 foreach my $lang ( sort keys %helper )
132 {
133 $langstring = $langstring . $lang . ", ";
134 }
135
136 $langstring =~ s/\,\s*$//;
137 $langstring = "(" . $langstring . ")";
138
139 return $langstring;
140}
141
142sub get_productname($$)
143
# spent 1.08ms within installer::windows::property::get_productname which was called 218 times, avg 5µs/call: # 109 times (677µs+0s) by installer::windows::property::get_productname_for_property_table at line 155, avg 6µs/call # 109 times (403µs+0s) by installer::windows::property::get_quickstarterlinkname_for_property_table at line 204, avg 4µs/call
{
1446541.66ms my ( $language, $allvariables ) = @_;
145
146 my $name = $allvariables->{'PRODUCTNAME'};
147
148 return $name;
149}
150
151sub get_productname_for_property_table($$)
152
# spent 3.47ms (2.79+677µs) within installer::windows::property::get_productname_for_property_table which was called 109 times, avg 32µs/call: # 109 times (2.79ms+677µs) by installer::windows::property::update_property_table at line 474, avg 32µs/call
{
15315262.75ms my ( $language, $allvariables ) = @_;
154
155109677µs my $name = get_productname ($language, $allvariables);
# spent 677µs making 109 calls to installer::windows::property::get_productname, avg 6µs/call
156 my $version = $allvariables->{'PRODUCTVERSION'};
157 my $productname = $name . " " . $version;
158
159 my $postversionextension = "";
160 if ( $allvariables->{'POSTVERSIONEXTENSION'} )
161 {
162 $postversionextension = $allvariables->{'POSTVERSIONEXTENSION'};
163 $productname = $productname . " " . $postversionextension;
164 }
165
166 my $productextension = "";
167 if ( $allvariables->{'PRODUCTEXTENSION'} )
168 {
169 $productextension = $allvariables->{'PRODUCTEXTENSION'};
170 $productname = $productname . " " . $productextension;
171 }
172
173 if ( $installer::globals::languagepack )
174 {
175 my $langstring = get_english_language_string(); # Example: (English, German)
176 $productname = $name . " " . $version . " Language Pack" . " " . $langstring;
177 }
178 elsif ( $installer::globals::helppack )
179 {
180 my $langstring = get_english_language_string(); # New: (English, German)
181 $productname = $name . " " . $version . " Help Pack" . " " . $langstring;
182 }
183
184 if ( $installer::globals::patch )
185 {
186 if ( ! $allvariables->{'WINDOWSPATCHLEVEL'} ) { installer::exiter::exit_program("ERROR: No Patch level defined for Windows patch: WINDOWSPATCHLEVEL", "get_productname_for_property_table"); }
187 my $patchstring = "Product Update" . " " . $allvariables->{'WINDOWSPATCHLEVEL'};
188 $productname = $productname . " " . $patchstring;
189 }
190
191 # Saving this name in hash $allvariables for further usage
192 $allvariables->{'PROPERTYTABLEPRODUCTNAME'} = $productname;
193 my $infoline = "Defined variable PROPERTYTABLEPRODUCTNAME: $productname\n";
194 push(@installer::globals::logfileinfo, $infoline);
195
196 return $productname;
197}
198
199sub get_quickstarterlinkname_for_property_table($$)
200
# spent 2.15ms (1.74+403µs) within installer::windows::property::get_quickstarterlinkname_for_property_table which was called 109 times, avg 20µs/call: # 109 times (1.74ms+403µs) by installer::windows::property::update_property_table at line 476, avg 20µs/call
{
2017631.69ms my ( $language, $allvariables ) = @_;
202
203 # no usage of POSTVERSIONEXTENSION for Quickstarter link name!
204109403µs my $name = get_productname ($language, $allvariables);
# spent 403µs making 109 calls to installer::windows::property::get_productname, avg 4µs/call
205 my $version = $allvariables->{'PRODUCTVERSION'};
206 my $quickstartername = $name . " " . $version;
207
208 my $infoline = "Defined Quickstarter Link name: $quickstartername\n";
209 push(@installer::globals::logfileinfo, $infoline);
210
211 return $quickstartername;
212}
213
214sub get_productversion_for_property_table
215
# spent 468µs within installer::windows::property::get_productversion_for_property_table which was called 109 times, avg 4µs/call: # 109 times (468µs+0s) by installer::windows::property::update_property_table at line 475, avg 4µs/call
{
216109753µs return $installer::globals::msiproductversion;
217}
218
219#######################################################
220# Setting all feature names as Properties. This is
221# required for the Windows patch process.
222#######################################################
223
224sub set_featurename_properties_for_patch
225{
226 ($propertyfile) = @_;
227
228 for ( my $i = 0; $i <= $#installer::globals::featurecollector; $i++ )
229 {
230 my $onepropertyline = $installer::globals::featurecollector[$i] . "\t" . "1" . "\n";
231 push(@{$propertyfile}, $onepropertyline);
232 }
233
234}
235
236#######################################################
237# Setting some important properties
238# (for finding the product in deinstallation process)
239#######################################################
240
241sub set_important_properties
242
# spent 48.4ms (43.7+4.70) within installer::windows::property::set_important_properties which was called 109 times, avg 444µs/call: # 109 times (43.7ms+4.70ms) by installer::windows::property::update_property_table at line 504, avg 444µs/call
{
2431417048.6ms my ($propertyfile, $allvariables, $languagestringref) = @_;
244
245 # Setting new variables with the content of %PRODUCTNAME and %PRODUCTVERSION
246 if ( $allvariables->{'PRODUCTNAME'} )
247 {
248 my $onepropertyline = "DEFINEDPRODUCT" . "\t" . $allvariables->{'PRODUCTNAME'} . "\n";
249 push(@{$propertyfile}, $onepropertyline);
250 }
251
252 if ( $allvariables->{'PRODUCTVERSION'} )
253 {
254 my $onepropertyline = "DEFINEDVERSION" . "\t" . $allvariables->{'PRODUCTVERSION'} . "\n";
255 push(@{$propertyfile}, $onepropertyline);
256 }
257
258 if (( $allvariables->{'PRODUCTNAME'} ) && ( $allvariables->{'PRODUCTVERSION'} ) && ( $allvariables->{'REGISTRYLAYERNAME'} ))
259 {
260 my $onepropertyline = "FINDPRODUCT" . "\t" . "Software\\LibreOffice" . "\\" . $allvariables->{'REGISTRYLAYERNAME'} . "\\" . $allvariables->{'PRODUCTNAME'} . "\\" . $allvariables->{'PRODUCTVERSION'} . "\n";
261 push(@{$propertyfile}, $onepropertyline);
262 }
263
264 if ( $allvariables->{'PRODUCTMAJOR'} )
265 {
266 my $onepropertyline = "PRODUCTMAJOR" . "\t" . $allvariables->{'PRODUCTMAJOR'} . "\n";
267 push(@{$propertyfile}, $onepropertyline);
268 }
269
270 if ( $allvariables->{'PRODUCTMINOR'} )
271 {
272 my $onepropertyline = "PRODUCTMINOR" . "\t" . $allvariables->{'PRODUCTMINOR'} . "\n";
273 push(@{$propertyfile}, $onepropertyline);
274 }
275
276 if ( $allvariables->{'PRODUCTBUILDID'} )
277 {
278 my $onepropertyline = "PRODUCTBUILDID" . "\t" . $allvariables->{'PRODUCTBUILDID'} . "\n";
279 push(@{$propertyfile}, $onepropertyline);
280 }
281
282 if ( $allvariables->{'URELAYERVERSION'} )
283 {
284 my $onepropertyline = "URELAYERVERSION" . "\t" . $allvariables->{'URELAYERVERSION'} . "\n";
285 push(@{$propertyfile}, $onepropertyline);
286 }
287
288 if ( $allvariables->{'BRANDPACKAGEVERSION'} )
289 {
290 my $onepropertyline = "BRANDPACKAGEVERSION" . "\t" . $allvariables->{'BRANDPACKAGEVERSION'} . "\n";
291 push(@{$propertyfile}, $onepropertyline);
292 }
293
294 if ( $allvariables->{'EXCLUDE_FROM_REBASE'} )
295 {
296 my $onepropertyline = "EXCLUDE_FROM_REBASE" . "\t" . $allvariables->{'EXCLUDE_FROM_REBASE'} . "\n";
297 push(@{$propertyfile}, $onepropertyline);
298 }
299
300 if ( $allvariables->{'PREREQUIREDPATCH'} )
301 {
302 my $onepropertyline = "PREREQUIREDPATCH" . "\t" . $allvariables->{'PREREQUIREDPATCH'} . "\n";
303 push(@{$propertyfile}, $onepropertyline);
304 }
305
306 my $onepropertyline = "IGNOREPREREQUIREDPATCH" . "\t" . "1" . "\n";
307 push(@{$propertyfile}, $onepropertyline);
308
309 $onepropertyline = "DONTOPTIMIZELIBS" . "\t" . "0" . "\n";
310 push(@{$propertyfile}, $onepropertyline);
311
312 if ( $installer::globals::officedirhostname )
313 {
314 my $onepropertyline = "OFFICEDIRHOSTNAME" . "\t" . $installer::globals::officedirhostname . "\n";
315 push(@{$propertyfile}, $onepropertyline);
316
317 my $localofficedirhostname = $installer::globals::officedirhostname;
31810987µs $localofficedirhostname =~ s/\//\\/g;
# spent 87µs making 109 calls to installer::windows::property::CORE:subst, avg 800ns/call
319 $onepropertyline = "OFFICEDIRHOSTNAME_" . "\t" . $localofficedirhostname . "\n";
320 push(@{$propertyfile}, $onepropertyline);
321 }
322
323 if ( $installer::globals::desktoplinkexists )
324 {
325 my $onepropertyline = "DESKTOPLINKEXISTS" . "\t" . "1" . "\n";
326 push(@{$propertyfile}, $onepropertyline);
327
328 $onepropertyline = "CREATEDESKTOPLINK" . "\t" . "1" . "\n"; # Setting the default
329 push(@{$propertyfile}, $onepropertyline);
330 }
331
332 if ( $installer::globals::patch )
333 {
334 my $onepropertyline = "ISPATCH" . "\t" . "1" . "\n";
335 push(@{$propertyfile}, $onepropertyline);
336 }
337
338 if ( $installer::globals::languagepack )
339 {
340 my $onepropertyline = "ISLANGUAGEPACK" . "\t" . "1" . "\n";
341 push(@{$propertyfile}, $onepropertyline);
342 }
343 elsif ( $installer::globals::helppack )
344 {
345 my $onepropertyline = "ISHELPPACK" . "\t" . "1" . "\n";
346 push(@{$propertyfile}, $onepropertyline);
347 }
348
349 my $languagesline = "PRODUCTALLLANGUAGES" . "\t" . $$languagestringref . "\n";
350 push(@{$propertyfile}, $languagesline);
351
352 if (( $allvariables->{'PRODUCTEXTENSION'} ) && ( $allvariables->{'PRODUCTEXTENSION'} eq "Beta" ))
353 {
354 # my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n";
355 # push(@{$propertyfile}, $registryline);
356 my $betainfoline = "BETAPRODUCT" . "\t" . "1" . "\n";
357 push(@{$propertyfile}, $betainfoline);
358 }
359 elsif ( $allvariables->{'DEVELOPMENTPRODUCT'} )
360 {
361 my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n";
362 push(@{$propertyfile}, $registryline);
363 }
364 else
365 {
366 my $registryline = "WRITE_REGISTRY" . "\t" . "1" . "\n"; # Default: Write complete registry
367 push(@{$propertyfile}, $registryline);
368 }
369
370 # Adding also used tree conditions for multilayer products.
371 # These are saved in %installer::globals::usedtreeconditions
372 foreach my $treecondition (keys %installer::globals::usedtreeconditions)
373 {
374 my $onepropertyline = $treecondition . "\t" . "1" . "\n";
375 push(@{$propertyfile}, $onepropertyline);
376 }
377
378 # No more license dialog for selected products
379 if ( $allvariables->{'HIDELICENSEDIALOG'} )
380 {
381 my $onepropertyline = "HIDEEULA" . "\t" . "1" . "\n";
382
383 my $already_defined = 0;
384
385 for ( my $i = 0; $i <= $#{$propertyfile}; $i++ )
386 {
38782844.62ms if ( ${$propertyfile}[$i] =~ /^\s*HIDEEULA\t/ )
# spent 4.62ms making 8284 calls to installer::windows::property::CORE:match, avg 557ns/call
388 {
389 ${$propertyfile}[$i] = $onepropertyline;
390 $already_defined = 1;
391 last;
392 }
393 }
394
395 if ( ! $already_defined )
396 {
397 push(@{$propertyfile}, $onepropertyline);
398 }
399 }
400
401 # Setting .NET requirements
402 push @{$propertyfile}, "REQUIRED_DOTNET_VERSION" . "\t" . "2.0.0.0" . "\n";
403 push @{$propertyfile}, "DOTNET_SUFFICIENT" . "\t" . "1" . "\n"; # default value for found .NET
404}
405
406#######################################################
407# Setting properties needed for ms file type registration
408#######################################################
409
410sub set_ms_file_types_properties
411
# spent 3.65ms within installer::windows::property::set_ms_file_types_properties which was called 109 times, avg 33µs/call: # 109 times (3.65ms+0s) by installer::windows::property::update_property_table at line 510, avg 33µs/call
{
41227253.99ms my ($propertyfile) = @_;
413
414# we do not register PPSM, PPAM, and XLAM file types in
415# setup_native\source\win32\customactions\reg4allmsdoc\reg4allmsi.cxx
416# (probably because LibreOffice can't deal with them properly (?)
417
418 push(@{$propertyfile}, "REGISTER_PPS" . "\t" . "0" . "\n");
419 push(@{$propertyfile}, "REGISTER_PPSX" . "\t" . "0" . "\n");
420# push(@{$propertyfile}, "REGISTER_PPSM" . "\t" . "0" . "\n");
421# push(@{$propertyfile}, "REGISTER_PPAM" . "\t" . "0" . "\n");
422 push(@{$propertyfile}, "REGISTER_PPT" . "\t" . "0" . "\n");
423 push(@{$propertyfile}, "REGISTER_PPTX" . "\t" . "0" . "\n");
424 push(@{$propertyfile}, "REGISTER_PPTM" . "\t" . "0" . "\n");
425 push(@{$propertyfile}, "REGISTER_POT" . "\t" . "0" . "\n");
426 push(@{$propertyfile}, "REGISTER_POTX" . "\t" . "0" . "\n");
427 push(@{$propertyfile}, "REGISTER_POTM" . "\t" . "0" . "\n");
428
429 push(@{$propertyfile}, "REGISTER_DOC" . "\t" . "0" . "\n");
430 push(@{$propertyfile}, "REGISTER_DOCX" . "\t" . "0" . "\n");
431 push(@{$propertyfile}, "REGISTER_DOCM" . "\t" . "0" . "\n");
432 push(@{$propertyfile}, "REGISTER_DOT" . "\t" . "0" . "\n");
433 push(@{$propertyfile}, "REGISTER_DOTX" . "\t" . "0" . "\n");
434 push(@{$propertyfile}, "REGISTER_DOTM" . "\t" . "0" . "\n");
435 push(@{$propertyfile}, "REGISTER_RTF" . "\t" . "0" . "\n");
436
437 push(@{$propertyfile}, "REGISTER_XLS" . "\t" . "0" . "\n");
438 push(@{$propertyfile}, "REGISTER_XLSX" . "\t" . "0" . "\n");
439 push(@{$propertyfile}, "REGISTER_XLSM" . "\t" . "0" . "\n");
440 push(@{$propertyfile}, "REGISTER_XLSB" . "\t" . "0" . "\n");
441# push(@{$propertyfile}, "REGISTER_XLAM" . "\t" . "0" . "\n");
442 push(@{$propertyfile}, "REGISTER_XLT" . "\t" . "0" . "\n");
443 push(@{$propertyfile}, "REGISTER_XLTX" . "\t" . "0" . "\n");
444 push(@{$propertyfile}, "REGISTER_XLTM" . "\t" . "0" . "\n");
445
446 push(@{$propertyfile}, "REGISTER_NO_MSO_TYPES" . "\t" . "0" . "\n");
447 push(@{$propertyfile}, "REGISTER_ALL_MSO_TYPES" . "\t" . "0" . "\n");
448}
449
450####################################################################################
451# Updating the file Property.idt dynamically
452# Content:
453# Property Value
454####################################################################################
455
456sub update_property_table
457
# spent 423ms (205+218) within installer::windows::property::update_property_table which was called 109 times, avg 3.88ms/call: # 109 times (205ms+218ms) by installer::run at line 1643 of /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer.pm, avg 3.88ms/call
{
45863002234ms my ($basedir, $language, $allvariables, $languagestringref) = @_;
459
460 my $properyfilename = $basedir . $installer::globals::separator . "Property.idt";
461
46210958.8ms my $propertyfile = installer::files::read_file($properyfilename);
# spent 58.8ms making 109 calls to installer::files::read_file, avg 540µs/call
463
464 my $hasarpnomodify = 0;
465
466 # Getting the new values
467 # Some values (arpcomments, arpcontacts, ...) are inserted from the Property.mlf
468
46910916.0ms my $arpcomments = get_arpcomments_for_property_table($allvariables, $languagestringref);
# spent 16.0ms making 109 calls to installer::windows::property::get_arpcomments_for_property_table, avg 147µs/call
470109468µs my $installlevel = get_installlevel_for_property_table();
# spent 468µs making 109 calls to installer::windows::property::get_installlevel_for_property_table, avg 4µs/call
471109468µs my $ischeckforproductupdates = get_ischeckforproductupdates_for_property_table();
472109416µs my $manufacturer = get_manufacturer_for_property_table();
# spent 416µs making 109 calls to installer::windows::property::get_manufacturer_for_property_table, avg 4µs/call
4731092.69ms my $productlanguage = get_productlanguage_for_property_table($language);
# spent 2.69ms making 109 calls to installer::windows::property::get_productlanguage_for_property_table, avg 25µs/call
4741093.47ms my $productname = get_productname_for_property_table($language, $allvariables);
# spent 3.47ms making 109 calls to installer::windows::property::get_productname_for_property_table, avg 32µs/call
475109468µs my $productversion = get_productversion_for_property_table();
# spent 468µs making 109 calls to installer::windows::property::get_productversion_for_property_table, avg 4µs/call
4761092.15ms my $quickstarterlinkname = get_quickstarterlinkname_for_property_table($language, $allvariables);
# spent 2.15ms making 109 calls to installer::windows::property::get_quickstarterlinkname_for_property_table, avg 20µs/call
477
478 # Updating the values
479
480 for ( my $i = 0; $i <= $#{$propertyfile}; $i++ )
481 {
48267584.26ms ${$propertyfile}[$i] =~ s/\bARPCOMMENTSTEMPLATE\b/$arpcomments/;
# spent 4.26ms making 6758 calls to installer::windows::property::CORE:subst, avg 630ns/call
48367583.59ms ${$propertyfile}[$i] =~ s/\bINSTALLLEVELTEMPLATE\b/$installlevel/;
# spent 3.59ms making 6758 calls to installer::windows::property::CORE:subst, avg 532ns/call
48467583.42ms ${$propertyfile}[$i] =~ s/\bISCHECKFORPRODUCTUPDATESTEMPLATE\b/$ischeckforproductupdates/;
# spent 3.42ms making 6758 calls to installer::windows::property::CORE:subst, avg 506ns/call
48567583.57ms ${$propertyfile}[$i] =~ s/\bMANUFACTURERTEMPLATE\b/$manufacturer/;
# spent 3.57ms making 6758 calls to installer::windows::property::CORE:subst, avg 528ns/call
48667583.41ms ${$propertyfile}[$i] =~ s/\bPRODUCTLANGUAGETEMPLATE\b/$productlanguage/;
# spent 3.41ms making 6758 calls to installer::windows::property::CORE:subst, avg 505ns/call
48767583.54ms ${$propertyfile}[$i] =~ s/\bPRODUCTNAMETEMPLATE\b/$productname/;
# spent 3.54ms making 6758 calls to installer::windows::property::CORE:subst, avg 523ns/call
48867583.47ms ${$propertyfile}[$i] =~ s/\bPRODUCTVERSIONTEMPLATE\b/$productversion/;
# spent 3.47ms making 6758 calls to installer::windows::property::CORE:subst, avg 514ns/call
48967583.38ms ${$propertyfile}[$i] =~ s/\bQUICKSTARTERLINKNAMETEMPLATE\b/$quickstarterlinkname/;
# spent 3.38ms making 6758 calls to installer::windows::property::CORE:subst, avg 499ns/call
49067583.79ms if ( ${$propertyfile}[$i] =~ m/\bARPNOMODIFY\b/ ) { $hasarpnomodify = 1; }
# spent 3.79ms making 6758 calls to installer::windows::property::CORE:match, avg 561ns/call
491 }
492
493 # Check if are building silent MSI
494 if ( $ENV{ENABLE_SILENT_MSI} eq "TRUE" )
495 {
496 push(@{$propertyfile}, "LIMITUI" . "\t" . "1" . "\n");
497 if ( !($hasarpnomodify) )
498 {
499 push(@{$propertyfile}, "ARPNOMODIFY" . "\t" . "1" . "\n");
500 }
501 }
502
503 # Setting variables into propertytable
50410948.4ms set_important_properties($propertyfile, $allvariables, $languagestringref);
# spent 48.4ms making 109 calls to installer::windows::property::set_important_properties, avg 444µs/call
505
506 # Setting feature names as properties for Windows patch mechanism
507 if ( $installer::globals::patch ) { set_featurename_properties_for_patch($propertyfile); }
508
509 # Setting variables for register for ms file types
5101093.65ms set_ms_file_types_properties($propertyfile);
# spent 3.65ms making 109 calls to installer::windows::property::set_ms_file_types_properties, avg 33µs/call
511
512 # Saving the file
513
51410948.0ms installer::files::save_file($properyfilename ,$propertyfile);
# spent 48.0ms making 109 calls to installer::files::save_file, avg 440µs/call
515 my $infoline = "Updated idt file: $properyfilename\n";
516 push(@installer::globals::logfileinfo, $infoline);
517
518}
519
520####################################################################################
521# Setting language specific Properties in file Property.idt dynamically
522# Adding:
523# isMulti = 1
524####################################################################################
525
526sub set_languages_in_property_table
527
# spent 127ms (7.19+120) within installer::windows::property::set_languages_in_property_table which was called 109 times, avg 1.17ms/call: # 109 times (7.19ms+120ms) by installer::run at line 1655 of /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer.pm, avg 1.17ms/call
{
52815266.73ms my ($basedir, $languagesarrayref) = @_;
529
530 my $properyfilename = $basedir . $installer::globals::separator . "Property.idt";
53110976.4ms my $propertyfile = installer::files::read_file($properyfilename);
# spent 76.4ms making 109 calls to installer::files::read_file, avg 701µs/call
532
533 # Setting the info about multilingual installation in property "isMulti"
534
535 my $propertyname = "isMulti";
536 my $ismultivalue = 0;
537
538 if ( $installer::globals::ismultilingual ) { $ismultivalue = 1; }
539
540 my $onepropertyline = $propertyname . "\t" . $ismultivalue . "\n";
541 push(@{$propertyfile}, $onepropertyline);
542
543 # setting the ARPPRODUCTICON
544
545 if ($installer::globals::sofficeiconadded) # set in shortcut.pm
546 {
547 $onepropertyline = "ARPPRODUCTICON" . "\t" . "soffice.ico" . "\n";
548 push(@{$propertyfile}, $onepropertyline);
549 }
550
551 # Saving the file
552
55310943.4ms installer::files::save_file($properyfilename ,$propertyfile);
# spent 43.4ms making 109 calls to installer::files::save_file, avg 398µs/call
554 my $infoline = "Added language content into idt file: $properyfilename\n";
555 push(@installer::globals::logfileinfo, $infoline);
556
557}
558
559############################################################
560# Setting the ProductCode and the UpgradeCode
561# into the Property table. Both have to be stored
562# in the global file $installer::globals::codefilename
563############################################################
564
565sub set_codes_in_property_table
566
# spent 166ms (54.7+112) within installer::windows::property::set_codes_in_property_table which was called 109 times, avg 1.53ms/call: # 109 times (54.7ms+112ms) by installer::run at line 1639 of /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer.pm, avg 1.53ms/call
{
5671427961.9ms my ($basedir) = @_;
568
569 # Reading the property file
570
571 my $properyfilename = $basedir . $installer::globals::separator . "Property.idt";
57210960.2ms my $propertyfile = installer::files::read_file($properyfilename);
# spent 60.2ms making 109 calls to installer::files::read_file, avg 552µs/call
573
574 # Updating the values
575
576 for ( my $i = 0; $i <= $#{$propertyfile}; $i++ )
577 {
57867584.28ms ${$propertyfile}[$i] =~ s/\bPRODUCTCODETEMPLATE\b/$installer::globals::productcode/;
# spent 4.28ms making 6758 calls to installer::windows::property::CORE:subst, avg 633ns/call
57967583.51ms ${$propertyfile}[$i] =~ s/\bUPGRADECODETEMPLATE\b/$installer::globals::upgradecode/;
# spent 3.51ms making 6758 calls to installer::windows::property::CORE:subst, avg 519ns/call
580 }
581
582 # Saving the property file
583
58410943.7ms installer::files::save_file($properyfilename ,$propertyfile);
# spent 43.7ms making 109 calls to installer::files::save_file, avg 401µs/call
585 my $infoline = "Added language content into idt file: $properyfilename\n";
586 push(@installer::globals::logfileinfo, $infoline);
587
588}
589
590############################################################
591# Changing default for MS file type registration
592# in Beta products.
593############################################################
594
595sub update_checkbox_table
596
# spent 768µs within installer::windows::property::update_checkbox_table which was called 109 times, avg 7µs/call: # 109 times (768µs+0s) by installer::run at line 1658 of /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer.pm, avg 7µs/call
{
597218907µs my ($basedir, $allvariables) = @_;
598
599 if (( $allvariables->{'PRODUCTEXTENSION'} ) && ( $allvariables->{'PRODUCTEXTENSION'} eq "Beta" ))
600 {
601 my $checkboxfilename = $basedir . $installer::globals::separator . "CheckBox.idt";
602
603 if ( -f $checkboxfilename )
604 {
605 my $checkboxfile = installer::files::read_file($checkboxfilename);
606
607 my $checkboxline = "SELECT_WORD" . "\t" . "0" . "\n";
608 push(@{$checkboxfile}, $checkboxline);
609 $checkboxline = "SELECT_EXCEL" . "\t" . "0" . "\n";
610 push(@{$checkboxfile}, $checkboxline);
611 $checkboxline = "SELECT_POWERPOINT" . "\t" . "0" . "\n";
612 push(@{$checkboxfile}, $checkboxline);
613 $checkboxline = "SELECT_VISIO" . "\t" . "0" . "\n";
614 push(@{$checkboxfile}, $checkboxline);
615
616 # Saving the property file
617 installer::files::save_file($checkboxfilename ,$checkboxfile);
618 my $infoline = "Added ms file type defaults into idt file: $checkboxfilename\n";
619 push(@installer::globals::logfileinfo, $infoline);
620 }
621 }
622}
623
62418µs1;
 
# spent 8.41ms within installer::windows::property::CORE:match which was called 15042 times, avg 559ns/call: # 8284 times (4.62ms+0s) by installer::windows::property::set_important_properties at line 387, avg 557ns/call # 6758 times (3.79ms+0s) by installer::windows::property::update_property_table at line 490, avg 561ns/call
sub installer::windows::property::CORE:match; # opcode
# spent 48.6ms within installer::windows::property::CORE:subst which was called 67798 times, avg 718ns/call: # 6758 times (4.28ms+0s) by installer::windows::property::set_codes_in_property_table at line 578, avg 633ns/call # 6758 times (4.26ms+0s) by installer::windows::property::update_property_table at line 482, avg 630ns/call # 6758 times (3.59ms+0s) by installer::windows::property::update_property_table at line 483, avg 532ns/call # 6758 times (3.57ms+0s) by installer::windows::property::update_property_table at line 485, avg 528ns/call # 6758 times (3.54ms+0s) by installer::windows::property::update_property_table at line 487, avg 523ns/call # 6758 times (3.51ms+0s) by installer::windows::property::set_codes_in_property_table at line 579, avg 519ns/call # 6758 times (3.47ms+0s) by installer::windows::property::update_property_table at line 488, avg 514ns/call # 6758 times (3.42ms+0s) by installer::windows::property::update_property_table at line 484, avg 506ns/call # 6758 times (3.41ms+0s) by installer::windows::property::update_property_table at line 486, avg 505ns/call # 6758 times (3.38ms+0s) by installer::windows::property::update_property_table at line 489, avg 499ns/call # 109 times (12.1ms+0s) by installer::windows::property::get_arpcomments_for_property_table at line 67, avg 111µs/call # 109 times (87µs+0s) by installer::windows::property::set_important_properties at line 318, avg 800ns/call
sub installer::windows::property::CORE:subst; # opcode