diff options
Diffstat (limited to 'installer/OpenSLX/OSExport/FileSystem/NFS.pm')
-rw-r--r-- | installer/OpenSLX/OSExport/FileSystem/NFS.pm | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/installer/OpenSLX/OSExport/FileSystem/NFS.pm b/installer/OpenSLX/OSExport/FileSystem/NFS.pm index e034b127..86f7c128 100644 --- a/installer/OpenSLX/OSExport/FileSystem/NFS.pm +++ b/installer/OpenSLX/OSExport/FileSystem/NFS.pm @@ -61,7 +61,7 @@ sub exportVendorOS } $self->_copyViaRsync($source, $target); - + $self->_copyUclibEnv($target); return; } @@ -234,5 +234,42 @@ sub _isTargetBindMounted return 0; } +sub _copyUclibEnv +{ + my $self = shift; + my $target = shift; + + $target .= "/opt/openslx/uclib-rootfs"; + + if (system("mkdir -p $target")) { + die _tr("unable to create directory '%s', giving up! (%s)\n", + $target, $!); + } + + my $uclibcRootfs = "$openslxConfig{'base-path'}/share/uclib-rootfs"; + my @excludes = qw( + dialog + kexec + libcurses.so* + libncurses.so* + mconf + strace + ); + my $exclOpts = join ' ', map { "--exclude $_" } @excludes; + my $includeExcludeList = $self->_determineIncludeExcludeList(); + vlog(1, _tr("using exclude-filter:\n%s\n", $exclOpts)); + my $rsyncFH; + my $rsyncCmd + = "rsync -av --delete-excluded --exclude-from=-" . " $uclibcRootfs/ $target"; + vlog(2, "executing: $rsyncCmd\n"); + open($rsyncFH, '|-', $rsyncCmd) + or die _tr("unable to start rsync for source '%s', giving up! (%s)", + $uclibcRootfs, $!); + print $rsyncFH $exclOpts; + close($rsyncFH) + or die _tr("unable to copy to target '%s', giving up! (%s)", + $target, $!); + return; +} 1; |