ARMaelalip_appman_ext

Revision 12 as of 2010-08-02 09:03:05

Clear message
  • Launchpad Entry: foo

  • Created:

  • Contributors:

  • Packages affected:

Summary

Extend an existing graphical application manager to allow users to determine all the dependencies of a particular application, and show the minimum file system size required to support these. Allows device designers to determine the storage requirements for a single use device e.g. Audio player, browser.

Release Note

Speeds up device design.

Rationale

For embedded devices storage can be a limiting factor. Determining the packages required to support a single application, and hence the storage required, can be a time consuming task. A single point & click way of doing this may aid the adoption of Ubuntu ARM as the platform of choice.

User stories

A device manufacturer is designing a browser. He likes the look of arora, but firefox looks good too. Using the appmanext he quickly determines which will take less storage.

Assumptions

  • Dependency circularities will not hang the dependency search.
  • Support infrastructure in placed e.g. a file system image with the listed packages can be easily constructed.

Design

In the GUI add an option to output the estimated file system size required for the selected package. Add a similar option in the "show" functionality.

For the selected package recursively determine the dependencies of all dependencies. Stop search when current package has no dependencies. Add each dependency to a list. Skip any repeated dependencies to avoid dependency loops.

For the completed list sum the package installation sizes.

Implementation

Pick a graphical app manager

Available in Lucid

  • aptitude
    • Better place to fit the option
  • synaptic
    • Smaller code base
    • Nicer GUI

Chose aptitude since I'm more familiar with C++ than XML etc.

UI Changes

Preferences offers "Show minimum system for the app" If set, package information page shows total. ==== Command line changes === Offer an option to "show" that displays the system size, in addition to current display.

Code Changes

a) GUI: Calculate & display total in pkg_info_screen.cc:- pkg_grouppolicy_info::setup_package_info() b) Command line: Calculate & display total in cmdline/cmdline_show.cc The dependency list function can be common to both.

Future improvements - add figure for Depends plus Recommends and Suggests - output sizes for all pattern matches, rather than none.

Migration

  • data migration - NONE
  • redirects from old URLs to new ones - NONE
  • how users will be pointed to the new way of doing things
    • Help entry
    • Menu option

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

Tests

If passed a pkg name pattern, do not calculate sizes. For some packages compare results to real file systems.

Unresolved issues

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.


CategorySpec