diff options
author | Oliver Tappe | 2009-03-06 17:31:58 +0100 |
---|---|---|
committer | Oliver Tappe | 2009-03-06 17:31:58 +0100 |
commit | 096efb38194c5b662a9466a09a4be4b1fb28a117 (patch) | |
tree | 68d295321f7646af73f07ef57d0c35942558efc7 /installer/OpenSLX/OSSetup/Engine.pm | |
parent | Addons to desktop plugin. (diff) | |
download | core-096efb38194c5b662a9466a09a4be4b1fb28a117.tar.gz core-096efb38194c5b662a9466a09a4be4b1fb28a117.tar.xz core-096efb38194c5b662a9466a09a4be4b1fb28a117.zip |
working at #393:
* moved copying of uclibc-rootfs from stage2 (export) to stage1 (vendor-OS)
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2692 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSSetup/Engine.pm')
-rw-r--r-- | installer/OpenSLX/OSSetup/Engine.pm | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/installer/OpenSLX/OSSetup/Engine.pm b/installer/OpenSLX/OSSetup/Engine.pm index 0feb1ba6..14843f0b 100644 --- a/installer/OpenSLX/OSSetup/Engine.pm +++ b/installer/OpenSLX/OSSetup/Engine.pm @@ -270,6 +270,7 @@ sub installVendorOS ) ); + $self->_copyUclibcRootfs(); $self->_touchVendorOS(); $self->addInstalledVendorOSToConfigDB(); return; @@ -353,6 +354,7 @@ sub cloneVendorOS ); } + $self->_copyUclibcRootfs(); $self->_touchVendorOS(); $self->addInstalledVendorOSToConfigDB(); return; @@ -380,6 +382,7 @@ sub updateVendorOS } ); + $self->_copyUclibcRootfs(); $self->_touchVendorOS(); vlog( 0, @@ -1041,6 +1044,55 @@ sub _touchVendorOS return; } +sub _copyUclibcRootfs +{ + my $self = shift; + + vlog(0, _tr("copying uclibc-rootfs into vendor-OS ...\n")); + + my $targetRoot = $self->{'vendor-os-path'}; + my $target = "$targetRoot/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; + vlog(3, _tr("using exclude-filter:\n%s\n", $exclOpts)); + my $rsyncFH; + my $rsyncCmd + = "rsync -aq --delete-excluded --exclude-from=- $uclibcRootfs/ $target"; + vlog(2, "executing: $rsyncCmd\n"); + # link uClibc from the uclib-rootfs to /lib to make LD_PRELOAD=... working + my $uClibCmd = "ln -sf /opt/openslx/uclib-rootfs/lib/ld-uClibc.so.0"; + $uClibCmd .= " $targetRoot/lib/ld-uClibc.so.0"; + system($uClibCmd); + + 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, $!); + + # write version of uclibc-rootfs original into a file in order to be + # able to check the up-to-date state later (in the config-demuxer) + slxsystem("slxversion >${target}.version"); + + return; +} + sub _createPackager { my $self = shift; |