|
|
|
@ -4380,13 +4380,21 @@ sub dependence{
|
|
|
|
|
sub lastver{
|
|
|
|
|
my $pack = $_[0]; #имя пакета
|
|
|
|
|
my ($tmp,$name) = split "/", $pack; #имя без категории
|
|
|
|
|
|
|
|
|
|
my $overlays = `emerge --info | grep PORTDIR_OVERLAY`;
|
|
|
|
|
$overlays =~s/PORTDIR_OVERLAY="(.*)"/$1/; chomp $overlays;
|
|
|
|
|
my @overlays;
|
|
|
|
|
foreach(split / /, $overlays){
|
|
|
|
|
push @overlays, $data{'chroot'}."$_/$pack";
|
|
|
|
|
}
|
|
|
|
|
push @overlays, "$data{'chroot'}/usr/portage/$pack";
|
|
|
|
|
|
|
|
|
|
#получим список доступных пакетов с полными путями
|
|
|
|
|
my @lastver;
|
|
|
|
|
if(-e "$data{'chroot'}/usr/portage/$pack"){
|
|
|
|
|
@lastver = `ls -la $data{'chroot'}/usr/portage/$pack/*ebuild`;
|
|
|
|
|
}else{
|
|
|
|
|
@lastver = `ls -la $data{'chroot'}/usr/local/portage/layman/calculate/$pack/*ebuild`;
|
|
|
|
|
}
|
|
|
|
|
foreach(@overlays){
|
|
|
|
|
if(-e $_){
|
|
|
|
|
push (@lastver, `ls -la $_/*ebuild`);
|
|
|
|
|
} }
|
|
|
|
|
|
|
|
|
|
#определим максимальную версию из доступных пакета
|
|
|
|
|
my $ver;
|
|
|
|
@ -4439,11 +4447,13 @@ sub emerge_pretend{
|
|
|
|
|
|
|
|
|
|
@packages = (@{$data{movie_pretend}}, @packages); #объединим со списком зависимых пакетов (дублируя расположим их сверху)
|
|
|
|
|
my $softly; if(!defined $data{addition} && !defined $data{arg}{'unmask'}){$softly = "--softly";}
|
|
|
|
|
#вторая проверка на случай сборки на базе CLS
|
|
|
|
|
foreach(
|
|
|
|
|
`$data{emergerun1} -p --color n @packages $data{emergerun2} $softly 2>&1`,
|
|
|
|
|
`$data{emergerun1} -p --color n -uD world $data{emergerun2} $softly 2>&1`
|
|
|
|
|
){
|
|
|
|
|
|
|
|
|
|
push @check, `$data{emergerun1} -p --color n @packages $data{emergerun2} $softly 2>&1`;
|
|
|
|
|
if(!defined $data{arg}{'unmask'}){
|
|
|
|
|
#вторая проверка на случай сборки на базе CLS
|
|
|
|
|
push @check, `$data{emergerun1} -p --color n -uD world $data{emergerun2} $softly 2>&1`;
|
|
|
|
|
}
|
|
|
|
|
foreach(@check){
|
|
|
|
|
if(m/Error: The above package list contains packages which cannot be/ ||
|
|
|
|
|
m/resulting in a slot conflict:/
|
|
|
|
|
){
|
|
|
|
|