ARMaelalip_appman_ext

Differences between revisions 15 and 16
Revision 15 as of 2010-08-02 09:07:45
Size: 3719
Editor: fw-tnat
Comment:
Revision 16 as of 2010-08-02 09:10:25
Size: 3759
Editor: fw-tnat
Comment:
Deletions are marked like this. Additions are marked like this.
Line 53: Line 53:
 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
  a) GUI: Calculate & display total in pkg_info_screen.cc:- pkg_grouppolicy_info::setup_package_info() - option.patch
  b) Command line: Calculate & display total in cmdline/cmdline_show.cc - get_list.patch
Line 57: Line 57:
 1) Use command line function in GUI.
 2) Define an option for aptitude show <pkg name>
 3) Add size summation.
  1) Use command line function in GUI.
  2) Define an option for aptitude show <pkg name>
  3) Add size summation.
Line 76: Line 76:
 1) If passed a pkg name pattern, do not calculate sizes.
 2) For some packages compare results to real file systems.
 3) Run for a large number of packages.
  1) If passed a pkg name pattern, do not calculate sizes.
  2) For some packages compare results to real file systems.
  3) Run for a large number of packages.
  • 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() - option.patch b) Command line: Calculate & display total in cmdline/cmdline_show.cc - get_list.patch

The dependency list function can be common to both. TODO:

  • 1) Use command line function in GUI.

    2) Define an option for aptitude show <pkg name> 3) Add size summation.

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

  • 1) If passed a pkg name pattern, do not calculate sizes. 2) For some packages compare results to real file systems. 3) Run for a large number of packages.

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

Specs/M/ARMaelalip_appman_ext (last edited 2010-08-11 08:19:46 by fw-tnat)