}
dist_upgrade () {
+ log "Running upgrade ..."
+ apt-get -y$s upgrade || {
+ dpkg --configure -a
+ apt-get -y$s upgrade
+ }
+
log "Running dist-upgrade ..."
apt-get -y$s dist-upgrade || {
dpkg --configure -a
LC_MESSAGES=hr_HR dialog --backtitle "$title" --yesno "$msg_remove_x" 18 75
if [ $? -eq 0 ]; then
log "Removing X Window System"
- pkgrm xlibs
+ pkgrm x11-common
else
log "Skipping X Window System removal"
fi
if [ "$upgrade" ]; then
notice "
-Prije prelaska na Debian Lenny potrebno je napraviti nadogradnju ovih paketa:
+Prije prelaska na Debian Squeeze potrebno je napraviti nadogradnju ovih paketa:
$upgrade
Pokrenite:
install_php5_extensions
notice "
-Prije prelaska na Debian Lenny potrebno je napraviti nadogradnju sa PHP 4 na PHP 5.
+Prije prelaska na Debian Squeeze potrebno je napraviti nadogradnju sa PHP 4 na PHP 5.
Pokrenite:
# apt-get update
if [ "$ver" = "${ver#2.6.2[4-9]}" ]; then
# kernel too old
notice "
-Prije prelaska na Debian Lenny potrebno je napraviti nadogradnju na najnoviji kernel.
+Prije prelaska na Debian Squeeze potrebno je napraviti nadogradnju na najnoviji kernel.
Pokrenite:
# apt-get update
reboot_required () {
local default_kernel kernel_package running_release running_version
- # try to get default kernel from lilo
- if type lilo >/dev/null 2>&1; then
- default_kernel=$( lilo -t -v 2>/dev/null \
- | grep -B3 '[*]$' \
- | sed -n -e '/^Boot image: / { s///p; q; }' )
+ # try to get default kernel from grub2
+ if [ -z "$default_kernel" -a -r "/boot/grub/grub.cfg" ]; then
+ default_kernel=$( awk '
+ $0 ~ /^set default=".*"/ {
+ def = gensub(/default="(.*)"/, "\\1", "1", $2);
+ if (def !~ /^[0-9]+$/) { exit }
+ }
+ $1 == "menuentry" { menuentry+=1 }
+ $1 == "linux" && menuentry==def+1 { print $2; exit }' \
+ /boot/grub/grub.cfg 2>/dev/null )
fi
- # fallback to grub if lilo not installed
+ # try to get default kernel from grub-legacy
if [ -z "$default_kernel" -a -r "/boot/grub/menu.lst" ]; then
default_kernel=$( awk '
- $1 == "default" { default = $2;
- if (default !~ /^[0-9]+$/) { exit } }
+ $1 == "default" { def = $2;
+ if (def !~ /^[0-9]+$/) { exit } }
$1 == "title" { title+=1 }
- $1 == "kernel" && title==default+1 { print $2; exit }' \
+ $1 == "kernel" && title==def+1 { print $2; exit }' \
/boot/grub/menu.lst 2>/dev/null )
fi
+ # try to get default kernel from lilo
+ if [ -z "$default_kernel" ] && type lilo >/dev/null 2>&1; then
+ default_kernel=$( lilo -t -v 2>/dev/null \
+ | grep -B3 '[*]$' \
+ | sed -n -e '/^Boot image: / { s///p; q; }' )
+ fi
+
if [ -z "$default_kernel" ]; then
log "Could not find default kernel"
return 1
log "Default kernel image: $default_kernel"
if [ ! -e "$default_kernel" ]; then
- log "Default kernel image doesn't exist!?"
- return 1
+ # /boot prefix might be missing
+ default_kernel="/boot/${default_kernel#/}"
+ if [ ! -e "$default_kernel" ]; then
+ log "Default kernel image doesn't exist!?"
+ return 1
+ fi
fi
kernel_package=$( dpkg -S $default_kernel | cut -d: -f 1 )
}
upgrade () {
- local i to_install packages
+ local packages
case "$1" in
first)
packages="$packages_first"
return 1
esac
- for i in $(echo $packages)
- do
- pkg $i && to_install="$to_install $i"
- done
+ pkgupgrade $packages
+}
- if [ -n "$to_install" ];then
- eval pkgadd $to_install
- else
- return 0
+# install packages introduced in this release
+install_new () {
+ if [ "$new_packages" ]; then
+ pkgadd $new_packages
fi
}
fi
}
-# restore original config file (if the new package version is not
-# installed already)
-restore_config () {
- local file file_backup file_expect file_restore config_changed
- local cn_package cn_version package version
+# restore a configuration file if it contains only CN modifications
+restore_file () {
+ local file file_expect file_restore file_backup
- # check if new package version is installed
- cn_package=$1
- package=$2
- version=$3
+ file=$1
+ file_expect=$2
+ file_restore=$3
+ file_backup=$file.$backup_ext
- if [ "$cn_package" ]; then
- if ! pkg $cn_package; then
- # do nothing if cn package is not installed
- return 0
- fi
- fi
+ [ "$file_expect" ] || file_expect=$cnup/files/$file.expect
+ [ "$file_restore" ] || file_restore=$cnup/files/$file.restore
- if [ "$package" ]; then
- if [ "$version" ]; then
- # do nothing if package is already upgraded to new version
- pkg $package lt $version || return 0
- else
- # do nothing if package is not installed
- pkg $package || return 0
- fi
+ # check if all required files are there
+ if ! [ -e $file -a -e $file_expect -a -e $file_restore ]; then
+ log "Required files missing, skipping $file restore."
+ return 1
+ fi
+
+ # is restore needed
+ if ! cmp $file_expect $file >/dev/null; then
+ log "Config doesn't match the template, skipping $file restore."
+ return 1
fi
- shift 3
- # restore package files
- for file in $*; do
- file_expect=/usr/share/carnet-upgrade/files/$file.expect
- file_restore=/usr/share/carnet-upgrade/files/$file.restore
- file_backup=$file.$backup_ext
+ # backup and restore
+ if [ ! -e $file_backup ]; then
+ log "Restoring config file $file."
- # is config files are there
- if ! [ -e $file -a -e $file_expect -a -e $file_restore ]; then
- continue
- fi
+ # backup local changes
+ cp -av $file $file_backup
- # is restore needed
- if ! cmp $file_expect $file >/dev/null; then
- continue
- fi
+ # restore original
+ cp -v $file_restore $file
- # backup and restore
- if [ ! -e $file_backup ]; then
- log "Restoring config file $file"
+ # restore succedded
+ return 0
+ else
+ log "Backup file exists, skipping $file restore."
+ return 1
+ fi
+}
- # backup local changes
- cp -av $file $file_backup
+# force reconfiguration at the end if package is not upgraded automatically
+postupgrade_reconfigure () {
+ local cn_package cn_version
- # restore original
- cp -v $file_restore $file
+ cn_package=$1
+ cn_version=$( dpkg -s "$cn_package" | awk '/^Version:/ {print $2}' )
+ post_upgrade "pkg $cn_package gt $cn_version || dpkg-reconfigure $cn_package"
+}
- config_changed=1
- fi
- done
+# copy template into a temporary file
+copy_template () {
+ local path file template config_new
- # force reconfiguration at the end if package is not upgraded automatically
- if [ "$config_changed" -a "$cn_package" ]; then
- cn_version=$( dpkg -s "$cn_package" | awk '/^Version:/ {print $2}' )
- post_upgrade "pkg $cn_package gt $cn_version || dpkg-reconfigure $cn_package"
- fi
+ path=$1
+ file=$(basename $path)
+ template=$cnup/files/$path.template
+ config_new=$(mktemp /var/lib/carnet-upgrade/$file.XXXXXX)
+ cp $template $config_new
+
+ echo $config_new
}
# restore modified config to their package defaults
# so the upgrade doesn't complain so much
restore_configs () {
- local hostname domain template config_new
- local config_backup
+ local hostname domain config_new memtotal memlimit
# restore simple configs
- restore_config kernel-2.6-cn procps 1:3.2.7-11 /etc/sysctl.conf
- restore_config ntp-cn ntp 1:4.2.4p4+dfsg-8 /etc/ntp.conf
- restore_config apache2-cn apache2.2-common 2.2.9-10+lenny2 /etc/apache2/ports.conf
- restore_config postfix-cn sasl2-bin 2.1.22.dfsg1-23 /etc/default/saslauthd
- restore_config bind9-cn bind9 1:9.5.1.dfsg.P1-1 /etc/bind/named.conf.options
- restore_config amavisd-cn amavisd-new 1:2.6.1.dfsg-1 /etc/cron.daily/amavisd-new
- rm -f /etc/cron.daily/amavisd-new.$backup_ext
- restore_config spamassassin-cn razor 1:2.85-1 /etc/razor/razor-agent.conf
- restore_config kernel-2.6-cn libpam-modules 1.0.1-5 /etc/security/limits.conf
- restore_config samba-cn samba-common 2:3.2.5-4lenny2 /etc/samba/smb.conf
- restore_config '' base-files 5lenny2 /etc/issue /etc/issue.net
- restore_config php5-cn php5-cli 5.2.6.dfsg.1-1+lenny2 /etc/php5/cli/php.ini
- restore_config php5-cn libapache2-mod-php5 5.2.6.dfsg.1-1+lenny2 /etc/php5/apache2/php.ini
+ if pkg kernel-2.6-cn && pkg procps lt 1:3.2.7-11; then
+ if restore_file /etc/sysctl.conf; then
+ postupgrade_reconfigure kernel-2.6-cn
+ fi
+ fi
+
+ if pkg ntp-cn && pkg ntp lt 1:4.2.4p4+dfsg-8; then
+ if restore_file /etc/ntp.conf; then
+ postupgrade_reconfigure ntp-cn
+ fi
+ fi
+
+ if pkg apache2-cn && pkg apache2.2-common lt 2.2.9-10+lenny2; then
+ if restore_file /etc/apache2/ports.conf; then
+ postupgrade_reconfigure apache2-cn
+ fi
+ fi
+
+ if pkg postfix-cn && pkg sasl2-bin lt 2.1.22.dfsg1-23; then
+ if restore_file /etc/default/saslauthd; then
+ postupgrade_reconfigure postfix-cn
+ fi
+ fi
+
+ if pkg bind9-cn && pkg bind9 lt 1:9.5.1.dfsg.P1-1; then
+ if restore_file /etc/bind/named.conf.options; then
+ postupgrade_reconfigure bind9-cn
+ fi
+ fi
+
+ if pkg amavisd-cn && pkg amavisd-new lt 1:2.6.1.dfsg-1; then
+ if restore_file /etc/cron.daily/amavisd-new; then
+ rm -f /etc/cron.daily/amavisd-new.$backup_ext
+ postupgrade_reconfigure amavisd-cn
+ fi
+ fi
+
+ if pkg spamassassin-cn && pkg razor lt 1:2.85-1; then
+ if restore_file /etc/razor/razor-agent.conf; then
+ postupgrade_reconfigure spamassassin-cn
+ fi
+ fi
+
+ if pkg kernel-2.6-cn && pkg libpam-modules lt 1.0.1-5; then
+ if restore_file /etc/security/limits.conf; then
+ postupgrade_reconfigure kernel-2.6-cn
+ fi
+ fi
+
+ if pkg samba-cn && pkg samba-common lt 2:3.2.5-4lenny2; then
+ if restore_file /etc/samba/smb.conf; then
+ postupgrade_reconfigure samba-cn
+ fi
+ fi
+
+ if pkg base-files lt 5lenny2; then
+ restore_file /etc/issue
+ restore_file /etc/issue.net
+ fi
+
+ # restore php.ini
+ memtotal=$(awk '$1 == "MemTotal:" { print int($2/1024) }' /proc/meminfo)
+ if [ $memtotal -gt 1024 ]; then
+ memlimit=64
+ elif [ $memtotal -ge 512 ]; then
+ memlimit=32
+ else
+ memlimit=16
+ fi
+
+ if pkg php5-cn && pkg php5-cli lt 5.2.6.dfsg.1-1+lenny2; then
+ config_new=$(copy_template /etc/php5/cli/php.ini)
+ sed -i "s/^[[:space:]]*memory_limit[[:space:]]*=.*/memory_limit = ${memlimit}M/" $config_new
+ sed -i "s/^[[:space:]]*post_max_size[[:space:]]*=.*/post_max_size = ${memlimit}M/" $config_new
+ if restore_file /etc/php5/cli/php.ini $config_new; then
+ postupgrade_reconfigure php5-cn
+ fi
+ rm -f $config_new
+ fi
+
+ if pkg php5-cn && pkg libapache2-mod-php5 lt 5.2.6.dfsg.1-1+lenny2; then
+ config_new=$(copy_template /etc/php5/apache2/php.ini)
+ sed -i "s/^[[:space:]]*memory_limit[[:space:]]*=.*/memory_limit = ${memlimit}M/" $config_new
+ sed -i "s/^[[:space:]]*post_max_size[[:space:]]*=.*/post_max_size = ${memlimit}M/" $config_new
+ if restore_file /etc/php5/apache2/php.ini $config_new; then
+ postupgrade_reconfigure php5-cn
+ fi
+ rm -f $config_new
+ fi
# check if monitrc is template based
- if [ -f /etc/monit/monitrc -a ! -f /etc/monit/monitrc.$backup_ext ]; then
- template=/usr/share/carnet-upgrade/files/etc/monit/monitrc.template
- config_new=$(mktemp /var/lib/carnet-upgrade/monitrc.XXXXXX)
+ if [ -f /etc/monit/monitrc ]; then
+ # regenerate config from template
hostname=$(hostname)
domain=$(hostname --domain)
-
- # generate config from template
- cp $template $config_new
+ config_new=$(copy_template /etc/monit/monitrc)
check_and_sed "@localhost" \
"s/@localhost/@$hostname.$domain/g" $config_new || true
-
- # compare with running config
- if cmp -s /etc/monit/monitrc $config_new; then
- # restore if running config is generated template
- log "Restoring config file /etc/monit/monitrc"
- cp -av /etc/monit/monitrc /etc/monit/monitrc.$backup_ext
- cp -v /usr/share/carnet-upgrade/files/etc/monit/monitrc.restore \
- /etc/monit/monitrc
- fi
+ restore_file /etc/monit/monitrc $config_new
rm -f $config_new
fi
-
-# restore_config login 1:4.0.18.1 /etc/pam.d/login
-# restore_config mysql-server 5.0.3 /etc/init.d/mysql \
-# /etc/logrotate.d/mysql-server \
-# /etc/mysql/my.cnf
-# restore_config ntpdate 1:4.2.2 /etc/default/ntpdate
-# restore_config oidentd 2.0.8 /etc/default/oidentd
-# restore_config slapd 2.3.30 /etc/default/slapd /etc/init.d/slapd
-# restore_config squirrelmail 2:1.4.9a /etc/squirrelmail/apache.conf
-# restore_config vsftpd 2.0.5 /etc/vsftpd.conf
-# restore_config xinetd 1:2.3.14 /etc/xinetd.conf
-#
-# # orphaned config file - no owner
-# if pkg logcheck-database lt 1.2.54; then
-# rm -vf /etc/logcheck/ignore.d.server/imap
-# fi
-#
-# # aide switched to ucf, move old configs aside
-# if pkg aide lt 0.13.1; then
-# for file in /etc/aide/aide.conf \
-# /etc/cron.daily/aide \
-# /etc/default/aide;
-# do
-# if [ ! -e "$file.$backup_ext" ]; then
-# mv -v "$file" "$file.$backup_ext"
-# fi
-#
-# rm -vf "$file"
-# done
-# fi
-#
-# # register cn changes in ucf managed files
-# for config in /etc/apache/modules.conf \
-# /etc/clamav/clamd.conf \
-# /etc/clamav/freshclam.conf
-# do
-# config_backup=$config.$backup_ext
-# if [ -e $config -a ! -e $config_backup ]; then
-# log "Saving config file $config"
-# cp -av $config $config_backup
-# ucf $config_backup $config
-# fi
-# done
}
# temporary disable listchanges packages to reduce clutter during upgrade
# make a silent installation of carnet and srce keyrings
install_keyrings () {
pkgadd carnet-keyring srce-keyring debian-archive-keyring
- pkgadd dpkg apt debconf python-apt
+ pkgupgrade dpkg apt debconf python-apt dpkg-dev
dpkg-reconfigure carnet-keyring srce-keyring debian-archive-keyring
apt_update
}
# remove unsupported php version
+# but leave the configuration just in case
remove_php4 () {
- # leave the configuration just in case
- pkgrm_only php4-common
+ if pkg php5-cn && pkg php4-common; then
+ pkgrm_only php4-common
+ fi
}
# check if package is orphaned (nothing depends on it)
fi
}
+# check which of the given packages are installed
+grep_installed () {
+ local package installed
+
+ for package in $*; do
+ if pkg $package; then
+ installed="$installed $package"
+ fi
+ done
+
+ echo $installed
+}
+
+# only upgrade packages if they are already installed
+pkgupgrade () {
+ local packages
+
+ packages=$( grep_installed $* )
+
+ if [ "$packages" ]; then
+ eval pkgadd $packages
+ fi
+}
+
# make a silent upgrade to new libc6
upgrade_libc () {
- DEBIAN_FRONTEND=noninteractive pkgadd libc6 tzdata
+ DEBIAN_FRONTEND=noninteractive pkgupgrade libc6 libc6-dev tzdata
}
-# upgrade apache2 to lenny
+# upgrade apache2/php5
upgrade_apache2 () {
- local package packages
-
- for package in \
- libapache2-mod-php5 \
- php5-cli \
- php5-cn \
- apache2-cn \
- php5-odbc \
- php5-suhosin \
- php-suhosin-cn
- do
- if pkg $package; then
- packages="$packages $package"
- fi
- done
-
- eval pkgadd $packages
+ pkgrm apache-common # prevents installation of apache2-suexec
+ pkgupgrade libapache2-mod-php5 php5-cli php5-cn apache2-cn \
+ php5-odbc php5-suhosin php-suhosin-cn
}
upgrade_amavis () {
local conf
- # remove init script diversion before upgrade
- if pkg amavisd-cn lt 3:2.6.1-1; then
- if [ -L /etc/init.d/amavis -a -f /etc/init.d/amavis.amavisd-new ]; then
- rm -vf /etc/init.d/amavis
- dpkg-divert --remove /etc/init.d/amavis
- fi
- fi
-
# move old config aside
for conf in /etc/amavisd.conf /etc/amavis/amavisd.conf; do
if [ -e $conf -a ! -e $conf.$backup_ext ]; then
# install new packages
pkgadd amavisd-cn amavisd-new
- # fix new packages
- check_and_sed '^clamd.*5.clamav.log$' \
- 's/^\(clamd.*\)5.clamav.log$/\14\tsocket/g' \
- /etc/init.d/amavisd-cn || true
-
- # check if link got lost
- if pkg amavisd-cn && [ ! -L /etc/init.d/amavis ]; then
- apt-get install --reinstall --yes amavisd-cn
- fi
-
# start new packages
- /etc/init.d/amavis restart
+ /etc/init.d/amavisd-cn restart
}
-# handle freerdius config files upgrade
+# handle freerdius upgrade
upgrade_freeradius () {
- local template config_new password realm
+ local template config_new password realm hostname basedn
pkg freeradius-aai lt 2.1.3-0lenny0 || return 0
- # handle static configs
- restore_config freeradius-aai freeradius 2.1.3-0lenny0 \
- /etc/freeradius/clients.conf \
- /etc/freeradius/hints \
- /etc/freeradius/ldap.attrmap \
- /etc/freeradius/radiusd.conf
-
- # handle template based configs
- template=/usr/share/carnet-upgrade/files/etc/freeradius/eap.conf.template
- config_new=$(mktemp /var/lib/carnet-upgrade/eap.conf.XXXXXX)
- password=$(grep -s '^[[:space:]]*private_key_password[[:space:]]*=' \
- /etc/freeradius/eap.conf)
- cp $template $config_new
- sed -i "s/.*#PASSWORD#.*/$password/" $config_new
- if cmp -s $config_new /etc/freeradius/eap.conf >/dev/null; then
- log "Restoring config file /etc/freeradius/eap.conf"
- cp -v /usr/share/carnet-upgrade/files/etc/freeradius/eap.conf.restore \
- /etc/freeradius/eap.conf
- fi
- rm -f $config_new
-
- template=/usr/share/carnet-upgrade/files/etc/freeradius/proxy.conf.template
- config_new=$(mktemp /var/lib/carnet-upgrade/proxy.conf.XXXXXX)
- realm=$(sed -n '/^[[:space:]]*suffix[[:space:]]*/ {
- s///; s/"//g; s/,dc=/./g; s/dc=//; s/.hr$//; p; q }' /etc/ldap/slapd.conf)
- cp $template $config_new
- sed -i "s/#REALM#/$realm/" $config_new
- if cmp -s $config_new /etc/freeradius/proxy.conf >/dev/null; then
- log "Restoring config file /etc/freeradius/proxy.conf"
- cp -v /usr/share/carnet-upgrade/files/etc/freeradius/proxy.conf.restore \
- /etc/freeradius/proxy.conf
- fi
- rm -f $config_new
-
- # install the new packages
- if ! apt-get -y install freeradius; then
- # freeradius upgrade fails here, try to fix it by creating certificates
- [ -x /etc/freeradius/certs/bootstrap ] && /etc/freeradius/certs/bootstrap
-
- dpkg --configure -a
- apt-get -y -f install
- fi
-
- # finally try to cleanup this mess
+ # aai team prevents a clean upgrade
+ cp -av /etc/freeradius /etc/freeradius.$backup_ext
+ pkgrm freeradius-aai freeradius-ldap freeradius
pkgadd freeradius-aai
}
# upgrade the MTA
upgrade_postfix () {
- pkgadd postfix-cn
+ pkgadd sasl2-bin postfix-cn
if pkg postgrey; then
pkgrm postgrey # not used by postfix-cn anymore
fi
}
+# upgrade bind separately so DNS is not down for too long
+# or breaks postinst scripts of other cn packages that depend on
+# working resolver
+upgrade_bind() {
+ pkgadd bind9-cn
+}
+
get_variable () {
local name=$1 file=$2 val
echo $val
}
-# preserve mail location on upgrade
-upgrade_dovecot () {
- local default_mail_env mail_location
-
- # check if already upgraded
- if ! pkg dovecot-common lt 1.0; then
- return
- fi
-
- # save old mail location
- default_mail_env=$(get_variable default_mail_env /etc/dovecot/dovecot.conf)
-
- # silently upgrade package
- restore_config dovecot-cn dovecot-common 1.0 /etc/dovecot/dovecot.conf
- pkgadd dovecot-cn
-
- # insert old mail location
- mail_location=$(get_variable mail_location /etc/dovecot/dovecot.conf)
- if [ "$default_mail_env" -a ! "$mail_location" ]; then
- check_and_sed '^#mail_location[[:space:]]*=' \
- "s|#mail_location[[:space:]]*=.*|mail_location = $default_mail_env|" /etc/dovecot/dovecot.conf || return 0
-
- if [ -x /etc/init.d/dovecot ]; then
- if [ -x /usr/sbin/invoke-rc.d ]; then
- /usr/sbin/invoke-rc.d dovecot restart
- else
- /etc/init.d/dovecot restart
- fi
- fi
- fi
-}
-
# restore munin configs for silent upgrade
upgrade_munin () {
local config backup hostname domain
fi
}
+# try not to overwrite user modified issue files
fix_issue () {
- cat > /etc/issue <<EOF
-Debian GNU/Linux 5.0 (CARNet Debian 5.0) \\n \\l
+ if cmp /etc/issue $cnup/files/etc/issue.expect.new >/dev/null; then
+ cp -av /etc/issue /etc/issue.$backup_ext
+ cat > /etc/issue <<EOF
+Debian GNU/Linux 6.0 (CARNet Debian 6.0) \\n \\l
EOF
+ fi
- cat > /etc/issue.net <<EOF
-Debian GNU/Linux 5.0 (CARNet Debian 5.0) %h
+ if cmp /etc/issue.net $cnup/files/etc/issue.net.expect.new >/dev/null; then
+ cp -av /etc/issue.net /etc/issue.net.$backup_ext
+ cat > /etc/issue.net <<EOF
+Debian GNU/Linux 6.0 (CARNet Debian 6.0) %h
EOF
+ fi
}
check_archives_space() {
}
check_kernel_space() {
- local available_disk_space kernel_size
+ local available_disk_space kernel_size linux_images metapkg pkg ret
available_disk_space=$(free_space /)
- kernel_size=$(installed_size kernel-2.6-cn)
+ linux_images=$(apt-cache show kernel-2.6-cn | grep ^Depends: \
+ | grep -o 'linux-image[^, ]*')
+ for metapkg in $linux_images; do
+ pkg=$(apt-cache show $metapkg | grep ^Depends: \
+ | grep -o 'linux-image[^, ]*' | head -1)
+ [ "$pkg" ] || continue
+
+ kernel_size=$(installed_size $pkg)
+ ret=$?
+ [ $ret -eq 0 ] && break
+ done
- if [ $? -ne 0 ]; then
+ if [ $ret -ne 0 ]; then
log "Failed to get installed size, skipping check."
return 0
fi
log "Free space in /: ${available_disk_space}MB"
+ log "Kernel package: $pkg"
log "Kernel size: ${kernel_size}MB"
- if LC_ALL=C apt-get --yes --print-uris install kernel-2.6-cn \
+ if LC_ALL=C apt-get -s install kernel-2.6-cn \
| grep -q '^kernel-2.6-cn is already the newest version.$'
then
log "Not checking free space in /: kernel-2.6-cn already installed"
echo $num
}
+
+# make sure carnet-upgrade doesn't get upgraded until the end
+hold_carnet_upgrade() {
+ echo carnet-upgrade hold | dpkg --set-selections
+}
+
+release_carnet_upgrade() {
+ echo carnet-upgrade install | dpkg --set-selections
+}