Created: 2005-04-23 by MattZimmerman
Define what road we want to take for our package management tools.
The package management tools need to be updated to work with the new requirements that the distro imposes on them.
Scope and Use Cases
All of apt, aptitude, dpkg and synaptic need updates in various areas.
- dpkg should not depend on dselect any more (dpkg-1.13 no longer does)
- The package management tools should support logging so that the user gets a idea what's going on.
- dpkg-1.13 supports logging for states now (needs to log answers for config file questions)
Synaptic logs the high level operations of a single run already; it should also log the output of dpkg's maintainer scripts (logging inside apt is impossible because debconf questions will be asked on the same terminal)
- For "automated package suggestions":
mime-type of packages should be used: find a application to work with that mime type and install it (see also FindingPackages).
- Use case:
- download a file with unknown mime-type and firefox tells us that it does not support it
- have a non-supported file opened with nautilus and it should ask for software to be installed
- Use case:
FeatureDependencies in dpkg may be evaluated. The idea is to replace the existing dependency handling based on version with dependency handling based on the actual features introduced by that version (for details see http://www.dpkg.org/FeatureDependencies)
A new source package format might be considered. It will expand the current source package format so that it can include multiple patches (for details see http://www.dpkg.org/NewSourceFormat).
- Support for bz2 sources files will go in for Breezy
- Network sources should be enabled by default and the tools should behave sanely even if no network connection is available.
Synaptic: ask NetworkManager if we are online or not
apt, aptitude should test for network by forking a application that speaks dbus and tries to talk to NetworkManager
The apt-library should be reviewed to make certain operations part of the library instead of part of the apt-get.cc application. "apt-get update" should be possible with a single library call.
There are some similar but slightly different results when calling "aptitude dist-upgrade" and "apt-get dist-upgrade". A review is needed into why they have different results and if it is possible to unify them.
There are various patches for apt available that need to be reviewed and added into apt:
- Limit the bandwidth of the download (Debian #146877, a prototype patch is in BTS)
Package index diff support to make downloading of indexfile (apt-get update) faster (Debian #128818, prototype patch in BTS)
- Support i18n for the package descriptions (Debian #265009, prototype patch in BTS). This needs to be hooked into Rosetta
- The https patches from Progeny (Debian bug #213465)
Support for a directory with sources.list entries (/etc/apt/sources.list.d)
The python-apt bindings needs to be extended to support apt's:
- progress (callbacks)
- a high-level interface written in python that wraps most of the low-level python interface
- a high-level interface to manipulate the sources.list entries
(part of that exists in firstname.lastname@example.org/python-apt--mvo--0) interface
The smart application needs to be evaluated
The Debian bug #225947: "apt-utils: please support architecture-specific extra overrides" should be fixed (this is needed to better support debootstrap, see also PackageSelections)
Some of the more experimental apt patches should go into a separate package with the codename "apt-woa" (working-overloaded-apt) that will be published on http://people.ubuntu.com/~mvo/
Data Preservation and Migration
The packages tools must work as before, for the automatic handling of dependencies a script should be provided that converts the markings into the new format.
User Interface Requirements
The automatic dependency feature needs updates to the apt and synaptic GUI.
Most of the work is not done yet; some prototype patches exist.
UDU BOF Agenda
- Logging of package management activity
- Automated package suggestions
- Support packages for hardware devices
- Applications necessary to open file formats
Supporting changes to enable network sources by default during installation (Bug#6390)