Open development

m
(Community SSU: github now. gitoriuos dead)
 
(14 intermediate revisions not shown)
Line 1: Line 1:
-
== The basics ==
 
-
 
Maemo is developed as an open collaboration between Nokia and many generous volunteer programmers, designers, and users. Most of Maemo's components are open source, which gives users and developers the freedom and flexibility to contribute to and modify the platform's core development. Read the [http://maemo.nokia.com/maemo/maemo-software/ Introduction to open source] at maemo.nokia.com.
Maemo is developed as an open collaboration between Nokia and many generous volunteer programmers, designers, and users. Most of Maemo's components are open source, which gives users and developers the freedom and flexibility to contribute to and modify the platform's core development. Read the [http://maemo.nokia.com/maemo/maemo-software/ Introduction to open source] at maemo.nokia.com.
Line 7: Line 5:
== Open Source and open development strategy ==
== Open Source and open development strategy ==
 +
* [[Documentation/Maemo 5 Developer Guide/Architecture/Top Level Architecture|Maemo 5 software architecture]] indicating open/closed components.
* [http://www.slideshare.net/qgil/how-maemo-approaches-open-source-presentation How Maemo approaches open source] explains the basics.
* [http://www.slideshare.net/qgil/how-maemo-approaches-open-source-presentation How Maemo approaches open source] explains the basics.
* [http://www.slideshare.net/peterschneider/ari-jaaksi-o-s-i-m-world-2009 Taking open source forward] explains Maemo's willingness to collaborate in the platform while differentiating in the user experience.
* [http://www.slideshare.net/peterschneider/ari-jaaksi-o-s-i-m-world-2009 Taking open source forward] explains Maemo's willingness to collaborate in the platform while differentiating in the user experience.
* [[Open development/Upstream projects|Upstream projects]] providing software integrated in Maemo releases.
* [[Open development/Upstream projects|Upstream projects]] providing software integrated in Maemo releases.
* [[Open development/Maemo contributions|Maemo contributions]] is an attempt to list the most relevant contributions to OSS upstream projects.
* [[Open development/Maemo contributions|Maemo contributions]] is an attempt to list the most relevant contributions to OSS upstream projects.
 +
* [[Open_development/Licensing_change_requests]] is the way to ask for licensing changes.
* [[Task:Components and packages]] contains statistics about packages open/closed in Maemo 4.1. A Maemo 5 update will come after the final release.
* [[Task:Components and packages]] contains statistics about packages open/closed in Maemo 4.1. A Maemo 5 update will come after the final release.
* [[Open development/Why the closed packages]] elaborates the reasons to have certain packages closed and addresses requests for opening components.
* [[Open development/Why the closed packages]] elaborates the reasons to have certain packages closed and addresses requests for opening components.
 +
* [[What can we realistically expect]] lists some current hot topic discussions within the Maemo community
 +
* [[Task:Busybox]] describes the strategy for moving towards open development of Busybox.
 +
* [[Task:osso-xterm]] - opening the development of osso-xterm
See also the [[Task:Maemo_roadmap/Fremantle|Fremantle]] and [[Task:Maemo_roadmap/Harmattan|Harmattan]] roadmaps.
See also the [[Task:Maemo_roadmap/Fremantle|Fremantle]] and [[Task:Maemo_roadmap/Harmattan|Harmattan]] roadmaps.
 +
 +
And this blog post: [http://flors.wordpress.com/2009/08/27/software-freedom-lovers-here-comes-maemo-5/ Software freedom lovers: here comes Maemo 5]
== In practice ==
== In practice ==
-
* If you want to get involved you need to find first the most recent source code available.
+
If you want to get involved you need to find first the most recent source code available:
-
** The source code of OSS components shipped in Maemo releases can be found at http://repository.maemo.org/pool/ e.g. [http://repository.maemo.org/pool/maemo5.0/free/ Maemo 5].
+
* The source code of OSS components shipped in Maemo releases can be found at http://repository.maemo.org/pool/ e.g. [http://repository.maemo.org/pool/maemo5.0/free/ Maemo 5].
-
** The current development of certain components can be found at http://maemo.gitorious.org . See the list of projects above for more details.
+
* The current development of certain components can be found at [http://maemo.gitorious.org Maemo on Gitorious]. See the list of projects above for more details.
-
* If you have patches for upstream components it is better to submit them directly upstream, unless they are indeed specific to Maemo.
+
** [http://gitorious.org/modest/ modest on gitorious] where open development for Modest (the stock N900 mail client) happened.
 +
* [http://mxr.maemo.org maemo.org Cross-Reference] contains searchable source dumps of the open packages of most Maemo releases. This website is incredibly useful; you can search for any given identifier (a name of a C function, for example) and it will find the declaration and all uses of that function for you.
 +
 
 +
If you have patches for upstream components it is better to submit them directly upstream, unless they are indeed specific to Maemo:
* Check the [[Maemo contribution guidelines]] before contributing any code.
* Check the [[Maemo contribution guidelines]] before contributing any code.
-
* Patches with bugfixes are submitted through http://bugs.maemo.org with the corresponding bug report.
+
* Patches with bugfixes are submitted through https://bugs.maemo.org with the corresponding bug report.
* Contact the developers before working on major patches or new features!
* Contact the developers before working on major patches or new features!
-
== Official projects developed openly ==
+
=== MeeGo ===
 +
 
 +
* [http://mxr.meego.com/ Meego Cross-Reference]
 +
* [http://meego.gitorious.org/ MeeGo on Gitorious] is where open development for Meego happens. For example, sources for the Meego Touch Framework are there. You can also find sources for some middleware components used in Maemo that have been partially opened in Meego, like [http://meego.gitorious.org/meego-middleware/mce MCE].
 +
* [http://qt.gitorious.org/ Qt on Gitorious] Qt is an important part of the newer Maemo/Meego releases; you can find its source here.
 +
 
 +
== Projects developed openly ==
 +
 
* Many components integrated in Maemo have Nokia developers or collaborators working directly upstream:
* Many components integrated in Maemo have Nokia developers or collaborators working directly upstream:
** [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=summary Linux kernel - OMAP list.]
** [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=summary Linux kernel - OMAP list.]
-
** BlueZ
+
** [http://www.bluez.org/ BlueZ]
-
** GTK+
+
** [http://gstreamer.freedesktop.org/ GStreamer]
-
** Mozilla
+
** [http://www.gtk.org/ GTK+]
-
** Meta Tracker
+
** [http://www.mozilla.org/ Mozilla]
 +
** [http://projects.gnome.org/tracker/ Meta Tracker]
** Ohm
** Ohm
-
** Telepathy
+
** [http://telepathy.freedesktop.org/wiki/ Telepathy]
-
** Upstart
+
** [http://upstart.ubuntu.com/ Upstart]
** [http://connman.net/ ConnMan]
** [http://connman.net/ ConnMan]
** [http://ofono.org/ oFono]
** [http://ofono.org/ oFono]
Line 42: Line 58:
** [https://garage.maemo.org/projects/busybox4maemo/ BusyBox]
** [https://garage.maemo.org/projects/busybox4maemo/ BusyBox]
** [https://garage.maemo.org/projects/dsm/ dsme]
** [https://garage.maemo.org/projects/dsm/ dsme]
-
** osso-xterm
+
** [https://garage.maemo.org/projects/osso-xterm/ osso-xterm]
 +
* Developer tools:
 +
** [http://code.google.com/p/gst-dsp/ gst-dsp] aims to provide GStreamer elements to take advantage of those algorithms. The list includes video/image decoders and encoders. See also the [http://maemo.gitorious.org/maemo-multimedia/gst-dsp Maemo repository]
== Community projects developed openly ==
== Community projects developed openly ==
 +
There are dozens of community projects developed openly. Learn more about them at (this should link to another page to keep this one around Nokia projects).
There are dozens of community projects developed openly. Learn more about them at (this should link to another page to keep this one around Nokia projects).
 +
 +
=== Extras ===
 +
 +
{{main|Extras}}
 +
 +
The sources from all ''free'' packages in the extras and extras-devel repositories are available [http://repository.maemo.org/extras/pool/fremantle/free/source/ here].
 +
 +
On an [[Nokia N900|N900]], or scratchbox, if you have [http://repository.maemo.org/#extras correctly added the extras-devel repository to sources.list], you can also get any packages source by writing the following on a shell:
 +
 +
apt-get source <packagename>
 +
 +
There are also some [http://vcs.maemo.org/git/ Garage projects using Git as version control system].
 +
 +
Some developers also use gitorious or github.
 +
 +
=== Community SSU ===
 +
 +
The [[community SSU]] has [http://gitorious.org/community-ssu/ its own Gitorious project] ([https://github.com/community-ssu now]). You can find all modifications to the Maemo open components (and sources of those), as well as replacement components and hacked bits, all there.
 +
 +
[[Category:Community]]
 +
[[Category:Development]]

Latest revision as of 16:35, 29 September 2017

Maemo is developed as an open collaboration between Nokia and many generous volunteer programmers, designers, and users. Most of Maemo's components are open source, which gives users and developers the freedom and flexibility to contribute to and modify the platform's core development. Read the Introduction to open source at maemo.nokia.com.

Open development is the goal and open source is a consequence of it. Easier said than done when you need to deliver commercial and competitive products on time, but the Maemo team is trying and improving on every release.

Contents

[edit] Open Source and open development strategy

See also the Fremantle and Harmattan roadmaps.

And this blog post: Software freedom lovers: here comes Maemo 5

[edit] In practice

If you want to get involved you need to find first the most recent source code available:

  • The source code of OSS components shipped in Maemo releases can be found at http://repository.maemo.org/pool/ e.g. Maemo 5.
  • The current development of certain components can be found at Maemo on Gitorious. See the list of projects above for more details.
  • maemo.org Cross-Reference contains searchable source dumps of the open packages of most Maemo releases. This website is incredibly useful; you can search for any given identifier (a name of a C function, for example) and it will find the declaration and all uses of that function for you.

If you have patches for upstream components it is better to submit them directly upstream, unless they are indeed specific to Maemo:

[edit] MeeGo

  • Meego Cross-Reference
  • MeeGo on Gitorious is where open development for Meego happens. For example, sources for the Meego Touch Framework are there. You can also find sources for some middleware components used in Maemo that have been partially opened in Meego, like MCE.
  • Qt on Gitorious Qt is an important part of the newer Maemo/Meego releases; you can find its source here.

[edit] Projects developed openly

[edit] Community projects developed openly

There are dozens of community projects developed openly. Learn more about them at (this should link to another page to keep this one around Nokia projects).

[edit] Extras

Main article: Extras


The sources from all free packages in the extras and extras-devel repositories are available here.

On an N900, or scratchbox, if you have correctly added the extras-devel repository to sources.list, you can also get any packages source by writing the following on a shell:

apt-get source <packagename>

There are also some Garage projects using Git as version control system.

Some developers also use gitorious or github.

[edit] Community SSU

The community SSU has its own Gitorious project (now). You can find all modifications to the Maemo open components (and sources of those), as well as replacement components and hacked bits, all there.