Mica is a common plugin architecture for creating Debian Linux and Maemo cross-development environments based on Eclipse.
| Maemo IDE Common Architecture
2.0.0 Final (2009/12/16)
Mica is based on Eclipse Ganymede SR2 and PyDev 1.4.7.
What's new since 2.0.0M6
- Moved update sites to maemoide.nokia.com.
- Updated package databases so more accurate suggestions are made when validating installed packages.
- Added N900 support.
- Better SBRSH stability.
- 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 esbox.sh 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 esbox.sh 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
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.
- Updated hover help and installation instructions to reference the new domain names for the Maemo Eclipse Help Infocenter library.maemodocs.nokia.com and the new update site location maemoide.nokia.com. [#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]
- 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 Fremantle docs 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.
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
- Added support for updating C/C++ indexer settings
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:
- Some architectural changes (for the MMAD project):
- Known issue: Hello World for Python/Qt4 launches fail with Diablo and Fremantle [#4715]
- 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]
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]
- 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 setup.py 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 setup.py 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 setup.py 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]