Contents |
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.
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.
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.
The tools will generate report files (in HTML currently) to show the result.
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.
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 devel:tools:building/meego-compliance-tools.
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):
The packages appear in the tools repository at 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:
deb http://repo/meego.com/MeeGo/tools/repos/ubuntu/10.10/ ./
For distros which use rpms natively, there are three packages available:
For distros which use debs natively, only the meego-compliance-tools package is needed.
The tools can also be installed from source (which is all Python). After fetching the code, under the code directory, run:
$ [sudo] make install
The source code is hosted at:
meego-compliance-tools@gitorious.org
A typical fetch would be:
git clone git://gitorious.org/meego-developer-tools/meego-compliance-tools.git
To prepare the images used in compliance tools, you need 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.
Executes compliance checking for distributions build from the MeeGo code base. The following features are supported:
For compliance checking for MeeGo applications, the following features are supported:
Before using the tools, the reference image needs to be created by using MIC2 (version 0.22.0 or later):
$ [sudo] mic-image-creator --run-mode=0 --cache=mycachedir --format=fs --config=<ks file> --package=tar.bz2 --include-source
The sample ks file is at /usr/share/compliance-tools/share dir after installation or can be downloaded at:
Meego-1.1:MeeGo-minimal-compliance-1.0.99.1.ks Meego-1.2:MeeGo-minimal-compliance-1.1.99.7.ks
The sample core list file is at /usr/share/compliance-tools/share dir after installation or can be downloaded at:
Meego-1.1:Core-list-1.0.99.1 Meego-1.2:Core-list-1.1.99.7
And the ks file and core list should be synced with and conform to the latest MeeGo compliance spec.
For application compliance checking, the source packages are not needed, so the --include-source option can be omitted.
In future, official pre-made images will be available, when this occurs the appropriate image should be downloaded instead of constructed.
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 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 specific instructions and use this directory as the command line input.
The command "dist_compliance" is for checking compliance of MeeGo devices, or distributions.
Usage: [sudo] dist_compliance [options]
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-c CORELIST, --corelist=CORELIST
File containing MeeGo Core package list
-r REF, --reference=REF
Path to reference image or unpacked directory
-t TGT, --target=TGT Path to target image or unpacked directory
-o OUTDIR, --outdir=OUTDIR
Output directory of report
-d, --debug Save intermediate log data for debugging
The command "app_compliance" is for applications compliance checking.
Usage: [sudo] app_compliance [options] <app-rpm>
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-r REFIMAGE, --refimage=REFIMAGE
Path to reference image
-c CORELIST, --corelist=CORELIST
File containing MeeGo Core package list
-m MEEGO_API_PKGLIST, --meego_api_pkglist=MEEGO_API_PKGLIST
File containing MeeGo API package list
-o OUTDIR, --outdir=OUTDIR
Output directory of report
-d, --debug Save intermediate log data for debugging
The sample MeeGo API package list file can be downloaded at:
MeeGo-API-pkglist.txt
Currently, the output of checking tools will be stored in HTML files.
A distribution check report will look like this:
An application check report will look like this:
If problems were found in the compliance tools, please file bugs at bugs.meego.com. There is a top-level category for compliance - use "MeeGo Spec and Compliance", product "Compliance Tools".