summaryrefslogtreecommitdiff
path: root/solenv/bin
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/bin')
-rwxr-xr-xsolenv/bin/deliver.pl24
-rw-r--r--solenv/bin/modules/installer/globals.pm11
-rw-r--r--solenv/bin/modules/installer/windows/idtglobal.pm10
-rw-r--r--solenv/bin/modules/installer/windows/registry.pm35
-rw-r--r--solenv/bin/modules/installer/xpdinstaller.pm16
5 files changed, 77 insertions, 19 deletions
diff --git a/solenv/bin/deliver.pl b/solenv/bin/deliver.pl
index 9db619fe7902..d4d6c9c0bf5a 100755
--- a/solenv/bin/deliver.pl
+++ b/solenv/bin/deliver.pl
@@ -100,7 +100,6 @@ $files_copied = 0; # statistics
$files_unchanged = 0; # statistics
$opt_force = 0; # option force copy
-$opt_minor = 0; # option deliver in minor
$opt_check = 0; # do actually execute any action
$opt_zip = 0; # create an additional zip file
$opt_silent = 0; # be silent, only report errors
@@ -402,7 +401,6 @@ sub parse_options
my $dontdeletecommon = 0;
while ( $arg = shift @ARGV ) {
$arg =~ /^-force$/ and $opt_force = 1 and next;
- $arg =~ /^-minor$/ and $opt_minor = 1 and next;
$arg =~ /^-check$/ and $opt_check = 1 and $opt_verbose = 1 and next;
$arg =~ /^-quiet$/ and $opt_silent = 1 and next;
$arg =~ /^-verbose$/ and $opt_verbose = 1 and next;
@@ -484,14 +482,8 @@ sub init_globals
}
$ext = "";
- if ( ($opt_minor || $updminor) && !$dest ) {
- if ( $updminor ) {
- $ext = "$updminorext";
- }
- else {
- print_error("can't determine UPDMINOR", 0);
- exit(3);
- }
+ if ( ($updminor) && !$dest ) {
+ $ext = "$updminorext";
}
# Do we have common trees?
@@ -669,6 +661,7 @@ sub glob_line
my @file_list = glob($from);
foreach $file ( @file_list ) {
+ next if ( -d $file); # we only copy files, not directories
my ($fname, $dir) = fileparse($file);
my $copy = ($replace) ? $to_dir . $fname : $to . '/' . $fname;
push(@globbed_files, [$file, $copy]);
@@ -1124,7 +1117,7 @@ sub push_on_ziplist
return if ( $opt_check );
# strip $dest from path since we don't want to record it in zip file
if ( $file =~ s#^\Q$dest\E/##o ) {
- if ( $opt_minor ){
+ if ( $updminor ){
# strip minor from path
my $ext = "%_EXT%";
$ext = expand_macros($ext);
@@ -1132,7 +1125,7 @@ sub push_on_ziplist
}
push(@zip_list, $file);
} elsif ( $file =~ s#^\Q$common_dest\E/##o ) {
- if ( $opt_minor ){
+ if ( $updminor ){
# strip minor from path
my $ext = "%_EXT%";
$ext = expand_macros($ext);
@@ -1530,23 +1523,22 @@ sub cleanup_and_die
sub usage
{
my $exit_code = shift;
- print STDERR "Usage:\ndeliver [OPTION]... [DESTINATION-PATH]\n";
+ print STDERR "Usage:\ndeliver [OPTIONS] [DESTINATION-PATH]\n";
print STDERR "Options:\n";
print STDERR " -check just print what would happen, no actual copying of files\n";
print STDERR " -checkdlst be verbose about (possible) d.lst bugs\n";
print STDERR " -delete delete files (undeliver), use with care\n";
print STDERR " -deloutput remove the output tree after copying\n";
- print STDERR " -force copy even if not newer\n";
print STDERR " -dontdeletecommon do not delete common files (for -delete option)\n";
+ print STDERR " -force copy even if not newer\n";
print STDERR " -help print this message\n";
if ( !defined($ENV{GUI}) || $ENV{GUI} ne 'WNT' ) {
print STDERR " -link hard link files into the solver to save disk space\n";
}
- print STDERR " -minor deliver into minor (milestone)\n";
print STDERR " -quiet be quiet, only report errors\n";
print STDERR " -verbose be verbose\n";
print STDERR " -zip additionally create zip files of delivered content\n";
- print STDERR "Option '-zip' and a destination-path are mutually exclusive.\n";
+ print STDERR "Options '-zip' and a destination-path are mutually exclusive.\n";
print STDERR "Options '-check' and '-quiet' are mutually exclusive.\n";
exit($exit_code);
}
diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm
index cde8204972f9..8579e67ed970 100644
--- a/solenv/bin/modules/installer/globals.pm
+++ b/solenv/bin/modules/installer/globals.pm
@@ -82,8 +82,15 @@ BEGIN
"dgo",
"kok",
"mni",
- "sat"
-
+ "sat",
+ "ug",
+ "om",
+ "si",
+ "or",
+ "oc",
+ "ml",
+ "as",
+ "ast"
);
@items_at_modules = ("Files", "Dirs", "Unixlinks");
@asianlanguages = ("ja", "ko", "zh-CN", "zh-TW");
diff --git a/solenv/bin/modules/installer/windows/idtglobal.pm b/solenv/bin/modules/installer/windows/idtglobal.pm
index 991f0025e714..e9ad0c73d249 100644
--- a/solenv/bin/modules/installer/windows/idtglobal.pm
+++ b/solenv/bin/modules/installer/windows/idtglobal.pm
@@ -484,6 +484,16 @@ sub write_idt_header
push(@{$idtref}, $oneline);
}
+ if ( $definestring eq "reg64" )
+ {
+ $oneline = "Registry\tRoot\tKey\tName\tValue\tComponent_\n";
+ push(@{$idtref}, $oneline);
+ $oneline = "s72\ti2\tl255\tL255\tL0\ts72\n";
+ push(@{$idtref}, $oneline);
+ $oneline = "Reg64\tRegistry\n";
+ push(@{$idtref}, $oneline);
+ }
+
if ( $definestring eq "createfolder" )
{
$oneline = "Directory_\tComponent_\n";
diff --git a/solenv/bin/modules/installer/windows/registry.pm b/solenv/bin/modules/installer/windows/registry.pm
index 832fd213a9f0..9f9da9485677 100644
--- a/solenv/bin/modules/installer/windows/registry.pm
+++ b/solenv/bin/modules/installer/windows/registry.pm
@@ -216,6 +216,27 @@ sub get_registry_value
}
##############################################################
+# Returning 64 bit value for registry table.
+##############################################################
+
+sub get_registry_val64
+{
+ my ($registry, $allvariableshashref) = @_;
+
+ my $value = "";
+
+ if ( $registry->{'Val64'} ) { $value = $registry->{'Val64'}; }
+
+ $value =~ s/\\\"/\"/g; # no more masquerading of '"'
+ $value =~ s/\<progpath\>/\[OFFICEINSTALLLOCATION\]/;
+ $value =~ s/\[OFFICEINSTALLLOCATION\]\\/\[OFFICEINSTALLLOCATION\]/; # removing "\" after "[OFFICEINSTALLLOCATION]"
+
+ if ( $value =~ /\%/ ) { $value = installer::worker::replace_variables_in_string($value, $allvariableshashref); }
+
+ return $value;
+}
+
+##############################################################
# Returning component for registry table.
##############################################################
@@ -286,8 +307,10 @@ sub create_registry_table
my $onelanguage = ${$languagesarrayref}[$m];
my @registrytable = ();
+ my @reg64table = ();
installer::windows::idtglobal::write_idt_header(\@registrytable, "registry");
+ installer::windows::idtglobal::write_idt_header(\@reg64table, "reg64");
for ( my $i = 0; $i <= $#{$registryref}; $i++ )
{
@@ -306,6 +329,7 @@ sub create_registry_table
$registry{'Key'} = get_registry_key($oneregistry, $allvariableshashref);
$registry{'Name'} = get_registry_name($oneregistry, $allvariableshashref);
$registry{'Value'} = get_registry_value($oneregistry, $allvariableshashref);
+ $registry{'Val64'} = get_registry_val64($oneregistry, $allvariableshashref);
$registry{'Component_'} = get_registry_component($oneregistry, $allvariableshashref);
# Collecting all components
@@ -343,7 +367,11 @@ sub create_registry_table
my $oneline = $registry{'Registry'} . "\t" . $registry{'Root'} . "\t" . $registry{'Key'} . "\t"
. $registry{'Name'} . "\t" . $registry{'Value'} . "\t" . $registry{'Component_'} . "\n";
- push(@registrytable, $oneline);
+ my $oneline64 = $registry{'Registry'} . "\t" . $registry{'Root'} . "\t" . $registry{'Key'} . "\t"
+ . $registry{'Name'} . "\t" . $registry{'Val64'} . "\t" . $registry{'Component_'} . "\n";
+
+ if ( ! ( $style =~ /\bX64_ONLY\b/ )) { push(@registrytable, $oneline); } # standard registry table for 32 Bit
+ if (( $style =~ /\bX64\b/ ) || ( $style =~ /\bX64_ONLY\b/ )) { push(@reg64table , $oneline64); }
}
# If there are added user registry keys for files collected in
@@ -360,6 +388,11 @@ sub create_registry_table
installer::files::save_file($registrytablename ,\@registrytable);
my $infoline = "Created idt file: $registrytablename\n";
push(@installer::globals::logfileinfo, $infoline);
+
+ $registrytablename = $basedir . $installer::globals::separator . "Reg64.idt" . "." . $onelanguage;
+ installer::files::save_file($registrytablename ,\@reg64table );
+ my $infoline = "Created idt file: $registrytablename\n";
+ push(@installer::globals::logfileinfo, $infoline);
}
}
diff --git a/solenv/bin/modules/installer/xpdinstaller.pm b/solenv/bin/modules/installer/xpdinstaller.pm
index f18853dbdcdd..e81380807a87 100644
--- a/solenv/bin/modules/installer/xpdinstaller.pm
+++ b/solenv/bin/modules/installer/xpdinstaller.pm
@@ -449,6 +449,21 @@ sub get_forceintoupdate_value
}
###################################################
+# Substituting all occurences of "<" by "&lt;"
+# and all occurences of ">" by "&gt;"
+###################################################
+
+sub replace_brackets_in_string
+{
+ my ( $string ) = @_;
+
+ if ( $string =~ /\</ ) { $string =~ s/\</\&lt\;/g; }
+ if ( $string =~ /\>/ ) { $string =~ s/\>/\&gt\;/g; }
+
+ return $string;
+}
+
+###################################################
# Substituting all occurences of "\uUXYZ" by
# "&#xUXYZ;", because the use xml saxparser does
# not know anything about this encoding. Therfore
@@ -506,6 +521,7 @@ sub collect_lang_values
if ( $write_line )
{
my $value = $module->{$key};
+ $value = replace_brackets_in_string($value);
$value = replace_javaencoding_in_string($value);
my $line = $indent . "<" . $saveentry . " lang=" . "\"" . $javalanguage . "\"" . ">" . $value . "<\/" . $saveentry . ">" . "\n";
push(@{$xpdfile}, $line);