Urpmi Development

From Mandriva Community Wiki

Jump to: navigation, search
urpmi Development

This is a page to document and discuss future urpmi development.

Contents

[edit] What to do

[edit] New functions

  • Allow to force reinstall of an already installed package. (how to conveniently get the list of all incomplete / corrupted packages on the system ?) (bug #16112)
  • Allow urpme to remove bundles, i.e. metapackages. More precisely, when urpme sees that it's being asked to remove an empty package with dependencies, it will assume it's a meta-package and will try to remove as many dependencies as possible without breaking "outside" packages, for some value of outside that we should define algorithmically.
  • Support for new RPM tag Requires(hint) (Suggests and Enhances).
  • Allow virtual sources multiplexing several urls. NB. Due to shifts in synchronization between mirrors, this might be extremely tricky to implement, and turn out to be completely unusable.
    • Not sure if same, but support for Metalinks would be great, like aria2 supports this as well as segmented downloading which would help with slow mirrors
    • Choose mirrors automatically based on location with geoip, in combination with metalinks this would remove any need of choosing protocol, mirror etc.
  • urpmi should list all .rpmnew and .rpmsave files rpm has created at the end of the installation.
  • When downloading rpms from remote media it would be nice to install packages while downloading as it can take quite some time to download all packages

[edit] Developments on the internals

  • urpm's way of dealing with exceptions and the way to use eval{} blocks to catch them is currently convoluted. It prevents discriminating between "normal" errors and fatal errors (e.g. ENOSPC or "network down"). Define exception classes and use them consistently.
  • Automated regression tests would be nice to have (also for the URPM module.)
  • inst.list is obsolete. Deprecate it.

[edit] Command-line media handling

  • Should we replace urpmi.addmedia and urpmi.removemedia by a more flexible and generic urpmi.media? There are backward compatibility issues.
  • Several operations on medias cannot be done from the command-line (add/remove the "update" flag, set default medias).

[edit] Graphical Interfaces

  • More options should be configurable from rpmdrake or from the software media manager: optional key verification of rpms, probe synthesis or hdlist, limit download rate, skip.list, display changelog first.
  • Have a "yes to all" button for long and boring series of questions
  • The software media manager should display the urls of the media and/or their type in the main window
  • The software media manager should be callable from rpmdrake (replacing the "update media" button.)
  • (handwaving ahead) the interface of the rpmdrake suite of tools is both too complex and too simple, and needs another pass. In short, it needs to DWIM a bit more, taking more decisions (a bit like urpmi --auto) instead of annoying the user with endless questions and popups. The interface could also be enhanced by simplifying the main windows, deporting some of the items in a menu, and adding a configuration window for "advanced" settings.
  • The packages blocked by skip.list should appear in rpmdrake (in update mode), but with a lock icon (unselectable for upgrade).
  • rpmdrake should be made faster. Profile it. Don't reload the package list everytime. Load it in the background when possible.

[edit] Other Considerations

Personal tools