<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.meego.com/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.meego.com/index.php?title=Special:Contributions/Mwichmann&amp;feed=atom&amp;limit=50&amp;target=Mwichmann&amp;year=&amp;month=</id>
		<title>MeeGo wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.meego.com/index.php?title=Special:Contributions/Mwichmann&amp;feed=atom&amp;limit=50&amp;target=Mwichmann&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Special:Contributions/Mwichmann"/>
		<updated>2013-05-22T20:29:31Z</updated>
		<subtitle>From MeeGo wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance_tools</id>
		<title>Quality/Compliance tools</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance_tools"/>
				<updated>2011-06-06T22:46:40Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Result Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The compliance tools are used to check distributions using the MeeGo software stack, and applications targeting such distributions, for compliance with the MeeGo requirements. Checking is done against reference information which tells the tools what is mandatory.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the candidate distribution needs to supply an image of the distribution in suitable format, which will include source rpm packages. The other input to the tool is an official MeeGo reference image (which also includes source packages), and a list of the mandatory packages.&lt;br /&gt;
&lt;br /&gt;
For application compliance checking, the candidate rpm package is supplied as input.  Other inputs are an official MeeGo reference image (this one does not include sources), which will be used to test that installation actually works, as well as a list of packages and a list of packages that make up the MeeGo API.  The latter two are used to determine valid dependencies and to perform a check of whether the application is a MeeGo API application or one that uses different/additional libaries.&lt;br /&gt;
&lt;br /&gt;
The tools will generate report files (in HTML currently) to show the result.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
The compliance tools can be installed using released rpm and deb packages (available for a variety of distrubutions), or installed from source code if using an unsupported distribution.&lt;br /&gt;
&lt;br /&gt;
== Packages and Repos ==&lt;br /&gt;
&lt;br /&gt;
The code lives in the MeeGo git repository, and will be built by the OBS for all the supported distributions automatically.  The home for this is &lt;br /&gt;
[http://build.meego.com/package/show?package=meego-compliance-tools&amp;amp;project=devel:tools:building devel:tools:building/meego-compliance-tools]. &lt;br /&gt;
&lt;br /&gt;
The following Linux distributions are supported at the moment by OBS (this is a changing list, check the repositories which may be more up to date than this page):&lt;br /&gt;
&lt;br /&gt;
* Debian 5.0&lt;br /&gt;
* xUbuntu 9.10, 10.04, 10.10&lt;br /&gt;
* Fedora 11, 12, 13, 14&lt;br /&gt;
* openSUSE 11.1, 11.2, 11.3, 11.4&lt;br /&gt;
* MeeGo 1.0, 1.1, Trunk (1.2)&lt;br /&gt;
&lt;br /&gt;
The packages appear in the tools repository at [http://repo.meego.com/MeeGo/tools/repos/ tools/repos]. rpm-based distributions have usable .repo files in each distribution directory which can be used by zypper or yum, but the deb-based distributions do not; the sources.list.d entry needs to be constructed from the path.  For example, for Ubuntu 10.10 the following in /etc/apt/sources.list.d/meego-tools.list:&lt;br /&gt;
  deb http://repo/meego.com/MeeGo/tools/repos/ubuntu/10.10/ ./&lt;br /&gt;
&lt;br /&gt;
For distros which use rpms natively, there are three packages available:&lt;br /&gt;
* meego-compliance-tools (common data, will be installed automatically as the dependency of the two packages below)&lt;br /&gt;
* meego-dist-compliance-tools (for MeeGo distro compliance checking)&lt;br /&gt;
* meego-app-compliance-tools. (for MeeGo application compliance checking)&lt;br /&gt;
&lt;br /&gt;
For distros which use debs natively, only the meego-compliance-tools package is needed.&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
The tools can also be installed from source (which is all Python). After fetching the code, under the code directory, run:&lt;br /&gt;
  $ [sudo] make install&lt;br /&gt;
&lt;br /&gt;
The source code is hosted at:&lt;br /&gt;
  [http://meego.gitorious.org/meego-developer-tools/meego-compliance-tools meego-compliance-tools@gitorious.org]&lt;br /&gt;
&lt;br /&gt;
A typical fetch would be:&lt;br /&gt;
  git clone git://gitorious.org/meego-developer-tools/meego-compliance-tools.git&lt;br /&gt;
&lt;br /&gt;
== Compliance Image Preparation ==&lt;br /&gt;
&lt;br /&gt;
To prepare the images used in compliance tools, you need [[Image_Creation|MIC2]] with new features (version 0.22.0 or later).  The mic2 package from the same tools repository described above will provide a current version.&lt;br /&gt;
&lt;br /&gt;
=  Features =&lt;br /&gt;
== dist-compliance-tool ==&lt;br /&gt;
Executes compliance checking for distributions build from the MeeGo code base. The following features are supported:&lt;br /&gt;
* Binary package comparison:&lt;br /&gt;
** Exist in target image?&lt;br /&gt;
** Version matches the requirement?&lt;br /&gt;
*** flexible version checking: support rules with comparison operators like &amp;quot;&amp;gt;=&amp;quot; in core package list (kernel &amp;gt;= 2.6.35)&lt;br /&gt;
* Content in source rpm comparison:&lt;br /&gt;
** This step will be skipped if binary rpm checking fails&lt;br /&gt;
** Spec filename&lt;br /&gt;
** Spec content&lt;br /&gt;
** Sources and md5sum&lt;br /&gt;
** Patches and the content&lt;br /&gt;
&lt;br /&gt;
* File checking: &lt;br /&gt;
** Exist in target image&lt;br /&gt;
*** For example check /usr/lib/libGLES2.so.1 if exists in target image or not.&lt;br /&gt;
&lt;br /&gt;
== app-compliance-tool ==&lt;br /&gt;
For compliance checking for MeeGo applications, the following features are supported:&lt;br /&gt;
* check if all dependent packages exist in core package list&lt;br /&gt;
* check if the target package can be installed in the minimal image&lt;br /&gt;
* verify the installation location of the application&lt;br /&gt;
* verify the minimal requirement of the desktop file and icon for the application&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== Image Preparation ==&lt;br /&gt;
Before using the tools, the reference image needs to be created by using MIC2 (version 0.22.0 or later):&lt;br /&gt;
  $ [sudo] mic-image-creator --run-mode=0 --cache=mycachedir --format=fs  --config=&amp;lt;ks file&amp;gt; --package=tar.bz2 --include-source&lt;br /&gt;
The sample ks file is at /usr/share/compliance-tools/share dir after installation or can be downloaded at:&lt;br /&gt;
  Meego-1.1:[[media:Meego-minimal-compliance-1.0.99.1.ks|MeeGo-minimal-compliance-1.0.99.1.ks]]&lt;br /&gt;
  Meego-1.2:[[media:MeeGo-minimal-compliance-1.1.99.7.ks|MeeGo-minimal-compliance-1.1.99.7.ks]]&lt;br /&gt;
The sample core list file is at /usr/share/compliance-tools/share dir after installation or can be downloaded at:&lt;br /&gt;
  Meego-1.1:[[media:Core-list-1.0.99.1‎|Core-list-1.0.99.1]]&lt;br /&gt;
  Meego-1.2:[[media:Meego-full-compliance-pkg-1.2.txt|Core-list-1.1.99.7]]&lt;br /&gt;
And the ks file and core list should be synced with and conform to the latest [[Quality/Compliance|MeeGo compliance spec]].&lt;br /&gt;
&lt;br /&gt;
For application compliance checking, the source packages are not needed, so the --include-source option can be omitted.&lt;br /&gt;
&lt;br /&gt;
In future, official pre-made images will be available, when this occurs the appropriate image should be downloaded instead of constructed.&lt;br /&gt;
&lt;br /&gt;
To use the dist compliance check tool (dist_compliance), the needed target image can also be generated by mic2 using the above options. But the target images&lt;br /&gt;
will not be limited to this specific format (fs in tar.bz2). If the exist target image is in other formats, please unpack it to a directory manually using format&lt;br /&gt;
specific instructions and use this directory as the command line input.&lt;br /&gt;
&lt;br /&gt;
== Devices Compliance Check ==&lt;br /&gt;
The command &amp;quot;dist_compliance&amp;quot; is for checking compliance of MeeGo devices, or distributions.&lt;br /&gt;
&lt;br /&gt;
    Usage: [sudo] dist_compliance [options]&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program's version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -c CORELIST, --corelist=CORELIST&lt;br /&gt;
                            File containing MeeGo Core package list&lt;br /&gt;
      -r REF, --reference=REF&lt;br /&gt;
                            Path to reference image or unpacked directory&lt;br /&gt;
      -t TGT, --target=TGT  Path to target image or unpacked directory&lt;br /&gt;
      -o OUTDIR, --outdir=OUTDIR&lt;br /&gt;
                            Output directory of report&lt;br /&gt;
      -d, --debug           Save intermediate log data for debugging&lt;br /&gt;
&lt;br /&gt;
== Apps Compliance Check ==&lt;br /&gt;
The command &amp;quot;app_compliance&amp;quot; is for applications compliance checking.&lt;br /&gt;
&lt;br /&gt;
    Usage: [sudo] app_compliance [options] &amp;lt;app-rpm&amp;gt;&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program's version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -r REFIMAGE, --refimage=REFIMAGE&lt;br /&gt;
                            Path to reference image&lt;br /&gt;
      -c CORELIST, --corelist=CORELIST&lt;br /&gt;
                            File containing MeeGo Core package list&lt;br /&gt;
      -m MEEGO_API_PKGLIST, --meego_api_pkglist=MEEGO_API_PKGLIST&lt;br /&gt;
                            File containing MeeGo API package list&lt;br /&gt;
      -o OUTDIR, --outdir=OUTDIR&lt;br /&gt;
                            Output directory of report&lt;br /&gt;
      -d, --debug           Save intermediate log data for debugging&lt;br /&gt;
&lt;br /&gt;
The sample MeeGo API package list file can be downloaded at: &lt;br /&gt;
    [[media:MeeGo-API-pkglist.txt|MeeGo-API-pkglist.txt]]&lt;br /&gt;
&lt;br /&gt;
= Result Format =&lt;br /&gt;
Currently, the output of checking tools will be stored in HTML files.  &lt;br /&gt;
&lt;br /&gt;
A distribution check report will look like this:&lt;br /&gt;
[[File:DistSummaryReport.png|none|600px|Sample Report]]&lt;br /&gt;
&lt;br /&gt;
An application check report will look like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Appcheck2.png|none|600px|Sample Report]]&lt;br /&gt;
&lt;br /&gt;
= Bug Report =&lt;br /&gt;
&lt;br /&gt;
If problems were found in the compliance tools, please file bugs at bugs.meego.com. There is a top-level category for compliance - use &amp;quot;MeeGo Spec and Compliance&amp;quot;, product &amp;quot;Compliance Tools&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* add checking for contents of binary packages&lt;br /&gt;
* use new image format with separated src.rpm pack&lt;br /&gt;
* Web UI for commenting the result&lt;br /&gt;
* Web service for app checking?&lt;br /&gt;
* Eliminate need for a reference compliance image for dist checking&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Appcheck2.png</id>
		<title>File:Appcheck2.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Appcheck2.png"/>
				<updated>2011-06-06T22:45:10Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance_tools</id>
		<title>Quality/Compliance tools</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance_tools"/>
				<updated>2011-06-04T21:39:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Packages and Repos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The compliance tools are used to check distributions using the MeeGo software stack, and applications targeting such distributions, for compliance with the MeeGo requirements. Checking is done against reference information which tells the tools what is mandatory.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the candidate distribution needs to supply an image of the distribution in suitable format, which will include source rpm packages. The other input to the tool is an official MeeGo reference image (which also includes source packages), and a list of the mandatory packages.&lt;br /&gt;
&lt;br /&gt;
For application compliance checking, the candidate rpm package is supplied as input.  Other inputs are an official MeeGo reference image (this one does not include sources), which will be used to test that installation actually works, as well as a list of packages and a list of packages that make up the MeeGo API.  The latter two are used to determine valid dependencies and to perform a check of whether the application is a MeeGo API application or one that uses different/additional libaries.&lt;br /&gt;
&lt;br /&gt;
The tools will generate report files (in HTML currently) to show the result.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
The compliance tools can be installed using released rpm and deb packages (available for a variety of distrubutions), or installed from source code if using an unsupported distribution.&lt;br /&gt;
&lt;br /&gt;
== Packages and Repos ==&lt;br /&gt;
&lt;br /&gt;
The code lives in the MeeGo git repository, and will be built by the OBS for all the supported distributions automatically.  The home for this is &lt;br /&gt;
[http://build.meego.com/package/show?package=meego-compliance-tools&amp;amp;project=devel:tools:building devel:tools:building/meego-compliance-tools]. &lt;br /&gt;
&lt;br /&gt;
The following Linux distributions are supported at the moment by OBS (this is a changing list, check the repositories which may be more up to date than this page):&lt;br /&gt;
&lt;br /&gt;
* Debian 5.0&lt;br /&gt;
* xUbuntu 9.10, 10.04, 10.10&lt;br /&gt;
* Fedora 11, 12, 13, 14&lt;br /&gt;
* openSUSE 11.1, 11.2, 11.3, 11.4&lt;br /&gt;
* MeeGo 1.0, 1.1, Trunk (1.2)&lt;br /&gt;
&lt;br /&gt;
The packages appear in the tools repository at [http://repo.meego.com/MeeGo/tools/repos/ tools/repos]. rpm-based distributions have usable .repo files in each distribution directory which can be used by zypper or yum, but the deb-based distributions do not; the sources.list.d entry needs to be constructed from the path.  For example, for Ubuntu 10.10 the following in /etc/apt/sources.list.d/meego-tools.list:&lt;br /&gt;
  deb http://repo/meego.com/MeeGo/tools/repos/ubuntu/10.10/ ./&lt;br /&gt;
&lt;br /&gt;
For distros which use rpms natively, there are three packages available:&lt;br /&gt;
* meego-compliance-tools (common data, will be installed automatically as the dependency of the two packages below)&lt;br /&gt;
* meego-dist-compliance-tools (for MeeGo distro compliance checking)&lt;br /&gt;
* meego-app-compliance-tools. (for MeeGo application compliance checking)&lt;br /&gt;
&lt;br /&gt;
For distros which use debs natively, only the meego-compliance-tools package is needed.&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
The tools can also be installed from source (which is all Python). After fetching the code, under the code directory, run:&lt;br /&gt;
  $ [sudo] make install&lt;br /&gt;
&lt;br /&gt;
The source code is hosted at:&lt;br /&gt;
  [http://meego.gitorious.org/meego-developer-tools/meego-compliance-tools meego-compliance-tools@gitorious.org]&lt;br /&gt;
&lt;br /&gt;
A typical fetch would be:&lt;br /&gt;
  git clone git://gitorious.org/meego-developer-tools/meego-compliance-tools.git&lt;br /&gt;
&lt;br /&gt;
== Compliance Image Preparation ==&lt;br /&gt;
&lt;br /&gt;
To prepare the images used in compliance tools, you need [[Image_Creation|MIC2]] with new features (version 0.22.0 or later).  The mic2 package from the same tools repository described above will provide a current version.&lt;br /&gt;
&lt;br /&gt;
=  Features =&lt;br /&gt;
== dist-compliance-tool ==&lt;br /&gt;
Executes compliance checking for distributions build from the MeeGo code base. The following features are supported:&lt;br /&gt;
* Binary package comparison:&lt;br /&gt;
** Exist in target image?&lt;br /&gt;
** Version matches the requirement?&lt;br /&gt;
*** flexible version checking: support rules with comparison operators like &amp;quot;&amp;gt;=&amp;quot; in core package list (kernel &amp;gt;= 2.6.35)&lt;br /&gt;
* Content in source rpm comparison:&lt;br /&gt;
** This step will be skipped if binary rpm checking fails&lt;br /&gt;
** Spec filename&lt;br /&gt;
** Spec content&lt;br /&gt;
** Sources and md5sum&lt;br /&gt;
** Patches and the content&lt;br /&gt;
&lt;br /&gt;
* File checking: &lt;br /&gt;
** Exist in target image&lt;br /&gt;
*** For example check /usr/lib/libGLES2.so.1 if exists in target image or not.&lt;br /&gt;
&lt;br /&gt;
== app-compliance-tool ==&lt;br /&gt;
For compliance checking for MeeGo applications, the following features are supported:&lt;br /&gt;
* check if all dependent packages exist in core package list&lt;br /&gt;
* check if the target package can be installed in the minimal image&lt;br /&gt;
* verify the installation location of the application&lt;br /&gt;
* verify the minimal requirement of the desktop file and icon for the application&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== Image Preparation ==&lt;br /&gt;
Before using the tools, the reference image needs to be created by using MIC2 (version 0.22.0 or later):&lt;br /&gt;
  $ [sudo] mic-image-creator --run-mode=0 --cache=mycachedir --format=fs  --config=&amp;lt;ks file&amp;gt; --package=tar.bz2 --include-source&lt;br /&gt;
The sample ks file is at /usr/share/compliance-tools/share dir after installation or can be downloaded at:&lt;br /&gt;
  Meego-1.1:[[media:Meego-minimal-compliance-1.0.99.1.ks|MeeGo-minimal-compliance-1.0.99.1.ks]]&lt;br /&gt;
  Meego-1.2:[[media:MeeGo-minimal-compliance-1.1.99.7.ks|MeeGo-minimal-compliance-1.1.99.7.ks]]&lt;br /&gt;
The sample core list file is at /usr/share/compliance-tools/share dir after installation or can be downloaded at:&lt;br /&gt;
  Meego-1.1:[[media:Core-list-1.0.99.1‎|Core-list-1.0.99.1]]&lt;br /&gt;
  Meego-1.2:[[media:Meego-full-compliance-pkg-1.2.txt|Core-list-1.1.99.7]]&lt;br /&gt;
And the ks file and core list should be synced with and conform to the latest [[Quality/Compliance|MeeGo compliance spec]].&lt;br /&gt;
&lt;br /&gt;
For application compliance checking, the source packages are not needed, so the --include-source option can be omitted.&lt;br /&gt;
&lt;br /&gt;
In future, official pre-made images will be available, when this occurs the appropriate image should be downloaded instead of constructed.&lt;br /&gt;
&lt;br /&gt;
To use the dist compliance check tool (dist_compliance), the needed target image can also be generated by mic2 using the above options. But the target images&lt;br /&gt;
will not be limited to this specific format (fs in tar.bz2). If the exist target image is in other formats, please unpack it to a directory manually using format&lt;br /&gt;
specific instructions and use this directory as the command line input.&lt;br /&gt;
&lt;br /&gt;
== Devices Compliance Check ==&lt;br /&gt;
The command &amp;quot;dist_compliance&amp;quot; is for checking compliance of MeeGo devices, or distributions.&lt;br /&gt;
&lt;br /&gt;
    Usage: [sudo] dist_compliance [options]&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program's version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -c CORELIST, --corelist=CORELIST&lt;br /&gt;
                            File containing MeeGo Core package list&lt;br /&gt;
      -r REF, --reference=REF&lt;br /&gt;
                            Path to reference image or unpacked directory&lt;br /&gt;
      -t TGT, --target=TGT  Path to target image or unpacked directory&lt;br /&gt;
      -o OUTDIR, --outdir=OUTDIR&lt;br /&gt;
                            Output directory of report&lt;br /&gt;
      -d, --debug           Save intermediate log data for debugging&lt;br /&gt;
&lt;br /&gt;
== Apps Compliance Check ==&lt;br /&gt;
The command &amp;quot;app_compliance&amp;quot; is for applications compliance checking.&lt;br /&gt;
&lt;br /&gt;
    Usage: [sudo] app_compliance [options] &amp;lt;app-rpm&amp;gt;&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program's version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -r REFIMAGE, --refimage=REFIMAGE&lt;br /&gt;
                            Path to reference image&lt;br /&gt;
      -c CORELIST, --corelist=CORELIST&lt;br /&gt;
                            File containing MeeGo Core package list&lt;br /&gt;
      -m MEEGO_API_PKGLIST, --meego_api_pkglist=MEEGO_API_PKGLIST&lt;br /&gt;
                            File containing MeeGo API package list&lt;br /&gt;
      -o OUTDIR, --outdir=OUTDIR&lt;br /&gt;
                            Output directory of report&lt;br /&gt;
      -d, --debug           Save intermediate log data for debugging&lt;br /&gt;
&lt;br /&gt;
The sample MeeGo API package list file can be downloaded at: &lt;br /&gt;
    [[media:MeeGo-API-pkglist.txt|MeeGo-API-pkglist.txt]]&lt;br /&gt;
&lt;br /&gt;
= Result Format =&lt;br /&gt;
Currently, the output of checking tools will be stored in HTML files.  &lt;br /&gt;
&lt;br /&gt;
A distribution check report will look like this:&lt;br /&gt;
[[File:DistSummaryReport.png|none|600px|Sample Report]]&lt;br /&gt;
&lt;br /&gt;
= Bug Report =&lt;br /&gt;
&lt;br /&gt;
If problems were found in the compliance tools, please file bugs at bugs.meego.com. There is a top-level category for compliance - use &amp;quot;MeeGo Spec and Compliance&amp;quot;, product &amp;quot;Compliance Tools&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* add checking for contents of binary packages&lt;br /&gt;
* use new image format with separated src.rpm pack&lt;br /&gt;
* Web UI for commenting the result&lt;br /&gt;
* Web service for app checking?&lt;br /&gt;
* Eliminate need for a reference compliance image for dist checking&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance_tools</id>
		<title>Quality/Compliance tools</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance_tools"/>
				<updated>2011-06-04T01:06:41Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The compliance tools are used to check distributions using the MeeGo software stack, and applications targeting such distributions, for compliance with the MeeGo requirements. Checking is done against reference information which tells the tools what is mandatory.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the candidate distribution needs to supply an image of the distribution in suitable format, which will include source rpm packages. The other input to the tool is an official MeeGo reference image (which also includes source packages), and a list of the mandatory packages.&lt;br /&gt;
&lt;br /&gt;
For application compliance checking, the candidate rpm package is supplied as input.  Other inputs are an official MeeGo reference image (this one does not include sources), which will be used to test that installation actually works, as well as a list of packages and a list of packages that make up the MeeGo API.  The latter two are used to determine valid dependencies and to perform a check of whether the application is a MeeGo API application or one that uses different/additional libaries.&lt;br /&gt;
&lt;br /&gt;
The tools will generate report files (in HTML currently) to show the result.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
The compliance tools can be installed using released rpm and deb packages (available for a variety of distrubutions), or installed from source code if using an unsupported distribution.&lt;br /&gt;
&lt;br /&gt;
== Packages and Repos ==&lt;br /&gt;
&lt;br /&gt;
The code lives in the MeeGo git repository, and will be built by the OBS for all the supported distributions automatically.  The home for this is &lt;br /&gt;
[http://build.meego.com/package/show?package=meego-compliance-tools&amp;amp;project=devel:tools:building devel:tools:building/meego-compliance-tools]. &lt;br /&gt;
&lt;br /&gt;
The following Linux distributions are supported at the moment by OBS (this is a changing list, check the repositories which may be more up to date than this page):&lt;br /&gt;
&lt;br /&gt;
* Debian 5.0&lt;br /&gt;
* xUbuntu 9.10, 10.04, 10.10&lt;br /&gt;
* Fedora 11, 12, 13, 14&lt;br /&gt;
* openSUSE 11.1, 11.2, 11.3, 11.4&lt;br /&gt;
* MeeGo 1.0, 1.1, Trunk (1.2)&lt;br /&gt;
&lt;br /&gt;
The packages appear in the tools repository at [http://repo.meego.com/MeeGo/tools/repos/ tools/repos]. rpm-based distributions have usable .repo files in each distribution directory which can be used by zypper or yum, but the deb-based distributions do not; the sources.list.d entry needs to be constructed from the path.  (XXX: show an example, since OBS doesn't make deb repos in the &amp;quot;conventional&amp;quot; way)&lt;br /&gt;
&lt;br /&gt;
For distros which use rpms natively, there are three packages available:&lt;br /&gt;
* meego-compliance-tools (common data, will be installed automatically as the dependency of the two packages below)&lt;br /&gt;
* meego-dist-compliance-tools (for MeeGo distro compliance checking)&lt;br /&gt;
* meego-app-compliance-tools. (for MeeGo application compliance checking)&lt;br /&gt;
&lt;br /&gt;
For distros which use debs natively, only the meego-compliance-tools package is needed.&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
The tools can also be installed from source (which is all Python). After fetching the code, under the code directory, run:&lt;br /&gt;
  $ [sudo] make install&lt;br /&gt;
&lt;br /&gt;
The source code is hosted at:&lt;br /&gt;
  [http://meego.gitorious.org/meego-developer-tools/meego-compliance-tools meego-compliance-tools@gitorious.org]&lt;br /&gt;
&lt;br /&gt;
A typical fetch would be:&lt;br /&gt;
  git clone git://gitorious.org/meego-developer-tools/meego-compliance-tools.git&lt;br /&gt;
&lt;br /&gt;
== Compliance Image Preparation ==&lt;br /&gt;
&lt;br /&gt;
To prepare the images used in compliance tools, you need [[Image_Creation|MIC2]] with new features (version 0.22.0 or later).  The mic2 package from the same tools repository described above will provide a current version.&lt;br /&gt;
&lt;br /&gt;
=  Features =&lt;br /&gt;
== dist-compliance-tool ==&lt;br /&gt;
Executes compliance checking for distributions build from the MeeGo code base. The following features are supported:&lt;br /&gt;
* Binary package comparison:&lt;br /&gt;
** Exist in target image?&lt;br /&gt;
** Version matches the requirement?&lt;br /&gt;
*** flexible version checking: support rules with comparison operators like &amp;quot;&amp;gt;=&amp;quot; in core package list (kernel &amp;gt;= 2.6.35)&lt;br /&gt;
* Content in source rpm comparison:&lt;br /&gt;
** This step will be skipped if binary rpm checking fails&lt;br /&gt;
** Spec filename&lt;br /&gt;
** Spec content&lt;br /&gt;
** Sources and md5sum&lt;br /&gt;
** Patches and the content&lt;br /&gt;
&lt;br /&gt;
* File checking: &lt;br /&gt;
** Exist in target image&lt;br /&gt;
*** For example check /usr/lib/libGLES2.so.1 if exists in target image or not.&lt;br /&gt;
&lt;br /&gt;
== app-compliance-tool ==&lt;br /&gt;
For compliance checking for MeeGo applications, the following features are supported:&lt;br /&gt;
* check if all dependent packages exist in core package list&lt;br /&gt;
* check if the target package can be installed in the minimal image&lt;br /&gt;
* verify the installation location of the application&lt;br /&gt;
* verify the minimal requirement of the desktop file and icon for the application&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== Image Preparation ==&lt;br /&gt;
Before using the tools, the reference image needs to be created by using MIC2 (version 0.22.0 or later):&lt;br /&gt;
  $ [sudo] mic-image-creator --run-mode=0 --cache=mycachedir --format=fs  --config=&amp;lt;ks file&amp;gt; --package=tar.bz2 --include-source&lt;br /&gt;
The sample ks file is at /usr/share/compliance-tools/share dir after installation or can be downloaded at:&lt;br /&gt;
  Meego-1.1:[[media:Meego-minimal-compliance-1.0.99.1.ks|MeeGo-minimal-compliance-1.0.99.1.ks]]&lt;br /&gt;
  Meego-1.2:[[media:MeeGo-minimal-compliance-1.1.99.7.ks|MeeGo-minimal-compliance-1.1.99.7.ks]]&lt;br /&gt;
The sample core list file is at /usr/share/compliance-tools/share dir after installation or can be downloaded at:&lt;br /&gt;
  Meego-1.1:[[media:Core-list-1.0.99.1‎|Core-list-1.0.99.1]]&lt;br /&gt;
  Meego-1.2:[[media:Meego-full-compliance-pkg-1.2.txt|Core-list-1.1.99.7]]&lt;br /&gt;
And the ks file and core list should be synced with and conform to the latest [[Quality/Compliance|MeeGo compliance spec]].&lt;br /&gt;
&lt;br /&gt;
For application compliance checking, the source packages are not needed, so the --include-source option can be omitted.&lt;br /&gt;
&lt;br /&gt;
In future, official pre-made images will be available, when this occurs the appropriate image should be downloaded instead of constructed.&lt;br /&gt;
&lt;br /&gt;
To use the dist compliance check tool (dist_compliance), the needed target image can also be generated by mic2 using the above options. But the target images&lt;br /&gt;
will not be limited to this specific format (fs in tar.bz2). If the exist target image is in other formats, please unpack it to a directory manually using format&lt;br /&gt;
specific instructions and use this directory as the command line input.&lt;br /&gt;
&lt;br /&gt;
== Devices Compliance Check ==&lt;br /&gt;
The command &amp;quot;dist_compliance&amp;quot; is for checking compliance of MeeGo devices, or distributions.&lt;br /&gt;
&lt;br /&gt;
    Usage: [sudo] dist_compliance [options]&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program's version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -c CORELIST, --corelist=CORELIST&lt;br /&gt;
                            File containing MeeGo Core package list&lt;br /&gt;
      -r REF, --reference=REF&lt;br /&gt;
                            Path to reference image or unpacked directory&lt;br /&gt;
      -t TGT, --target=TGT  Path to target image or unpacked directory&lt;br /&gt;
      -o OUTDIR, --outdir=OUTDIR&lt;br /&gt;
                            Output directory of report&lt;br /&gt;
      -d, --debug           Save intermediate log data for debugging&lt;br /&gt;
&lt;br /&gt;
== Apps Compliance Check ==&lt;br /&gt;
The command &amp;quot;app_compliance&amp;quot; is for applications compliance checking.&lt;br /&gt;
&lt;br /&gt;
    Usage: [sudo] app_compliance [options] &amp;lt;app-rpm&amp;gt;&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program's version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -r REFIMAGE, --refimage=REFIMAGE&lt;br /&gt;
                            Path to reference image&lt;br /&gt;
      -c CORELIST, --corelist=CORELIST&lt;br /&gt;
                            File containing MeeGo Core package list&lt;br /&gt;
      -m MEEGO_API_PKGLIST, --meego_api_pkglist=MEEGO_API_PKGLIST&lt;br /&gt;
                            File containing MeeGo API package list&lt;br /&gt;
      -o OUTDIR, --outdir=OUTDIR&lt;br /&gt;
                            Output directory of report&lt;br /&gt;
      -d, --debug           Save intermediate log data for debugging&lt;br /&gt;
&lt;br /&gt;
The sample MeeGo API package list file can be downloaded at: &lt;br /&gt;
    [[media:MeeGo-API-pkglist.txt|MeeGo-API-pkglist.txt]]&lt;br /&gt;
&lt;br /&gt;
= Result Format =&lt;br /&gt;
Currently, the output of checking tools will be stored in HTML files.  &lt;br /&gt;
&lt;br /&gt;
A distribution check report will look like this:&lt;br /&gt;
[[File:DistSummaryReport.png|none|600px|Sample Report]]&lt;br /&gt;
&lt;br /&gt;
= Bug Report =&lt;br /&gt;
&lt;br /&gt;
If problems were found in the compliance tools, please file bugs at bugs.meego.com. There is a top-level category for compliance - use &amp;quot;MeeGo Spec and Compliance&amp;quot;, product &amp;quot;Compliance Tools&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* add checking for contents of binary packages&lt;br /&gt;
* use new image format with separated src.rpm pack&lt;br /&gt;
* Web UI for commenting the result&lt;br /&gt;
* Web service for app checking?&lt;br /&gt;
* Eliminate need for a reference compliance image for dist checking&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-24T18:04:25Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* MeeGo Compliant Device Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
MeeGo uses a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience (UX) - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
Some details on how this is implemented can be seen at [[Quality/Compliance_Implementation|Compliance_Implementaion]].&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
Current approved version: [[File:MeeGo-Compliance-Spec-1.1.0.0.pdf|Spec 1.1]]&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  Comments on the specification can go to the meego-dev mailing list, for profile specifications you may also use the mailing list for that workgroup.  For specific bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
The 1.2 specification is open for review/comment.  The initial draft is: [[Media:MeeGo-Compliance-Spec-1.1.80.1.pdf|Spec 1.1.80.1]].  &lt;br /&gt;
&lt;br /&gt;
Work in progress on profile specifications, develop directly in the wiki (see instructions):&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
* [[Quality/Compliance/TabletProfile|Tablet Profile]]&lt;br /&gt;
* [[Quality/Compliance/IVIProfile|IVI Profile]]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions leading up to 1.1 are archived (links to these may be removed later, although the files will remain in place): [[Media:MeeGo-Compliance-Spec-1.0.99.9.pdf|Spec 1.0.99.9]] | [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] | [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== MeeGo 1.2 Compliance Program Schedule ==&lt;br /&gt;
&lt;br /&gt;
Tasks:&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - now covered by package patterns&lt;br /&gt;
* Next Rev of compliance spec including profiles&lt;br /&gt;
* 1.2 version of compliance tools for distribution / device&lt;br /&gt;
* 1.2 version of compliance tools for applications&lt;br /&gt;
&lt;br /&gt;
== Talks about Compliance ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on [http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program Compliance]&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/SDK/Docs/1.0/Packaging/Tutorial</id>
		<title>SDK/Docs/1.0/Packaging/Tutorial</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/SDK/Docs/1.0/Packaging/Tutorial"/>
				<updated>2011-05-21T13:50:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Preparation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This page will create a MeeGo rpm package from an existing qt project - an OpenGL application called &amp;quot;textures&amp;quot; in qt examples. The original project is just a qt example project and has no icon and can not be launched from MeeGo UI. We will make it more like a stand alone application which can be launched from MeeGo applications panel and create a rpm package which can be installed on MeeGo device.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
The textures is one example of Qt demo and included in qt-examples package. The project is at /usr/lib/qt4/example/opengl/textures. &lt;br /&gt;
* Copy it to a separate folder $workspace as a stand-alone project. You can do it either in [[SDK/Docs/1.0/Building a MeeGo chroot on Linux|MeeGo SDK chroot]] or normal Linux machine with qt-examples installed. &lt;br /&gt;
 cp -a /usr/lib/qt4/examples/opengl/textures $workspace/textures-0.0.1&lt;br /&gt;
 cd $workspace/textures-0.0.1&lt;br /&gt;
&lt;br /&gt;
* Add an icon for the application. We reuse an image inside the project as the application icon. &lt;br /&gt;
 cp images/side6.png textures.png&lt;br /&gt;
&lt;br /&gt;
* Add a desktop file so we can find the application from MeeGo applications panel. &lt;br /&gt;
 vi textures.desktop&lt;br /&gt;
with following contents:&lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Name=QtDemoTextures&lt;br /&gt;
 Comment=Qt Demo Textures&lt;br /&gt;
 Exec=textures&lt;br /&gt;
 Categories=Development;&lt;br /&gt;
 Icon=textures&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Terminal=false&lt;br /&gt;
 StartupNotify=true&lt;br /&gt;
&lt;br /&gt;
* Edit textures.pro to remove some defines for Qt Example and add icon, desktop installation. &lt;br /&gt;
 vi textures.pro&lt;br /&gt;
The contents will be:&lt;br /&gt;
 HEADERS       = glwidget.h \&lt;br /&gt;
                 window.h&lt;br /&gt;
 SOURCES       = glwidget.cpp \&lt;br /&gt;
                 main.cpp \&lt;br /&gt;
                 window.cpp&lt;br /&gt;
 RESOURCES     = textures.qrc&lt;br /&gt;
 QT           += opengl&lt;br /&gt;
 &lt;br /&gt;
 # install&lt;br /&gt;
 #target.path = $$[QT_INSTALL_EXAMPLES]/opengl/textures&lt;br /&gt;
 #sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS textures.pro images&lt;br /&gt;
 #sources.path = $$[QT_INSTALL_EXAMPLES]/opengl/textures&lt;br /&gt;
 target.path = $$[install_prefix]/bin&lt;br /&gt;
 icon.files = textures.png&lt;br /&gt;
 icon.path = $$[install_prefix]/share/icons&lt;br /&gt;
 desktop.files = textures.desktop&lt;br /&gt;
 desktop.path = $$[install_prefix]/share/applications&lt;br /&gt;
 &lt;br /&gt;
 INSTALLS += target icon desktop&lt;br /&gt;
&lt;br /&gt;
* If you want to test before packaging, you can build and debug it in the MeeGo SDK chroot. You can refer to [[SDK/Docs/1.0/Hello_World_-_MeeGo_x86_development_on_Linux|Hello World]] for an excmple of building in the MeeGo SDK chroot. &lt;br /&gt;
 qmake PREFIX=/usr&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Clean up the project and create the source tarball, which is ready to do packaging. &lt;br /&gt;
 make distclean&lt;br /&gt;
 cd ..&lt;br /&gt;
 tar jcvf textures-0.0.1.tar.bz2 textures-0.0.1&lt;br /&gt;
&lt;br /&gt;
== Create spec file ==&lt;br /&gt;
MeeGo recommends to use [http://wiki.meego.com/Spectacle Spectacle] to either create MeeGo spec file or convert existing spec file to MeeGo spec file. &lt;br /&gt;
&lt;br /&gt;
==== Install Spectacle ====&lt;br /&gt;
* On MeeGo platform or MeeGo chroot environment, you can install it directly. &lt;br /&gt;
 yum install python-cheetah&lt;br /&gt;
 yum install spectacle&lt;br /&gt;
&lt;br /&gt;
* If you are behind proxy then before running the above commands, &lt;br /&gt;
 export http_proxy=http://proxy_server:port&lt;br /&gt;
&lt;br /&gt;
* On Linux Host machine, you can refer to [http://wiki.meego.com/Spectacle#Installation Spectacle Installation].&lt;br /&gt;
&lt;br /&gt;
==== Create YAML package meta-data file ====&lt;br /&gt;
Spectacle uses a package meta-data file as the input to generate MeeGo spec file. The meta-data file is in [http://www.yaml.org/ YAML] format. Spectacle defines specific [http://wiki.meego.com/Spectacle#Syntax_of_spectacle_YAML Syntax of Spectacle YAML]. &lt;br /&gt;
&lt;br /&gt;
* We create the textures.yaml in the $workspace/ folder&lt;br /&gt;
&lt;br /&gt;
 vi $workspace/textures.yaml&lt;br /&gt;
&lt;br /&gt;
with the following content:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: textures&lt;br /&gt;
Summary: Qt Demo - OpenGL Textures&lt;br /&gt;
Version: 0.0.1&lt;br /&gt;
Release: 1&lt;br /&gt;
Group: Development/Tools&lt;br /&gt;
License: LGPLv2.1&lt;br /&gt;
URL: http://qt.nokia.com&lt;br /&gt;
Sources:&lt;br /&gt;
    - &amp;quot;%{name}-%{version}.tar.bz2&amp;quot;&lt;br /&gt;
Description: Qt Demo OpenGL Textures &lt;br /&gt;
&lt;br /&gt;
PkgConfigBR:&lt;br /&gt;
    - QtCore &amp;gt;= 4.6.0&lt;br /&gt;
    - QtOpenGL&lt;br /&gt;
    - QtGui&lt;br /&gt;
Configure: none&lt;br /&gt;
Builder: none&lt;br /&gt;
Files:&lt;br /&gt;
    - &amp;quot;%{_bindir}/textures&amp;quot;&lt;br /&gt;
    - &amp;quot;%{_datadir}/applications/*.desktop&amp;quot;&lt;br /&gt;
    - &amp;quot;%{_datadir}/icons/*.png&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* An YAML file can also be created from an existing spec file:&lt;br /&gt;
 spec2spectacle package_name.spec&lt;br /&gt;
&lt;br /&gt;
* See [http://wiki.meego.com/Spectacle#Usage Spectacle Usage] for details.&lt;br /&gt;
&lt;br /&gt;
==== Generate spec file from YAML meta-data file====&lt;br /&gt;
With the YAML file, the spec file can be easily generated:&lt;br /&gt;
 specify textures.yaml&lt;br /&gt;
The generated $workspace/textures.spec file is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &lt;br /&gt;
# Do not Edit! Generated by:&lt;br /&gt;
# spectacle version 0.15&lt;br /&gt;
# &lt;br /&gt;
# &amp;gt;&amp;gt; macros&lt;br /&gt;
# &amp;lt;&amp;lt; macros&lt;br /&gt;
&lt;br /&gt;
Name:       textures&lt;br /&gt;
Summary:    Qt Demo - OpenGL Textures&lt;br /&gt;
Version:    0.0.1&lt;br /&gt;
Release:    1&lt;br /&gt;
Group:      Amusements/Graphics&lt;br /&gt;
License:    LGPLv2.1&lt;br /&gt;
URL:        http://qt.nokia.com&lt;br /&gt;
Source0:    %{name}-%{version}.tar.bz2&lt;br /&gt;
Source100:  textures.yaml&lt;br /&gt;
Requires(post): desktop-file-utils&lt;br /&gt;
Requires(post): /bin/touch&lt;br /&gt;
Requires(postun): desktop-file-utils&lt;br /&gt;
BuildRequires:  pkgconfig(QtCore) &amp;gt;= 4.6.0&lt;br /&gt;
BuildRequires:  pkgconfig(QtOpenGL)&lt;br /&gt;
BuildRequires:  pkgconfig(QtGui)&lt;br /&gt;
BuildRequires:  desktop-file-utils&lt;br /&gt;
&lt;br /&gt;
%description&lt;br /&gt;
Qt Demo OpenGL Textures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%prep&lt;br /&gt;
%setup -q -n %{name}-%{version}&lt;br /&gt;
&lt;br /&gt;
# &amp;gt;&amp;gt; setup&lt;br /&gt;
# &amp;lt;&amp;lt; setup&lt;br /&gt;
&lt;br /&gt;
%build&lt;br /&gt;
# &amp;gt;&amp;gt; build pre&lt;br /&gt;
# &amp;lt;&amp;lt; build pre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# &amp;gt;&amp;gt; build post&lt;br /&gt;
# &amp;lt;&amp;lt; build post&lt;br /&gt;
%install&lt;br /&gt;
rm -rf %{buildroot}&lt;br /&gt;
# &amp;gt;&amp;gt; install pre&lt;br /&gt;
# &amp;lt;&amp;lt; install pre&lt;br /&gt;
&lt;br /&gt;
# &amp;gt;&amp;gt; install post&lt;br /&gt;
# &amp;lt;&amp;lt; install post&lt;br /&gt;
desktop-file-install --delete-original       \&lt;br /&gt;
  --dir %{buildroot}%{_datadir}/applications             \&lt;br /&gt;
   %{buildroot}%{_datadir}/applications/*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%post&lt;br /&gt;
/bin/touch --no-create %{_datadir}/icons/hicolor || :&lt;br /&gt;
%{_bindir}/gtk-update-icon-cache \&lt;br /&gt;
  --quiet %{_datadir}/icons/hicolor 2&amp;gt; /dev/null|| :&lt;br /&gt;
update-desktop-database %{_datadir}/applications &amp;amp;&amp;gt; /dev/null || :&lt;br /&gt;
&lt;br /&gt;
%postun&lt;br /&gt;
/bin/touch --no-create %{_datadir}/icons/hicolor || :&lt;br /&gt;
%{_bindir}/gtk-update-icon-cache \&lt;br /&gt;
  --quiet %{_datadir}/icons/hicolor 2&amp;gt; /dev/null|| :&lt;br /&gt;
update-desktop-database %{_datadir}/applications &amp;amp;&amp;gt; /dev/null || :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%files&lt;br /&gt;
%defattr(-,root,root,-)&lt;br /&gt;
%{_bindir}/textures&lt;br /&gt;
%{_datadir}/applications/*.desktop&lt;br /&gt;
%{_datadir}/icons/*.png&lt;br /&gt;
# &amp;gt;&amp;gt; files&lt;br /&gt;
# &amp;lt;&amp;lt; files&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Modify the textures.spec to add qt build in &amp;quot;build pre&amp;quot; and &amp;quot;install post&amp;quot; sections. &lt;br /&gt;
Note: In textures.yaml, we put &amp;quot;none&amp;quot; for the &amp;quot;Builder&amp;quot; option since the spectacle v0.15 does not support qt build well so we have to manually change the textures.spec. That limitation has been fixed in latest spectacle, which however is not included in MeeGo 1.0. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;gt;&amp;gt; build pre&lt;br /&gt;
export PATH=/usr/lib/qt4/bin:$PATH&lt;br /&gt;
qmake PREFIX=%{_prefix}&lt;br /&gt;
# &amp;lt;&amp;lt; build pre&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;gt;&amp;gt; install post&lt;br /&gt;
make INSTALL_ROOT=%{buildroot}/usr install&lt;br /&gt;
# &amp;lt;&amp;lt; install post&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build rpm in MeeGo SDK chroot ==&lt;br /&gt;
For application developers, they may want to create package directly from the [http://TBD MeeGo SDK chroot] environment. It's quite easy to use rpmbuild to do that.&lt;br /&gt;
* Enter the chroot (see [[SDK/Docs/1.0/Getting started with the MeeGo SDK for Linux]])&lt;br /&gt;
&lt;br /&gt;
* Install rpmbuild and MeeGo rpm build configuration&lt;br /&gt;
 zypper install rpm-build&lt;br /&gt;
 zypper install meego-rpm-config&lt;br /&gt;
&lt;br /&gt;
* Copy source code and spec file to right place&lt;br /&gt;
 cp textures-0.0.1.tar.bz2 ~/rpmbuild/SOURCES/&lt;br /&gt;
 cp textures.yaml ~/rpmbuild/SOURCES/&lt;br /&gt;
 cp textures.spec ~/rpmbuild/SPECS/&lt;br /&gt;
&lt;br /&gt;
* Generate rpm package&lt;br /&gt;
 cd ~/rpmbuild/SPECS&lt;br /&gt;
 rpmbuild -ba textures.spec&lt;br /&gt;
&lt;br /&gt;
Then the rpm packages will be generated at:&lt;br /&gt;
 ~/rpmbuild/RPMS/i586/textures-0.0.1-1.i586.rpm&lt;br /&gt;
 ~/rpmbuild/SRPMS/textures-0.0.1-1.src.rpm&lt;br /&gt;
&lt;br /&gt;
* More about rpmbuild can be found at [http://www.rpm.org/max-rpm-snapshot/ch-rpm-b-command.html rpmbuild]&lt;br /&gt;
&lt;br /&gt;
== Build rpm without chroot or OBS ==&lt;br /&gt;
For people who do build or release, they may just want to build packages without the MeeGo SDK chroot environment. The following steps are useful for them. &lt;br /&gt;
=== Linux ===&lt;br /&gt;
Under Linux, a tool called &amp;quot;build&amp;quot; is used to create rpm packages directly from spec file. &lt;br /&gt;
* Install build on your Linux host machine. You can find the repo link and packages at [http://repo.meego.com/tools/repos/ MeeGo Tools Repo]. Following Lnux distributions are supported&lt;br /&gt;
    * MeeGo&lt;br /&gt;
    * Fedora 10,11,12&lt;br /&gt;
    * openSUSE(s)    &lt;br /&gt;
    * xUbuntu 8.10/9.04/9.10/10.04&lt;br /&gt;
    * Debian 5.0   &lt;br /&gt;
&lt;br /&gt;
* Create rpm package with build and spec file&lt;br /&gt;
 sudo build --repository http://repo.meego.com/MeeGo/releases/1.1/core/repos/ia32/packages/ --arch i686 textures.spec&lt;br /&gt;
The packages will be generated at /var/tmp/build-root/home/abuild/rpmbuild/RPMS/ and /var/tmp/build-root/home/abuild/rpmbuild/SRPMS/&lt;br /&gt;
You may configure your http_proxy to make sure the repo can be accessed. &lt;br /&gt;
 export http_proxy=&amp;lt;nowiki&amp;gt;http://proxy_server:port&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verify the rpm package ==&lt;br /&gt;
The rpm package can be installed on MeeGo devices or MeeGo SDK simulator directly. Copy the rpm to target device or simulator and run:&lt;br /&gt;
 zypper --no-gpg-checks install textures-0.0.1-1.i586.rpm&lt;br /&gt;
&lt;br /&gt;
Then you can find QtDemoTextures in applications under ''Programming''. It's ready to be distributed.&lt;br /&gt;
&lt;br /&gt;
[[Category:SDK]]&lt;br /&gt;
[[Category:Packaging]]&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Meego-1.0]]&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance_tools</id>
		<title>Quality/Compliance tools</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance_tools"/>
				<updated>2011-05-18T21:44:13Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Apps Compliance Check */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Compliance tools are used to check MeeGo compliance for MeeGo Distributions or MeeGo Applications. The compliance 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 src rpms.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the src.rpms for all the packages. And for MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
The tools will generate report files (in HTML currently) to show the result.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
Compliance tools can be installed using released rpm and deb packages, or installed by source code.&lt;br /&gt;
&lt;br /&gt;
== Packages and Repos ==&lt;br /&gt;
The package in the MeeGo OBS server for this project is [http://build.meego.com/package/show?package=meego-compliance-tools&amp;amp;project=devel:tools:building devel:tools:building/meego-compliance-tools]. And all the rpm and deb packages for release can be generated by the MeeGo OBS server. The following Linux distributions are supported:&lt;br /&gt;
&lt;br /&gt;
* Debian 5.0&lt;br /&gt;
* xUbuntu 9.10, 10.04, 10.10&lt;br /&gt;
* Fedora 11, 12, 13&lt;br /&gt;
* openSUSE 11.1, 11.2, 11.3&lt;br /&gt;
* MeeGo 1.0, Trunk (1.2)&lt;br /&gt;
&lt;br /&gt;
All the corresponding package repos can be used to install the tools conveniently,and will be published in http://repo.meego.com/MeeGo/tools/repos/.&lt;br /&gt;
&lt;br /&gt;
For rpm packaging ditros, there are three packages available:&lt;br /&gt;
* meego-compliance-tools (common data, will be installed automatically as the dependency of the two packages below)&lt;br /&gt;
* meego-dist-compliance-tools (for MeeGo distro compliance checking)&lt;br /&gt;
* meego-app-compliance-tools. (for MeeGo application compliance checking)&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
The tools can also be installed by source code. After fetching the code, under the code directory, run:&lt;br /&gt;
  $ [sudo] make install&lt;br /&gt;
&lt;br /&gt;
The source code is hosted at:&lt;br /&gt;
  [http://meego.gitorious.org/meego-developer-tools/meego-compliance-tools meego-compliance-tools@gitorious.org]&lt;br /&gt;
&lt;br /&gt;
== MIC2 ==&lt;br /&gt;
To prepare the images used in compliance tools, you need [[Image_Creation|MIC2]] with new features (version 0.22.0 or later).&lt;br /&gt;
&lt;br /&gt;
=  Features =&lt;br /&gt;
== dist-compliance-tool ==&lt;br /&gt;
It executes compliance checking for MeeGo distributions. The following features are supported:&lt;br /&gt;
* Binary pkg comparison:&lt;br /&gt;
** Exist in target image?&lt;br /&gt;
** Version matches the requirement?&lt;br /&gt;
*** flexible version checking: support rules with comparison operators like &amp;quot;&amp;gt;=&amp;quot; in core pkg list (kernel &amp;gt;= 2.6.35)&lt;br /&gt;
* Content in source rpm comparison:&lt;br /&gt;
** This step will be skipped if binary rpm checking fails&lt;br /&gt;
** Spec filename&lt;br /&gt;
** Spec content&lt;br /&gt;
** Sources and md5sum&lt;br /&gt;
** Patches and the content&lt;br /&gt;
&lt;br /&gt;
* File checking: &lt;br /&gt;
** Exist in target image&lt;br /&gt;
*** For example check /usr/lib/libGLES2.so.1 if exists in target image or not.&lt;br /&gt;
&lt;br /&gt;
== app-compliance-tool ==&lt;br /&gt;
For compliance checking for MeeGo applications, the following features are supported:&lt;br /&gt;
* check if all dependent packages exist in core package list&lt;br /&gt;
* check if the target package can be installed in the minimal image&lt;br /&gt;
* verify the installation location of the application&lt;br /&gt;
* verify the minimal requirement of the desktop file and icon for the application&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== Image Preparation ==&lt;br /&gt;
Before using the tools, the reference image needs to be created by using MIC2 (version 0.22.0 or later):&lt;br /&gt;
  $ [sudo] mic-image-creator --run-mode=0 --cache=mycachedir --format=fs  --config=&amp;lt;ks file&amp;gt; --package=tar.bz2 --include-source&lt;br /&gt;
The sample ks file can be downloaded at:&lt;br /&gt;
  [[media:Meego-minimal-compliance-1.0.99.1.ks|Meego-minimal-compliance-1.0.99.1.ks]]&lt;br /&gt;
The sample core list file can be downloaded at:&lt;br /&gt;
  [[media:Core-list-1.0.99.1‎|Core-list-1.0.99.1]]&lt;br /&gt;
And the ks file and core list should be synced with and conform to the latest [[Quality/Compliance|MeeGo compliance spec]].&lt;br /&gt;
&lt;br /&gt;
To use the dist compliance check tool (dist_compliance), the needed target image can also be generated by mic2 using the above options. But the target images&lt;br /&gt;
will not be limited to this specific format(fs in tar.bz2). If the exist target image is in other formats, please unpack it to a directory manually using format&lt;br /&gt;
specific instructions and use this directory as the command line input.&lt;br /&gt;
&lt;br /&gt;
== Devices Compliance Check ==&lt;br /&gt;
The command &amp;quot;dist_compliance&amp;quot; is for checking compliance of MeeGo devices, or distributions.&lt;br /&gt;
&lt;br /&gt;
    Usage: [sudo] dist_compliance [options]&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program's version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -c CORELIST, --corelist=CORELIST&lt;br /&gt;
                            File to store core list of MeeGo&lt;br /&gt;
      -r REF, --reference=REF&lt;br /&gt;
                            Path of reference image or unpacked directory&lt;br /&gt;
      -t TGT, --target=TGT  Path of target image or unpacked directory&lt;br /&gt;
      -o OUTDIR, --outdir=OUTDIR&lt;br /&gt;
                            Output directory of report&lt;br /&gt;
      -d, --debug           Save intermedia log data for debugging&lt;br /&gt;
&lt;br /&gt;
== Apps Compliance Check ==&lt;br /&gt;
The command &amp;quot;app_compliance&amp;quot; is for applications compliance checking.&lt;br /&gt;
&lt;br /&gt;
    Usage: [sudo] app_compliance [options] &amp;lt;app-rpm&amp;gt;&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program's version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -r REFIMAGE, --refimage=REFIMAGE&lt;br /&gt;
                            Filepath of reference image&lt;br /&gt;
      -c CORELIST, --corelist=CORELIST&lt;br /&gt;
                            File to store core list of MeeGo&lt;br /&gt;
      -m MEEGO_API_PKGLIST, --meego_api_pkglist=MEEGO_API_PKGLIST&lt;br /&gt;
                            File to store MeeGo API package list of MeeGo&lt;br /&gt;
      -o OUTDIR, --outdir=OUTDIR&lt;br /&gt;
                            Output directory of report&lt;br /&gt;
      -d, --debug           Save intermedia log data for debugging&lt;br /&gt;
&lt;br /&gt;
The sample MeeGo API package list file can be downloaded at: &lt;br /&gt;
    [[media:MeeGo-API-pkglist.txt|MeeGo-API-pkglist.txt]]&lt;br /&gt;
&lt;br /&gt;
= Result Format =&lt;br /&gt;
Currently, the output of checking tools will be store in HTML files.&lt;br /&gt;
Screen capture of sample distribution report:&lt;br /&gt;
[[File:DistSummaryReport.png|none|600px|Sample Report]]&lt;br /&gt;
&lt;br /&gt;
= Bug Report =&lt;br /&gt;
&lt;br /&gt;
If problems were found in compliance tools, please file bugs in bugs.meego.com.&lt;br /&gt;
The corresponding section is: &amp;quot;Development Tools/Tools&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* add checking for contents of binary packages&lt;br /&gt;
* use new image format with separated src.rpm pack&lt;br /&gt;
* Web UI for commenting the result&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance_tools</id>
		<title>Quality/Compliance tools</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance_tools"/>
				<updated>2011-05-18T21:43:12Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Image Preparation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Compliance tools are used to check MeeGo compliance for MeeGo Distributions or MeeGo Applications. The compliance 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 src rpms.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the src.rpms for all the packages. And for MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
The tools will generate report files (in HTML currently) to show the result.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
Compliance tools can be installed using released rpm and deb packages, or installed by source code.&lt;br /&gt;
&lt;br /&gt;
== Packages and Repos ==&lt;br /&gt;
The package in the MeeGo OBS server for this project is [http://build.meego.com/package/show?package=meego-compliance-tools&amp;amp;project=devel:tools:building devel:tools:building/meego-compliance-tools]. And all the rpm and deb packages for release can be generated by the MeeGo OBS server. The following Linux distributions are supported:&lt;br /&gt;
&lt;br /&gt;
* Debian 5.0&lt;br /&gt;
* xUbuntu 9.10, 10.04, 10.10&lt;br /&gt;
* Fedora 11, 12, 13&lt;br /&gt;
* openSUSE 11.1, 11.2, 11.3&lt;br /&gt;
* MeeGo 1.0, Trunk (1.2)&lt;br /&gt;
&lt;br /&gt;
All the corresponding package repos can be used to install the tools conveniently,and will be published in http://repo.meego.com/MeeGo/tools/repos/.&lt;br /&gt;
&lt;br /&gt;
For rpm packaging ditros, there are three packages available:&lt;br /&gt;
* meego-compliance-tools (common data, will be installed automatically as the dependency of the two packages below)&lt;br /&gt;
* meego-dist-compliance-tools (for MeeGo distro compliance checking)&lt;br /&gt;
* meego-app-compliance-tools. (for MeeGo application compliance checking)&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
The tools can also be installed by source code. After fetching the code, under the code directory, run:&lt;br /&gt;
  $ [sudo] make install&lt;br /&gt;
&lt;br /&gt;
The source code is hosted at:&lt;br /&gt;
  [http://meego.gitorious.org/meego-developer-tools/meego-compliance-tools meego-compliance-tools@gitorious.org]&lt;br /&gt;
&lt;br /&gt;
== MIC2 ==&lt;br /&gt;
To prepare the images used in compliance tools, you need [[Image_Creation|MIC2]] with new features (version 0.22.0 or later).&lt;br /&gt;
&lt;br /&gt;
=  Features =&lt;br /&gt;
== dist-compliance-tool ==&lt;br /&gt;
It executes compliance checking for MeeGo distributions. The following features are supported:&lt;br /&gt;
* Binary pkg comparison:&lt;br /&gt;
** Exist in target image?&lt;br /&gt;
** Version matches the requirement?&lt;br /&gt;
*** flexible version checking: support rules with comparison operators like &amp;quot;&amp;gt;=&amp;quot; in core pkg list (kernel &amp;gt;= 2.6.35)&lt;br /&gt;
* Content in source rpm comparison:&lt;br /&gt;
** This step will be skipped if binary rpm checking fails&lt;br /&gt;
** Spec filename&lt;br /&gt;
** Spec content&lt;br /&gt;
** Sources and md5sum&lt;br /&gt;
** Patches and the content&lt;br /&gt;
&lt;br /&gt;
* File checking: &lt;br /&gt;
** Exist in target image&lt;br /&gt;
*** For example check /usr/lib/libGLES2.so.1 if exists in target image or not.&lt;br /&gt;
&lt;br /&gt;
== app-compliance-tool ==&lt;br /&gt;
For compliance checking for MeeGo applications, the following features are supported:&lt;br /&gt;
* check if all dependent packages exist in core package list&lt;br /&gt;
* check if the target package can be installed in the minimal image&lt;br /&gt;
* verify the installation location of the application&lt;br /&gt;
* verify the minimal requirement of the desktop file and icon for the application&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== Image Preparation ==&lt;br /&gt;
Before using the tools, the reference image needs to be created by using MIC2 (version 0.22.0 or later):&lt;br /&gt;
  $ [sudo] mic-image-creator --run-mode=0 --cache=mycachedir --format=fs  --config=&amp;lt;ks file&amp;gt; --package=tar.bz2 --include-source&lt;br /&gt;
The sample ks file can be downloaded at:&lt;br /&gt;
  [[media:Meego-minimal-compliance-1.0.99.1.ks|Meego-minimal-compliance-1.0.99.1.ks]]&lt;br /&gt;
The sample core list file can be downloaded at:&lt;br /&gt;
  [[media:Core-list-1.0.99.1‎|Core-list-1.0.99.1]]&lt;br /&gt;
And the ks file and core list should be synced with and conform to the latest [[Quality/Compliance|MeeGo compliance spec]].&lt;br /&gt;
&lt;br /&gt;
To use the dist compliance check tool (dist_compliance), the needed target image can also be generated by mic2 using the above options. But the target images&lt;br /&gt;
will not be limited to this specific format(fs in tar.bz2). If the exist target image is in other formats, please unpack it to a directory manually using format&lt;br /&gt;
specific instructions and use this directory as the command line input.&lt;br /&gt;
&lt;br /&gt;
== Devices Compliance Check ==&lt;br /&gt;
The command &amp;quot;dist_compliance&amp;quot; is for checking compliance of MeeGo devices, or distributions.&lt;br /&gt;
&lt;br /&gt;
    Usage: [sudo] dist_compliance [options]&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program's version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -c CORELIST, --corelist=CORELIST&lt;br /&gt;
                            File to store core list of MeeGo&lt;br /&gt;
      -r REF, --reference=REF&lt;br /&gt;
                            Path of reference image or unpacked directory&lt;br /&gt;
      -t TGT, --target=TGT  Path of target image or unpacked directory&lt;br /&gt;
      -o OUTDIR, --outdir=OUTDIR&lt;br /&gt;
                            Output directory of report&lt;br /&gt;
      -d, --debug           Save intermedia log data for debugging&lt;br /&gt;
&lt;br /&gt;
== Apps Compliance Check ==&lt;br /&gt;
The command &amp;quot;app_compliance&amp;quot; is for applications compliance checking.&lt;br /&gt;
&lt;br /&gt;
    Usage: [sudo] app_compliance [options] &amp;lt;app-rpm&amp;gt;&lt;br /&gt;
    Options:&lt;br /&gt;
      --version             show program's version number and exit&lt;br /&gt;
      -h, --help            show this help message and exit&lt;br /&gt;
      -r REFIMAGE, --refimage=REFIMAGE&lt;br /&gt;
                            Filepath of reference image&lt;br /&gt;
      -c CORELIST, --corelist=CORELIST&lt;br /&gt;
                            File to store core list of MeeGo&lt;br /&gt;
      -m MEEGO_API_PKGLIST, --meego_api_pkglist=MEEGO_API_PKGLIST&lt;br /&gt;
                            File to store MeeGo API package list of MeeGo&lt;br /&gt;
      -o OUTDIR, --outdir=OUTDIR&lt;br /&gt;
                            Output directory of report&lt;br /&gt;
      -d, --debug           Save intermedia log data for debugging&lt;br /&gt;
&lt;br /&gt;
The sample MeeGo API package list file can be downloaded at: &lt;br /&gt;
    [[media:MeeGo-API-pkglist.txt]]&lt;br /&gt;
&lt;br /&gt;
= Result Format =&lt;br /&gt;
Currently, the output of checking tools will be store in HTML files.&lt;br /&gt;
Screen capture of sample distribution report:&lt;br /&gt;
[[File:DistSummaryReport.png|none|600px|Sample Report]]&lt;br /&gt;
&lt;br /&gt;
= Bug Report =&lt;br /&gt;
&lt;br /&gt;
If problems were found in compliance tools, please file bugs in bugs.meego.com.&lt;br /&gt;
The corresponding section is: &amp;quot;Development Tools/Tools&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* add checking for contents of binary packages&lt;br /&gt;
* use new image format with separated src.rpm pack&lt;br /&gt;
* Web UI for commenting the result&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-12T12:54:14Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
Some details on how this is implemented can be seen at [[Quality/Compliance_Implementation|Compliance_Implementaion]].&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
Current approved version: [[File:MeeGo-Compliance-Spec-1.1.0.0.pdf|Spec 1.1]]&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  Comments on the specification can go to the meego-dev mailing list, for profile specifications you may also use the mailing list for that workgroup.  For specific bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
The 1.2 specification is open for review/comment.  The initial draft is: [[Media:MeeGo-Compliance-Spec-1.1.80.1.pdf|Spec 1.1.80.1]].  &lt;br /&gt;
&lt;br /&gt;
Work in progress on profile specifications, develop directly in the wiki (see instructions):&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
* [[Quality/Compliance/TabletProfile|Tablet Profile]]&lt;br /&gt;
* [[Quality/Compliance/IVIProfile|IVI Profile]]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions leading up to 1.1 are archived (links to these may be removed later, although the files will remain in place): [[Media:MeeGo-Compliance-Spec-1.0.99.9.pdf|Spec 1.0.99.9]] | [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] | [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== MeeGo 1.2 Compliance Program Schedule ==&lt;br /&gt;
&lt;br /&gt;
Tasks:&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - now covered by package patterns&lt;br /&gt;
* Next Rev of compliance spec including profiles&lt;br /&gt;
* 1.2 version of compliance tools for distribution / device&lt;br /&gt;
* 1.2 version of compliance tools for applications&lt;br /&gt;
&lt;br /&gt;
== Talks about Compliance ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on [http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program Compliance]&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.9.pdf</id>
		<title>File:MeeGo-Compliance-Spec-1.0.99.9.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.9.pdf"/>
				<updated>2011-05-12T12:52:49Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: Final review copy of 1.1 specification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Final review copy of 1.1 specification&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.1.80.1.pdf</id>
		<title>File:MeeGo-Compliance-Spec-1.1.80.1.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.1.80.1.pdf"/>
				<updated>2011-05-12T12:51:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: Starting point for 1.2 specification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Starting point for 1.2 specification&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-11T15:44:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
Some details on how this is implemented can be seen at [[Quality/Compliance_Implementation|Compliance_Implementaion]].&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  The current approved version is [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.1.0.0.pdf Spec 1.1]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions are archived: [http://dev.linuxfoundation.org/~mats/MeeGo-Compliance-Spec-1.0.99.9.pdf Spec 1.0.99.9] | [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] | [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
Comments on the specification can go to the meego-dev mailing list (until we get kicked off!).  For concrete bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
* [[Quality/Compliance/TabletProfile|Tablet Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== MeeGo 1.2 Compliance Program Schedule ==&lt;br /&gt;
&lt;br /&gt;
Tasks:&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - now covered by package patterns&lt;br /&gt;
* Next Rev of compliance spec including profiles&lt;br /&gt;
* 1.2 version of compliance tools for distribution / device&lt;br /&gt;
* 1.2 version of compliance tools for applications&lt;br /&gt;
&lt;br /&gt;
== Talks about Compliance ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on [http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program Compliance]&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance/TableProfile</id>
		<title>Quality/Compliance/TableProfile</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance/TableProfile"/>
				<updated>2011-05-11T15:43:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: moved Quality/Compliance/TableProfile to Quality/Compliance/TabletProfile: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Quality/Compliance/TabletProfile]]&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance/TabletProfile</id>
		<title>Quality/Compliance/TabletProfile</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance/TabletProfile"/>
				<updated>2011-05-11T15:43:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: moved Quality/Compliance/TableProfile to Quality/Compliance/TabletProfile: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an evolving draft, please propose changes in [[Talk:Quality/Compliance/TabletProfile]] and have larger discussions on meego-dev@meego.com mailing list. &lt;br /&gt;
&lt;br /&gt;
= MeeGo Tablet Profile Specification =&lt;br /&gt;
== Hardware Requirements ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
== Package Management ==&lt;br /&gt;
None listed at this time&lt;br /&gt;
&lt;br /&gt;
== ABI and API ==&lt;br /&gt;
The MeeGo Tablet Profile extends the Platform API with the following components:&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
== Other Requirements ==&lt;br /&gt;
None listed at this time&lt;br /&gt;
&lt;br /&gt;
== Tablet Profile Packages ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Talk:Quality/Compliance/TabletProfile</id>
		<title>Talk:Quality/Compliance/TabletProfile</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Talk:Quality/Compliance/TabletProfile"/>
				<updated>2011-05-11T15:31:27Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: Created page with &amp;quot;Please use a section (+ button) per change proposal. Add &amp;lt;pre&amp;gt;-~~~~&amp;lt;/pre&amp;gt; to sign with your username for each comment. Remember to 'watch' this page.  Example:  == Change request...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please use a section (+ button) per change proposal. Add &amp;lt;pre&amp;gt;-~~~~&amp;lt;/pre&amp;gt; to sign with your username for each comment. Remember to 'watch' this page.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
== Change request ==&lt;br /&gt;
&lt;br /&gt;
Modify from:&lt;br /&gt;
&lt;br /&gt;
blahblah&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
&lt;br /&gt;
halbhalb&lt;br /&gt;
&lt;br /&gt;
-[[User:Stskeeps|Stskeeps]] 19:07, 11 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
* How about 'foobar'? -[[User:Stskeeps|Stskeeps]] 19:07, 11 November 2010 (UTC)&lt;br /&gt;
** OK! -[[User:Stskeeps|Stskeeps]] 19:07, 11 November 2010 (UTC)&lt;br /&gt;
* Approved, please change page -[[User:Stskeeps|Stskeeps]] 19:07, 11 November 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance/TabletProfile</id>
		<title>Quality/Compliance/TabletProfile</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance/TabletProfile"/>
				<updated>2011-05-11T15:29:53Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: Created page with &amp;quot;This is an evolving draft, please propose changes in Talk:Quality/Compliance/TabletProfile and have larger discussions on meego-dev@meego.com mailing list.   = MeeGo Tablet P...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an evolving draft, please propose changes in [[Talk:Quality/Compliance/TabletProfile]] and have larger discussions on meego-dev@meego.com mailing list. &lt;br /&gt;
&lt;br /&gt;
= MeeGo Tablet Profile Specification =&lt;br /&gt;
== Hardware Requirements ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
== Package Management ==&lt;br /&gt;
None listed at this time&lt;br /&gt;
&lt;br /&gt;
== ABI and API ==&lt;br /&gt;
The MeeGo Tablet Profile extends the Platform API with the following components:&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
== Other Requirements ==&lt;br /&gt;
None listed at this time&lt;br /&gt;
&lt;br /&gt;
== Tablet Profile Packages ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-11T15:26:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
Some details on how this is implemented can be seen at [[Quality/Compliance_Implementation|Compliance_Implementaion]].&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  The current approved version is [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.1.0.0.pdf Spec 1.1]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions are archived: [http://dev.linuxfoundation.org/~mats/MeeGo-Compliance-Spec-1.0.99.9.pdf Spec 1.0.99.9] | [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] | [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
Comments on the specification can go to the meego-dev mailing list (until we get kicked off!).  For concrete bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
* [[Quality/Compliance/TableProfile|Tablet Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== MeeGo 1.2 Compliance Program Schedule ==&lt;br /&gt;
&lt;br /&gt;
Tasks:&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - now covered by package patterns&lt;br /&gt;
* Next Rev of compliance spec including profiles&lt;br /&gt;
* 1.2 version of compliance tools for distribution / device&lt;br /&gt;
* 1.2 version of compliance tools for applications&lt;br /&gt;
&lt;br /&gt;
== Talks about Compliance ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on [http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program Compliance]&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-11T15:25:40Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* More Detail on Stack Based Compliance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
Some details on how this is implemented can be seen at [[Quality/Compliance_Implementation|Compliance_Implementaion]].&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  The current approved version is [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.1.0.0.pdf Spec 1.1]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions are archived: [http://dev.linuxfoundation.org/~mats/MeeGo-Compliance-Spec-1.0.99.9.pdf Spec 1.0.99.9] | [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] | [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
Comments on the specification can go to the meego-dev mailing list (until we get kicked off!).  For concrete bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== MeeGo 1.2 Compliance Program Schedule ==&lt;br /&gt;
&lt;br /&gt;
Tasks:&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - now covered by package patterns&lt;br /&gt;
* Next Rev of compliance spec including profiles&lt;br /&gt;
* 1.2 version of compliance tools for distribution / device&lt;br /&gt;
* 1.2 version of compliance tools for applications&lt;br /&gt;
&lt;br /&gt;
== Talks about Compliance ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on [http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program Compliance]&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-10T16:20:41Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Talks about Compliance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  The current approved version is [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.1.0.0.pdf Spec 1.1]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions are archived: [http://dev.linuxfoundation.org/~mats/MeeGo-Compliance-Spec-1.0.99.9.pdf Spec 1.0.99.9] | [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] | [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
Comments on the specification can go to the meego-dev mailing list (until we get kicked off!).  For concrete bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== MeeGo 1.2 Compliance Program Schedule ==&lt;br /&gt;
&lt;br /&gt;
Tasks:&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - now covered by package patterns&lt;br /&gt;
* Next Rev of compliance spec including profiles&lt;br /&gt;
* 1.2 version of compliance tools for distribution / device&lt;br /&gt;
* 1.2 version of compliance tools for applications&lt;br /&gt;
&lt;br /&gt;
== Talks about Compliance ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on [http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program Compliance]&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-10T16:19:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  The current approved version is [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.1.0.0.pdf Spec 1.1]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions are archived: [http://dev.linuxfoundation.org/~mats/MeeGo-Compliance-Spec-1.0.99.9.pdf Spec 1.0.99.9] | [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] | [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
Comments on the specification can go to the meego-dev mailing list (until we get kicked off!).  For concrete bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== MeeGo 1.2 Compliance Program Schedule ==&lt;br /&gt;
&lt;br /&gt;
Tasks:&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - now covered by package patterns&lt;br /&gt;
* Next Rev of compliance spec including profiles&lt;br /&gt;
* 1.2 version of compliance tools for distribution / device&lt;br /&gt;
* 1.2 version of compliance tools for applications&lt;br /&gt;
&lt;br /&gt;
== Talks about Compliance ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on this subject.&lt;br /&gt;
&lt;br /&gt;
http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-10T16:04:58Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Schedule MeeGo 1.1 Compliance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  The current approved version is [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.1.0.0.pdf Spec 1.1]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions are archived: [http://dev.linuxfoundation.org/~mats/MeeGo-Compliance-Spec-1.0.99.9.pdf Spec 1.0.99.9] | [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
Comments on the specification can go to the meego-dev mailing list (until we get kicked off!).  For concrete bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== MeeGo 1.2 Compliance Program Schedule ==&lt;br /&gt;
&lt;br /&gt;
Tasks:&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - now covered by package patterns&lt;br /&gt;
* Next Rev of compliance spec including profiles&lt;br /&gt;
* 1.2 version of compliance tools for distribution / device&lt;br /&gt;
* 1.2 version of compliance tools for applications&lt;br /&gt;
&lt;br /&gt;
== Talks about Compliance ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on this subject.&lt;br /&gt;
&lt;br /&gt;
http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-10T15:51:58Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Meego Conference 2010 session */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  The current approved version is [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.1.0.0.pdf Spec 1.1]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions are archived: [http://dev.linuxfoundation.org/~mats/MeeGo-Compliance-Spec-1.0.99.9.pdf Spec 1.0.99.9] | [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
Comments on the specification can go to the meego-dev mailing list (until we get kicked off!).  For concrete bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;br /&gt;
&lt;br /&gt;
== Talks about Compliance ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on this subject.&lt;br /&gt;
&lt;br /&gt;
http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-10T15:51:02Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  The current approved version is [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.1.0.0.pdf Spec 1.1]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions are archived: [http://dev.linuxfoundation.org/~mats/MeeGo-Compliance-Spec-1.0.99.9.pdf Spec 1.0.99.9] | [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
Comments on the specification can go to the meego-dev mailing list (until we get kicked off!).  For concrete bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;br /&gt;
&lt;br /&gt;
== Meego Conference 2010 session ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on this subject.&lt;br /&gt;
&lt;br /&gt;
http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-05-10T15:48:29Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG.  The current approved version is [[MeeGo-Compliance-Spec-1.1.0.0.pdf|Spec 1.1]]&lt;br /&gt;
&lt;br /&gt;
Some pre-release review versions are archived: [http://dev.linuxfoundation.org/~mats/MeeGo-Compliance-Spec-1.0.99.9.pdf Spec 1.0.99.9] [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]] [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
Comments on the specification can go to the meego-dev mailing list (until we get kicked off!).  For concrete bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;br /&gt;
&lt;br /&gt;
== Meego Conference 2010 session ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on this subject.&lt;br /&gt;
&lt;br /&gt;
http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.1.0.0.pdf</id>
		<title>File:MeeGo-Compliance-Spec-1.1.0.0.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.1.0.0.pdf"/>
				<updated>2011-05-10T15:43:10Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: Approved MeeGo 1.1 Compliance Specification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Approved MeeGo 1.1 Compliance Specification&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance_Implementation</id>
		<title>Quality/Compliance Implementation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance_Implementation"/>
				<updated>2011-05-04T20:24:48Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Implementation of Compliance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compliance Implementation =&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
The objective of '''Compliance''' is to provide a base set of functionality that application writers can depend on being there - effectively, an ABI plus other supporting details.&lt;br /&gt;
&lt;br /&gt;
There are two aspects to compliance:&lt;br /&gt;
* For application writers, the key aspect is the set of services (libraries, services such as dbus, etc.) that are always present, so that apps know they can use them safely. It also includes a picture of which of those will be consistently provided in future releases so developers can detemine whether their apps will be &amp;quot;future-proof&amp;quot; or not.&lt;br /&gt;
* For device implementors, what is needed is a complete picture of what must be delivered, not just the external ABI view, so dependencies are also part of the picture.&lt;br /&gt;
&lt;br /&gt;
In effect, the MeeGo Architecture makes up the starting point for compliance, while the the dependencies of the architecture packages can be seen as providing functionality &amp;quot;on behalf of&amp;quot; the architecture packages so to be practical, they end up in compliance as well.  Dependencies could change over time - a dependency in 1.2 might not be a dependency in 1.3 any longer, so this part should not be counted on by applications; but for a given MeeGo release, dependencies are mandatory for devices.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Core vs. Compliance ==&lt;br /&gt;
&lt;br /&gt;
The Compliance set does not need to describe a bootable system, indeed does not need to be a &amp;quot;real OS&amp;quot;, it's just the minimum set an OSV needs to provide so that ISVs get a &amp;quot;compatible&amp;quot; OS.&lt;br /&gt;
&lt;br /&gt;
Meego-core on the other hand actually needs to boot, so there's a bunch of things in there that are needed to boot, but that an application couldn't care less about. Bootloaders are a quick example of things that must be in core, but are not important for compliance.&lt;br /&gt;
&lt;br /&gt;
So for all intents and purposes, compliance ends up being a subset of core.&lt;br /&gt;
&lt;br /&gt;
As an example, compliance could include a requirement to handle sysv initscripts, but not describe how that requirement is to be met, so an OSV could replace the exsiting init processing with upstart.  As long as the sysv initscripts are handled correctly, that's compliant.&lt;br /&gt;
&lt;br /&gt;
== Implementation of Compliance ==&lt;br /&gt;
&lt;br /&gt;
Since package groups are used to drive image creation anyway, proper grouping can make keeping track of compliance straightforward.&lt;br /&gt;
&lt;br /&gt;
Conceptually, these patterns could be used:&lt;br /&gt;
&lt;br /&gt;
* Base: bootable system, not compliant &lt;br /&gt;
* Compliance: Application Compliance packages&lt;br /&gt;
* Core = Base + Compliance&lt;br /&gt;
* Derived Compliance (need a better name for that) : Compliance and its dependencies&lt;br /&gt;
* Hardware Adaption Groups&lt;br /&gt;
* UX Groups&lt;br /&gt;
&lt;br /&gt;
The MeeGo package-groups git tree (git://gitorious.org/meego-os-base/package-groups.git) now has these patterns to describe the compliance picture (additional patterns for adaptation, UX, etc):&lt;br /&gt;
&lt;br /&gt;
* meego-base.xml - Basic system&lt;br /&gt;
* meego-compliance.xml - Packages needed for Compliance&lt;br /&gt;
* meego-full-compliance.xml - MeeGo full compliance including core compliance and its dependencies&lt;br /&gt;
* meego-core.xml - MeeGo Core OS&lt;br /&gt;
&lt;br /&gt;
As a note, there is some compliance stuff that doesn't express as a specific pattern (?), and has to be handled separately:&lt;br /&gt;
&lt;br /&gt;
* Kernel 2.6.35 or later -We have separate kernel for separate platforms&lt;br /&gt;
* /usr/lib/libEGL.so.1 - we have separate gfx package to provide this&lt;br /&gt;
* /usr/lib/libGLES2.so.1  - we have separate gfx package to provide this&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance_Implementation</id>
		<title>Quality/Compliance Implementation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance_Implementation"/>
				<updated>2011-05-03T12:54:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Implementation of Compliance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compliance Implementation =&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
The objective of '''Compliance''' is to provide a base set of functionality that application writers can depend on being there - effectively, an ABI plus other supporting details.&lt;br /&gt;
&lt;br /&gt;
There are two aspects to compliance:&lt;br /&gt;
* For application writers, the key aspect is the set of services (libraries, services such as dbus, etc.) that are always present, so that apps know they can use them safely. It also includes a picture of which of those will be consistently provided in future releases so developers can detemine whether their apps will be &amp;quot;future-proof&amp;quot; or not.&lt;br /&gt;
* For device implementors, what is needed is a complete picture of what must be delivered, not just the external ABI view, so dependencies are also part of the picture.&lt;br /&gt;
&lt;br /&gt;
In effect, the MeeGo Architecture makes up the starting point for compliance, while the the dependencies of the architecture packages can be seen as providing functionality &amp;quot;on behalf of&amp;quot; the architecture packages so to be practical, they end up in compliance as well.  Dependencies could change over time - a dependency in 1.2 might not be a dependency in 1.3 any longer, so this part should not be counted on by applications; but for a given MeeGo release, dependencies are mandatory for devices.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Core vs. Compliance ==&lt;br /&gt;
&lt;br /&gt;
The Compliance set does not need to describe a bootable system, indeed does not need to be a &amp;quot;real OS&amp;quot;, it's just the minimum set an OSV needs to provide so that ISVs get a &amp;quot;compatible&amp;quot; OS.&lt;br /&gt;
&lt;br /&gt;
Meego-core on the other hand actually needs to boot, so there's a bunch of things in there that are needed to boot, but that an application couldn't care less about. Bootloaders are a quick example of things that must be in core, but are not important for compliance.&lt;br /&gt;
&lt;br /&gt;
So for all intents and purposes, compliance ends up being a subset of core.&lt;br /&gt;
&lt;br /&gt;
As an example, compliance could include a requirement to handle sysv initscripts, but not describe how that requirement is to be met, so an OSV could replace the exsiting init processing with upstart.  As long as the sysv initscripts are handled correctly, that's compliant.&lt;br /&gt;
&lt;br /&gt;
== Implementation of Compliance ==&lt;br /&gt;
&lt;br /&gt;
Since package groups are used to drive image creation anyway, proper grouping can make keeping track of compliance straightforward.&lt;br /&gt;
&lt;br /&gt;
Conceptually, these patterns could be used:&lt;br /&gt;
&lt;br /&gt;
* Base: bootable system, not compliant &lt;br /&gt;
* Compliance: Application Compliance packages&lt;br /&gt;
* Core = Base + Compliance&lt;br /&gt;
* Derived Compliance (need a better name for that) : Compliance and its dependencies&lt;br /&gt;
* Hardware Adaption Groups&lt;br /&gt;
* UX Groups&lt;br /&gt;
&lt;br /&gt;
The MeeGo package-groups git tree (git://gitorious.org/meego-os-base/package-groups.git) now has these patterns to describe the compliance picture (additional patterns for adaptation, UX, etc):&lt;br /&gt;
&lt;br /&gt;
* meego-base.xml - Basic system&lt;br /&gt;
* meego-compliance.xml - Packages needed for Compliance&lt;br /&gt;
* meego-full-compliance.xml - MeeGo full compliance including core compliance and its dependencies&lt;br /&gt;
* meego-core.xml - MeeGo Core OS&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance_Implementation</id>
		<title>Quality/Compliance Implementation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance_Implementation"/>
				<updated>2011-04-29T15:53:13Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: Created page with &amp;quot;= Compliance Implementation =  == Definition == The objective of '''Compliance''' is to provide a base set of functionality that application writers can depend on being there - e...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compliance Implementation =&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
The objective of '''Compliance''' is to provide a base set of functionality that application writers can depend on being there - effectively, an ABI plus other supporting details.&lt;br /&gt;
&lt;br /&gt;
There are two aspects to compliance:&lt;br /&gt;
* For application writers, the key aspect is the set of services (libraries, services such as dbus, etc.) that are always present, so that apps know they can use them safely. It also includes a picture of which of those will be consistently provided in future releases so developers can detemine whether their apps will be &amp;quot;future-proof&amp;quot; or not.&lt;br /&gt;
* For device implementors, what is needed is a complete picture of what must be delivered, not just the external ABI view, so dependencies are also part of the picture.&lt;br /&gt;
&lt;br /&gt;
In effect, the MeeGo Architecture makes up the starting point for compliance, while the the dependencies of the architecture packages can be seen as providing functionality &amp;quot;on behalf of&amp;quot; the architecture packages so to be practical, they end up in compliance as well.  Dependencies could change over time - a dependency in 1.2 might not be a dependency in 1.3 any longer, so this part should not be counted on by applications; but for a given MeeGo release, dependencies are mandatory for devices.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Core vs. Compliance ==&lt;br /&gt;
&lt;br /&gt;
The Compliance set does not need to describe a bootable system, indeed does not need to be a &amp;quot;real OS&amp;quot;, it's just the minimum set an OSV needs to provide so that ISVs get a &amp;quot;compatible&amp;quot; OS.&lt;br /&gt;
&lt;br /&gt;
Meego-core on the other hand actually needs to boot, so there's a bunch of things in there that are needed to boot, but that an application couldn't care less about. Bootloaders are a quick example of things that must be in core, but are not important for compliance.&lt;br /&gt;
&lt;br /&gt;
So for all intents and purposes, compliance ends up being a subset of core.&lt;br /&gt;
&lt;br /&gt;
As an example, compliance could include a requirement to handle sysv initscripts, but not describe how that requirement is to be met, so an OSV could replace the exsiting init processing with upstart.  As long as the sysv initscripts are handled correctly, that's compliant.&lt;br /&gt;
&lt;br /&gt;
== Implementation of Compliance ==&lt;br /&gt;
&lt;br /&gt;
Since package groups are used to drive image creation anyway, proper grouping can make keeping track of compliance straightforward.&lt;br /&gt;
&lt;br /&gt;
Conceptually, these patterns could be used:&lt;br /&gt;
&lt;br /&gt;
* Base: bootable system, not compliant &lt;br /&gt;
* Compliance: Application Compliance packages&lt;br /&gt;
* Core = Base + Compliance&lt;br /&gt;
* Derived Compliance (need a better name for that) : Compliance and its dependencies&lt;br /&gt;
* Hardware Adaption Groups&lt;br /&gt;
* UX Groups&lt;br /&gt;
&lt;br /&gt;
The meego-package-groups git tree now has these patterns to describe the compliance picture (additional patterns for adaptation, UX, etc):&lt;br /&gt;
&lt;br /&gt;
* patterns/meego-base.xml - Basic system&lt;br /&gt;
* patterns/meego-core-compliance.xml - MeeGo Core Compliance packages align with MeeGo architecture&lt;br /&gt;
* patterns/meego-compliance.xml - Packages needed for Compliance&lt;br /&gt;
* patterns/meego-full-compliance.xml - MeeGo full compliance including core compliance and its dependencies&lt;br /&gt;
* patterns/meego-core-base.xml - MeeGo Core Basic system&lt;br /&gt;
* patterns/meego-core.xml - MeeGo Core OS&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-04-13T20:36:48Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
Current drafts:&lt;br /&gt;
&lt;br /&gt;
* [http://dev.linuxfoundation.org/~mats/MeeGo-Compliance-Spec-1.0.99.9.pdf Spec 1.0.99.9] - for April 14 2011 TSG meeting&lt;br /&gt;
** Earlier [[Media:MeeGo-Compliance-Spec-1.0.99.5.pdf|Spec 1.0.99.5]] | [[Media:MeeGo-Compliance-Spec-1.0.99.4.pdf|Spec 1.0.99.4]] | [[Media:MeeGo-Compliance-Spec-1.0.99.3.pdf|Spec 1.0.99.3]] | [[Media:MeeGo-Compliance-Spec-1.0.99.2.pdf|Spec 1.0.99.2]] | [[Media:MeeGo-Compliance-Spec-1.0.99.1.pdf|Spec 1.0.99.1]] | [[Media:MeeGo-Compliance-Spec-1.0.99.7x.pdf|Spec 1.0.99.7]]&lt;br /&gt;
&lt;br /&gt;
Initial public draft for comment.&lt;br /&gt;
&lt;br /&gt;
* [[Media:MeeGo-Compliance-Spec-1.0.80.8.pdf|Spec 1.0.80.8]]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;br /&gt;
&lt;br /&gt;
== Meego Conference 2010 session ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on this subject.&lt;br /&gt;
&lt;br /&gt;
http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance/MCS_12</id>
		<title>Quality/Compliance/MCS 12</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance/MCS_12"/>
				<updated>2011-02-08T17:40:29Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: Created page with &amp;quot;{| style=&amp;quot;border-spacing:0;&amp;quot; | style=&amp;quot;border:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;|   |- | style=&amp;quot;border-top:none;border-bottom:0.0…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;border-spacing:0;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:none;border-bottom:0.0069in solid #4f81bd;border-left:none;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| &amp;lt;center&amp;gt;MeeGo Compliance Specification&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:0.0069in solid #4f81bd;border-bottom:none;border-left:none;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| &amp;lt;center&amp;gt;Draft Version 1.1.80.1&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| This document is a preliminary draft and all content is subject to change. No product compliance decisions should be based on this draft. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copyright © 2010,2011 The Linux Foundation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux is a registered trademark of Linus Torvalds.&lt;br /&gt;
&lt;br /&gt;
MeeGo is a registered trademark of The Linux Foundation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* Other names and brands may be claimed as the property of others.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
'''Contents'''&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
This specification defines the operating system interface and environment of the MeeGo operating system. It is intended to be used by both application developers and system implementers, and to describe, for each audience, the requirements for '''MeeGo Compliance.''' A system implementation can be either a device running a MeeGo compliant software stack or a stand-alone MeeGo compliant software stack.&lt;br /&gt;
&lt;br /&gt;
MeeGo is a registered trademark of the Linux Foundation, which controls the usage of the brand and trademark. One of the requirements for permission to use this trademark is compliance with the requirements in this specification.&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
This specification sets forth two separate component categories for Platform Compliance:&lt;br /&gt;
&lt;br /&gt;
* MeeGo Core: a core set of operating system components (or “stack”), as provided by the MeeGo project, is always required, and may not be replaced or repackaged (see Definitions).&lt;br /&gt;
* MeeGo Profile: a targeted description for a device category, including additional components, device category programming interfaces, minimum hardware requirements, and more. Profile software components are subject to the same no-replace rules as core components.&lt;br /&gt;
&lt;br /&gt;
These categories are additive: a MeeGo Profile layers on top of MeeGo Core to produce a complete description.&lt;br /&gt;
&lt;br /&gt;
System implementations may only claim compliance to a specific MeeGo Profile. It is possible for a profile to be empty, in other words, to state that the requirements for the profile are satisfied by MeeGo Core. &lt;br /&gt;
&lt;br /&gt;
Applications may comply either with a specific MeeGo Profile or, by avoiding profile specifics, comply with MeeGo Core to target the whole range of implementations..&lt;br /&gt;
&lt;br /&gt;
The specification also defines two aspects of Application Compliance.&lt;br /&gt;
&lt;br /&gt;
* API: the set of programming interfaces available to applications at the source code level, and the compatibility promises related to various aspects of the API.&lt;br /&gt;
* ABI: the set of function calls available at runtime at the binary level. ABI compatibility is maintained across releases with the same major number.&lt;br /&gt;
&lt;br /&gt;
For more details, see Definitions, on page 4, and the Application Compatibility chapter, on page 9.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;EGL&amp;lt;nowiki&amp;gt;] Native Platform Graphics Interface [&amp;lt;/nowiki&amp;gt;[http://www.khronos.org/registry/egl/specs/eglspec.1.3.pdf http://www.khronos.org/registry/egl/specs/eglspec.1.3.pdf]]&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;ELF&amp;lt;nowiki&amp;gt;] Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification Version 1.2 [&amp;lt;/nowiki&amp;gt;[http://refspecs.linuxfoundation.org/elf/elf.pdf http://refspecs.linuxfoundation.org/elf/elf.pdf]]&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;LSB 4.0&amp;lt;nowiki&amp;gt;] ISO/IEC 23360:2005 Linux Standard Base - Part 1 Generic Specification [&amp;lt;/nowiki&amp;gt;[http://refspecs.linuxfoundation.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic.html http://refspecs.linuxfoundation.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic.html]]&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[Notify] Desktop Notifications Specification 0.9&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[http://www.galago-project.org/specs/notification/0.9 http://www.galago-project.org/specs/notification/0.9]]&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;OGL] OpenGL 2.1 [http://www.opengl.org/documentation/specs]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;OGLES&amp;lt;nowiki&amp;gt;] OpenGL ES 2.X [&amp;lt;/nowiki&amp;gt;[http://www.khronos.org/opengles/2_X http://www.khronos.org/opengles/2_X]&amp;lt;nowiki&amp;gt;] and OpenGL ES 1.x [http://www.khronos.org/opengles/1_X/]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;Qt47&amp;lt;nowiki&amp;gt;] Qt Reference Documentation, version 4.7 [&amp;lt;/nowiki&amp;gt;[http://apidocs.meego.com/qt4.7/%5d http://apidocs.meego.com/qt4.7/]]&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;QtMob&amp;lt;nowiki&amp;gt;] Qt Mobility Project APIS [&amp;lt;/nowiki&amp;gt;[http://apidocs.meego.com/qtmobility/%5d http://apidocs.meego.com/qtmobility/]]&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;RFC2119&amp;lt;nowiki&amp;gt;] IETF RFC 2119 Key words for use in RFCs to Indicate Requirement Levels [&amp;lt;/nowiki&amp;gt;[http://www.ietf.org/rfc/rfc2119.txt http://www.ietf.org/rfc/rfc2119.txt]]&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;WGT&amp;lt;nowiki&amp;gt;] W3C Widget Packaging and Configuration specification [&amp;lt;/nowiki&amp;gt;[http://www.w3.org/TR/widgets http://www.w3.org/TR/widgets]]&lt;br /&gt;
&lt;br /&gt;
== Definitions ==&lt;br /&gt;
&amp;lt;nowiki&amp;gt;The key words &amp;quot;MUST&amp;quot;, &amp;quot;MUST NOT&amp;quot;, &amp;quot;REQUIRED&amp;quot;, &amp;quot;SHALL&amp;quot;, &amp;quot;SHALL NOT&amp;quot;, &amp;quot;SHOULD&amp;quot;, &amp;quot;SHOULD NOT&amp;quot;, &amp;quot;RECOMMENDED&amp;quot;, &amp;quot;MAY&amp;quot;, and &amp;quot;OPTIONAL&amp;quot; used in this document are to be interpreted as described in [&amp;lt;/nowiki&amp;gt;RFC2119].&lt;br /&gt;
&lt;br /&gt;
'''MeeGo API''' – the preferred set of programming interfaces defined for MeeGo Core. &lt;br /&gt;
&lt;br /&gt;
'''Platform API''' – the complete set of programming interfaces defined for MeeGo Core.&lt;br /&gt;
&lt;br /&gt;
'''Repackaging''' –MeeGo Core packages may not be repackaged. This means the %files sections of the RPM spec file describing the package or subpackages may not be changed, only appended to.&lt;br /&gt;
&lt;br /&gt;
'''MeeGo Reference Implementation''' – the reference implementation shall be the source code released by the MeeGo project for the packages listed in Appendix A.&lt;br /&gt;
&lt;br /&gt;
'''Instruction set''' – includes both the set of used instructions in binaries, which may require the use of optional features in the CPU architecture, and also different compiler options to generate optimal instruction scheduling for a specific implementation of the CPU architecture.&lt;br /&gt;
&lt;br /&gt;
== Compliance Principles ==&lt;br /&gt;
The fundamental purpose of this specification is to enable binary application compatibility on a particular architecture, while maintaining source compatibility across the entire MeeGo family. To that end, the following principles are in effect:&lt;br /&gt;
&lt;br /&gt;
* Where this specification is silent, ambiguous, or incomplete, regarding a particular behavior, it is the responsibility of the system implementer to ensure compatibility with the Reference Implementation. That is, notwithstanding any specific wording in this specification, the behavior is defined by the reference source code.&lt;br /&gt;
* If a compliant binary application operates correctly on the Reference Implementation and fails on another implementation, it is the responsibility of the failing implementation to resolve the conflict.&lt;br /&gt;
&lt;br /&gt;
=== CPU Architectures ===&lt;br /&gt;
CPU architectures are approved by the MeeGo Technical Steering Group and may change over time. As of this version of the specification, supported architectures are:&lt;br /&gt;
&lt;br /&gt;
* Intel® Atom™ (Core2/Atom instruction set (SSSE3)), represented as RPM architecture i586&lt;br /&gt;
* ARM v7-A (ARM EABI, VFPv3 support, softfp float ABI), represented as RPM architecture armv7l&lt;br /&gt;
&lt;br /&gt;
'''Note.''' ''the ARM v7 architecture in this version of the specification carries no binary (ABI) compatibility guarantee. It is planned to be replaced with a hardfp implementation in the next version, requiring an explicit ABI break.''&lt;br /&gt;
&lt;br /&gt;
=== MeeGo Profiles ===&lt;br /&gt;
Profiles are approved by the MeeGo Technical Steering Group and may change over time. As of this version of the specification, supported profiles are:&lt;br /&gt;
&lt;br /&gt;
* Netbook&lt;br /&gt;
&lt;br /&gt;
=== Forward and Backward Compatibility ===&lt;br /&gt;
Forward compatibility for compliant binaries (ABI) is promised for future versions of MeeGo with the same major version number.&lt;br /&gt;
&lt;br /&gt;
At the source code level (API), applications using only the MeeGo API are assured compatibility with all future versions of MeeGo with the same major version number. Applications which explicitly call interfaces outside the MeeGo API at the source code level have no compatibility promise for other MeeGo releases and implementations.&lt;br /&gt;
&lt;br /&gt;
There are no assurances that an application constructed for a particular version will run on any earlier version.&lt;br /&gt;
&lt;br /&gt;
= Platform Compatibility =&lt;br /&gt;
== Requirements ==&lt;br /&gt;
A compliant implementation is CPU architecture specific, and must provide a complete implementation, as required by the device category profile for that architecture. The implementation may provide additional components, as long as it does not replace or repackage the components required by the profile (see Definitions, on page 4).&lt;br /&gt;
&lt;br /&gt;
It is permissible for a system implementation to provide alternative implementations of system components, provided that the components required by the profile are present and fully functional. For example, an alternative media framework can be provided, as long as the MeeGo media framework is also present and fully functional (so that applications depending on the MeeGo media framework continue to work correctly).&lt;br /&gt;
&lt;br /&gt;
Components of the MeeGo Core software stack, as well as additional software for profiles, are specified in terms of source code in the package form released by the MeeGo project. These packages are described by a name and version, and the set will correspond to a particular MeeGo version. For the purposes of this specification, this will be known as the ''MeeGo Reference Implementation''.&lt;br /&gt;
&lt;br /&gt;
== Platform Source Code Modification Policy ==&lt;br /&gt;
System implementers MUST use the source code of the MeeGo Reference Implementation and SHALL NOT replace or omit MeeGo Core or MeeGo Profile components. They SHALL NOT repackage the software such that individual files appear in different binary package names than those used in the MeeGo Reference Implementation. Modifications to the MeeGo Reference Implementation are subject to the following requirements:&lt;br /&gt;
&lt;br /&gt;
* Patches MAY be applied against source packages if necessary (for example, to fix bugs found in the field), but changes MUST NOT affect API or ABI.&lt;br /&gt;
* All patches SHALL be provided as patch files within corresponding SRPMs. It is recommended that such patches be submitted back to the MeeGo project.&lt;br /&gt;
* Patched packages SHALL have an updated minor version or suffix to distinguish them from the package released by the MeeGo Reference Implementation. The exact form of disambiguation is unspecified.&lt;br /&gt;
* A MeeGo compliant implementation MUST use the same tool chain and the same compiler options as the reference implementation. A package MAY be compiled to use a specific instruction set, to optimize for the target device, as long as the ABI remains compliant to the MeeGo Reference Implementation.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Core Components ==&lt;br /&gt;
A compliant system shall provide all MeeGo Core packages listed in Appendix A and marked as applicable for the given architecture. All packages shall be included in the default install.&lt;br /&gt;
&lt;br /&gt;
To ensure smooth installation of third party applications across all MeeGo compliant distributions, all the packages:&lt;br /&gt;
&lt;br /&gt;
* SHALL “provide” (in RPM terminology) all features assigned to the corresponding package in appendix A&lt;br /&gt;
* SHALL contain all files assigned to the corresponding package in Appendix A&lt;br /&gt;
&lt;br /&gt;
'''Note.''' ''The RPM package manager uses both techniques (feature-based and file-based) to resolve dependencies of packages to be installed, so it is important to keep these properties of MeeGo Core packages consistent across all MeeGo compliant implementations.''&lt;br /&gt;
&lt;br /&gt;
== Additional System Components ==&lt;br /&gt;
A compliant system may provide additional components, if they satisfy to the following requirements:&lt;br /&gt;
&lt;br /&gt;
* MUST NOT overwrite MeeGo packages&lt;br /&gt;
* MUST NOT conflict with file system namespace of the MeeGo Reference Implementation&lt;br /&gt;
&lt;br /&gt;
== ABI and API ==&lt;br /&gt;
This section describes requirements aimed to ensure compatibility between executable files of third party applications and MeeGo compliant systems.&lt;br /&gt;
&lt;br /&gt;
=== MeeGo API ===&lt;br /&gt;
Implementations must support MeeGo API. The ''MeeGo API'' consists of the following:&lt;br /&gt;
&lt;br /&gt;
* Qt 4.7 &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;Qt47]&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;Qt Mobility 1.0 [&amp;lt;/nowiki&amp;gt;QtMob]&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;OpenGL ES 2.0 [&amp;lt;/nowiki&amp;gt;OGLES&amp;lt;nowiki&amp;gt;] (ARM) or OpenGL [&amp;lt;/nowiki&amp;gt;OGL] (Atom)&lt;br /&gt;
&lt;br /&gt;
'''Note.''' '''''F'''or this version of the specification, Atom implementations include MeeGo API components which are built against OpenGL, not OpenGL ES. It is planned to change the Atom implementation to OpenGL ES in the next version, which will cause an explicit compatibility break''.&lt;br /&gt;
&lt;br /&gt;
=== Executable and Linking Format ===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;MeeGo systems shall support execution of object files in Executable and Linking Format (ELF), as specified in [ELF], LSB [LSB 4.0], and corresponding architecture-specific supplements. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Linker ===&lt;br /&gt;
The default system dynamic linker (/lib/ld-linux.so.2 for Atom and /lib/ld-linux.so.3 for ARM), when run in the default environment, shall load all shared libraries required for compliance from the paths provided by the MeeGo Reference Implementation. That is, except in debug and other special cases, required libraries must not be overridden by alternative versions.&lt;br /&gt;
&lt;br /&gt;
=== MeeGo Core Shared Libraries ===&lt;br /&gt;
A compliant system shall provide all MeeGo Core shared libraries provided by the binary packages referenced in Appendix A, and each such library shall export all the public symbols assigned to the library, keeping run-time semantics of those symbols the same as in the MeeGo Reference Implementation.&lt;br /&gt;
&lt;br /&gt;
=== Default Shell Interpreter ===&lt;br /&gt;
The default shell interpreter /bin/sh of any compliant system shall be bash version 4.0.&lt;br /&gt;
&lt;br /&gt;
=== Commands and Utilities ===&lt;br /&gt;
The default installation of any compliant system shall provide all of the commands and utilities specified in the package list of the MeeGo Reference Implementation.&lt;br /&gt;
&lt;br /&gt;
== Package Management ==&lt;br /&gt;
A compliant system shall supply the RPM Package Manager (RPM), as provided by the MeeGo Reference Implementation, and support installation of all compliant RPM packages, as created by the corresponding version 4.8 rpm build tool. The system shall support installation and updating of packages from repositories containing RPM packages using PackageKit, which must also be supplied.&lt;br /&gt;
&lt;br /&gt;
== Graphical Subsystem ==&lt;br /&gt;
If the capabilities above are provided by an X Window System server, the following extensions are required:&lt;br /&gt;
&lt;br /&gt;
* BIG-REQUESTS, Composite, DAMAGE, DPMS, Generic Event Extension, MIT-SCREEN-SAVER, MIT-SHM, RANDR, RENDER, SYNC, XFIXES, XInputExtension, XKEYBOARD, XVideo&lt;br /&gt;
&lt;br /&gt;
If the driver stack is based on Mesa, additionally required are:&lt;br /&gt;
&lt;br /&gt;
* DRI2, GLX&lt;br /&gt;
&lt;br /&gt;
== Kernel ==&lt;br /&gt;
A compliant system shall use Linux kernel version 2.6.35 or later.&lt;br /&gt;
&lt;br /&gt;
Note: A minimum set of kernel configuration options may be required in a future version.&lt;br /&gt;
&lt;br /&gt;
= Application Compatibility =&lt;br /&gt;
== Requirements ==&lt;br /&gt;
A conforming application shall satisfy the following requirements:&lt;br /&gt;
&lt;br /&gt;
* The application may be CPU architecture specific, and, if so, must follow all the requirements for that architecture.&lt;br /&gt;
* The application’s executable files shall be either object files in the format defined for that CPU architecture, and/or scripts or intermediate code, written for one of the programming language interpreters described in this specification.&lt;br /&gt;
* The application shall be assembled into a package of the supported form required by this specification.&lt;br /&gt;
* The package shall identify the version of this specification the application conforms to, and shall identify the profile it requires, if any.&lt;br /&gt;
* Any executable and non-executable files, belonging to the application, shall be placed only in locations in the file system hierarchy allowed by this specification.&lt;br /&gt;
* The application shall use only external commands and other facilities described in this specification, whether for installation tasks or run-time tasks.&lt;br /&gt;
&lt;br /&gt;
== API and ABI ==&lt;br /&gt;
This section describes requirements aimed to ensure compatibility of application source code and executable files between applications and MeeGo compliant systems.&lt;br /&gt;
&lt;br /&gt;
=== Use of APIs Provided by Platform ===&lt;br /&gt;
The MeeGo API consists of the components described in section MeeGo API. Applications are strongly encouraged to code only to the MeeGo API. Applications which adhere to this restriction (that is, link explicity only with these libraries) are compliant at both the source and binary level for the major version of MeeGo they were built for. Applications should target the lowest applicable {''major.minor''} version of MeeGo for the widest portability.&lt;br /&gt;
&lt;br /&gt;
Applications using the larger Platform API are not guaranteed compatibility. This is because there is no explicit guarantee that interfaces outside the MeeGo API will remain consistent, nor they work across all profiles.&lt;br /&gt;
&lt;br /&gt;
=== Compliant Application Executables ===&lt;br /&gt;
All MeeGo compliant binary executable files and shared libraries shall be in the ELF format, as described in section Executable and Linking Format. They shall import external interfaces only from the following sources:&lt;br /&gt;
&lt;br /&gt;
* shared libraries supplied as a part of the application package&lt;br /&gt;
* MeeGo Core shared libraries, if the interface is a part of the public interfaces of that library&lt;br /&gt;
&lt;br /&gt;
Additionally, the executable may use public interfaces from shared libraries specific to a MeeGo profile, but, in this case, the application will be compliant only with that profile.&lt;br /&gt;
&lt;br /&gt;
If the executable is a plug-in for a MeeGo system component, it may import interfaces from an executable of the system component, and from shared libraries loading as part of that executable.&lt;br /&gt;
&lt;br /&gt;
Compliant executables will run on all later versions within the same major version number MeeGo release. &lt;br /&gt;
&lt;br /&gt;
=== Use of Implementation-Dependent Instruction Sets ===&lt;br /&gt;
An application binary or shared library MAY use CPU architecture extensions and implementation-specific features when building the binaries. If such usage would limit the portability of the application, the application must clearly identify the restrictions imposed as a result – application repositories/stores must be able to filter out devices which are not applicable. The mechanism for this is unspecified.&lt;br /&gt;
&lt;br /&gt;
== Packaging Compliant Application Packages ==&lt;br /&gt;
All MeeGo compliant applications SHALL be packaged in RPM package file format.&lt;br /&gt;
&lt;br /&gt;
=== Package Naming ===&lt;br /&gt;
An application package name shall begin with one of the owners' fully qualified domain names in lower case, in reverse order, and end with the application name (such as, com.ovi.appname).&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
Application packages SHALL “require” (in RPM terminology) all system components that are necessary for them to run. They MAY omit optional dependencies, if such omission does not affect ability of the application to operate in a user friendly way, that is, omitting a dependency should not have the effect of allowing the application to install successfully, but then not operate correctly. &lt;br /&gt;
&lt;br /&gt;
Application packages MAY NOT depend on features outside this specification as this would affect the ability of the application to install.&lt;br /&gt;
&lt;br /&gt;
Dependencies to MeeGo Core are allowed either in terms of package names or in terms of features, that are specified in Appendix A (for MeeGo Core components) and in the relevant profile chapter.&lt;br /&gt;
&lt;br /&gt;
=== Integration with RPM ===&lt;br /&gt;
Application packages shall be created so that the package management system knows which files are installed. Queries on the installed packages, using standard package management tools, shall work as expected. Examples:&lt;br /&gt;
&lt;br /&gt;
* Find the package that a file belongs to:&lt;br /&gt;
&lt;br /&gt;
$ rpm –q –-file filename&lt;br /&gt;
&lt;br /&gt;
* List all files installed by a package:&lt;br /&gt;
&lt;br /&gt;
$ rpm –ql packagename&lt;br /&gt;
&lt;br /&gt;
Packages that install all files in a post install script are not compliant.&lt;br /&gt;
&lt;br /&gt;
The application shall uninstall cleanly, leaving the system in the state it was in prior to installation (excepting any user-added files or configurations).&lt;br /&gt;
&lt;br /&gt;
=== Layout in Filesystem ===&lt;br /&gt;
An application shall be installed to /opt/''packagename''/ and, if necessary to the /etc/opt/''packagename''/ and /var/opt/''packagename''/ directories. System wide configuration files shall be placed in the /etc/opt/''packagename'' directory rather than directly in /etc , unless a specific location is necessary for the application or system to operate correctly. Variable data from a package, such as lock files, cached files, etc. shall be placed in the /var/opt/''packagename'' directory rather than directly in /var , unless a specific location is necessary for the application or system to operate correctly. User specific files shall be stored in the ~/.config/''packagename'' directory. The rationale for these rules is to avoid filename clashes between application packages and with system files, by defining portions of the filesystem certain to be unique to that application.&lt;br /&gt;
&lt;br /&gt;
=== Desktop Integration ===&lt;br /&gt;
A .desktop file shall be installed under /usr/share/applications&amp;lt;nowiki&amp;gt;, and contain values for at least the following fields: Name, Comment, [Exec or Link], Icon, Type, and Categories.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The picture file specified in the Icon field of the .desktop file must be either SVG or PNG format. In the case of PNG format, the following sizes shall be provided: 16x16, 32x32, 64x64, and 128x128.&lt;br /&gt;
&lt;br /&gt;
= MeeGo Netbook Profile Specification =&lt;br /&gt;
== Hardware Requirements ==&lt;br /&gt;
The following hardware capabilities are recommended but not required:&lt;br /&gt;
&lt;br /&gt;
* Network connectivity provided by one or more of the following: WiFi / Ethernet / 3G data / WiMAX&lt;br /&gt;
* A physical keyboard and pointing device&lt;br /&gt;
* A minimum screen resolution of 1024x600 pixels&lt;br /&gt;
* A minimum of 1024 MB of RAM&lt;br /&gt;
&lt;br /&gt;
== Package Management ==&lt;br /&gt;
There are no additional package management requirements beyond those specified for MeeGo Core compliance.&lt;br /&gt;
&lt;br /&gt;
== ABI and API ==&lt;br /&gt;
There are no additional ABI and API requirements beyond those specified for MeeGo Core compliance.&lt;br /&gt;
&lt;br /&gt;
== Other Requirements ==&lt;br /&gt;
A compliant Netbook implementation must provide the following functionality&lt;br /&gt;
&lt;br /&gt;
* a window manager that supports running MeeGo compliant applications &lt;br /&gt;
* a notification system using libnotify&amp;lt;nowiki&amp;gt; or compliant with the Desktop Notifications Specification 0.9 defined in [&amp;lt;/nowiki&amp;gt;Notify] &lt;br /&gt;
* the ability to launch MeeGo-compliant applications &lt;br /&gt;
* a network configuration UI supporting ConnMan&lt;br /&gt;
&lt;br /&gt;
== Netbook Profile Packages ==&lt;br /&gt;
There are no additional packages required beyond those specified for MeeGo Core compliance.= Appendix A – MeeGo Core Packages =&lt;br /&gt;
&amp;lt;center&amp;gt;'''Legend'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-spacing:0;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border-top:0.0139in solid #000001;border-bottom:none;border-left:none;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| Type&lt;br /&gt;
| style=&amp;quot;border-top:0.0139in solid #000001;border-bottom:none;border-left:none;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| * core – package is required based on the MeeGo architecture definition&lt;br /&gt;
* dep – package is a “hard” dependency of a core package &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#c0c0c0;border:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| Source Package&lt;br /&gt;
| style=&amp;quot;background-color:#c0c0c0;border:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| the required source package&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| Version&lt;br /&gt;
| style=&amp;quot;border:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| the required version of the package – this will be provided with the final package list&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#c0c0c0;border-top:none;border-bottom:0.0139in solid #000001;border-left:none;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| Binary Package&lt;br /&gt;
| style=&amp;quot;background-color:#c0c0c0;border-top:none;border-bottom:0.0139in solid #000001;border-left:none;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;&amp;quot;| the required binary package(s) built from the corresponding source package. Note that some binary packages produced by building a given source package may not be required.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Appendix A - MeeGo Core Packages =&lt;br /&gt;
&lt;br /&gt;
table not imported into draft&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-02-07T13:37:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
Current drafts:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.7x.pdf Spec 1.0.99.7] - for Feb 9 2011 TSG meeting&lt;br /&gt;
** Earlier [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.5.pdf Spec 1.0.99.5] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.4.pdf Spec 1.0.99.4] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.3.pdf Spec 1.0.99.3] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.2.pdf Spec 1.0.99.2] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.1.pdf Spec 1.0.99.1]&lt;br /&gt;
&lt;br /&gt;
Initial public draft for comment.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;br /&gt;
&lt;br /&gt;
== Meego Conference 2010 session ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on this subject.&lt;br /&gt;
&lt;br /&gt;
http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.7x.pdf</id>
		<title>File:MeeGo-Compliance-Spec-1.0.99.7x.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.7x.pdf"/>
				<updated>2011-02-07T13:37:02Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: slight update - notes modified, no content change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;slight update - notes modified, no content change&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2011-02-04T15:37:42Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
Current drafts:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.7.pdf Spec 1.0.99.7] - for Feb 9 2011 TSG meeting&lt;br /&gt;
** Earlier [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.5.pdf Spec 1.0.99.5] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.4.pdf Spec 1.0.99.4] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.3.pdf Spec 1.0.99.3] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.2.pdf Spec 1.0.99.2] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.1.pdf Spec 1.0.99.1]&lt;br /&gt;
&lt;br /&gt;
Initial public draft for comment.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;br /&gt;
&lt;br /&gt;
== Meego Conference 2010 session ==&lt;br /&gt;
&lt;br /&gt;
At the Meego Conference 2010, Mark Skarpness gave a talk on this subject.&lt;br /&gt;
&lt;br /&gt;
http://conference2010.meego.com/session/app-compatibility-and-meego-compliance-program&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.7.pdf</id>
		<title>File:MeeGo-Compliance-Spec-1.0.99.7.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.7.pdf"/>
				<updated>2011-02-04T15:35:15Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: Updated Compliance draft, review before 9.Feb.2011&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Updated Compliance draft, review before 9.Feb.2011&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.5.pdf</id>
		<title>File:MeeGo-Compliance-Spec-1.0.99.5.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.5.pdf"/>
				<updated>2010-11-30T15:02:21Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: uploaded a new version of &amp;quot;File:MeeGo-Compliance-Spec-1.0.99.5.pdf&amp;quot;:&amp;amp;#32;(corrected) spec for review at Dec 1 2010 TSG meeting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft proposed for approval at Dec 1 2010 TSG meeting&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.5.pdf</id>
		<title>File:MeeGo-Compliance-Spec-1.0.99.5.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.5.pdf"/>
				<updated>2010-11-30T14:27:09Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: This draft proposed for approval at Dec 1 2010 TSG meeting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This draft proposed for approval at Dec 1 2010 TSG meeting&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2010-11-30T14:25:53Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
Current drafts:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.5.pdf Spec 1.0.99.5] - for Dec 1 2010 TSG meeting&lt;br /&gt;
** Earlier: [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.4.pdf Spec 1.0.99.4] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.3.pdf Spec 1.0.99.3] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.2.pdf Spec 1.0.99.2] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.1.pdf Spec 1.0.99.1]&lt;br /&gt;
&lt;br /&gt;
Initial public draft for comment.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2010-11-10T14:34:18Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is indended to match with specific MeeGo releases, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
Current drafts:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.4.pdf Spec 1.0.99.4]&lt;br /&gt;
** Earlier: [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.3.pdf Spec 1.0.99.3] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.2.pdf Spec 1.0.99.2] | [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.1.pdf Spec 1.0.99.1]&lt;br /&gt;
&lt;br /&gt;
Initial public draft for comment.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.4.pdf</id>
		<title>File:MeeGo-Compliance-Spec-1.0.99.4.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.4.pdf"/>
				<updated>2010-11-10T14:32:01Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2010-10-27T23:28:10Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is indended to match with specific MeeGo releases, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
Current drafts:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.3.pdf Spec 1.0.99.3]  Previous: [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.2.pdf Spec 1.0.99.2] [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.1.pdf Spec 1.0.99.1]&lt;br /&gt;
&lt;br /&gt;
Initial public draft for comment.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* [[Quality/Compliance/HandsetProfile|Handset Profile]]&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance/HandsetProfile</id>
		<title>Quality/Compliance/HandsetProfile</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance/HandsetProfile"/>
				<updated>2010-10-27T23:03:15Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: Created page with &amp;quot;This is an evolving draft, please comment  = MeeGo Handset Profile Specification = == Hardware Requirements == None listed at this time  == Package Management == None listed at t…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an evolving draft, please comment&lt;br /&gt;
&lt;br /&gt;
= MeeGo Handset Profile Specification =&lt;br /&gt;
== Hardware Requirements ==&lt;br /&gt;
None listed at this time&lt;br /&gt;
&lt;br /&gt;
== Package Management ==&lt;br /&gt;
None listed at this time&lt;br /&gt;
&lt;br /&gt;
== ABI and API ==&lt;br /&gt;
The MeeGo Handset Profile extends the Platform API with the following components:&lt;br /&gt;
&lt;br /&gt;
* MeeGo Touch Framework (TBD: version) &lt;br /&gt;
&lt;br /&gt;
== Other Requirements ==&lt;br /&gt;
None listed at this time&lt;br /&gt;
&lt;br /&gt;
== Handset Profile Packages ==&lt;br /&gt;
The MeeGo Handset Profile adds these additional packages beyond those required for MeeGo Core compliance:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| '''Source Package'''&lt;br /&gt;
| '''Version'''&lt;br /&gt;
| Type&lt;br /&gt;
| '''Binary Packages'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''libmeegotouch'''&lt;br /&gt;
| &lt;br /&gt;
| core&lt;br /&gt;
| '''libmeegotouch'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''meegotouch-applauncherd'''&lt;br /&gt;
| &lt;br /&gt;
| core&lt;br /&gt;
| '''meegotouch-applauncherd'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''meegotouch-applifed'''&lt;br /&gt;
| &lt;br /&gt;
| core&lt;br /&gt;
| '''meegotouch-applifed'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''meegotouch-controlpanel'''&lt;br /&gt;
| &lt;br /&gt;
| core&lt;br /&gt;
| '''meegotouch-controlpanel'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''meegotouch-feedback'''&lt;br /&gt;
| &lt;br /&gt;
| core&lt;br /&gt;
| '''meegotouch-feedback'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''meegotouch-feedbackreactionmaps'''&lt;br /&gt;
| &lt;br /&gt;
| core&lt;br /&gt;
| '''meegotouch-feedbackreactionmaps'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''meegotouch-inputmethodengine'''&lt;br /&gt;
| &lt;br /&gt;
| core&lt;br /&gt;
| '''meegotouch-inputmethodengine'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''meegotouch-inputmethodframework'''&lt;br /&gt;
| &lt;br /&gt;
| core&lt;br /&gt;
| '''meegotouch-inputmethodframework'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''meegotouch-theme'''&lt;br /&gt;
| &lt;br /&gt;
| dep&lt;br /&gt;
| '''meegotouch-theme'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2010-10-27T23:00:21Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is indended to match with specific MeeGo releases, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
Current drafts:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.3.pdf Spec 1.0.99.3]  Previous: [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.2.pdf Spec 1.0.99.2] [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.1.pdf Spec 1.0.99.1]&lt;br /&gt;
&lt;br /&gt;
Initial public draft for comment.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;br /&gt;
&lt;br /&gt;
Work in progress:&lt;br /&gt;
&lt;br /&gt;
* Handset Profile&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2010-10-26T16:25:13Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Compliance Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is indended to match with specific MeeGo releases, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
Current drafts:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.2.pdf Spec 1.0.99.2]  Previous: [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.1.pdf Spec 1.0.99.1]&lt;br /&gt;
&lt;br /&gt;
Initial public draft for comment.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
The 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.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages. &lt;br /&gt;
&lt;br /&gt;
For MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2010-10-26T16:18:58Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
The specification is indended to match with specific MeeGo releases, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
Current drafts:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.2.pdf Spec 1.0.99.2]  Previous: [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.1.pdf Spec 1.0.99.1]&lt;br /&gt;
&lt;br /&gt;
Initial public draft for comment.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;br /&gt;
&lt;br /&gt;
== Compliance Tools ==&lt;br /&gt;
&lt;br /&gt;
Compliance tools are used to check MeeGo compliance for MeeGo Distributions or MeeGo Applications. The compliance 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 src rpms.&lt;br /&gt;
&lt;br /&gt;
For MeeGo distribution compliance checking, the input needs to include the OS image and the src.rpms for all the packages. And for MeeGo Application compliance checking, the input is the application rpm file.&lt;br /&gt;
&lt;br /&gt;
See [[Quality/ComplianceTools|ComplianceTools]] for details.&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - DONE&lt;br /&gt;
* Next Rev of compliance spec including profiles - DONE&lt;br /&gt;
* First version of compliance tools for distribution / device - DONE&lt;br /&gt;
* First version of compliance tools for applications - DONE&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.2.pdf</id>
		<title>File:MeeGo-Compliance-Spec-1.0.99.2.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.2.pdf"/>
				<updated>2010-10-26T16:18:00Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2010-10-20T04:45:16Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MeeGo compliance addresses two categories of compliance:  MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as &amp;quot;devices&amp;quot;). 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.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Device Overview==&lt;br /&gt;
&lt;br /&gt;
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.&lt;br /&gt;
&lt;br /&gt;
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).&lt;br /&gt;
&lt;br /&gt;
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs. &lt;br /&gt;
&lt;br /&gt;
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.&lt;br /&gt;
&lt;br /&gt;
==MeeGo Compliant Application Overview==&lt;br /&gt;
&lt;br /&gt;
Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==More Detail on Stack Based Compliance==&lt;br /&gt;
&lt;br /&gt;
Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.&lt;br /&gt;
&lt;br /&gt;
Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.  &lt;br /&gt;
&lt;br /&gt;
Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs.  Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this &amp;quot;Hardware Adaptation Software&amp;quot; in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.&lt;br /&gt;
&lt;br /&gt;
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
Current draft:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.99.1.pdf Spec 1.0.99.1]&lt;br /&gt;
&lt;br /&gt;
Here's an initial draft of the specification for public comment. This is intended to match the MeeGo 1.1 release, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;br /&gt;
&lt;br /&gt;
== Schedule MeeGo 1.1 Compliance ==&lt;br /&gt;
&lt;br /&gt;
* Preliminary compliance package list (i.e. the minimum set of required on-device packages) - week of September 20&lt;br /&gt;
* Next Rev of compliance spec including profiles - week of September 27&lt;br /&gt;
* First version of compliance tools for distribution / device - week of October 4th&lt;br /&gt;
* First version of compliance tools for applications - week of October 11th&lt;br /&gt;
* Final compliance package list and spec for 1.1 release, and tools updates as needed - with the MeeGo 1.1 release end of October&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.1.pdf</id>
		<title>File:MeeGo-Compliance-Spec-1.0.99.1.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:MeeGo-Compliance-Spec-1.0.99.1.pdf"/>
				<updated>2010-10-20T04:44:05Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2010-09-03T23:31:34Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Compliance =&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
A part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
Here's an initial draft of the specification for public comment. This is intended to match the MeeGo 1.1 release, so it uses a similar numbering scheme.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality/Compliance</id>
		<title>Quality/Compliance</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality/Compliance"/>
				<updated>2010-09-03T22:40:37Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.  &lt;br /&gt;
&lt;br /&gt;
A part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.&lt;br /&gt;
&lt;br /&gt;
Here's an initial draft of the specification for public comment:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.meego.com/images/MeeGo-Compliance-Spec-1.0.80.8.pdf Spec 1.0.80.8]&lt;br /&gt;
&lt;br /&gt;
For now, comments to the meego-dev mailing list, until we get kicked off!&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality</id>
		<title>Quality</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality"/>
				<updated>2010-09-03T22:37:59Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Compliance Program */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Quality ==&lt;br /&gt;
&lt;br /&gt;
WORK IN PROGRESS - ''This page is placeholder collecting MeeGo Quality Assurance material - please refer to [http://meego.com/community meego-community] and [http://forum.meego.com forum.meego.com] for QA discussion''&lt;br /&gt;
&lt;br /&gt;
== QA tools team ==&lt;br /&gt;
&lt;br /&gt;
=== MeeGo QA tools team ===&lt;br /&gt;
&lt;br /&gt;
Meet quality assurance team and participate in activities. You are most welcome!&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools|MeeGo QA tools team]]&lt;br /&gt;
&lt;br /&gt;
=== Test packaging ===&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Test_Packaging|Test packaging]] is mechanism to wrap any tests in rpm packages to automate execution.&lt;br /&gt;
&lt;br /&gt;
=== Test Case Management Tool ===&lt;br /&gt;
&lt;br /&gt;
[[Quality/testmanagementtool|Test Case Management Tool]] - we will setup and evaluate testlink for test case management.&lt;br /&gt;
&lt;br /&gt;
=== Autotest-guide ===&lt;br /&gt;
[[Quality/QA-tools/Autotest-guide|Autotest-Guide]] - A guide for setting up automated testing environment.&lt;br /&gt;
&lt;br /&gt;
=== OTS - Open Testing System ===&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS|OTS]] provides the infrastructure for automatic test execution.&lt;br /&gt;
&lt;br /&gt;
=== QA-tools user experience ===&lt;br /&gt;
[[Quality/QA-tools/User_Experience| QA-tools user experience]] - Main page for QA-tools user experience work&lt;br /&gt;
&lt;br /&gt;
=== Tool descriptions ===&lt;br /&gt;
&lt;br /&gt;
Tools maintained by MeeGo QA-tools&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Testrunner-lite | testrunner-lite]] - Generic test execution tool&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Testrunner-ui | testrunner-ui]] - Graphical user interface for testrunner-lite&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Test-definition | test-definition]] - XML schema for test plan validation&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Eat | eat]] - Configuration package for test automation&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Min | min]] - Test framework&lt;br /&gt;
&lt;br /&gt;
== Procedures and best practices ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/TestabilityChecklist|Feature Testability Checklist]]&lt;br /&gt;
** The basic intent of the feature review is to make sure that all features/requirements defined for MeeGo release are '''testable'''. The target is to map test cases in Distro testing against requirements, so we can determine whether features are '''done'''. This checklist / guideline should be used when reviewing MeeGo's features. Review comments will be given based on this checklist.&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QualityConsiderations|Quality Considerations / Testing Quality Characteristics]]&lt;br /&gt;
** Some ideas around testing quality characteristics hopefully helping you identify what kind of things could be checked from applications - can be used as a frame to define test considerations – as a set of logical test cases - for applications targeting to run on MeeGo.&lt;br /&gt;
&lt;br /&gt;
*[[Quality/TestSuite/MCTS/MCTS_Development_Guideline | MeeGo Core Test Suites Development Guidelines]] &amp;lt;br&amp;gt;&lt;br /&gt;
*[[MeeGo Core Test Suites Packaging draft]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Help us by specifying and executing tests &lt;br /&gt;
* [[TestPlanTemplate|Test Plan Template]] -- WORK IN PROGRESS, please contribute&lt;br /&gt;
** high level test cases (aka test ideas) and low level test cases shall be listed in detailed test plans&lt;br /&gt;
** Some ideas/intent for Test Execution management can be found from [[Talk:TestPlanTemplate]]&lt;br /&gt;
* [[TestReportTemplateCollection|Test Report Template]] -- WORK IN PROGRESS, pls. contribute&lt;br /&gt;
* [[TestCaseTemplate|Test Case Template]] -- WORK IN PROGRESS, pls. contribute&lt;br /&gt;
* [[Quality/TestDesignProcessAndGuideline| Test Design Process and Guideline]] -- WORK IN PROGRESS, please contribute&lt;br /&gt;
* [[Quality/TestSetGuideline| Test Set Guideline]]&lt;br /&gt;
&lt;br /&gt;
=== MeeGo Core Testing ===&lt;br /&gt;
* [[/TestPlan/MeeGo Core Test Plan | MeeGo Core Test Plan]]&lt;br /&gt;
* [[/TestabilityStatus | Core OS Testability Status]]&lt;br /&gt;
* [[/TestSuite/MCTS | MeeGo Core Test Suite (MCTS)]]&lt;br /&gt;
* [[/CoreTestReports | Core Testing Reports]]&lt;br /&gt;
* [[/Defects/Core | Core Defects]]&lt;br /&gt;
&lt;br /&gt;
=== MeeGo Handset Testing ===&lt;br /&gt;
* [http://wiki.meego.com/Quality/1.1HandsetUXTestPlan MeeGo HandSet UX Test Plan]&lt;br /&gt;
** [http://wiki.meego.com/Quality/HandSetUXRamp-Up1.1 QA Ramp-Up Schedule]&lt;br /&gt;
* [http://wiki.meego.com/Quality/HandsetTestabilityStatus Testability Status Report]&lt;br /&gt;
* [http://wiki.meego.com/Quality/HandsetTestSuite Test Suite]&lt;br /&gt;
* [http://wiki.meego.com/Quality/HandsetTestReport Test Report]&lt;br /&gt;
&lt;br /&gt;
=== MeeGo Netbook Testing ===&lt;br /&gt;
&lt;br /&gt;
==== Test Suites &amp;amp; Utilities ====&lt;br /&gt;
[[Quality/Netbook_Test_Suite_and_Utilities|Test Suites and Utilities]] - Here are some available test suites and utilities. Welcome download and contribute.&lt;br /&gt;
&lt;br /&gt;
==== MeeGo 1.0 Software Update Testing ====&lt;br /&gt;
* [[1.0SWUpdateTestPlan|Test Plan]] describes the test strategy, test approach, checkpoints and etc of software update testing for  MeeGo 1.0 Netbook&lt;br /&gt;
* Test Report &lt;br /&gt;
** Welcome your contribution! You are encouraged to refer to the [[1.0SWUpdateTestPlan|Test Plan]] and follow [[TestReportTemplateCollection|Test Report Template]]&lt;br /&gt;
** [[1.0SWUpdateTestReport|Test Report Archive]]: Please upload your test reports here.&lt;br /&gt;
&lt;br /&gt;
==== MeeGo 1.1 ====&lt;br /&gt;
* Test Plan&lt;br /&gt;
* Test Suite&lt;br /&gt;
* [[1.1NetbookTestReport|Test Report]]&lt;br /&gt;
&lt;br /&gt;
=== MeeGo SDK Testing ===&lt;br /&gt;
* [[SDKTestPlan|Test Plan]] describes the test strategy, test approach, checkpoints and etc of MeeGo SDK &lt;br /&gt;
* Test Report&lt;br /&gt;
&lt;br /&gt;
== Defect tracking ==&lt;br /&gt;
* [[/Bugtriage | MeeGo Bug Triage]]&lt;br /&gt;
* [http://wiki.meego.com/Bugzilla/how-report-bugs How to report bugs]&lt;br /&gt;
* [http://wiki.meego.com/MeeGoBugzilla_Customization Bugzilla customized features]&lt;br /&gt;
&lt;br /&gt;
== Compliance Program ==&lt;br /&gt;
[[Quality/Compliance | MeeGo Compliance Program]] - the compliance spec (initially)&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Quality</id>
		<title>Quality</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Quality"/>
				<updated>2010-09-03T22:37:28Z</updated>
		
		<summary type="html">&lt;p&gt;Mwichmann: /* Compliance Program */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Quality ==&lt;br /&gt;
&lt;br /&gt;
WORK IN PROGRESS - ''This page is placeholder collecting MeeGo Quality Assurance material - please refer to [http://meego.com/community meego-community] and [http://forum.meego.com forum.meego.com] for QA discussion''&lt;br /&gt;
&lt;br /&gt;
== QA tools team ==&lt;br /&gt;
&lt;br /&gt;
=== MeeGo QA tools team ===&lt;br /&gt;
&lt;br /&gt;
Meet quality assurance team and participate in activities. You are most welcome!&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools|MeeGo QA tools team]]&lt;br /&gt;
&lt;br /&gt;
=== Test packaging ===&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Test_Packaging|Test packaging]] is mechanism to wrap any tests in rpm packages to automate execution.&lt;br /&gt;
&lt;br /&gt;
=== Test Case Management Tool ===&lt;br /&gt;
&lt;br /&gt;
[[Quality/testmanagementtool|Test Case Management Tool]] - we will setup and evaluate testlink for test case management.&lt;br /&gt;
&lt;br /&gt;
=== Autotest-guide ===&lt;br /&gt;
[[Quality/QA-tools/Autotest-guide|Autotest-Guide]] - A guide for setting up automated testing environment.&lt;br /&gt;
&lt;br /&gt;
=== OTS - Open Testing System ===&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/OTS|OTS]] provides the infrastructure for automatic test execution.&lt;br /&gt;
&lt;br /&gt;
=== QA-tools user experience ===&lt;br /&gt;
[[Quality/QA-tools/User_Experience| QA-tools user experience]] - Main page for QA-tools user experience work&lt;br /&gt;
&lt;br /&gt;
=== Tool descriptions ===&lt;br /&gt;
&lt;br /&gt;
Tools maintained by MeeGo QA-tools&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Testrunner-lite | testrunner-lite]] - Generic test execution tool&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Testrunner-ui | testrunner-ui]] - Graphical user interface for testrunner-lite&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Test-definition | test-definition]] - XML schema for test plan validation&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Eat | eat]] - Configuration package for test automation&lt;br /&gt;
&lt;br /&gt;
[[Quality/QA-tools/Min | min]] - Test framework&lt;br /&gt;
&lt;br /&gt;
== Procedures and best practices ==&lt;br /&gt;
&lt;br /&gt;
* [[Quality/TestabilityChecklist|Feature Testability Checklist]]&lt;br /&gt;
** The basic intent of the feature review is to make sure that all features/requirements defined for MeeGo release are '''testable'''. The target is to map test cases in Distro testing against requirements, so we can determine whether features are '''done'''. This checklist / guideline should be used when reviewing MeeGo's features. Review comments will be given based on this checklist.&lt;br /&gt;
&lt;br /&gt;
* [[Quality/QualityConsiderations|Quality Considerations / Testing Quality Characteristics]]&lt;br /&gt;
** Some ideas around testing quality characteristics hopefully helping you identify what kind of things could be checked from applications - can be used as a frame to define test considerations – as a set of logical test cases - for applications targeting to run on MeeGo.&lt;br /&gt;
&lt;br /&gt;
*[[Quality/TestSuite/MCTS/MCTS_Development_Guideline | MeeGo Core Test Suites Development Guidelines]] &amp;lt;br&amp;gt;&lt;br /&gt;
*[[MeeGo Core Test Suites Packaging draft]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Help us by specifying and executing tests &lt;br /&gt;
* [[TestPlanTemplate|Test Plan Template]] -- WORK IN PROGRESS, please contribute&lt;br /&gt;
** high level test cases (aka test ideas) and low level test cases shall be listed in detailed test plans&lt;br /&gt;
** Some ideas/intent for Test Execution management can be found from [[Talk:TestPlanTemplate]]&lt;br /&gt;
* [[TestReportTemplateCollection|Test Report Template]] -- WORK IN PROGRESS, pls. contribute&lt;br /&gt;
* [[TestCaseTemplate|Test Case Template]] -- WORK IN PROGRESS, pls. contribute&lt;br /&gt;
* [[Quality/TestDesignProcessAndGuideline| Test Design Process and Guideline]] -- WORK IN PROGRESS, please contribute&lt;br /&gt;
* [[Quality/TestSetGuideline| Test Set Guideline]]&lt;br /&gt;
&lt;br /&gt;
=== MeeGo Core Testing ===&lt;br /&gt;
* [[/TestPlan/MeeGo Core Test Plan | MeeGo Core Test Plan]]&lt;br /&gt;
* [[/TestabilityStatus | Core OS Testability Status]]&lt;br /&gt;
* [[/TestSuite/MCTS | MeeGo Core Test Suite (MCTS)]]&lt;br /&gt;
* [[/CoreTestReports | Core Testing Reports]]&lt;br /&gt;
* [[/Defects/Core | Core Defects]]&lt;br /&gt;
&lt;br /&gt;
=== MeeGo Handset Testing ===&lt;br /&gt;
* [http://wiki.meego.com/Quality/1.1HandsetUXTestPlan MeeGo HandSet UX Test Plan]&lt;br /&gt;
** [http://wiki.meego.com/Quality/HandSetUXRamp-Up1.1 QA Ramp-Up Schedule]&lt;br /&gt;
* [http://wiki.meego.com/Quality/HandsetTestabilityStatus Testability Status Report]&lt;br /&gt;
* [http://wiki.meego.com/Quality/HandsetTestSuite Test Suite]&lt;br /&gt;
* [http://wiki.meego.com/Quality/HandsetTestReport Test Report]&lt;br /&gt;
&lt;br /&gt;
=== MeeGo Netbook Testing ===&lt;br /&gt;
&lt;br /&gt;
==== Test Suites &amp;amp; Utilities ====&lt;br /&gt;
[[Quality/Netbook_Test_Suite_and_Utilities|Test Suites and Utilities]] - Here are some available test suites and utilities. Welcome download and contribute.&lt;br /&gt;
&lt;br /&gt;
==== MeeGo 1.0 Software Update Testing ====&lt;br /&gt;
* [[1.0SWUpdateTestPlan|Test Plan]] describes the test strategy, test approach, checkpoints and etc of software update testing for  MeeGo 1.0 Netbook&lt;br /&gt;
* Test Report &lt;br /&gt;
** Welcome your contribution! You are encouraged to refer to the [[1.0SWUpdateTestPlan|Test Plan]] and follow [[TestReportTemplateCollection|Test Report Template]]&lt;br /&gt;
** [[1.0SWUpdateTestReport|Test Report Archive]]: Please upload your test reports here.&lt;br /&gt;
&lt;br /&gt;
==== MeeGo 1.1 ====&lt;br /&gt;
* Test Plan&lt;br /&gt;
* Test Suite&lt;br /&gt;
* [[1.1NetbookTestReport|Test Report]]&lt;br /&gt;
&lt;br /&gt;
=== MeeGo SDK Testing ===&lt;br /&gt;
* [[SDKTestPlan|Test Plan]] describes the test strategy, test approach, checkpoints and etc of MeeGo SDK &lt;br /&gt;
* Test Report&lt;br /&gt;
&lt;br /&gt;
== Defect tracking ==&lt;br /&gt;
* [[/Bugtriage | MeeGo Bug Triage]]&lt;br /&gt;
* [http://wiki.meego.com/Bugzilla/how-report-bugs How to report bugs]&lt;br /&gt;
* [http://wiki.meego.com/MeeGoBugzilla_Customization Bugzilla customized features]&lt;br /&gt;
&lt;br /&gt;
== Compliance Program ==&lt;br /&gt;
[[Quality/Compliance | MeeGo Compliance Program]] the compliance spec (initially)&lt;/div&gt;</summary>
		<author><name>Mwichmann</name></author>	</entry>

	</feed>