git-svn-id: http://svn.calculate.ru/calculate/trunk@2029 c91db197-33c1-4113-bf15-f8a5c547ca64

master
atratsevskiy 15 years ago
parent ef43d49764
commit 40501701f6

@ -1,7 +1,8 @@
CHANGE LOG
1.2.0 RC1
* Добавлена поддержка установки системы для сборки в scratch формате
* Добавлена поддержка установки дистрибутива для сборки в scratch формате.
* Добавлена поддержка сборки CLD/CLDX на базе CLS.
1.1.0
* В xorg.conf параметр BusID добавляется тольков случае если видеокарт в системе две и более.

@ -6,5 +6,5 @@ dev-db/pgadmin3
dev-python/ipython
dev-python/psycopg
dev-util/kdesvn
net-nds/luma
#net-nds/luma

@ -1738,7 +1738,21 @@ sub checksystem{
closedir STAGE;
if($stage){$data{stage} = $stage}else{$data{stage} = $data{stage}."-YYYYMMDD.tar.bz2"}
if(!-e "$data{stagepath}/$data{stage}" && !defined $data{arg}{'vars'}){
#определим наличие CLS
if($data{calculate} ne 'CLS' && $data{system} eq 'desktop'){
my $stage;
opendir(STAGE, $data{linuxdir});
foreach(readdir STAGE){
if($_ eq "." || $_ eq ".."){next;}
if($_=~m/^cls\-[0-9\.]+\-$data{march}\.iso$/ && $stage lt $_){$stage = $_;}
}
closedir STAGE;
if($stage){$data{stage} = $stage}
}
if(!-e "$data{stagepath}/$data{stage}" && !-e "$data{linuxdir}/$data{stage}" &&
!defined $data{arg}{'vars'}
){
if(!-e $data{stagepath}){
printmes(" ".gettext('Create directory')); printmes(" stages...");
system "$data{path} mkdir $data{stagepath}";
@ -3007,9 +3021,13 @@ sub extract{
printmes(gettext('done').".\n");
#примонтируем iso если мы устанавливаем систему из iso образа диска
if($data{linux} =~m/iso$/){
#либо если мы собираем систему из CLS
if($data{linux} =~m/iso$/ || ($data{builder} && $data{stage} =~m/iso$/)){
my $iso;
if(!$data{builder}){$iso = $data{linux};}
else{$iso = $data{stage};}
printmes(" ".gettext('Mounting ISO file')); printmes("... ");
if(system "$data{path} mkdir -p /mnt/cdrom && mount -o loop $data{linuxdir}/$data{linux} /mnt/cdrom"){
if(system "$data{path} mkdir -p /mnt/cdrom && mount -o loop $data{linuxdir}/$iso /mnt/cdrom"){
printmes("\n\n".gettext('Error')."! ");
beep();
system "$data{path} umount $data{mount}";
@ -3030,7 +3048,12 @@ sub extract{
else{$unpack = "$data{path} tar -xjpf $data{linuxdir}/$data{linux} -C $data{mount}";}
}else{
printmes(" ".gettext('Unpack')); printmes(" $data{stage}... ");
$unpack = "$data{path} tar -xjpf $data{stagepath}/$data{stage} -C $data{mount}";
if($data{stage} !~m/iso$/){
$unpack = "$data{path} tar -xjpf $data{stagepath}/$data{stage} -C $data{mount}";
}else{
$unpack = "$data{path} unsquashfs -n -d $data{mount} -f /mnt/cdrom/livecd.squashfs &>/dev/null";
}
}
#путь к squashfs в случае установки из ISO файла или с CD-ROM
@ -3068,7 +3091,7 @@ sub extract{
}
sleep($_);
}
if($data{linux} =~m/iso$/){system "$data{path} umount /mnt/cdrom";}
if($data{linux} =~m/iso$/ || ($data{builder} && $data{stage} =~m/iso$/)){system "$data{path} umount /mnt/cdrom";}
printmes(" ".gettext('done').".\n");
return "";
@ -3079,7 +3102,9 @@ sub extract{
}
#отмонтируем /mnt/cdrom если мы устанавливали систему из файла ISO образа
if($data{linux} =~m/iso$/){system "$data{path} umount /mnt/cdrom";}
if($data{linux} =~m/iso$/ || ($data{builder} && $data{stage} =~m/iso$/)){
system "$data{path} umount /mnt/cdrom";
}
if($data{builder}){
printmes(" ".gettext('Unpack')); printmes(" $data{portage}...");
@ -3799,14 +3824,15 @@ sub configure{
printmes(" ".gettext('done').".\n");
}
#chroot emerge sys-kernel/calculate-sources
printmes(" ".gettext('Install the kernel')); printmes("...");
if(system "$data{emergerun1} sys-kernel/calculate-sources $data{emergerun2} &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot emerge sys-kernel/calculate-sources если система собирается не из CLS
if($data{stage} !~m/iso$/){
printmes(" ".gettext('Install the kernel')); printmes("...");
if(system "$data{emergerun1} sys-kernel/calculate-sources $data{emergerun2} &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
} }
#скопируем настройки ядра
#имя файла настроек ядра
@ -3824,19 +3850,22 @@ sub configure{
#путь установок ядра в собираемой системе
$data{kernel_config_build} = "$data{chroot}/usr/src/linux/.config";
#скопируем настройки ядра
if(-e "$data{kernel_config_loadpath}/$data{kernel_config_name}"){
#скопируем настройки ядра если система собирается не из CLS
if(-e "$data{kernel_config_loadpath}/$data{kernel_config_name}"
&& $data{stage} !~m/iso$/
){
system "$data{path} cp '$data{kernel_config_loadpath}/$data{kernel_config_name}' '$data{kernel_config_build}'";
}
#выполним make oldconfig
printmes(" ".gettext('Execute')); printmes(" make oldconfig...\n");
if(system qq|$data{path} chroot $data{chroot} /usr/calculate/install/calculate --chroot="cd /usr/src/linux && make oldconfig"|){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#выполним make oldconfig если система собирается не из CLS
if($data{stage} !~m/iso$/){
printmes(" ".gettext('Execute')); printmes(" make oldconfig...\n");
if(system qq|$data{path} chroot $data{chroot} /usr/calculate/install/calculate --chroot="cd /usr/src/linux && make oldconfig"|){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
} }
#выполним make menuconfig
if($data{menuconfig} eq 'on'){
@ -3850,8 +3879,8 @@ sub configure{
printmes(" ".gettext('done').".\n");
} }
#сохраним измененные настройки ядра
if(-e "$data{kernel_config_build}"){
#сохраним измененные настройки ядра если система собирается не из CLS
if(-e "$data{kernel_config_build}" && $data{stage} !~m/iso$/){
printmes(" ".gettext('Save kernel config')); printmes("...");
if(system "$data{path} mkdir -p $data{kernel_config_savepath} && cp -f '$data{kernel_config_build}' '$data{kernel_config_savepath}/$data{kernel_config_name}'"){
printmes(" ".gettext('error')."!\n");
@ -3860,74 +3889,77 @@ sub configure{
printmes(" ".gettext('done').".\n");
} }
#chroot emerge sys-apps/v86d
printmes(" ".gettext('Execute')); printmes(" emerge sys-apps/v86d...");
if(system "$data{emergerun1} sys-apps/v86d $data{emergerun2} &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#если система собирается не из CLS
if($data{stage} !~m/iso$/){
#chroot emerge sys-apps/v86d
printmes(" ".gettext('Execute')); printmes(" emerge sys-apps/v86d...");
if(system "$data{emergerun1} sys-apps/v86d $data{emergerun2} &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot emerge sys-apps/openrc
printmes(" ".gettext('Execute')); printmes(" emerge sys-apps/openrc...");
system "$data{emergerun1} -C sys-apps/baselayout $data{emergerun2} &>/dev/null";
system "$data{path} rm $data{chroot}/etc/init.d/depscan.sh $data{chroot}/etc/init.d/functions.sh $data{chroot}/etc/init.d/runscript.sh";
#не удаляем ссылку если это сервер. При переходе stage на baselayout2, ссылку надо будет добавлять самостоятельно
if($data{calculate} ne "CDS"){system "$data{path} rm $data{chroot}/etc/init.d/net.eth0";}
#chroot emerge sys-apps/openrc
printmes(" ".gettext('Execute')); printmes(" emerge sys-apps/openrc...");
system "$data{emergerun1} -C sys-apps/baselayout $data{emergerun2} &>/dev/null";
system "$data{path} rm $data{chroot}/etc/init.d/depscan.sh $data{chroot}/etc/init.d/functions.sh $data{chroot}/etc/init.d/runscript.sh";
#не удаляем ссылку если это сервер. При переходе stage на baselayout2, ссылку надо будет добавлять самостоятельно
if($data{calculate} ne "CDS"){system "$data{path} rm $data{chroot}/etc/init.d/net.eth0";}
if(system "$data{emergerun1} sys-apps/openrc sys-apps/sysvinit sys-fs/udev $data{emergerun2} &>/dev/null"){
printmes(" ".gettext('error')."!\n");
#umountbuild();
return '';
}else{
printmes(" ".gettext('done').".\n");
}
if(system "$data{emergerun1} sys-apps/openrc sys-apps/sysvinit sys-fs/udev $data{emergerun2} &>/dev/null"){
printmes(" ".gettext('error')."!\n");
#umountbuild();
return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot make -jX && make modules_install
printmes(" ".gettext('Execute')); printmes(" make $data{makeopts} && make modules_install...\n");
if(system qq|$data{path} chroot $data{chroot} /usr/calculate/install/calculate --chroot="cd /usr/src/linux && make $data{makeopts} && make modules_install"|){
#выходим но не прерываем сборку
printmes("\n".gettext('error')."! ");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot make -jX && make modules_install
printmes(" ".gettext('Execute')); printmes(" make $data{makeopts} && make modules_install...\n");
if(system qq|$data{path} chroot $data{chroot} /usr/calculate/install/calculate --chroot="cd /usr/src/linux && make $data{makeopts} && make modules_install"|){
#выходим но не прерываем сборку
printmes("\n".gettext('error')."! ");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot groupadd games
printmes(" ".gettext('Execute')); printmes(" groupadd -g 35 games...");
if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 35 games &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot groupadd games
printmes(" ".gettext('Execute')); printmes(" groupadd -g 35 games...");
if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 35 games &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot groupadd plugdev
printmes(" ".gettext('Execute')); printmes(" groupadd -g 440 plugdev...");
if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 440 plugdev &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot groupadd plugdev
printmes(" ".gettext('Execute')); printmes(" groupadd -g 440 plugdev...");
if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 440 plugdev &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot groupadd scanner
printmes(" ".gettext('Execute')); printmes(" groupadd -g 441 scanner...");
if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 441 scanner &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot groupadd scanner
printmes(" ".gettext('Execute')); printmes(" groupadd -g 441 scanner...");
if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 441 scanner &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
#chroot groupadd vboxusers
printmes(" ".gettext('Execute')); printmes(" groupadd -g 442 vboxusers...");
if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 442 vboxusers &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
#chroot groupadd vboxusers
printmes(" ".gettext('Execute')); printmes(" groupadd -g 442 vboxusers...");
if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 442 vboxusers &>/dev/null"){
printmes(" ".gettext('error')."!\n");
umountbuild(); return '';
}else{
printmes(" ".gettext('done').".\n");
}
}
if($data{calculate} eq "CLD"){

Loading…
Cancel
Save