From f6091ada5b293fe64e1dd6c6959189e0b8e4d1fa Mon Sep 17 00:00:00 2001 From: Michael Janczyk Date: Mon, 17 Dec 2012 17:56:22 +0100 Subject: Follow links in modprobe.d when copying to stage3. Minor version change, because of ne feautres --- src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm | 41 ++++++++++++++++------- 1 file changed, 28 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm index 1eb91e88..e539ddd4 100644 --- a/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm +++ b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm @@ -319,8 +319,9 @@ sub _copyKernelModules if (-e $firmwareSource){ my $targetDir = dirname("$self->{'build-path'}/lib/firmware/" . "$firmwareToBeCopied"); - $self->addCMD("mkdir -p $targetDir; \ - cp -pr --dereference $firmwareSource $targetDir"); + vlog(5,"Trying to make directory: $targetDir"); + $self->addCMD("mkdir -p $targetDir"); + $self->addCMD("cp -pr $firmwareSource $targetDir"); } else { vlog(3,"unable to find $firmwareSource for copying purposes"); } @@ -328,8 +329,9 @@ sub _copyKernelModules if (-e $kernelFWSource){ my $targetDir = dirname("$self->{'build-path'}/lib/firmware/" . "$self->{'kernel-version'}/$firmwareToBeCopied"); - $self->addCMD("mkdir -p $targetDir; \ - cp -pr --dereference $kernelFWSource $targetDir"); + vlog(5,"Trying to make directory: $targetDir"); + $self->addCMD("mkdir -p $targetDir"); + $self->addCMD("cp -pr $kernelFWSource $targetDir"); } else { vlog(3,"unable to find $kernelFWSource for copying purposes"); } @@ -341,10 +343,10 @@ sub _copyKernelModules "$self->{'root-path'}$moduleToBeCopied", $self->{'root-path'} ); my $target = "$self->{'build-path'}$moduleToBeCopied"; - my ($targetdir) = $target =~m/(.*\/).*$/; - vlog(5,"Trying to make directory: $targetdir"); - $self->addCMD("mkdir -p $targetdir"); - $self->addCMD("cp -p --dereference $source $target"); + my ($targetDir) = $target =~m/(.*\/).*$/; + vlog(5,"Trying to make directory: $targetDir"); + $self->addCMD("mkdir -p $targetDir"); + $self->addCMD("cp -p $source $target"); } return; @@ -353,11 +355,24 @@ sub _copyKernelModules sub _copyModprobeD { my $self = shift; - - my $source = "$self->{'root-path'}/etc/modprobe.d"; - my $target = "$self->{'build-path'}/etc"; - $self->addCMD("cp -pr --dereference $source $target"); - + my $target = "$self->{'build-path'}/etc/modprobe.d"; + + opendir my $modprobeDir, "$self->{'root-path'}/etc/modprobe.d" + or die "Cannot open directory: $!"; + my @modprobeFiles = readdir $modprobeDir; + closedir $modprobeDir; + + vlog(5,"Trying to make directory: $target"); + $self->addCMD("mkdir -p $target"); + foreach my $modprobeConf (@modprobeFiles) { + # ignore files beginning with '.' + next if ($modprobeConf =~ m/^\./); + my $source = followLink( + "$self->{'root-path'}/etc/modprobe.d/$modprobeConf", + $self->{'root-path'} + ); + $self->addCMD("cp -pr $source $target"); + } return; } -- cgit v1.2.3-55-g7522