===>>>THIS IS A DRAFT.<<<===
MeeGo is a Linux-based OS built for the next-generation of computing devices. Different from other mobile OSes, MeeGo is a truly open source platform that includes the core OS, UI libraries and tools, references user experiences for multiples devices and applications, a standard set of APIs across all target device types and the flexibility to support proprietary add-ons. MeeGo supports a magnitude of mobile client devices (Handsets, Connected-TVs, In-Vehicle Infotainment, Netbooks and Tablets) and provides choice and flexibility to create and deliver a uniquely differentiated service offering.
The MeeGo compliance program is designed to make sure things stay compatible, such that the devices supporting a particular MeeGo version can run the same software, and so that app developers know how to build software which will run across the family. Simply put, we want to make it possible for an application developer to write a MeeGo compliant application once and run it on any MeeGo compliant device.
MeeGo compliance addresses two categories of compliance: MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as "devices"). In both cases, the use of the MeeGo brand will be granted based on being compliant. Following is an overview of the approach for each of these categories.
The MeeGo compliance program benefits all the players in the MeeGo ecosystem. Everyone in the ecosystem (user, developer, software integrators, device manufacturers) will benefit from the program.
Ensuring compliance with MeeGo is easy and does not include any costs or fees. The testing tools are provided for free and available for download from [1].
The MeeGo compliance process consists of three high-level steps for both OSV and ISV partners:
You need to go through the compliance process anytime there are changes in the stack of your previously compliant product or when moving to support a newer MeeGo release. That is:
Example: You are releasing a new product that utilizes MeeGo technology and you want to use the MeeGo mark and market your product as compliant with MeeGo (release 1.x).
Example: You are now using MeeGo 1.2 and the compliance specifications and tools were updated for MeeGo 1.2. In this case, your existing product which already went through 1.1 compliance, will need to go through compliance for 1.2 since the specs and tools were updated for that MeeGo release.
For each release of the MeeGo platform, a MeeGo Compliance Document (MCD) will be provided. The current version of the document is available from: [7].
The document describes the rules and requirements for complying. When there are updates to the MeeGo specification document, the compliance tools will be updated to reflect the changes in the compliance specification.
There are two types of MeeGo platform compliance:
As a result, if you are an ISV/OSV: and you want to go through the MeeGo Compliance Process for your software stack, you will need to be compliant with MeeGo Core Stack + MeeGo Profile (for a specific device type).
MeeGo compliance for apps verifies that an application's external dependencies are satisfied by a MeeGo compliant stack, that any libraries or other dependencies of the application are provided within the core software stack and target device profile.
An application can be written to be dependent only on the MeeGo core software stack - in which case it would run on any MeeGo compliant device. However, applications with UI would typically target a specific device profile - so for example an application could be MeeGo Handset Compliant - meaning that it would run on any device compliant with the MeeGo Handset profile.
The MeeGo Compliance Tools are used to check compliance for MeeGo Distributions or MeeGo Applications. The reference input is the MeeGo core package/file list and a minimal MeeGo reference image created by MIC2, which will contain all the required core packages, as well as source rpms.
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages.
For MeeGo Application compliance checking, the input is the application rpm file.
Additional information on the tools is available from [8]. The tools can be used throughout the development cycle to ensure that the final product is in compliance by the time you need to submit the compliance test results.
Note: As a user of these tools, if you encounter a bug or would like to submit a feature request, you can do so at [9] (file under Development Tools/Tools3). Furthermore, you can submit patches or improvements to the tools by creating a bug and attaching the patch to it.
For questions related to compliance specifications and/or tools and/or compliance discussions please use the meego-dev mailing list (([10]) or join the #meego chat room on IRC.
For questions related to using MeeGo trademark which is associated with compliance, you can contact trademark@linuxfoundation.org.
One aspect of ensuring compliance is to verify that introduced source code snippets/patches do not break API or ABI compatibility. The long term goal is to introduce functional testing as part of the compliance tools to provide this assurance. However, for the time being since there are no verification tools for that purpose yet, you need to provide a written confirmation that the source code they introduced does not break compatibility. This written confirmation will be sent to trademarks@linuxfoundation.org when asking for permission to the use the MeeGo mark/logo.
We are looking into setting up an online system that will allow you to upload results and submit them with the ability to have a dialogue with the individuals managing the compliance process. The system would allow tracking and also act as a directory of certified MeeGo products.