[26645] in Source-Commits

home help back first fref pref prev next nref lref last post

Re: /svn/athena r25664 - trunk/debathena/config/auto-update/debian

daemon@ATHENA.MIT.EDU (Jonathan Reed)
Tue Jul 31 16:54:43 2012

Date: Tue, 31 Jul 2012 16:54:41 -0400 (EDT)
From: Jonathan Reed <jdreed@MIT.EDU>
To: Geoffrey Thomas <geofft@MIT.EDU>
cc: source-commits@MIT.EDU
In-Reply-To: <alpine.DEB.2.00.1207311333550.11524@dr-wily.mit.edu>
Message-ID: <alpine.DEB.2.02.1207311647510.26390@INFINITE-LOOP.MIT.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

WFM going back to Hardy, and we're using fairly basic apt-get 
invocations:  apt-get -f -y install, apt-get -y update, apt-get -s -y 
dist-ugprade, and --download-only.  The options dealing with conffiles are 
passed to libapt-pkg and friends, and were never aptitude specific.

-Jon

On Tue, 31 Jul 2012, Geoffrey Thomas wrote:

> Plausible. Does this work on all apt-get versions that we support? I feel 
> like some of this apt-get behavior is new-ish.
>
> -- 
> Geoffrey Thomas
> geofft@mit.edu
>
> On Fri, 27 Jul 2012, Jonathan D Reed wrote:
>
>> Author: jdreed
>> Date: 2012-07-27 13:21:07 -0400 (Fri, 27 Jul 2012)
>> New Revision: 25664
>> 
>> Modified:
>>   trunk/debathena/config/auto-update/debian/athena-auto-update
>>   trunk/debathena/config/auto-update/debian/changelog
>> Log:
>> In auto-update:
>>  * Give up and switch to apt-get, because aptitude is incompetent (Trac:
>>    #1020, #1026, #1145
>>  * Drop support for reactivate-1.x machines.
>> 
>> 
>> Modified: trunk/debathena/config/auto-update/debian/athena-auto-update
>> ===================================================================
>> --- trunk/debathena/config/auto-update/debian/athena-auto-update 
>> 2012-07-27 14:40:33 UTC (rev 25663)
>> +++ trunk/debathena/config/auto-update/debian/athena-auto-update 
>> 2012-07-27 17:21:07 UTC (rev 25664)
>> @@ -1,6 +1,7 @@
>> #!/bin/sh
>> 
>> complain() {
>> +  echo "ERROR: $*"
>>   logger -t "athena-auto-update" -p user.notice "$*"
>>   updstatus="failed"
>>   updmsg="$*"
>> @@ -15,6 +16,7 @@
>>   else
>>       updstatus="warning"
>>       updmsg="$*"
>> +      echo "WARNING: $*"
>>   fi
>> }
>> 
>> @@ -137,7 +139,6 @@
>>     echo "** Ending Athena auto-update at $(date)"
>>     echo "-----"
>>     echo
>> -    rm -f /etc/apt/apt.conf.d/99zzzzzdebathena-inhibit-pre-and-post-hooks
>>     rm -f $pidfile
>>     rm -f /var/run/athena-nologin
>>     save_state
>> @@ -226,10 +227,10 @@
>>    fi
>> fi
>> 
>> -echo "Running aptitude install"
>> -if ! v aptitude --quiet --assume-yes install; then
>> -  # Don't fail, because make dpkg --configure -a will save us
>> -  echo "ERROR: aptitude install failed, but continuing anyway"
>> +echo "Running apt-get install"
>> +if ! v apt-get --fix-broken --assume-yes install; then
>> +  # Don't fail, because maybe dpkg --configure -a will save us
>> +  echo "ERROR: apt-get install failed, but continuing anyway"
>> fi
>> 
>> 
>> @@ -265,9 +266,9 @@
>>     exit
>> fi
>> 
>> -# Update the aptitude cache.
>> -if ! v aptitude --quiet --assume-yes update; then
>> -  complain "aptitude update failed"
>> +# Update the apt cache.
>> +if ! v apt-get --assume-yes update; then
>> +  complain "apt-get update failed"
>>   exit
>> fi
>> 
>> @@ -293,44 +294,29 @@
>> 
>> # Exit quietly (except for perhaps rebooting) if there are no upgrades
>> # to take.
>> -pattern='^0 packages upgraded, 0 newly installed, 0 to remove'
>> -if v aptitude --simulate --assume-yes full-upgrade | grep -q "$pattern"; 
>> then
>> +pattern='^0 upgraded, 0 newly installed, 0 to remove'
>> +if v apt-get --simulate --assume-yes dist-upgrade | grep -q "$pattern"; 
>> then
>>   echo "Nothing to do!"
>>   save_success "No updates"
>>   maybe_reboot
>>   exit
>> fi
>> 
>> -echo "Inhibiting dpkg-preconfigure to work around aptitude bugs..."
>> -cat > /etc/apt/apt.conf.d/99zzzzzdebathena-inhibit-pre-and-post-hooks 
>> <<APTCONF
>> -// This file should only exist while an auto-update is in progress.
>> -// It will be removed without notice.  You have been warned.
>> -#clear DPkg::Pre-Install-Pkgs;
>> -#clear DPkg::Post-Invoke;
>> -#clear DPkg::Pre-Invoke;
>> -APTCONF
>> -
>> # Download packages first.
>> -if ! v withtimeout aptitude --quiet --assume-yes --download-only 
>> full-upgrade; then
>> +echo "Downloading packages..."
>> +if ! v apt-get --quiet --assume-yes --download-only dist-upgrade; then
>>   complain "download failed"
>>   exit
>> fi
>> 
>> -# If the debathena-reactivate package is installed, call into the
>> -# login snapshot script to create a root snapshot for the next update.
>> -if [ -x /usr/sbin/athena-login-snapshot ]; then
>> -  echo "** Creating root snapshot"
>> -  /usr/sbin/athena-login-snapshot update-start
>> -fi
>> -
>> -APTITUDE_OPTS=
>> +APTGET_OPTS=
>> case $UPDATE_FORCE_CONFFILE in
>>     old)
>> -	APTITUDE_OPTS="-o Dpkg::Options::=--force-confold"
>> +	APTGET_OPTS="-o Dpkg::Options::=--force-confold"
>> 	export UCF_FORCE_CONFFOLD=1
>> 	;;
>>     new)
>> -	APTITUDE_OPTS="-o Dpkg::Options::=--force-confnew"
>> +	APTGET_OPTS="-o Dpkg::Options::=--force-confnew"
>> 	export UCF_FORCE_CONFFNEW=1
>> 	;;
>>     *)
>> @@ -340,37 +326,26 @@
>> esac
>> 
>> 
>> -# Perform the update.  In some corner cases, aptitude might decide
>> +# Perform the update.  In some corner cases, apt-get might decide
>> # that the best course of action is to remove the Debathena
>> # metapackage, so be paranoid about that.
>> -v aptitude --quiet --assume-yes keep-all
>> -v withtimeout aptitude --quiet --assume-yes --download-only dist-upgrade
>> -rm -f /etc/apt/apt.conf.d/99zzzzzdebathena-inhibit-pre-and-post-hooks
>> -if result=$(aptitude -F "%p" search '?action(remove) (^debathena-cluster$ 
>> | ^debathena-workstation$ | ^debathena-login$ | ^debathena-standard$ | 
>> ^openafs-modules-~D^linux-image-)')
>> -  [ -n "$result" ]; then
>> -  echo "** metapackages would be removed by the update, aborting:" $result
>> -  v aptitude --quiet --assume-yes keep-all
>> -  complain "metapackages would be removed by update:" $result
>> -elif result=$(aptitude -F "%p" search '~b')
>> -  [ -n "$result" ]; then
>> -  echo "** packages would be broken by the update, aborting:" $result
>> -  v aptitude --quiet --assume-yes keep-all
>> -  complain "packages would be broken by update:" $result
>> +result="$(apt-get --quiet --assume-yes --simulate dist-upgrade)"
>> +if [ $? -ne 0 ]; then
>> +    complain "apt-get simulation failed!"
>> +elif echo "$result" | egrep -q '^Remv 
>> debathena-(cluster|workstation|login-graphical|login|standard|auto-update) 
>> '; then
>> +    complain "metapackages would be removed by update:" $result
>> else
>> -  if v aptitude $APTITUDE_OPTS --quiet --assume-yes install; then
>> +  if v apt-get $APTGET_OPTS --quiet --assume-yes dist-upgrade; then
>>     # Successful update, reset $updlast
>>     updlast=$(date +"%s")
>>     save_success "Successful update"
>> +  else
>> +    complain "Simulation was successful, but update failed (shouldn't 
>> happen)"
>>   fi
>> fi
>> 
>> # Finally, update the apt-file cache
>> v apt-file update
>> 
>> -if [ -x /usr/sbin/athena-login-snapshot ]; then
>> -  echo "** Cleaning up root snapshot"
>> -  /usr/sbin/athena-login-snapshot update-end
>> -fi
>> -
>> maybe_reboot
>> exit
>> 
>> Modified: trunk/debathena/config/auto-update/debian/changelog
>> ===================================================================
>> --- trunk/debathena/config/auto-update/debian/changelog	2012-07-27 
>> 14:40:33 UTC (rev 25663)
>> +++ trunk/debathena/config/auto-update/debian/changelog	2012-07-27 
>> 17:21:07 UTC (rev 25664)
>> @@ -1,11 +1,13 @@
>> debathena-auto-update (1.37) unstable; urgency=low
>>
>>   * Bump debian/compat to 6
>> -  * Inhibit all dpkg pre- and post- hooks during the download phase (Trac: 
>> #1020)
>>   * Be more verbose in auto-upgrade
>>   * rotate auto-upgrade logs
>> +  * Give up and switch to apt-get, because aptitude is incompetent (Trac:
>> +    #1020, #1026, #1145
>> +  * Drop support for reactivate-1.x machines.
>> 
>> - -- Jonathan Reed <jdreed@mit.edu>  Fri, 27 Jul 2012 10:40:22 -0400
>> + -- Jonathan Reed <jdreed@mit.edu>  Fri, 27 Jul 2012 13:14:14 -0400
>> 
>> debathena-auto-update (1.36) unstable; urgency=low
>> 
>> 
>> 
>

home help back first fref pref prev next nref lref last post