Mica is a common plugin architecture for creating Debian Linux and Maemo cross-development environments based on Eclipse.

|   Maemo IDE Common Architecture


2.0.0M6 (prefinal) (2009/09/11)

This is the second public release of Mica, and the last one before the final 2.0.0 release, coordinated with the ESbox and PluThon Prefinal Releases. See the 2nd Edition ESbox and PluThon pages.

Mica is based on Eclipse Ganymede SR2 and PyDev 1.4.7.

Recent Improvements

  • Updated to PyDev 1.4.7. and improved the configuration of Python Intepreters in new projects.
  • Added Hover Help integration for C/C++ and Python editors. (Note: currently only help content for Maemo C APIs is available.) See the Maemo > Hover Help preference page.
  • Added Ltrace analysis support. Like OProfile and Valgrind support, use Profile > Profile As... to create a launch for Ltrace.
  • Unify handling of on-demand package installation.
  • Support extra logging when installing a Debian project. [#4435]
  • Support Console error coloring and parse errors from autotools steps. [#4464]
  • Fix the handling of markers generated from multiple builders. Now, each builder (autotools, qmake, make, etc) generates and cleans up only the problem markers that it created.
  • Fixed: Bug handling PKG_CONFIG_ style macros in when validating packages [#4399]
  • Automatically install valgrind, oprofile, ltrace if needed. [#4385]
  • Externalize strings: add support to configure autotools project [#4374]
  • Fixed: externalize strings: corruption of source text [#4373]
  • VNC: handle x11vnc output differently [#4366]
  • VNC: expose configuration options [#4365]
  • Flasher: Disallow predefined Diablo kernel tasks for newer devices [#4308]
  • Fixed: Validate Installed Packages wizard ignores "Update lists" setting [#4304]

Known issues

  • When connecting to a Maemo device, you cannot change the username in the password dialog. (Several other steps and several later steps depend on this, so it can't be changed here.)

    The connections default to the "user" account, not "root", because it is the "user" account that actually drives the UI. You can change this username, if needed, in the "Maemo device ..." connections for RSE (right click > Configure... or right click > Properties in the Remote Systems view).

    The "user" account does not have a password, by default, so you cannot connect to it in an unaltered device.

    The maemo-pc-connectivity package will prompt you to configure this password. If you don't install this package, manually set up a password for this account: Log into the tablet, gain root, and set the password via passwd user.

  • There is a bug in RSE causing an exception when you attempt to copy default generated RSE connections. If you need to create more connections than those provided, then create a New Connection of system type SSH Only. [#4053].
  • For other issues, see the Mica bug tracker and search for items with Resolution = None.

Detailed Changes

Mica 2.0.0-I20090819

The goal for this sprint is to stabilize before the prefinal release, complete some late features, and enable other products.

  • Context help is available for the GTK/GLib/GObject, Hildon, multimedia, toolkit, and connectivity documentation (the same as from

    You can see these via the Help > Contents menu.

  • Improved Maemo Help integration.
    • The Hover Help preferences now allow individually selecting the libraries for which hover content is enabled. You can use this to select specific versions of content (assuming more than one API is available) and to select various libraries over others (assuming you only need help for a certain set of libraries).
    • Add support for remote help extensions updated remotely. This will be exposed to the user interface in the next sprint.
    • Add PyMaemo documentation (Help > Contents).
  • Clean up project templates.
    1. Categorize templates into Simple, Maemo 4, Maemo 5, and Examples categories.
    2. Update to canonical sources for Fremantle for hello world (C, C++) and examples (C, C++). These should build against Fremantle beta 2 SDK.
    3. Remove unnecessary package maintainer template variables for example projects.
    4. Make sure that with templates that generate packages, the packages can be generated from a clean project. (The debian/rules files did not properly run
  • Improved ltrace integration and fixed some bugs preventing detecting that it was installed. (There may still be some issues properly installing it if requested.)
  • Added qmake project builder type. This is very initial and is present only in source.

    It works like the Autotools build model, in that both a qmake builder and a Make builder are added to support qmake.

    The qmake builder will look for the first *.pro file in the project build location (as specified in C/C++ > Build Settings ) and invoke "qmake -o <Makefile>" (where "Makefile" is either that, or the makefile inferred in the Build Settings via "make -f <Makefile>").

    When this builder plugin is installed you may use a subclass of AbstractConvertToMaemoProjectWizard and it will be available in the "project builder type" list.

Mica 2.0.0-I20090806

The goal for this sprint is integrating Maemo hover help, supporting Pydev version 1.4.7, improving the infrastructure for apt installers, adding initial support for the ltrace utility, among other things.

  • Initial Maemo API documentation and hover support.

    Fabricio has been working hard on a wide-ranging set of support plugins to support local and remote Maemo documentation lookup, for static and dynamic help and hover help support, as well as standalone help infocenter installations. Currently we support only the infrastructure on for Diablo. Fremantle documentation itself is being finalized so support for that will happen later.

    See the ESbox product for more details on using this.

    Initial work has been done to access help content for Diablo in local and remote configurations. Currently you must manually checkout and build the plugins from here to see this help locally. It is not yet part of any archive or update site.

  • The version of Pydev used in Mica and shipped with ESbox/PluThon has been updated to 1.4.7. In this version, the Python interpreter is configured at project creation or conversion time, rather than waiting until launch time. There is still a known bug which allows you to configure only one interpreter at a time, workspace-wide, though.
  • The various dialogs and engines for apt installation were merged into a new model. As our set of installers increased (packages for projects, SB1 SDK, SB1 targets, Nokia binaries, and soon stuff related to Maemo VM images), we found out what was really needed to conveniently write such wizards.

    Now, you may construct a list of steps (such as, adding repositories, installing "known" ISystemPackage packages found from an I[Apt]PackageManager, or installing "unknown" packages by name, which you expect to become available by adding repositories) into an IAptInstallerWorkList.

    Then you can pass that work list to an AptInstallerEngine. That engine exposes AptInstallerState into which you can configure various aspects of installation, such as the network timeout, queue IStreamMonitor objects to be used in filtering the results of any operation that launches processes, etc.

    The engine runs through the steps and directs progress results to an IProgressReporter and runs under the control of an IProgressMonitor.

    To simplify this workflow for the most common cases, you can use AptInstallerHelper which will let you construct the work list to install packages against multiple targets. This assumes that all the packages are known to Mica, via the org.maemo.mica.maemosdk.core.aptPackageMapping extension point. Thus, it allows for repositories like extras or extras-devel to be automatically added.

    Note: these are internal APIs, thus still subject to change over time. Let us know on mica-devel if you find them useful or have any suggestions!

  • Fixed some more bugs related to package management when supporting installations where the same targets are installed under multiple SDKs.
  • Fixed a few more usability issues with OProfile, related to the view's lifetime.
  • Bugfix: Flasher: Disallow predefined Diablo kernel tasks for newer devices [#4308]
  • Bugfix: Automatic oprofile installation causes NPE if tools repository is not found [#4301]
  • Bugfix: Python debugging, program can not be terminated with IDE [#4124]
  • Bugfix: Need more predictable killing of processes launched over SSH [#3146]