Developer Images

From OLPC
Revision as of 18:09, 16 March 2007 by 206.248.176.11 (talk) (Needed Pieces: More questions)
Jump to: navigation, search

Developer Images (Quickstart Images)

Developer images are intended to provide a development environment in which you can immediately begin developing Sugar activities (applications). They are full Gnome desktops with Sugar pre-built which can be downloaded and run on Linux or Win32 machines using the free (0 cost, proprietary) VMWare Player application.

Note: The images have far more software than the OLPC XO Laptops, so you need to be careful not to rely on libraries in the image!

At the moment the images are available via BitTorrent on the LinuxTracker site (they will be made available directly from OLPC in the future). Eventually the images will be converted to use Fedora Core as their base operating system, but at the moment they are based on the Gentoo system.

Initial Release Images (v1)

This is a VMWare image of a Gentoo desktop upgraded to support the Sugar environment from the One Laptop Per Child project. The build directories for Sugar are intact so that you can upgrade to the latest Sugar releases in the same manner as the core developers do (by re-running sugar-jhbuild and skipping any failing projects).

Username/password for the image is olpcwork/olpcwork. Launch Sugar using the XO (child) icon on the desktop, but keep in mind that Sugar is full-screen and includes no mechanism for closing, so you'll likely want to keep at least one other window open to which to alt-tab in order to kill Sugar when you are finished.

  • Gentoo (up to date stable build with just the required ~x86 packages, based off a 2006.1 (latest) profile)
  • Disk Image: 3GB compressed, 7GB uncompressed, Internally: 8GB sparse, 4GB of that used as far as the embedded OS is concerned
  • 256MB RAM allocated in the image
  • Performance is quite reasonable for editing code and testing Sugar on a host with reasonable (1GB) ram and processor (2GHz Athlon64)
  • Gnome desktop incl. Firefox 2.0.0.2
  • Sugar built and ready-to-run
  • Common developer's tools installed (source code control systems, gcc, vim, Eric3, Inkscape)
  • Networking works reasonably well (uses nonstandard NetworkManager for the networking system, as in Sugar itself)

The target market for this image is developers on Win32 or Linux who just want to start working on Sugar. Provides the ability to unpack, run and start working with Sugar in a reasonable development environment with mature tools available.

Needed Pieces

  • How do I do networking in Sugar?
  • How do I create a persistent server/service?
    • How do I register for start-time loading?
    • Is there any dbus event service for loading only on response to messages? That is, not loading until there is an event of a given type, such as a presence event?
  • How do I access the special hardware?
    • Camera
    • Camera-as-video-camera (v4l?)
    • Touchpad
    • Drawing pad (stylus pad)
      • How to switch in/out of stylus mode?
      • How to set interpretation parameters?
    • Audio-port probe
      • How to get access?
      • What's going to come out when I get access (keeping in mind I (the developer) likely won't have the actual hardware available.
    • Mode-switching code for the screen (backlight on/off)
  • How do I create my activity GUI?
    • How does HippoCanvas work?
    • Can I just use Cairo or GTK directly?
    • How flexible does the GUI need to be? (e.g. resize and rotate)
    • How do I share code between activities?
    • What's the best development approach:
      • Write outside Sugar, finish and debug, then port?
      • Write to Sugar, test and debug within the system?
  • How do I package my activity?
    • How do I work from an in-process activity (develop registration)?
    • How do I produce a binary extension?
    • How do I make my package available for users to download dynamically?
    • How do I tell users about updates to the packages?
  • How do I get access to user-generated content (share files between applications)?
  • How do I test a Sugar activity? (sugar-activity activityname with Sugar running)
  • How do I debug a Sugar activity?
  • How do I create an asymmetric application? (Publisher for others to consume)