Package: apt Version: 0.6.45 Severity: wishlist Tags: patch Attached patch adds an option to allow dist-upgrade in cron job. Note that:
- This option detects when a non-stable dist is present in "apt-cache policy", and disables the upgrade in that case. I think it's reasonably safe to do automatic dist-upgrades if you're only running stable. - My patch adds a big warning saying that this is an experimental feature, to ensure noone enables it without knowing the possible implications. -- System Information: Debian Release: testing/unstable APT prefers testing APT policy: (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.16-2-amd64-k8 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
--- debian/apt.cron.daily 2006-03-02 13:48:30.000000000 +0100 +++ /etc/cron.daily/apt 2006-08-24 20:05:56.000000000 +0200 @@ -11,6 +11,11 @@ # "APT::Periodic::Download-Upgradeable-Packages=0", # - Do "apt-get upgrade --download-only" every n-days (0=disable) # +# "APT::Periodic::Upgrade-Packages=0", +# - Do "apt-get dist-upgrade" every n-days (0=disable). THIS IS AN +# EXPERIMENTAL FEATURE, USE IT AT YOUR OWN RISK. It has no effect when +# any distribution other than stable is present in sources.list. +# # "APT::Periodic::AutocleanInterval" # - Do "apt-get autoclean" every n-days (0=disable) # @@ -144,6 +149,7 @@ UpdateInterval=0 DownloadUpgradeableInterval=0 +UpgradeInterval=0 eval $(apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists DownloadUpgradeableInterval APT::Periodic::Download-Upgradeable-Packages) AutocleanInterval=$DownloadUpgradeableInterval eval $(apt-config shell AutocleanInterval APT::Periodic::Autoclean) @@ -176,6 +182,18 @@ update_stamp $DOWNLOAD_UPGRADEABLE_STAMP fi +UPGRADE_STAMP=/var/lib/apt/periodic/upgrade-stamp +if check_stamp $UPGRADE_STAMP $UpgradeInterval; then + # Never attempt this on non-stable distributions! + tmp="^ release o=\(Debian\|Ubuntu\),a=" + if apt-cache policy | grep "${tmp}" | sed -e "s/${tmp}//g" -e "s/,.*//g" | grep -v "^stable$" > /dev/null ; then + exit 0 + fi + unset tmp + apt-get -qq dist-upgrade 2>/dev/null + update_stamp $UPGRADE_STAMP +fi + AUTOCLEAN_STAMP=/var/lib/apt/periodic/autoclean-stamp if check_stamp $AUTOCLEAN_STAMP $AutocleanInterval; then apt-get -qq autoclean