[26646] 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 (Geoffrey Thomas)
Tue Jul 31 17:01:08 2012

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

All right, I clearly have not been paying enough attention to apt-get. ACK

-- 
Geoffrey Thomas
geofft@mit.edu

On Tue, 31 Jul 2012, Jonathan Reed wrote:

> 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