@ -57,6 +57,9 @@ if(defined $data{arg}{'vars'}){
#Сгенерируем новый initrd
}elsif(defined $data{arg}{'initrd'}){
initrd();
#Размаскируем пакеты
}elsif(defined $data{arg}{'unmask'}){
autounmask();
#Установим по необходимости видеодрайвер
}elsif(defined $data{arg}{'video'}){
video();
@ -289,6 +292,7 @@ sub getarg{
"V" => '', "version" => '',
"translate" => '',
"initrd" => '',
"unmask" => '',
"video" => '',
"chroot" => '',
"nodie" => '', #выводить минимум информации показывая неверно завершенную работу
@ -484,6 +488,9 @@ sub getarg{
if(defined $data{arg}{'initrd'}){
$data{CHECKSYSTEM_NOMES}++;
}
if(defined $data{arg}{'unmask'}){
$data{CHECKSYSTEM_NOMES}++;
}
if(defined $data{arg}{'video'}){
$data{CHECKSYSTEM_NOMES}++;
}
@ -565,10 +572,8 @@ sub getarg{
return "";
}elsif(defined $data{arg}{V} || defined $data{arg}{version}){
printmes("Copyright (C) 2006-2008 Calculate Pack \n");
printmes("Copyright (C) 2006-2009 Mir Calculate Ltd. \n");
printmes(gettext('This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.')); printmes ("\n");
printmes(gettext('Written by')); printmes(" Alexander Tratsevsky\n");
return "";
}elsif(defined $data{arg}{chroot}){
#выполним сложные команды из chroot-окружения
@ -741,7 +746,9 @@ sub checkerrors{
$data{mount} = "/mnt/builder";
} }
if(!$data{createiso}){
if(defined $data{arg}{'unmask'}){
$data{'chroot'} = '';
}elsif(!$data{createiso}){
$data{'chroot'} = $data{mount};
}else{
$data{'chroot'} = "$data{tmpdir}/livecd";
@ -866,13 +873,16 @@ sub welcome{
!defined $data{arg}{'userpasswd'} &&
!defined $data{arg}{'groupadd'} &&
!defined $data{arg}{'groupdel'} &&
!defined $data{arg}{'groupmod'}
!defined $data{arg}{'groupmod'} &&
# !defined $data{arg}{'mailuseradd'} &&
# !defined $data{arg}{'mailuserdel'} &&
# !defined $data{arg}{'mailuserpasswd'}
# &&
# !defined $data{arg}{'mailgroupadd'} &&
# !defined $data{arg}{'mailgroupdel'}
!defined $data{arg}{'initrd'} &&
!defined $data{arg}{'unmask'}
){
printmes(gettext('Installation'));
printmes(" $data{calculatename} $data{'calculatesubname'}\n");
@ -1929,7 +1939,9 @@ sub checksystem{
# Определим диск для установки
# $data{rootinstall}
#----------------------------------------------------------------------
if(!$data{arg}{'profile'} && !$data{builder_chroot} && !defined $data{arg}{'update'} && !defined $data{arg}{'list'} && !defined $data{addition} && !$data{createiso}){
if(
!$data{arg}{'profile'} && !$data{builder_chroot} && !defined $data{arg}{'update'} && !defined $data{arg}{'list'} && !defined $data{addition} && !$data{createiso} && !defined $data{arg}{'initrd'} && !defined $data{arg}{'unmask'}
){
#выберем альтернативный диск для установки
if(!$data{rootinstall} && getini("install.from")){
$data{rootinstall} = "/dev/".getini("install.from");
@ -1963,7 +1975,6 @@ sub checksystem{
savelog();
exit;
}
}elsif($data{builder_chroot}){
#определим подмонтированный раздел в который производится установка
foreach(`$data{path} mount | grep "$data{mount} "`){
@ -2197,7 +2208,6 @@ sub checksystem{
}
}
#----------------------------------------------------------------------
# Считаем меню г р а б а grub.conf для переноса настроек
# $data{grub_another}
@ -2332,7 +2342,7 @@ sub checksystem{
#----------------------------------------------------------------------
$data{useproxy} = 'off'; $data{proxy_port} = '';
$data{http_proxy} = ''; $data{nfs} = ''; $data{ntp} = '';
if(!$data{builder} && $data{netstat} eq 'on' && !defined $data{arg}{'initrd'} && !defined $data{arg}{'video'} && $data{lan} eq 'on' && $data{domain} ne 'local'){
if(!$data{builder} && $data{netstat} eq 'on' && !defined $data{arg}{'initrd'} && !defined $data{arg}{'unmask'} && !defined $data{arg}{' video'} && $data{lan} eq 'on' && $data{domain} ne 'local'){
printmes(gettext('Network services')."\n");
#определим прокси-сервер
if(
@ -2412,7 +2422,7 @@ sub checksystem{
if(!$data{builder} && ($data{system} eq 'desktop') &&
$data{netstat} eq 'on' && !defined $data{arg}{'initrd'} && !defined $data{arg}{'video'} && $data{lan} eq 'on' && $data{server_url}
$data{netstat} eq 'on' && !defined $data{arg}{'initrd'} && !defined $data{arg}{'unmask'} && !defined $data{arg}{' video'} && $data{lan} eq 'on' && $data{server_url}
){
if(
(
@ -2680,8 +2690,10 @@ sub checksystem{
$data{emergerun2} = "\"";
}else{
$data{emergerun1} = "$data{emergerun1} /usr/bin/emerge";
} }
}
}
}elsif(defined $data{arg}{'unmask'}){
$data{emergerun1} = "/usr/bin/emerge";
} }
#----------------------------------------------------------------------
# Определим переменные настройки make.conf
@ -4184,6 +4196,11 @@ sub list{
#
#------------------------------------------------------------------------------
sub packages{
#отработаем случай размаскировки в текущей системе --unmask
if(defined $data{arg}{'unmask'}){
return split ' ', $data{arg}{'unmask'};
}
#определим директории для нашей конфигурации файлов с о списком пакетов
my @dir;
@ -4285,8 +4302,11 @@ sub dependence{
if(!$hide){
my @packages = packages();
system "$data{emergerun1} -pqvtuD @packages $data{emergerun2}";
}
if(!defined $data{arg}{'unmask'}){
system "$data{emergerun1} -pqvtuD @packages $data{emergerun2}";
}else{
system "$data{emergerun1} -p @packages $data{emergerun2}";
} }
if($pack){
return 1;
@ -4359,7 +4379,7 @@ sub emerge_pretend{
my $err;
@packages = (@{$data{movie_pretend}}, @packages); #объединим с о списком зависимых пакетов (дублируя расположим их сверху)
my $softly; if(!defined $data{addition}){$softly = "--softly";}
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`,
@ -6895,3 +6915,10 @@ sub clearlog{
}
printmes(" ".gettext('done')); printmes(".\n");
}
#------------------------------------------------------------------------------
# Авторазмаскировка пакетов
#------------------------------------------------------------------------------
sub autounmask{
dependence();
}