добавлена утилита cl-unmask для размаскировки пакетов

master
root 15 years ago
parent acee069bcf
commit 29ab39aa3a

@ -1,7 +1,8 @@
CHANGE LOG
1.2.6
* Исправлен порядок сборки, для корректной сборки модуля aufs2.
* Добавлена утилита cl-unmask для размаскировки пакетов.
* Исправлен порядок сборки, для корректной установки модуля aufs2.
* Исправлено удаление файлов по профилю, при установке в режиме builder.
1.2.5

@ -19,6 +19,8 @@ install: all
@${FIND} install -wholename \*.svn -prune -o -type l -exec ${COPYLINK} {} ${DESTDIR}/usr/${NAME}/{} \;
@${CHMOD} 755 ${DESTDIR}/usr/${NAME}/install/calculate
@${CHMOD} 755 ${DESTDIR}/usr/${NAME}/install/cl-builder
@${CHMOD} 755 ${DESTDIR}/usr/${NAME}/install/cl-unmask
@${MKDIR} ${DESTDIR}/usr/bin
@${LN} ${DESTDIR}/usr/calculate/install/calculate ${DESTDIR}/usr/bin/calculate
@${LN} ${DESTDIR}/usr/calculate/install/cl-builder ${DESTDIR}/usr/bin/cl-builder
@${LN} ${DESTDIR}/usr/calculate/install/cl-unmask ${DESTDIR}/usr/bin/cl-unmask

@ -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,9 +2690,11 @@ sub checksystem{
$data{emergerun2} = "\"";
}else{
$data{emergerun1} = "$data{emergerun1} /usr/bin/emerge";
} }
}
}
}elsif(defined $data{arg}{'unmask'}){
$data{emergerun1} = "/usr/bin/emerge";
} }
#----------------------------------------------------------------------
# Определим переменные настройки make.conf
# $data{use}, $data{uselist}
@ -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();
}

@ -0,0 +1,27 @@
#!/bin/bash
#------------------------------------------------------------------------------
# cl-unmask
# Copyright ©2009 Mir Calculate Ltd.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------------------------
if [ "$#" -eq "0" ]
then
echo "Unmask packages"
echo "Usage: cl-unmask package1 [package2 package3 ...]"
exit
fi
/usr/calculate/install/calculate --unmask="$*"
Loading…
Cancel
Save