[Aptitude-devel] Bug#478970: Bug#479870: aptitude should update dpkg available information on updates

Daniel Hartwig mandyke at gmail.com
Sat Apr 28 04:51:58 UTC 2012

retitle 479870 apt updates should update dpkg/available
reassign 479870 apt,dctrl-tools

> /var/lib/dpkg/available is not created|updated complete with
> 'aptitude update', like 'dselect update' does.

If anything, all apt interfaces should do this and dctrl-tools
provides the means.  Assigning to those two packages as either could
implement this.

The naïve implementation is something like:

APT::Update::Post-Invoke-Success { "[ ! -x /usr/sbin/sync-available ]
|| /usr/sbin/sync-available"; };

in apt.conf.d.  However, some interactive package managers (e.g.
aptitude, synaptic) lock dpkg while those hooks are run and the above
code would fail.[1]  I find no documentation on the use of
Post-Invoke-Success, or whether it is safe to assume dpkg (or any
other db) is unlocked when it is run.  An alternative implementation
can notify a cron job or spawn a long-running background task to wait
for the lock being released:

APT::Update::Post-Invoke-Success {" [ ! -x /usr/sbin/sync-available ]
|| /usr/sbin/sync-available --wait &"; };

(with new "--wait" option on sync-available).

[1] http://bugs.debian.org/666130

More information about the Aptitude-devel mailing list