[Aptitude-devel] 0.5.1 is out there

Daniel Burrows dburrows at debian.org
Mon Jan 19 15:45:10 UTC 2009


  You may have noticed that I wrote a changelog entry for 0.5.1
and tagged it last night.  The package will hit experimental when the
ftpmasters get around to approving it.  Probably nothing surprising to
anyone who's been following the source tree, although I did get around
to implementing resolver hints over the weekend.

  Here's the full text of the release announcement:

[1/18/2009]
Version 0.5.1                               "One step at a time"

- New features:

  + [all] New match term: ?term-prefix(term).  This is like ?term(),
          but it searches the Xapian database for any term which is an
          extension of ?term.  For instance, ?term-prefix(hour)
          matches any package that contains the terms "hour",
          "hourglass", "hourly", etc.

  + [all] If the user asks for the changelog of a version of a package
          that's currently installed, aptitude will use the local copy
          instead of downloading a new copy off the network.  If the
          local copy can't be used for some reason, aptitude will fall
          back to downloading a copy.

  + [all] Implemented resolver hints: you can now place options in
          apt.conf that control how the aptitude resolver treats
          particular packages.  For a full discussion see the user's
          manual, but here is a flavor:

          Aptitude::ProblemResolver::Hints
          {
            "reject pulseaudio";          // Prevent the "pulseaudio"
	    	    			  // package from being installed
					  // by the aptitude resolver.
            "approve ?name(emacs[0-9]*)"; // Always choose emacsNN over
                                          // any alternatives.
            "300 ?true /unstable";        // Give a 300-point bonus to
	    	       			  // any version in the
					  // "unstable" archive.
          };

          Currently these hints do not influence the choices made
          by the "immediate" dependency resolver (the one that runs as
          soon as you mark a package for installation).

  + [gtk] aptitude now parses the dpkg status pipe, so it can show a
          progress bar while dpkg is running.  Closing the terminal
          tab does not terminate the install; only destroying the
          progress bar does that.

  + [gtk] The search entry box's background will turn slightly red if
          the current text is not a valid search pattern.

  + [gtk] If the user enters an invalid search pattern into the search
          entry box, the error will be shown below the box (rather
          than being shoved onto the apt errors pane).

  + [gtk] aptitude prompts for confirmation before killing a download
          or a dpkg process.  The download prompt might be
          superfluous, but considering the possible side-effects of
          killing off dpkg, that prompt will remain for the
          foreseeable future.

  + [gtk] aptitude will print a message to its embedded terminal
          before and after running dpkg.

  + [gtk] A drop-down box of package filters is available under the
          text box where searches are entered.  This lets you quickly
          filter a list of packages by some common criteria (showing
          only packages that aren't installed).

  + [gtk] The "automatically installed" flags of packages can be
          toggled from the Package menu or from buttons in the
          description pane.

  + [gtk] Undo -> Undo works.

  + [gtk] When viewing a dependency solution, you can choose to see
          the actions in their "logical" order (equivalent to typing
          "o" in the curses front-end).

  + [gtk] In the version information tab (the one you get by
          double-clicking a package), selecting a different version in
          the list of versions causes information for that version to
          be shown instead.

  + [gtk] You can now change which columns are visible in a package
          list by selecting View -> Edit Columns... or by clicking the
          "..."  column heading.

  + [gtk] New package list column: "automatically installed".

          Each value in this column is displayed as a check-box, where
          the box is checked if the package is automatic.  The
          check-box can't currently be clicked because I'm worried
          that people would click it by accident while trying to
          select a package.  Most likely the rendering will be changed
          in the future to look less "clickable".

  + [gtk] New package list column: "archive".

- Crashes and serious errors:

  + [gtk] Fix several crashes, including one at start-up, that were
          caused by some unusual package states.

- Minor bugs:

  + [cmdline] "aptitude why-not" no longer crashes when the final
              argument is a virtual package.

  + [gtk] The "Download started" row in the Downloads page is no
          longer shown.

  + [gtk] The dependency chains tab no longer misses some chains that
          "aptitude why" would show.

  + [gtk] Fix buffer problems due to sprintf by using aptitude's safer
          variant of that function. (Closes: #511559)

  + [gtk] When extracting just the part of a package's changelog that
          corresponds to versions that are newer than the currently
          installed version, truncate the changelog as soon as we see
          the version numbers go "backwards" -- that is, as soon as
          the previous version in the changelog is "newer" than the
          current version.

          This is important because some packages changed their
          version scheme over time.  For instance, g++-4.2 lost its
          epoch in 2004 when the package name changed.  But that
          doesn't mean that those earlier versions of the package
          should be displayed when we want to display the log for
          today's upgrade!

- Cosmetic and UI bugs:

  + [all] The --help output now mentions --gui and --no-gui.

  + [gtk] Many tweaks and improvements to the appearance of the UI;
          particular thanks to Luca Bruno for his patches.  The
          program looks a lot "nicer" overall as a result of his work.

  + [gtk] The RC style "tiny-button-style" is used for tab close
          buttons.

  + [gtk] Use the "yes" icon (a green sphere) to indicate that a
          package is installed and OK.  This is far more recognizable
          for me (dburrows) than the hard disk icon we were using
          before.

  + [gtk] Not-yet-implemented menu options produce a "not implemented"
          message.

  + [gtk] Some menu items are disabled if they don't apply to the
          "currently selected object".

  + [gtk] When the user performs an action on several packages at
          once, any packages they install will be marked as manually
          installed, and package states won't change to fulfill
          dependencies if those dependencies are already satisfied by
          the selected actions.

          For instance, suppose that the user selects A, B, and C for
          installation.  A depends on "D | B", and B depends on C.
          Previously aptitude might decide to install D to fulfill A's
          dependency, and would mark C as automatically installed
          because of B's dependency.  Now, just the three selected
          packages will be installed, and they will all be marked as
          manually instsalled.

- Documentation:

  + [doc] Wrote a new section of the documentation describing the
          various dependency resolution mechanisms in aptitude.  This
          includes the old section on resolving dependencies, but also
          describes the immediate resolver and how to configure the
          full resolver using resolver hints.

- Internal changes:

  + [gtk] Redesigned the dpkg terminal creation code to make it
          cleaner and more maintainable.

  + [gtk] Redesigned the code for the buttons in the package
          description pane.

  + [gtk] Stopped using random bits of the glade file as templates for
          other GUI elements, in preparation for making each tab a
          separate top-level widget in the file.

- Translation fixes:

  + Fix how ngettext is used so that the plurals can be properly
    translated.  (Closes: #505675)

  + Slovak (Closes: #505676)

  Daniel



More information about the Aptitude-devel mailing list