Open development/Maemo roadmap/Fremantle

(Undo revision 47453 - Do NOT overwrite content!)
 
(76 intermediate revisions not shown)
Line 1: Line 1:
 +
Fremantle is the codename of the Maemo 5 release. It comes after Maemo 4.1 ([[Open development/Maemo roadmap/Diablo|Diablo]]) and before [[Open development/Maemo roadmap/Harmattan|Harmattan]].
 +
== Fremantle timeline ==
== Fremantle timeline ==
This is a timeline based on known events and announcements. Many dates are quite flexible at this point.
This is a timeline based on known events and announcements. Many dates are quite flexible at this point.
-
* "Fremantle" codename announced in LinuxTag 2008.
+
* 2008-05-29: "Fremantle" codename announced in LinuxTag 2008. See [http://flors.wordpress.com/2008/06/01/maemo-linuxtag-update/ maemo LinuxTag update].
-
* First annoucements on [http://flors.wordpress.com/2008/09/19/osim-world-maemo-devsesh-slides/ OSiM World 2008] and Maemo Summit.
+
* 2008-09-17: First annoucements in OSiM World: [http://jaaksi.blogspot.com/2008/09/osim-news-whats-up-with-maemo.html OSiM News: What's up with Maemo?] (Ari Jaaksi, Head of Maemo Software @ Nokia) & [http://flors.wordpress.com/2008/09/19/osim-world-maemo-devsesh-slides/ Get ready for 2009!][http://flors.wordpress.com/2008/09/19/osim-world-maemo-devsesh-slides/ OSiM World 2008] (Erkko Anttila, Maemo SW Fremantle product manager, and Quim Gil, Maemo SW open source advocate).
-
* First Alpha SDK, first report on API changes and beginning of weekly releases. Suitable for platform development only. December 2008.
+
* 2008-09-19: More announcements in the [[Maemo Summit 2008]] - Summary: What can we get out of Fremantle ([http://www.slideshare.net/silpol/maemo-community-fremantle-support-september-2008-presentation slides]) ([http://www.vimeo.com/1853196?pg=embed&sec=1853196 video]), by Peter Schneider (Maemo SW head of product marketing)
-
* Mature alpha SDK with application framework and API freeze available around January-February 2009.
+
* 2008-12-08: [http://maemo.org/news/announcements/first_maemo_5_sdk_release_targeting_platform_developers/ First pre-alpha SDK] and first report on API changes. Suitable for platform development only.
-
* FOSDEM in February. Proposal for a Maemo developer gathering with a set of goals.
+
* 2009-01-29: [http://maemo.org/news/announcements/07a262bcedec11ddabdc07d2d12051a151a1/ Second pre-alpha SDK] with [https://garage.maemo.org/docman/view.php/885/368/mafw-maemo-fremantle-draft.pdf Media Application Framework] and more new platform components.
-
* Bossa conference in March. Proposal for a Maemo developer gathering with a set of goals.
+
* 2009-02-08: [http://maemoteam.wordpress.com/2009/02/12/maemo-and-beagleboard/ Maemo for Beagle board] presented at FOSDEM.
-
* Beta SDK released between March-May, ready for application development including support for Mozilla based browser and Greasemonkey add-ons.
+
* 2009-03-02: [http://maemo.org/news/announcements/maemo_5_alpha_sdk_released/ Maemo 5 Alpha SDK released] - [http://www.internettablettalk.com/forums/showthread.php?t=27242 InternetTabletTalk thread], [http://arstechnica.com/open-source/news/2009/03/new-maemo-ui-framework-arrives-in-fremantle-sdk-alpha.ars Ars Technica], [http://www.engadget.com/2009/03/03/maemo-5-gets-alpha-sdk-nokia-fans-rejoice/ Engadget], [http://gpsobsessed.com/maemo-5-alpha-sdk-available-with-location-city-info-apis-and-3d-graphics-support/ GPSObsessed], [http://www.intomobile.com/2009/03/04/maemo-5-alpha-sdk-is-out.html IntoMobile], [http://www.umpcportal.com/2009/03/maemo-5-alpha-sdk-released-by-nokia UMPCPortal], [http://www.linuxdevices.com/news/NS2940085368.html LinuxDevices].
-
* Qt 4.4 "garage" support and Theme Maker by Urho Konttori planned to be ready by the beta SDK release.
+
** [http://blogs.forum.nokia.com/blog/kate-alholas-forum-nokia-blog/2009/03/02/qt4.5-for-maemo-5-fremantle-sdk Qt4.5 for Maemo 5 Fremantle SDK]
-
* Final release when ready. :)
+
** [http://maemoteam.wordpress.com/2009/03/05/maemo-5-alpha-rootstraps-now-available-in-sdk/ Maemo 5 Alpha rootstraps now available in SDK+]
 +
** First ports: [http://www.internettablettalk.com/forums/showpost.php?p=268420&postcount=16 Mauku], [http://www.internettablettalk.com/forums/showpost.php?p=268543&postcount=24 Qt Cannon], [http://www.internettablettalk.com/forums/showpost.php?p=268618&postcount=37 GPodder], [http://www.internettablettalk.com/forums/showpost.php?p=268622&postcount=38 Transmission], [http://www.internettablettalk.com/forums/showpost.php?p=268650&postcount=48 SharePy], [http://www.internettablettalk.com/forums/showpost.php?p=269082&postcount=65 OSM2Go], [http://arstechnica.com/open-source/news/2009/03/developer-ports-frets-on-fire-to-maemo-5.ars Frets On Fire].
 +
* 2009-04-28: [http://maemo.org/news/announcements/maemo_5_beta_sdk_out/ The Maemo 5 Beta SDK is out] with Desktop edit mode and draft [http://maemo.org/development/sdks/maemo_5_beta_docs/ Development Manual]. [http://www.internettablettalk.com/forums/showthread.php?p=283245 talk.maemo.org thread] - [http://www.engadget.com/2009/04/29/maemo-5-beta-sdk-released-into-the-hands-of-an-eagerly-waiting-w/ Engadget] - [http://www.intomobile.com/2009/05/03/maemo-5-sdk-reaches-beta-stage.html IntoMobile].
 +
** [http://blogs.igalia.com/berto/2009/04/29/maemo-sdk-beta-released-hildon-development-is-now-open/ Hildon development is now open!]
 +
** [http://blogs.igalia.com/dape/2009/04/29/new-modest-plugin-system-anyone-willing-to-implement-rss-support/ Modest development goes open].
 +
* 2009-05-11: First version of the [http://blogs.igalia.com/apinheiro/2009/05/11/cail-clutter-accessibility-implementation-library/ CAIL: Clutter Accessibility Implementation Library] released by Igalia, sponsored by Maemo SW.
 +
* 2009-05-29: [[Mozilla_Maemo_Danish_Weekend|Mozilla/Maemo Danish Weekend]].
 +
* 2009-07-14: [http://maemo.org/news/announcements/maemo_5_beta_2_bugfix_release-time_for_quality_assurance/ Maemo 5 Beta 2 bugfix release: Time for Quality Assurance]. Status Area now available. [http://talk.maemo.org/showthread.php?t=30274 talk.maemo.org thread] - [http://www.intomobile.com/2009/07/20/maemo-5-beta-2-sdk-released.html IntoMobile]
 +
* 2009-11-16: Release [http://flors.wordpress.com/2009/11/16/maemo-5-final-release-updated-sdk-and-firmware/ Maemo 5 Final SDK and firmware], also known as [[Maemo 5/PR1.0|PR1.0]]
 +
* 2009-12-[04-06]: [[Maemo-Barcelona Long Weekend]].
 +
* 2010-01-14: Release of [[Maemo 5/PR1.1 | Maemo 5 PR 1.1]] firmware and SDK update
 +
* 2010-02-[06-07]: [[FOSDEM 2010]].
 +
* 2010-02-16: Release of [[Maemo 5/PR1.1.1|Maemo 5 PR 1.1.1]] firmware update
 +
* 2010-05-25: Release of [[Maemo 5/PR1.2|Maemo 5 PR 1.2]] firmware update
 +
* 2010-10-25: Release of [[Maemo 5/PR1.3|Maemo 5 PR 1.3]] firmware update
 +
* 2011-01-29: [http://lists.maemo.org/pipermail/maemo-community/2011-January/004620.html Announcement] of the Maemo 5 [[Community SSU]].
==New==
==New==
-
* OMAP3 support
+
''' Please see also the [[Maemo 5/PR1.1 | PR 1.1 release notes]]'''
 +
 
 +
* [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&navigationId=12643&contentId=14649 OMAP3] support
* HSPA/3G support
* HSPA/3G support
* High definition camera support
* High definition camera support
-
* OpenGL ES
+
* [[OpenGL-ES]]
-
* Clutter
+
* [https://garage.maemo.org/projects/mafw/ Media Application Framework] ([http://garage.maemo.org/docman/view.php/885/368/mafw-maemo-fremantle-draft.pdf Documentation], [http://arstechnica.com/open-source/news/2009/02/first-look-the-maemo-5-multimedia-framework.ars Ars Technica review]) - [http://blogs.igalia.com/jasuarez/2009/08/04/mafw-whats-up/ Fremantle Beta 2 update]
-
* Meta Tracker
+
* [http://clutter-project.org/ Clutter] - [http://www.murrayc.com/blog/permalink/2009/04/24/tutorial-for-clutter-0910/ Tutorial for Clutter 0.9/1.0] - [http://blogs.igalia.com/apinheiro/2009/05/11/cail-clutter-accessibility-implementation-library/ CAIL: Clutter Accessibility Implementation Library]
 +
* Meta Tracker ([http://pvanhoof.be/files/fosdem09.odp FOSDEM 2009 presentation], [http://blog.ifrade.es/2009/02/25/release-release-tracker-0690/ About the 0.6.90 release])
* PulseAudio
* PulseAudio
* GUPnP
* GUPnP
Line 26: Line 46:
* A2DP & AVRCP support
* A2DP & AVRCP support
* OpenMAX
* OpenMAX
 +
* Improved [http://lwn.net/Articles/318154/ power management for OMAP3].
 +
 +
See also the improvements done in [[open development]].
== Changes ==
== Changes ==
Line 32: Line 55:
* New and updated Hildon/Gtk widgets.
* New and updated Hildon/Gtk widgets.
* Gtk 2.0 library upgraded to version 2.12
* Gtk 2.0 library upgraded to version 2.12
-
* Glib upgraded to 2.16
+
* Glib upgraded to 2.18
* Pango upgraded to 1.20
* Pango upgraded to 1.20
* Cairo upgraded to 1.6.4
* Cairo upgraded to 1.6.4
Line 39: Line 62:
===UI Framework===
===UI Framework===
Fremantle introduces a new UI framework which uses Clutter OpenGL library. It provides the following functionality:
Fremantle introduces a new UI framework which uses Clutter OpenGL library. It provides the following functionality:
-
* Window manager
+
* Window/compositing manager
* Task Launcher
* Task Launcher
* Task switcher
* Task switcher
Line 45: Line 68:
* Status menu and status area
* Status menu and status area
* New Hildon notification API for handling desktop notifications.
* New Hildon notification API for handling desktop notifications.
 +
 +
The Help library is dropped. Diablo applications that use context-sensitive help and use the libhildonhelp library need to remove the dependencies from their packages in order to work in Maemo 5.
 +
 +
More information in the [http://maemo.org/development/sdks/maemo5_alpha_overview/ Overview of Maemo 5 UI].
=== Media Application Framework===
=== Media Application Framework===
-
A new framework that provides high-level components to developers to ease the task of writing media player applications by abstracting them from the details of low-level components. Thus, it allows them to focus on the UI design and development. The framework also eases the development of 3rd party plugins, similar to GStreamer, but on a higher level.
+
The [https://garage.maemo.org/projects/mafw/ Media Application Framework] (MAFW) provides an open, flexible and extensible layer that eases the development of multimedia applications for the Maemo platform. It is a complement to the Multimedia framework that has been heavily improved in Fremantle. MAFW provides:
 +
 
 +
* An extendable, pluggable framework interface, which allows to develop new plugins that provide integration with new multimedia services or rendering engines, that can be seamlessly integrated in all MAFW based applications.
 +
* Easy to use APIs that speed up application developing, providing support for playback control, discovery and browsing of multimedia resources and playlist manipulation.
 +
* Independence of the technology. Since MAFW is a plugin based framework, it is not tied to a particular multimedia technology (GStreamer, MPlayer, Tracker). Plugin developers have freedom to choose the technologies they want to use in their plugins, and application developers do not need to know about them.
 +
 
 +
The revamped Media Player will be based on this framework, allowing the possibility for third party developers to create integrated media applications and plugins integrating web services. Application developers are encouraged to look at the [[Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Media Application Framework %28MAFW%29|MAFW documentation]] or the alternative [http://garage.maemo.org/docman/view.php/885/368/mafw-maemo-fremantle-draft.pdf PDF documentation] and the example application provided in the SDK.
===Data management===
===Data management===
-
Tracker introduced to replace libmetalayer.
+
* Tracker introduced to replace libmetalayer.
 +
* osso-gnomevfs-extra is deprecated. Applications should not depend on it anymore.
===Connectivity===
===Connectivity===
Line 70: Line 104:
====Location framework====
====Location framework====
-
Changes tbd.
+
 
 +
The following deprecated low level GPS libraries are removed:
 +
* libgpsbt
 +
* libgpsmgr
 +
* gpsd daemon
 +
 
 +
Instead of gpsd, there is liblocation API library and a set of on-request daemon processes for different location methods (eg: gypsy-daemon for bluetooth GPS, location daemon for integrated GPS and network-based methods).
===Multimedia===
===Multimedia===
Line 80: Line 120:
* Speex introduced.
* Speex introduced.
* GUPnP introduced.
* GUPnP introduced.
 +
 +
See http://www.slideshare.net/ensonic/maemo-multimedia-framework-presentation
===System SW===
===System SW===
-
* OHM introduced as a replacement for dsme and mce components which are responsible for device state and mode control.
+
* initfs isn't used anymore
 +
* Device startup handled by Upstart instead of sysvinit.  Location and format of init scripts differ.
 +
* OHM introduced as a policy framework mainly for audio in addition to [https://garage.maemo.org/projects/dsm/ dsme] (now developed openly) and mce components, which are responsible for device state and mode control.
* Profile API : A new client library (libprofile) and daemon (profiled) introduced for accessing profile settings.
* Profile API : A new client library (libprofile) and daemon (profiled) introduced for accessing profile settings.
* Alarm API's updated: The number and functionality of API interface functions remains roughly the same as before. The usage (parameters passed) and underlying transfer protocol (dbus messages) are changed substantially.
* Alarm API's updated: The number and functionality of API interface functions remains roughly the same as before. The usage (parameters passed) and underlying transfer protocol (dbus messages) are changed substantially.
-
+
* [https://garage.maemo.org/projects/busybox4maemo/ BusyBox] (now developed openly) updated to 1.10.2 (or newer?).
 +
 
 +
===SDK===
 +
 
 +
* GCC updated to 4.x. Stricter checks for C and C++ code.
 +
 
===RTCom===
===RTCom===
* Farsight API break: Farsight upgraded/re-written to farsight2.  
* Farsight API break: Farsight upgraded/re-written to farsight2.  
* Telepathy: libtelepathy outdated. Use telepathy-glib instead.
* Telepathy: libtelepathy outdated. Use telepathy-glib instead.
-
* Evolution-data-server dropped.
 
* libgalago and galago-daemon dropped.
* libgalago and galago-daemon dropped.
-
+
 
===Window manager===
===Window manager===
Window manager upgraded to matchbox-window-manager-2
Window manager upgraded to matchbox-window-manager-2
Line 115: Line 163:
   |columns=product,component,id,summary
   |columns=product,component,id,summary
}}
}}
 +
 +
[[Category:Fremantle]]

Latest revision as of 10:54, 8 May 2012

Fremantle is the codename of the Maemo 5 release. It comes after Maemo 4.1 (Diablo) and before Harmattan.

Contents

[edit] Fremantle timeline

This is a timeline based on known events and announcements. Many dates are quite flexible at this point.

[edit] New

Please see also the PR 1.1 release notes

See also the improvements done in open development.

[edit] Changes

[edit] Toolkit

  • New and updated Hildon/Gtk widgets.
  • Gtk 2.0 library upgraded to version 2.12
  • Glib upgraded to 2.18
  • Pango upgraded to 1.20
  • Cairo upgraded to 1.6.4
  • gcc upgraded to 4.2

[edit] UI Framework

Fremantle introduces a new UI framework which uses Clutter OpenGL library. It provides the following functionality:

  • Window/compositing manager
  • Task Launcher
  • Task switcher
  • Home view
  • Status menu and status area
  • New Hildon notification API for handling desktop notifications.

The Help library is dropped. Diablo applications that use context-sensitive help and use the libhildonhelp library need to remove the dependencies from their packages in order to work in Maemo 5.

More information in the Overview of Maemo 5 UI.

[edit] Media Application Framework

The Media Application Framework (MAFW) provides an open, flexible and extensible layer that eases the development of multimedia applications for the Maemo platform. It is a complement to the Multimedia framework that has been heavily improved in Fremantle. MAFW provides:

  • An extendable, pluggable framework interface, which allows to develop new plugins that provide integration with new multimedia services or rendering engines, that can be seamlessly integrated in all MAFW based applications.
  • Easy to use APIs that speed up application developing, providing support for playback control, discovery and browsing of multimedia resources and playlist manipulation.
  • Independence of the technology. Since MAFW is a plugin based framework, it is not tied to a particular multimedia technology (GStreamer, MPlayer, Tracker). Plugin developers have freedom to choose the technologies they want to use in their plugins, and application developers do not need to know about them.

The revamped Media Player will be based on this framework, allowing the possibility for third party developers to create integrated media applications and plugins integrating web services. Application developers are encouraged to look at the MAFW documentation or the alternative PDF documentation and the example application provided in the SDK.

[edit] Data management

  • Tracker introduced to replace libmetalayer.
  • osso-gnomevfs-extra is deprecated. Applications should not depend on it anymore.

[edit] Connectivity

[edit] BlueZ

BlueZ updated to version 4.x. Brings along a major redesign of the D-Bus API and local bluetooth service framework. The main benefit of this change is decreased code complexity both on the BlueZ and the application side due to a much simpler API.

[edit] osso-gwconnect

Removed since identical functionality has been a part of Bluez core since Chinook.

[edit] Samba

Samba support to be dropped.

[edit] ClinkC

ClinkC deprecated in favour of GUPnP. The following main advantages have been identified to support this transition:

  • Designed specifically for Maemo.
  • Much simpler design/api compared to ClinkC or any other UPnP library.
  • Uses glib's main loop for waiting on sockets rather than launching several threads that adds lots of unneeded complexity and therefore introduces lots of hard-to-kill bugs.

[edit] Location framework

The following deprecated low level GPS libraries are removed:

  • libgpsbt
  • libgpsmgr
  • gpsd daemon

Instead of gpsd, there is liblocation API library and a set of on-request daemon processes for different location methods (eg: gypsy-daemon for bluetooth GPS, location daemon for integrated GPS and network-based methods).

[edit] Multimedia

  • Gstreamer OpenMax wrapper on freedesktop.org.
  • New GStreamer plugin introduced that wraps openmax-il components under the gstreamer API.
  • OpenMax plugins for all the codecs.
  • No DSP sink and sources anymore.
  • esound replaced by libcanberra.
  • Speex introduced.
  • GUPnP introduced.

See http://www.slideshare.net/ensonic/maemo-multimedia-framework-presentation

[edit] System SW

  • initfs isn't used anymore
  • Device startup handled by Upstart instead of sysvinit. Location and format of init scripts differ.
  • OHM introduced as a policy framework mainly for audio in addition to dsme (now developed openly) and mce components, which are responsible for device state and mode control.
  • Profile API : A new client library (libprofile) and daemon (profiled) introduced for accessing profile settings.
  • Alarm API's updated: The number and functionality of API interface functions remains roughly the same as before. The usage (parameters passed) and underlying transfer protocol (dbus messages) are changed substantially.
  • BusyBox (now developed openly) updated to 1.10.2 (or newer?).

[edit] SDK

  • GCC updated to 4.x. Stricter checks for C and C++ code.

[edit] RTCom

  • Farsight API break: Farsight upgraded/re-written to farsight2.
  • Telepathy: libtelepathy outdated. Use telepathy-glib instead.
  • libgalago and galago-daemon dropped.

[edit] Window manager

Window manager upgraded to matchbox-window-manager-2


[edit] Enhancement requests implemented

ProductComponentIDSummary
XournalUI12279No more adding when reaching Last page

[edit] Bugs fixed

ProductComponentIDSummary (3 tasks)
PyMaemoGeneral4782osso.Context causes segmentation fault
XournalUI5965ruled line toggle state gets confused
XournalUI12058When the device is lying on a flat surface, the McE may wrongly report the device is rotated.