[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Freeze exception request: aptitude 0.6.9-1



Hello

In the build up to Wheezy we have updated aptitude to address many
long-standing, severity: important bugs.  The bulk of these are
associated with processing of command-line arguments and making sure
exit status is non-zero on errors.

The main bugs concerning this are: 121313, 282408, 302784, 434502,
576212, 590686, 639789.  A quick look at those bugs should indicate
that aptitude's current behaviour has long been considered quite
unusable.

These changes can be summarized best by example.  Prior to 0.6.9 the
following command would proceed, ignoring the non-existence of the
first package, not-available version for the second, and the ambiguous
nature of the third:

# aptitude install not-a-package libc6=not-a-version
some-virtual-package; echo $?
…
0

At the end of this command any requested package may or may not have
been installed.  In particular, libc6 may have been installed but
obviously some version other than the requested "notaversion".  The
only way to determine the state of packages after this is to inspect
each, a rather tedious and error-prone operation.

With 0.6.9 any requested package or version which is not found will
cause the program to exit with non-zero status *before* making changes
to the system.  The entire set of command-line arguments must
constitute a unique, valid package system operation; if there is any
ambiguity or error in the arguments the program will not proceed.  It
is not considered sensible to allow a user to restore the old
behaviour of ignoring non-existing packages/versions.

Also imported is the --fix-missing option from apt-get, so that
without this option a failed download will also interrupt package
installation and cause a non-zero exit status.  The old behaviour here
(to proceed even when there are download errors) is configurable in
apt.conf.

The net result is the program is a much better command-line citizen.
If the exit status is 0 then it is reliable to assume that all
requested actions have been completed [subject to interaction with
--assume-yes and the problem resolver].

There are a few programs that interact with aptitude via it's
command-line interface: apt-watch-gnome, pkgsync, tasksel (previous
version), wajig, cron-apt (configurable).  I have performed some
testing on these to verify they are compatible with the changes.  Some
minor breakage to particular setups of these programs, and users
personal scripts and usage patterns, must be anticipated, so it is
preferable for the prepared upload to be made soon.

The new version is available on mentors.d.n, we will not upload
however unless granted a freeze exception.

http://mentors.debian.net/package/aptitude

http://mentors.debian.net/debian/pool/main/a/aptitude/aptitude_0.6.9-1.dsc

I do not attach the patches as the changes to the src tree are over
5000 lines of diff.  Please request this if desired and I will attempt
to provide a relevant patchset.

Here is the full changelog, which documents the important changes:
aptitude (0.6.9-1) unstable; urgency=low

  * New upstream release.
    - See NEWS for full details.
    - Checking for errors on the command-line is much stricter,
      and many commands which would previously run will now
      exit with failure.
      (Closes: #576212, #590686, #282408, #434502)
      (LP: #919216, #585408)
    - An install run will no longer proceed if any
      package was unavailable or failed to download
      correctly, instead an error will be shown
      and exit with non-zero status (100).
      (Closes: #121313, #302784, #639789)
      (LP: #734737)
    - Some commands (search, versions, changelog, …) will exit
      with non-zero status (1, or some times 100) if there were
      no matches for the given arguments.
      (Closes: #675833, #497299)
    - Support downloading changelogs for packages on
      third-party sites by guessing the URI. (LP: #563155)
    - Properly process all -o command line options.
      (Closes: #587671)
    - Package arguments without an arch-qualifier
      will also consider foreign-arch packages, in
      order of preference.  (LP: #892074)
    - Use up-to-date changelog uri construction from apt-get
      using APT::Changelogs::Server.
    - Minor fixes to changelog downloading on the command-line.
      (Closes: #631464, #587775, #537393)
    - Do not group packages as tasks based on their name,
      rather, use their section.  (Closes: #679602)
    - Most errors are now displayed at the end of a command's
      output which makes them easier to spot when there is
      lots of output. (Closes: #430392)
  * Remove dependency on libept, now access debtags and Xapian
    directly.  (Closes: #501732, #504153, #677551)
  * Depend on libxapian instead.
  * Depend on newer version of libapt-pkg for architecture
    specification string support.
  * debian/rules:
    - Clean up extra translated files which po4a is leaving.
  * Translation updates:
    - Polish (Closes: #678153)

There are some additional minor changes entangled with this
(documented in NEWS) but they are not anticipated to cause
regressions.  It was hoped to have this uploaded before the freeze, so
we leave the version as is.  Upon request I can remove the changes
which are deemed unrelated.

Please do not hesitate if you have questions.  One final note, is that
the format of the command-line has not changed, only the strictness of
whether the program proceeds when given dodgey arguments (non-existent
package, version, etc.).

Regards


Reply to: