summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
Diffstat (limited to 'solenv')
-rw-r--r--solenv/bin/modules/installer/filelists.pm13
1 files changed, 13 insertions, 0 deletions
diff --git a/solenv/bin/modules/installer/filelists.pm b/solenv/bin/modules/installer/filelists.pm
index 5aa0506df9b2..cd0bae6af5fc 100644
--- a/solenv/bin/modules/installer/filelists.pm
+++ b/solenv/bin/modules/installer/filelists.pm
@@ -8,6 +8,8 @@
package installer::filelists;
+use File::stat;
+
use installer::files;
use installer::globals;
use installer::logger;
@@ -21,12 +23,17 @@ sub resolve_filelist_flag
foreach my $file (@{$files})
{
my $is_filelist = 0;
+ my $use_internal_rights = 0;
if ($file->{'Styles'})
{
if ($file->{'Styles'} =~ /\bFILELIST\b/)
{
$is_filelist = 1;
}
+ if ($file->{'Styles'} =~ /\bUSE_INTERNAL_RIGHTS\b/ && !$installer::globals::iswin)
+ {
+ $use_internal_rights = 1;
+ }
}
if ($is_filelist)
@@ -59,6 +66,12 @@ sub resolve_filelist_flag
$newfile{'filelistname'} = $file->{'Name'};
$newfile{'filelistpath'} = $file->{'sourcepath'};
+ if ($use_internal_rights)
+ {
+ my $st = stat($path);
+ $newfile{'UnixRights'} = sprintf("%o", $st->mode & 0777);
+ }
+
push @newfiles, \%newfile;
}
}