| Filename | /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer.pm |
| Statements | Executed 14462 statements in 5.66s |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 288ms | 288ms | installer::CORE:backtick (opcode) |
| 3 | 3 | 1 | 60.3ms | 60.3ms | installer::CORE:print (opcode) |
| 1 | 1 | 1 | 29.5ms | 60.2ms | installer::BEGIN@41 |
| 110 | 2 | 1 | 22.0ms | 22.0ms | installer::CORE:ftdir (opcode) |
| 1 | 1 | 1 | 18.9ms | 19.8ms | installer::BEGIN@75 |
| 1 | 1 | 1 | 18.6ms | 19.4ms | installer::BEGIN@74 |
| 1 | 1 | 1 | 17.6ms | 79.2ms | installer::BEGIN@32 |
| 1 | 1 | 1 | 15.5ms | 20.7ms | installer::BEGIN@33 |
| 1 | 1 | 1 | 15.5ms | 29.0ms | installer::BEGIN@76 |
| 1 | 1 | 1 | 12.8ms | 28.5ms | installer::BEGIN@34 |
| 1 | 1 | 1 | 9.83ms | 20.6ms | installer::BEGIN@68 |
| 1 | 1 | 1 | 7.76ms | 8.23ms | installer::BEGIN@77 |
| 1 | 1 | 1 | 7.58ms | 11.0ms | installer::BEGIN@39 |
| 1 | 1 | 1 | 7.55ms | 10.6ms | installer::BEGIN@57 |
| 1 | 1 | 1 | 6.80ms | 7.49ms | installer::BEGIN@50 |
| 1 | 1 | 1 | 6.33ms | 6.81ms | installer::BEGIN@80 |
| 1 | 1 | 1 | 6.31ms | 309ms | installer::BEGIN@35 |
| 1 | 1 | 1 | 6.25ms | 6.89ms | installer::BEGIN@45 |
| 1 | 1 | 1 | 5.94ms | 6.44ms | installer::BEGIN@65 |
| 1 | 1 | 1 | 5.90ms | 6.52ms | installer::BEGIN@46 |
| 1 | 1 | 1 | 5.11ms | 5.99ms | installer::BEGIN@66 |
| 1 | 1 | 1 | 4.79ms | 8.81ms | installer::BEGIN@30 |
| 1 | 1 | 1 | 4.68ms | 5.11ms | installer::BEGIN@63 |
| 1 | 1 | 1 | 4.60ms | 5.04ms | installer::BEGIN@79 |
| 1 | 1 | 1 | 3.29ms | 22.4ms | installer::BEGIN@61 |
| 1 | 1 | 1 | 3.02ms | 3.47ms | installer::BEGIN@73 |
| 1 | 1 | 1 | 2.73ms | 3.26ms | installer::BEGIN@52 |
| 1 | 1 | 1 | 2.48ms | 2.94ms | installer::BEGIN@59 |
| 1 | 1 | 1 | 2.44ms | 2.89ms | installer::BEGIN@83 |
| 1 | 1 | 1 | 2.37ms | 2.94ms | installer::BEGIN@67 |
| 1 | 1 | 1 | 2.28ms | 8.83ms | installer::BEGIN@53 |
| 1 | 1 | 1 | 2.19ms | 2.79ms | installer::BEGIN@81 |
| 1 | 1 | 1 | 2.05ms | 2.87ms | installer::BEGIN@38 |
| 3 | 3 | 1 | 1.94ms | 1.94ms | installer::CORE:open (opcode) |
| 1 | 1 | 1 | 1.94ms | 2.35ms | installer::BEGIN@64 |
| 1 | 1 | 1 | 1.89ms | 2.27ms | installer::BEGIN@40 |
| 1 | 1 | 1 | 1.88ms | 2.31ms | installer::BEGIN@72 |
| 1 | 1 | 1 | 1.69ms | 2.11ms | installer::BEGIN@78 |
| 1 | 1 | 1 | 1.29ms | 1.77ms | installer::BEGIN@70 |
| 1 | 1 | 1 | 1.13ms | 1.53ms | installer::BEGIN@62 |
| 1 | 1 | 1 | 61µs | -8913s | installer::main |
| 1 | 1 | 1 | 20µs | 22µs | installer::BEGIN@51 |
| 1 | 1 | 1 | 19µs | 22µs | installer::BEGIN@36 |
| 1 | 1 | 1 | 19µs | 21µs | installer::BEGIN@60 |
| 1 | 1 | 1 | 19µs | 20µs | installer::BEGIN@42 |
| 1 | 1 | 1 | 18µs | 21µs | installer::BEGIN@49 |
| 1 | 1 | 1 | 18µs | 20µs | installer::BEGIN@47 |
| 1 | 1 | 1 | 17µs | 19µs | installer::BEGIN@37 |
| 1 | 1 | 1 | 17µs | 20µs | installer::BEGIN@84 |
| 1 | 1 | 1 | 17µs | 19µs | installer::BEGIN@69 |
| 1 | 1 | 1 | 16µs | 19µs | installer::BEGIN@82 |
| 1 | 1 | 1 | 16µs | 18µs | installer::BEGIN@43 |
| 1 | 1 | 1 | 16µs | 18µs | installer::BEGIN@85 |
| 1 | 1 | 1 | 16µs | 18µs | installer::BEGIN@54 |
| 1 | 1 | 1 | 16µs | 18µs | installer::BEGIN@44 |
| 1 | 1 | 1 | 15µs | 71µs | installer::BEGIN@58 |
| 1 | 1 | 1 | 15µs | 56µs | installer::BEGIN@48 |
| 1 | 1 | 1 | 14µs | 16µs | installer::BEGIN@71 |
| 1 | 1 | 1 | 14µs | 44µs | installer::BEGIN@56 |
| 1 | 1 | 1 | 14µs | 14µs | installer::CORE:subst (opcode) |
| 3 | 3 | 1 | 14µs | 14µs | installer::CORE:match (opcode) |
| 1 | 1 | 1 | 13µs | 16µs | installer::BEGIN@55 |
| 1 | 1 | 1 | -7726s | -8913s | installer::run |
| 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 | |||||
| 28 | package installer; | ||||
| 29 | |||||
| 30 | 2 | 2.80ms | 2 | 12.5ms | # spent 8.81ms (4.79+4.02) within installer::BEGIN@30 which was called:
# once (4.79ms+4.02ms) by main::BEGIN@33 at line 30 # spent 8.81ms making 1 call to installer::BEGIN@30
# spent 3.69ms making 1 call to base::import |
| 31 | |||||
| 32 | 2 | 2.47ms | 2 | 79.3ms | # spent 79.2ms (17.6+61.6) within installer::BEGIN@32 which was called:
# once (17.6ms+61.6ms) by main::BEGIN@33 at line 32 # spent 79.2ms making 1 call to installer::BEGIN@32
# spent 90µs making 1 call to Exporter::import |
| 33 | 2 | 2.55ms | 2 | 20.8ms | # spent 20.7ms (15.5+5.24) within installer::BEGIN@33 which was called:
# once (15.5ms+5.24ms) by main::BEGIN@33 at line 33 # spent 20.7ms making 1 call to installer::BEGIN@33
# spent 66µs making 1 call to Exporter::import |
| 34 | 2 | 2.63ms | 2 | 28.6ms | # spent 28.5ms (12.8+15.7) within installer::BEGIN@34 which was called:
# once (12.8ms+15.7ms) by main::BEGIN@33 at line 34 # spent 28.5ms making 1 call to installer::BEGIN@34
# spent 78µs making 1 call to Exporter::import |
| 35 | 2 | 1.12ms | 2 | 309ms | # spent 309ms (6.31+303) within installer::BEGIN@35 which was called:
# once (6.31ms+303ms) by main::BEGIN@33 at line 35 # spent 309ms making 1 call to installer::BEGIN@35
# spent 7µs making 1 call to UNIVERSAL::import |
| 36 | 2 | 59µs | 2 | 25µs | # spent 22µs (19+3) within installer::BEGIN@36 which was called:
# once (19µs+3µs) by main::BEGIN@33 at line 36 # spent 22µs making 1 call to installer::BEGIN@36
# spent 3µs making 1 call to UNIVERSAL::import |
| 37 | 2 | 62µs | 2 | 21µs | # spent 19µs (17+2) within installer::BEGIN@37 which was called:
# once (17µs+2µs) by main::BEGIN@33 at line 37 # spent 19µs making 1 call to installer::BEGIN@37
# spent 2µs making 1 call to UNIVERSAL::import |
| 38 | 2 | 1.48ms | 2 | 2.88ms | # spent 2.87ms (2.05+823µs) within installer::BEGIN@38 which was called:
# once (2.05ms+823µs) by main::BEGIN@33 at line 38 # spent 2.87ms making 1 call to installer::BEGIN@38
# spent 3µs making 1 call to UNIVERSAL::import |
| 39 | 2 | 1.09ms | 2 | 11.0ms | # spent 11.0ms (7.58+3.44) within installer::BEGIN@39 which was called:
# once (7.58ms+3.44ms) by main::BEGIN@33 at line 39 # spent 11.0ms making 1 call to installer::BEGIN@39
# spent 6µs making 1 call to UNIVERSAL::import |
| 40 | 2 | 1.06ms | 2 | 2.27ms | # spent 2.27ms (1.89+376µs) within installer::BEGIN@40 which was called:
# once (1.89ms+376µs) by main::BEGIN@33 at line 40 # spent 2.27ms making 1 call to installer::BEGIN@40
# spent 3µs making 1 call to UNIVERSAL::import |
| 41 | 2 | 1.04ms | 2 | 60.2ms | # spent 60.2ms (29.5+30.7) within installer::BEGIN@41 which was called:
# once (29.5ms+30.7ms) by main::BEGIN@33 at line 41 # spent 60.2ms making 1 call to installer::BEGIN@41
# spent 11µs making 1 call to UNIVERSAL::import |
| 42 | 2 | 55µs | 2 | 22µs | # spent 20µs (19+2) within installer::BEGIN@42 which was called:
# once (19µs+2µs) by main::BEGIN@33 at line 42 # spent 20µs making 1 call to installer::BEGIN@42
# spent 2µs making 1 call to UNIVERSAL::import |
| 43 | 2 | 53µs | 2 | 19µs | # spent 18µs (16+1) within installer::BEGIN@43 which was called:
# once (16µs+1µs) by main::BEGIN@33 at line 43 # spent 18µs making 1 call to installer::BEGIN@43
# spent 2µs making 1 call to UNIVERSAL::import |
| 44 | 2 | 53µs | 2 | 21µs | # spent 18µs (16+3) within installer::BEGIN@44 which was called:
# once (16µs+3µs) by main::BEGIN@33 at line 44 # spent 18µs making 1 call to installer::BEGIN@44
# spent 2µs making 1 call to UNIVERSAL::import |
| 45 | 2 | 1.17ms | 2 | 6.90ms | # spent 6.89ms (6.25+643µs) within installer::BEGIN@45 which was called:
# once (6.25ms+643µs) by main::BEGIN@33 at line 45 # spent 6.89ms making 1 call to installer::BEGIN@45
# spent 10µs making 1 call to UNIVERSAL::import |
| 46 | 2 | 1.42ms | 2 | 6.53ms | # spent 6.52ms (5.90+624µs) within installer::BEGIN@46 which was called:
# once (5.90ms+624µs) by main::BEGIN@33 at line 46 # spent 6.52ms making 1 call to installer::BEGIN@46
# spent 7µs making 1 call to UNIVERSAL::import |
| 47 | 2 | 55µs | 2 | 23µs | # spent 20µs (18+3) within installer::BEGIN@47 which was called:
# once (18µs+3µs) by main::BEGIN@33 at line 47 # spent 20µs making 1 call to installer::BEGIN@47
# spent 3µs making 1 call to UNIVERSAL::import |
| 48 | 2 | 52µs | 2 | 96µs | # spent 56µs (15+41) within installer::BEGIN@48 which was called:
# once (15µs+41µs) by main::BEGIN@33 at line 48 # spent 56µs making 1 call to installer::BEGIN@48
# spent 41µs making 1 call to Exporter::import |
| 49 | 2 | 57µs | 2 | 23µs | # spent 21µs (18+2) within installer::BEGIN@49 which was called:
# once (18µs+2µs) by main::BEGIN@33 at line 49 # spent 21µs making 1 call to installer::BEGIN@49
# spent 2µs making 1 call to UNIVERSAL::import |
| 50 | 2 | 1.47ms | 2 | 7.50ms | # spent 7.49ms (6.80+694µs) within installer::BEGIN@50 which was called:
# once (6.80ms+694µs) by main::BEGIN@33 at line 50 # spent 7.49ms making 1 call to installer::BEGIN@50
# spent 9µs making 1 call to UNIVERSAL::import |
| 51 | 2 | 56µs | 2 | 24µs | # spent 22µs (20+2) within installer::BEGIN@51 which was called:
# once (20µs+2µs) by main::BEGIN@33 at line 51 # spent 22µs making 1 call to installer::BEGIN@51
# spent 2µs making 1 call to UNIVERSAL::import |
| 52 | 2 | 1.09ms | 2 | 3.27ms | # spent 3.26ms (2.73+527µs) within installer::BEGIN@52 which was called:
# once (2.73ms+527µs) by main::BEGIN@33 at line 52 # spent 3.26ms making 1 call to installer::BEGIN@52
# spent 4µs making 1 call to UNIVERSAL::import |
| 53 | 2 | 1.02ms | 2 | 8.83ms | # spent 8.83ms (2.28+6.55) within installer::BEGIN@53 which was called:
# once (2.28ms+6.55ms) by main::BEGIN@33 at line 53 # spent 8.83ms making 1 call to installer::BEGIN@53
# spent 3µs making 1 call to UNIVERSAL::import |
| 54 | 2 | 53µs | 2 | 20µs | # spent 18µs (16+2) within installer::BEGIN@54 which was called:
# once (16µs+2µs) by main::BEGIN@33 at line 54 # spent 18µs making 1 call to installer::BEGIN@54
# spent 2µs making 1 call to UNIVERSAL::import |
| 55 | 2 | 51µs | 2 | 18µs | # spent 16µs (13+3) within installer::BEGIN@55 which was called:
# once (13µs+3µs) by main::BEGIN@33 at line 55 # spent 16µs making 1 call to installer::BEGIN@55
# spent 2µs making 1 call to UNIVERSAL::import |
| 56 | 2 | 52µs | 2 | 74µs | # spent 44µs (14+30) within installer::BEGIN@56 which was called:
# once (14µs+30µs) by main::BEGIN@33 at line 56 # spent 44µs making 1 call to installer::BEGIN@56
# spent 30µs making 1 call to Exporter::import |
| 57 | 2 | 1.10ms | 2 | 10.6ms | # spent 10.6ms (7.55+3.08) within installer::BEGIN@57 which was called:
# once (7.55ms+3.08ms) by main::BEGIN@33 at line 57 # spent 10.6ms making 1 call to installer::BEGIN@57
# spent 6µs making 1 call to UNIVERSAL::import |
| 58 | 2 | 57µs | 2 | 127µs | # spent 71µs (15+56) within installer::BEGIN@58 which was called:
# once (15µs+56µs) by main::BEGIN@33 at line 58 # spent 71µs making 1 call to installer::BEGIN@58
# spent 56µs making 1 call to Exporter::import |
| 59 | 2 | 1.09ms | 2 | 2.95ms | # spent 2.94ms (2.48+461µs) within installer::BEGIN@59 which was called:
# once (2.48ms+461µs) by main::BEGIN@33 at line 59 # spent 2.94ms making 1 call to installer::BEGIN@59
# spent 10µs making 1 call to UNIVERSAL::import |
| 60 | 2 | 56µs | 2 | 23µs | # spent 21µs (19+2) within installer::BEGIN@60 which was called:
# once (19µs+2µs) by main::BEGIN@33 at line 60 # spent 21µs making 1 call to installer::BEGIN@60
# spent 2µs making 1 call to UNIVERSAL::import |
| 61 | 2 | 1.20ms | 2 | 22.4ms | # spent 22.4ms (3.29+19.1) within installer::BEGIN@61 which was called:
# once (3.29ms+19.1ms) by main::BEGIN@33 at line 61 # spent 22.4ms making 1 call to installer::BEGIN@61
# spent 5µs making 1 call to UNIVERSAL::import |
| 62 | 2 | 1.06ms | 2 | 1.53ms | # spent 1.53ms (1.13+392µs) within installer::BEGIN@62 which was called:
# once (1.13ms+392µs) by main::BEGIN@33 at line 62 # spent 1.53ms making 1 call to installer::BEGIN@62
# spent 3µs making 1 call to UNIVERSAL::import |
| 63 | 2 | 1.04ms | 2 | 5.12ms | # spent 5.11ms (4.68+438µs) within installer::BEGIN@63 which was called:
# once (4.68ms+438µs) by main::BEGIN@33 at line 63 # spent 5.11ms making 1 call to installer::BEGIN@63
# spent 4µs making 1 call to UNIVERSAL::import |
| 64 | 2 | 1.04ms | 2 | 2.36ms | # spent 2.35ms (1.94+418µs) within installer::BEGIN@64 which was called:
# once (1.94ms+418µs) by main::BEGIN@33 at line 64 # spent 2.35ms making 1 call to installer::BEGIN@64
# spent 4µs making 1 call to UNIVERSAL::import |
| 65 | 2 | 1.15ms | 2 | 6.45ms | # spent 6.44ms (5.94+502µs) within installer::BEGIN@65 which was called:
# once (5.94ms+502µs) by main::BEGIN@33 at line 65 # spent 6.44ms making 1 call to installer::BEGIN@65
# spent 8µs making 1 call to UNIVERSAL::import |
| 66 | 2 | 1.65ms | 2 | 6.00ms | # spent 5.99ms (5.11+883µs) within installer::BEGIN@66 which was called:
# once (5.11ms+883µs) by main::BEGIN@33 at line 66 # spent 5.99ms making 1 call to installer::BEGIN@66
# spent 8µs making 1 call to UNIVERSAL::import |
| 67 | 2 | 1.46ms | 2 | 2.95ms | # spent 2.94ms (2.37+569µs) within installer::BEGIN@67 which was called:
# once (2.37ms+569µs) by main::BEGIN@33 at line 67 # spent 2.94ms making 1 call to installer::BEGIN@67
# spent 5µs making 1 call to UNIVERSAL::import |
| 68 | 2 | 1.22ms | 2 | 20.6ms | # spent 20.6ms (9.83+10.8) within installer::BEGIN@68 which was called:
# once (9.83ms+10.8ms) by main::BEGIN@33 at line 68 # spent 20.6ms making 1 call to installer::BEGIN@68
# spent 6µs making 1 call to UNIVERSAL::import |
| 69 | 2 | 52µs | 2 | 22µs | # spent 19µs (17+3) within installer::BEGIN@69 which was called:
# once (17µs+3µs) by main::BEGIN@33 at line 69 # spent 19µs making 1 call to installer::BEGIN@69
# spent 2µs making 1 call to UNIVERSAL::import |
| 70 | 2 | 1.20ms | 2 | 1.78ms | # spent 1.77ms (1.29+481µs) within installer::BEGIN@70 which was called:
# once (1.29ms+481µs) by main::BEGIN@33 at line 70 # spent 1.77ms making 1 call to installer::BEGIN@70
# spent 3µs making 1 call to UNIVERSAL::import |
| 71 | 2 | 51µs | 2 | 18µs | # spent 16µs (14+2) within installer::BEGIN@71 which was called:
# once (14µs+2µs) by main::BEGIN@33 at line 71 # spent 16µs making 1 call to installer::BEGIN@71
# spent 2µs making 1 call to UNIVERSAL::import |
| 72 | 2 | 1.05ms | 2 | 2.31ms | # spent 2.31ms (1.88+428µs) within installer::BEGIN@72 which was called:
# once (1.88ms+428µs) by main::BEGIN@33 at line 72 # spent 2.31ms making 1 call to installer::BEGIN@72
# spent 4µs making 1 call to UNIVERSAL::import |
| 73 | 2 | 1.10ms | 2 | 3.48ms | # spent 3.47ms (3.02+449µs) within installer::BEGIN@73 which was called:
# once (3.02ms+449µs) by main::BEGIN@33 at line 73 # spent 3.47ms making 1 call to installer::BEGIN@73
# spent 4µs making 1 call to UNIVERSAL::import |
| 74 | 2 | 1.06ms | 2 | 19.4ms | # spent 19.4ms (18.6+757µs) within installer::BEGIN@74 which was called:
# once (18.6ms+757µs) by main::BEGIN@33 at line 74 # spent 19.4ms making 1 call to installer::BEGIN@74
# spent 7µs making 1 call to UNIVERSAL::import |
| 75 | 2 | 1.18ms | 2 | 19.8ms | # spent 19.8ms (18.9+818µs) within installer::BEGIN@75 which was called:
# once (18.9ms+818µs) by main::BEGIN@33 at line 75 # spent 19.8ms making 1 call to installer::BEGIN@75
# spent 9µs making 1 call to UNIVERSAL::import |
| 76 | 2 | 1.41ms | 2 | 29.0ms | # spent 29.0ms (15.5+13.5) within installer::BEGIN@76 which was called:
# once (15.5ms+13.5ms) by main::BEGIN@33 at line 76 # spent 29.0ms making 1 call to installer::BEGIN@76
# spent 9µs making 1 call to UNIVERSAL::import |
| 77 | 2 | 1.48ms | 2 | 8.24ms | # spent 8.23ms (7.76+475µs) within installer::BEGIN@77 which was called:
# once (7.76ms+475µs) by main::BEGIN@33 at line 77 # spent 8.23ms making 1 call to installer::BEGIN@77
# spent 5µs making 1 call to UNIVERSAL::import |
| 78 | 2 | 1.09ms | 2 | 2.11ms | # spent 2.11ms (1.69+419µs) within installer::BEGIN@78 which was called:
# once (1.69ms+419µs) by main::BEGIN@33 at line 78 # spent 2.11ms making 1 call to installer::BEGIN@78
# spent 4µs making 1 call to UNIVERSAL::import |
| 79 | 2 | 1.06ms | 2 | 5.04ms | # spent 5.04ms (4.60+434µs) within installer::BEGIN@79 which was called:
# once (4.60ms+434µs) by main::BEGIN@33 at line 79 # spent 5.04ms making 1 call to installer::BEGIN@79
# spent 4µs making 1 call to UNIVERSAL::import |
| 80 | 2 | 1.13ms | 2 | 6.82ms | # spent 6.81ms (6.33+475µs) within installer::BEGIN@80 which was called:
# once (6.33ms+475µs) by main::BEGIN@33 at line 80 # spent 6.81ms making 1 call to installer::BEGIN@80
# spent 7µs making 1 call to UNIVERSAL::import |
| 81 | 2 | 1.11ms | 2 | 2.79ms | # spent 2.79ms (2.19+603µs) within installer::BEGIN@81 which was called:
# once (2.19ms+603µs) by main::BEGIN@33 at line 81 # spent 2.79ms making 1 call to installer::BEGIN@81
# spent 4µs making 1 call to UNIVERSAL::import |
| 82 | 2 | 57µs | 2 | 22µs | # spent 19µs (16+3) within installer::BEGIN@82 which was called:
# once (16µs+3µs) by main::BEGIN@33 at line 82 # spent 19µs making 1 call to installer::BEGIN@82
# spent 3µs making 1 call to UNIVERSAL::import |
| 83 | 2 | 1.09ms | 2 | 2.89ms | # spent 2.89ms (2.44+448µs) within installer::BEGIN@83 which was called:
# once (2.44ms+448µs) by main::BEGIN@33 at line 83 # spent 2.89ms making 1 call to installer::BEGIN@83
# spent 4µs making 1 call to UNIVERSAL::import |
| 84 | 2 | 54µs | 2 | 22µs | # spent 20µs (17+3) within installer::BEGIN@84 which was called:
# once (17µs+3µs) by main::BEGIN@33 at line 84 # spent 20µs making 1 call to installer::BEGIN@84
# spent 3µs making 1 call to UNIVERSAL::import |
| 85 | 2 | 16.5ms | 2 | 21µs | # spent 18µs (16+3) within installer::BEGIN@85 which was called:
# once (16µs+3µs) by main::BEGIN@33 at line 85 # spent 18µs making 1 call to installer::BEGIN@85
# spent 2µs making 1 call to UNIVERSAL::import |
| 86 | |||||
| 87 | 1 | 5µs | our @EXPORT_OK = qw(main); | ||
| 88 | |||||
| 89 | # spent -8913s (61µs+-8913) within installer::main which was called:
# once (61µs+-8913s) by main::RUNTIME at line 35 of /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/make_installer.pl | ||||
| 90 | 1 | 3µs | 1 | 4µs | installer::logger::starttime(); # spent 4µs making 1 call to installer::logger::starttime |
| 91 | |||||
| 92 | 1 | 1µs | my $exit_code = 0; | ||
| 93 | |||||
| 94 | 1 | 4µs | eval { | ||
| 95 | 1 | 5µs | 1 | -8913s | run(); # spent - 8913s making 1 call to installer::run |
| 96 | }; | ||||
| 97 | 1 | 500ns | if ($@) { | ||
| 98 | warn "$@\n"; | ||||
| 99 | $exit_code = -1; | ||||
| 100 | } | ||||
| 101 | |||||
| 102 | 1 | 10µs | 1 | 238µs | installer::logger::stoptime(); # spent 238µs making 1 call to installer::logger::stoptime |
| 103 | |||||
| 104 | 1 | 8µs | return $exit_code; | ||
| 105 | } | ||||
| 106 | |||||
| 107 | # spent -8913s (-7726+-1188) within installer::run which was called:
# once (-7726s+-1188s) by installer::main at line 95 | ||||
| 108 | 1 | 3µs | 1 | 25µs | installer::logger::print_message( "... checking environment variables ...\n" ); # spent 25µs making 1 call to installer::logger::print_message |
| 109 | 1 | 4µs | 1 | 39µs | my $environmentvariableshashref = installer::control::check_system_environment(); # spent 39µs making 1 call to installer::control::check_system_environment |
| 110 | |||||
| 111 | 1 | 3µs | 1 | 35µs | installer::environment::set_global_environment_variables($environmentvariableshashref); # spent 35µs making 1 call to installer::environment::set_global_environment_variables |
| 112 | |||||
| 113 | ################################# | ||||
| 114 | # Check and output of parameter | ||||
| 115 | ################################# | ||||
| 116 | |||||
| 117 | 1 | 4µs | 1 | 144µs | installer::parameter::saveparameter(); # spent 144µs making 1 call to installer::parameter::saveparameter |
| 118 | 1 | 3µs | 1 | 44µs | installer::parameter::getparameter(); # spent 44µs making 1 call to installer::parameter::getparameter |
| 119 | |||||
| 120 | 1 | 4µs | 1 | 4µs | installer::parameter::control_fundamental_parameter(); # spent 4µs making 1 call to installer::parameter::control_fundamental_parameter |
| 121 | 1 | 3µs | 1 | 227ms | installer::parameter::setglobalvariables(); # spent 227ms making 1 call to installer::parameter::setglobalvariables |
| 122 | 1 | 10µs | 1 | 214ms | installer::parameter::control_required_parameter(); # spent 214ms making 1 call to installer::parameter::control_required_parameter |
| 123 | |||||
| 124 | 1 | 8µs | 1 | 37µs | if (!($installer::globals::languages_defined_in_productlist)) { installer::languages::analyze_languagelist(); } # spent 37µs making 1 call to installer::languages::analyze_languagelist |
| 125 | 1 | 4µs | 1 | 355µs | installer::parameter::outputparameter(); # spent 355µs making 1 call to installer::parameter::outputparameter |
| 126 | |||||
| 127 | 1 | 2µs | $installer::globals::build = uc($installer::globals::build); # using "SRC680" instead of "src680" | ||
| 128 | |||||
| 129 | ###################################### | ||||
| 130 | # Creating the log directory | ||||
| 131 | ###################################### | ||||
| 132 | |||||
| 133 | 1 | 5µs | 1 | 2.22ms | my $loggingdir = installer::systemactions::create_directories("logging", ""); # spent 2.22ms making 1 call to installer::systemactions::create_directories |
| 134 | 1 | 1µs | $loggingdir = $loggingdir . $installer::globals::separator; | ||
| 135 | 1 | 1µs | $installer::globals::exitlog = $loggingdir; | ||
| 136 | |||||
| 137 | 1 | 1µs | my $installdir = ""; | ||
| 138 | 1 | 5µs | 1 | 14µs | my $currentdir = cwd(); # spent 14µs making 1 call to Cwd::__ANON__[Cwd.pm:406] |
| 139 | 1 | 2µs | my $shipinstalldir = ""; | ||
| 140 | 1 | 1µs | my $current_install_number = ""; | ||
| 141 | |||||
| 142 | ###################################### | ||||
| 143 | # Checking the system requirements | ||||
| 144 | ###################################### | ||||
| 145 | |||||
| 146 | 1 | 3µs | 1 | 10µs | installer::logger::print_message( "... checking required files ...\n" ); # spent 10µs making 1 call to installer::logger::print_message |
| 147 | 1 | 5µs | 1 | 2.60s | installer::control::check_system_path(); # spent 2.60s making 1 call to installer::control::check_system_path |
| 148 | |||||
| 149 | 1 | 7µs | 1 | 46µs | my $pathvariableshashref = installer::environment::create_pathvariables($environmentvariableshashref); # spent 46µs making 1 call to installer::environment::create_pathvariables |
| 150 | |||||
| 151 | ############################################### | ||||
| 152 | # Checking saved setting for Windows patches | ||||
| 153 | ############################################### | ||||
| 154 | |||||
| 155 | 1 | 2µs | if (( $installer::globals::iswindowsbuild ) && ( $installer::globals::prepare_winpatch )) { installer::windows::msiglobal::read_saved_mappings(); } | ||
| 156 | |||||
| 157 | ################################################### | ||||
| 158 | # Analyzing the settings and variables in zip.lst | ||||
| 159 | ################################################### | ||||
| 160 | |||||
| 161 | 1 | 6µs | 1 | 77µs | installer::logger::globallog("zip list file: $installer::globals::ziplistname"); # spent 77µs making 1 call to installer::logger::globallog |
| 162 | |||||
| 163 | 1 | 6µs | 1 | 1.96ms | my $ziplistref = installer::files::read_file($installer::globals::ziplistname); # spent 1.96ms making 1 call to installer::files::read_file |
| 164 | |||||
| 165 | 1 | 6µs | 1 | 9µs | installer::logger::print_message( "... analyzing $installer::globals::ziplistname ... \n" ); # spent 9µs making 1 call to installer::logger::print_message |
| 166 | |||||
| 167 | 1 | 6µs | 1 | 4.98ms | my ($productblockref, $parent) = installer::ziplist::getproductblock($ziplistref, $installer::globals::product, 1); # product block from zip.lst # spent 4.98ms making 1 call to installer::ziplist::getproductblock |
| 168 | |||||
| 169 | 1 | 4µs | 1 | 1.03ms | my ($settingsblockref, undef) = installer::ziplist::getproductblock($productblockref, "Settings", 0); # settings block from zip.lst # spent 1.03ms making 1 call to installer::ziplist::getproductblock |
| 170 | |||||
| 171 | 1 | 20µs | 1 | 2.01ms | $settingsblockref = installer::ziplist::analyze_settings_block($settingsblockref); # select data from settings block in zip.lst # spent 2.01ms making 1 call to installer::ziplist::analyze_settings_block |
| 172 | |||||
| 173 | 1 | 5µs | 1 | 1.22ms | my $allsettingsarrayref = installer::ziplist::get_settings_from_ziplist($settingsblockref); # spent 1.22ms making 1 call to installer::ziplist::get_settings_from_ziplist |
| 174 | |||||
| 175 | 1 | 4µs | 1 | 1.41ms | my $allvariablesarrayref = installer::ziplist::get_variables_from_ziplist($settingsblockref); # spent 1.41ms making 1 call to installer::ziplist::get_variables_from_ziplist |
| 176 | |||||
| 177 | 1 | 4µs | 1 | 4.72ms | my ($globalproductblockref, undef) = installer::ziplist::getproductblock($ziplistref, $installer::globals::globalblock, 0); # global product block from zip.lst # spent 4.72ms making 1 call to installer::ziplist::getproductblock |
| 178 | |||||
| 179 | 1 | 1µs | while (defined $parent) | ||
| 180 | { | ||||
| 181 | my $parentproductblockref; | ||||
| 182 | ($parentproductblockref, $parent) = installer::ziplist::getproductblock( | ||||
| 183 | $ziplistref, $parent, 1); | ||||
| 184 | my ($parentsettingsblockref, undef) = installer::ziplist::getproductblock( | ||||
| 185 | $parentproductblockref, "Settings", 0); | ||||
| 186 | $parentsettingsblockref = installer::ziplist::analyze_settings_block( | ||||
| 187 | $parentsettingsblockref); | ||||
| 188 | my $allparentsettingsarrayref = | ||||
| 189 | installer::ziplist::get_settings_from_ziplist($parentsettingsblockref); | ||||
| 190 | my $allparentvariablesarrayref = | ||||
| 191 | installer::ziplist::get_variables_from_ziplist($parentsettingsblockref); | ||||
| 192 | $allsettingsarrayref = | ||||
| 193 | installer::converter::combine_arrays_from_references_first_win( | ||||
| 194 | $allsettingsarrayref, $allparentsettingsarrayref) | ||||
| 195 | if $#{$allparentsettingsarrayref} > -1; | ||||
| 196 | $allvariablesarrayref = | ||||
| 197 | installer::converter::combine_arrays_from_references_first_win( | ||||
| 198 | $allvariablesarrayref, $allparentvariablesarrayref) | ||||
| 199 | if $#{$allparentvariablesarrayref} > -1; | ||||
| 200 | } | ||||
| 201 | |||||
| 202 | 1 | 43µs | if ( $#{$globalproductblockref} > -1 ) | ||
| 203 | { | ||||
| 204 | 1 | 4µs | 1 | 817µs | my ($globalsettingsblockref, undef) = installer::ziplist::getproductblock($globalproductblockref, "Settings", 0); # settings block from zip.lst # spent 817µs making 1 call to installer::ziplist::getproductblock |
| 205 | |||||
| 206 | 1 | 14µs | 1 | 1.50ms | $globalsettingsblockref = installer::ziplist::analyze_settings_block($globalsettingsblockref); # select data from settings block in zip.lst # spent 1.50ms making 1 call to installer::ziplist::analyze_settings_block |
| 207 | |||||
| 208 | 1 | 3µs | 1 | 830µs | my $allglobalsettingsarrayref = installer::ziplist::get_settings_from_ziplist($globalsettingsblockref); # spent 830µs making 1 call to installer::ziplist::get_settings_from_ziplist |
| 209 | |||||
| 210 | 1 | 3µs | 1 | 1.19ms | my $allglobalvariablesarrayref = installer::ziplist::get_variables_from_ziplist($globalsettingsblockref); # spent 1.19ms making 1 call to installer::ziplist::get_variables_from_ziplist |
| 211 | |||||
| 212 | 1 | 2µs | if ( $#{$allglobalsettingsarrayref} > -1 ) { $allsettingsarrayref = installer::converter::combine_arrays_from_references_first_win($allsettingsarrayref, $allglobalsettingsarrayref); } | ||
| 213 | 1 | 26µs | 1 | 1.05ms | if ( $#{$allglobalvariablesarrayref} > -1 ) { $allvariablesarrayref = installer::converter::combine_arrays_from_references_first_win($allvariablesarrayref, $allglobalvariablesarrayref); } # spent 1.05ms making 1 call to installer::converter::combine_arrays_from_references_first_win |
| 214 | } | ||||
| 215 | |||||
| 216 | 1 | 7µs | 1 | 942µs | $allsettingsarrayref = installer::ziplist::remove_multiples_from_ziplist($allsettingsarrayref); # the settings from the zip.lst # spent 942µs making 1 call to installer::ziplist::remove_multiples_from_ziplist |
| 217 | |||||
| 218 | 1 | 20µs | 1 | 39.0ms | $allvariablesarrayref = installer::ziplist::remove_multiples_from_ziplist($allvariablesarrayref); # spent 39.0ms making 1 call to installer::ziplist::remove_multiples_from_ziplist |
| 219 | |||||
| 220 | 1 | 4µs | 1 | 1.41ms | installer::ziplist::replace_variables_in_ziplist_variables($allvariablesarrayref); # spent 1.41ms making 1 call to installer::ziplist::replace_variables_in_ziplist_variables |
| 221 | |||||
| 222 | 1 | 4µs | 1 | 726µs | my $allvariableshashref = installer::converter::convert_array_to_hash($allvariablesarrayref); # the variables from the zip.lst # spent 726µs making 1 call to installer::converter::convert_array_to_hash |
| 223 | |||||
| 224 | 1 | 4µs | 1 | 6µs | installer::ziplist::set_default_productversion_if_required($allvariableshashref); # spent 6µs making 1 call to installer::ziplist::set_default_productversion_if_required |
| 225 | |||||
| 226 | 1 | 4µs | 1 | 50µs | installer::ziplist::add_variables_to_allvariableshashref($allvariableshashref); # spent 50µs making 1 call to installer::ziplist::add_variables_to_allvariableshashref |
| 227 | |||||
| 228 | 1 | 3µs | 1 | 15µs | installer::ziplist::overwrite_branding( $allvariableshashref ); # spent 15µs making 1 call to installer::ziplist::overwrite_branding |
| 229 | |||||
| 230 | |||||
| 231 | ######################################################## | ||||
| 232 | # Check if this is simple packaging mechanism | ||||
| 233 | ######################################################## | ||||
| 234 | |||||
| 235 | 1 | 4µs | 1 | 7µs | installer::simplepackage::check_simple_packager_project($allvariableshashref); # spent 7µs making 1 call to installer::simplepackage::check_simple_packager_project |
| 236 | |||||
| 237 | #################################################################### | ||||
| 238 | # setting global variables | ||||
| 239 | #################################################################### | ||||
| 240 | |||||
| 241 | 1 | 5µs | 1 | 15µs | installer::control::set_addsystemintegration($allvariableshashref); # spent 15µs making 1 call to installer::control::set_addsystemintegration |
| 242 | |||||
| 243 | ######################################################## | ||||
| 244 | # Re-define logging dir, after all variables are set | ||||
| 245 | ######################################################## | ||||
| 246 | |||||
| 247 | 1 | 2µs | my $oldloggingdir = $loggingdir; | ||
| 248 | 1 | 5µs | 1 | 942µs | installer::systemactions::remove_complete_directory($oldloggingdir); # spent 942µs making 1 call to installer::systemactions::remove_complete_directory |
| 249 | 1 | 5µs | 1 | 1.23ms | $loggingdir = installer::systemactions::create_directories("logging", ""); # spent 1.23ms making 1 call to installer::systemactions::create_directories |
| 250 | 1 | 1µs | $loggingdir = $loggingdir . $installer::globals::separator; | ||
| 251 | 1 | 500ns | $installer::globals::exitlog = $loggingdir; | ||
| 252 | |||||
| 253 | # checking, whether this is an opensource product | ||||
| 254 | |||||
| 255 | 1 | 5µs | 1 | 12µs | if (!($installer::globals::is_copy_only_project)) { installer::ziplist::set_manufacturer($allvariableshashref); } # spent 12µs making 1 call to installer::ziplist::set_manufacturer |
| 256 | |||||
| 257 | ############################################## | ||||
| 258 | # Checking version of makecab.exe | ||||
| 259 | ############################################## | ||||
| 260 | |||||
| 261 | 1 | 6µs | 1 | 120ms | if ( $installer::globals::iswindowsbuild && (!defined($ENV{'CROSS_COMPILING'}) || $ENV{'CROSS_COMPILING'} ne 'YES' || $installer::globals::packageformat eq 'msi')) { installer::control::check_makecab_version(); } # spent 120ms making 1 call to installer::control::check_makecab_version |
| 262 | |||||
| 263 | ########################################################## | ||||
| 264 | # Getting the include path from the settings in zip list | ||||
| 265 | ########################################################## | ||||
| 266 | |||||
| 267 | 1 | 9µs | 1 | 186µs | my $includepathref = installer::ziplist::getinfofromziplist($allsettingsarrayref, "include"); # spent 186µs making 1 call to installer::ziplist::getinfofromziplist |
| 268 | 1 | 2µs | if ( $$includepathref eq "" ) | ||
| 269 | { | ||||
| 270 | installer::exiter::exit_program("ERROR: Definition for \"include\" not found in $installer::globals::ziplistname", "Main"); | ||||
| 271 | } | ||||
| 272 | |||||
| 273 | 1 | 14µs | 1 | 65µs | my $includepatharrayref = installer::converter::convert_stringlist_into_array($includepathref, ","); # spent 65µs making 1 call to installer::converter::convert_stringlist_into_array |
| 274 | |||||
| 275 | 1 | 5µs | 1 | 4.22ms | installer::ziplist::replace_all_variables_in_paths($includepatharrayref, $pathvariableshashref); # spent 4.22ms making 1 call to installer::ziplist::replace_all_variables_in_paths |
| 276 | |||||
| 277 | 1 | 7µs | 1 | 182µs | installer::ziplist::replace_minor_in_paths($includepatharrayref); # spent 182µs making 1 call to installer::ziplist::replace_minor_in_paths |
| 278 | |||||
| 279 | 1 | 4µs | 1 | 101µs | installer::ziplist::replace_packagetype_in_paths($includepatharrayref); # spent 101µs making 1 call to installer::ziplist::replace_packagetype_in_paths |
| 280 | |||||
| 281 | 1 | 5µs | 1 | 2.31ms | installer::ziplist::resolve_relative_paths($includepatharrayref); # spent 2.31ms making 1 call to installer::ziplist::resolve_relative_paths |
| 282 | |||||
| 283 | 1 | 6µs | 1 | 477µs | installer::ziplist::remove_ending_separator($includepatharrayref); # spent 477µs making 1 call to installer::ziplist::remove_ending_separator |
| 284 | |||||
| 285 | ############################################## | ||||
| 286 | # Collecting all files from all include | ||||
| 287 | # paths in global hashes. | ||||
| 288 | ############################################## | ||||
| 289 | |||||
| 290 | 1 | 8µs | 1 | 2.67s | installer::worker::collect_all_files_from_includepaths($includepatharrayref); # spent 2.67s making 1 call to installer::worker::collect_all_files_from_includepaths |
| 291 | |||||
| 292 | ############################################## | ||||
| 293 | # Analyzing languages in zip.lst if required | ||||
| 294 | # Probably no longer used. | ||||
| 295 | ############################################## | ||||
| 296 | |||||
| 297 | 1 | 1µs | if ($installer::globals::languages_defined_in_productlist) { installer::languages::get_info_about_languages($allsettingsarrayref); } | ||
| 298 | |||||
| 299 | ##################################### | ||||
| 300 | # Windows requires the encoding list | ||||
| 301 | ##################################### | ||||
| 302 | |||||
| 303 | 1 | 5µs | 1 | 5.11ms | if ( $installer::globals::iswindowsbuild ) { installer::control::read_encodinglist($includepatharrayref); } # spent 5.11ms making 1 call to installer::control::read_encodinglist |
| 304 | |||||
| 305 | ##################################################################### | ||||
| 306 | # Including additional inc files for variable settings, if defined | ||||
| 307 | ##################################################################### | ||||
| 308 | |||||
| 309 | 1 | 9µs | 1 | 1.61ms | if ( $allvariableshashref->{'ADD_INCLUDE_FILES'} ) { installer::worker::add_variables_from_inc_to_hashref($allvariableshashref, $includepatharrayref); } # spent 1.61ms making 1 call to installer::worker::add_variables_from_inc_to_hashref |
| 310 | |||||
| 311 | ##################################### | ||||
| 312 | # Analyzing the setup script | ||||
| 313 | ##################################### | ||||
| 314 | |||||
| 315 | 1 | 6µs | 1 | 153µs | if ($installer::globals::setupscript_defined_in_productlist) { installer::setupscript::set_setupscript_name($allsettingsarrayref, $includepatharrayref); } # spent 153µs making 1 call to installer::setupscript::set_setupscript_name |
| 316 | |||||
| 317 | 1 | 4µs | 1 | 53µs | installer::logger::globallog("setup script file: $installer::globals::setupscriptname"); # spent 53µs making 1 call to installer::logger::globallog |
| 318 | |||||
| 319 | 1 | 5µs | 1 | 16µs | installer::logger::print_message( "... analyzing script: $installer::globals::setupscriptname ... \n" ); # spent 16µs making 1 call to installer::logger::print_message |
| 320 | |||||
| 321 | 1 | 4µs | 1 | 527ms | my $setupscriptref = installer::files::read_file($installer::globals::setupscriptname); # Reading the setup script file # spent 527ms making 1 call to installer::files::read_file |
| 322 | |||||
| 323 | # Resolving variables defined in the zip list file into setup script | ||||
| 324 | # All the variables are defined in $allvariablesarrayref | ||||
| 325 | |||||
| 326 | 1 | 10µs | 1 | 468ms | installer::scpzipfiles::replace_all_ziplistvariables_in_file($setupscriptref, $allvariableshashref); # spent 468ms making 1 call to installer::scpzipfiles::replace_all_ziplistvariables_in_file |
| 327 | |||||
| 328 | # Resolving %variables defined in the installation object | ||||
| 329 | |||||
| 330 | 1 | 9µs | 1 | 304µs | my $allscriptvariablesref = installer::setupscript::get_all_scriptvariables_from_installation_object($setupscriptref); # spent 304µs making 1 call to installer::setupscript::get_all_scriptvariables_from_installation_object |
| 331 | |||||
| 332 | 1 | 4µs | 1 | 442µs | installer::setupscript::add_lowercase_productname_setupscriptvariable($allscriptvariablesref); # spent 442µs making 1 call to installer::setupscript::add_lowercase_productname_setupscriptvariable |
| 333 | |||||
| 334 | 1 | 4µs | 1 | 550µs | installer::setupscript::resolve_lowercase_productname_setupscriptvariable($allscriptvariablesref); # spent 550µs making 1 call to installer::setupscript::resolve_lowercase_productname_setupscriptvariable |
| 335 | |||||
| 336 | 1 | 45.0ms | 1 | 1.03s | $setupscriptref = installer::setupscript::replace_all_setupscriptvariables_in_script($setupscriptref, $allscriptvariablesref); # spent 1.03s making 1 call to installer::setupscript::replace_all_setupscriptvariables_in_script |
| 337 | |||||
| 338 | # Adding all variables defined in the installation object into the hash of all variables. | ||||
| 339 | # This is needed if variables are defined in the installation object, but not in the zip list file. | ||||
| 340 | # If there is a definition in the zip list file and in the installation object, the installation object is more important | ||||
| 341 | |||||
| 342 | 1 | 25µs | 1 | 402µs | installer::setupscript::add_installationobject_to_variables($allvariableshashref, $allscriptvariablesref); # spent 402µs making 1 call to installer::setupscript::add_installationobject_to_variables |
| 343 | |||||
| 344 | # Adding also all variables, that must be included into the $allvariableshashref. | ||||
| 345 | 1 | 5µs | 1 | 24µs | installer::setupscript::add_forced_properties($allvariableshashref); # spent 24µs making 1 call to installer::setupscript::add_forced_properties |
| 346 | |||||
| 347 | # Replacing preset properties, not using the default mechanisms (for example for UNIXPRODUCTNAME) | ||||
| 348 | 1 | 4µs | 1 | 20µs | installer::setupscript::replace_preset_properties($allvariableshashref); # spent 20µs making 1 call to installer::setupscript::replace_preset_properties |
| 349 | |||||
| 350 | 1 | 6µs | 1 | 475ms | installer::scpzipfiles::replace_all_ziplistvariables_in_file($setupscriptref, $allvariableshashref); # spent 475ms making 1 call to installer::scpzipfiles::replace_all_ziplistvariables_in_file |
| 351 | |||||
| 352 | |||||
| 353 | 1 | 11µs | 1 | 522µs | installer::logger::log_hashref($allvariableshashref); # spent 522µs making 1 call to installer::logger::log_hashref |
| 354 | |||||
| 355 | 1 | 4µs | 1 | 21µs | installer::logger::print_message( "... analyzing directories ... \n" ); # spent 21µs making 1 call to installer::logger::print_message |
| 356 | |||||
| 357 | # Collect all directories in the script to get the destination dirs | ||||
| 358 | |||||
| 359 | 1 | 6µs | 1 | 1.14s | my $dirsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Directory"); # spent 1.14s making 1 call to installer::setupscript::get_all_items_from_script |
| 360 | |||||
| 361 | 1 | 1µs | if ( $installer::globals::languagepack ) { installer::scriptitems::use_langpack_hostname($dirsinproductarrayref); } | ||
| 362 | 1 | 500ns | if ( $installer::globals::patch ) { installer::scriptitems::use_patch_hostname($dirsinproductarrayref); } | ||
| 363 | |||||
| 364 | 1 | 2µs | if ( $allvariableshashref->{'SHIFT_BASIS_INTO_BRAND_LAYER'} ) { $dirsinproductarrayref = installer::scriptitems::shift_basis_directory_parents($dirsinproductarrayref); } | ||
| 365 | 1 | 1µs | if ( $allvariableshashref->{'OFFICEDIRECTORYNAME'} ) { installer::scriptitems::set_officedirectory_name($dirsinproductarrayref, $allvariableshashref->{'OFFICEDIRECTORYNAME'}); } | ||
| 366 | |||||
| 367 | |||||
| 368 | 1 | 9µs | 1 | 81.3ms | installer::scriptitems::resolve_all_directory_names($dirsinproductarrayref); # spent 81.3ms making 1 call to installer::scriptitems::resolve_all_directory_names |
| 369 | |||||
| 370 | 1 | 8µs | 1 | 24µs | installer::logger::print_message( "... analyzing files ... \n" ); # spent 24µs making 1 call to installer::logger::print_message |
| 371 | |||||
| 372 | 1 | 5µs | 1 | 1.42s | my $filesinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "File"); # spent 1.42s making 1 call to installer::setupscript::get_all_items_from_script |
| 373 | |||||
| 374 | 1 | 3µs | if (( ! $installer::globals::iswindowsbuild ) && | ||
| 375 | ( ! $installer::globals::isrpmbuild ) && | ||||
| 376 | ( ! $installer::globals::isdebbuild ) && | ||||
| 377 | ( ! $installer::globals::issolarispkgbuild ) && | ||||
| 378 | ( $installer::globals::packageformat ne "installed" ) && | ||||
| 379 | ( $installer::globals::packageformat ne "dmg" ) && | ||||
| 380 | ( $installer::globals::packageformat ne "archive" )) | ||||
| 381 | { installer::control::check_oxtfiles($filesinproductarrayref); } | ||||
| 382 | |||||
| 383 | 1 | 31µs | 1 | 6.06ms | if (! $installer::globals::languagepack) # spent 6.06ms making 1 call to installer::scriptitems::remove_Languagepacklibraries_from_Installset |
| 384 | { | ||||
| 385 | $filesinproductarrayref = installer::scriptitems::remove_Languagepacklibraries_from_Installset($filesinproductarrayref); | ||||
| 386 | } | ||||
| 387 | |||||
| 388 | 1 | 288µs | 1 | 5.68ms | if (! $installer::globals::helppack) # spent 5.68ms making 1 call to installer::scriptitems::remove_Helppacklibraries_from_Installset |
| 389 | { | ||||
| 390 | $filesinproductarrayref = installer::scriptitems::remove_Helppacklibraries_from_Installset($filesinproductarrayref); | ||||
| 391 | } | ||||
| 392 | |||||
| 393 | 1 | 28µs | 1 | 5.53ms | if (! $installer::globals::patch) # spent 5.53ms making 1 call to installer::scriptitems::remove_patchonlyfiles_from_Installset |
| 394 | { | ||||
| 395 | $filesinproductarrayref = installer::scriptitems::remove_patchonlyfiles_from_Installset($filesinproductarrayref); | ||||
| 396 | } | ||||
| 397 | |||||
| 398 | 1 | 5µs | 1 | 22µs | installer::logger::print_message( "... analyzing scpactions ... \n" ); # spent 22µs making 1 call to installer::logger::print_message |
| 399 | |||||
| 400 | 1 | 5µs | 1 | 1.05s | my $scpactionsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "ScpAction"); # spent 1.05s making 1 call to installer::setupscript::get_all_items_from_script |
| 401 | |||||
| 402 | 1 | 1µs | if ( $installer::globals::languagepack ) { installer::scriptitems::use_langpack_copy_scpaction($scpactionsinproductarrayref); } | ||
| 403 | 1 | 500ns | if ( $installer::globals::helppack ) { installer::scriptitems::use_langpack_copy_scpaction($scpactionsinproductarrayref); } | ||
| 404 | 1 | 4µs | if ( $allvariableshashref->{'PRODUCTNAME'} eq "LibO-dev" ) { installer::scriptitems::use_devversion_copy_scpaction($scpactionsinproductarrayref); } | ||
| 405 | 1 | 600ns | if ( $installer::globals::patch ) { installer::scriptitems::use_patch_copy_scpaction($scpactionsinproductarrayref); } | ||
| 406 | |||||
| 407 | 1 | 9µs | 1 | 13µs | installer::scriptitems::change_keys_of_scpactions($scpactionsinproductarrayref); # spent 13µs making 1 call to installer::scriptitems::change_keys_of_scpactions |
| 408 | |||||
| 409 | 1 | 5µs | 1 | 24µs | installer::logger::print_message( "... analyzing shortcuts ... \n" ); # spent 24µs making 1 call to installer::logger::print_message |
| 410 | |||||
| 411 | 1 | 5µs | 1 | 1.05s | my $linksinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Shortcut"); # spent 1.05s making 1 call to installer::setupscript::get_all_items_from_script |
| 412 | |||||
| 413 | 1 | 9µs | 1 | 26µs | installer::logger::print_message( "... analyzing unix links ... \n" ); # spent 26µs making 1 call to installer::logger::print_message |
| 414 | |||||
| 415 | 1 | 5µs | 1 | 1.06s | my $unixlinksinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Unixlink"); # spent 1.06s making 1 call to installer::setupscript::get_all_items_from_script |
| 416 | |||||
| 417 | 1 | 8µs | 1 | 26µs | installer::logger::print_message( "... analyzing profile ... \n" ); # spent 26µs making 1 call to installer::logger::print_message |
| 418 | |||||
| 419 | 1 | 5µs | 1 | 1.06s | my $profilesinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Profile"); # spent 1.06s making 1 call to installer::setupscript::get_all_items_from_script |
| 420 | |||||
| 421 | 1 | 7µs | 1 | 25µs | installer::logger::print_message( "... analyzing profileitems ... \n" ); # spent 25µs making 1 call to installer::logger::print_message |
| 422 | |||||
| 423 | 1 | 5µs | 1 | 1.07s | my $profileitemsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "ProfileItem"); # spent 1.07s making 1 call to installer::setupscript::get_all_items_from_script |
| 424 | |||||
| 425 | 1 | 500ns | my $folderinproductarrayref; | ||
| 426 | 1 | 0s | my $folderitemsinproductarrayref; | ||
| 427 | 1 | 500ns | my $registryitemsinproductarrayref; | ||
| 428 | 1 | 500ns | my $windowscustomactionsarrayref; | ||
| 429 | 1 | 600ns | my $mergemodulesarrayref; | ||
| 430 | |||||
| 431 | 1 | 2µs | if ( $installer::globals::iswindowsbuild ) # Windows specific items: Folder, FolderItem, RegistryItem, WindowsCustomAction | ||
| 432 | { | ||||
| 433 | 1 | 8µs | 1 | 24µs | installer::logger::print_message( "... analyzing folders ... \n" ); # spent 24µs making 1 call to installer::logger::print_message |
| 434 | |||||
| 435 | 1 | 5µs | 1 | 1.06s | $folderinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Folder"); # spent 1.06s making 1 call to installer::setupscript::get_all_items_from_script |
| 436 | |||||
| 437 | 1 | 8µs | 1 | 25µs | installer::logger::print_message( "... analyzing folderitems ... \n" ); # spent 25µs making 1 call to installer::logger::print_message |
| 438 | |||||
| 439 | 1 | 5µs | 1 | 1.09s | $folderitemsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "FolderItem"); # spent 1.09s making 1 call to installer::setupscript::get_all_items_from_script |
| 440 | |||||
| 441 | 1 | 13µs | 1 | 91µs | installer::setupscript::add_predefined_folder($folderitemsinproductarrayref, $folderinproductarrayref); # spent 91µs making 1 call to installer::setupscript::add_predefined_folder |
| 442 | |||||
| 443 | 1 | 5µs | 1 | 1.92ms | installer::setupscript::prepare_non_advertised_files($folderitemsinproductarrayref, $filesinproductarrayref); # spent 1.92ms making 1 call to installer::setupscript::prepare_non_advertised_files |
| 444 | |||||
| 445 | 1 | 4µs | 1 | 18µs | installer::logger::print_message( "... analyzing registryitems ... \n" ); # spent 18µs making 1 call to installer::logger::print_message |
| 446 | |||||
| 447 | 1 | 5µs | 1 | 1.84s | $registryitemsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "RegistryItem"); # spent 1.84s making 1 call to installer::setupscript::get_all_items_from_script |
| 448 | |||||
| 449 | 1 | 62µs | 1 | 9.46ms | $registryitemsinproductarrayref = installer::scriptitems::remove_uninstall_regitems_from_script($registryitemsinproductarrayref); # spent 9.46ms making 1 call to installer::scriptitems::remove_uninstall_regitems_from_script |
| 450 | |||||
| 451 | 1 | 7µs | 1 | 23µs | installer::logger::print_message( "... analyzing Windows custom actions ... \n" ); # spent 23µs making 1 call to installer::logger::print_message |
| 452 | |||||
| 453 | 1 | 4µs | 1 | 1.08s | $windowscustomactionsarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "WindowsCustomAction"); # spent 1.08s making 1 call to installer::setupscript::get_all_items_from_script |
| 454 | |||||
| 455 | 1 | 6µs | 1 | 20µs | installer::logger::print_message( "... analyzing Windows merge modules ... \n" ); # spent 20µs making 1 call to installer::logger::print_message |
| 456 | |||||
| 457 | 1 | 5µs | 1 | 1.05s | $mergemodulesarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "MergeModule"); # spent 1.05s making 1 call to installer::setupscript::get_all_items_from_script |
| 458 | } | ||||
| 459 | |||||
| 460 | 1 | 1µs | my $modulesinproductarrayref; | ||
| 461 | |||||
| 462 | 1 | 3µs | if (!($installer::globals::is_copy_only_project)) | ||
| 463 | { | ||||
| 464 | 1 | 7µs | 1 | 22µs | installer::logger::print_message( "... analyzing modules ... \n" ); # spent 22µs making 1 call to installer::logger::print_message |
| 465 | |||||
| 466 | 1 | 4µs | 1 | 3.82s | $modulesinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Module"); # spent 3.82s making 1 call to installer::setupscript::get_all_items_from_script |
| 467 | |||||
| 468 | 1 | 12µs | 1 | 34.5ms | installer::scriptitems::resolve_assigned_modules($modulesinproductarrayref); # spent 34.5ms making 1 call to installer::scriptitems::resolve_assigned_modules |
| 469 | |||||
| 470 | 1 | 83µs | 1 | 11.3ms | $modulesinproductarrayref = installer::scriptitems::remove_template_modules($modulesinproductarrayref); # spent 11.3ms making 1 call to installer::scriptitems::remove_template_modules |
| 471 | |||||
| 472 | 1 | 7µs | 1 | 100ms | installer::scriptitems::set_children_flag($modulesinproductarrayref); # spent 100ms making 1 call to installer::scriptitems::set_children_flag |
| 473 | |||||
| 474 | 1 | 8µs | 1 | 280ms | installer::scriptitems::collect_all_languagemodules($modulesinproductarrayref); # spent 280ms making 1 call to installer::scriptitems::collect_all_languagemodules |
| 475 | |||||
| 476 | # Assigning the modules to the items | ||||
| 477 | |||||
| 478 | 1 | 10µs | 1 | 193ms | installer::scriptitems::assigning_modules_to_items($modulesinproductarrayref, $filesinproductarrayref, "Files"); # spent 193ms making 1 call to installer::scriptitems::assigning_modules_to_items |
| 479 | |||||
| 480 | 1 | 5µs | 1 | 1.96ms | installer::scriptitems::assigning_modules_to_items($modulesinproductarrayref, $unixlinksinproductarrayref, "Unixlinks"); # spent 1.96ms making 1 call to installer::scriptitems::assigning_modules_to_items |
| 481 | |||||
| 482 | 1 | 4µs | 1 | 17.0ms | installer::scriptitems::assigning_modules_to_items($modulesinproductarrayref, $dirsinproductarrayref, "Dirs"); # spent 17.0ms making 1 call to installer::scriptitems::assigning_modules_to_items |
| 483 | } | ||||
| 484 | |||||
| 485 | ################################################# | ||||
| 486 | # Part 1b: The language dependent part | ||||
| 487 | # (still platform independent) | ||||
| 488 | ################################################# | ||||
| 489 | |||||
| 490 | # Now starts the language dependent part, if more than one product is defined on the command line | ||||
| 491 | # Example -l en-US,de#es,fr,it defines two multilingual products | ||||
| 492 | |||||
| 493 | ############################################################################### | ||||
| 494 | # Beginning of language dependent part | ||||
| 495 | # The for iterates over all products, separated by an # in the language list | ||||
| 496 | ############################################################################### | ||||
| 497 | |||||
| 498 | 1 | 1.17s | for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) | ||
| 499 | { | ||||
| 500 | 1 | 9µs | 1 | 2.78ms | my $languagesarrayref = installer::languages::get_all_languages_for_one_product($installer::globals::languageproducts[$n], $allvariableshashref); # spent 2.78ms making 1 call to installer::languages::get_all_languages_for_one_product |
| 501 | |||||
| 502 | 1 | 4µs | 1 | 158µs | my $languagestringref = installer::languages::get_language_string($languagesarrayref); # spent 158µs making 1 call to installer::languages::get_language_string |
| 503 | 1 | 5µs | 1 | 19µs | installer::logger::print_message( "------------------------------------\n" ); # spent 19µs making 1 call to installer::logger::print_message |
| 504 | 1 | 6µs | 1 | 9µs | installer::logger::print_message( "... languages $$languagestringref ... \n" ); # spent 9µs making 1 call to installer::logger::print_message |
| 505 | |||||
| 506 | 1 | 500ns | if ( $installer::globals::patch ) | ||
| 507 | { | ||||
| 508 | $installer::globals::addlicensefile = 0; # no license files for patches | ||||
| 509 | $installer::globals::makedownload = 0; | ||||
| 510 | } | ||||
| 511 | |||||
| 512 | 1 | 500ns | if ( $installer::globals::languagepack ) | ||
| 513 | { | ||||
| 514 | $installer::globals::addsystemintegration = 0; | ||||
| 515 | $installer::globals::addlicensefile = 0; | ||||
| 516 | $installer::globals::makedownload = 1; | ||||
| 517 | } | ||||
| 518 | |||||
| 519 | 1 | 500ns | if ( $installer::globals::helppack ) | ||
| 520 | { | ||||
| 521 | $installer::globals::addsystemintegration = 0; | ||||
| 522 | $installer::globals::addlicensefile = 0; | ||||
| 523 | $installer::globals::makedownload = 1; | ||||
| 524 | } | ||||
| 525 | |||||
| 526 | ############################################################ | ||||
| 527 | # Beginning of language specific logging mechanism | ||||
| 528 | # Until now only global logging into default: logfile.txt | ||||
| 529 | ############################################################ | ||||
| 530 | |||||
| 531 | 1 | 11µs | @installer::globals::logfileinfo = (); # new logfile array and new logfile name | ||
| 532 | 1 | 4µs | 1 | 459µs | installer::logger::copy_globalinfo_into_logfile(); # spent 459µs making 1 call to installer::logger::copy_globalinfo_into_logfile |
| 533 | 1 | 1µs | $installer::globals::globalinfo_copied = 1; | ||
| 534 | |||||
| 535 | 1 | 2µs | my $logminor = ""; | ||
| 536 | 1 | 1µs | $logminor = $installer::globals::minor; | ||
| 537 | |||||
| 538 | 1 | 1µs | my $loglanguagestring = $$languagestringref; | ||
| 539 | 1 | 2µs | my $loglanguagestring_orig = $loglanguagestring; | ||
| 540 | 1 | 3µs | if (length($loglanguagestring) > $installer::globals::max_lang_length) | ||
| 541 | { | ||||
| 542 | 1 | 7µs | 1 | 827µs | my $number_of_languages = installer::systemactions::get_number_of_langs($loglanguagestring); # spent 827µs making 1 call to installer::systemactions::get_number_of_langs |
| 543 | 1 | 288ms | 1 | 288ms | chomp(my $shorter = `echo $loglanguagestring | md5sum | sed -e "s/ .*//g"`); # spent 288ms making 1 call to installer::CORE:backtick |
| 544 | 1 | 6µs | my $id = substr($shorter, 0, 8); # taking only the first 8 digits | ||
| 545 | 1 | 10µs | $loglanguagestring = "lang_" . $number_of_languages . "_id_" . $id; | ||
| 546 | } | ||||
| 547 | |||||
| 548 | 1 | 2µs | $installer::globals::logfilename = "log_" . $installer::globals::build; | ||
| 549 | 1 | 2µs | if ( $logminor ne "" ) { $installer::globals::logfilename .= "_" . $logminor; } | ||
| 550 | 1 | 3µs | $installer::globals::logfilename .= "_" . $loglanguagestring; | ||
| 551 | 1 | 1µs | $installer::globals::logfilename .= ".log"; | ||
| 552 | 1 | 4µs | $loggingdir = $loggingdir . $loglanguagestring . $installer::globals::separator; | ||
| 553 | 1 | 10µs | 1 | 1.32ms | installer::systemactions::create_directory($loggingdir); # spent 1.32ms making 1 call to installer::systemactions::create_directory |
| 554 | |||||
| 555 | 1 | 2µs | if ($loglanguagestring ne $loglanguagestring_orig) { | ||
| 556 | 1 | 28µs | 1 | 14µs | (my $dir = $loggingdir) =~ s!/$!!; # spent 14µs making 1 call to installer::CORE:subst |
| 557 | 1 | 588µs | 1 | 562µs | open(my $F1, "> $dir.dir"); # spent 562µs making 1 call to installer::CORE:open |
| 558 | 1 | 515µs | 1 | 496µs | open(my $F2, "> " . $loggingdir . $installer::globals::logfilename . '.file'); # spent 496µs making 1 call to installer::CORE:open |
| 559 | 1 | 232µs | my @s = map { "$_\n" } split('_', $loglanguagestring_orig); | ||
| 560 | 1 | 26µs | 1 | 15µs | print $F1 @s; # spent 15µs making 1 call to installer::CORE:print |
| 561 | 1 | 340µs | 1 | 13µs | print $F2 @s; # spent 13µs making 1 call to installer::CORE:print |
| 562 | } | ||||
| 563 | |||||
| 564 | 1 | 2µs | $installer::globals::exitlog = $loggingdir; | ||
| 565 | |||||
| 566 | ################################################################### | ||||
| 567 | # Reading an existing msi database, to prepare update and patch | ||||
| 568 | ################################################################### | ||||
| 569 | |||||
| 570 | 1 | 2µs | my $refdatabase = ""; | ||
| 571 | 1 | 1µs | my $uniquefilename = ""; | ||
| 572 | 1 | 1µs | my $revuniquefilename = ""; | ||
| 573 | 1 | 1µs | my $revshortfilename = ""; | ||
| 574 | 1 | 1µs | my $allupdatesequences = ""; | ||
| 575 | 1 | 500ns | my $allupdatecomponents = ""; | ||
| 576 | 1 | 1µs | my $allupdatefileorder = ""; | ||
| 577 | 1 | 500ns | my $allupdatecomponentorder = ""; | ||
| 578 | 1 | 600ns | my $shortdirname = ""; | ||
| 579 | 1 | 1µs | my $componentid = ""; | ||
| 580 | 1 | 1µs | my $componentidkeypath = ""; | ||
| 581 | 1 | 500ns | my $alloldproperties = ""; | ||
| 582 | 1 | 1µs | my $allupdatelastsequences = ""; | ||
| 583 | 1 | 1µs | my $allupdatediskids = ""; | ||
| 584 | |||||
| 585 | 1 | 2µs | if ( $installer::globals::iswindowsbuild || $installer::globals::packageformat eq 'msi' ) | ||
| 586 | { | ||||
| 587 | 1 | 4µs | if ( $allvariableshashref->{'UPDATE_DATABASE'} ) | ||
| 588 | { | ||||
| 589 | 1 | 7µs | 1 | 21µs | installer::logger::print_message( "... analyzing update database ...\n" ); # spent 21µs making 1 call to installer::logger::print_message |
| 590 | 1 | 7µs | 1 | 697µs | $refdatabase = installer::windows::update::readdatabase($allvariableshashref, $languagestringref, $includepatharrayref); # spent 697µs making 1 call to installer::windows::update::readdatabase |
| 591 | |||||
| 592 | 1 | 1µs | if ( $installer::globals::updatedatabase ) | ||
| 593 | { | ||||
| 594 | ($uniquefilename, $revuniquefilename, $revshortfilename, $allupdatesequences, $allupdatecomponents, $allupdatefileorder, $allupdatecomponentorder, $shortdirname, $componentid, $componentidkeypath, $alloldproperties, $allupdatelastsequences, $allupdatediskids) = installer::windows::update::create_database_hashes($refdatabase); | ||||
| 595 | if ( $mergemodulesarrayref > -1 ) { installer::windows::update::readmergedatabase($mergemodulesarrayref, $languagestringref, $includepatharrayref); } | ||||
| 596 | } | ||||
| 597 | } | ||||
| 598 | } | ||||
| 599 | |||||
| 600 | ############################################## | ||||
| 601 | # Setting global code variables for Windows | ||||
| 602 | ############################################## | ||||
| 603 | |||||
| 604 | 1 | 9µs | 1 | 124ms | if (!($installer::globals::is_copy_only_project)) # spent 124ms making 1 call to installer::windows::msiglobal::set_global_code_variables |
| 605 | { | ||||
| 606 | if ((( $installer::globals::iswindowsbuild ) && ( $installer::globals::packageformat ne "archive" ) && ( $installer::globals::packageformat ne "installed" ) ) || $installer::globals::packageformat eq 'msi' ) | ||||
| 607 | { | ||||
| 608 | installer::windows::msiglobal::set_global_code_variables($languagesarrayref, $languagestringref, $allvariableshashref, $alloldproperties); | ||||
| 609 | } | ||||
| 610 | } | ||||
| 611 | |||||
| 612 | ################################################ | ||||
| 613 | # Resolving include paths (language dependent) | ||||
| 614 | ################################################ | ||||
| 615 | |||||
| 616 | 1 | 8µs | 1 | 221µs | $includepatharrayref_lang = installer::ziplist::replace_languages_in_paths($includepatharrayref, $languagesarrayref); # spent 221µs making 1 call to installer::ziplist::replace_languages_in_paths |
| 617 | |||||
| 618 | 1 | 500ns | if ( $installer::globals::refresh_includepaths ) { installer::worker::collect_all_files_from_includepaths($includepatharrayref_lang); } | ||
| 619 | |||||
| 620 | 1 | 5µs | 1 | 342µs | installer::ziplist::list_all_files_from_include_path($includepatharrayref_lang); # spent 342µs making 1 call to installer::ziplist::list_all_files_from_include_path |
| 621 | |||||
| 622 | ############################################## | ||||
| 623 | # Analyzing spellchecker languages | ||||
| 624 | ############################################## | ||||
| 625 | |||||
| 626 | 1 | 8µs | 1 | 4.64ms | if ( $allvariableshashref->{'SPELLCHECKERFILE'} ) { installer::worker::set_spellcheckerlanguages($languagesarrayref, $allvariableshashref); } # spent 4.64ms making 1 call to installer::worker::set_spellcheckerlanguages |
| 627 | |||||
| 628 | ##################################### | ||||
| 629 | # Language dependent directory part | ||||
| 630 | ##################################### | ||||
| 631 | |||||
| 632 | 1 | 7µs | 1 | 2.67s | my $dirsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($dirsinproductarrayref, $languagesarrayref); # spent 2.67s making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 633 | |||||
| 634 | # A new directory array is needed ($dirsinproductlanguageresolvedarrayref instead of $dirsinproductarrayref) | ||||
| 635 | # because $dirsinproductarrayref is needed in get_Destination_Directory_For_Item_From_Directorylist | ||||
| 636 | |||||
| 637 | 1 | 8µs | 1 | 64.1ms | installer::scriptitems::changing_name_of_language_dependent_keys($dirsinproductlanguageresolvedarrayref); # spent 64.1ms making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 638 | |||||
| 639 | 1 | 8µs | 1 | 7.27ms | installer::scriptitems::checking_directories_with_corrupt_hostname($dirsinproductlanguageresolvedarrayref, $languagesarrayref); # spent 7.27ms making 1 call to installer::scriptitems::checking_directories_with_corrupt_hostname |
| 640 | |||||
| 641 | 1 | 6µs | 1 | 11.7ms | installer::scriptitems::set_global_directory_hostnames($dirsinproductlanguageresolvedarrayref, $allvariableshashref); # spent 11.7ms making 1 call to installer::scriptitems::set_global_directory_hostnames |
| 642 | |||||
| 643 | ##################################### | ||||
| 644 | # files part, language dependent | ||||
| 645 | ##################################### | ||||
| 646 | |||||
| 647 | 1 | 6µs | 1 | 22µs | installer::logger::print_message( "... analyzing files ...\n" ); # spent 22µs making 1 call to installer::logger::print_message |
| 648 | |||||
| 649 | 1 | 6µs | 1 | 24.9s | my $filesinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($filesinproductarrayref, $languagesarrayref); # spent 24.9s making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 650 | |||||
| 651 | 1 | 663µs | 1 | 55.7ms | if ( ! $installer::globals::set_office_start_language ) # spent 55.7ms making 1 call to installer::scriptitems::remove_office_start_language_files |
| 652 | { | ||||
| 653 | $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_office_start_language_files($filesinproductlanguageresolvedarrayref); | ||||
| 654 | } | ||||
| 655 | |||||
| 656 | 1 | 8µs | 1 | 374ms | installer::scriptitems::changing_name_of_language_dependent_keys($filesinproductlanguageresolvedarrayref); # spent 374ms making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 657 | |||||
| 658 | 1 | 20µs | 1 | 6µs | if ( $installer::globals::iswin and $^O =~ /MSWin/i ) { installer::converter::convert_slash_to_backslash($filesinproductlanguageresolvedarrayref); } # spent 6µs making 1 call to installer::CORE:match |
| 659 | |||||
| 660 | 1 | 2.16ms | 1 | 43.7ms | $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_non_existent_languages_in_productlists($filesinproductlanguageresolvedarrayref, $languagestringref, "Name", "file"); # spent 43.7ms making 1 call to installer::scriptitems::remove_non_existent_languages_in_productlists |
| 661 | |||||
| 662 | 1 | 11µs | 1 | 800ms | installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist($filesinproductlanguageresolvedarrayref, $dirsinproductarrayref); # spent 800ms making 1 call to installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist |
| 663 | |||||
| 664 | 1 | 7µs | 1 | 439ms | installer::scriptitems::get_Source_Directory_For_Files_From_Includepathlist($filesinproductlanguageresolvedarrayref, $includepatharrayref_lang, $dirsinproductlanguageresolvedarrayref, "Files"); # spent 439ms making 1 call to installer::scriptitems::get_Source_Directory_For_Files_From_Includepathlist |
| 665 | |||||
| 666 | 1 | 392µs | 1 | 23.9ms | $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_Files_Without_Sourcedirectory($filesinproductlanguageresolvedarrayref); # spent 23.9ms making 1 call to installer::scriptitems::remove_Files_Without_Sourcedirectory |
| 667 | |||||
| 668 | 1 | 2µs | if ($installer::globals::languagepack) | ||
| 669 | { | ||||
| 670 | $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_Files_For_Languagepacks($filesinproductlanguageresolvedarrayref); | ||||
| 671 | } | ||||
| 672 | |||||
| 673 | 1 | 426µs | 1 | 114ms | if ( ! $allvariableshashref->{'NO_README_IN_ROOTDIR'} ) # spent 114ms making 1 call to installer::scriptitems::add_License_Files_into_Installdir |
| 674 | { | ||||
| 675 | $filesinproductlanguageresolvedarrayref = installer::scriptitems::add_License_Files_into_Installdir($filesinproductlanguageresolvedarrayref, $dirsinproductlanguageresolvedarrayref, $languagesarrayref); | ||||
| 676 | } | ||||
| 677 | |||||
| 678 | 1 | 9µs | 1 | 56.5ms | installer::scriptitems::make_filename_language_specific($filesinproductlanguageresolvedarrayref); # spent 56.5ms making 1 call to installer::scriptitems::make_filename_language_specific |
| 679 | |||||
| 680 | ###################################################################################### | ||||
| 681 | # Unzipping files with flag ARCHIVE and putting all included files into the file list | ||||
| 682 | ###################################################################################### | ||||
| 683 | |||||
| 684 | 1 | 7µs | 1 | 23µs | installer::logger::print_message( "... analyzing files with flag ARCHIVE ...\n" ); # spent 23µs making 1 call to installer::logger::print_message |
| 685 | |||||
| 686 | 1 | 2µs | my @additional_paths_from_zipfiles = (); | ||
| 687 | |||||
| 688 | 1 | 1.27ms | 1 | 50.0s | $filesinproductlanguageresolvedarrayref = installer::archivefiles::resolving_archive_flag($filesinproductlanguageresolvedarrayref, \@additional_paths_from_zipfiles, $languagestringref, $loggingdir); # spent 50.0s making 1 call to installer::archivefiles::resolving_archive_flag |
| 689 | |||||
| 690 | # packed files sometimes contain a "$" in their name: HighlightText$1.class. For epm the "$" has to be quoted by "$$" | ||||
| 691 | |||||
| 692 | 1 | 500ns | if (!( $installer::globals::iswindowsbuild || $installer::globals::simple ) ) | ||
| 693 | { | ||||
| 694 | installer::scriptitems::quoting_illegal_filenames($filesinproductlanguageresolvedarrayref); | ||||
| 695 | } | ||||
| 696 | |||||
| 697 | ##################################### | ||||
| 698 | # Files with flag SUBST_FILENAME | ||||
| 699 | ##################################### | ||||
| 700 | |||||
| 701 | 1 | 7µs | 1 | 23µs | installer::logger::print_message( "... analyzing files with flag SUBST_FILENAME ...\n" ); # spent 23µs making 1 call to installer::logger::print_message |
| 702 | |||||
| 703 | 1 | 6µs | 1 | 407ms | installer::substfilenamefiles::resolving_subst_filename_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, $languagestringref); # spent 407ms making 1 call to installer::substfilenamefiles::resolving_subst_filename_flag |
| 704 | |||||
| 705 | ##################################### | ||||
| 706 | # Files with flag SCPZIP_REPLACE | ||||
| 707 | ##################################### | ||||
| 708 | |||||
| 709 | 1 | 8µs | 1 | 26µs | installer::logger::print_message( "... analyzing files with flag SCPZIP_REPLACE ...\n" ); # spent 26µs making 1 call to installer::logger::print_message |
| 710 | |||||
| 711 | # Editing files with flag SCPZIP_REPLACE. | ||||
| 712 | |||||
| 713 | 1 | 7µs | 1 | 1.13s | installer::scpzipfiles::resolving_scpzip_replace_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, "File", $languagestringref); # spent 1.13s making 1 call to installer::scpzipfiles::resolving_scpzip_replace_flag |
| 714 | |||||
| 715 | ##################################### | ||||
| 716 | # Files with flag PATCH_SO_NAME | ||||
| 717 | ##################################### | ||||
| 718 | |||||
| 719 | 1 | 7µs | 1 | 21µs | installer::logger::print_message( "... analyzing files with flag PATCH_SO_NAME ...\n" ); # spent 21µs making 1 call to installer::logger::print_message |
| 720 | |||||
| 721 | # Editing files with flag PATCH_SO_NAME. | ||||
| 722 | |||||
| 723 | 1 | 7µs | 1 | 443ms | installer::scppatchsoname::resolving_patchsoname_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, "File", $languagestringref); # spent 443ms making 1 call to installer::scppatchsoname::resolving_patchsoname_flag |
| 724 | |||||
| 725 | ##################################### | ||||
| 726 | # Files with flag HIDDEN | ||||
| 727 | ##################################### | ||||
| 728 | |||||
| 729 | 1 | 8µs | 1 | 26µs | installer::logger::print_message( "... analyzing files with flag HIDDEN ...\n" ); # spent 26µs making 1 call to installer::logger::print_message |
| 730 | |||||
| 731 | 1 | 6µs | 1 | 401ms | installer::worker::resolving_hidden_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, "File", $languagestringref); # spent 401ms making 1 call to installer::worker::resolving_hidden_flag |
| 732 | |||||
| 733 | ############################################ | ||||
| 734 | # Collecting directories for epm list file | ||||
| 735 | ############################################ | ||||
| 736 | |||||
| 737 | 1 | 7µs | 1 | 25µs | installer::logger::print_message( "... analyzing all directories for this product ...\n" ); # spent 25µs making 1 call to installer::logger::print_message |
| 738 | |||||
| 739 | # There are two ways for a directory to be included into the epm directory list: | ||||
| 740 | # 1. Looking for all destination paths in the files array | ||||
| 741 | # 2. Looking for directories with CREATE flag in the directory array | ||||
| 742 | # Advantage: Many paths are hidden in zip files, they are not defined in the setup script. | ||||
| 743 | # It will be possible, that in the setup script only those directoies have to be defined, | ||||
| 744 | # that have a CREATE flag. All other directories are created, if they contain at least one file. | ||||
| 745 | |||||
| 746 | 1 | 8µs | 1 | 2.51s | my ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref); # spent 2.51s making 1 call to installer::scriptitems::collect_directories_from_filesarray |
| 747 | |||||
| 748 | 1 | 982µs | 1 | 102ms | ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_with_create_flag_from_directoryarray($dirsinproductlanguageresolvedarrayref, $alldirectoryhash); # spent 102ms making 1 call to installer::scriptitems::collect_directories_with_create_flag_from_directoryarray |
| 749 | |||||
| 750 | ######################################################### | ||||
| 751 | # language dependent scpactions part | ||||
| 752 | ######################################################### | ||||
| 753 | |||||
| 754 | 1 | 6µs | 1 | 13µs | my $scpactionsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($scpactionsinproductarrayref, $languagesarrayref); # spent 13µs making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 755 | |||||
| 756 | 1 | 5µs | 1 | 7µs | installer::scriptitems::changing_name_of_language_dependent_keys($scpactionsinproductlanguageresolvedarrayref); # spent 7µs making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 757 | |||||
| 758 | 1 | 5µs | 1 | 162µs | installer::scriptitems::get_Source_Directory_For_Files_From_Includepathlist($scpactionsinproductlanguageresolvedarrayref, $includepatharrayref_lang, $dirsinproductlanguageresolvedarrayref, "ScpActions"); # spent 162µs making 1 call to installer::scriptitems::get_Source_Directory_For_Files_From_Includepathlist |
| 759 | |||||
| 760 | # Editing scpactions with flag SCPZIP_REPLACE and PATCH_SO_NAME. | ||||
| 761 | |||||
| 762 | 1 | 7µs | 1 | 289ms | installer::scpzipfiles::resolving_scpzip_replace_flag($scpactionsinproductlanguageresolvedarrayref, $allvariableshashref, "ScpAction", $languagestringref); # spent 289ms making 1 call to installer::scpzipfiles::resolving_scpzip_replace_flag |
| 763 | |||||
| 764 | 1 | 8µs | 1 | 292ms | installer::scppatchsoname::resolving_patchsoname_flag($scpactionsinproductlanguageresolvedarrayref, $allvariableshashref, "ScpAction", $languagestringref); # spent 292ms making 1 call to installer::scppatchsoname::resolving_patchsoname_flag |
| 765 | |||||
| 766 | ######################################################### | ||||
| 767 | # language dependent links part | ||||
| 768 | ######################################################### | ||||
| 769 | |||||
| 770 | 1 | 5µs | 1 | 19µs | installer::logger::print_message( "... analyzing links ...\n" ); # spent 19µs making 1 call to installer::logger::print_message |
| 771 | |||||
| 772 | 1 | 8µs | 1 | 16µs | my $linksinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($linksinproductarrayref, $languagesarrayref); # spent 16µs making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 773 | |||||
| 774 | 1 | 4µs | 1 | 7µs | installer::scriptitems::changing_name_of_language_dependent_keys($linksinproductlanguageresolvedarrayref); # spent 7µs making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 775 | |||||
| 776 | 1 | 6µs | 1 | 13µs | installer::scriptitems::get_destination_file_path_for_links($linksinproductlanguageresolvedarrayref, $filesinproductlanguageresolvedarrayref); # spent 13µs making 1 call to installer::scriptitems::get_destination_file_path_for_links |
| 777 | |||||
| 778 | 1 | 4µs | 1 | 8µs | installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist($linksinproductlanguageresolvedarrayref, $dirsinproductarrayref); # spent 8µs making 1 call to installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist |
| 779 | |||||
| 780 | # Now taking all links that have no FileID but a ShortcutID, linking to another link | ||||
| 781 | |||||
| 782 | 1 | 5µs | 1 | 10µs | installer::scriptitems::get_destination_link_path_for_links($linksinproductlanguageresolvedarrayref); # spent 10µs making 1 call to installer::scriptitems::get_destination_link_path_for_links |
| 783 | |||||
| 784 | 1 | 5µs | 1 | 9µs | $linksinproductlanguageresolvedarrayref = installer::scriptitems::remove_workstation_only_items($linksinproductlanguageresolvedarrayref); # spent 9µs making 1 call to installer::scriptitems::remove_workstation_only_items |
| 785 | |||||
| 786 | 1 | 4µs | 1 | 8µs | installer::scriptitems::resolve_links_with_flag_relative($linksinproductlanguageresolvedarrayref); # spent 8µs making 1 call to installer::scriptitems::resolve_links_with_flag_relative |
| 787 | |||||
| 788 | ######################################################### | ||||
| 789 | # language dependent unix links part | ||||
| 790 | ######################################################### | ||||
| 791 | |||||
| 792 | 1 | 3µs | 1 | 8µs | installer::logger::print_message( "... analyzing unix links ...\n" ); # spent 8µs making 1 call to installer::logger::print_message |
| 793 | |||||
| 794 | 1 | 3µs | 1 | 7µs | my $unixlinksinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($unixlinksinproductarrayref, $languagesarrayref); # spent 7µs making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 795 | |||||
| 796 | 1 | 3µs | 1 | 4µs | installer::scriptitems::changing_name_of_language_dependent_keys($unixlinksinproductlanguageresolvedarrayref); # spent 4µs making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 797 | |||||
| 798 | 1 | 3µs | 1 | 4µs | installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist($unixlinksinproductlanguageresolvedarrayref, $dirsinproductarrayref); # spent 4µs making 1 call to installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist |
| 799 | |||||
| 800 | ######################################################### | ||||
| 801 | # language dependent part for profiles and profileitems | ||||
| 802 | ######################################################### | ||||
| 803 | |||||
| 804 | 1 | 500ns | my $profilesinproductlanguageresolvedarrayref; | ||
| 805 | 1 | 500ns | my $profileitemsinproductlanguageresolvedarrayref; | ||
| 806 | |||||
| 807 | 1 | 12µs | 1 | 4µs | if ((!($installer::globals::is_copy_only_project)) && (!($installer::globals::product =~ /ada/i )) && (!($installer::globals::languagepack)) && (!($installer::globals::helppack))) # spent 4µs making 1 call to installer::CORE:match |
| 808 | { | ||||
| 809 | 1 | 3µs | 1 | 9µs | installer::logger::print_message( "... creating profiles ...\n" ); # spent 9µs making 1 call to installer::logger::print_message |
| 810 | |||||
| 811 | 1 | 4µs | 1 | 62µs | $profilesinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($profilesinproductarrayref, $languagesarrayref); # spent 62µs making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 812 | |||||
| 813 | 1 | 3µs | 1 | 436µs | $profileitemsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($profileitemsinproductarrayref, $languagesarrayref); # spent 436µs making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 814 | |||||
| 815 | 1 | 4µs | 1 | 28µs | installer::scriptitems::changing_name_of_language_dependent_keys($profilesinproductlanguageresolvedarrayref); # spent 28µs making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 816 | |||||
| 817 | 1 | 3µs | 1 | 210µs | installer::scriptitems::changing_name_of_language_dependent_keys($profileitemsinproductlanguageresolvedarrayref); # spent 210µs making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 818 | |||||
| 819 | 1 | 5µs | 1 | 1.40s | installer::scriptitems::replace_setup_variables($profileitemsinproductlanguageresolvedarrayref, $languagestringref, $allvariableshashref); # spent 1.40s making 1 call to installer::scriptitems::replace_setup_variables |
| 820 | |||||
| 821 | 1 | 600ns | if ( $installer::globals::patch_user_dir ) | ||
| 822 | { | ||||
| 823 | installer::scriptitems::replace_userdir_variable($profileitemsinproductlanguageresolvedarrayref); | ||||
| 824 | } | ||||
| 825 | |||||
| 826 | 1 | 8µs | 1 | 471µs | installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist($profilesinproductlanguageresolvedarrayref, $dirsinproductarrayref); # spent 471µs making 1 call to installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist |
| 827 | |||||
| 828 | # Now the Profiles can be created | ||||
| 829 | |||||
| 830 | 1 | 7µs | 1 | 397ms | installer::profiles::create_profiles($profilesinproductlanguageresolvedarrayref, $profileitemsinproductlanguageresolvedarrayref, $filesinproductlanguageresolvedarrayref, $languagestringref, $allvariableshashref); # spent 397ms making 1 call to installer::profiles::create_profiles |
| 831 | } | ||||
| 832 | |||||
| 833 | 1 | 500ns | my $registryitemsinproductlanguageresolvedarrayref; # cannot be defined in the following "if ( $installer::globals::iswindowsbuild )" | ||
| 834 | 1 | 500ns | my $folderinproductlanguageresolvedarrayref; # cannot be defined in the following "if ( $installer::globals::iswindowsbuild )" | ||
| 835 | 1 | 500ns | my $folderitemsinproductlanguageresolvedarrayref; # cannot be defined in the following "if ( $installer::globals::iswindowsbuild )" | ||
| 836 | |||||
| 837 | 1 | 2µs | if ( $installer::globals::iswindowsbuild ) # Windows specific items: Folder, FolderItem, RegistryItem | ||
| 838 | { | ||||
| 839 | ######################################################### | ||||
| 840 | # language dependent part for folder | ||||
| 841 | ######################################################### | ||||
| 842 | |||||
| 843 | 1 | 5µs | 1 | 22µs | installer::logger::print_message( "... analyzing folder ...\n" ); # spent 22µs making 1 call to installer::logger::print_message |
| 844 | |||||
| 845 | 1 | 6µs | 1 | 29µs | $folderinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($folderinproductarrayref, $languagesarrayref); # spent 29µs making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 846 | |||||
| 847 | 1 | 5µs | 1 | 15µs | installer::scriptitems::changing_name_of_language_dependent_keys($folderinproductlanguageresolvedarrayref); # spent 15µs making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 848 | |||||
| 849 | ######################################################### | ||||
| 850 | # language dependent part for folderitems | ||||
| 851 | ######################################################### | ||||
| 852 | |||||
| 853 | 1 | 3µs | 1 | 8µs | installer::logger::print_message( "... analyzing folderitems ...\n" ); # spent 8µs making 1 call to installer::logger::print_message |
| 854 | |||||
| 855 | 1 | 3µs | 1 | 1.40s | $folderitemsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($folderitemsinproductarrayref, $languagesarrayref); # spent 1.40s making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 856 | |||||
| 857 | 1 | 7µs | 1 | 68.0ms | installer::scriptitems::changing_name_of_language_dependent_keys($folderitemsinproductlanguageresolvedarrayref); # spent 68.0ms making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 858 | |||||
| 859 | ######################################################### | ||||
| 860 | # language dependent part for registryitems | ||||
| 861 | ######################################################### | ||||
| 862 | |||||
| 863 | 1 | 7µs | 1 | 23µs | installer::logger::print_message( "... analyzing registryitems ...\n" ); # spent 23µs making 1 call to installer::logger::print_message |
| 864 | |||||
| 865 | 1 | 6µs | 1 | 25.7s | $registryitemsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($registryitemsinproductarrayref, $languagesarrayref); # spent 25.7s making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 866 | |||||
| 867 | 1 | 10µs | 1 | 756ms | installer::scriptitems::changing_name_of_language_dependent_keys($registryitemsinproductlanguageresolvedarrayref); # spent 756ms making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 868 | } | ||||
| 869 | |||||
| 870 | ######################################################### | ||||
| 871 | # language dependent part for modules | ||||
| 872 | ######################################################### | ||||
| 873 | |||||
| 874 | 1 | 1µs | my $modulesinproductlanguageresolvedarrayref; | ||
| 875 | |||||
| 876 | 1 | 3µs | if (!($installer::globals::is_copy_only_project)) | ||
| 877 | { | ||||
| 878 | 1 | 10µs | 1 | 32µs | installer::logger::print_message( "... analyzing modules ...\n" ); # spent 32µs making 1 call to installer::logger::print_message |
| 879 | |||||
| 880 | 1 | 6µs | 1 | 103s | $modulesinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($modulesinproductarrayref, $languagesarrayref); # spent 103s making 1 call to installer::scriptitems::resolving_all_languages_in_productlists |
| 881 | |||||
| 882 | 1 | 4.19ms | 1 | 3.28s | $modulesinproductlanguageresolvedarrayref = installer::scriptitems::remove_not_required_language_modules($modulesinproductlanguageresolvedarrayref, $languagesarrayref); # spent 3.28s making 1 call to installer::scriptitems::remove_not_required_language_modules |
| 883 | |||||
| 884 | 1 | 1.40ms | if ( $installer::globals::analyze_spellcheckerlanguage ) | ||
| 885 | { | ||||
| 886 | 1 | 3.10ms | 1 | 119ms | $modulesinproductlanguageresolvedarrayref = installer::scriptitems::remove_not_required_spellcheckerlanguage_modules($modulesinproductlanguageresolvedarrayref); # spent 119ms making 1 call to installer::scriptitems::remove_not_required_spellcheckerlanguage_modules |
| 887 | |||||
| 888 | 1 | 16µs | 1 | 59.9ms | $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_not_required_spellcheckerlanguage_files($filesinproductlanguageresolvedarrayref); # spent 59.9ms making 1 call to installer::scriptitems::remove_not_required_spellcheckerlanguage_files |
| 889 | } | ||||
| 890 | |||||
| 891 | 1 | 13µs | 1 | 2.30s | installer::scriptitems::changing_name_of_language_dependent_keys($modulesinproductlanguageresolvedarrayref); # spent 2.30s making 1 call to installer::scriptitems::changing_name_of_language_dependent_keys |
| 892 | |||||
| 893 | 1 | 11µs | 1 | 365ms | installer::scriptitems::select_required_language_strings($modulesinproductlanguageresolvedarrayref); # using english strings # spent 365ms making 1 call to installer::scriptitems::select_required_language_strings |
| 894 | |||||
| 895 | } | ||||
| 896 | |||||
| 897 | # Copy-only projects can now start to copy all items File and ScpAction | ||||
| 898 | 1 | 2µs | if ( $installer::globals::is_copy_only_project ) { installer::copyproject::copy_project($filesinproductlanguageresolvedarrayref, $scpactionsinproductlanguageresolvedarrayref, $loggingdir, $languagestringref, $shipinstalldir, $allsettingsarrayref); } | ||
| 899 | |||||
| 900 | # Language pack projects can now start to select the required information | ||||
| 901 | 1 | 1µs | if ( $installer::globals::languagepack ) | ||
| 902 | { | ||||
| 903 | $filesinproductlanguageresolvedarrayref = installer::languagepack::select_language_items($filesinproductlanguageresolvedarrayref, $languagesarrayref, "File"); | ||||
| 904 | $scpactionsinproductlanguageresolvedarrayref = installer::languagepack::select_language_items($scpactionsinproductlanguageresolvedarrayref, $languagesarrayref, "ScpAction"); | ||||
| 905 | $linksinproductlanguageresolvedarrayref = installer::languagepack::select_language_items($linksinproductlanguageresolvedarrayref, $languagesarrayref, "Shortcut"); | ||||
| 906 | $unixlinksinproductlanguageresolvedarrayref = installer::languagepack::select_language_items($unixlinksinproductlanguageresolvedarrayref, $languagesarrayref, "Unixlink"); | ||||
| 907 | @{$folderitemsinproductlanguageresolvedarrayref} = (); # no folderitems in languagepacks | ||||
| 908 | |||||
| 909 | # Collecting the directories again, to include only the language specific directories | ||||
| 910 | ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref); | ||||
| 911 | ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_with_create_flag_from_directoryarray($dirsinproductlanguageresolvedarrayref, $alldirectoryhash); | ||||
| 912 | @$directoriesforepmarrayref = sort { $a->{"HostName"} cmp $b->{"HostName"} } @$directoriesforepmarrayref; | ||||
| 913 | |||||
| 914 | if ( $installer::globals::iswindowsbuild ) | ||||
| 915 | { | ||||
| 916 | $registryitemsinproductlanguageresolvedarrayref = installer::worker::select_langpack_items($registryitemsinproductlanguageresolvedarrayref, "RegistryItem"); | ||||
| 917 | } | ||||
| 918 | |||||
| 919 | } | ||||
| 920 | |||||
| 921 | # Help pack projects can now start to select the required information | ||||
| 922 | 1 | 1µs | if ( $installer::globals::helppack ) | ||
| 923 | { | ||||
| 924 | $filesinproductlanguageresolvedarrayref = installer::helppack::select_help_items($filesinproductlanguageresolvedarrayref, $languagesarrayref, "File"); | ||||
| 925 | $scpactionsinproductlanguageresolvedarrayref = installer::helppack::select_help_items($scpactionsinproductlanguageresolvedarrayref, $languagesarrayref, "ScpAction"); | ||||
| 926 | $linksinproductlanguageresolvedarrayref = installer::helppack::select_help_items($linksinproductlanguageresolvedarrayref, $languagesarrayref, "Shortcut"); | ||||
| 927 | $unixlinksinproductlanguageresolvedarrayref = installer::helppack::select_help_items($unixlinksinproductlanguageresolvedarrayref, $languagesarrayref, "Unixlink"); | ||||
| 928 | @{$folderitemsinproductlanguageresolvedarrayref} = (); # no folderitems in helppacks | ||||
| 929 | |||||
| 930 | # Collecting the directories again, to include only the language specific directories | ||||
| 931 | ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref); | ||||
| 932 | ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_with_create_flag_from_directoryarray($dirsinproductlanguageresolvedarrayref, $alldirectoryhash); | ||||
| 933 | @$directoriesforepmarrayref = sort { $a->{"HostName"} cmp $b->{"HostName"} } @$directoriesforepmarrayref; | ||||
| 934 | |||||
| 935 | if ( $installer::globals::iswindowsbuild ) | ||||
| 936 | { | ||||
| 937 | $registryitemsinproductlanguageresolvedarrayref = installer::worker::select_helppack_items($registryitemsinproductlanguageresolvedarrayref, "RegistryItem"); | ||||
| 938 | } | ||||
| 939 | |||||
| 940 | } | ||||
| 941 | |||||
| 942 | # Collecting all files without flag PATCH (for maintenance reasons) | ||||
| 943 | 1 | 1µs | if ( $installer::globals::patch ) { installer::worker::collect_all_files_without_patch_flag($filesinproductlanguageresolvedarrayref); } | ||
| 944 | |||||
| 945 | # Patch projects can now start to select the required information | ||||
| 946 | 1 | 1µs | if (( $installer::globals::patch ) && (( $installer::globals::issolarispkgbuild ) || ( $installer::globals::iswindowsbuild ))) | ||
| 947 | { | ||||
| 948 | $filesinproductlanguageresolvedarrayref = installer::worker::select_patch_items($filesinproductlanguageresolvedarrayref, "File"); | ||||
| 949 | $scpactionsinproductlanguageresolvedarrayref = installer::worker::select_patch_items($scpactionsinproductlanguageresolvedarrayref, "ScpAction"); | ||||
| 950 | $linksinproductlanguageresolvedarrayref = installer::worker::select_patch_items($linksinproductlanguageresolvedarrayref, "Shortcut"); | ||||
| 951 | $unixlinksinproductlanguageresolvedarrayref = installer::worker::select_patch_items($unixlinksinproductlanguageresolvedarrayref, "Unixlink"); | ||||
| 952 | $folderitemsinproductlanguageresolvedarrayref = installer::worker::select_patch_items($folderitemsinproductlanguageresolvedarrayref, "FolderItem"); | ||||
| 953 | # @{$folderitemsinproductlanguageresolvedarrayref} = (); # no folderitems in languagepacks | ||||
| 954 | |||||
| 955 | if ( $installer::globals::iswindowsbuild ) | ||||
| 956 | { | ||||
| 957 | $registryitemsinproductlanguageresolvedarrayref = installer::worker::select_patch_items_without_name($registryitemsinproductlanguageresolvedarrayref, "RegistryItem"); | ||||
| 958 | |||||
| 959 | installer::worker::prepare_windows_patchfiles($filesinproductlanguageresolvedarrayref, $languagestringref, $allvariableshashref); | ||||
| 960 | |||||
| 961 | # For Windows patches, the directories can now be collected again | ||||
| 962 | ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref); | ||||
| 963 | |||||
| 964 | @$directoriesforepmarrayref = sort { $a->{"HostName"} cmp $b->{"HostName"} } @$directoriesforepmarrayref; | ||||
| 965 | } | ||||
| 966 | } | ||||
| 967 | |||||
| 968 | ######################################################### | ||||
| 969 | # Collecting all scp actions | ||||
| 970 | ######################################################### | ||||
| 971 | |||||
| 972 | 1 | 11µs | 1 | 16µs | installer::worker::collect_scpactions($scpactionsinproductlanguageresolvedarrayref); # spent 16µs making 1 call to installer::worker::collect_scpactions |
| 973 | |||||
| 974 | ########################################################### | ||||
| 975 | # Simple package projects can now start to create the | ||||
| 976 | # installation structure by creating Directories, Files | ||||
| 977 | # Links and ScpActions. This is the last platform | ||||
| 978 | # independent part. | ||||
| 979 | ########################################################### | ||||
| 980 | |||||
| 981 | 1 | 1µs | if ( $installer::globals::is_simple_packager_project ) | ||
| 982 | { | ||||
| 983 | installer::simplepackage::create_simple_package($filesinproductlanguageresolvedarrayref, $directoriesforepmarrayref, $scpactionsinproductlanguageresolvedarrayref, $linksinproductlanguageresolvedarrayref, $unixlinksinproductlanguageresolvedarrayref, $loggingdir, $languagestringref, $shipinstalldir, $allsettingsarrayref, $allvariableshashref, $includepatharrayref); | ||||
| 984 | next; # ! leaving the current loop, because no further packaging required. | ||||
| 985 | } | ||||
| 986 | |||||
| 987 | ########################################################### | ||||
| 988 | # Analyzing the package structure | ||||
| 989 | ########################################################### | ||||
| 990 | |||||
| 991 | 1 | 7µs | 1 | 29µs | installer::logger::print_message( "... analyzing package list ...\n" ); # spent 29µs making 1 call to installer::logger::print_message |
| 992 | |||||
| 993 | 1 | 10µs | 1 | 10.0s | my $packages = installer::packagelist::collectpackages($modulesinproductlanguageresolvedarrayref, $languagesarrayref); # spent 10.0s making 1 call to installer::packagelist::collectpackages |
| 994 | 1 | 6µs | 1 | 13.4ms | installer::packagelist::check_packagelist($packages); # spent 13.4ms making 1 call to installer::packagelist::check_packagelist |
| 995 | |||||
| 996 | 1 | 290µs | 1 | 72.6s | $packages = installer::packagelist::analyze_list($packages, $modulesinproductlanguageresolvedarrayref); # spent 72.6s making 1 call to installer::packagelist::analyze_list |
| 997 | 1 | 9µs | 1 | 23.5s | installer::packagelist::remove_multiple_modules_packages($packages); # spent 23.5s making 1 call to installer::packagelist::remove_multiple_modules_packages |
| 998 | |||||
| 999 | # printing packages content: | ||||
| 1000 | 1 | 14µs | 1 | 202ms | installer::packagelist::log_packages_content($packages); # spent 202ms making 1 call to installer::packagelist::log_packages_content |
| 1001 | 1 | 9µs | 1 | 2.71s | installer::packagelist::create_module_destination_hash($packages, $allvariableshashref); # spent 2.71s making 1 call to installer::packagelist::create_module_destination_hash |
| 1002 | |||||
| 1003 | ################################################# | ||||
| 1004 | # Part 2: The platform dependent part | ||||
| 1005 | ################################################# | ||||
| 1006 | |||||
| 1007 | ################################################# | ||||
| 1008 | # Part 2a: All non-Windows platforms | ||||
| 1009 | ################################################# | ||||
| 1010 | |||||
| 1011 | ######################################################### | ||||
| 1012 | # ... creating epm list file ... | ||||
| 1013 | # Only for non-Windows platforms | ||||
| 1014 | ######################################################### | ||||
| 1015 | |||||
| 1016 | 1 | 1µs | if (!( $installer::globals::iswindowsbuild )) | ||
| 1017 | { | ||||
| 1018 | #################################################### | ||||
| 1019 | # Writing log file before packages are packed | ||||
| 1020 | #################################################### | ||||
| 1021 | |||||
| 1022 | installer::logger::print_message( "... creating log file " . $loggingdir . $installer::globals::logfilename . "\n" ); | ||||
| 1023 | installer::files::save_file($loggingdir . $installer::globals::logfilename, \@installer::globals::logfileinfo); | ||||
| 1024 | |||||
| 1025 | #################################################### | ||||
| 1026 | # Creating directories | ||||
| 1027 | #################################################### | ||||
| 1028 | |||||
| 1029 | if ( $allvariableshashref->{'OOODOWNLOADNAME'} ) { installer::download::set_download_filename($languagestringref, $allvariableshashref); } | ||||
| 1030 | else { installer::download::resolve_variables_in_downloadname($allvariableshashref, "", $languagestringref); } | ||||
| 1031 | |||||
| 1032 | $installdir = installer::worker::create_installation_directory($shipinstalldir, $languagestringref, \$current_install_number); | ||||
| 1033 | |||||
| 1034 | my $listfiledir = installer::systemactions::create_directories("listfile", $languagestringref); | ||||
| 1035 | my $installlogdir = installer::systemactions::create_directory_next_to_directory($installdir, "log"); | ||||
| 1036 | |||||
| 1037 | #################################################### | ||||
| 1038 | # Reading for Solaris all package descriptions | ||||
| 1039 | # from file defined in property PACKAGEMAP | ||||
| 1040 | #################################################### | ||||
| 1041 | |||||
| 1042 | if ( $installer::globals::issolarisbuild ) { installer::epmfile::read_packagemap($allvariableshashref, $includepatharrayref, $languagesarrayref); } | ||||
| 1043 | |||||
| 1044 | ########################################### | ||||
| 1045 | # Checking epm state | ||||
| 1046 | ########################################### | ||||
| 1047 | |||||
| 1048 | my $epmexecutable = ""; | ||||
| 1049 | if ( $installer::globals::call_epm ) | ||||
| 1050 | { | ||||
| 1051 | $epmexecutable = installer::epmfile::find_epm_on_system($includepatharrayref); | ||||
| 1052 | installer::epmfile::set_patch_state($epmexecutable); # setting $installer::globals::is_special_epm | ||||
| 1053 | } | ||||
| 1054 | |||||
| 1055 | # shuffle array to reduce parallel packaging process in pool | ||||
| 1056 | installer::worker::shuffle_array($packages) | ||||
| 1057 | unless $installer::globals::simple; | ||||
| 1058 | |||||
| 1059 | # iterating over all packages | ||||
| 1060 | for my $onepackage ( @{$packages} ) | ||||
| 1061 | { | ||||
| 1062 | # checking, if this is a language pack or a project pack. | ||||
| 1063 | # Creating language packs only, if $installer::globals::languagepack is set. Parameter: -languagepack | ||||
| 1064 | |||||
| 1065 | if ( $installer::globals::languagepack ) { installer::languagepack::replace_languagestring_variable($onepackage, $languagestringref); } | ||||
| 1066 | |||||
| 1067 | # checking, if this is a help pack | ||||
| 1068 | # Creating help packs only, if $installer::globals::helppack is set. Parameter: -helppack | ||||
| 1069 | |||||
| 1070 | if ( $installer::globals::helppack ) { installer::helppack::replace_languagestring_variable($onepackage, $languagestringref); } | ||||
| 1071 | |||||
| 1072 | my $onepackagename = $onepackage->{'module'}; # name of the top module (required) | ||||
| 1073 | |||||
| 1074 | my $shellscriptsfilename = ""; | ||||
| 1075 | if ( $onepackage->{'script'} ) { $shellscriptsfilename = $onepackage->{'script'}; } | ||||
| 1076 | # no scripts for Solaris patches! | ||||
| 1077 | if (( $installer::globals::patch ) && ( $installer::globals::issolarispkgbuild )) { $shellscriptsfilename = ""; } | ||||
| 1078 | |||||
| 1079 | ########################### | ||||
| 1080 | # package name | ||||
| 1081 | ########################### | ||||
| 1082 | |||||
| 1083 | my $packagename = ""; | ||||
| 1084 | |||||
| 1085 | if ( $installer::globals::issolarisbuild ) # only for Solaris | ||||
| 1086 | { | ||||
| 1087 | if ( $onepackage->{'solarispackagename'} ) { $packagename = $onepackage->{'solarispackagename'}; } | ||||
| 1088 | } | ||||
| 1089 | else # not Solaris | ||||
| 1090 | { | ||||
| 1091 | if ( $onepackage->{'packagename'} ) { $packagename = $onepackage->{'packagename'}; } | ||||
| 1092 | } | ||||
| 1093 | |||||
| 1094 | if (!($packagename eq "")) | ||||
| 1095 | { | ||||
| 1096 | installer::packagelist::resolve_packagevariables(\$packagename, $allvariableshashref, 0); | ||||
| 1097 | } | ||||
| 1098 | |||||
| 1099 | # Debian allows no underline in package name | ||||
| 1100 | if ( $installer::globals::debian ) { $packagename =~ s/_/-/g; } | ||||
| 1101 | |||||
| 1102 | #################################################### | ||||
| 1103 | # Header for this package into log file | ||||
| 1104 | #################################################### | ||||
| 1105 | |||||
| 1106 | installer::logger::include_header_into_logfile("Creating package: $packagename"); | ||||
| 1107 | |||||
| 1108 | ########################################### | ||||
| 1109 | # Root path, can be defined as parameter | ||||
| 1110 | ########################################### | ||||
| 1111 | |||||
| 1112 | my $packagerootpath = ""; | ||||
| 1113 | |||||
| 1114 | if ($installer::globals::rootpath eq "") | ||||
| 1115 | { | ||||
| 1116 | $packagerootpath = $onepackage->{'destpath'}; | ||||
| 1117 | installer::packagelist::resolve_packagevariables(\$packagerootpath, $allvariableshashref, 1); | ||||
| 1118 | # we put branding and common stuff into the same prefix on unixes => $packagerootpath must be the whole prefix, including the product name | ||||
| 1119 | if ($installer::globals::isunix) { $packagerootpath .= "/$allvariableshashref->{'UNIXBASISROOTNAME'}"; } | ||||
| 1120 | if ( $^O =~ /darwin/i ) { $packagerootpath =~ s/\/opt\//\/Applications\//; } | ||||
| 1121 | } | ||||
| 1122 | else | ||||
| 1123 | { | ||||
| 1124 | $packagerootpath = $installer::globals::rootpath; | ||||
| 1125 | } | ||||
| 1126 | |||||
| 1127 | ############################################# | ||||
| 1128 | # copying the collectors for each package | ||||
| 1129 | ############################################# | ||||
| 1130 | |||||
| 1131 | my $filesinpackage = installer::converter::copy_collector($filesinproductlanguageresolvedarrayref); | ||||
| 1132 | my $linksinpackage = installer::converter::copy_collector($linksinproductlanguageresolvedarrayref); | ||||
| 1133 | my $unixlinksinpackage = installer::converter::copy_collector($unixlinksinproductlanguageresolvedarrayref); | ||||
| 1134 | my $dirsinpackage = installer::converter::copy_collector($directoriesforepmarrayref); | ||||
| 1135 | |||||
| 1136 | ########################################### | ||||
| 1137 | # setting the root path for the packages | ||||
| 1138 | ########################################### | ||||
| 1139 | |||||
| 1140 | installer::scriptitems::add_rootpath_to_directories($dirsinpackage, $packagerootpath); | ||||
| 1141 | installer::scriptitems::add_rootpath_to_files($filesinpackage, $packagerootpath); | ||||
| 1142 | installer::scriptitems::add_rootpath_to_links($linksinpackage, $packagerootpath); | ||||
| 1143 | installer::scriptitems::add_rootpath_to_files($unixlinksinpackage, $packagerootpath); | ||||
| 1144 | |||||
| 1145 | ################################# | ||||
| 1146 | # collecting items for package | ||||
| 1147 | ################################# | ||||
| 1148 | |||||
| 1149 | $filesinpackage = installer::packagelist::find_files_for_package($filesinpackage, $onepackage); | ||||
| 1150 | $unixlinksinpackage = installer::packagelist::find_files_for_package($unixlinksinpackage, $onepackage); | ||||
| 1151 | $linksinpackage = installer::packagelist::find_links_for_package($linksinpackage, $filesinpackage); | ||||
| 1152 | $dirsinpackage = installer::packagelist::find_dirs_for_package($dirsinpackage, $onepackage); | ||||
| 1153 | |||||
| 1154 | ############################################### | ||||
| 1155 | # nothing to do, if $filesinpackage is empty | ||||
| 1156 | ############################################### | ||||
| 1157 | |||||
| 1158 | if ( ! ( $#{$filesinpackage} > -1 )) | ||||
| 1159 | { | ||||
| 1160 | $infoline = "\n\nNo file in package: $packagename \-\> Skipping\n\n"; | ||||
| 1161 | push(@installer::globals::logfileinfo, $infoline); | ||||
| 1162 | next; # next package, end of loop ! | ||||
| 1163 | } | ||||
| 1164 | |||||
| 1165 | ################################################################# | ||||
| 1166 | # nothing to do for Linux patches, if no file has flag PATCH | ||||
| 1167 | ################################################################# | ||||
| 1168 | |||||
| 1169 | # Linux Patch: The complete RPM has to be built, if one file in the RPM has the flag PATCH (also for DEBs) | ||||
| 1170 | if (( $installer::globals::patch ) && (( $installer::globals::isrpmbuild ) || ( $installer::globals::isdebbuild ))) | ||||
| 1171 | { | ||||
| 1172 | my $patchfiles = installer::worker::collect_all_items_with_special_flag($filesinpackage ,"PATCH"); | ||||
| 1173 | if ( ! ( $#{$patchfiles} > -1 )) | ||||
| 1174 | { | ||||
| 1175 | $infoline = "\n\nLinux Patch: No patch file in package: $packagename \-\> Skipping\n\n"; | ||||
| 1176 | push(@installer::globals::logfileinfo, $infoline); | ||||
| 1177 | next; | ||||
| 1178 | } | ||||
| 1179 | } | ||||
| 1180 | |||||
| 1181 | ########################################### | ||||
| 1182 | # Stripping libraries | ||||
| 1183 | ########################################### | ||||
| 1184 | |||||
| 1185 | # Building for non Windows platforms in cws requires, that all files are stripped before packaging: | ||||
| 1186 | # 1. copy all files that need to be stripped locally | ||||
| 1187 | # 2. strip all these files | ||||
| 1188 | |||||
| 1189 | if ( $installer::globals::strip ) | ||||
| 1190 | { | ||||
| 1191 | strip_libraries($filesinpackage, $languagestringref); | ||||
| 1192 | } | ||||
| 1193 | |||||
| 1194 | if ( $installer::globals::simple ) { | ||||
| 1195 | installer::worker::install_simple($onepackagename, $$languagestringref, $dirsinpackage, $filesinpackage, $linksinpackage, $unixlinksinpackage); | ||||
| 1196 | } | ||||
| 1197 | else { | ||||
| 1198 | # epm list file format: | ||||
| 1199 | # type mode owner group destination source options | ||||
| 1200 | # Example for a file: f 755 root sys /usr/bin/foo foo | ||||
| 1201 | # Example for a directory: d 755 root sys /var/spool/foo - | ||||
| 1202 | # Example for a link: l 000 root sys /usr/bin/linkname filename | ||||
| 1203 | # The source field specifies the file to link to | ||||
| 1204 | |||||
| 1205 | my $epmfilename = "epm_" . $onepackagename . ".lst"; | ||||
| 1206 | |||||
| 1207 | installer::logger::print_message( "... creating epm list file $epmfilename ... \n" ); | ||||
| 1208 | |||||
| 1209 | my $completeepmfilename = $listfiledir . $installer::globals::separator . $epmfilename; | ||||
| 1210 | |||||
| 1211 | my @epmfile = (); | ||||
| 1212 | |||||
| 1213 | my $epmheaderref = installer::epmfile::create_epm_header($allvariableshashref, $filesinproductlanguageresolvedarrayref, $languagesarrayref, $onepackage); | ||||
| 1214 | installer::epmfile::adding_header_to_epm_file(\@epmfile, $epmheaderref); | ||||
| 1215 | |||||
| 1216 | if (( $installer::globals::patch ) && ( $installer::globals::issolarispkgbuild )) | ||||
| 1217 | { | ||||
| 1218 | $filesinpackage = installer::worker::analyze_patch_files($filesinpackage); | ||||
| 1219 | |||||
| 1220 | if ( ! ( $#{$filesinpackage} > -1 )) | ||||
| 1221 | { | ||||
| 1222 | $infoline = "\nNo file in package: $packagename \-\> Skipping\n"; | ||||
| 1223 | push(@installer::globals::logfileinfo, $infoline); | ||||
| 1224 | next; # next package, end of loop ! | ||||
| 1225 | } | ||||
| 1226 | } | ||||
| 1227 | |||||
| 1228 | # adding directories, files and links into epm file | ||||
| 1229 | |||||
| 1230 | installer::epmfile::put_directories_into_epmfile($dirsinpackage, \@epmfile, $allvariableshashref, $packagerootpath); | ||||
| 1231 | installer::epmfile::put_files_into_epmfile($filesinpackage, \@epmfile ); | ||||
| 1232 | installer::epmfile::put_links_into_epmfile($linksinpackage, \@epmfile ); | ||||
| 1233 | installer::epmfile::put_unixlinks_into_epmfile($unixlinksinpackage, \@epmfile ); | ||||
| 1234 | |||||
| 1235 | if ((!( $shellscriptsfilename eq "" )) && (!($installer::globals::iswindowsbuild))) { installer::epmfile::adding_shellscripts_to_epm_file(\@epmfile, $shellscriptsfilename, $packagerootpath, $allvariableshashref, $filesinpackage); } | ||||
| 1236 | |||||
| 1237 | installer::files::save_file($completeepmfilename ,\@epmfile); | ||||
| 1238 | |||||
| 1239 | # ... splitting the rootpath into a relocatable part and a static part, if possible | ||||
| 1240 | |||||
| 1241 | my $staticpath = ""; | ||||
| 1242 | my $relocatablepath = ""; | ||||
| 1243 | # relocatable path can be defined in package list | ||||
| 1244 | if ( $onepackage->{'relocatablepath'} ) { $relocatablepath = $onepackage->{'relocatablepath'}; } | ||||
| 1245 | # setting fix part and variable part of destination path | ||||
| 1246 | installer::epmfile::analyze_rootpath($packagerootpath, \$staticpath, \$relocatablepath, $allvariableshashref); | ||||
| 1247 | |||||
| 1248 | # ... replacing the variable PRODUCTDIRECTORYNAME in the shellscriptfile by $staticpath | ||||
| 1249 | |||||
| 1250 | installer::epmfile::resolve_path_in_epm_list_before_packaging(\@epmfile, $completeepmfilename, "PRODUCTDIRECTORYNAME", $staticpath); | ||||
| 1251 | installer::epmfile::resolve_path_in_epm_list_before_packaging(\@epmfile, $completeepmfilename, "SOLSUREPACKAGEPREFIX", $allvariableshashref->{'SOLSUREPACKAGEPREFIX'}); | ||||
| 1252 | installer::epmfile::resolve_path_in_epm_list_before_packaging(\@epmfile, $completeepmfilename, "UREPACKAGEPREFIX", $allvariableshashref->{'UREPACKAGEPREFIX'}); | ||||
| 1253 | installer::files::save_file($completeepmfilename ,\@epmfile); | ||||
| 1254 | |||||
| 1255 | { | ||||
| 1256 | # changing into the "install" directory to create installation sets | ||||
| 1257 | |||||
| 1258 | $currentdir = cwd(); # $currentdir is global in this file | ||||
| 1259 | |||||
| 1260 | chdir($installdir); # changing into install directory ($installdir is global in this file) | ||||
| 1261 | |||||
| 1262 | ########################################### | ||||
| 1263 | # Starting epm | ||||
| 1264 | ########################################### | ||||
| 1265 | |||||
| 1266 | # With a patched epm, it is now possible to set the relocatable directory, change | ||||
| 1267 | # the directory in which the packages are created, setting "requires" and "provides" | ||||
| 1268 | # (Linux) or creating the "depend" file (Solaris) and finally to begin | ||||
| 1269 | # the packaging process with standard tooling and standard parameter | ||||
| 1270 | # Linux: Adding into the spec file: Prefix: /opt | ||||
| 1271 | # Solaris: Adding into the pkginfo file: BASEDIR=/opt | ||||
| 1272 | # Attention: Changing of the path can influence the shell scripts | ||||
| 1273 | |||||
| 1274 | if (( $installer::globals::is_special_epm ) && ( ($installer::globals::isrpmbuild) || ($installer::globals::issolarispkgbuild) )) # special handling only for Linux RPMs and Solaris Packages | ||||
| 1275 | { | ||||
| 1276 | if ( $installer::globals::call_epm ) # only do something, if epm is really executed | ||||
| 1277 | { | ||||
| 1278 | # ... now epm can be started, to create the installation sets | ||||
| 1279 | |||||
| 1280 | installer::logger::print_message( "... starting patched epm ... \n" ); | ||||
| 1281 | |||||
| 1282 | installer::epmfile::call_epm($epmexecutable, $completeepmfilename, $packagename, $includepatharrayref); | ||||
| 1283 | |||||
| 1284 | my $newepmdir = installer::epmfile::prepare_packages($loggingdir, $packagename, $staticpath, $relocatablepath, $onepackage, $allvariableshashref, $filesinpackage, $languagestringref); # adding the line for Prefix / Basedir, include rpmdir | ||||
| 1285 | |||||
| 1286 | installer::epmfile::create_packages_without_epm($newepmdir, $packagename, $includepatharrayref, $allvariableshashref, $languagestringref); # start to package | ||||
| 1287 | |||||
| 1288 | # finally removing all temporary files | ||||
| 1289 | |||||
| 1290 | installer::epmfile::remove_temporary_epm_files($newepmdir, $loggingdir, $packagename); | ||||
| 1291 | |||||
| 1292 | # Installation: | ||||
| 1293 | # Install: pkgadd -a myAdminfile -d ./SUNWso8m34.pkg | ||||
| 1294 | # Install: rpm -i --prefix=/opt/special --nodeps so8m35.rpm | ||||
| 1295 | |||||
| 1296 | installer::epmfile::create_new_directory_structure($newepmdir); | ||||
| 1297 | $installer::globals::postprocess_specialepm = 1; | ||||
| 1298 | |||||
| 1299 | # solaris patch not needed anymore | ||||
| 1300 | } | ||||
| 1301 | } | ||||
| 1302 | |||||
| 1303 | else # this is the standard epm (not relocatable) or ( nonlinux and nonsolaris ) | ||||
| 1304 | { | ||||
| 1305 | installer::epmfile::resolve_path_in_epm_list_before_packaging(\@epmfile, $completeepmfilename, "\$\$PRODUCTINSTALLLOCATION", $relocatablepath); | ||||
| 1306 | installer::files::save_file($completeepmfilename ,\@epmfile); # Warning for pool, content of epm file is changed. | ||||
| 1307 | |||||
| 1308 | if ( $installer::globals::call_epm ) | ||||
| 1309 | { | ||||
| 1310 | # ... now epm can be started, to create the installation sets | ||||
| 1311 | |||||
| 1312 | installer::logger::print_message( "... starting unpatched epm ... \n" ); | ||||
| 1313 | |||||
| 1314 | if ( $installer::globals::call_epm ) { installer::epmfile::call_epm($epmexecutable, $completeepmfilename, $packagename, $includepatharrayref); } | ||||
| 1315 | |||||
| 1316 | if (($installer::globals::isrpmbuild) || ($installer::globals::issolarispkgbuild) || ($installer::globals::debian)) | ||||
| 1317 | { | ||||
| 1318 | $installer::globals::postprocess_standardepm = 1; | ||||
| 1319 | } | ||||
| 1320 | } | ||||
| 1321 | } | ||||
| 1322 | |||||
| 1323 | chdir($currentdir); # changing back into start directory | ||||
| 1324 | |||||
| 1325 | } | ||||
| 1326 | |||||
| 1327 | } # end of "if ( ! $installer::globals::simple ) | ||||
| 1328 | |||||
| 1329 | } # end of "for ( @{$packages} )" | ||||
| 1330 | |||||
| 1331 | ############################################################## | ||||
| 1332 | # Post epm functionality, after the last package is packed | ||||
| 1333 | ############################################################## | ||||
| 1334 | |||||
| 1335 | if ( $installer::globals::postprocess_specialepm ) | ||||
| 1336 | { | ||||
| 1337 | installer::logger::include_header_into_logfile("Post EPM processes (Patched EPM):"); | ||||
| 1338 | |||||
| 1339 | chdir($installdir); | ||||
| 1340 | |||||
| 1341 | # Copying the cde, kde and gnome packages into the installation set | ||||
| 1342 | if ( $installer::globals::addsystemintegration ) { installer::epmfile::put_systemintegration_into_installset($installer::globals::epmoutpath, $includepatharrayref, $allvariableshashref, $modulesinproductarrayref); } | ||||
| 1343 | |||||
| 1344 | # Adding license and readme into installation set | ||||
| 1345 | if ($installer::globals::addlicensefile) { installer::worker::put_scpactions_into_installset("."); } | ||||
| 1346 | |||||
| 1347 | # Adding license file into setup | ||||
| 1348 | if ( $allvariableshashref->{'PUT_LICENSE_INTO_SETUP'} ) { installer::worker::put_license_into_setup(".", $includepatharrayref); } | ||||
| 1349 | |||||
| 1350 | # Creating installation set for Unix language packs, that are not part of multi lingual installation sets | ||||
| 1351 | if ( ( $installer::globals::languagepack ) && ( ! $installer::globals::debian ) && ( ! $installer::globals::makedownload ) ) { installer::languagepack::build_installer_for_languagepack($installer::globals::epmoutpath, $allvariableshashref, $includepatharrayref, $languagesarrayref, $languagestringref); } | ||||
| 1352 | |||||
| 1353 | # Creating installation set for Unix help packs, that are not part of multi lingual installation sets | ||||
| 1354 | if ( ( $installer::globals::helppack ) && ( ! $installer::globals::debian ) && ( ! $installer::globals::makedownload ) ) { installer::helppack::build_installer_for_helppack($installer::globals::epmoutpath, $allvariableshashref, $includepatharrayref, $languagesarrayref, $languagestringref); } | ||||
| 1355 | |||||
| 1356 | # Finalizing patch installation sets | ||||
| 1357 | if (( $installer::globals::patch ) && ( $installer::globals::issolarispkgbuild )) { installer::epmfile::finalize_patch($installer::globals::epmoutpath, $allvariableshashref); } | ||||
| 1358 | if (( $installer::globals::patch ) && ( $installer::globals::isrpmbuild )) { installer::epmfile::finalize_linux_patch($installer::globals::epmoutpath, $allvariableshashref, $includepatharrayref); } | ||||
| 1359 | |||||
| 1360 | chdir($currentdir); # changing back into start directory | ||||
| 1361 | } | ||||
| 1362 | |||||
| 1363 | if ( $installer::globals::postprocess_standardepm ) | ||||
| 1364 | { | ||||
| 1365 | installer::logger::include_header_into_logfile("Post EPM processes (Standard EPM):"); | ||||
| 1366 | |||||
| 1367 | chdir($installdir); | ||||
| 1368 | |||||
| 1369 | # determine the destination directory | ||||
| 1370 | my $newepmdir = installer::epmfile::determine_installdir_ooo(); | ||||
| 1371 | |||||
| 1372 | # Copying the cde, kde and gnome packages into the installation set | ||||
| 1373 | if ( $installer::globals::addsystemintegration ) { installer::epmfile::put_systemintegration_into_installset($newepmdir, $includepatharrayref, $allvariableshashref, $modulesinproductarrayref); } | ||||
| 1374 | |||||
| 1375 | # Adding license and readme into installation set | ||||
| 1376 | if ($installer::globals::addlicensefile) { installer::worker::put_scpactions_into_installset("."); } | ||||
| 1377 | |||||
| 1378 | # Adding license file into setup | ||||
| 1379 | if ( $allvariableshashref->{'PUT_LICENSE_INTO_SETUP'} ) { installer::worker::put_license_into_setup(".", $includepatharrayref); } | ||||
| 1380 | |||||
| 1381 | # Creating installation set for Unix language packs, that are not part of multi lingual installation sets | ||||
| 1382 | if ( ( $installer::globals::languagepack ) && ( ! $installer::globals::debian ) && ( ! $installer::globals::makedownload ) ) { installer::languagepack::build_installer_for_languagepack($newepmdir, $allvariableshashref, $includepatharrayref, $languagesarrayref, $languagestringref); } | ||||
| 1383 | |||||
| 1384 | # Creating installation set for Unix help packs, that are not part of multi lingual installation sets | ||||
| 1385 | if ( ( $installer::globals::helppack ) && ( ! $installer::globals::debian ) && ( ! $installer::globals::makedownload ) ) { installer::helppack::build_installer_for_helpepack($newepmdir, $allvariableshashref, $includepatharrayref, $languagesarrayref, $languagestringref); } | ||||
| 1386 | |||||
| 1387 | chdir($currentdir); # changing back into start directory | ||||
| 1388 | } | ||||
| 1389 | |||||
| 1390 | if (( $installer::globals::issolarispkgbuild ) && ( $allvariableshashref->{'COLLECT_PKGMAP'} )) { installer::worker::collectpackagemaps($installdir, $languagestringref, $allvariableshashref); } | ||||
| 1391 | |||||
| 1392 | ####################################################### | ||||
| 1393 | # Analyzing the log file | ||||
| 1394 | ####################################################### | ||||
| 1395 | |||||
| 1396 | my $is_success = 0; | ||||
| 1397 | my $finalinstalldir = ""; | ||||
| 1398 | |||||
| 1399 | installer::worker::clean_output_tree(); # removing directories created in the output tree | ||||
| 1400 | ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $installdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number); | ||||
| 1401 | my $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname"); | ||||
| 1402 | |||||
| 1403 | ####################################################### | ||||
| 1404 | # Creating download installation set | ||||
| 1405 | ####################################################### | ||||
| 1406 | |||||
| 1407 | if ( $installer::globals::makedownload ) | ||||
| 1408 | { | ||||
| 1409 | my $create_download = 0; | ||||
| 1410 | if ( $$downloadname ne "" ) { $create_download = 1; } | ||||
| 1411 | if ( $installer::globals::iswindowsbuild ) { $create_download = 0; } | ||||
| 1412 | if (( $is_success ) && ( $create_download ) && ( $ENV{'ENABLE_DOWNLOADSETS'} )) | ||||
| 1413 | { | ||||
| 1414 | my $downloaddir = installer::download::create_download_sets($finalinstalldir, $includepatharrayref, $allvariableshashref, $$downloadname, $languagestringref, $languagesarrayref); | ||||
| 1415 | installer::worker::analyze_and_save_logfile($loggingdir, $downloaddir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number); | ||||
| 1416 | } | ||||
| 1417 | } | ||||
| 1418 | } # end of "if (!( $installer::globals::iswindowsbuild ))" | ||||
| 1419 | |||||
| 1420 | ################################################# | ||||
| 1421 | # Part 2b: The Windows platform | ||||
| 1422 | ################################################# | ||||
| 1423 | |||||
| 1424 | ##################################################################### | ||||
| 1425 | # ... creating idt files ... | ||||
| 1426 | # Only for Windows builds ($installer::globals::compiler is wntmsci) | ||||
| 1427 | ##################################################################### | ||||
| 1428 | |||||
| 1429 | 1 | 2µs | if ( $installer::globals::iswindowsbuild ) | ||
| 1430 | { | ||||
| 1431 | ########################################### | ||||
| 1432 | # Stripping libraries | ||||
| 1433 | ########################################### | ||||
| 1434 | |||||
| 1435 | # Building for gcc build in cws requires, that all files are stripped before packaging: | ||||
| 1436 | # 1. copy all files that need to be stripped locally | ||||
| 1437 | # 2. strip all these files | ||||
| 1438 | |||||
| 1439 | 1 | 14µs | 1 | 5µs | if ( $installer::globals::compiler =~ /wntgcci/ ) # spent 5µs making 1 call to installer::CORE:match |
| 1440 | { | ||||
| 1441 | installer::windows::strip::strip_binaries($filesinproductlanguageresolvedarrayref, $languagestringref); | ||||
| 1442 | } | ||||
| 1443 | |||||
| 1444 | 1 | 11µs | 1 | 548ms | $installdir = installer::worker::create_installation_directory($shipinstalldir, $languagestringref, \$current_install_number); # spent 548ms making 1 call to installer::worker::create_installation_directory |
| 1445 | |||||
| 1446 | 1 | 10µs | 1 | 367ms | my $idtdirbase = installer::systemactions::create_directories("idt_files", $languagestringref); # spent 367ms making 1 call to installer::systemactions::create_directories |
| 1447 | 1 | 5µs | 1 | 361ms | $installer::globals::infodirectory = installer::systemactions::create_directories("info_files", $languagestringref); # spent 361ms making 1 call to installer::systemactions::create_directories |
| 1448 | 1 | 6µs | 1 | 1.11ms | my $installlogdir = installer::systemactions::create_directory_next_to_directory($installdir, "log"); # spent 1.11ms making 1 call to installer::systemactions::create_directory_next_to_directory |
| 1449 | |||||
| 1450 | ################################################################################# | ||||
| 1451 | # Preparing cabinet files from package definitions | ||||
| 1452 | ################################################################################# | ||||
| 1453 | |||||
| 1454 | 1 | 6µs | 1 | 2.70s | installer::packagelist::prepare_cabinet_files($packages, $allvariableshashref); # spent 2.70s making 1 call to installer::packagelist::prepare_cabinet_files |
| 1455 | # printing packages content: | ||||
| 1456 | 1 | 84µs | 1 | 9.15ms | installer::packagelist::log_cabinet_assignments(); # spent 9.15ms making 1 call to installer::packagelist::log_cabinet_assignments |
| 1457 | |||||
| 1458 | ################################################################################# | ||||
| 1459 | # Begin of functions that are used for the creation of idt files (Windows only) | ||||
| 1460 | ################################################################################# | ||||
| 1461 | |||||
| 1462 | 1 | 6µs | 1 | 23µs | installer::logger::print_message( "... creating idt files ...\n" ); # spent 23µs making 1 call to installer::logger::print_message |
| 1463 | |||||
| 1464 | 1 | 3µs | 1 | 108µs | installer::logger::include_header_into_logfile("Creating idt files:"); # spent 108µs making 1 call to installer::logger::include_header_into_logfile |
| 1465 | |||||
| 1466 | 1 | 4µs | my $newidtdir = $idtdirbase . $installer::globals::separator . "00"; # new files into language independent directory "00" | ||
| 1467 | 1 | 5µs | 1 | 947µs | installer::systemactions::create_directory($newidtdir); # spent 947µs making 1 call to installer::systemactions::create_directory |
| 1468 | |||||
| 1469 | 1 | 2µs | my @allfilecomponents = (); | ||
| 1470 | 1 | 500ns | my @allregistrycomponents = (); | ||
| 1471 | |||||
| 1472 | # Collecting all files with flag "BINARYTABLE" | ||||
| 1473 | 1 | 9µs | 1 | 161ms | my $binarytablefiles = installer::worker::collect_all_items_with_special_flag($filesinproductlanguageresolvedarrayref ,"BINARYTABLE"); # spent 161ms making 1 call to installer::worker::collect_all_items_with_special_flag |
| 1474 | |||||
| 1475 | # Removing all files with flag "BINARYTABLE_ONLY" | ||||
| 1476 | 1 | 3µs | @installer::globals::binarytableonlyfiles = (); | ||
| 1477 | 1 | 1.08ms | 1 | 176ms | $filesinproductlanguageresolvedarrayref = installer::worker::remove_all_items_with_special_flag($filesinproductlanguageresolvedarrayref ,"BINARYTABLE_ONLY"); # spent 176ms making 1 call to installer::worker::remove_all_items_with_special_flag |
| 1478 | |||||
| 1479 | # Collecting all profileitems with flag "INIFILETABLE" for table "IniFile" | ||||
| 1480 | 1 | 11µs | 1 | 838µs | my $inifiletableentries = installer::worker::collect_all_items_with_special_flag($profileitemsinproductlanguageresolvedarrayref ,"INIFILETABLE"); # spent 838µs making 1 call to installer::worker::collect_all_items_with_special_flag |
| 1481 | |||||
| 1482 | # Creating the important dynamic idt files | ||||
| 1483 | 1 | 6µs | 1 | 43µs | installer::windows::msiglobal::set_msiproductversion($allvariableshashref); # spent 43µs making 1 call to installer::windows::msiglobal::set_msiproductversion |
| 1484 | 1 | 5µs | 1 | 39.7ms | installer::windows::msiglobal::put_msiproductversion_into_bootstrapfile($filesinproductlanguageresolvedarrayref); # spent 39.7ms making 1 call to installer::windows::msiglobal::put_msiproductversion_into_bootstrapfile |
| 1485 | |||||
| 1486 | # Add cabinet assignments to files | ||||
| 1487 | 1 | 47µs | 1 | 191ms | installer::windows::file::assign_cab_to_files($filesinproductlanguageresolvedarrayref); # spent 191ms making 1 call to installer::windows::file::assign_cab_to_files |
| 1488 | 1 | 207µs | 1 | 226ms | installer::windows::file::assign_sequencenumbers_to_files($filesinproductlanguageresolvedarrayref); # spent 226ms making 1 call to installer::windows::file::assign_sequencenumbers_to_files |
| 1489 | |||||
| 1490 | # Collection all available directory trees | ||||
| 1491 | 1 | 12µs | 1 | 5.87ms | installer::windows::directory::collectdirectorytrees($directoriesforepmarrayref); # spent 5.87ms making 1 call to installer::windows::directory::collectdirectorytrees |
| 1492 | |||||
| 1493 | # Attention: The table "Director.idt" contains language specific strings -> parameter: $languagesarrayref ! | ||||
| 1494 | 1 | 7µs | 1 | -4613s | installer::windows::directory::create_directory_table($directoriesforepmarrayref, $languagesarrayref, $newidtdir, $allvariableshashref, $shortdirname, $loggingdir); # spent - 4613s making 1 call to installer::windows::directory::create_directory_table |
| 1495 | |||||
| 1496 | 1 | 1.18ms | 1 | 69.5s | $filesinproductlanguageresolvedarrayref = installer::windows::file::create_files_table($filesinproductlanguageresolvedarrayref, $directoriesforepmarrayref, \@allfilecomponents, $newidtdir, $allvariableshashref, $uniquefilename, $allupdatesequences, $allupdatecomponents, $allupdatefileorder); # spent 69.5s making 1 call to installer::windows::file::create_files_table |
| 1497 | 1 | 1µs | if ( $installer::globals::updatedatabase ) { installer::windows::file::check_file_sequences($allupdatefileorder, $allupdatecomponentorder); } | ||
| 1498 | |||||
| 1499 | # Attention: The table "Registry.idt" contains language specific strings -> parameter: $languagesarrayref ! | ||||
| 1500 | 1 | 18µs | 1 | 114s | installer::windows::registry::create_registry_table($registryitemsinproductlanguageresolvedarrayref, \@allregistrycomponents, $newidtdir, $languagesarrayref, $allvariableshashref); # spent 114s making 1 call to installer::windows::registry::create_registry_table |
| 1501 | |||||
| 1502 | 1 | 16µs | 1 | -1757s | installer::windows::component::create_component_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, \@allfilecomponents, \@allregistrycomponents, $newidtdir, $componentid, $componentidkeypath, $allvariableshashref); # spent - 1757s making 1 call to installer::windows::component::create_component_table |
| 1503 | |||||
| 1504 | # Attention: The table "Feature.idt" contains language specific strings -> parameter: $languagesarrayref ! | ||||
| 1505 | 1 | 13µs | 1 | 165ms | installer::windows::feature::add_uniquekey($modulesinproductlanguageresolvedarrayref); # spent 165ms making 1 call to installer::windows::feature::add_uniquekey |
| 1506 | 1 | 4.43ms | 1 | -321s | $modulesinproductlanguageresolvedarrayref = installer::windows::feature::sort_feature($modulesinproductlanguageresolvedarrayref); # spent - 321s making 1 call to installer::windows::feature::sort_feature |
| 1507 | 1 | 19µs | 1 | -154s | installer::windows::feature::create_feature_table($modulesinproductlanguageresolvedarrayref, $newidtdir, $languagesarrayref, $allvariableshashref); # spent - 154s making 1 call to installer::windows::feature::create_feature_table |
| 1508 | |||||
| 1509 | 1 | 11µs | 1 | 26.1s | installer::windows::featurecomponent::create_featurecomponent_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $newidtdir); # spent 26.1s making 1 call to installer::windows::featurecomponent::create_featurecomponent_table |
| 1510 | |||||
| 1511 | 1 | 13µs | 1 | 159ms | installer::windows::media::create_media_table($filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref, $allupdatelastsequences, $allupdatediskids); # spent 159ms making 1 call to installer::windows::media::create_media_table |
| 1512 | |||||
| 1513 | 1 | 8µs | 1 | 112ms | installer::windows::font::create_font_table($filesinproductlanguageresolvedarrayref, $newidtdir); # spent 112ms making 1 call to installer::windows::font::create_font_table |
| 1514 | |||||
| 1515 | # Attention: The table "Shortcut.idt" contains language specific strings -> parameter: $languagesarrayref ! | ||||
| 1516 | # Attention: Shortcuts (Folderitems) have icon files, that have to be copied into the Icon directory (last parameter) | ||||
| 1517 | 1 | 2µs | my @iconfilecollector = (); | ||
| 1518 | |||||
| 1519 | 1 | 12µs | 1 | 2.07s | installer::windows::shortcut::create_shortcut_table($filesinproductlanguageresolvedarrayref, $linksinproductlanguageresolvedarrayref, $folderinproductlanguageresolvedarrayref, $folderitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, $newidtdir, $languagesarrayref, $includepatharrayref, \@iconfilecollector); # spent 2.07s making 1 call to installer::windows::shortcut::create_shortcut_table |
| 1520 | |||||
| 1521 | 1 | 9µs | 1 | 521ms | installer::windows::inifile::create_inifile_table($inifiletableentries, $filesinproductlanguageresolvedarrayref, $newidtdir); # spent 521ms making 1 call to installer::windows::inifile::create_inifile_table |
| 1522 | |||||
| 1523 | 1 | 9µs | 1 | 774µs | installer::windows::icon::create_icon_table(\@iconfilecollector, $newidtdir); # creating the icon table with all iconfiles used as shortcuts (FolderItems) # spent 774µs making 1 call to installer::windows::icon::create_icon_table |
| 1524 | |||||
| 1525 | 1 | 9µs | 1 | 163ms | installer::windows::createfolder::create_createfolder_table($directoriesforepmarrayref, $filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref); # spent 163ms making 1 call to installer::windows::createfolder::create_createfolder_table |
| 1526 | |||||
| 1527 | 1 | 8µs | 1 | 765µs | installer::windows::upgrade::create_upgrade_table($newidtdir, $allvariableshashref); # spent 765µs making 1 call to installer::windows::upgrade::create_upgrade_table |
| 1528 | |||||
| 1529 | 1 | 1µs | if (( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) # the following tables not for language packs or help packs | ||
| 1530 | { | ||||
| 1531 | 1 | 8µs | 1 | 5.10ms | installer::windows::removefile::create_removefile_table($folderitemsinproductlanguageresolvedarrayref, $newidtdir); # spent 5.10ms making 1 call to installer::windows::removefile::create_removefile_table |
| 1532 | |||||
| 1533 | # Adding Assemblies into the tables MsiAssembly and MsiAssemblyName dynamically | ||||
| 1534 | 1 | 8µs | 1 | 168ms | installer::windows::assembly::create_msiassembly_table($filesinproductlanguageresolvedarrayref, $newidtdir); # spent 168ms making 1 call to installer::windows::assembly::create_msiassembly_table |
| 1535 | 1 | 7µs | 1 | 1.06ms | installer::windows::assembly::create_msiassemblyname_table($filesinproductlanguageresolvedarrayref, $newidtdir); # spent 1.06ms making 1 call to installer::windows::assembly::create_msiassemblyname_table |
| 1536 | 1 | 6µs | 1 | 1.33s | installer::windows::assembly::add_assembly_condition_into_component_table($filesinproductlanguageresolvedarrayref, $newidtdir); # spent 1.33s making 1 call to installer::windows::assembly::add_assembly_condition_into_component_table |
| 1537 | } | ||||
| 1538 | |||||
| 1539 | 1 | 3µs | $infoline = "\n"; | ||
| 1540 | 1 | 2µs | push(@installer::globals::logfileinfo, $infoline); | ||
| 1541 | |||||
| 1542 | # Localizing the language dependent idt files | ||||
| 1543 | # For every language there will be a localized msi database | ||||
| 1544 | # For multilingual installation sets, the differences of this | ||||
| 1545 | # databases have to be stored in transforms. | ||||
| 1546 | |||||
| 1547 | 1 | 509µs | for ( my $m = 0; $m <= $#{$languagesarrayref}; $m++ ) | ||
| 1548 | { | ||||
| 1549 | 109 | 296µs | my $onelanguage = ${$languagesarrayref}[$m]; | ||
| 1550 | |||||
| 1551 | 109 | 82µs | my $is_rtl = 0; | ||
| 1552 | 109 | 571µs | my @rtllanguages = ("ar", "fa", "he", "ug", "ky-CN"); | ||
| 1553 | 109 | 445µs | if ( grep {$_ eq $onelanguage} @rtllanguages ) { $is_rtl = 1; } | ||
| 1554 | |||||
| 1555 | 109 | 330µs | my $languageidtdir = $idtdirbase . $installer::globals::separator . $onelanguage; | ||
| 1556 | 109 | 22.5ms | 109 | 21.7ms | if ( -d $languageidtdir ) { installer::systemactions::remove_complete_directory($languageidtdir, 1); } # spent 21.7ms making 109 calls to installer::CORE:ftdir, avg 199µs/call |
| 1557 | 109 | 863µs | 109 | 81.8ms | installer::systemactions::create_directory($languageidtdir); # spent 81.8ms making 109 calls to installer::systemactions::create_directory, avg 751µs/call |
| 1558 | |||||
| 1559 | # Copy the template idt files and the new created idt files into this language directory | ||||
| 1560 | |||||
| 1561 | 109 | 583µs | 109 | 2.24ms | installer::logger::print_message( "... copying idt files ...\n" ); # spent 2.24ms making 109 calls to installer::logger::print_message, avg 21µs/call |
| 1562 | |||||
| 1563 | 109 | 535µs | 109 | 21.7ms | installer::logger::include_header_into_logfile("Copying idt files to $languageidtdir:"); # spent 21.7ms making 109 calls to installer::logger::include_header_into_logfile, avg 199µs/call |
| 1564 | |||||
| 1565 | 109 | 951µs | 109 | 26.6s | installer::windows::idtglobal::prepare_language_idt_directory($languageidtdir, $newidtdir, $onelanguage, $filesinproductlanguageresolvedarrayref, \@iconfilecollector, $binarytablefiles, $allvariableshashref); # spent 26.6s making 109 calls to installer::windows::idtglobal::prepare_language_idt_directory, avg 244ms/call |
| 1566 | |||||
| 1567 | # Now all files are copied into a language specific directory | ||||
| 1568 | # The template idt files can be translated | ||||
| 1569 | |||||
| 1570 | 109 | 747µs | 109 | 2.08ms | installer::logger::print_message( "... localizing idt files (language: $onelanguage) ...\n" ); # spent 2.08ms making 109 calls to installer::logger::print_message, avg 19µs/call |
| 1571 | |||||
| 1572 | 109 | 518µs | 109 | 19.8ms | installer::logger::include_header_into_logfile("Localizing idt files (Language: $onelanguage):"); # spent 19.8ms making 109 calls to installer::logger::include_header_into_logfile, avg 182µs/call |
| 1573 | |||||
| 1574 | 109 | 121µs | my @translationfiles = (); # all idt files, that need a translation | ||
| 1575 | 109 | 124µs | push(@translationfiles, "ActionTe.idt"); | ||
| 1576 | 109 | 107µs | push(@translationfiles, "Control.idt"); | ||
| 1577 | 109 | 106µs | push(@translationfiles, "CustomAc.idt"); | ||
| 1578 | 109 | 99µs | push(@translationfiles, "Error.idt"); | ||
| 1579 | 109 | 98µs | push(@translationfiles, "LaunchCo.idt"); | ||
| 1580 | 109 | 95µs | push(@translationfiles, "RadioBut.idt"); | ||
| 1581 | 109 | 104µs | push(@translationfiles, "Property.idt"); | ||
| 1582 | 109 | 99µs | push(@translationfiles, "UIText.idt"); | ||
| 1583 | |||||
| 1584 | 109 | 55µs | my $oneidtfilename; | ||
| 1585 | 109 | 49µs | my $oneidtfile; | ||
| 1586 | |||||
| 1587 | 109 | 242µs | foreach $oneidtfilename (@translationfiles) | ||
| 1588 | { | ||||
| 1589 | 872 | 6.64ms | 872 | 22.6ms | my $languagefilename = installer::windows::idtglobal::get_languagefilename($oneidtfilename, $installer::globals::idtlanguagepath); # spent 22.6ms making 872 calls to installer::windows::idtglobal::get_languagefilename, avg 26µs/call |
| 1590 | 872 | 4.29ms | 872 | 29.6s | my $languagefile = installer::files::read_file($languagefilename); # spent 29.6s making 872 calls to installer::files::read_file, avg 34.0ms/call |
| 1591 | |||||
| 1592 | 872 | 3.41ms | $oneidtfilename = $languageidtdir . $installer::globals::separator . $oneidtfilename; | ||
| 1593 | 872 | 39.8ms | 872 | 635ms | $oneidtfile = installer::files::read_file($oneidtfilename); # spent 635ms making 872 calls to installer::files::read_file, avg 728µs/call |
| 1594 | |||||
| 1595 | # Now the substitution can start | ||||
| 1596 | 872 | 4.70ms | 872 | 4106s | installer::windows::idtglobal::translate_idtfile($oneidtfile, $languagefile, $onelanguage); # spent 4106s making 872 calls to installer::windows::idtglobal::translate_idtfile, avg 4.71s/call |
| 1597 | |||||
| 1598 | 872 | 5.35ms | 872 | 641ms | installer::files::save_file($oneidtfilename, $oneidtfile); # spent 641ms making 872 calls to installer::files::save_file, avg 735µs/call |
| 1599 | |||||
| 1600 | 872 | 3.31ms | $infoline = "Translated idt file: $oneidtfilename into language $onelanguage\n"; | ||
| 1601 | 872 | 1.95ms | push(@installer::globals::logfileinfo, $infoline); | ||
| 1602 | 872 | 1.23ms | $infoline = "Used languagefile: $languagefilename\n"; | ||
| 1603 | 872 | 3.53s | push(@installer::globals::logfileinfo, $infoline); | ||
| 1604 | } | ||||
| 1605 | |||||
| 1606 | # setting the encoding in every table (replacing WINDOWSENCODINGTEMPLATE) | ||||
| 1607 | |||||
| 1608 | 109 | 765µs | 109 | 65.0s | installer::windows::idtglobal::setencoding($languageidtdir, $onelanguage); # spent 65.0s making 109 calls to installer::windows::idtglobal::setencoding, avg 597ms/call |
| 1609 | |||||
| 1610 | # setting bidi attributes, if required | ||||
| 1611 | |||||
| 1612 | 109 | 130µs | 4 | 43.9ms | if ( $is_rtl ) { installer::windows::idtglobal::setbidiattributes($languageidtdir, $onelanguage); } # spent 43.9ms making 4 calls to installer::windows::idtglobal::setbidiattributes, avg 11.0ms/call |
| 1613 | |||||
| 1614 | # setting the encoding in every table (replacing WINDOWSENCODINGTEMPLATE) | ||||
| 1615 | 109 | 785µs | 109 | 358ms | installer::windows::idtglobal::set_multilanguageonly_condition($languageidtdir); # spent 358ms making 109 calls to installer::windows::idtglobal::set_multilanguageonly_condition, avg 3.28ms/call |
| 1616 | |||||
| 1617 | # include the license text into the table Control.idt | ||||
| 1618 | |||||
| 1619 | 109 | 419µs | if ( ! $allvariableshashref->{'HIDELICENSEDIALOG'} ) | ||
| 1620 | { | ||||
| 1621 | my $licensefilesource = installer::windows::idtglobal::get_rtflicensefilesource($onelanguage, $includepatharrayref_lang); | ||||
| 1622 | my $licensefile = installer::files::read_file($licensefilesource); | ||||
| 1623 | installer::scpzipfiles::replace_all_ziplistvariables_in_rtffile($licensefile, $allvariableshashref); | ||||
| 1624 | my $controltablename = $languageidtdir . $installer::globals::separator . "Control.idt"; | ||||
| 1625 | my $controltable = installer::files::read_file($controltablename); | ||||
| 1626 | installer::windows::idtglobal::add_licensefile_to_database($licensefile, $controltable); | ||||
| 1627 | installer::files::save_file($controltablename, $controltable); | ||||
| 1628 | |||||
| 1629 | $infoline = "Added licensefile $licensefilesource into database $controltablename\n"; | ||||
| 1630 | push(@installer::globals::logfileinfo, $infoline); | ||||
| 1631 | } | ||||
| 1632 | |||||
| 1633 | # include a component into environment table if required | ||||
| 1634 | |||||
| 1635 | 109 | 832µs | 109 | 24.1ms | installer::windows::component::set_component_in_environment_table($languageidtdir, $filesinproductlanguageresolvedarrayref); # spent 24.1ms making 109 calls to installer::windows::component::set_component_in_environment_table, avg 221µs/call |
| 1636 | |||||
| 1637 | # include the ProductCode and the UpgradeCode from codes-file into the Property.idt | ||||
| 1638 | |||||
| 1639 | 109 | 726µs | 109 | 166ms | installer::windows::property::set_codes_in_property_table($languageidtdir); # spent 166ms making 109 calls to installer::windows::property::set_codes_in_property_table, avg 1.53ms/call |
| 1640 | |||||
| 1641 | # the language specific properties can now be set in the Property.idt | ||||
| 1642 | |||||
| 1643 | 109 | 641µs | 109 | 423ms | installer::windows::property::update_property_table($languageidtdir, $onelanguage, $allvariableshashref, $languagestringref); # spent 423ms making 109 calls to installer::windows::property::update_property_table, avg 3.88ms/call |
| 1644 | |||||
| 1645 | # replacing variables in RegLocat.idt | ||||
| 1646 | |||||
| 1647 | 109 | 764µs | 109 | 110ms | installer::windows::msiglobal::update_reglocat_table($languageidtdir, $allvariableshashref); # spent 110ms making 109 calls to installer::windows::msiglobal::update_reglocat_table, avg 1.01ms/call |
| 1648 | |||||
| 1649 | # replacing variables in RemoveRe.idt (RemoveRegistry.idt) | ||||
| 1650 | |||||
| 1651 | 109 | 528µs | 109 | 22.0ms | installer::windows::msiglobal::update_removere_table($languageidtdir); # spent 22.0ms making 109 calls to installer::windows::msiglobal::update_removere_table, avg 202µs/call |
| 1652 | |||||
| 1653 | # adding language specific properties for multilingual installation sets | ||||
| 1654 | |||||
| 1655 | 109 | 527µs | 109 | 127ms | installer::windows::property::set_languages_in_property_table($languageidtdir, $languagesarrayref); # spent 127ms making 109 calls to installer::windows::property::set_languages_in_property_table, avg 1.17ms/call |
| 1656 | |||||
| 1657 | # adding settings into CheckBox.idt | ||||
| 1658 | 109 | 511µs | 109 | 768µs | installer::windows::property::update_checkbox_table($languageidtdir, $allvariableshashref); # spent 768µs making 109 calls to installer::windows::property::update_checkbox_table, avg 7µs/call |
| 1659 | |||||
| 1660 | # adding the files from the binary directory into the binary table | ||||
| 1661 | 109 | 601µs | 109 | 107ms | installer::windows::binary::update_binary_table($languageidtdir, $filesinproductlanguageresolvedarrayref, $binarytablefiles); # spent 107ms making 109 calls to installer::windows::binary::update_binary_table, avg 983µs/call |
| 1662 | |||||
| 1663 | # Adding Windows Installer CustomActions | ||||
| 1664 | |||||
| 1665 | 109 | 665µs | 109 | 132s | installer::windows::idtglobal::addcustomactions($languageidtdir, $windowscustomactionsarrayref, $filesinproductlanguageresolvedarrayref); # spent 132s making 109 calls to installer::windows::idtglobal::addcustomactions, avg 1.21s/call |
| 1666 | |||||
| 1667 | # Then the language specific msi database can be created | ||||
| 1668 | |||||
| 1669 | 109 | 5.90ms | if ( $installer::globals::iswin || $installer::globals::packageformat eq 'msi' ) | ||
| 1670 | { | ||||
| 1671 | 109 | 914µs | 109 | 4.86ms | my $msidatabasename = installer::windows::msiglobal::get_msidatabasename($allvariableshashref, $onelanguage); # spent 4.86ms making 109 calls to installer::windows::msiglobal::get_msidatabasename, avg 45µs/call |
| 1672 | 109 | 261µs | my $msifilename = $languageidtdir . $installer::globals::separator . $msidatabasename; | ||
| 1673 | |||||
| 1674 | 109 | 501µs | 109 | 1.88ms | installer::logger::print_message( "... creating msi database (language $onelanguage) ... \n" ); # spent 1.88ms making 109 calls to installer::logger::print_message, avg 17µs/call |
| 1675 | |||||
| 1676 | 109 | 660µs | 109 | 25.6s | installer::windows::msiglobal::set_uuid_into_component_table($languageidtdir, $allvariableshashref); # setting new GUID for the components using the tool uuidgen.exe # spent 25.6s making 109 calls to installer::windows::msiglobal::set_uuid_into_component_table, avg 235ms/call |
| 1677 | 109 | 1.28ms | 109 | 2.12ms | installer::windows::msiglobal::prepare_64bit_database($languageidtdir, $allvariableshashref); # making last 64 bit changes # spent 2.12ms making 109 calls to installer::windows::msiglobal::prepare_64bit_database, avg 19µs/call |
| 1678 | 109 | 493µs | 109 | 230s | installer::windows::msiglobal::create_msi_database($languageidtdir ,$msifilename); # spent 230s making 109 calls to installer::windows::msiglobal::create_msi_database, avg 2.11s/call |
| 1679 | |||||
| 1680 | # validating the database # ToDo | ||||
| 1681 | |||||
| 1682 | 109 | 1.50ms | 109 | 288ms | my $languagefile = installer::files::read_file($installer::globals::idtlanguagepath . $installer::globals::separator . "SIS.mlf"); # spent 288ms making 109 calls to installer::files::read_file, avg 2.64ms/call |
| 1683 | |||||
| 1684 | 109 | 836µs | 109 | 103s | installer::windows::msiglobal::write_summary_into_msi_database($msifilename, $onelanguage, $languagefile, $allvariableshashref); # spent 103s making 109 calls to installer::windows::msiglobal::write_summary_into_msi_database, avg 943ms/call |
| 1685 | |||||
| 1686 | # copy msi database into installation directory | ||||
| 1687 | |||||
| 1688 | 109 | 486µs | my $msidestfilename = $installdir . $installer::globals::separator . $msidatabasename; | ||
| 1689 | 109 | 33.9ms | 109 | 1.31s | installer::systemactions::copy_one_file($msifilename, $msidestfilename); # spent 1.31s making 109 calls to installer::systemactions::copy_one_file, avg 12.0ms/call |
| 1690 | } | ||||
| 1691 | } | ||||
| 1692 | |||||
| 1693 | # Creating transforms, if the installation set has more than one language | ||||
| 1694 | # renaming the msi database | ||||
| 1695 | |||||
| 1696 | 1 | 9µs | 1 | 12µs | my $defaultlanguage = installer::languages::get_default_language($languagesarrayref); # spent 12µs making 1 call to installer::languages::get_default_language |
| 1697 | |||||
| 1698 | 1 | 2µs | if ( $installer::globals::iswin || $installer::globals::packageformat eq 'msi' ) | ||
| 1699 | { | ||||
| 1700 | 1 | 9µs | 1 | 158s | if ( $#{$languagesarrayref} > 0 ) # spent 158s making 1 call to installer::windows::msiglobal::create_transforms |
| 1701 | { | ||||
| 1702 | installer::windows::msiglobal::create_transforms($languagesarrayref, $defaultlanguage, $installdir, $allvariableshashref); | ||||
| 1703 | } | ||||
| 1704 | # if there are Merge Modules, they have to be integrated now | ||||
| 1705 | 1 | 10µs | 1 | 66µs | my $mergedbname = installer::windows::msiglobal::get_msidatabasename($allvariableshashref, $defaultlanguage); # spent 66µs making 1 call to installer::windows::msiglobal::get_msidatabasename |
| 1706 | 1 | 6µs | my $mergeidtdir = $idtdirbase . $installer::globals::separator . "mergemodules"; | ||
| 1707 | 1 | 347µs | 1 | 336µs | if ( -d $mergeidtdir ) { installer::systemactions::remove_complete_directory($mergeidtdir, 1); } # spent 336µs making 1 call to installer::CORE:ftdir |
| 1708 | 1 | 7µs | 1 | 926µs | installer::systemactions::create_directory($mergeidtdir); # spent 926µs making 1 call to installer::systemactions::create_directory |
| 1709 | 1 | 10µs | 1 | 22.0ms | installer::systemactions::copy_one_file($installdir . $installer::globals::separator . $mergedbname, $mergeidtdir . $installer::globals::separator . $mergedbname); # spent 22.0ms making 1 call to installer::systemactions::copy_one_file |
| 1710 | 1 | 16µs | 1 | 101s | $filesinproductlanguageresolvedarrayref = installer::windows::mergemodule::merge_mergemodules_into_msi_database($mergemodulesarrayref, $filesinproductlanguageresolvedarrayref, $mergeidtdir . $installer::globals::separator . $mergedbname, $languagestringref, $allvariableshashref, $includepatharrayref, $allupdatesequences, $allupdatelastsequences, $allupdatediskids); # spent 101s making 1 call to installer::windows::mergemodule::merge_mergemodules_into_msi_database |
| 1711 | 1 | 12µs | 1 | 24.2ms | installer::systemactions::copy_one_file($mergeidtdir . $installer::globals::separator . $mergedbname, $installdir . $installer::globals::separator . $mergedbname); # spent 24.2ms making 1 call to installer::systemactions::copy_one_file |
| 1712 | |||||
| 1713 | 1 | 11µs | 1 | 71.8ms | installer::windows::msiglobal::rename_msi_database_in_installset($defaultlanguage, $installdir, $allvariableshashref); # spent 71.8ms making 1 call to installer::windows::msiglobal::rename_msi_database_in_installset |
| 1714 | } | ||||
| 1715 | |||||
| 1716 | # Analyzing the ScpActions and copying the files into the installation set | ||||
| 1717 | |||||
| 1718 | 1 | 8µs | 1 | 26µs | installer::logger::print_message( "... copying files into installation set ...\n" ); # spent 26µs making 1 call to installer::logger::print_message |
| 1719 | |||||
| 1720 | 1 | 6µs | 1 | 340µs | installer::worker::put_scpactions_into_installset($installdir); # spent 340µs making 1 call to installer::worker::put_scpactions_into_installset |
| 1721 | |||||
| 1722 | # ... copying MergeModules into installation set | ||||
| 1723 | |||||
| 1724 | 1 | 1µs | if ( ! $installer::globals::fix_number_of_cab_files ) { installer::windows::msiglobal::copy_merge_modules_into_installset($installdir); } | ||
| 1725 | |||||
| 1726 | 1 | 3µs | 1 | 10µs | installer::logger::print_message( "... creating ddf files ...\n" ); # spent 10µs making 1 call to installer::logger::print_message |
| 1727 | |||||
| 1728 | # Creating all needed ddf files and generating a list | ||||
| 1729 | # for the package process containing all system calls | ||||
| 1730 | |||||
| 1731 | 1 | 6µs | 1 | 502ms | my $ddfdir = installer::systemactions::create_directories("ddf", $languagestringref); # spent 502ms making 1 call to installer::systemactions::create_directories |
| 1732 | |||||
| 1733 | 1 | 9µs | 1 | 4.15s | my $packjobref = installer::windows::msiglobal::generate_cab_file_list($filesinproductlanguageresolvedarrayref, $installdir, $ddfdir, $allvariableshashref); # spent 4.15s making 1 call to installer::windows::msiglobal::generate_cab_file_list |
| 1734 | |||||
| 1735 | # Update and patch reasons the pack order needs to be saved | ||||
| 1736 | 1 | 6µs | 1 | 712ms | installer::windows::msiglobal::save_packorder(); # spent 712ms making 1 call to installer::windows::msiglobal::save_packorder |
| 1737 | |||||
| 1738 | 1 | 2µs | $infoline = "\n"; | ||
| 1739 | 1 | 3µs | push(@installer::globals::logfileinfo, $infoline); | ||
| 1740 | |||||
| 1741 | #################################### | ||||
| 1742 | # Writing log file | ||||
| 1743 | # before cab files are packed | ||||
| 1744 | #################################### | ||||
| 1745 | |||||
| 1746 | 1 | 10µs | 1 | 24µs | installer::logger::print_message( "... creating log file $installer::globals::logfilename \n" ); # spent 24µs making 1 call to installer::logger::print_message |
| 1747 | |||||
| 1748 | 1 | 9µs | 1 | 37.8ms | installer::files::save_file($loggingdir . $installer::globals::logfilename, \@installer::globals::logfileinfo); # spent 37.8ms making 1 call to installer::files::save_file |
| 1749 | |||||
| 1750 | ####################################################### | ||||
| 1751 | # Finally really create the installation packages, | ||||
| 1752 | # Only for Windows and only on a windows platform. | ||||
| 1753 | ####################################################### | ||||
| 1754 | |||||
| 1755 | 1 | 4µs | if ( $installer::globals::iswin || $installer::globals::packageformat eq 'msi' ) | ||
| 1756 | { | ||||
| 1757 | 1 | 9µs | 1 | 26µs | installer::logger::print_message( "... packaging installation set ... \n" ); # spent 26µs making 1 call to installer::logger::print_message |
| 1758 | 1 | 7µs | 1 | 73.7s | installer::windows::msiglobal::execute_packaging($packjobref, $loggingdir, $allvariableshashref); # spent 73.7s making 1 call to installer::windows::msiglobal::execute_packaging |
| 1759 | 1 | 10µs | 1 | 4.97s | if ( $installer::globals::include_cab_in_msi ) { installer::windows::msiglobal::include_cabs_into_msi($installdir); } # spent 4.97s making 1 call to installer::windows::msiglobal::include_cabs_into_msi |
| 1760 | |||||
| 1761 | #################################### | ||||
| 1762 | # Writing log file | ||||
| 1763 | # after cab files are packed | ||||
| 1764 | #################################### | ||||
| 1765 | |||||
| 1766 | 1 | 11µs | 1 | 30µs | installer::logger::print_message( "\n... creating log file $installer::globals::logfilename \n" ); # spent 30µs making 1 call to installer::logger::print_message |
| 1767 | 1 | 11µs | 1 | 41.5ms | installer::files::save_file($loggingdir . $installer::globals::logfilename, \@installer::globals::logfileinfo); # spent 41.5ms making 1 call to installer::files::save_file |
| 1768 | } | ||||
| 1769 | |||||
| 1770 | ####################################################### | ||||
| 1771 | # Analyzing the log file | ||||
| 1772 | ####################################################### | ||||
| 1773 | |||||
| 1774 | 1 | 3µs | my $is_success = 0; | ||
| 1775 | 1 | 2µs | my $finalinstalldir = ""; | ||
| 1776 | 1 | 9µs | 1 | 7.38s | installer::worker::clean_output_tree(); # removing directories created in the output tree # spent 7.38s making 1 call to installer::worker::clean_output_tree |
| 1777 | 1 | 14µs | 1 | 2.56s | ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $installdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number); # spent 2.56s making 1 call to installer::worker::analyze_and_save_logfile |
| 1778 | |||||
| 1779 | ####################################################### | ||||
| 1780 | # Creating Windows msp patches | ||||
| 1781 | ####################################################### | ||||
| 1782 | |||||
| 1783 | 1 | 1µs | if (( $is_success ) && ( $installer::globals::updatedatabase ) && ( $allvariableshashref->{'CREATE_MSP_INSTALLSET'} )) | ||
| 1784 | { | ||||
| 1785 | # Required: | ||||
| 1786 | # Temp path for administrative installations: $installer::globals::temppath | ||||
| 1787 | # Path of new installation set: $finalinstalldir | ||||
| 1788 | # Path of old installation set: $installer::globals::updatedatabasepath | ||||
| 1789 | my $mspdir = installer::windows::msp::create_msp_patch($finalinstalldir, $includepatharrayref, $allvariableshashref, $languagestringref, $languagesarrayref, $filesinproductlanguageresolvedarrayref); | ||||
| 1790 | ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $mspdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number); | ||||
| 1791 | installer::worker::clean_output_tree(); # removing directories created in the output tree | ||||
| 1792 | } | ||||
| 1793 | |||||
| 1794 | ####################################################### | ||||
| 1795 | # Creating download installation set | ||||
| 1796 | ####################################################### | ||||
| 1797 | |||||
| 1798 | 1 | 1µs | my $create_download = 0; | ||
| 1799 | 1 | 10µs | 1 | 143µs | my $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname"); # spent 143µs making 1 call to installer::ziplist::getinfofromziplist |
| 1800 | 1 | 1µs | if ( $installer::globals::languagepack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "langpackdownloadname"); } | ||
| 1801 | 1 | 500ns | if ( $installer::globals::helppack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "helppackdownloadname"); } | ||
| 1802 | 1 | 600ns | if ( $installer::globals::patch ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "patchdownloadname"); } | ||
| 1803 | |||||
| 1804 | 1 | 2µs | if ( $$downloadname ne "" ) { $create_download = 1; } | ||
| 1805 | 1 | 2µs | if ( $installer::globals::iswindowsbuild ) | ||
| 1806 | { | ||||
| 1807 | 1 | 500ns | $create_download = 0; | ||
| 1808 | 2 | 11µs | 1 | 179µs | if ( $allvariableshashref->{'OOODOWNLOADNAME'} ) { $$downloadname = installer::download::set_download_filename($languagestringref, $allvariableshashref); } # spent 179µs making 1 call to installer::download::set_download_filename |
| 1809 | else { $$downloadname = installer::download::resolve_variables_in_downloadname($allvariableshashref, $$downloadname, $languagestringref); } | ||||
| 1810 | 1 | 10µs | 1 | 8.26ms | installer::systemactions::rename_one_file( $finalinstalldir . $installer::globals::separator . $installer::globals::shortmsidatabasename, $finalinstalldir . $installer::globals::separator . $$downloadname . ".msi" ); # spent 8.26ms making 1 call to installer::systemactions::rename_one_file |
| 1811 | |||||
| 1812 | } | ||||
| 1813 | 1 | 1.47ms | if (( $is_success ) && ( $create_download ) && ( $ENV{'ENABLE_DOWNLOADSETS'} )) | ||
| 1814 | { | ||||
| 1815 | my $downloaddir = installer::download::create_download_sets($finalinstalldir, $includepatharrayref, $allvariableshashref, $$downloadname, $languagestringref, $languagesarrayref); | ||||
| 1816 | installer::worker::analyze_and_save_logfile($loggingdir, $downloaddir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number); | ||||
| 1817 | } | ||||
| 1818 | |||||
| 1819 | } # end of "if ( $installer::globals::iswindowsbuild )" | ||||
| 1820 | |||||
| 1821 | # saving file_info file for later analysis | ||||
| 1822 | 1 | 7µs | my $speciallogfilename = $loggingdir . "fileinfo_" . $installer::globals::product . "\.log"; | ||
| 1823 | 1 | 906µs | 1 | 881µs | open my $log_fh, '>', $speciallogfilename # spent 881µs making 1 call to installer::CORE:open |
| 1824 | or die "Could not open $speciallogfilename for writing: $!"; | ||||
| 1825 | 1 | 369ms | 2 | 2.82s | print $log_fh Dumper($filesinproductlanguageresolvedarrayref); # spent 2.76s making 1 call to Data::Dumper::Dumper
# spent 60.3ms making 1 call to installer::CORE:print |
| 1826 | |||||
| 1827 | } # end of iteration for one language group | ||||
| 1828 | } | ||||
| 1829 | |||||
| 1830 | 1 | 14µs | 1; | ||
# spent 288ms within installer::CORE:backtick which was called:
# once (288ms+0s) by installer::run at line 543 | |||||
sub installer::CORE:ftdir; # opcode | |||||
sub installer::CORE:match; # opcode | |||||
sub installer::CORE:open; # opcode | |||||
sub installer::CORE:print; # opcode | |||||
# spent 14µs within installer::CORE:subst which was called:
# once (14µs+0s) by installer::run at line 556 |