diff options
author | Andre Fischer <af@apache.org> | 2014-02-12 08:14:20 +0000 |
---|---|---|
committer | Andre Fischer <af@apache.org> | 2014-02-12 08:14:20 +0000 |
commit | 40b2568f81c3a7bbcd5864122332aefe345f3ec5 (patch) | |
tree | a47e04e1480aef221a06a8b0b5b083b31c9532af | |
parent | 23b2b0b395537f4b5d0226f9ebb19dc38029ee55 (diff) |
123531: Installer can handle new languages.
Notes
Notes:
ignore: aoo
-rw-r--r-- | solenv/bin/make_installer.pl | 41 | ||||
-rw-r--r-- | solenv/bin/modules/installer/windows/msiglobal.pm | 6 | ||||
-rw-r--r-- | solenv/bin/release_prepare.pl | 36 |
3 files changed, 61 insertions, 22 deletions
diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl index 6731bd0bf1f1..eca442f435b2 100644 --- a/solenv/bin/make_installer.pl +++ b/solenv/bin/make_installer.pl @@ -1711,16 +1711,37 @@ for (;1;last) if ($installer::globals::is_release && $installer::globals::iswindowsbuild) { - $installer::logger::Info->printf("preparing MSI object for source version %s\n", - $installer::globals::source_version); - my $source_version_string = join( - "", - installer::patch::Version::StringToNumberArray($installer::globals::source_version)); - $installer::globals::source_msi = installer::patch::Msi->FindAndCreate( - $installer::globals::source_version, - 0, - $$languagestringref, - $installer::globals::product); + my $releases = installer::patch::ReleasesList::Instance()->{$installer::globals::source_version}; + if ( ! defined $releases) + { + $installer::logger::Info->printf( + "there is no recorded information about previous version %s\n", + $installer::globals::source_version); + $installer::logger::Info->printf(" reverting to non-release build\n"); + $installer::globals::is_release = 0; + } + elsif ( ! defined $releases->{'msi'}->{installer::languages::get_normalized_language($$languagestringref)}) + { + $installer::logger::Info->printf( + "there is no recorded information about language '%s' in previous version %s\n", + $$languagestringref, + $installer::globals::source_version); + $installer::logger::Info->printf(" reverting to non-release build\n"); + $installer::globals::is_release = 0; + } + else + { + $installer::logger::Info->printf("preparing MSI object for source version %s\n", + $installer::globals::source_version); + my $source_version_string = join( + "", + installer::patch::Version::StringToNumberArray($installer::globals::source_version)); + $installer::globals::source_msi = installer::patch::Msi->FindAndCreate( + $installer::globals::source_version, + 0, + $$languagestringref, + $installer::globals::product); + } } ############################################################ diff --git a/solenv/bin/modules/installer/windows/msiglobal.pm b/solenv/bin/modules/installer/windows/msiglobal.pm index 3604a9b9b082..db0791468d76 100644 --- a/solenv/bin/modules/installer/windows/msiglobal.pm +++ b/solenv/bin/modules/installer/windows/msiglobal.pm @@ -1512,7 +1512,11 @@ sub get_source_codes ($) { my ($languagesref) = @_; - if ( ! defined $installer::globals::source_version) + if ( ! $installer::globals::is_release) + { + return (undef, undef); + } + elsif ( ! defined $installer::globals::source_version) { $installer::logger::Lang->printf("no source version defined\n"); return (undef, undef); diff --git a/solenv/bin/release_prepare.pl b/solenv/bin/release_prepare.pl index 432adf22a52b..ca473080df14 100644 --- a/solenv/bin/release_prepare.pl +++ b/solenv/bin/release_prepare.pl @@ -115,17 +115,31 @@ sub ProcessLanguage ($$$$$) $installer::logger::Info->printf("%s\n", $language); $installer::logger::Info->increase_indentation(); - # For every language we need - # 1. have downloadable installation set available (download if missing) - # 2. unpack it to get access to .cab and .msi - # 3. unpack .cab so that msimsp.exe can be run - - installer::patch::InstallationSet::ProvideUnpackedCab( - $version, - $is_current_version, - $language, - $package_format, - $product_name); + if ( ! defined installer::patch::ReleasesList::Instance() + ->{$version} + ->{$package_format} + ->{$language}) + { + $installer::logger::Info->printf( + "there is no recorded information about language '%s' in version '%s'\n", + $language, + $version); + $installer::logger::Info->printf(" skipping\n"); + } + else + { + # For every language we need + # 1. have downloadable installation set available (download if missing) + # 2. unpack it to get access to .cab and .msi + # 3. unpack .cab so that msimsp.exe can be run + + installer::patch::InstallationSet::ProvideUnpackedCab( + $version, + $is_current_version, + $language, + $package_format, + $product_name); + } $installer::logger::Info->decrease_indentation(); } |