[11/10/2008]
Version 0.5.0
Wheee!
This version introduces the GTK+ frontend. Thanks are due to Obey Arthur Liu for providing code, ideas and energy to the project, and to Google for funding his work through their Summer of Code program in 2008.
This is an EXPERIMENTAL, DEVELOPMENT release. It can be used for package management, but there may be bugs, there are probably places that need improvement, and it is certainly incomplete.
New features:
Integrated the GTK+ frontend written by Obey Arthur Liu for the 2008 Google Summer of Code. To manually suppress the GUI, run
or set the optionaptitude --no-gui
toAptitude::Start-Guifalse.Added Xapian support. Unadorned strings in search patterns now search the apt Xapian database built by Enrico Zini. There is also a new search term
that does the same thing.?termAdded the command-line option
to display why aptitude made the decisions it did in--show-resolver-actions
.aptitude safe-upgrade
Known Regressions:
Incremental searching in the curses frontend is made much less useful by introducing Xapian. It still works, but because Xapian searches don't find substrings, the search will fail to match anything until you finish typing the entire search string.
Documentation for the GTK+ frontend has not yet been written.
[9/5/2008]
Version 0.4.11.10
Upon the empty winds of time
Bug fixes:
Serious bugs:
Never, ever remove an Essential package from the curses UI without asking the user first. I chose a very simple implementation for this patch because of the pending release of lenny, and so users who are removing Essential packages will get prompted twice. But I feel this is better than occasionally not prompting at all; it will be cleanup up later, once lenny is out.
Minor bugs:
Fix displaying the section descriptions in non-UTF-8 locales. (Closes: bug #483464)
Add the
search term, which was documented in some areas but not others, and wasn't actually implemented due to an oversight.?task
Documentation bugs:
A whole pile of minor improvements suggested by
jidanni
. (Closes: bug #497374, bug #497340, bug #496726, bug #471347, bug #496719, bug #496729, bug #496732, bug #497333, bug #497336, bug #497726, bug #497969)Give the right name for the preview limit configuration option: it's
, notAptitude::UI::Preview-Limit
.Aptitude::Preview-LimitGenerate the HTML documentation in a UTF-8 encoding.
Translation fixes:
- Brazilian Portuguese (Closes: bug #496613)
- Czech (Closes: bug #497287)
- Dutch (Closes: bug #497965)
- Kurdish
- Japanese (Closes: bug #494816)
- Lithuanian (Closes: bug #496504)
- Norwegian Bokmål
- Simplified Chinese (Closes: bug #497550)
- Ukranian
[8/3/2008]
Version 0.4.11.9
This message brought to you courtesy of the Friends of Poland society.
Bug fixes:
Minor bugs:
Don't annoy every Polish user with a warning about a badly formed string in the aptitude-defaults configuration file. Also added some documentation for translators telling them about the pitfall that led to this bug happening. (Closes: bug #483459)
Fix some case fallthroughs that would cause the wrong information to appear in the
archive
(%t) column for virtual packages.Correctly handle install-and-mark-auto commands that are targeted at a particular version, like
. Previously aptitude would completely ignore the archive in this case.install foo/testing+M
Translation fixes:
- German
- Slovak
- Swedish (Closes: bug #490782, bug #490818)
[7/4/2008]
Version 0.4.11.8
Happy Fireworks Day.
Bug fixes:
Minor bugs:
Fix a long-standing and annoying bug that would cause aptitude to sometimes delete package lists if downloading new copies failed. (Closes: bug #201842, bug #479620)
I'm happy to announce that Obey Arthur Liu, one of the students assigned to Debian for the 2008 [Google Summer of Code][soc], is working on a GTK+ interface for aptitude. His GTK+ interface will be a completely new interface for aptitude, designed from scratch to exploit the capabilities of a graphical environment while building on the backend code that underlies the command-line and curses interfaces.
You can find Arthur's development blog, with the latest news regarding his progress on this project, at http://www.milliways.fr.
Posted Mon Jun 30 21:06:00 2008[6/28/2008]
Version 0.4.11.7
Yes I can
Internal changes:
- Fix several compilation errors on exotic architectures. (Closes: bug #488132)
Translation updates:
- Basque
- Portuguese (Closes: bug #482094)
- Thai
[6/21/2008]
Version 0.4.11.6
Take two
Internal changes:
- Fixed several places where the code was a bit sloppy in ways that
were harmless at the moment but were turned up by
-Wall -Werror.
- Fixed several places where the code was a bit sloppy in ways that
were harmless at the moment but were turned up by
[6/21/2008]
Version 0.4.11.5
A tisket, a tasket
Bug fixes:
Crashes and serious errors:
aptitude will no longer suggest removing Essential packages to fulfill dependencies unless you explicitly allow it to. Also, removing apt (if it is allowed) will be scored as if apt were an Essential package, meaning that it should show up last in any list of solutions. (Closes: bug #486748)
Minor bugs:
andaptitude add-user-tag
will return 0 instead of a random value when they succeed.aptitude remove-user-tagTranslation updates:
Dutch (Closes: bug #486858)
- Romanian (Closes: bug #486934)
Internal changes:
Consistently build with
-Wall -Werror(it wasn't being used in all subdirectories of the code).Clean up various minor and potential bugs turned up by increasing the warning level.
[6/7/2008]
Version 0.4.11.4
Turn down the suck.
New features:
now properly handles both patterns and things like version specifiers that contain a tilde.aptitude downloadNew option
to--disable-columns
that prevents aptitude from trying to reformat its output into columns. This should be useful for people trying to call aptitude from scripts. (Closes: bug #136874)search
Crashes and serious errors:
- Fix a problem with assigning scores in the dependency resolver that severely distorted the relative weights of packages. If a package conflicted with a virtual package that it also provided and replaced, aptitude would randomly score some of its versions as if they were full replacements of the current version. This could lead to surprising and wrong resolver outputs. (Closes: bug #483920)
Documentation bugs:
Fix some broken internal links.
The manpage formatting of
<literal>elements is correct now. They're bolded, and literal file extensions don't get misinterpreted as groff escapes. (Closes: bug #473580)
Translation updates:
Install defaults files for locales that contain an underscore, like pt_BR. (Closes: bug #483620)
Russian. (Closes: bug #483943)
[5/26/2008]
Version 0.4.11.3
Not looking back.
Crashes and serious errors:
should work now. (Closes: bug #477165)aptitude unholdFixed viewing changelogs at the command-line, which was almost totally broken in recent releases. (Closes: bug #481458)
Fix getting the changelogs of bin-nmued packages from the curses interface. (Closes: bug #333468) For some reason when this was fixed for the command-line mode, the equivalent change didn't make it into the curses codebase.
Don't die with an assertion error when
--show-whyis used in the presence of impure virtual packages.
Cosmetic and UI bugs:
Always be at least as quiet as the user requested; when aptitude automatically enabled quietness if its output wasn't a TTY, it could actually become less quiet than otherwise! (Closes: bug #476749)
If the user asks for the justification of a manually installed package, try to find a nontrivial answer (some other package that requires it) instead of just telling them that it's already installed. (Closes: bug #477038)
Remove an incorrect hyphen in the output of
--help. (Closes: bug #476835)When the resolver is run several times in a row without user interaction (for instance, in
), only printsafe-upgrade
once.Resolving dependencies...When listing the complete chains of dependencies that are holding a package on the system, show
asAprovided byB
, notA <-P B
. (i.e., add a space afterAP<- B
)A
Build system fixes:
VPATH should be supported better in
doc/.Most files will generate Doxygen output now (they were missing
\filetags).
Documentation bugs:
Clarify how aptitude's search language behaves in some syntactic corner cases, like
: the~nname?installed
is part of the string parameter to the first matcher, not the start of a new match term?
.?installedChange the documentation of
: it shows why packages should be installed, not why they can be installed, and be clearer about what happens whenaptitude why
is called with a single argument.whyFix the manpage to talk about
Recommends-Importantinstead ofInstall-Recommends. (Closes: bug #480533)
Translation updates:
- Brazilian Portuguese (Closes: bug #481007)
- Danish (Closes: bug #476732)
- French
- Galician (Closes: bug #476837)
- German (Closes: bug #476344)
- Japanese
- Norwegian Bokmal (Closes: bug #480063)
- Polish (Closes: bug #480062)
- Simplified Chinese (Closes: bug #475740)
- Vietnamese (Closes: bug #477295)
[4/9/2008]
Version 0.4.11.2
How far the sky,
how cold the night,
how still the flowing river.
How sharp the air --
so pure the light --
beneath Orion's quiver.
Beneath the frozen, staring,
starry sky we lay a-shiver.
New features:
- The information area can display tabs for the alternative views it supports. This is off by default because I found that it was too intrusive (mainly because it appears between the short and the long description of a package). If cwidget gets the ability to put tabs at the bottom of multiplex widgets, I might change this.
Documentation bugs:
- Fix several XML errors in the manpage source (Closes: bug #473722)
Bug fixes:
Crashes and serious errors:
Make the safe resolver not explode exponentially when new Recommendations are present.
The root cause here was that the
mandate
mechanism the safe resolver uses to ensure that it progresses monotonically towards a solution didn't work in the presence of Recommends, so the resolver ended up exploring the entire space of possible resolutions to packages' Recommendations. This is the as large as the power set of the list of recommendations, hence the exponential behavior. (Closes: bug #474680)Don't crash if a package's Section is empty. (Closes: bug #474115)
Cosmetic and UI bugs:
The
why installed
information display in the package list will now display an informative message when no package is selected, the same way that therelated dependencies
display does.The
why installed
information display should work better for newly installed packages now.
prints more information about the libraries it was compiled against.aptitude --version
prints a correct copyright date now.Help -> AboutThe status indicator has been rewritten so that it no longer needs numeric conjugation (meaning it won't say
). (Closes: bug #486186 and friends)there are 1 update
andwhy
now appear in the list of commands inwhy-not
. (Closes: bug #454088)aptitude --help
Minor bugs:
Use a
latch
configuration option to migrate fromRecommends-Important, instead of just clobbering the old option. (Closes: bug #473872)Treat packages that were removed but whose configuration files remain on the system as if they're not installed in the output of
--show-why.
This fixes some cases where
--show-whywould hide the reasons for some installations.
Translation updates:
Galician (Closes: bug #474672)
Vietnamese (Closes: bug #473719)
[3/30/2008]
Version 0.4.11.1
No, no, fool, I said bring me the FLUFFY Bunny Slippers of EXTREME Dismemberment, not the EXTREME Bunny Slippers of FLUFFY dismemberment! Does an evil overlord have to do everything himself around here?
New features:
The command-line argument
--show-whywill cause all installation and removal commands to display a brief summary of the dependencies related to an installation or removal. For instance:The following NEW packages will be installed: libboost-iostreams1.34.1{a} (for wesnoth) wesnoth wesnoth-data{a} (for wesnoth) wesnoth-music{a} (for wesnoth)Note that
wesnoth-musicis a dependency ofwesnoth-data, notwesnoth.--show-whydisplays the manually installed package behind each automatic installation. If-vis passed on the command-line, it displays the entire chain of dependencies leading to each manual package.--show-whyalso handles upgrades:The following packages will be upgraded: klibc-utils libklibc (for klibc-utils)
--show-whyis limited to the capabilities of the logic behind
. Althoughaptitude whylibklibcmight be the package that was originally marked for upgrade,--show-whyhas no knowledge of this fact: it just knows thatklibc-utilsrequireslibklibc.In the ncurses interface, added a menu entry to cycle the display in the lower pane (equivalent to pressing
but more discoverable).iThe ncurses interface now displays the number of packages in a tree next to the tree header, and in the information area when the header is highlighted.
The header for the list of versions in the ncurses interface now reads
Versions of <package>
instead of justVersions
.A new extract-cache-subset command that will create a reduced copy of the package cache, removing all but a given list of packages and all references to packages not in the list. It's intended for, e.g., generating test cases for package managers.
Bug fixes:
Crashes and serious errors:
Handle exceptions thrown by the Debtags constructor (e.g., when debtags has been purged and there are no data files) instead of just crashing. (Closes: bug #472695)
Eliminate a case where we would access uninitialized memory while starting up, found thanks to valgrind.
Cosmetic and UI bugs:
Correct the documentation within the on-line help of how to leave the on-line help (it was never updated when the help went from being a dialog to being a top-level view).
Correctly save changes to string configuration options. (Closes: bug #471315)
Don't print an error on startup when debtags isn't installed. (Closes: bug #472678)
Use less technical language when
why
fails to find a derivation forA transitively requires B
.Eliminated some cases where description signals for tree headings weren't being connected. These weren't noticable in the past because in most cases, the heading had no description anyway.
Translation updates:
The aptitude-defaults.* files are now installed to /usr/share/aptitude. (Closes: bug #472625)
Simplified Chinese (Closes: bug #458162, bug #473363).
Vietnamese (Closes: bug #473229)
[3/15/2008]
Version 0.4.11
When you're tired of being beat with a stick, you're tired of Debian.
New features:
Search terms can be named with words instead of single-character flags. Each new-style search expression starts with a question mark (
), followed by the name of the matcher; for instance,?
is equivalent to the old-style expression?obsolete
. At the command-line, package names containing question marks are treated as search expressions, just like package names containing tildes (~o
) are.~The old-style syntax is still present and works just like it did previously. See the reference manual for complete documentation of the new syntax.
This will hopefully make the search syntax more memorable and make it clearer what a given search expression actually does. In addition, this opens up the possibility of greatly expanding the number of search patterns supported by aptitude (the requirement to choose a meaningful and unique single character had become a major limiting factor in the ability to add new search terms).
New search terms:
New search terms added to aptitude 0.4.11 Term Meaning ?source-package(expr) matches packages whose source package matches the given regular expression. ?source-version(expr) matches packages whose source version matches the given regular expression. ?all-versions(expr) matches a package if expr matches all versions of that package. ?any-version(expr) matches a package if expr matches any single version of that package. ?user-tag(pattern) matches a package if it has an attached user-tag matching the given regexp (see below). ?for var: expr binds var inside expr to the package or version being tested. ?bind(var, expr) matches anything if the package or version bound to var matches expr. ?=var matches the package or version bound to var by an enclosing ?for. For instance,
will match any package X that depends on a package that recommends X.?for x: ?depends(?recommends(?=x))aptitude now supports attaching arbitrary strings to packages, known as
user tags
(to distinguish them from debtags tags). The following commands will manipulate user tags:aptitude add-user-tag tag package... aptitude remove-user-tag tag package...Each of these commands will add user tags to or remove them from one or more packages (possibly selected using search expressions). In addition, all command-line actions that modify package state now take the following optional arguments:
--add-user-tag TAG --add-user-tag-to TAG PATTERN --remove-user-tag TAG --remove-user-tag-from TAG PATTERNThe variants that take a
PATTERNwill add tags to or remove tags from any packages that match the givenPATTERN. (e.g.:
). The variants that do not take a--add-user-tag-to installed-for-build-dep ?action(install)PATTERNwill affect any package that is being modified (this is equivalent to using the pattern
).?not(?action(keep))The ?user-tag(tag) matcher will select packages with a tag matching the given regular expression. User tags also show up at the end of package descriptions, next to the list of debtags tags for a package.
All command-line actions that modify package state now accept the arguments
--safe-resolverand--full-resolver.--safe-resolverforces the command to use the same resolver logic as--safe-upgrade(e.g.,
to install exim4 as long as it can be installed without removing any packages).aptitude install --safe-resolver exim4--safe-resolvercan be enabled in the config file by settingAptitude::Always-Use-Safe-Resolverto
; passingtrue--full-resolverwill override this configuration option.The option
--no-new-installsand the new option--no-new-upgradeswill control whether the safe resolver attempts to install new packages or upgrade installed packages.Future versions of aptitude will enable this logic in the curses UI as well, but I haven't decided how it should be exposed yet.
The aptitude dependency resolver will now refuse to adjust held packages or install forbidden versions unless you manually allow it to. This behavior can be disabled by setting
Aptitude::ProblemResolver::Allow-Break-Holdsto
.falseaptitude will still break holds when packages are being automatically installed; there is a pending patch against apt that eliminates this behavior.
The aptitude dependency resolver will add a bonus to solutions that remove a package and install another package that fully replaces it by declaring a conflicts/provides/replaces relationship. (Closes: bug #466374)
aptitude now has a
command that will install build-dependencies from the command-line. (Closes: bug #243317)build-depA new
variant of the section grouping policy is introduced in this release, courtesy of Paul Donahue, and is enabled by default. This will behave just like the old sectioning policy, except that if a section has several components (for instance, games/arcade/space), they will all be realized as tree levels in aptitude.subdirsA side effect of this change is that section descriptions are no longer hard-coded in the source (see the documentation of
Aptitude::Sections::Descriptions).Command-line updates in aptitude will now list packages that are newly obsolete. This doesn't work when a source is removed and all its packages become obsolete, for technical reasons.
aptitude now uses libept to handle debtags information instead of a slow and wrong internal implementation. (Closes: bug #397652, bug #406201)
will merge new package information into the debtags database automatically by runningaptitude update
.debtags update --local
Bug fixes:
Cosmetic and UI bugs:
The curses interface now uses a spinner to indicate download progress, since the percentage measurement can't be made correct in the current apt model.
Remove some stray
cw::strings that made it into user-visible messages (thanks to Jacobo Tarrio for pointing them out).Interpret
%-escapes in the descriptions of configuration options instead of displaying them to the user; thanks to Jens Seidel for pointing this out.At the command-line prompt, don't list packages that aren't being upgraded unless the user tried to upgrade them. e.g.,
will no longer spew the entire list of pending upgrades to the terminal.aptitude install fooWhen displaying dependencies or version numbers at the command-line (i.e.,
-Dor-Vis passed), add an extra space between packages, to make it a little more obvious which tags
to which package.belongIf the resolver is allowed to produce the solution 'cancel all actions' (i.e.,
isAptitude::ProblemResolver::Discard-Null-Solutionfalse), the brief indicator in the UI will say that it cancels all the pending actions instead of counting its component actions.When displaying the packages that could satisfy a versioned dependency, don't list packages that provide the package name unless they declare a versioned provides that matches the dependency's version restriction. (Closes: bug #464131)
Don't try to generate and then parse a matcher when searching for packages that look like what the user typed; instead, write explicit code to compare against package names and descriptions.
This allows aptitude to find similar package names even if the corresponding command-line argument is an invalid search pattern (without having to write complex escaping logic); e.g.,
does something sensible instead of printing a confusing error message.aptitude install +5- If the user enters
during command-line dependency resolution, quit the program instead of falling back to manual resolution; manual resolution is only used if automatic resolution hits a fatal error or if the user requests it by typingq
. (Closes: bug #459629)x
Translation bugs:
Generate
POTFILES.inautomatically, so it stays up-to-date without requiring manual intervention.Flag
W_()as a translation marker; failure to do this caused a lot of strings to be incorrectly left out of the translation files; pointed out by Jens Seidel.Fix translation of strings displayed by the options editor (they weren't getting translated at all); thanks to Jens Seidel for reporting this.
Minor bugs:
Fix task handling in the case that different versions of a package are in different tasks. (Closes: bug #459348)
will now attempt to automatically maximize the upgrade. Hopefully this will eliminate the situation where you runsafe-upgrade
and then discover that there are still some upgradable packages.aptitude safe-upgrade
Crashes and serious errors:
aptitude will now build with g++ 4.3, assuming that 4.3-compatible versions of cwidget and sigc++ are installed. (Closes: bug #452204, bug #452540)
Reduce the translation percent threshold for the various versions of the manual until it compiles. (Closes: bug #470054)
aptitude now uses
Apt::Install-Recommendsinstead ofAptitude::Recommends-Importantto control whether recommendations are automatically installed. (Closes: bug #458189, bug #448561) Old configurations will be migrated to the new configuration option, if possible.
Among other things, this means that
--without-recommendsworks again (it was broken when recommends handling moved to apt).Ensure the resolver state is always synchronized with the package cache, eliminating some cases where the resolver would break or produce wrong answers. (Closes: bug #421395, bug #432411)
Don't crash at the command-line when displaying the version numbers of packages being removed that don't have an installation candidate; also, the version display for removed packages is now meaningful. (Closes: bug #459336)
Don't crash at the command-line when displaying the version numbers of packages in the ConfigFiles state that are being purged; instead, display
as the removed version. (Closes: bug #461669)Config Files
As a side note: the code in question has been adjusted to be robust against bad version pointers, and should display
instead. If you see this, it's a bug, but at least aptitude won't crash in this case.??- Don't crash in
when the package lists can't be parsed for some reason; instead just go ahead and download new ones. (Closes: bug #468751)aptitude update
Documentation bugs:
Fix the documented default keybinding for
PrevPage.The documentation of searching has been substantially rewritten, and is hopefully much more useful now. In particular, there's more information about how versions are handled, and a concise table listing all the search expressions supported by aptitude.
Document some of the files aptitude uses in a
FILESsection in the manpage (Closes: bug #470839).
Translation updates:
Basque
French
- Christian Perrier: Fix the use of quote in the French translation (Closes: bug #460808).
Galician
German (thanks to Jens Seidel)
Japanese (thanks to Noritada Kobayashi)
Norwegian Bokmål
Portuguese
Romanian (thanks to Eddy Petrișor)
Russian
Simplified Chinese
Slovak
Spanish
Vietnamese
The aptitude Web page has moved to an Ikiwiki instance on algebraicthunk. The page here is incomplete and needs work, but it's already more complete than the old one was.
I need to work out how to automatically get a current version of the aptitude documentation posted on the Web. The easiest approach might be to just automatically fetch the unstable .debs and unpack them by hand (ick). Building on algebraicthunk will require some changes to the aptitude build scripts, which currently require an unstable version of apt to do anything; adding a way to disable building the program and just make docs would help here.
Posted Sun Dec 2 17:07:00 2007