summaryrefslogtreecommitdiffstats
path: root/solenv
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2012-09-24 12:12:33 +0200
committerAndras Timar <atimar@suse.com>2012-09-28 13:37:38 +0200
commit9837e432eae2a40bf67a68440bd236c8ab6a4f61 (patch)
tree38f11501dcc667fe0eb2f3e7469844c98e9ac478 /solenv
parentexplicitly --disable-gtk for Windows and MacOSX (diff)
downloadcore-9837e432eae2a40bf67a68440bd236c8ab6a4f61.tar.gz
core-9837e432eae2a40bf67a68440bd236c8ab6a4f61.zip
fdo#54276 speed up packaging on Windows significantly
See the bug for more details. Change-Id: If77544f2fbec2793b6edb015d9447569c6a4e215 Signed-off-by: Fridrich Strba <fridrich.strba@suse.com>
Diffstat (limited to 'solenv')
-rw-r--r--solenv/bin/make_installer.pl12
-rwxr-xr-xsolenv/bin/modules/installer/windows/mergemodule.pm2
2 files changed, 9 insertions, 5 deletions
diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl
index 06ff6b9d71a4..fb23d97f31f3 100644
--- a/solenv/bin/make_installer.pl
+++ b/solenv/bin/make_installer.pl
@@ -1796,10 +1796,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ )
installer::windows::msiglobal::write_summary_into_msi_database($msifilename, $onelanguage, $languagefile, $allvariableshashref);
- # if there are Merge Modules, they have to be integrated now
- $filesinproductlanguageresolvedarrayref = installer::windows::mergemodule::merge_mergemodules_into_msi_database($mergemodulesarrayref, $filesinproductlanguageresolvedarrayref, $msifilename, $languagestringref, $onelanguage, $languagefile, $allvariableshashref, $includepatharrayref, $allupdatesequences, $allupdatelastsequences, $allupdatediskids);
- if ( $installer::globals::use_packages_for_cabs ) { installer::windows::media::create_media_table($filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref, $allupdatelastsequences, $allupdatediskids); }
-
# copy msi database into installation directory
my $msidestfilename = $installdir . $installer::globals::separator . $msidatabasename;
@@ -1818,6 +1814,14 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ )
{
installer::windows::msiglobal::create_transforms($languagesarrayref, $defaultlanguage, $installdir, $allvariableshashref);
}
+ # if there are Merge Modules, they have to be integrated now
+ my $mergedbname = installer::windows::msiglobal::get_msidatabasename($allvariableshashref, $defaultlanguage);
+ my $mergeidtdir = $idtdirbase . $installer::globals::separator . "mergemodules";
+ if ( -d $mergeidtdir ) { installer::systemactions::remove_complete_directory($mergeidtdir, 1); }
+ installer::systemactions::create_directory($mergeidtdir);
+ installer::systemactions::copy_one_file($installdir . $installer::globals::separator . $mergedbname, $mergeidtdir . $installer::globals::separator . $mergedbname);
+ $filesinproductlanguageresolvedarrayref = installer::windows::mergemodule::merge_mergemodules_into_msi_database($mergemodulesarrayref, $filesinproductlanguageresolvedarrayref, $mergeidtdir . $installer::globals::separator . $mergedbname, $languagestringref, $allvariableshashref, $includepatharrayref, $allupdatesequences, $allupdatelastsequences, $allupdatediskids);
+ installer::systemactions::copy_one_file($mergeidtdir . $installer::globals::separator . $mergedbname, $installdir . $installer::globals::separator . $mergedbname);
installer::windows::msiglobal::rename_msi_database_in_installset($defaultlanguage, $installdir, $allvariableshashref);
}
diff --git a/solenv/bin/modules/installer/windows/mergemodule.pm b/solenv/bin/modules/installer/windows/mergemodule.pm
index bc12e1161bd0..f4e5951150cd 100755
--- a/solenv/bin/modules/installer/windows/mergemodule.pm
+++ b/solenv/bin/modules/installer/windows/mergemodule.pm
@@ -48,7 +48,7 @@ use installer::windows::language;
sub merge_mergemodules_into_msi_database
{
- my ($mergemodules, $filesref, $msifilename, $languagestringref, $language, $languagefile, $allvariables, $includepatharrayref, $allupdatesequences, $allupdatelastsequences, $allupdatediskids) = @_;
+ my ($mergemodules, $filesref, $msifilename, $languagestringref, $allvariables, $includepatharrayref, $allupdatesequences, $allupdatelastsequences, $allupdatediskids) = @_;
my $domerge = 0;
if (( $#{$mergemodules} > -1 ) && ( ! $installer::globals::patch ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) { $domerge = 1; }