Gentoo-Upgrade/sbin/gentoo-upgrade.sh

513 lines
18 KiB
Bash
Raw Normal View History

2012-05-18 20:27:25 +04:00
#!/bin/bash
2012-08-09 18:23:28 +04:00
STAGE=0
NICE_CMD="nice -n 19 ionice -c2"
2012-05-18 20:27:25 +04:00
source /etc/make.conf
[ -f /etc/gentoo-upgrade.conf ] && source /etc/gentoo-upgrade.conf
# available parameters
eval set -- "`getopt -o hs: --long help,stage: -- \"$@\"`"
while true ; do
case "$1" in
-h|--help)
echo "Usage: upgrade-gentoo.sh [keys]..."
echo "Keys:"
echo -e "-h, --help\t\t\tShow this help and exit."
echo -e "-s [STAGE], --stage [STAGE]\t Go to STAGE upgrade level."
echo
echo -e "This program works on any GNU/Linux with GNU Baurne's shell"
echo -e "Report bugs to <mecareful@gmail.com>"
exit 0
;;
-s|--stage) STAGE=$2 ; shift 2 ;;
--) shift ; break ;;
*) echo "Internal error!" ; exit -1 ;;
esac
done
function in_list()
{
[ -z "$1" ] && return 1
elem=$1
shift 1
list=($@)
for i in ${list[@]}; do
[ $i == $elem ] && return 0
done
return 1
}
TRUE_LIST=(TRUE True true YES Yes yes 1)
FALSE_LIST=(FALSE False false NO No no 0)
2012-10-10 20:50:19 +04:00
STAGE_CNT=0
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# remounting file systems ro->rw
if [ $STAGE_CNT -eq $STAGE ]; then
2012-08-09 18:23:28 +04:00
echo "======= STAGE $STAGE: remounting file systems ro->rw ======="
for fs in $RW_REMOUNT; do
2012-08-17 11:46:40 +04:00
echo "remounting $fs -> rw"
2012-08-09 18:23:28 +04:00
mount -o remount,rw $fs
[ 0 -ne $? ] && echo "Stage $STAGE: mount -o remount,rw $fs failed ;-( =======" && exit $STAGE
done
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-08-09 18:23:28 +04:00
# Pull portage config changes
if [ $STAGE_CNT -eq $STAGE ]; then
if [ -d /etc/portage/.git ]; then
echo "======= STAGE $STAGE: pull portage config changes ======="
2012-10-22 08:55:27 +04:00
cd /etc/portage && git pull origin `git rev-parse --abbrev-ref HEAD`
[ 0 -ne $? ] && echo "Stage $STAGE: cd /etc/portage && git pull origin `git rev-parse --abbrev-ref HEAD` failed ;-( =======" && exit $STAGE
fi
let STAGE++
fi
let STAGE_CNT++
# Update gentoo-upgrade script
if [ $STAGE_CNT -eq $STAGE ]; then
echo "======= STAGE $STAGE: Updating gentoo-upgrade script ======="
if [ `which smart-live-rebuild 2>/dev/null` ]; then
$NICE_CMD smart-live-rebuild app-admin/gentoo-upgrade
[ 0 -ne $? ] && echo "Stage $STAGE: Updating gentoo-upgrade script failed ;-( =======" && exit $STAGE
fi
let STAGE++
fi
let STAGE_CNT++
2012-10-10 20:50:19 +04:00
# sync portage tree
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: sync portage tree ======="
SYNC_TYPE=
expr match "$SYNC" "git://" >/dev/null && SYNC_TYPE=git
expr match "$SYNC" "rsync://" >/dev/null && SYNC_TYPE=rsync
if [[ "rsync" == "$SYNC_TYPE" && 0 -ne `expr match "$PORTAGE_RSYNC_EXTRA_OPTS" ".*rsync.excludes"` ]]; then
# generate portage exclude list
RSYNC_EXCLUDES_FILE=/etc/portage/rsync.excludes
echo "Generating $RSYNC_EXCLUDES_FILE list..."
ninstalled=0
installed=
for p in `qlist -IC`; do
installed[ninstalled]=$p
let ninstalled++
done
idx=0
cd /usr/portage/
[ 0 -ne $? ] && echo "Stage $STAGE: /usr/portage/ does not exist ;-( =======" && exit $STAGE
echo -n >$RSYNC_EXCLUDES_FILE
dir_list=`ls -1 --color=never -d *-*/ virtual/ | sed 's~/$~~' | sort`
for d in $dir_list ; do
d=${d%/}
if [[ `qlist -IC $d | wc -l` == 0 ]]; then
echo $d/ >>$RSYNC_EXCLUDES_FILE
echo metadata/cache/$d/ >>$RSYNC_EXCLUDES_FILE
else
pn_list=`ls -1 --color=never -d ${d}/*/ | sed 's~/$~~' | sort`
for pn in $pn_list; do
pn=${pn%/}
while [[ "${installed[$idx]}" < "$pn" && $idx -lt $ninstalled ]]; do
let idx++
done
if [[ "$pn" == "${installed[$idx]}" ]]; then
let idx++
else
echo $pn/ >>$RSYNC_EXCLUDES_FILE
fi
done
fi
done
fi
# sync portage tree
2012-08-17 10:51:32 +04:00
$NICE_CMD eix-sync || $NICE_CMD emerge --sync
2012-05-18 20:27:25 +04:00
[ 0 -ne $? ] && echo "Stage $STAGE: portage tree synchronization failed ;-( =======" && exit $STAGE
# Update metadata cache
in_list "$EGENCACHE" ${TRUE_LIST[@]} &&
if [[ "git" == "$SYNC_TYPE" ]]; then
echo "---------- Updating metadata cache for Git portage tree ----------"
2012-08-17 10:51:32 +04:00
$NICE_CMD egencache --repo=gentoo --update --jobs=$((`grep "^processor" /proc/cpuinfo -c`+1))
2012-05-18 20:27:25 +04:00
[ 0 -ne $? ] && echo "Stage $STAGE: Metadata update failed ;-( =======" && exit $STAGE
fi
# clear exclude list
if [ "rsync" == "$SYNC_TYPE" ]; then
echo -n > /etc/portage/rsync.excludes
[ 0 -ne $? ] && echo "Stage $STAGE: failed to clear /etc/portage/rsync.excludes ;-( =======" && exit $STAGE
fi
2012-10-10 21:03:45 +04:00
# layman syncronization
if [ `which layman 2>/dev/null` ]; then
$NICE_CMD layman -S
[ 0 -ne $? ] && echo "Stage $STAGE: layman synchronization failed ;-( =======" && exit $STAGE
fi
2012-05-18 20:27:25 +04:00
# eix update
if [ `which eix-update 2>/dev/null` ]; then
2012-08-17 10:51:32 +04:00
$NICE_CMD eix-update
2012-05-18 20:27:25 +04:00
[ 0 -ne $? ] && echo "Stage $STAGE: eix-update failed ;-( =======" && exit $STAGE
fi
# eix-remote update
if [ `which eix-remote 2>/dev/null` ]; then
2012-08-17 10:51:32 +04:00
$NICE_CMD eix-remote update
2012-05-18 20:27:25 +04:00
[ 0 -ne $? ] && echo "Stage $STAGE: eix-remote update failed ;-( =======" && exit $STAGE
fi
# remind to upgrade Xorg input drivers
tmp=`qlist -IC x11-base/xorg-server`
if [ "" != "$tmp" ]; then
if [ "0" -ne "`emerge -uNp x11-base/xorg-server 2>&1 | grep '^\[' | wc -l`" ]; then
touch /etc/portage/need_upgrade_xorg_input_drivers
[ 0 -ne $? ] && echo "Stage $STAGE: cann't touch /etc/portage/need_upgrade_xorg_input_drivers ;-( =======" && exit $STAGE
fi
fi
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# upgrading portage package
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: upgrading portage package ======="
emerge -uq1v portage
[ 0 -ne $? ] && echo "Stage $STAGE: portage package upgrading failed ;-( =======" && exit $STAGE
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# disable prelink
2012-11-25 00:45:32 +04:00
#if [ $STAGE_CNT -eq $STAGE ]; then
# echo "======= STAGE $STAGE: disable prelink ======="
# if [ `which prelink 2>/dev/null` ]; then
# $NICE_CMD prelink -ua 2>/dev/null
# [ 0 -ne $? ] && echo "Stage $STAGE: prelink disabling failed ;-( =======" && exit $STAGE
# fi
#
# let STAGE++
#fi
#let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# Test for necessity to upgrade toolchain packages
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: Test for necessity to upgrade toolchain packages ======="
cur_gcc_ver=`qlist -ICve sys-devel/gcc | sed 's~.*/gcc-~~'`
new_gcc_ver=`emerge -uNp sys-devel/gcc | grep '^\[' | sed 's~.*/gcc-~~ ; s~\ .*~~'`
if [[ "" != "$new_gcc_ver" && "`echo $cur_gcc_ver | sed 's~\([0-9]*\.[0-9]*\).*~\1~'`" != "`echo $new_gcc_ver | sed 's~\([0-9]*\.[0-9]*\).*~\1~'`" ]]; then
touch /etc/portage/need_toolchain_rebuild
else
if [ "`echo $cur_gcc_ver | sed 's~[0-9]*\.[0-9]*\.\([0-9]*\).*~\1~'`" != "`echo $cur_gcc_ver | sed 's~[0-9]*\.[0-9]*\.\([0-9]*\).*~\1~'`" ]; then
touch /etc/portage/need_libtool_rebuild
fi
if [ 0 -ne "`emerge -uNp sys-kernel/linux-headers 2>&1 | grep '^\[' | wc -l`" ]; then
touch /etc/portage/need_glibc_rebuild
fi
fi
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# Toolchain packages rebuild and possibly 1'th full toolchain rebuild
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: 1'th toolchain build ======="
if [ -f /etc/portage/need_libtool_rebuild ]; then
emerge -1vq sys-devel/libtool
rm /etc/portage/need_libtool_rebuild
[ 0 -ne $? ] && echo "Stage $STAGE: cann't remove /etc/portage/need_libtool_rebuild ;-( =======" && exit $STAGE
fi
if [ -f /etc/portage/need_glibc_rebuild ]; then
emerge -1vq sys-kernel/linux-headers sys-libs/glibc
2012-05-18 20:27:25 +04:00
rm /etc/portage/need_glibc_rebuild
[ 0 -ne $? ] && echo "Stage $STAGE: cann't remove /etc/portage/need_glibc_rebuild ;-( =======" && exit $STAGE
fi
if [ -f /etc/portage/need_toolchain_rebuild ]; then
# remove old binary packages
pkgdir=$(portageq pkgdir)
rm -rf $pkgdir
install -d -o portage -g portage -m775 $pkgdir
# first toolchain build
emerge -1vq sys-kernel/linux-headers sys-libs/glibc sys-devel/binutils \
sys-devel/gcc-config sys-devel/gcc sys-devel/binutils-config
[ 0 -ne $? ] && echo "Stage $STAGE: 1'th toolchain build failed ;-( =======" && exit $STAGE
rm /etc/portage/need_toolchain_rebuild
[ 0 -ne $? ] && echo "Stage $STAGE: cann't remove /etc/portage/need_toolchain_rebuild ;-( =======" && exit $STAGE
let STAGE++
# skip next toolchain upgrade stages
else
2012-10-08 10:42:35 +04:00
let STAGE+=5
2012-05-18 20:27:25 +04:00
fi
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# switching gcc and binutils
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: switching gcc and binutils ======="
gcc_regex=`gcc-config -c | sed 's~[0-9]*\.[0-9]*\.[0-9]*~[0-9]*\.[0-9]*\.[0-9]*~'`
[ "" == "$gcc_regex" ] && echo "Stage $STAGE: failed to build gcc_regex ;-( =======" && exit $STAGE
binutils_regex=`binutils-config -c | sed 's~[0-9]*\.[0-9]*\.[0-9]*~[0-9]*\.[0-9]*\.[0-9]*~'`
[ "" == "$binutils_regex" ] && echo "Stage $STAGE: failed to build binutils_regex ;-( =======" && exit $STAGE
new_gcc=`gcc-config -l | cut -d" " -f3 | grep ^$gcc_regex$ | sort -V | tail -n1`
[ "" == "$gcc_regex" ] && echo "Stage $STAGE: failed to find new_gcc ;-( =======" && exit $STAGE
new_binutils=`binutils-config -l | cut -d" " -f3 | grep ^$binutils_regex$ | sort -V | tail -n1`
[ "" == "$binutils_regex" ] && echo "Stage $STAGE: failed to find new_binutils ;-( =======" && exit $STAGE
gcc-config $new_gcc
[ 0 -ne $? ] && echo "Stage $STAGE: failed to switch gcc to $new_gcc ;-( =======" && exit $STAGE
binutils-config $new_binutils
[ 0 -ne $? ] && echo "Stage $STAGE: failed to switch binutils to $new_binutils ;-( =======" && exit $STAGE
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# 2'nd toolchain build
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: 2'nd toolchain build ======="
source /etc/profile
emerge -1bvq sys-libs/glibc sys-devel/binutils sys-devel/gcc sys-apps/portage
[ 0 -ne $? ] && echo "Stage $STAGE: 2'nd toolchain build failed ;-( ========" && exit $STAGE
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# rebuild @system
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: rebuild @system ======="
source /etc/profile
emerge -1bkevq @system
[ 0 -ne $? ] && echo "Stage $STAGE: @system rebuild failed ;-( =======" && exit $STAGE
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# rebuild @world
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: rebuild @world ======="
source /etc/profile
emerge -1bkevq @world
[ 0 -ne $? ] && echo "Stage $STAGE: @world rebuild failed ;-( =======" && exit $STAGE
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# @system upgrade
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: @system upgrade ======="
echo 'Test and remember if we should run python-updater after @system upgrade'
if [ 0 -ne `emerge -uNp dev-lang/python 2>&1 | grep '^\[' | wc -l` ]; then
touch /etc/portage/need_upgrade_python
fi
2012-05-25 17:08:39 +04:00
echo '------- Upgrading @system packages -------'
emerge -uDNqv --with-bdeps=y @system
[ 0 -ne $? ] && echo "Stage $STAGE: @system upgrade failed ;-( =======" && exit $STAGE
2012-05-18 20:27:25 +04:00
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# Python upgrade
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: Python upgrade ======="
available_python_list=`eselect python list | cut -d" " -f6 | grep -v ^$ | sort -rV`
[ "" == "$available_python_list" ] && echo "Stage $STAGE: empty available_python_list ;-( =======" && exit $STAGE
let ndeps=0
new_python=`echo $available_python_list | cut -d" " -f1`
for p in $available_python_list ; do
pkgname=`echo $p | sed 's~^python~python-~'`
let tmp=`equery d =dev-lang/$pkgname | cut -d" " -f1 | wc -l`
[ $tmp -gt $ndeps ] && new_python=$p && let ndeps=$tmp
done
old_python=`eselect python show 2>/dev/null`
if [[ "$old_python" != "$new_python" || -f /etc/portage/need_upgrade_python ]]; then
echo "Running python-updater..."
touch /etc/portage/need_upgrade_python
[ 0 != $? ] && echo "Stage $STAGE: cann't touch /etc/portage/need_upgrade_xorg_input_drivers ;-( =======" && exit $STAGE
eselect python set $new_python
[ 0 != $? ] && echo "Stage $STAGE: cann't switch to another python version ;-( =======" && exit $STAGE
2012-08-17 10:51:32 +04:00
$NICE_CMD python-updater
2012-05-18 20:27:25 +04:00
[ 0 != $? ] && echo "Stage $STAGE: python-updater failed ;-( =======" && exit $STAGE
rm /etc/portage/need_upgrade_python
[ 0 != $? ] && echo "Stage $STAGE: cann't remove /etc/portage/need_upgrade_xorg_input_drivers ;-( =======" && exit $STAGE
else
echo "------- Not need to upgrade python -------"
fi
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# @world upgrade
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: @world upgrade ======="
echo 'Looking for necessity to upgrade @world packages...'
emerge -uDNqv @world
2012-05-25 17:08:39 +04:00
[ 0 -ne $? ] && echo "Stage $STAGE: @world upgrade failed ;-( =======" && exit $STAGE
2012-05-18 20:27:25 +04:00
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# Xorg server upgrades
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: Xorg server upgrades ======="
if [ -f /etc/portage/need_upgrade_xorg_input_drivers ]; then
echo '------- Upgrading Xorg input drivers -------'
xorg_packages=`qlist -IC xf86-input xorg-drivers xf86-input-evdev xf86-input-wacom`
if [ "" != "$xorg_packages" ]; then
emerge -1qv $xorg_packages
[ 0 -ne $? ] && echo "Stage $STAGE: Xorg input drivers upgrade failed ;-( =======" && exit $STAGE
rm /etc/portage/need_upgrade_xorg_input_drivers
[ 0 -ne $? ] && echo "Stage $STAGE: cann't remove /etc/portage/need_upgrade_xorg_input_drivers ;-( =======" && exit $STAGE
fi
else
echo '------- No Xorg server upgrades! -------'
fi
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-11-25 00:52:51 +04:00
# Upgrading live packages
if [ $STAGE_CNT -eq $STAGE ]; then
echo "======= STAGE $STAGE: Upgrading live packages ======="
smart-live-rebuild
[ 0 -ne $? ] && echo "Stage $STAGE: Upgrading live packages failed ;-( =======" && exit $STAGE
let STAGE++
fi
let STAGE_CNT++
2012-10-10 20:50:19 +04:00
# Cleaning
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: Cleaning ======="
emerge -c
[ 0 -ne $? ] && echo "Stage $STAGE: emerge -c failed ;-( =======" && exit $STAGE
if [ `which localepurge 2>/dev/null` ]; then
2012-08-17 10:51:32 +04:00
$NICE_CMD localepurge &>/dev/null
2012-05-18 20:27:25 +04:00
[ 0 -ne $? ] && echo "Stage $STAGE: localepurge failed ;-( =======" && exit $STAGE
fi
if [ `which eclean 2>/dev/null` ]; then
2012-08-17 10:51:32 +04:00
$NICE_CMD eclean packages
2012-05-18 20:27:25 +04:00
[ 0 -ne $? ] && echo "Stage $STAGE: eclean packages failed ;-( =======" && exit $STAGE
2012-05-28 13:50:51 +04:00
in_list "$ECLEAN_DISTFILES" ${TRUE_LIST[@]}
if [ 0 -eq $? ]; then
2012-08-17 10:51:32 +04:00
$NICE_CMD eclean distfiles
2012-05-28 13:50:51 +04:00
[ 0 -ne $? ] && echo "Stage $STAGE: eclean distfiles failed ;-( =======" && exit $STAGE
fi
2012-05-18 20:27:25 +04:00
fi
rm -rf /var/tmp/portage/*
[ 0 -ne $? ] && echo "Stage $STAGE: rm -rf /var/tmp/portage/* failed ;-( =======" && exit $STAGE
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# Scan for missed shared libraries
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: Scan for old versions of shared libraries ======="
emerge -1qv @preserved-rebuild
[ 0 -ne $? ] && echo "Stage $STAGE: emerge -1qv @preserved-rebuild failed ;-( =======" && exit $STAGE
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# Scan for vulnearable packages and try to fix them
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: Scan for vulnearable packages ======="
if [ `which glsa-check 2>/dev/null` ]; then
2012-08-17 10:51:32 +04:00
$NICE_CMD glsa-check -f affected
2012-05-18 20:27:25 +04:00
# [ 0 -ne $? ] && echo "Stage $STAGE: glsa-check fix failed ;-( =======" && exit $STAGE
fi
2012-07-31 12:26:08 +04:00
emerge -1pv @security
2012-05-18 20:27:25 +04:00
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# Prelink libraries
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: Prelink libraries ======="
if [ `which prelink 2>/dev/null` ]; then
2012-11-25 01:10:17 +04:00
$NICE_CMD prelink -avfmqR
[ 0 -ne $? ] && echo "Stage $STAGE: prelink -avfmqR failed ;-( =======" && exit $STAGE
2012-05-18 20:27:25 +04:00
fi
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# Upgrade kernel
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: Upgrade kernel ======="
kernel-getlast.sh
[ 0 -ne $? ] && echo "Stage $STAGE: kernel-getlast.sh failed ;-( =======" && exit $STAGE
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# Update config files
if [ $STAGE_CNT -eq $STAGE ]; then
2012-05-18 20:27:25 +04:00
echo "======= STAGE $STAGE: Update config files ======="
etc-update
[ 0 -ne $? ] && echo "Stage $STAGE: etc-update failed ;-( =======" && exit $STAGE
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
2012-10-10 20:50:19 +04:00
# remounting file systems rw->ro
if [ $STAGE_CNT -eq $STAGE ]; then
2012-08-09 18:23:28 +04:00
echo "======= STAGE $STAGE: remounting file systems rw->ro ======="
for fs in $RO_REMOUNT; do
2012-08-17 11:46:40 +04:00
echo "remounting $fs -> ro"
2012-08-09 19:01:46 +04:00
mount -f -o remount,ro $fs
2012-08-09 18:23:28 +04:00
[ 0 -ne $? ] && echo "Stage $STAGE: mount -o remount,ro $fs failed ;-( =======" && exit $STAGE
done
let STAGE++
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-08-09 18:23:28 +04:00
2012-10-10 20:50:19 +04:00
# Enabling e4rat data collection
if [ $STAGE_CNT -eq $STAGE ]; then
2012-08-31 13:35:46 +04:00
echo "======= STAGE $STAGE: Enabling e4rat data collection ======="
e4rat_switch.sh collect
[ 0 -ne $? ] && echo "Stage $STAGE: Enabling e4rat data collection failed ;-( =======" && exit $STAGE
let STAGE++
2012-08-31 15:40:45 +04:00
fi
2012-10-10 20:50:19 +04:00
let STAGE_CNT++
2012-05-18 20:27:25 +04:00
exit 0