Python upgrade must be before @system upgrade.
This commit is contained in:
parent
240d18d30f
commit
b1a2845b9e
|
@ -332,15 +332,57 @@ if [ $STAGE_CNT -eq $STAGE ]; then
|
||||||
fi
|
fi
|
||||||
let STAGE_CNT++
|
let STAGE_CNT++
|
||||||
|
|
||||||
# @system upgrade
|
# Python upgrade
|
||||||
if [ $STAGE_CNT -eq $STAGE ]; then
|
if [ $STAGE_CNT -eq $STAGE ]; then
|
||||||
echo "======= STAGE $STAGE: @system upgrade ======="
|
echo "======= STAGE $STAGE: Python upgrade ======="
|
||||||
|
|
||||||
echo 'Test and remember if we should run python-updater after @system upgrade'
|
echo 'Test and remember if we should run python-updater after Python upgrade'
|
||||||
if [ 0 -ne `emerge -uNp dev-lang/python 2>&1 | grep '^\[' | wc -l` ]; then
|
if [ 0 -ne `emerge -uNp dev-lang/python 2>&1 | grep '^\[' | wc -l` ]; then
|
||||||
touch /etc/portage/need_upgrade_python
|
touch /etc/portage/need_upgrade_python
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo '------- Upgrading Python package -------'
|
||||||
|
emerge -uDNvt --with-bdeps=y python
|
||||||
|
[ 0 -ne $? ] && echo "Stage $STAGE: Python upgrade failed ;-( =======" && exit $STAGE
|
||||||
|
|
||||||
|
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-~'`
|
||||||
|
pkgnamever=`qlist -ICv dev-lang/$pkgname`
|
||||||
|
let ndeps_tmp=`equery d =$pkgnamever | cut -d" " -f1 | wc -l`
|
||||||
|
[ $ndeps_tmp -gt $ndeps ] && new_python=$p && let ndeps=$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_python ;-( =======" && exit $STAGE
|
||||||
|
eselect python set $new_python
|
||||||
|
[ 0 != $? ] && echo "Stage $STAGE: cann't switch to another python version ;-( =======" && exit $STAGE
|
||||||
|
|
||||||
|
$NICE_CMD python-updater
|
||||||
|
[ 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_python ;-( =======" && exit $STAGE
|
||||||
|
else
|
||||||
|
echo "------- Not need to upgrade python -------"
|
||||||
|
fi
|
||||||
|
|
||||||
|
let STAGE++
|
||||||
|
fi
|
||||||
|
let STAGE_CNT++
|
||||||
|
|
||||||
|
# @system upgrade
|
||||||
|
if [ $STAGE_CNT -eq $STAGE ]; then
|
||||||
|
echo "======= STAGE $STAGE: @system upgrade ======="
|
||||||
|
|
||||||
echo 'Test and remember if we should run perl-cleaner after @system upgrade'
|
echo 'Test and remember if we should run perl-cleaner after @system upgrade'
|
||||||
if [[ 0 -ne `qlist -IC dev-lang/perl | wc -l`
|
if [[ 0 -ne `qlist -IC dev-lang/perl | wc -l`
|
||||||
&& 0 -ne `emerge -uNp dev-lang/perl 2>&1 | grep '^\[' | wc -l` ]]; then
|
&& 0 -ne `emerge -uNp dev-lang/perl 2>&1 | grep '^\[' | wc -l` ]]; then
|
||||||
|
@ -361,41 +403,6 @@ if [ $STAGE_CNT -eq $STAGE ]; then
|
||||||
fi
|
fi
|
||||||
let STAGE_CNT++
|
let STAGE_CNT++
|
||||||
|
|
||||||
# Python upgrade
|
|
||||||
if [ $STAGE_CNT -eq $STAGE ]; then
|
|
||||||
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_python ;-( =======" && exit $STAGE
|
|
||||||
eselect python set $new_python
|
|
||||||
[ 0 != $? ] && echo "Stage $STAGE: cann't switch to another python version ;-( =======" && exit $STAGE
|
|
||||||
$NICE_CMD python-updater
|
|
||||||
[ 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_python ;-( =======" && exit $STAGE
|
|
||||||
else
|
|
||||||
echo "------- Not need to upgrade python -------"
|
|
||||||
fi
|
|
||||||
|
|
||||||
let STAGE++
|
|
||||||
fi
|
|
||||||
let STAGE_CNT++
|
|
||||||
|
|
||||||
# Perl upgrade
|
# Perl upgrade
|
||||||
if [ $STAGE_CNT -eq $STAGE ]; then
|
if [ $STAGE_CNT -eq $STAGE ]; then
|
||||||
echo "======= STAGE $STAGE: Perl upgrade ======="
|
echo "======= STAGE $STAGE: Perl upgrade ======="
|
||||||
|
|
Loading…
Reference in New Issue