Activity Team/Packaging Ideas

Goal

Installing activities on every sugarized GNU/Linux distribution(not only XO) just by clicking on icon in addons.sugarlabs.org.

Problems to solve

  • Install proper dependencies. Most activities rely on a standard set of Sugar dependencies like PyGTK, Squeak, GStreamer, and PyGame. But others have special dependencies which need to be installed on the target system before the activity can run.
  • Install the activity itself.
    • Blobs in activities. Some activities (Colors, Oficina, Bounce, WikiBrowse) include compiled code, like executables or Python extension modules.
    • Should we build non-pure-python activities while installing, or use binary packages?
    • And in general, how to treat a variety of platforms: x86, x86_64 and future ARM, MIPS?

Proposal schemas

Distro teams should take care of it

Pro

  • thats enough for XO alsroot 12:36, 13 January 2009 (UTC)
  • Many activities just rely on the standard Sugar dependencies, it's really just a few special ones.

Contra

  • thats not enough for the rest of distros
    each distro team has to work out the same work
    like inventing theirs own mechanisms to treat activity dependencies etc. alsroot 12:36, 13 January 2009 (UTC)

Invent-own/reuse-existing packaging format

Pro

  • Could possibly come up with a solution that works very well specifically for Sugar.

Contra

  • A lot of work solving a problem has been solved already on each system.
  • Might conflict with the target system's native package manager.
  • Package managers tend to present confusing user interfaces to the user.

Sugar is like a Firefox and activities are like addons

Pro

  • Simplest version, what we have now.

Contra

  • what about variety of possible dependencies, should we pre-install them all ? alsroot 12:36, 13 January 2009 (UTC)

Use distro-specific activities installer

This is a kind of #Invent-own/reuse-existing packaging format packaging format, but it moves the center of gravity to a distro-specific installer from the packaged activity itself.

The activity.info file would include a list of dependency names which come from a predefined list. The distro-specific installer backend would be responsible for parsing the list and installing the correct dependencies.

Pro

  • dependencies in activity could be format in simple way (like 'Require: pygames') and installer should resolve it to proper native package(s); on that way it demands common naming scheme alsroot 12:36, 13 January 2009 (UTC)

Contra

  • that says nothing about installing activity itself alsroot 12:36, 13 January 2009 (UTC)