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

|   Maemo IDE Common Architecture

Integration releases

These are developer tested drop without full integration test. They are released more frequently than milestone releases and serve the demands of quick bug fixes and feature requests. Once a release is made, notes are moved into the "Detailed Changes" of that release page.

Download integration releases here.

Known issues

  • In Ubuntu 9.10, Fedora 11, or other platforms using GTK+ 2.18 and/or Mozilla xulrunner 1.19, you must launch ESbox with the script included in the archive. Otherwise, Eclipse will fail to start and/or will have erratic UI. See this post for GTK+ details and this bug for xulrunner information.

    Use a script like this script to work around the problem.

  • Python/Qt4 applications fail on Diablo targets. This seems to be an upstream or packaging issue. [#4715]
  • If you have multiple Maemo devices and use them over the same RSE connection (e.g., a USB cable), Mica will not detect that the device has changed if you switch the cable between devices.

    Mica maintains a cache of the recently accessed files, the detected platform, environment variables, etc. for that connection, so you may confuse Mica (and vice versa) if you switch the device while Eclipse is running.

    To work around this, use the Window > Preferences > Maemo > Installed Targets dialog -- or any UI that shows the Maemo device connections -- and Refresh the connection when you switch the device. [#4722]

  • 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.

Official releases

Mica 2.0.0-I20091125

This is the final candidate integration release.

  • Updated hover help and installation instructions to reference the new domain names for the Maemo Eclipse Help Infocenter and the new update site location [#4820]
  • Updated internal databases so we can properly install the necessary SDK-specific and device-specific repositories when validating installed packages. [#4819]
  • Added support for automatic N900 flasher image installation. [#4799]
  • All supporting multiple versions of Python. Updated wizards and infrastructure. [#4236] (Fixed last release actually)
  • Fixed issues terminating programs over SBRSH. [#4491] [#4491]
  • Fixed issues with SBRSH and environment handling in sandbox mode. Be sure to supply the necessary /usr/bin and /bin entries on PATH when launching sbrsh. Also, support automounting the /scratchbox folder in order to access utilities only under its bin folder. Gone are the awk: command not found errors. Also added /usr/share/themes folder to 'bind' mounts so the device's native theme will be used, allowing pixmaps to be found. [#4760] [#4765] [#4696]
  • Fixed Maemo 5 examples. [#4759]
  • Automatic OProfiler installation for N900 should work now that the upstream repositories are in order. [#4734]
  • Fixed MacOS X host issue where preferences were hard to deal with because their contents would be scrolled to the far right by default. [#4699]

Mica 2.0.0-I20091111

The goal for this sprint is to stabilize for final release.

  • Renamed "Nokia Internet Tablet" throughout the UI to "Maemo device". This means that new default RSE connections will be created. Feel free to delete the old "Nokia Internet Tablet" connections.
  • Added support for templates that require the project location to exist beforehand (used in "Existing ... Program" templates). Moved the set of recognized template metadata keys into org.maemo.mica.common.project.core.ITemplate.
  • Changed links so hover help references the Mica help repository, and rearranged it to allow for future expansion. Please reinstall if you have installed this. Also, see the Eclipse infocenter in action! #4753 #4754 #4766 #4773
  • We removed the Python/Qt4 support for Fremantle. The PySide project maintaining the ports has not released stable X86 and ARMEL builds yet and we cannot predict which repository or packages should be installed in time for our final release. #4764

    This only means a template project is missing and the Validate Installed Packages feature will not offer to install any packages for Python/Qt. You are free to develop such programs on your own :)

  • Added a "Configure Installed Targets..." hyperlink to the New Project wizard, to make it easier to know what to do when the build configuration tree is empty. #4690
  • Fixed bug with DSF launches, leaving behind running threads that prevented ESbox from exiting.
  • Fixed problem launching SBRSH on Windows, leading to "cygwin1.dll not found" errors. #4765
  • Updated flasher wizard to find latest final binaries #4737
  • Fixed Shared Library example project and Debianized it. #4765
  • Fixed SBRSH launches on Fremantle. #4650
  • Added OProfile installation support on Fremantle. #4734

    NOTE: unfortunately, until the final SDK is released and packages are synched with it, the oprofile.ko module will not be able to load.

Mica 2.0.0-I20091022

The goal for this sprint is to implement the final C/C++ indexer features and finalize the help integration. We're also getting more usability reports, so that work continues as well.

  • Added support for updating C/C++ indexer settings [#4539].

    The menu for this is <project> > Index > Add Missing Paths and Symbols or ...> Reset Paths and Symbols.

    Both versions will do a quite thorough search of makefiles, autoconf files, and qmake files looking for known or guessable include paths and symbols, and they will come up with a list of paths and symbols for all the configurations in a project. Then they issue a rebuild of the index.

    The "add" version will add missing entries, while the "reset" version will erase all entries and add those that were discovered.

    Also, this same logic is used when creating, importing, or converting projects to Mica C/C++ format, so the results should be the same in all cases. There are no more special template.xml steps for adding indexer data.

  • Updated valgrind launchers to send stdout/stderr to a Console, as with ltrace. [#4701].
  • Split out the common parts of the ESbox and PluThon help manuals so they can both feed off of content in the Mica plugin. The help content must be XHTML format so that the

    Related issue: [#4676].

  • Some hover help fixes:
    • Wrong DocPath used in hover help when getting remote doc [#4615].
    • hover help fails to Qt operators [#4620].
    • Hover help should work for resolve/unresolved bindings (Windows/Mac) [#4621].
    • Occasional hover help indexing issue [#4642].
    • Hover Indexing fail recovery fails [#4709].
  • Some architectural changes (for the MMAD project):
    • Provide way to control IMachine created for RSE connection [#4548].
    • See if SSH2 authentication data can be fetched from alternate location [#4582].
    • Other changes for MMAD continue on the "work_mmad" branch to avoid destabilizing the mainline.
  • Known issue: Hello World for Python/Qt4 launches fail with Diablo and Fremantle [#4715]

Mica 2.0.0-I20091007

The goal for this sprint is again to make adjustments to some features for use by other products and to finalize features for usability and stability for the upcoming Maemo Eclipse Integration 2nd Edition.  Work in this area is ongoing.

  • Added Qt documentation and hover help support
  • Fixed: No need to kill a terminated Python process [#4589]
  • Fixed: Wrong DocPath used in hover help when getting remote doc [#4615]
  • Fixed: hover help fails to Qt operators [#4620]
  • Fixed: Hover help should work for resolve/unresolved bindings (Windows/Mac) [#4621]

Mica 2.0.0-I20090923

The goal for this sprint is to make adjustments to some features for use by other products and to finalize features for usability and stability for the upcoming Maemo Eclipse Integration 2nd Edition.

  • Adding more Maemo SDK help documentation. Still in progress.
  • Changed ISDKProvider interface slightly to support better machine configuration. Now, #createSDKs() takes an IMachine argument so you can scan SDKs provided by that machine. Previously, implementors had to scan the globally defined machines from MachineRegistry, which was a problem for ESbox, which needed to let users test a build machine before applying its changes.
  • Added Qt build support, plus template projects for C/C++ and Python (PyQt4 and PySide) to the repository.
  • Improved Python package detection. Mica will scan your sources and match up module imports with Python packages distributed with Maemo SDKs. [#4556]

    (Note: the bug is not marked fixed yet, but most of the work is done. Currently this reports a warning to the Error Log that we can't detect packages needed by the modules in your own program.)

  • Reorganized the Debian package deployment wizard to allow more room for the target selection. The recently added logging section is moved to a second page. This is still a work in progress, but the intent is to support installing packages into Scratchbox targets.
  • Make extensions to Debian package structure wizard support Python and non-Scratchbox projects better.

    In Python projects, a Makefile and script are needed, but a custom Python project might not have these yet.

    For this general need, added an IDebianStructurePostAdapter on IProjectType or IProjectBuilderType. This provides support to add pages to the wizard or just make additional changes to files after the "dh_make" program has created and populated the debian folder.

    Python projects also include Makefile and by default.

    Note that Python projects do not need or require a Makefile builder in general. These changes are only needed when building Debian packages. The Makefile is used automatically in ESbox and only is used for PluThon.

    Finally, for non-Scratchbox targets, IDebianPackageBuilderAdapter may be implemented to control the arguments passed to dpkg-buildpackage and to control whether the project needs to be copied to the build machine in order to build it. By default, the arguments are "-rfakeroot -d" and projects are always copied, to avoid issues where the host filesystem might not support Posix filesystem semantics.

  • Fixed: Let Python project wizard finish early if interpreter is auto selected [#4532]
  • Fixed: Remote ltrace launch fails if sbrsh is used [#4518]
  • Fixed: Support Debian package building without fakeroot [#4470]
  • Fixed: Support Debian package building in non-copied directory [#4488]
  • Fixed: Python programs cannot be terminated [#4491]
  • Fixed: Report missing interpreter error properly when launching [#4533]
  • Fixed: Ltrace Profiler, Unhandled event loop exception in Mac OS [#4538]
  • Fixed: Bug with Python Multimedia Example for Fremantle [#4580]

The latest release is 2.0.0M6 (prefinal).