diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2011-03-08 19:43:29 -0600 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2011-03-08 19:43:29 -0600 |
commit | f0e5895d5baa04826d1884fc4720c6180f2eda04 (patch) | |
tree | d839e9131057f9d1271ec2578d1b370dcb89e032 /solenv/bin/modules/installer/windows/msiglobal.pm | |
parent | 7572bcf0b17da4b37bf4ba834347196567ec3c37 (diff) | |
parent | 853a58836446858b75bf82916272e9fd27a7a892 (diff) |
Merge commit 'ooo/DEV300_m101' into integration/dev300_m101
* commit 'ooo/DEV300_m101': (500 commits)
masterfix DEV300: #i10000# remove hard dep
masterfix DEV300: #i10000# usage of L10N build_type
masterfix DEV300: #i10000# usage of L10N build_type
masterfix DEV300: #i100000# dep. fix
masterfix DEV300: #i10000# removed one hard dep
masterfix DEV300: #i10000# fixed patch handling
masterfix DEV300: #i10000# new configure
DEV300
masterfix DEV300: #i10000# nawk -> awk
l10nmove: adjust repository handling
l10nmove: fixed regex
l10nmove: minor fixes
l10nmove: add l10n repo to gb_REPOS
DEV300 masterfix: gnumake3: subsequenttests requires in environment
ab80: Adding changes of cws mib21, ab77, ab77run2, dr77i to dev300
DEV300 masterfix: #i10000#: windows: more bizare hacks ...
locales34: have a matching configure as well
DEV300
locales34: back out change from autoreconf
gnumake3: JunitTest.mk: bizarre hacks to make it work on windows
...
Conflicts:
configure
configure.in
instsetoo_native/prj/build.lst
instsetoo_native/util/makefile.mk
instsetoo_native/util/openoffice.lst
instsetoo_native/util/pack.lst
ooo.lst
scp2/source/canvas/canvascommons.scp
scp2/source/canvas/mtfrenderer.scp
scp2/source/ooo/common_brand.scp
scp2/source/ooo/directory_ooo.scp
scp2/source/ooo/file_library_ooo.scp
scp2/source/ooo/file_ooo.scp
scp2/source/ooo/makefile.mk
scp2/source/ooo/module_hidden_ooo.scp
scp2/source/ooo/module_langpack.ulf
scp2/source/ooo/ure.scp
scp2/source/python/file_python.scp
scp2/source/sdkoo/sdkoo.scp
scp2/source/templates/module_langpack_accessories_templates.sct
scp2/source/templates/module_langpack_accessories_templates_root.sct
set_soenv.in
soldep/bootstrp/appdef.cxx
soldep/bootstrp/dep.cxx
soldep/bootstrp/hashtbl.cxx
soldep/bootstrp/makefile.mk
soldep/bootstrp/minormk.cxx
soldep/bootstrp/prj.cxx
soldep/bootstrp/prodmap.cxx
soldep/inc/dep.hxx
soldep/inc/minormk.hxx
soldep/inc/prodmap.hxx
soldep/inc/soldep/appdef.hxx
soldep/inc/soldep/connctr.hxx
soldep/inc/soldep/depper.hxx
soldep/inc/soldep/depwin.hxx
soldep/inc/soldep/hashtbl.hxx
soldep/inc/soldep/objwin.hxx
soldep/inc/soldep/prj.hxx
soldep/inc/soldep/sdtresid.hxx
soldep/inc/soldep/soldep.hxx
soldep/inc/soldep/soldlg.hxx
soldep/inc/soldep/tbox.hxx
soldep/prj/d.lst
soldep/source/connctr.cxx
soldep/source/depapp.hxx
soldep/source/depper.cxx
soldep/source/depwin.cxx
soldep/source/makefile.mk
soldep/source/objwin.cxx
soldep/source/soldep.cxx
soldep/source/soldlg.cxx
soldep/source/soldlg.src
soldep/source/tbox.cxx
solenv/bin/build.pl
solenv/bin/cws.pl
solenv/bin/make_installer.pl
solenv/bin/mhids.pl
solenv/bin/modules/CwsConfig.pm
solenv/bin/modules/RepositoryHelper.pm
solenv/bin/modules/installer/regmerge.pm
solenv/bin/modules/installer/scriptitems.pm
solenv/bin/modules/installer/servicesfile.pm
solenv/bin/modules/installer/simplepackage.pm
solenv/bin/modules/installer/substfilenamefiles.pm
solenv/config/ssolar.cmn
solenv/inc/_tg_rslb.mk
solenv/inc/extension_post.mk
solenv/inc/libs.mk
solenv/inc/minor.mk
solenv/inc/postset.mk
solenv/inc/settings.mk
solenv/inc/tg_rslb.mk
solenv/inc/unxlng.mk
solenv/inc/wntmsc.mk
soltools/HIDCompiler/hidclex.l
stlport/prj/d.lst
stlport/systemstlguards/postextstl.h
Diffstat (limited to 'solenv/bin/modules/installer/windows/msiglobal.pm')
-rw-r--r-- | solenv/bin/modules/installer/windows/msiglobal.pm | 110 |
1 files changed, 106 insertions, 4 deletions
diff --git a/solenv/bin/modules/installer/windows/msiglobal.pm b/solenv/bin/modules/installer/windows/msiglobal.pm index 1731c1997af3..07f6b73c9cbc 100644 --- a/solenv/bin/modules/installer/windows/msiglobal.pm +++ b/solenv/bin/modules/installer/windows/msiglobal.pm @@ -788,11 +788,16 @@ sub get_codepage_for_sis sub get_template_for_sis { - my ( $language ) = @_; + my ( $language, $allvariables ) = @_; my $windowslanguage = installer::windows::language::get_windows_language($language); - my $value = "\"Intel;" . $windowslanguage; # adding the Windows language + my $architecture = "Intel"; + + # Adding 256, if this is a 64 bit installation set. + if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $architecture = "x64"; } + + my $value = "\"" . $architecture . ";" . $windowslanguage; # adding the Windows language $value = $value . "\""; # adding ending '"' @@ -930,7 +935,7 @@ sub write_summary_into_msi_database my $msiversion = get_msiversion_for_sis(); my $codepage = get_codepage_for_sis($language); - my $template = get_template_for_sis($language); + my $template = get_template_for_sis($language, $allvariableshashref); my $guid = get_packagecode_for_sis(); my $title = get_title_for_sis($sislanguage,$languagefile, "OOO_SIS_TITLE"); my $author = get_author_for_sis(); @@ -1629,6 +1634,104 @@ sub set_uuid_into_component_table installer::files::save_file($componenttablename, $componenttable); } +######################################################################### +# Adding final 64 properties into msi database, if required. +# RegLocator : +16 in type column to search in 64 bit registry. +# All conditions: "VersionNT" -> "VersionNT64" (several tables). +# Already done: "+256" in Attributes column of table "Component". +# Still following: Setting "x64" instead of "Intel" in Summary +# Information Stream of msi database in "get_template_for_sis". +######################################################################### + +sub prepare_64bit_database +{ + my ($basedir, $allvariables) = @_; + + my $infoline = ""; + + if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) + { + # 1. Beginning with table "RegLocat.idt". Adding "16" to the type. + + my $reglocatfile = ""; + my $reglocatfilename = $basedir . $installer::globals::separator . "RegLocat.idt"; + + if ( -f $reglocatfilename ) + { + my $saving_required = 0; + $reglocatfile = installer::files::read_file($reglocatfilename); + + for ( my $i = 3; $i <= $#{$reglocatfile}; $i++ ) # ignoring the first three lines + { + my $oneline = ${$reglocatfile}[$i]; + + if ( $oneline =~ /^\s*\#/ ) { next; } # this is a comment line + if ( $oneline =~ /^\s*$/ ) { next; } + + if ( $oneline =~ /^\s*(.*?)\t(.*?)\t(.*?)\t(.*?)\t(\d+)\s*$/ ) + { + # Syntax: Signature_ Root Key Name Type + my $sig = $1; + my $root = $2; + my $key = $3; + my $name = $4; + my $type = $5; + + $type = $type + 16; + + my $newline = $sig . "\t" . $root . "\t" . $key . "\t" . $name . "\t" . $type . "\n"; + ${$reglocatfile}[$i] = $newline; + + $saving_required = 1; + } + } + + if ( $saving_required ) + { + # Saving the files + installer::files::save_file($reglocatfilename ,$reglocatfile); + $infoline = "Making idt file 64 bit conform: $reglocatfilename\n"; + push(@installer::globals::logfileinfo, $infoline); + } + } + + # 2. Replacing all occurences of "VersionNT" by "VersionNT64" + + my @versionnt_files = ("Componen.idt", "InstallE.idt", "InstallU.idt", "LaunchCo.idt"); + + foreach my $onefile ( @versionnt_files ) + { + my $fullfilename = $basedir . $installer::globals::separator . $onefile; + + if ( -f $fullfilename ) + { + my $saving_required = 0; + $filecontent = installer::files::read_file($fullfilename); + + for ( my $i = 3; $i <= $#{$filecontent}; $i++ ) # ignoring the first three lines + { + my $oneline = ${$filecontent}[$i]; + + if ( $oneline =~ /\bVersionNT\b/ ) + { + ${$filecontent}[$i] =~ s/\bVersionNT\b/VersionNT64/g; + $saving_required = 1; + } + } + + if ( $saving_required ) + { + # Saving the files + installer::files::save_file($fullfilename ,$filecontent); + $infoline = "Making idt file 64 bit conform: $fullfilename\n"; + push(@installer::globals::logfileinfo, $infoline); + } + } + } + } + +} + ################################################################# # Include all cab files into the msi database. # This works only on Windows @@ -1656,7 +1759,6 @@ sub include_cabs_into_msi $msifilename = installer::converter::make_path_conform($msifilename); # msidb.exe really wants backslashes. (And double escaping because system() expands the string.) - $idtdirbase =~ s/\//\\\\/g; $msifilename =~ s/\//\\\\/g; $extraslash = "\\"; |