|
|
|
@ -3750,8 +3750,15 @@ sub profile{
|
|
|
|
|
#уберем ссылки на несуществующие файлы
|
|
|
|
|
`$data{path} file "$_"`=~m/\`([^']+)'/;
|
|
|
|
|
my $dest = $1;
|
|
|
|
|
#проверяем на существование только абсолютный путь!
|
|
|
|
|
if($dest=~m/^[\/]/ && !-e "$data{'chroot'}$data{scratch_ws}$dest"){next;}
|
|
|
|
|
#проверяем на существование только абсолютный путь
|
|
|
|
|
if($dest=~m/^[\/]/){
|
|
|
|
|
if($data{pass} eq 'install' && $data{scratch_ws}){
|
|
|
|
|
#проверим существование в squash образе
|
|
|
|
|
if(!checksquash($dest)){next;}
|
|
|
|
|
}else{
|
|
|
|
|
#проверим в системе
|
|
|
|
|
if(!-e "$data{'chroot'}$data{scratch_ws}$dest"){next;}
|
|
|
|
|
} }
|
|
|
|
|
#выделим путь из профиля
|
|
|
|
|
my $allocation = $data{'chroot'}.$data{scratch_ws}.substr($_, length($profile));
|
|
|
|
|
#проверим имя файла фрофиля перед переносом в систему
|
|
|
|
@ -6768,6 +6775,15 @@ sub unsquash{
|
|
|
|
|
system("$data{path} unsquashfs -n -d $data{mount}$data{scratch_ws} -f $squash @_ &>/dev/null");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|
# Проверим наличие файла в образе
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|
sub checksquash{
|
|
|
|
|
my $file = $_[0];
|
|
|
|
|
my $squash = "$data{mount}/livecd.squashfs";
|
|
|
|
|
return !system("$data{path} unsquashfs -ls $squash $file | grep -P '^squashfs-root$file' &>/dev/null");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|
# удалим временные файлы
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|