2
Version 0.4.11.2 "How far the sky,
4
how still the flowing river.
7
beneath Orion's quiver.
8
Beneath the frozen, staring,
9
starry sky we lay a-shiver."
13
* The information area can display tabs for the alternative views it
14
supports. This is off by default because I found that it was too
15
intrusive (mainly because it appears between the short and the
16
long description of a package). If cwidget gets the ability to
17
put tabs at the bottom of multiplex widgets, I might change this.
21
* Fix several XML errors in the manpage source (Closes: #473722)
25
+ Crashes and serious errors:
27
* Make the safe resolver not explode exponentially when new
28
Recommendations are present.
30
The root cause here was that the "mandate" mechanism the safe
31
resolver uses to ensure that it progresses monotonically towards
32
a solution doesn't work in the presence of Recommends, so the
33
resolver ended up exploring the entire space of possible
34
resolutions to packages' Recommendations.
36
* Don't crash if a package's Section is empty. (Closes: #474115)
38
+ Cosmetic and UI bugs:
40
* The "why installed" information display in the package list will
41
now display an informative message when no package is selected,
42
the same way that the "related dependencies" display does.
44
* The "why installed" information display should work better for
45
newly installed packages now.
47
* "aptitude --version" prints more information about the libraries
48
it was compiled against.
50
* "Help -> About" prints a correct copyright date now.
52
* The status indicator has been rewritten so that it no longer
53
needs numeric conjugation (meaning it won't say "there are 1
54
update"). (Closes: #486186 and friends)
56
* "why" and "why-not" now appear in the list of commands in
61
* Use a 'latch' configuration option to migrate from
62
Recommends-Important, instead of just clobbering the old
63
option. (Closes: #473872)
65
* Treat packages that were removed but whose configuration files
66
remain on the system as if they're not installed in the output
69
This fixes some cases where --show-why would hide the reasons
70
for some installations.
72
- Translation updates:
74
* Galician (Closes: #474672)
76
* Vietnamese (Closes: #473719)
79
Version 0.4.11.1 "No, no, fool, I said bring
82
Dismemberment, not the
83
EXTREME Bunny Slippers
84
of FLUFFY dismemberment!
85
Does an evil overlord have
86
to do everything himself
91
* The command-line argument --show-why will cause all installation
92
and removal commands to display a brief summary of the
93
dependencies related to an installation or removal. For instance:
95
The following NEW packages will be installed:
96
libboost-iostreams1.34.1{a} (for wesnoth) wesnoth
97
wesnoth-data{a} (for wesnoth) wesnoth-music{a} (for wesnoth)
99
Note that wesnoth-music is a dependency of wesnoth-data, not
100
wesnoth. --show-why displays the manually installed package
101
behind each automatic installation. If -v is passed on the
102
command-line, it displays the entire chain of dependencies leading
103
to each manual package.
105
--show-why also handles upgrades:
107
The following packages will be upgraded:
108
klibc-utils libklibc (for klibc-utils)
110
--show-why is limited to the capabilities of the logic behind
111
"aptitude why". Although libklibc might be the package that was
112
originally marked for upgrade, --show-why has no knowledge of this
113
fact: it just knows that klibc-utils requires libklibc.
115
* In the ncurses interface, added a menu entry to cycle the display
116
in the lower pane (equivalent to pressing "i" but more
119
* The ncurses interface now displays the number of packages in a
120
tree next to the tree header, and in the information area when the
121
header is highlighted.
123
* The header for the list of versions in the ncurses interface now
124
reads "Versions of <package>" instead of just "Versions".
126
* A new extract-cache-subset command that will create a reduced copy
127
of the package cache, removing all but a given list of packages
128
and all references to packages not in the list. It's intended
129
for, e.g., generating test cases for package managers.
133
+ Crashes and serious errors:
135
* Handle exceptions thrown by the Debtags constructor (e.g., when
136
debtags has been purged and there are no data files) instead of
137
just crashing. (Closes: #472695)
139
* Eliminate a case where we would access uninitialized memory
140
while starting up, found thanks to valgrind.
142
+ Cosmetic and UI bugs:
144
* Correct the documentation within the on-line help of how to
145
leave the on-line help (it was never updated when the help went
146
from being a dialog to being a top-level view).
148
* Correctly save changes to string configuration options.
151
* Don't print an error on startup when debtags isn't
152
installed. (Closes: #472678)
154
* Use less technical language when "why" fails to find a
155
derivation for "A transitively requires B".
157
* Eliminated some cases where description signals for tree
158
headings weren't being connected. These weren't noticable in
159
the past because in most cases, the heading had no description
162
- Translation updates:
164
* The aptitude-defaults.* files are now installed to
165
/usr/share/aptitude. (Closes: #472625)
167
* Simplified Chinese (Closes: #458162, #473363).
169
* Vietnamese (Closes: #473229)
172
Version 0.4.11 "When you're tired of
173
being beat with a stick,
174
you're tired of Debian."
178
* Search terms can be named with words instead of single-character
179
flags. Each new-style search expression starts with a question
180
mark ("?"), followed by the name of the matcher; for instance,
181
"?obsolete" is equivalent to the old-style expression "~o". At
182
the command-line, package names containing question marks are
183
treated as search expressions, just like package names containing
186
The old-style syntax is still present and works just like it did
187
previously. See the reference manual for complete documentation
190
This will hopefully make the search syntax more memorable and make
191
it clearer what a given search expression actually does. In
192
addition, this opens up the possibility of greatly expanding the
193
number of search patterns supported by aptitude (the requirement
194
to choose a meaningful and unique single character had become a
195
major limiting factor in the ability to add new search terms).
199
+ ?source-package(expr) matches packages whose source package matches
200
the given regular expression.
201
+ ?source-version(expr) matches packages whose source version matches
202
the given regular expression.
203
+ ?all-versions(expr) matches a package if expr matches all versions
205
+ ?any-version(expr) matches a package if expr matches any single
206
version of that package.
207
+ ?user-tag(pattern) matches a package if it has an attached
208
user-tag matching the given regexp (see below).
209
+ ?for var: expr binds var inside expr to the package or
210
version being tested.
211
+ ?bind(var, expr) matches anything if the package or version
212
bound to var matches expr.
213
+ ?=var matches the package or version bound to
214
var by an enclosing ?for.
216
For instance, "?for x: ?depends(?recommends(?=x))" will match any
217
package X that depends on a package that recommends X.
219
* aptitude now supports attaching arbitrary strings to packages,
220
known as "user tags" (to distinguish them from debtags tags). The
221
following commands will manipulate user tags:
223
aptitude add-user-tag tag package...
224
aptitude remove-user-tag tag package...
226
Each of these commands will add user tags to or remove them from
227
one or more packages (possibly selected using search expressions).
228
In addition, all command-line actions that modify package state
229
now take the following optional arguments:
232
--add-user-tag-to TAG PATTERN
233
--remove-user-tag TAG
234
--remove-user-tag-from TAG PATTERN
236
The variants that take a PATTERN will add tags to or remove tags
237
from any packages that match the given PATTERN. (e.g.:
238
"--add-user-tag-to installed-for-build-dep ?action(install)").
239
The variants that do not take a PATTERN will affect any package
240
that is being modified (this is equivalent to using the pattern
241
"?not(?action(keep))").
243
The ?user-tag(tag) matcher will select packages with a tag
244
matching the given regular expression. User tags also show up at
245
the end of package descriptions, next to the list of debtags tags
248
* All command-line actions that modify package state now accept the
249
arguments --safe-resolver and --full-resolver. --safe-resolver
250
forces the command to use the same resolver logic as
251
--safe-upgrade (e.g., "aptitude install --safe-resolver exim4" to
252
install exim4 as long as it can be installed without removing any
253
packages). --safe-resolver can be enabled in the config file by
254
setting Aptitude::Always-Use-Safe-Resolver to "true"; passing
255
--full-resolver will override this configuration option.
257
The option --no-new-installs and the new option --no-new-upgrades
258
will control whether the safe resolver attempts to install new
259
packages or upgrade installed packages.
261
Future versions of aptitude will enable this logic in the curses
262
UI as well, but I haven't decided how it should be exposed yet.
264
* The aptitude dependency resolver will now refuse to adjust held
265
packages or install forbidden versions unless you manually allow
266
it to. This behavior can be disabled by setting
267
Aptitude::ProblemResolver::Allow-Break-Holds to "false".
269
aptitude will still break holds when packages are being
270
automatically installed; there is a pending patch against apt that
271
eliminates this behavior.
273
* The aptitude dependency resolver will add a bonus to solutions
274
that remove a package and install another package that fully
275
replaces it by declaring a conflicts/provides/replaces
276
relationship. (Closes: #466374)
278
* aptitude now has a "build-dep" command that will install
279
build-dependencies from the command-line. (Closes: #243317)
281
* A new "subdirs" variant of the section grouping policy is
282
introduced in this release, courtesy of Paul Donahue, and is
283
enabled by default. This will behave just like the old sectioning
284
policy, except that if a section has several components (for
285
instance, games/arcade/space), they will all be realized as tree
288
A side effect of this change is that section descriptions are no
289
longer hard-coded in the source (see the documentation of
290
Aptitude::Sections::Descriptions).
292
* Command-line updates in aptitude will now list packages that are
293
newly obsolete. This doesn't work when a source is removed and
294
all its packages become obsolete, for technical reasons.
296
* aptitude now uses libept to handle debtags information instead of
297
a slow and wrong internal implementation. (Closes: #397652,
298
#406201) "aptitude update" will merge new package information into
299
the debtags database automatically by running "debtags update --local".
303
+ Cosmetic and UI bugs:
305
* The curses interface now uses a spinner to indicate download
306
progress, since the percentage measurement can't be made correct
307
in the current apt model.
309
* Remove some stray cw:: strings that made it into user-visible
310
messages (thanks to Jacobo Tarrio for pointing them out).
312
* Interpret %-escapes in the descriptions of configuration options
313
instead of displaying them to the user; thanks to Jens Seidel
314
for pointing this out.
316
* At the command-line prompt, don't list packages that aren't
317
being upgraded unless the user tried to upgrade them. e.g.,
318
"aptitude install foo" will no longer spew the entire list of
319
pending upgrades to the terminal.
321
* When displaying dependencies or version numbers at the
322
command-line (i.e., -D or -V is passed), add an extra space
323
between packages, to make it a little more obvious which tags
324
"belong" to which package.
326
* If the resolver is allowed to produce the solution 'cancel all
327
actions' (i.e., "Aptitude::ProblemResolver::Discard-Null-Solution"
328
is false), the brief indicator in the UI will say that it cancels
329
all the pending actions instead of counting its component actions.
331
* When displaying the packages that could satisfy a versioned
332
dependency, don't list packages that provide the package name
333
unless they declare a versioned provides that matches the
334
dependency's version restriction. (Closes: #464131)
336
* Don't try to generate and then parse a matcher when searching
337
for packages that look like what the user typed; instead, write
338
explicit code to compare against package names and descriptions.
340
This allows aptitude to find similar package names even if the
341
corresponding command-line argument is an invalid search pattern
342
(without having to write complex escaping logic); e.g.,
343
"aptitude install +5" does something sensible instead of
344
printing a confusing error message.
346
* If the user enters "q" during command-line dependency
347
resolution, quit the program instead of falling back to manual
348
resolution; manual resolution is only used if automatic
349
resolution hits a fatal error or if the user requests it by
350
typing "x". (Closes: #459629)
354
* Generate POTFILES.in automatically, so it stays up-to-date
355
without requiring manual intervention.
357
* Flag W_() as a translation marker; failure to do this caused a
358
lot of strings to be incorrectly left out of the translation
359
files; pointed out by Jens Seidel.
361
* Fix translation of strings displayed by the options editor (they
362
weren't getting translated at all); thanks to Jens Seidel for
367
* Fix task handling in the case that different versions of a
368
package are in different tasks. (Closes: #459348)
370
* "safe-upgrade" will now attempt to automatically maximize the
371
upgrade. Hopefully this will eliminate the situation where you
372
run "aptitude safe-upgrade" and then discover that there are
373
still some upgradable packages.
375
+ Crashes and serious errors:
377
* aptitude will now build with g++ 4.3, assuming that
378
4.3-compatible versions of cwidget and sigc++ are installed.
379
(Closes: #452204, #452540)
381
* Reduce the translation percent threshold for the various
382
versions of the manual until it compiles. (Closes: #470054)
384
* aptitude now uses Apt::Install-Recommends instead of
385
Aptitude::Recommends-Important to control whether
386
recommendations are automatically installed. (Closes: #458189,
387
#448561) Old configurations will be migrated to the new
388
configuration option, if possible.
390
Among other things, this means that --without-recommends works
391
again (it was broken when recommends handling moved to apt).
393
* Ensure the resolver state is always synchronized with the
394
package cache, eliminating some cases where the resolver would
395
break or produce wrong answers. (Closes: #421395, #432411)
397
* Don't crash at the command-line when displaying the version
398
numbers of packages being removed that don't have an
399
installation candidate; also, the version display for removed
400
packages is now meaningful. (Closes: #459336)
402
* Don't crash at the command-line when displaying the version
403
numbers of packages in the ConfigFiles state that are being
404
purged; instead, display "Config Files" as the removed
405
version. (Closes: #461669)
407
As a side note: the code in question has been adjusted to be
408
robust against bad version pointers, and should display "??"
409
instead. If you see this, it's a bug, but at least aptitude
410
won't crash in this case.
412
* Don't crash in "aptitude update" when the package lists can't be
413
parsed for some reason; instead just go ahead and download new
414
ones. (Closes: #468751)
416
+ Documentation bugs:
418
* Fix the documented default keybinding for PrevPage.
420
* The documentation of searching has been substantially rewritten,
421
and is hopefully much more useful now. In particular, there's
422
more information about how versions are handled, and a concise
423
table listing all the search expressions supported by aptitude.
425
* Document some of the files aptitude uses in a FILES section in
426
the manpage (Closes: #470839).
428
+ Translation updates:
434
- Christian Perrier: Fix the use of quote in the French
435
translation (Closes: #460808).
439
* German (thanks to Jens Seidel)
441
* Japanese (thanks to Noritada Kobayashi)
447
* Romanian (thanks to Eddy Petrișor)
460
Version 0.4.10 "Oscillating Reindeer"
464
* In command-line mode, if the resolver fails to produce a solution
465
for whatever reason, then instead of aborting the program entirely
466
aptitude will now display a prompt at which you can fix the
467
dependency problems by hand. Enter "r" at this prompt to try to
468
automatically fix dependencies again.
470
* safe-upgrade will now install new packages to fulfill dependences
471
(but it will never remove packages, downgrade packages, or install
472
a version that's not the default). The option --no-new-installs
473
will disable this behavior.
475
* Updates and commands that install, remove, or upgrade packages
476
will now display a brief summary of what changed. For instance:
478
There are now 64 updates [+10], 3 new [+1].
480
Unfortunately, this change requires reading the cache after an
481
update is complete. Passing -q will disable this behavior, but
482
also make the update progress bar less attractive. More work on
483
resolving this tension between features and performance remains to
486
* Add an option --allow-untrusted to override trust warnings.
487
(Closes: #452201, #452541)
489
* Recommended packages are now hidden if quiet mode is enabled.
492
* The options Aptitude::ProblemResolver::Trace-File and
493
Aptitude::ProblemResolver::Trace-Directory allow you to generate a
494
minimal cut of the cache that allows a problem resolver run to be
495
reproduced. The eventual aim is both to simplify bug reporting
496
and to generate a corpus of automatic test cases for the resolver
497
(although more work needs to be done to accomplish the latter).
499
* When run in command-line mode, instead of displaying many separate
500
and sometimes duplicative groups of packages (e.g.: installed,
501
auto-installed, auto-installed in a light cream sauce, etc),
502
aptitude displays packages in a few exclusive categories and uses
503
tags (like the existing "purge" tag) to provide more state
504
information. For instance:
506
$ aptitude -s install wesnoth
507
The following NEW packages will be installed:
508
wesnoth wesnoth-data{a} wesnoth-music{a}
509
$ aptitude -s remove freeciv-data
510
(... dependency resolution ...)
511
The following packages will be REMOVED:
512
freeciv-client-gtk{a} freeciv-data freeciv-server{a} ggzcore-bin{u}
513
libggz-gtk1{u} libggz2{u} libggzcore9{u} libggzdmod6{u} libggzmod4{u}
515
Here {a} indicates that a package was automatically installed or
516
removed, and {u} indicates that a package is being removed because
517
it is unused. Hopefully this will be less confusing than the old
522
+ Crashes and serious errors:
524
* Track down and fix a SEGV triggered on the first action after a
525
cache reload (sometimes). There are multiple bugs where this
526
might have been the root cause, but it's confirmed that it was
527
the cause of at least #454695, #454700, #455349, and #453362.
528
Bug #455865 is almost certainly the same issue, and bug #352278
529
may be another manifestation of it.
531
* If StepLimit is set to 0, refuse to solve dependencies instead
532
of going into an infinite loop. (Closes: #451311)
536
* Return a failing exit code after jumping from the command-line
537
to visual mode if the last install run failed. (Closes: #282408)
539
* Return a failing exit code from "aptitude update" if any
540
download fails. (Closes: #233129)
542
+ Cosmetic and UI bugs:
544
* In addition to Enter, Space will now activate checkboxes and
545
radio buttons. (Closes: #451765)
547
* Abort the program if we get EOF at the resolver prompt instead
548
of claiming the resolver failed.
550
* Command-line searches will now only print each result once.
553
+ Documentation bugs:
555
* The options menu documentation now minimally describes the new
556
configuration interface.
558
* The documentation of the configuration file options has been
559
placed back in alphabetic order after apparently suffering
560
bitrot over the years.
562
* Corrected the documented default of Parse-Description-Bullets to
565
* The manpages for aptitude-create-state-bundle and
566
aptitude-run-state-bundle are now generated using DocBook, which
567
should produce higher-quality and more consistent typesetting,
568
as well as making the manpages more maintainable and allowing
569
translators to easily produce localized versions of the manpages.
573
* Removed some unit tests that really tested cwidget.
575
- Translation updates:
577
* French (Christian Perrier)
2
580
Version 0.4.9 "Ow. Ow. Ow. Ow. Ow."