<?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/Kevinwang&amp;feed=atom&amp;limit=50&amp;target=Kevinwang&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/Kevinwang&amp;feed=atom&amp;limit=50&amp;target=Kevinwang&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Special:Contributions/Kevinwang"/>
		<updated>2013-05-23T11:20:36Z</updated>
		<subtitle>From MeeGo wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.meego.com/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Main_Page"/>
				<updated>2011-07-14T08:26:00Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* MeeGo Project Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MeeGo Project Functions ==&lt;br /&gt;
* [[Community Office]]&lt;br /&gt;
* [[Localization team|Localization]]&lt;br /&gt;
* [http://meego.com/about/governance/program-office Program Office]&lt;br /&gt;
* [[Core_OS_Program | Core OS Program]]&lt;br /&gt;
* [[Handset_Program | Handset UX Program]]&lt;br /&gt;
* [[In-vehicle | In Vehicle Infotainment - IVI]]&lt;br /&gt;
* [[Product Management]]&lt;br /&gt;
* [[Quality]]&lt;br /&gt;
* [[Distribution]]&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [http://meego.com/about/governance/ui-design User Interface Design]&lt;br /&gt;
* [[SDK]]&lt;br /&gt;
* [[Architecture]]&lt;br /&gt;
* [[Meego IT]]&lt;br /&gt;
&lt;br /&gt;
= User =&lt;br /&gt;
&lt;br /&gt;
* [[MeeGo Netbook FAQ]]&lt;br /&gt;
* [http://meego.com/devices/netbook/installing-meego-your-netbook Install MeeGo on your netbook]&lt;br /&gt;
* [[Devices|Supported devices]]&lt;br /&gt;
* [[Install MeeGo from Hard Disk]]&lt;br /&gt;
&lt;br /&gt;
= Developer =&lt;br /&gt;
== Developer Guide ==&lt;br /&gt;
&lt;br /&gt;
* [[SDK/Docs/1.1|Developer Guide for MeeGo 1.1]]&lt;br /&gt;
* [[SDK/Docs/1.0|Developer Guide for MeeGo 1.0]]&lt;br /&gt;
* [[Build_Infrastructure | Build Infrastructure]]&lt;br /&gt;
* [[MeeGo Porting Guide]]&lt;br /&gt;
* [[QML tutorials]] - Some tutorials to help get started with QML, the Qt Modelling Language.&lt;br /&gt;
* [http://mxr.meego.com/ MeeGo cross reference] - Index of MeeGo source code&lt;br /&gt;
* [[Brief_git_guide|Brief git guide]] - An overview of git as well as an example about how to use gitorious to do a merge request.&lt;br /&gt;
&lt;br /&gt;
Other documents:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Document&lt;br /&gt;
! Variety (Version)&lt;br /&gt;
! Architectures&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[ARM|ARM based devices (N900, BeagleBoard, PandaBoard, Snowball)]]&lt;br /&gt;
|All&lt;br /&gt;
|ARM&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo_1.0_Netbook_VirtualBox|VirtualBox]]&lt;br /&gt;
|Netbook (1.0)&lt;br /&gt;
|Intel&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo SDK on Windows with VirtualBox]]&lt;br /&gt;
|All&lt;br /&gt;
|All&lt;br /&gt;
|-&lt;br /&gt;
|Tips for [[Developing With The Aava]]&lt;br /&gt;
|Handset/Aava&lt;br /&gt;
|Intel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release Process ==&lt;br /&gt;
The MeeGo Release Process includes:&lt;br /&gt;
* [[Release_Engineering/Process|Release process and work flow]]&lt;br /&gt;
* [[Release_Engineering/Release_Timeline|MeeGo releases every 6 months]]&lt;br /&gt;
* [[Release_Engineering/Process|Nightly builds for developers and weekly releases will be available]]&lt;br /&gt;
&lt;br /&gt;
== MeeGo Components ==&lt;br /&gt;
* [[MeeGo_UX_Components|MeeGo Components]] - Supported common QML components&lt;br /&gt;
&lt;br /&gt;
= Community =&lt;br /&gt;
&lt;br /&gt;
== Contributing to MeeGo ==&lt;br /&gt;
* Read our [[Community guidelines]]: [[Wiki contribution guidelines|Wiki]], [[Mailing list guidelines|mailing list]], [[Forum/Guidelines|forum]], [[Gitorious_guidelines|Gitorious guidelines]] and [[Community guidelines|more]].&lt;br /&gt;
* [[Community communication|Participate in our forums, mailing lists, and more]].&lt;br /&gt;
* [http://meego.com/about/contribution-guidelines Contribute to MeeGo].&lt;br /&gt;
* [[Build_Infrastructure/Community_Builder|Building applications]] for MeeGo&lt;br /&gt;
&lt;br /&gt;
See also [[Who's who]].&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
&lt;br /&gt;
[[MeeGo-Meeting IRC Schedule]]&lt;br /&gt;
&lt;br /&gt;
The following groups have regular meetings, see their respective pages for details.&lt;br /&gt;
&lt;br /&gt;
* [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Community Office/Meetings|Community Office meetings]]&lt;br /&gt;
* [[Localization team]]&lt;br /&gt;
&lt;br /&gt;
Regional Activities.&lt;br /&gt;
* [[Local MeeGo Networks]]&lt;br /&gt;
&lt;br /&gt;
== Bi-Annual MeeGo Conference ==&lt;br /&gt;
&lt;br /&gt;
'''Upcoming Conferences'''&lt;br /&gt;
* [[MeeGo Conference Spring 2011|Spring 2011: May 23 - 25 at the Hyatt Regency, San Francisco]]&lt;br /&gt;
* [[MeeGo Conference Fall 2011|Fall 2011: November Date TBD in Europe]]&lt;br /&gt;
&lt;br /&gt;
'''Past Conference Wrap-Up Information'''&lt;br /&gt;
* [[MeeGo_Conference_2010|Fall 2010: November 15 - 17 in Dublin]]&lt;br /&gt;
&lt;br /&gt;
== Structure and Governance ==&lt;br /&gt;
&lt;br /&gt;
MeeGo is an open source project led by the MeeGo Technical Steering Group (TSG). The governance model is based on meritocracy and the best practices and values of the Open Source culture. The MeeGo project lives under the auspices of the Linux Foundation. &lt;br /&gt;
&lt;br /&gt;
* [http://meego.com/about/governance MeeGo Project Structure and Governance Overview]&lt;br /&gt;
* Bi-weekly [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Working Group Process]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[MeeGo FAQ]]&lt;br /&gt;
* [[Glossary|Glossary and Acronyms]]&lt;br /&gt;
* [[Community guidelines]]&lt;br /&gt;
* [[Special:PopularPages|Popular Wiki Pages]]&lt;br /&gt;
* [[Special:MostLinkedPages|Most Linked-to Pages]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Creation_For_Beginners</id>
		<title>Image Creation For Beginners</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Creation_For_Beginners"/>
				<updated>2011-07-08T14:26:32Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* STEP 4 - Create MeeGo LiveUSB Image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MeeGo Image Creator is the tool we use to create MeeGo images. Here are the simple steps on how to create a MeeGo image. &lt;br /&gt;
For more in-depth information, go to the main Image Creator developer's guide: [[Image Creation]]&lt;br /&gt;
__TOC__&lt;br /&gt;
== Creating a MeeGo Image ==&lt;br /&gt;
&lt;br /&gt;
===STEP 1 - Install Meego Image Creator (MIC)===&lt;br /&gt;
&lt;br /&gt;
To install it:&lt;br /&gt;
* on OpenSuse&lt;br /&gt;
 sudo zypper addrepo http://repo.meego.com/MeeGo/tools/repos/opensuse/11.4/ meego-tools&lt;br /&gt;
 sudo zypper refresh&lt;br /&gt;
 sudo zypper install mic2&lt;br /&gt;
* on Fedora&lt;br /&gt;
add repo like this:&lt;br /&gt;
 # cat &amp;lt;&amp;lt;REPO &amp;gt; /etc/yum.repos.d/meego-tools.repo&lt;br /&gt;
 [meego-tools]&lt;br /&gt;
 name=MeeGo Tools for Fedora&lt;br /&gt;
 baseurl=http://repo.meego.com/MeeGo/tools/repos/fedora/\$releasever&lt;br /&gt;
 enabled=1&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
 REPO&lt;br /&gt;
add gpg key:&lt;br /&gt;
 # gpg2 --keyserver subkeys.pgp.net --recv 0BC7BEC479FC1F8A&lt;br /&gt;
 # gpg2 --export --armor 0BC7BEC479FC1F8A &amp;gt; /etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
Install mic2: &lt;br /&gt;
 # yum install mic2&lt;br /&gt;
* on MeeGo&lt;br /&gt;
 sudo zypper addrepo http://repo.meego.com/MeeGo/tools/repos/meego/1.1/ meego-tools&lt;br /&gt;
 sudo zypper refresh&lt;br /&gt;
 sudo zypper install mic2&lt;br /&gt;
* on Ubuntu or Debian:&lt;br /&gt;
For Ubuntu 10.10, add the below line to /etc/apt/sources.list &lt;br /&gt;
 deb http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.10/ /&lt;br /&gt;
For Debian 5.0, add the below line to /etc/apt/sources.list &lt;br /&gt;
 deb http://repo.meego.com/MeeGo/tools/repos/debian/5.0/ /&lt;br /&gt;
Install mic2:&lt;br /&gt;
 $sudo apt-get update&lt;br /&gt;
 $sudo apt-get install mic2&lt;br /&gt;
* Download MIC source from Gitorious:&lt;br /&gt;
http://meego.gitorious.org/meego-developer-tools/image-creator&lt;br /&gt;
&lt;br /&gt;
More on installation dependencies and options on downloading MIC, go to the 'Installation' section here: [[Image_Creation#Installation_Requirements]]&lt;br /&gt;
&lt;br /&gt;
===STEP 2 - Get MeeGo .ks File===&lt;br /&gt;
&lt;br /&gt;
KickStart (.ks) configuration files are passed to MIC to create images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
The official MeeGo .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release: http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the MeeGo images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
For details about how to modify the ks file, please refer: http://wiki.meego.com/Image_Configurations_-_KickStart_Files&lt;br /&gt;
&lt;br /&gt;
===STEP 3 - Create MeeGo Livecd Image===&lt;br /&gt;
&lt;br /&gt;
MIC has to be run with root privileges using 'sudo'.&lt;br /&gt;
&lt;br /&gt;
Here is the command to create a MeeGo livecd image you can burn onto a CD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=livecd --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.2-default-XX.iso is created.  This ISO image is a hybrid image and can be either written to a disk device or burned onto a cd. &lt;br /&gt;
&lt;br /&gt;
===STEP 4 - Create MeeGo LiveUSB Image===&lt;br /&gt;
&lt;br /&gt;
To create a MeeGo liveusb image that you can transfer to a USB stick.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=liveusb --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.2-default-XX.usbimg will be created. To burn it onto a USB stick, run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-writer meego-1.2-default-XX.usbimg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This image has a FAT file system and can be mounted easily on Windows and other OSes.&lt;br /&gt;
&lt;br /&gt;
== Configure Proxy and Other Variables ==&lt;br /&gt;
&lt;br /&gt;
~/.mic2.conf is a configuration file that can make your life easier by specifying proxy settings, cache directories, and other variables that you normally would have to re-type in your command-line. &lt;br /&gt;
&lt;br /&gt;
Copy and paste this into a file called:  ~/.mic2.conf&lt;br /&gt;
&lt;br /&gt;
Replace with your own relevant values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[main]&lt;br /&gt;
cachedir=/home/user1/mycache&lt;br /&gt;
tmpdir=/home/user1/mystorage/tmp&lt;br /&gt;
outdir=/home/user1/mystorage&lt;br /&gt;
proxy=http://my.proxy.com:911/&lt;br /&gt;
no_proxy=localhost,127.0.0.0/8,.mysite.com,172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''cachedir'' = directory where the cached repo(s) will reside.  With this variable set, you do not need to pass the --cache flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''tmpdir'' = temporary directory used by mic2 when creating images.  With this variable set, you do not need to pass the --tmpdir flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''outdir'' = where your images will reside once they are created.  With this variable set, you do not need to pass the --outdir flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''proxy'' = specify your proxy if you're behind a behind a firewall.&lt;br /&gt;
&lt;br /&gt;
''no_proxy'' = specify what domains should not sure the proxy setting.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' When specifying proxy and no_proxy, you do not need to use the --proxy flag in your .ks files when referring to repos.&lt;br /&gt;
&lt;br /&gt;
'''---FOR ADDITIONAL INFORMATION ON MIC, PLEASE VISIT THE MIC DEVELOPER'S GUIDE HERE: [[Image_Creation]]---'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another language version of this page&lt;br /&gt;
&lt;br /&gt;
* [[适合新手的镜像制作-_-简体中文]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-07T23:24:41Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
[[File:Distribution-process-overview-with-obs.png|thumb|250px|right|The development process when using OBS]]&lt;br /&gt;
[[File:Distribution-process-without-obs.png|thumb|250px|right|The development process w/o using OBS]]&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is using [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)] to manage and build packages. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Casual contributors can work without using OBS, and submit your changes back into MeeGo through the [http://lists.meego.com/mailman/listinfo mailing list] or work with the package maintainers to submit changes.&lt;br /&gt;
&lt;br /&gt;
The overall processes of development with and without an OBS account are shown in the right figures. Detail description of the processes can be found below.&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|OBS WebUI: Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|OBS WebUI: Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Submission to MeeGo ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release_Infrastructure/BOSS|Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-07T23:23:59Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
[[File:Distribution-process-overview-with-obs.png|thumb|250px|right|The development process when using OBS]]&lt;br /&gt;
[[File:Distribution-process-without-obs.png|thumb|250px|right|The development process w/o using OBS]]&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is using [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)] to manage and build packages. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Casual contributors can work without using OBS, and submit your changes back into MeeGo through the [http://lists.meego.com/mailman/listinfo mailing list] or submit the changes to the package maintainer.&lt;br /&gt;
&lt;br /&gt;
The overall processes of development with and without an OBS account are shown in the right figures. Detail description of the processes can be found below.&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|OBS WebUI: Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|OBS WebUI: Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Submission to MeeGo ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release_Infrastructure/BOSS|Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-07T13:07:08Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Image Creation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
[[File:Distribution-process-overview-with-obs.png|thumb|250px|right|The development process when using OBS]]&lt;br /&gt;
[[File:Distribution-process-without-obs.png|thumb|250px|right|The development process w/o using OBS]]&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is using [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)] to manage and build packages. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Casual contributors can work without using OBS, and submit your changes back into MeeGo through the [http://lists.meego.com/mailman/listinfo mailing list].&lt;br /&gt;
&lt;br /&gt;
The overall processes of development with and without an OBS account are shown in the right figures. Detail description of the processes can be found below.&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|OBS WebUI: Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|OBS WebUI: Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Submission to MeeGo ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release_Infrastructure/BOSS|Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Creation_For_Beginners</id>
		<title>Image Creation For Beginners</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Creation_For_Beginners"/>
				<updated>2011-07-07T13:05:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MeeGo Image Creator is the tool we use to create MeeGo images. Here are the simple steps on how to create a MeeGo image. &lt;br /&gt;
For more in-depth information, go to the main Image Creator developer's guide: [[Image Creation]]&lt;br /&gt;
__TOC__&lt;br /&gt;
== Creating a MeeGo Image ==&lt;br /&gt;
&lt;br /&gt;
===STEP 1 - Install Meego Image Creator (MIC)===&lt;br /&gt;
&lt;br /&gt;
To install it:&lt;br /&gt;
* on OpenSuse&lt;br /&gt;
 sudo zypper addrepo http://repo.meego.com/MeeGo/tools/repos/opensuse/11.4/ meego-tools&lt;br /&gt;
 sudo zypper install mic2&lt;br /&gt;
* on Fedora&lt;br /&gt;
add repo like this:&lt;br /&gt;
 # cat &amp;lt;&amp;lt;REPO &amp;gt; /etc/yum.repos.d/meego-tools.repo&lt;br /&gt;
 [meego-tools]&lt;br /&gt;
 name=MeeGo Tools for Fedora&lt;br /&gt;
 baseurl=http://repo.meego.com/MeeGo/tools/repos/fedora/\$releasever&lt;br /&gt;
 enabled=1&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
 REPO&lt;br /&gt;
add gpg key:&lt;br /&gt;
 # gpg2 --keyserver subkeys.pgp.net --recv 0BC7BEC479FC1F8A&lt;br /&gt;
 # gpg2 --export --armor 0BC7BEC479FC1F8A &amp;gt; /etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
Install mic2: &lt;br /&gt;
 # yum install mic2&lt;br /&gt;
* on MeeGo&lt;br /&gt;
 sudo zypper addrepo http://repo.meego.com/MeeGo/tools/repos/meego/1.1/ meego-tools&lt;br /&gt;
 sudo zypper install mic2&lt;br /&gt;
* on Ubuntu or Debian:&lt;br /&gt;
For Ubuntu 10.10, add the below line to /etc/apt/sources.list &lt;br /&gt;
 deb http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.10/ /&lt;br /&gt;
For Debian 5.0, add the below line to /etc/apt/sources.list &lt;br /&gt;
 deb http://repo.meego.com/MeeGo/tools/repos/debian/5.0/ /&lt;br /&gt;
Install mic2:&lt;br /&gt;
 $sudo apt-get update&lt;br /&gt;
 $sudo apt-get install mic2&lt;br /&gt;
* Download MIC source from Gitorious:&lt;br /&gt;
http://meego.gitorious.org/meego-developer-tools/image-creator&lt;br /&gt;
&lt;br /&gt;
More on installation dependencies and options on downloading MIC, go to the 'Installation' section here: [[Image_Creation#Installation_Requirements]]&lt;br /&gt;
&lt;br /&gt;
===STEP 2 - Get MeeGo .ks File===&lt;br /&gt;
&lt;br /&gt;
KickStart (.ks) configuration files are passed to MIC to create images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
The official MeeGo .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release: http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the MeeGo images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
For details about how to modify the ks file, please refer: http://wiki.meego.com/Image_Configurations_-_KickStart_Files&lt;br /&gt;
&lt;br /&gt;
===STEP 3 - Create MeeGo Livecd Image===&lt;br /&gt;
&lt;br /&gt;
MIC has to be run with root privileges using 'sudo'.&lt;br /&gt;
&lt;br /&gt;
Here is the command to create a MeeGo livecd image you can burn onto a CD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=livecd --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.2-default-XX.iso is created.  This ISO image is a hybrid image and can be either written to a disk device or burned onto a cd. &lt;br /&gt;
&lt;br /&gt;
===STEP 4 - Create MeeGo LiveUSB Image===&lt;br /&gt;
&lt;br /&gt;
To create a MeeGo liveusb image that you can transfer to a USB stick.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=liveusb --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.2-default-XX.usbimg will be created. To burn it onto a USB stick, run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-writer meego-1.2-default-XX.usbimg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This image has a FAT file system and can be mounted easily on Windows and other OSes. &lt;br /&gt;
&lt;br /&gt;
'''---FOR ADDITIONAL INFORMATION ON MIC, PLEASE VISIT THE MIC DEVELOPER'S GUIDE HERE: [[Image Creation]]---'''&lt;br /&gt;
&lt;br /&gt;
== Configure Proxy and Other Variables ==&lt;br /&gt;
&lt;br /&gt;
~/.mic2.conf is a configuration file that can make your life easier by specifying proxy settings, cache directories, and other variables that you normally would have to re-type in your command-line. &lt;br /&gt;
&lt;br /&gt;
Copy and paste this into a file called:  ~/.mic2.conf&lt;br /&gt;
&lt;br /&gt;
Replace with your own relevant values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[main]&lt;br /&gt;
cachedir=/home/user1/mycache&lt;br /&gt;
tmpdir=/home/user1/mystorage/tmp&lt;br /&gt;
outdir=/home/user1/mystorage&lt;br /&gt;
proxy=http://my.proxy.com:911/&lt;br /&gt;
no_proxy=localhost,127.0.0.0/8,.mysite.com,172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''cachedir'' = directory where the cached repo(s) will reside.  With this variable set, you do not need to pass the --cache flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''tmpdir'' = temporary directory used by mic2 when creating images.  With this variable set, you do not need to pass the --tmpdir flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''outdir'' = where your images will reside once they are created.  With this variable set, you do not need to pass the --outdir flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''proxy'' = specify your proxy if you're behind a behind a firewall.&lt;br /&gt;
&lt;br /&gt;
''no_proxy'' = specify what domains should not sure the proxy setting.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' When specifying proxy and no_proxy, you do not need to use the --proxy flag in your .ks files when referring to repos.&lt;br /&gt;
&lt;br /&gt;
'''---FOR ADDITIONAL INFORMATION ON MIC, PLEASE VISIT THE MIC DEVELOPER'S GUIDE HERE: [[Image_Creation]]---'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another language version of this page&lt;br /&gt;
&lt;br /&gt;
* [[适合新手的镜像制作-_-简体中文]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Creation</id>
		<title>Image Creation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Creation"/>
				<updated>2011-07-07T12:38:40Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the main Image Creator developer's guide.  For a more simplistic, step-by-step document, go to: [[Image Creation For Beginners]].&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
The tool used to create MeeGo images is called &amp;quot;MIC2&amp;quot; (to distinguish from obsolete MIC - Moblin Image Creator). MIC is composed of a series of tools to create images, convert images, chroot, etc. MIC2 is primarily based on Fedora livecd-tools and appliance-tools.&lt;br /&gt;
&lt;br /&gt;
With MIC2 tools, users can create different types of images for different purposes, including live CD images, live USB images, raw images for KVM, VMDK images for Vmware, vdi images for VirtualBox, loop images for IVI platforms, NAND images for Moorestown platforms, ubi images for N900, fs image for MeeGo developers. Also, users can use MIC2 tools to manipulate images, like transforming an image from a virtual machine to a live image, and providing a chroot environment based on an existing live image. With these features, developers can do development work on a host virtual machine running MeeGo or a Meego chroot environment, and transfer the resulting new live image to a target device for final debug/verification.&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
&lt;br /&gt;
MIC2 offers these major tools:&lt;br /&gt;
* mic-image-creator: create images. &lt;br /&gt;
* mic-image-convertor: convert a raw/vmdk/vdi/live image into a live image. &lt;br /&gt;
* mic-chroot: provide a MeeGo environment from a live/loop image for development, it also can translate that chroot file system into a live image.&lt;br /&gt;
* mic-image-writer: write a MeeGo image to a USB disk. This is a safe alternative to dd.&lt;br /&gt;
&lt;br /&gt;
The following support is provided:&lt;br /&gt;
&lt;br /&gt;
* Supports mainstream Linux distros. MIC2 has been thoroughly tested on these distributions:&lt;br /&gt;
** Meego&lt;br /&gt;
** Fedora (Fedora 13 and above)&lt;br /&gt;
** Opensuse (&amp;gt; OpenSUSE 11.3)&lt;br /&gt;
** Ubuntu &amp;gt; 10.04&lt;br /&gt;
* Supports various types of images: livecd, liveusb, loop, raw, vmdk, nandmrst, vdi, fs, ubi&lt;br /&gt;
* Supports image coversion from virtual machine/live images to live images.&lt;br /&gt;
* Uses kickstart (.ks) files for image creation. Through this, users can specify which software repositories to use, which packages to install, and basic system configuration directives.  Please refer to http://fedoraproject.org/wiki/Anaconda/Kickstart for more information about kickstart configuration files.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
We currently build MIC2 binary rpms/debs for many popular Linux distributions, including Fedora 13, Fedora 14, Fedora15, Ubuntu 10.04, Ubuntu 10.10, OpenSUSE 11.3, OpenSUSE 11.4, and Debian 5.0. Please go to http://repo.meego.com/tools/repos/ to get a repository URL corresponding to your Linux distribution, then add it into your repo or package source for installation and update later. If your distribution isn't in the support list, please install MIC2 from git source.&lt;br /&gt;
&lt;br /&gt;
=== Installation Requirements ===&lt;br /&gt;
&lt;br /&gt;
To use MIC2, your host machine (that will run mic2) must have Intel* Atom* or Intel* Core* 2 CPU (support for SSSE3), this is a hard requirement (ARM image is exceptional).&lt;br /&gt;
&lt;br /&gt;
On Fedora, openSUSE and MeeGo, mic2 depends directly on the following packages (they will be automatically installed on installing mic2):&lt;br /&gt;
&lt;br /&gt;
* util-linux&lt;br /&gt;
* coreutils&lt;br /&gt;
* python &amp;gt;= 2.5&lt;br /&gt;
* e2fsprogs&lt;br /&gt;
* dosfstools &amp;gt;= 2.11-8&lt;br /&gt;
* yum &amp;gt;= 3.2.24&lt;br /&gt;
* pykickstart &amp;gt;= 0.96&lt;br /&gt;
* python-iniparse&lt;br /&gt;
* syslinux &amp;gt;= 3.82&lt;br /&gt;
* curl&lt;br /&gt;
* kpartx&lt;br /&gt;
* parted&lt;br /&gt;
* device-mapper&lt;br /&gt;
* zlib&lt;br /&gt;
* rsync&lt;br /&gt;
* /usr/bin/mkisofs&lt;br /&gt;
* wget&lt;br /&gt;
* cpio&lt;br /&gt;
* isomd5sum&lt;br /&gt;
* gzip&lt;br /&gt;
* bzip2&lt;br /&gt;
* squashfs-tools &amp;gt;= 4.0&lt;br /&gt;
* btrfs-progs&lt;br /&gt;
* python-zypp &amp;gt;= 0.5.7&lt;br /&gt;
&lt;br /&gt;
On Debian and Ubuntu, mic2 depends on or recommands or suggests the following packages (they will be automatically installed if possible on installing mic2):&lt;br /&gt;
&lt;br /&gt;
Depends:&lt;br /&gt;
&lt;br /&gt;
* bzip2&lt;br /&gt;
* curl&lt;br /&gt;
* dbus&lt;br /&gt;
* dmsetup&lt;br /&gt;
* dosfstools&lt;br /&gt;
* e2fsprogs (&amp;gt;= 1.41),&lt;br /&gt;
* genisoimage&lt;br /&gt;
* kpartx&lt;br /&gt;
* parted&lt;br /&gt;
* psmisc&lt;br /&gt;
* python-iniparse&lt;br /&gt;
* python-pykickstart (&amp;gt;= 0.96) | pykickstart (&amp;gt;= 0.96),&lt;br /&gt;
* python-urlgrabber&lt;br /&gt;
* rsync&lt;br /&gt;
* squashfs-tools (&amp;gt;= 4.0)&lt;br /&gt;
* syslinux (&amp;gt;= 3.82)&lt;br /&gt;
* yum (&amp;gt;= 3.2)&lt;br /&gt;
&lt;br /&gt;
Recommends:&lt;br /&gt;
&lt;br /&gt;
* binfmt-support&lt;br /&gt;
* btrfs-tools&lt;br /&gt;
* extlinux&lt;br /&gt;
* qemu-user-static&lt;br /&gt;
* udisks | hal&lt;br /&gt;
&lt;br /&gt;
Suggests:&lt;br /&gt;
&lt;br /&gt;
* python-zypp&lt;br /&gt;
&lt;br /&gt;
For source installation, these two packages are necessary:&lt;br /&gt;
&lt;br /&gt;
* zlib-devel(for compiling)&lt;br /&gt;
* python-devel(for installation) &lt;br /&gt;
&lt;br /&gt;
You should load these modules, as well, if they're not loaded automatically by the kernel:&lt;br /&gt;
&amp;lt;br&amp;gt;(Use &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt; to list modules.)&lt;br /&gt;
&lt;br /&gt;
* squashfs&lt;br /&gt;
* squashfs-tools&lt;br /&gt;
* dm_snapshot&lt;br /&gt;
* loop &lt;br /&gt;
&lt;br /&gt;
Specific packages for Ubuntu 8.10:&lt;br /&gt;
&lt;br /&gt;
* python-celementtree&lt;br /&gt;
* python-elementtree&lt;br /&gt;
* dmsetup&lt;br /&gt;
&lt;br /&gt;
=== Installing requirements for Ubuntu 10.10 ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install yum rpm kpartx parted syslinux isomd5sum kvm zlib1g-dev squashfs-tools python2.6-dev qemu-arm-static python-urlgrabber&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Binary Package installation ===&lt;br /&gt;
&lt;br /&gt;
* '''Installation Steps For Fedora 13, Fedora 14, and Fedora 15'''&lt;br /&gt;
&lt;br /&gt;
1. Add MIC2 repo as user root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat &amp;lt;&amp;lt;REPO &amp;gt; /etc/yum.repos.d/meego-tools.repo&lt;br /&gt;
[meego-tools]&lt;br /&gt;
name=MeeGo Tools for Fedora&lt;br /&gt;
baseurl=http://repo.meego.com/MeeGo/tools/repos/fedora/\$releasever&lt;br /&gt;
enabled=1&lt;br /&gt;
gpgcheck=1&lt;br /&gt;
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
REPO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Add gpg key as user root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# gpg2 --keyserver subkeys.pgp.net --recv 0BC7BEC479FC1F8A&lt;br /&gt;
# gpg2 --export --armor 0BC7BEC479FC1F8A &amp;gt; /etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install mic2 as user root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# yum install mic2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if you get asked to import the key do so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: rpmts_HdrFromFdno: Header V3 DSA/SHA1 Signature, key ID 79fc1f8a: NOKEY&lt;br /&gt;
meego-fedora/gpgkey                                                                        | 3.3 kB     00:00 ... &lt;br /&gt;
Importing GPG key 0x79FC1F8A:&lt;br /&gt;
 Userid: &amp;quot;Moblin Build (Moblin Build User) &amp;lt;build@moblin.org&amp;gt;&amp;quot;&lt;br /&gt;
 From  : /etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
Is this ok [y/N]: y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Update Steps For Fedora 13, Fedora 14, and Fedora 15'''&lt;br /&gt;
&lt;br /&gt;
You can use the below command to get the latest mic2 package.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# yum update mic2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Installation Steps For Ubuntu 10.04, Ubuntu 10.10, and Debian 5.0'''&lt;br /&gt;
&lt;br /&gt;
1. Add package source&lt;br /&gt;
&lt;br /&gt;
For Ubuntu 10.04, add the below line to /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.04/ /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu 10.10, add the below line to /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.10/ /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For Debian 5.0, add the below line to /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://repo.meego.com/MeeGo/tools/repos/debian/5.0/ /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mic2 is also available in Debian Testing, which will become Debian 6.0. &lt;br /&gt;
&lt;br /&gt;
2. sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
You should see the following error:&lt;br /&gt;
W: GPG error: http://repo.meego.com  Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0BC7BEC479FC1F8A&lt;br /&gt;
&lt;br /&gt;
To add the repository public key use the following command:&lt;br /&gt;
:gpg --keyserver subkeys.pgp.net --recv 0BC7BEC479FC1F8A&lt;br /&gt;
:gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
Note: Often the port used by gpg is blocked in companies, so gpg will time out. You can install it manually; this example is for Ubuntu 10.10:&lt;br /&gt;
:wget http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.10/Release.key&lt;br /&gt;
Open System-&amp;gt;Administrator-&amp;gt;Software Sources. Under the Authentication tab, import the key.&lt;br /&gt;
&lt;br /&gt;
Now redo sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
3. sudo apt-get install mic2&lt;br /&gt;
&lt;br /&gt;
* '''Installation Steps For OpenSUSE 11.3, and OpenSUSE 11.4'''&lt;br /&gt;
&lt;br /&gt;
1. Add repos&lt;br /&gt;
&lt;br /&gt;
For OpenSUSE 11.3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo zypper addrepo http://repo.meego.com/MeeGo/tools/repos/opensuse/11.3/ meego-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For OpenSUSE 11.4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo zypper addrepo http://repo.meego.com/MeeGo/tools/repos/opensuse/11.4/ meego-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. sudo zypper install mic2&lt;br /&gt;
&lt;br /&gt;
* '''Install Steps For OpenSUSE 11.3, and OpenSUSE 11.4'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo zypper install mic2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== From Stable Git Source Releases ===&lt;br /&gt;
&lt;br /&gt;
You can get the latest stable release of MIC2 from the tag section in http://meego.gitorious.org/meego-developer-tools/image-creator.  Click on the &amp;quot;Source tree&amp;quot; link on the top of the screen.  There will be a list of tags on the right hand side.&lt;br /&gt;
&lt;br /&gt;
You should follow the below steps to install it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://gitorious.org/meego-developer-tools/image-creator.git&lt;br /&gt;
cd image-creator&lt;br /&gt;
git checkout 0.17  #check Gitorious for the most recent tag&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== From Development Git Tree ===&lt;br /&gt;
&lt;br /&gt;
Note: MIC2 GIT tree has latest-and-greatest source, so stability is not guaranteed.  If you run into errors, please use a 'Stable Release' instead before filing a bug.&lt;br /&gt;
&lt;br /&gt;
You need to follow the below steps to git clone MIC2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://gitorious.org/meego-developer-tools/image-creator.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd image-creator&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should add the repo for mic2 then run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ./tools/mic-check-alldeps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check/install all the depended packages, otherwise mic2 can't work normally.&lt;br /&gt;
&lt;br /&gt;
== Proxy Setting ==&lt;br /&gt;
&lt;br /&gt;
If you need to use proxy to access Internet, you must set proxy for mic2 correctly. Generally, you should export these environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ export http_proxy=&amp;quot;http://proxy.yourcompany.com:8888&amp;quot;&lt;br /&gt;
$ export https_proxy=&amp;quot;http://proxy.yourcompany.com:8888&amp;quot;&lt;br /&gt;
$ export no_proxy=&amp;quot;127.0.0.0/8, .yourcompany.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use sudo to run mic2, you also need to add these into /etc/sudoers in order that they still are valid after sudo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
$ sudo visudo&lt;br /&gt;
&lt;br /&gt;
Add: Defaults env_keep += &amp;quot; no_proxy http_proxy https_proxy&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
so sudo will adhere to the no_proxy and proxy settings.&lt;br /&gt;
&lt;br /&gt;
You also can set proxy in /etc/mic2/mic2.conf or in ~/.mic2.conf by adding the below two lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proxy=http://proxy.yourcompany.com:8888/&lt;br /&gt;
no_proxy=localhost,127.0.0.0/8,.yourcompany.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, you need to change proxy.yourcompany.com:8888 and .yourcompany.com according to your network.&lt;br /&gt;
&lt;br /&gt;
From mic2 0.23.0 on, mic2 enabled zypp backend, it uses /etc/sysconfig/proxy to get proxy settings, so you also need to create this file (it is a system file in OpenSUSE, so for openSUSE, you just set correct values inside of it) if you need to use proxy to access internet. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#### /etc/sysconfig/proxy sample ####&lt;br /&gt;
## Path:	Network/Proxy&lt;br /&gt;
## Description:	&lt;br /&gt;
## Type:	yesno&lt;br /&gt;
## Default:	no&lt;br /&gt;
## Config:      kde,profiles&lt;br /&gt;
#&lt;br /&gt;
# Enable a generation of the proxy settings to the profile.&lt;br /&gt;
# This setting allows to turn the proxy on and off while&lt;br /&gt;
# preserving the particular proxy setup.&lt;br /&gt;
# &lt;br /&gt;
PROXY_ENABLED=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Type:	string&lt;br /&gt;
## Default:	&amp;quot;&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# Some programs (e.g. lynx, arena and wget) support proxies, if set in&lt;br /&gt;
# the environment.  SuSEconfig can add these environment variables to&lt;br /&gt;
# /etc/SuSEconfig/* (sourced by /etc/profile etc.) -&lt;br /&gt;
# See http://portal.suse.com/sdb/en/1998/01/lynx_proxy.html for more details.&lt;br /&gt;
# Example: HTTP_PROXY=&amp;quot;http://proxy.provider.de:3128/&amp;quot;&lt;br /&gt;
HTTP_PROXY=&amp;quot;http://proxy.yourcompany.com:8888/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Type:	string&lt;br /&gt;
## Default:	&amp;quot;&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# Some programs (e.g. lynx, arena and wget) support proxies, if set in&lt;br /&gt;
# the environment.  SuSEconfig can add these environment variables to&lt;br /&gt;
# /etc/SuSEconfig/* (sourced by /etc/profile etc.) -&lt;br /&gt;
# this setting is for https connections&lt;br /&gt;
HTTPS_PROXY=&amp;quot;http://proxy.yourcompany.com:8888/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Type:	string&lt;br /&gt;
## Default:	&amp;quot;&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# Example: FTP_PROXY=&amp;quot;http://proxy.provider.de:3128/&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
FTP_PROXY=&amp;quot;http://proxy.yourcompany.com:8888/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Type:	string&lt;br /&gt;
## Default:	&amp;quot;&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# Example: GOPHER_PROXY=&amp;quot;http://proxy.provider.de:3128/&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
GOPHER_PROXY=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Type:	string(localhost)&lt;br /&gt;
## Default:	localhost&lt;br /&gt;
#&lt;br /&gt;
# Example: NO_PROXY=&amp;quot;www.me.de, do.main, localhost&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
NO_PROXY=&amp;quot;localhost, 127.0.0.1, .yourcompany.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#### /etc/sysconfig/proxy sample ####&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change proxy.yourcompany.com:8888 and .yourcompany.com according to your network. By default, zypp will be used, but you can use option --pkgmgr=yum to force mic2 to use yum, you can do so if you find zypp can't work for you, but remember to file a bug on http://bugs.meego.com/enter_bug.cgi?product=Development%20Tools&amp;amp;component=MIC%20(Image%20Creator) if you find any issue related to zypp.&lt;br /&gt;
&lt;br /&gt;
An option --proxy for repo command in kickstart file also can set proxy, you can specify it as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  repo --name=meego --baseurl=http://repo.meego.com/trunk/repo/ia32/os/ --proxy=http://proxyhost:proxyport/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to add two more options to repo if your proxy needs user authentication:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
repo --name=meego --baseurl=http://repo.meego.com/trunk/repo/ia32/os/ --proxy=http://proxyhost:proxyport/ --proxyuser=proxyusername --proxypaswd=proxyuserpassword&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running mic-image-creator ==&lt;br /&gt;
&lt;br /&gt;
Configuration of images is based on kickstart, the format used for unattended installation in Fedora and Redhat.&lt;br /&gt;
&lt;br /&gt;
Super user privileges are needed. The tool is more or less self-documented, use the --help option to see options.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating Supported Image Types ===&lt;br /&gt;
&lt;br /&gt;
KickStart (.ks) configuration files are passed to MIC2 to create tailored images.  KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
creating arm images needs 'qemu-arm' os 'qemu-arm-static' command available, and creating vdi or vmdk images needs 'vboxmanager' available, so be sure your system have installed them before creating these types of images.&lt;br /&gt;
&lt;br /&gt;
To obtain the official Meego .ks files, go here: http://wiki.meego.com/Image_Creation#Official_Meego_.ks_files&lt;br /&gt;
&lt;br /&gt;
'''Create ARMv7 Images'''&lt;br /&gt;
&lt;br /&gt;
When creating images for ARMv7 hardware, pass ''--arch=armv7hl'' to ''mic-image-creator'' commands.&lt;br /&gt;
&lt;br /&gt;
'''Create Livecd Image'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=livecd --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This tells image-creator to use the kickstart file default.ks to obtain info about which packages to download and include in the image, and --cache is the directory on your local machine which will host a cache of these packages. The cache is very useful if you are remote to the server and reduces the amount of downloaded packages next time you create an image. Next time the command is run, this cache will simply be 'updated' if there are changes, rather than re-downloading from the repositories again.&lt;br /&gt;
&lt;br /&gt;
The output of this command will be a file named meego-1.2-default-XX.iso created. This ISO image is a hybrid image and can be either written to a disk device or burned onto a cd.&lt;br /&gt;
&lt;br /&gt;
To burn it onto a USB stick, just run the following command, assuming the USB stick is /dev/sdb in your system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-writer meego-1.2-default-XX.iso&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create Moorestown NAND Image'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=mrstnand&lt;br /&gt;
&lt;br /&gt;
remove the first 512 bytes from the image to remove the partition information.&lt;br /&gt;
sudo dd bs=512 skip=1 if=meego-1.2-default-XX-sda.bin of= meego-1.2-default-XX-nand.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create Liveusb Image'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=liveusb --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.0-default-XX.usbimg will be created. To burn it onto a USB stick, run the following command, assuming the USB stick is /dev/sdb in your system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-writer meego-1.2-default-XX.usbimg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This image has a FAT file system and can be mounted easily on Windows and other OSes.&lt;br /&gt;
&lt;br /&gt;
'''Create Liveusb Image Interactively'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=liveusb --interactive --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It directly creates a MeeGo live usb stick.&lt;br /&gt;
&lt;br /&gt;
Liveusb image can be created in two different ways, interactive and non-interactive (default). When running MIC2 in a non-interactive mode, MIC2 creates a USB images file that can be copied directly into a USB stick. The non-interactive mode can be used for daily build or automated testing. The interactive mode will write the images onto a USB disk, it will detect if a USB stick is available and detects and verifies a partition is available. If two or more USB devices are present, you will be asked to select the target device. This way the contents of the existing USB stick won't be destroyed unless no appropriate partition is found, end user should use it to create the live USB.&lt;br /&gt;
&lt;br /&gt;
'''Create Loop Image'''&lt;br /&gt;
&lt;br /&gt;
This is the simplest image format available. Such images can be loop mounted and chrooted into, for example, to build applications or for debugging purposes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=loop --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.2-default-XX.img is created. You can use below to mount it and chroot into it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mount -o loop meego-1.2-default-XX.img /mnt&lt;br /&gt;
sudo chroot /mnt su -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create KVM Image'''&lt;br /&gt;
&lt;br /&gt;
Can be used with QEMU or other VMM applications to launch MeeGo as a virtualized instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=raw --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.2-default-XX folder with a meego-1.2-default-XX-sda.raw image is created. For optimal results, use this feature in a machine with VT support and enable it in the BIOS.&lt;br /&gt;
&lt;br /&gt;
If you use Fedora or openSUSE, run the following command to launch the image into MeeGo KVM virtual machine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo qemu-kvm -m 512 -boot c -hda meego-1.2-default-XX-sda.raw -std-vga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use Ubuntu, run the following command launch image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo kvm -m 512 -boot c -hda meego-1.2-default-XX-sda.raw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create VMDK Image'''&lt;br /&gt;
&lt;br /&gt;
VMDK images can be loaded into Vmware or Vmware player. MIC2 also generates a VMX file that has image configuration and can be used to launch the image in Vmware by just clicking the file. If you have vmplayer, it should open automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=vmdk --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.2-default-XX folder with both meego-1.2-default-XX-sda.vmdk image and meego-1.2-default-XX-sda.vmx is created. Just run vmware or vmware player, and select the generated vmx file.&lt;br /&gt;
&lt;br /&gt;
=== KickStart Files (configuration files used for image creation) ===&lt;br /&gt;
&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== MIC2 Configuration file ===&lt;br /&gt;
&lt;br /&gt;
MIC2 options can be specified in a global configuration file ('''/etc/mic2/mic2.conf''') and local configuration file ('''$HOME/.mic2.conf'''), where you can specify: &lt;br /&gt;
* Repository configuration&lt;br /&gt;
* proxy settings&lt;br /&gt;
* cache directories and &lt;br /&gt;
* other variables &lt;br /&gt;
that you normally would have to re-type in your command-line. &lt;br /&gt;
&lt;br /&gt;
The two configuration files have the same format, /etc/mic2/mic2.conf is global, no matter whoever is running MIC2, this configuration file will be read first, $HOME/.mic2.conf is just valid for current user, every user can have their own settings.&lt;br /&gt;
The final configuration is a combination of two configuration files, options in '''$HOME/.mic2.conf''' will override those from '''/etc/mic2/mic2.conf'''. Options from command line have the highest priority. &lt;br /&gt;
If an option is specified on the command line, the same option in both configuration files, global and local will be ignored.&lt;br /&gt;
&lt;br /&gt;
Below is an example you can cut-and-paste, and reuse for your needs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[main]&lt;br /&gt;
cachedir=/home/user1/mycache&lt;br /&gt;
tmpdir=/home/user1/mystorage/tmp&lt;br /&gt;
outdir=/home/user1/mystorage&lt;br /&gt;
proxy=http://my.proxy.com:911/&lt;br /&gt;
no_proxy=localhost,127.0.0.0/8,.mysite.com,172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''cachedir'' = directory where the cached repo(s) will reside.  With this variable set, you do not need to pass the --cache flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''tmpdir'' = temporary directory used by MIC2 when creating images.  With this variable set, you do not need to pass the --tmpdir flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''outdir'' = where your images will reside once they are created.  With this variable set, you do not need to pass the --outdir flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''proxy'' = specify your proxy if you're behind a behind a firewall.&lt;br /&gt;
&lt;br /&gt;
''no_proxy'' = specify what domains should not sure the proxy setting.&lt;br /&gt;
&lt;br /&gt;
''image_format'' = specify image format.&lt;br /&gt;
&lt;br /&gt;
''default_ks'' = specify a default kickstart file, there are several kickstart files provided in repository http://repo.meego.com/MeeGo/devel/trunk/repo/ia32/os/&lt;br /&gt;
&lt;br /&gt;
'''Note:''' When specifying proxy and no_proxy, you do not need to use the --proxy flag in your .ks files when referring to repos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In configuration files, you also can specify one or multiple repositories, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[trunk]&lt;br /&gt;
name=trunk&lt;br /&gt;
baseurl=http://repo.meego.com/MeeGo/devel/trunk/repo/ia32/os/&lt;br /&gt;
enabled=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once there is this repository info in your configuration files, and both image_format and default_ks are set, you can just run &amp;quot;sudo mic-image-creator&amp;quot; to create a image, there isn't any extra argument needed.&lt;br /&gt;
&lt;br /&gt;
=== Use Bootstrap ===&lt;br /&gt;
&lt;br /&gt;
MIC2 highly depends on yum and librpm, but different Linux distributions used diffrent yum and librpm versions, so MIC2 has some compatibility issues on OpenSUSE, Ubuntu and Debian, bootstrap is just for fixing these compatibility issues.&lt;br /&gt;
&lt;br /&gt;
bootstrap is a minimal MeeGo file system, MIC2 can run very smoothly on it using chroot mode. You can use the below command to create a bootstrap:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-create-bootstrap -n trunk -k /your/repo/cache/path -r http://repo.meego.com/MeeGo/builds/trunk/latest/repos/oss/ia32/packages/ -o /your/final/bootstrap&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
NOTE: The repo-url specific for your needs may differ&lt;br /&gt;
&lt;br /&gt;
-n is used to specify repository name, if you have its cache before, it can reduce runtime dramatically to use it with -k option, -k is used to specify your repository cache dir, -r is used to specify MeeGo main repository.&lt;br /&gt;
&lt;br /&gt;
Once you created your bootstrap, you can use this bootstrap to run MIC2 as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --bootstrap=/your/final/bootstrap --format=livecd --config=default.ks --cache=/your/repo/cache/path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can create and use bootstrap in one mic-image-creator run, as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --build-bootstrap --bootstrap=/your/final/bootstrap --format=livecd --config=default.ks --cache=/your/repo/cache/path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running mic-image-writer ==&lt;br /&gt;
&lt;br /&gt;
mic-image-writer writes a Meego image to a USB disk as an alternative to dd.&lt;br /&gt;
&lt;br /&gt;
mic-image-writer can run in both console mode and GUI mode. It can decide which mode to run, according to current system environment. You can also use a given option to force it to run in some other mode. Run 'mic-image-writer --help' to get usage information:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Usage: mic-image-writer [options] [image file]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
  -h, --help     Show this help message and exit&lt;br /&gt;
  -c, --console  Run in console mode&lt;br /&gt;
  -g, --gui      Run in GUI mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here is a run example in console mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mic-image-writer meego-xxx.img&lt;br /&gt;
Available usb disk:&lt;br /&gt;
        [1] /dev/sdc: SanDisk USB Flash Drive&lt;br /&gt;
        [2] /dev/sdb: SanDisk U3 Cruzer Micro&lt;br /&gt;
Please choice [1..2] ? 2&lt;br /&gt;
Source: /myhome/meego-xxx.img&lt;br /&gt;
Target: /dev/sdb&lt;br /&gt;
Image size: 559 MB&lt;br /&gt;
Estimated time: 55 seconds&lt;br /&gt;
Elapsed time: 64, progress: 100% 8944+0 records in&lt;br /&gt;
8944+0 records out&lt;br /&gt;
586153984 bytes (586 MB) copied, 63.0486 s, 9.3 MB/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mic-image-writer can estimate how long it will take to write the given image to your USB disk and reports current writing progress. It automatically unmounts your USB disk, if it is mounted. If your USB can't be unmounted, it will terminate.&lt;br /&gt;
&lt;br /&gt;
If you love UI mode, you can run it in X enviroment. The command with the added -g flag:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-writer -g meego-xxx.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Image name is optional.&lt;br /&gt;
&lt;br /&gt;
== Running mic-image-convertor ==&lt;br /&gt;
&lt;br /&gt;
It's very easy to use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-convertor --source-image=InputImage --target-format=Targegformat&lt;br /&gt;
&lt;br /&gt;
sudo mic-image-convertor -I InputImage -T Targegformat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, to translate a KVM raw image to livecd image, just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-convertor --source-image=meego-core-200902200545/meego-core-200902200545-sda.raw --target-format=livecd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A new livecd image of meego-converted-from-raw-200902201804.iso is generated. The tool can detect the type of input image, either raw or vmdk.&lt;br /&gt;
&lt;br /&gt;
This tool is very useful. For example, the developer can launch a virtual machine running MeeGo v2 and make whatever changes on the virtual system like yum install/remove a package, scp a source tarball to VM and build and try, and etc. Then with a simple &amp;quot;sync&amp;quot; or shutdown of VM, the VM image now contains his changes. With this tool, the VM image can be transformed to a live image and burned to a USB flash disk. Now developers can have final verifications in a target device, with changes in the live system.&lt;br /&gt;
&lt;br /&gt;
== Running mic-chroot ==&lt;br /&gt;
&lt;br /&gt;
There are two major usage models for mic-chroot for developers.&lt;br /&gt;
&lt;br /&gt;
'''chroot directly into the image to use it as a development environment, then optionally create a new image based off of your changes'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-chroot  -c livecd meego-core-200903131337.iso&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above command would present a chroot, using the livecd image, to developers with some bind mounts like /proc /sys /dev/pts and /parentroot. With those bind mounts, developers now can easily exchange files in chroot env with host /parentroot, and conduct yum install, yum remove and any other network related operations. After done and typing &amp;quot;exit&amp;quot;, a new live ISO image is created from the chroot env with the changes developers made.&lt;br /&gt;
&lt;br /&gt;
'''Unpack and modify the image's filesystem (which you can save), and create a new image based off of your changes'''&lt;br /&gt;
&lt;br /&gt;
Sometimes, developers want to keep the chroot env, so that they can do multiple changes in that root file system at different times. So they want to execute following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-chroot -s my-chroot-fs --unpack-only  meego-core-200903131337.iso --bind-mounts=/proc:/proc;/:/parentroot;/sys:/sys;/dev/pts:/dev/pts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above command creates a folder called 'my-chroot-fs' in the current directory, using the chroot environment from the livecd image. Of course, if one forgets to add the --bind-mounts options, you'll need to manually do the bind mounting yourself. Don't forget copying /etc/reslov.conf into my-chroot-fs if you need to use DNS. Should you wish to create an image from the chroot, just execute following to create a livecd image&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-chroot -c livecd --convert-only my-chroot-fs/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enabling Autoinstallation ==&lt;br /&gt;
&lt;br /&gt;
You need to copy a kickstart file into /root/mic2-ks.cfg which is used for&lt;br /&gt;
automated installation of the image. To activate autoinstall mode, boot with autoinst on the command line&lt;br /&gt;
or add --menus=autoinst to the bootloader directive in the kickstart file you use to&lt;br /&gt;
create the image.&lt;br /&gt;
&lt;br /&gt;
= Development Release Processes =&lt;br /&gt;
&lt;br /&gt;
http://wiki.meego.com/MIC2_Development_Release_Processes&lt;br /&gt;
&lt;br /&gt;
= Known issues =&lt;br /&gt;
&lt;br /&gt;
* MIC2 is not compatible with Ubuntu 8.04 (Yum package compatibility)&lt;br /&gt;
* MIC2 is not compatible with the initial Ubuntu 9.04.  Make sure you have package libsqlite3-0 of 3.6.10-1ubuntu0.2 or later.&lt;br /&gt;
* MIC2 has some issues on Debian, please refer to [[MIC on Debian]] to get installation instructions&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
You can file a bug on http://bugzilla.meego.com/enter_bug.cgi?product=Development%20Tools (Note: you should select MIC for component) if you run into any MIC2-related issue, bugzilla can track your issue faster and more efficiently.&lt;br /&gt;
&lt;br /&gt;
===libgcc related issues===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
libgcc_s.so.1 must be installed for pthread_cancel to work&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Error: failed to create image : '/sbin/mksquashfs /var/tmp/imgcreate-FKCSsk/iso-u8xCPh/LiveOS/osmin /var/tmp/imgcreate-FKCSsk/iso-u8xCPh/LiveOS/osmin.img' exited with error (-6)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This error occurs when MIC2 is unable to find the proper version of libgcc.  This usually happens on x86_64 systems - MIC2 is looking for the 32 bit version of libgcc, but only the 64 bit version is installed.  Installing the 32 bit version of libgcc should resolve this.&lt;br /&gt;
&lt;br /&gt;
===General squashfs issues===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;Error: failed to create image : '/sbin/mksquashfs /var/tmp/imgcreate-FKCSsk/iso-u8xCPh/LiveOS/osmin /var/tmp/imgcreate-FKCSsk/iso-u8xCPh/LiveOS/osmin.img' exited with error (-6)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This error can also be an issue with the syslinux package.  Try updating to the latest version for your distro.&lt;br /&gt;
&lt;br /&gt;
===device-mapper issues===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unable to remove open device&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a race condition with device-mapper in Fedora:  https://bugzilla.redhat.com/show_bug.cgi?id=506644. Usually rerunning the MIC2 command will resolve this.&lt;br /&gt;
&lt;br /&gt;
===python related issues===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from urlgrabber.grabber import URLGrabber&lt;br /&gt;
ImportError: No module named urlgrabber.grabber&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people are using python they built themselves, so some python modules aren't under their python library path. For such error, only one way is not to use your own python but to use python your system installed.&lt;br /&gt;
&lt;br /&gt;
===debian-based distros related issues===&lt;br /&gt;
On debian-based distros, we used pycentral to package mic2, but mic2 source installtion used distutils, so two kinds of installation have different installation path, if they exist there at the same time, it will result in some unpredictable errors to run mic2. To run it correctly, you can keep only one installation, source or binary.&lt;br /&gt;
&lt;br /&gt;
Remove binary installation&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get remove mic2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove source installation&lt;br /&gt;
&lt;br /&gt;
Get python lib path&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python&lt;br /&gt;
Python 2.5.2 (r252:60911, Sep 30 2008, 15:41:38)&lt;br /&gt;
[GCC 4.3.2 20080917 (Red Hat 4.3.2-4)] on linux2&lt;br /&gt;
Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import distutils.sysconfig&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print distutils.sysconfig.get_python_lib()&lt;br /&gt;
&amp;lt;PYTHONLIBPATH&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove mic2 files&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo rm -rf &amp;lt;PYTHONLIBPATH&amp;gt;/mic&lt;br /&gt;
$ sudo rm -rf &amp;lt;PYTHONLIBPATH&amp;gt;/mic-0.*&lt;br /&gt;
$ sudo rm -f /usr/bin/mic&lt;br /&gt;
$ sudo rm -f /usr/bin/mic-*&lt;br /&gt;
$ sudo rm -f /usr/bin/moblin-*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: You must replace &amp;lt;PYTHONLIBPATH&amp;gt; with the above python lib path&lt;br /&gt;
&lt;br /&gt;
If program jams after mkfs.vfat, it might be due missing ''vol_id'' program. ''vol_id'' is replaced with ''blkid'' in new ubuntu versions. Try run ''/lib/udev/vol_id'', if it's missing you have troubles.&lt;br /&gt;
&lt;br /&gt;
===ARM related issues===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/usr/bin/mic-image-creator&amp;quot;, line 856, in &amp;lt;module&amp;gt;&lt;br /&gt;
    ret = main()&lt;br /&gt;
  File &amp;quot;/usr/bin/mic-image-creator&amp;quot;, line 682, in main&lt;br /&gt;
    run_in_bootstrap(options.bootstrap, argv, bindmounts, arch = options.arch)&lt;br /&gt;
  File &amp;quot;/usr/bin/mic-image-creator&amp;quot;, line 261, in run_in_bootstrap&lt;br /&gt;
    ret = subprocess.call(args, preexec_fn = chroot_bootstrap)&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.5/subprocess.py&amp;quot;, line 444, in call&lt;br /&gt;
    return Popen(*popenargs, **kwargs).wait()&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.5/subprocess.py&amp;quot;, line 594, in __init__&lt;br /&gt;
    errread, errwrite)&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.5/subprocess.py&amp;quot;, line 1149, in _execute_child&lt;br /&gt;
    raise child_exception&lt;br /&gt;
OSError: [Errno 8] Exec format error&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This error occurs when trying to build ARM images without passing ''--arch=armv7l'' to ''meego-image-creator''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Error: Requires qemu version &amp;gt;= 0.13 for armv7hl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you should update the version of 'qemu-arm' or 'qemu-arm-static' to 0.13.0 or above.&lt;br /&gt;
&lt;br /&gt;
Tips: if you encounter arm images creating failed, please try to run bootstrap mode, for armv7hl and armv7nhl is not supported in legacy mode.&lt;br /&gt;
&lt;br /&gt;
===Proxy cache===&lt;br /&gt;
&lt;br /&gt;
See http://bugs.meego.com/show_bug.cgi?id=2343&lt;br /&gt;
&lt;br /&gt;
Some servers (such as with squid as a proxy) may cache more aggressively than&lt;br /&gt;
others, and as a result repomd.xml is invalid (old copy) and&lt;br /&gt;
references out of date metadata files (primary, comps, filelists, etc). This is&lt;br /&gt;
because the server is returning a cached/old copy of repomd.xml.&lt;br /&gt;
&lt;br /&gt;
Proxy cache should be disabled in mic and yum.&lt;br /&gt;
&lt;br /&gt;
= Advanced Hacking Tips = &lt;br /&gt;
&lt;br /&gt;
===replace kernel in live image===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$sudo mic-image-convertor --source-image=&amp;lt;your-netbook.img&amp;gt; --target-format=livecd --shell&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command will give you a chroot environment of MeeGo, you can follow the below steps to replace the default kernel with a new one.&lt;br /&gt;
&lt;br /&gt;
1). remove the old kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -e kernel-netbook&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: execute the above command in chroot environment.&lt;br /&gt;
&lt;br /&gt;
2). copy new kernel to chroot environment of MeeGo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$sudo cp /path/to/kernel-*.rpm /var/tmp/imgcreate-*/install_root/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: execute the above command in your host system.&lt;br /&gt;
&lt;br /&gt;
/path/to/kernel-*.rpm is your new kernel to install, /var/tmp/imgcreate-*/install_root/ is the directory where chroot MeeGo mounted on.&lt;br /&gt;
&lt;br /&gt;
3). install the new kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -ivh /kernel-*.rpm&lt;br /&gt;
# rm /kernel-*.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: execute the above command in chroot environment.&lt;br /&gt;
&lt;br /&gt;
After that, you can find out the new kernel in directory /boot/.&lt;br /&gt;
&lt;br /&gt;
4). update contents of isolinux&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$sudo cp /var/tmp/imgcreate-*/install_root/boot/initrd-*.img  /var/tmp/imgcreate-*/iso-*/isolinux/initrd0.img&lt;br /&gt;
$sudo cp /var/tmp/imgcreate-*/install_root/boot/vmlinuz-*  /var/tmp/imgcreate-*/iso-*/isolinux/vmlinuz0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: execute the above command in your host system.&lt;br /&gt;
&lt;br /&gt;
5. create a new image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE: execute the above command in chroot environment.&lt;br /&gt;
&lt;br /&gt;
After following all the above steps, you'll have a new image.&lt;br /&gt;
&lt;br /&gt;
===build btrfs image===&lt;br /&gt;
From version 0.20.1 on, mic2 can support btrfs, you can create btrfs image by change fstype=ext3 in your kickstart file to fstype=btrfs. A successful creation will depend on btrfs-progs (btrfs-tools on debian-based distros, btrfsprogs on openSUSE) and btrfs kernel module in your local system, the known issue is we can't create btrfs image on Fedora 11, the issue is the default btrfs kernel module has some issue which will make kernel panic, so for this case, you must make sure you have a stable and latest kernel and btrfs-progs 0.19 on your system. You'll need to build your kernel by yourself and use it to boot your system.&lt;br /&gt;
&lt;br /&gt;
Btrfs-progs is a prerequisite tool, it includes /sbin/mkfs.btrfs, but its version must match btrfs kernel module, so you must ensure this, mic2 repo http://repo.meego.com/MeeGo/tools/repos/ has an issue which will install btrfs-progs 0.19 when you install mic2, this is an repo sync error, so please make sure you have your distro's btrfs-progs after mic2 is installed, if your distro's btrfs-progs version is 0.19, this isn't an issue, otherwise you must remove btrfs-progs installation introduced by mic2 and reinstall your distro's btrfs-progs.&lt;br /&gt;
&lt;br /&gt;
How to build btrfs image on Fedora 11 or lower version?&lt;br /&gt;
&lt;br /&gt;
# Download kernel-2.6.34 or kernel-2.6.35&lt;br /&gt;
# Configure btrfs as module&lt;br /&gt;
# make; make modules; make install; make modules_install&lt;br /&gt;
# Reboot your system using this built-newly kernel&lt;br /&gt;
# Install btrfs-progs 0.19&lt;br /&gt;
&lt;br /&gt;
Done, you're ready for creating btrfs image.&lt;br /&gt;
&lt;br /&gt;
===Metapackages, Patterns, and Repository Creation===&lt;br /&gt;
Meta-packages are discouraged in MeeGo.  The preferred method is to use patterns in the repository (supported by both zypper and mic2).  This is done by creating a patterns.xml file, which is a fairly simple XML file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;pattern xmlns:rpm=&amp;quot;http://linux.duke.edu/metadata/rpm&amp;quot;&lt;br /&gt;
         xmlns=&amp;quot;http://novell.com/package/metadata/suse/pattern&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;name&amp;gt;meego-core&amp;lt;/name&amp;gt;&lt;br /&gt;
   &amp;lt;summary&amp;gt;MeeGo Core&amp;lt;/summary&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;Packages needed for Compliance&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;uservisible/&amp;gt;&lt;br /&gt;
   &amp;lt;category lang=&amp;quot;en&amp;quot;&amp;gt;Base Group&amp;lt;/category&amp;gt;&lt;br /&gt;
   &amp;lt;rpm:requires&amp;gt;&lt;br /&gt;
      &amp;lt;rpm:entry name=&amp;quot;pam&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;rpm:entry name=&amp;quot;rootfiles&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;rpm:entry name=&amp;quot;bash&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;rpm:entry name=&amp;quot;sysvinit&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;!-- ...etc... --&amp;gt;&lt;br /&gt;
   &amp;lt;/rpm:requires&amp;gt;&lt;br /&gt;
&amp;lt;/pattern&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The detailed documentation for this XML schema may be found on the [http://en.opensuse.org/openSUSE:Standards_Rpm_Metadata OpenSuSe Wiki].  There is also a Relax NG schema found in the source code for [http://gitorious.org/opensuse/libzypp libzypp] (buried in the folder zypp/parser/yum/schema).&lt;br /&gt;
&lt;br /&gt;
In MeeGo's [http://meego.gitorious.org/meego-os-base/package-groups package-groups], you can find several utilities, style sheets, and examples for how to create patterns and convert them to groups (comps).&lt;br /&gt;
&lt;br /&gt;
Once you have both a patterns.xml and comps.xml file, you can create your repository like this.  (For brevity, assuming a simple 'packages' repository.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ## Copy RPM packages to a folder, repos/&lt;br /&gt;
    $ mkdir -p repos/repodata&lt;br /&gt;
    $ cp -f patterns.xml comps.xml repos/repodata&lt;br /&gt;
    $ createrepo -g repos/repodata/comps.xml repos/&lt;br /&gt;
    $ modifyrepo repos/repodata/patterns.xml repos/repodata&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, GPG sign your repos/repodata/repomd.xml file.  Note that `modifyrepo` is a part of the `createrepo` package.&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Build_Infrastructure/Packagers_Developers</id>
		<title>Build Infrastructure/Packagers Developers</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Build_Infrastructure/Packagers_Developers"/>
				<updated>2011-07-07T12:25:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* How to use the commandline client */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These pages are in preparation - contributions welcome.&lt;br /&gt;
&lt;br /&gt;
 Note: See [[OBS|the OBS wiki page]] for explanation of the different OBS services MeeGo offers.&lt;br /&gt;
&lt;br /&gt;
This track will give you a brief introduction to the features and capabilities of the OBS instance hosted at build.meego.com. &lt;br /&gt;
Note: You need an account to access build.meego.com.  &lt;br /&gt;
If you have no account, you can still learn how the OBS works at the upstream project's own instance [http://build.opensuse.org http://build.opensuse.org] .&lt;br /&gt;
&lt;br /&gt;
In this track, you'll learn how to use the web interface, the commandline client and create your first package.&lt;br /&gt;
The packaging guidelines and more advanced topics are also covered.&lt;br /&gt;
&lt;br /&gt;
== How to get started ==&lt;br /&gt;
&lt;br /&gt;
You need an account on build.meego.com. To request an account: &lt;br /&gt;
# Go to [http://bugs.meego.com MeeGo bugzilla]. &lt;br /&gt;
# Click New in the upper navigational bar to begin filing a bug. &lt;br /&gt;
# On the next page, click MeeGo Community Infrastructure. &lt;br /&gt;
# On the following page, click Build Service and file your bug.&lt;br /&gt;
&lt;br /&gt;
== How to use the web interface ==&lt;br /&gt;
A series of pages will make you familiar with webinterface basics. It's divided into several subpages:&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Part 1 - Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Part 2 - Creating a link and adding a repository]]&lt;br /&gt;
* [[Developing_in_a_MeeGo_Environment#Building_your_package:_Step_by_step|Part 3 - Your first own package]]&lt;br /&gt;
&lt;br /&gt;
== How to use the commandline client ==&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout and branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
== MeeGo Packaging guidelines and Howto ==&lt;br /&gt;
* [[Packaging|Packaging]]&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
* [[SDK/Docs/1.0/Packaging/Tutorial|Packaging Tutorial]]&lt;br /&gt;
&lt;br /&gt;
== [[Build_Infrastructure/QA|QA Processes around the OBS]] ==&lt;br /&gt;
See the [[Quality]] page.&lt;br /&gt;
&lt;br /&gt;
== Verifying Your Package Changes Locally and Online ==&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* '''I'm getting &amp;quot;error: Package already exists: %package debuginfo&amp;quot;''' &amp;amp;mdash; Disable the debuginfo flag for the repo/arch that gives you this problem.  You will probably still get a debuginfo package.  This appears to happen when OBS creates debuginfo packages by default, and so this flag causes a sort of doubling-up of the debuginfo package.&lt;br /&gt;
&lt;br /&gt;
== IRC / mailinglists / contact ==&lt;br /&gt;
&lt;br /&gt;
If you need help, you can join #meego on irc.freenode.net . See also [[Community communication|this page]] about all MeeGo IRC channels.&lt;br /&gt;
&lt;br /&gt;
You can join [http://lists.meego.com/listinfo/meego-dev MeeGo-dev] and [http://lists.meego.com/listinfo/meego-packaging MeeGo-packaging] mailing lists [http://lists.meego.com/mailman/listinfo over here].&lt;br /&gt;
&lt;br /&gt;
[[Category:Build Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Build_Infrastructure</id>
		<title>Build Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Build_Infrastructure"/>
				<updated>2011-07-07T12:13:32Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* MeeGo Build Infrastructure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MeeGo Build Infrastructure ==&lt;br /&gt;
&lt;br /&gt;
The heart of the Build Infrastructure of MeeGo is the upstream project [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)]. It is an automated system used for building software packages, collaboration of developers, release management, maintenance, and much more. Moblin started using OBS in June 2008 and released Moblin 2.0 and Moblin 2.1, as well as other derivative releases. OBS has proven to be a very reliable, quickly evolving infrastructure. It is rich with distribution building and maintenance features. The Linux Foundation is dedicated to the further development of OBS and has a team, including two full-time OBS maintainers, contributing to its development and its use by MeeGo and the Ecosystem. &lt;br /&gt;
&lt;br /&gt;
MeeGo currently uses OBS version 2.1.6. To learn more about version 2.1 and the additional features in it, see the upstream project details: [http://wiki.opensuse.org/openSUSE:Build_Service_Roadmap roadmap].&lt;br /&gt;
&lt;br /&gt;
There are 2 build system instances that are relevant to MeeGo:&lt;br /&gt;
* MeeGo build system: Essentially, if you're a package maintainer/developer which is part of MeeGo, you get an account here.&lt;br /&gt;
* MeeGo public build system (AKA community OBS): For anyone to build applications or libraries against MeeGo. Anyone with a meego.com account can use this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overview - What does it do? ===&lt;br /&gt;
Let's set out some basics about the OBS.&lt;br /&gt;
&lt;br /&gt;
# It's a build system. You put source on it and say &amp;quot;use this repository&amp;quot; and it builds a minimal SDK-like chroot using the deb/rpms it finds in that repository&lt;br /&gt;
# It has packages - a package corresponds to a tarball and a spec/dsc&lt;br /&gt;
# It has projects - a project is like a directory with packages&lt;br /&gt;
# When a package is built it is &amp;quot;published&amp;quot; from the project where it was uploaded into a corresponding repository (which can be used to build other projects)&lt;br /&gt;
# The repositories can also be used by devices to download binary packages.&lt;br /&gt;
&lt;br /&gt;
[[File:Splash-community.png|right|300px]]&lt;br /&gt;
===MeeGo Build Service ===&lt;br /&gt;
The [http://build.meego.com MeeGo build system] is part of meego.com infrastructure and supports several important kinds of development:&lt;br /&gt;
&lt;br /&gt;
* Applications to run on MeeGo&lt;br /&gt;
* Team Repositories&lt;br /&gt;
* Personal Repositories&lt;br /&gt;
&lt;br /&gt;
Having these areas allow us to support:&lt;br /&gt;
* Managing packages as part of their acceptance into MeeGo core&lt;br /&gt;
* Deprecating packages from MeeGo core&lt;br /&gt;
&lt;br /&gt;
=== MeeGo Community Build Service OBS ===&lt;br /&gt;
There's also a [[Build_Infrastructure/Community_Builder|MeeGo Build Service]] available.&lt;br /&gt;
&lt;br /&gt;
=== [[Build_Infrastructure/Packagers_Developers|Packagers/Developers]] ===&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|How to get started.]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_webinterface|How to use the web interface to view, manage and build your packages.]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#MeeGo_Packaging_guidelines_and_Howto|MeeGo Packaging guidelines and howto]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#QA_Processes_around_the_OBS|QA Processes around the OBS]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Multi-Architecture_and_Multi-Distribution_packaging|Multi-Architecture and Multi-Distribution packaging]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Tips_.26_Tricks|Verifying Your Package Changes Locally and Online]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
[[File:peep_skate.png|right]]&lt;br /&gt;
&lt;br /&gt;
=== [[Build_Infrastructure/Developing_OBS|Developing for the openSUSE Build Service]] ===&lt;br /&gt;
* [http://en.opensuse.org/openSUSE:Build_Service_private_instance How to set up a Build Service locally for testing]&lt;br /&gt;
* [[Build_Infrastructure/Sysadmin_Distro|More on setting up an OBS server]]&lt;br /&gt;
** [[Build_Infrastructure/Sysadmin_Distro#Seamless_cross-compilation.2C_cross-toolchain_integration|Seamless cross-compilation, cross-toolchain integration]]&lt;br /&gt;
* What's the [http://en.opensuse.org/openSUSE:Build_Service_Tutorial#Create_Patterns metadata (prjconf/prj), attributes, admin-tools for?]&lt;br /&gt;
&lt;br /&gt;
[[File:peep_netbook.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-07T12:12:48Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
[[File:Distribution-process-overview-with-obs.png|thumb|250px|right|The development process when using OBS]]&lt;br /&gt;
[[File:Distribution-process-without-obs.png|thumb|250px|right|The development process w/o using OBS]]&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is using [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)] to manage and build packages. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Casual contributors can work without using OBS, and submit your changes back into MeeGo through the [http://lists.meego.com/mailman/listinfo mailing list].&lt;br /&gt;
&lt;br /&gt;
The overall processes of development with and without an OBS account are shown in the right figures. Detail description of the processes can be found below.&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|OBS WebUI: Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|OBS WebUI: Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Submission to MeeGo ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release_Infrastructure/BOSS|Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution/Create_image_based_on_new_RPM</id>
		<title>Distribution/Create image based on new RPM</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution/Create_image_based_on_new_RPM"/>
				<updated>2011-07-06T14:41:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Prepare your repo ==&lt;br /&gt;
&lt;br /&gt;
=== Identify the live repo ===&lt;br /&gt;
If you build the package by using OBS, you can create the image based on the live repo. To get the live repo, please find the project on the OBS which contains the package you built first, for example: Projects-&amp;gt;home:xxxx:branches:Trunk, click the build repository, such as &amp;quot;Trunk&amp;quot;, then click &amp;quot;Go to download repository&amp;quot;, you will get the link to the live repo: http://download.meego.com/live/home:/xxxx:/branches:/Trunk/Trunk/&lt;br /&gt;
&lt;br /&gt;
=== Create local repo for your new RPMs ===&lt;br /&gt;
If you build the package in your local build environment(not on OBS), you can create a local repo and create the new image based on your local repo.&lt;br /&gt;
  $cp *.rpm /var/tmp/localrepo/&lt;br /&gt;
  $cd /var/tmp/localrepo/&lt;br /&gt;
  $createrepo .&lt;br /&gt;
&lt;br /&gt;
== Modify ks file to add the repo ==&lt;br /&gt;
Create your .ks file or get an existing ks file, for example meego-ivi-ia32-1.2.0.ks can be found at http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-ivi-ia32/, for details about creating or updating ks file, please refer to: [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
Once you get the ks file, what you need to do is adding the follow line to ks file:&lt;br /&gt;
  $repo --name=live --baseurl=http://download.meego.com/live/home:/xxxx:/branches:/Trunk/Trunk/ --save&lt;br /&gt;
  $repo --name=local --baseurl=file:///var/tmp/localrepo/ --save&lt;br /&gt;
&lt;br /&gt;
== Run mic2 using the new ks file to generate image ==&lt;br /&gt;
More mic2 information can reference to [[Image_Creation|Image Creation]]&lt;br /&gt;
&lt;br /&gt;
Here’s an example:&lt;br /&gt;
  $/usr/bin/mic-image-creator --config=/root/mic/ivi-ia32.ks &lt;br /&gt;
&lt;br /&gt;
Once mic-image-creator finished, you can find the new image from the output information.&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-06T14:10:11Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Development with MeeGo OBS account */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is done by using the upstream project [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)]. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Submit your changes.&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|OBS WebUI: Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|OBS WebUI: Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Submission to MeeGo ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release_Infrastructure/BOSS|Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution/Create_image_based_on_new_RPM</id>
		<title>Distribution/Create image based on new RPM</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution/Create_image_based_on_new_RPM"/>
				<updated>2011-07-06T14:03:57Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Create new image based on new RPM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can create a new image based on your local repo&lt;br /&gt;
&lt;br /&gt;
Steps as follows:&lt;br /&gt;
* Environment setup&lt;br /&gt;
install the package &amp;quot;createrepo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Create local repo for your new RPMs&lt;br /&gt;
  $cp *.rpm /var/tmp/localrepo/&lt;br /&gt;
  $cd /var/tmp/localrepo/&lt;br /&gt;
  $createrepo .&lt;br /&gt;
&lt;br /&gt;
* Modify ks file to add local repo&lt;br /&gt;
Create your .ks file or get an existing ks file, for example meego-ivi-ia32-1.2.0.ks can be found http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-ivi-ia32/, for details about creating or updating ks file, please refer to: [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
Once you get the ks file, what you need to do is adding the follow line to ks file:&lt;br /&gt;
  $repo --name=local --baseurl=file:///var/tmp/localrepo/ --save&lt;br /&gt;
&lt;br /&gt;
*Run mic2 using the new ks file to generate image&lt;br /&gt;
More mic2 information can reference to [[Image_Creation|Image Creation]]&lt;br /&gt;
&lt;br /&gt;
Here’s an example:&lt;br /&gt;
  $/usr/bin/mic-image-creator --config=/root/mic/ivi-ia32.ks &lt;br /&gt;
&lt;br /&gt;
Once mic-image-creator finished, you can find the new image from the output information.&lt;br /&gt;
&lt;br /&gt;
*Using the new image to install or boot up on device.&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-06T13:49:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* submission to MeeGo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is done by using the upstream project [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)]. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Submit your changes.&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Submission to MeeGo ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release_Infrastructure/BOSS|Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-06T13:48:48Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is done by using the upstream project [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)]. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Submit your changes.&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== submission to MeeGo ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release_Infrastructure/BOSS|Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-06T13:47:10Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is done by using the upstream project [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)]. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Submit your changes.&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release_Infrastructure/BOSS|Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-06T13:46:24Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is done by using the upstream project [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)]. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Submit your changes.&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release_Infrastructure/BOSS|Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Creation</id>
		<title>Image Creation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Creation"/>
				<updated>2011-07-06T13:43:11Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* KickStart Files (configuration files used for image creation) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview = &lt;br /&gt;
&lt;br /&gt;
This is the main Image Creator developer's guide.  For a more simplistic, step-by-step document, go to: [[Image Creation For Beginners]].&lt;br /&gt;
&lt;br /&gt;
The tool used to create MeeGo images is called &amp;quot;MIC2&amp;quot; (to distinguish from obsolete MIC - Moblin Image Creator). MIC is composed of a series of tools to create images, convert images, and do some development work on MeeGo. MIC2 is based primarily on Fedora livecd-tools and appliance-tools.&lt;br /&gt;
&lt;br /&gt;
With MIC2 tools, users can create different types of images for different purposes, including live CD images, live USB images, raw images for KVM, VMDK images for Vmware, vdi images for VirtualBox, loop images for IVI platforms, NAND images for Moorestown platforms, ubi images for N900, fs image for MeeGo developers. Also, users can use MIC2 tools to manipulate images, like transforming an image from a virtual machine to a live image, and providing a chroot environment based on an existing live image. With these features, developers can do development work on a host virtual machine running MeeGo or a Meego chroot environment, and transfer the resulting new live image to a target device for final debug/verification.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document discusses only features, usage guide, and known issues.&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
&lt;br /&gt;
MIC2 offers these major tools:&lt;br /&gt;
* mic-image-creator: create images. &lt;br /&gt;
* mic-image-convertor: convert a raw/vmdk/vdi/live image into a live image. &lt;br /&gt;
* mic-chroot: provide a MeeGo environment from a live/loop image for development, it also can translate that chroot file system into a live image.&lt;br /&gt;
* mic-image-writer: write a MeeGo image to a USB disk. This is a safe alternative to dd.&lt;br /&gt;
&lt;br /&gt;
The following support is provided:&lt;br /&gt;
&lt;br /&gt;
* Supports mainstream Linux distros. MIC2 has been thoroughly tested on these distributions:&lt;br /&gt;
** Meego&lt;br /&gt;
** Fedora (Fedora 13 and above)&lt;br /&gt;
** Opensuse (&amp;gt; OpenSUSE 11.3)&lt;br /&gt;
** and Ubuntu &amp;gt; 10.04&lt;br /&gt;
* Supports various types of images: livecd, liveusb, loop, raw, vmdk, nandmrst, vdi, fs, ubi&lt;br /&gt;
* Supports image coversion from virtual machine/live images to live images.&lt;br /&gt;
* Uses kickstart (.ks) files for image creation. Through this, users can specify which software repositories to use, which packages to install, and basic system configuration directives.  Please refer to http://fedoraproject.org/wiki/Anaconda/Kickstart for more information about kickstart configuration files.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To use MIC2, your host machine (that will run mic2) must have Intel* Atom* or Intel* Core* 2 CPU (support for SSSE3), this is a hard requirement (ARM image is exceptional).&lt;br /&gt;
&lt;br /&gt;
On Fedora, openSUSE and MeeGo, mic2 depends directly on the following packages (they will be automatically installed on installing mic2):&lt;br /&gt;
&lt;br /&gt;
* util-linux&lt;br /&gt;
* coreutils&lt;br /&gt;
* python &amp;gt;= 2.5&lt;br /&gt;
* e2fsprogs&lt;br /&gt;
* dosfstools &amp;gt;= 2.11-8&lt;br /&gt;
* yum &amp;gt;= 3.2.24&lt;br /&gt;
* pykickstart &amp;gt;= 0.96&lt;br /&gt;
* python-iniparse&lt;br /&gt;
* syslinux &amp;gt;= 3.82&lt;br /&gt;
* curl&lt;br /&gt;
* kpartx&lt;br /&gt;
* parted&lt;br /&gt;
* device-mapper&lt;br /&gt;
* zlib&lt;br /&gt;
* rsync&lt;br /&gt;
* /usr/bin/mkisofs&lt;br /&gt;
* wget&lt;br /&gt;
* cpio&lt;br /&gt;
* isomd5sum&lt;br /&gt;
* gzip&lt;br /&gt;
* bzip2&lt;br /&gt;
* squashfs-tools &amp;gt;= 4.0&lt;br /&gt;
* btrfs-progs&lt;br /&gt;
* python-zypp &amp;gt;= 0.5.7&lt;br /&gt;
&lt;br /&gt;
On Debian and Ubuntu, mic2 depends on or recommands or suggests the following packages (they will be automatically installed if possible on installing mic2):&lt;br /&gt;
&lt;br /&gt;
Depends:&lt;br /&gt;
&lt;br /&gt;
* bzip2&lt;br /&gt;
* curl&lt;br /&gt;
* dbus&lt;br /&gt;
* dmsetup&lt;br /&gt;
* dosfstools&lt;br /&gt;
* e2fsprogs (&amp;gt;= 1.41),&lt;br /&gt;
* genisoimage&lt;br /&gt;
* kpartx&lt;br /&gt;
* parted&lt;br /&gt;
* psmisc&lt;br /&gt;
* python-iniparse&lt;br /&gt;
* python-pykickstart (&amp;gt;= 0.96) | pykickstart (&amp;gt;= 0.96),&lt;br /&gt;
* python-urlgrabber&lt;br /&gt;
* rsync&lt;br /&gt;
* squashfs-tools (&amp;gt;= 4.0)&lt;br /&gt;
* syslinux (&amp;gt;= 3.82)&lt;br /&gt;
* yum (&amp;gt;= 3.2)&lt;br /&gt;
&lt;br /&gt;
Recommends:&lt;br /&gt;
&lt;br /&gt;
* binfmt-support&lt;br /&gt;
* btrfs-tools&lt;br /&gt;
* extlinux&lt;br /&gt;
* qemu-user-static&lt;br /&gt;
* udisks | hal&lt;br /&gt;
&lt;br /&gt;
Suggests:&lt;br /&gt;
&lt;br /&gt;
* python-zypp&lt;br /&gt;
&lt;br /&gt;
For source installation, these two packages are necessary:&lt;br /&gt;
&lt;br /&gt;
* zlib-devel(for compiling)&lt;br /&gt;
* python-devel(for installation) &lt;br /&gt;
&lt;br /&gt;
You should load these modules, as well, if they're not loaded automatically by the kernel:&lt;br /&gt;
&amp;lt;br&amp;gt;(Use &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt; to list modules.)&lt;br /&gt;
&lt;br /&gt;
* squashfs&lt;br /&gt;
* squashfs-tools&lt;br /&gt;
* dm_snapshot&lt;br /&gt;
* loop &lt;br /&gt;
&lt;br /&gt;
Specific packages for Ubuntu 8.10:&lt;br /&gt;
&lt;br /&gt;
* python-celementtree&lt;br /&gt;
* python-elementtree&lt;br /&gt;
* dmsetup&lt;br /&gt;
&lt;br /&gt;
=== Installing requirements for Ubuntu 10.10 ===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install yum rpm kpartx parted syslinux isomd5sum kvm zlib1g-dev squashfs-tools python2.6-dev qemu-arm-static python-urlgrabber&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
We currently build MIC2 binary rpms/debs for many popular Linux distributions, including Fedora 13, Fedora 14, Fedora15, Ubuntu 10.04, Ubuntu 10.10, OpenSUSE 11.3, OpenSUSE 11.4, and Debian 5.0. Please go to http://repo.meego.com/tools/repos/ to get a repository URL corresponding to your Linux distribution, then add it into your repo or package source for installation and update later. If your distribution isn't in the support list, please install MIC2 from git source.&lt;br /&gt;
&lt;br /&gt;
=== Binary Package installation ===&lt;br /&gt;
&lt;br /&gt;
* '''Installation Steps For Fedora 13, Fedora 14, and Fedora 15'''&lt;br /&gt;
&lt;br /&gt;
1. Add MIC2 repo as user root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat &amp;lt;&amp;lt;REPO &amp;gt; /etc/yum.repos.d/meego-tools.repo&lt;br /&gt;
[meego-tools]&lt;br /&gt;
name=MeeGo Tools for Fedora&lt;br /&gt;
baseurl=http://repo.meego.com/MeeGo/tools/repos/fedora/\$releasever&lt;br /&gt;
enabled=1&lt;br /&gt;
gpgcheck=1&lt;br /&gt;
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
REPO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Add gpg key as user root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# gpg2 --keyserver subkeys.pgp.net --recv 0BC7BEC479FC1F8A&lt;br /&gt;
# gpg2 --export --armor 0BC7BEC479FC1F8A &amp;gt; /etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install mic2 as user root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# yum install mic2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if you get asked to import the key do so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
warning: rpmts_HdrFromFdno: Header V3 DSA/SHA1 Signature, key ID 79fc1f8a: NOKEY&lt;br /&gt;
meego-fedora/gpgkey                                                                        | 3.3 kB     00:00 ... &lt;br /&gt;
Importing GPG key 0x79FC1F8A:&lt;br /&gt;
 Userid: &amp;quot;Moblin Build (Moblin Build User) &amp;lt;build@moblin.org&amp;gt;&amp;quot;&lt;br /&gt;
 From  : /etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
Is this ok [y/N]: y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Update Steps For Fedora 13, Fedora 14, and Fedora 15'''&lt;br /&gt;
&lt;br /&gt;
You can use the below command to get the latest mic2 package.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# yum update mic2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Installation Steps For Ubuntu 10.04, Ubuntu 10.10, and Debian 5.0'''&lt;br /&gt;
&lt;br /&gt;
1. Add package source&lt;br /&gt;
&lt;br /&gt;
For Ubuntu 10.04, add the below line to /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.04/ /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu 10.10, add the below line to /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.10/ /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For Debian 5.0, add the below line to /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://repo.meego.com/MeeGo/tools/repos/debian/5.0/ /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mic2 is also available in Debian Testing, which will become Debian 6.0. &lt;br /&gt;
&lt;br /&gt;
2. sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
You should see the following error:&lt;br /&gt;
W: GPG error: http://repo.meego.com  Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0BC7BEC479FC1F8A&lt;br /&gt;
&lt;br /&gt;
To add the repository public key use the following command:&lt;br /&gt;
:gpg --keyserver subkeys.pgp.net --recv 0BC7BEC479FC1F8A&lt;br /&gt;
:gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
Note: Often the port used by gpg is blocked in companies, so gpg will time out. You can install it manually; this example is for Ubuntu 10.10:&lt;br /&gt;
:wget http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.10/Release.key&lt;br /&gt;
Open System-&amp;gt;Administrator-&amp;gt;Software Sources. Under the Authentication tab, import the key.&lt;br /&gt;
&lt;br /&gt;
Now redo sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
3. sudo apt-get install mic2&lt;br /&gt;
&lt;br /&gt;
* '''Installation Steps For OpenSUSE 11.3, and OpenSUSE 11.4'''&lt;br /&gt;
&lt;br /&gt;
1. Add repos&lt;br /&gt;
&lt;br /&gt;
For OpenSUSE 11.3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo zypper addrepo http://repo.meego.com/MeeGo/tools/repos/opensuse/11.3/ meego-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For OpenSUSE 11.4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo zypper addrepo http://repo.meego.com/MeeGo/tools/repos/opensuse/11.4/ meego-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. sudo zypper install mic2&lt;br /&gt;
&lt;br /&gt;
* '''Install Steps For OpenSUSE 11.3, and OpenSUSE 11.4'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo zypper install mic2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== From Stable Git Source Releases ===&lt;br /&gt;
&lt;br /&gt;
You can get the latest stable release of MIC2 from the tag section in http://meego.gitorious.org/meego-developer-tools/image-creator.  Click on the &amp;quot;Source tree&amp;quot; link on the top of the screen.  There will be a list of tags on the right hand side.&lt;br /&gt;
&lt;br /&gt;
You should follow the below steps to install it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://gitorious.org/meego-developer-tools/image-creator.git&lt;br /&gt;
cd image-creator&lt;br /&gt;
git checkout 0.17  #check Gitorious for the most recent tag&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== From Development Git Tree ===&lt;br /&gt;
&lt;br /&gt;
Note: MIC2 GIT tree has latest-and-greatest source, so stability is not guaranteed.  If you run into errors, please use a 'Stable Release' instead before filing a bug.&lt;br /&gt;
&lt;br /&gt;
You need to follow the below steps to git clone MIC2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://gitorious.org/meego-developer-tools/image-creator.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd image-creator&lt;br /&gt;
make clean&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should add the repo for mic2 then run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ./tools/mic-check-alldeps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check/install all the depended packages, otherwise mic2 can't work normally.&lt;br /&gt;
&lt;br /&gt;
== Proxy Setting ==&lt;br /&gt;
&lt;br /&gt;
If you need to use proxy to access Internet, you must set proxy for mic2 correctly. Generally, you should export these environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ export http_proxy=&amp;quot;http://proxy.yourcompany.com:8888&amp;quot;&lt;br /&gt;
$ export https_proxy=&amp;quot;http://proxy.yourcompany.com:8888&amp;quot;&lt;br /&gt;
$ export no_proxy=&amp;quot;127.0.0.0/8, .yourcompany.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use sudo to run mic2, you also need to add these into /etc/sudoers in order that they still are valid after sudo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
$ sudo visudo&lt;br /&gt;
&lt;br /&gt;
Add: Defaults env_keep += &amp;quot; no_proxy http_proxy https_proxy&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
so sudo will adhere to the no_proxy and proxy settings.&lt;br /&gt;
&lt;br /&gt;
You also can set proxy in /etc/mic2/mic2.conf or in ~/.mic2.conf by adding the below two lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
proxy=http://proxy.yourcompany.com:8888/&lt;br /&gt;
no_proxy=localhost,127.0.0.0/8,.yourcompany.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, you need to change proxy.yourcompany.com:8888 and .yourcompany.com according to your network.&lt;br /&gt;
&lt;br /&gt;
From mic2 0.23.0 on, mic2 enabled zypp backend, it uses /etc/sysconfig/proxy to get proxy settings, so you also need to create this file (it is a system file in OpenSUSE, so for openSUSE, you just set correct values inside of it) if you need to use proxy to access internet. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#### /etc/sysconfig/proxy sample ####&lt;br /&gt;
## Path:	Network/Proxy&lt;br /&gt;
## Description:	&lt;br /&gt;
## Type:	yesno&lt;br /&gt;
## Default:	no&lt;br /&gt;
## Config:      kde,profiles&lt;br /&gt;
#&lt;br /&gt;
# Enable a generation of the proxy settings to the profile.&lt;br /&gt;
# This setting allows to turn the proxy on and off while&lt;br /&gt;
# preserving the particular proxy setup.&lt;br /&gt;
# &lt;br /&gt;
PROXY_ENABLED=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Type:	string&lt;br /&gt;
## Default:	&amp;quot;&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# Some programs (e.g. lynx, arena and wget) support proxies, if set in&lt;br /&gt;
# the environment.  SuSEconfig can add these environment variables to&lt;br /&gt;
# /etc/SuSEconfig/* (sourced by /etc/profile etc.) -&lt;br /&gt;
# See http://portal.suse.com/sdb/en/1998/01/lynx_proxy.html for more details.&lt;br /&gt;
# Example: HTTP_PROXY=&amp;quot;http://proxy.provider.de:3128/&amp;quot;&lt;br /&gt;
HTTP_PROXY=&amp;quot;http://proxy.yourcompany.com:8888/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Type:	string&lt;br /&gt;
## Default:	&amp;quot;&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# Some programs (e.g. lynx, arena and wget) support proxies, if set in&lt;br /&gt;
# the environment.  SuSEconfig can add these environment variables to&lt;br /&gt;
# /etc/SuSEconfig/* (sourced by /etc/profile etc.) -&lt;br /&gt;
# this setting is for https connections&lt;br /&gt;
HTTPS_PROXY=&amp;quot;http://proxy.yourcompany.com:8888/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Type:	string&lt;br /&gt;
## Default:	&amp;quot;&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# Example: FTP_PROXY=&amp;quot;http://proxy.provider.de:3128/&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
FTP_PROXY=&amp;quot;http://proxy.yourcompany.com:8888/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Type:	string&lt;br /&gt;
## Default:	&amp;quot;&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# Example: GOPHER_PROXY=&amp;quot;http://proxy.provider.de:3128/&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
GOPHER_PROXY=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Type:	string(localhost)&lt;br /&gt;
## Default:	localhost&lt;br /&gt;
#&lt;br /&gt;
# Example: NO_PROXY=&amp;quot;www.me.de, do.main, localhost&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
NO_PROXY=&amp;quot;localhost, 127.0.0.1, .yourcompany.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#### /etc/sysconfig/proxy sample ####&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change proxy.yourcompany.com:8888 and .yourcompany.com according to your network. By default, zypp will be used, but you can use option --pkgmgr=yum to force mic2 to use yum, you can do so if you find zypp can't work for you, but remember to file a bug on http://bugs.meego.com/enter_bug.cgi?product=Development%20Tools&amp;amp;component=MIC%20(Image%20Creator) if you find any issue related to zypp.&lt;br /&gt;
&lt;br /&gt;
An option --proxy for repo command in kickstart file also can set proxy, you can specify it as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  repo --name=meego --baseurl=http://repo.meego.com/trunk/repo/ia32/os/ --proxy=http://proxyhost:proxyport/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to add two more options to repo if your proxy needs user authentication:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
repo --name=meego --baseurl=http://repo.meego.com/trunk/repo/ia32/os/ --proxy=http://proxyhost:proxyport/ --proxyuser=proxyusername --proxypaswd=proxyuserpassword&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running mic-image-creator ==&lt;br /&gt;
&lt;br /&gt;
Configuration of images is based on kickstart, the format used for unattended installation in Fedora and Redhat.&lt;br /&gt;
&lt;br /&gt;
Super user privileges are needed. The tool is more or less self-documented, use the --help option to see options.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating Supported Image Types ===&lt;br /&gt;
&lt;br /&gt;
KickStart (.ks) configuration files are passed to MIC2 to create tailored images.  KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
creating arm images needs 'qemu-arm' os 'qemu-arm-static' command available, and creating vdi or vmdk images needs 'vboxmanager' available, so be sure your system have installed them before creating these types of images.&lt;br /&gt;
&lt;br /&gt;
To obtain the official Meego .ks files, go here: http://wiki.meego.com/Image_Creation#Official_Meego_.ks_files&lt;br /&gt;
&lt;br /&gt;
'''Create ARMv7 Images'''&lt;br /&gt;
&lt;br /&gt;
When creating images for ARMv7 hardware, pass ''--arch=armv7hl'' to ''mic-image-creator'' commands.&lt;br /&gt;
&lt;br /&gt;
'''Create Livecd Image'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=livecd --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This tells image-creator to use the kickstart file default.ks to obtain info about which packages to download and include in the image, and --cache is the directory on your local machine which will host a cache of these packages. The cache is very useful if you are remote to the server and reduces the amount of downloaded packages next time you create an image. Next time the command is run, this cache will simply be 'updated' if there are changes, rather than re-downloading from the repositories again.&lt;br /&gt;
&lt;br /&gt;
The output of this command will be a file named meego-1.2-default-XX.iso created. This ISO image is a hybrid image and can be either written to a disk device or burned onto a cd.&lt;br /&gt;
&lt;br /&gt;
To burn it onto a USB stick, just run the following command, assuming the USB stick is /dev/sdb in your system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-writer meego-1.2-default-XX.iso&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create Moorestown NAND Image'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=mrstnand&lt;br /&gt;
&lt;br /&gt;
remove the first 512 bytes from the image to remove the partition information.&lt;br /&gt;
sudo dd bs=512 skip=1 if=meego-1.2-default-XX-sda.bin of= meego-1.2-default-XX-nand.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create Liveusb Image'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=liveusb --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.0-default-XX.usbimg will be created. To burn it onto a USB stick, run the following command, assuming the USB stick is /dev/sdb in your system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-writer meego-1.2-default-XX.usbimg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This image has a FAT file system and can be mounted easily on Windows and other OSes.&lt;br /&gt;
&lt;br /&gt;
'''Create Liveusb Image Interactively'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=liveusb --interactive --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It directly creates a MeeGo live usb stick.&lt;br /&gt;
&lt;br /&gt;
Liveusb image can be created in two different ways, interactive and non-interactive (default). When running MIC2 in a non-interactive mode, MIC2 creates a USB images file that can be copied directly into a USB stick. The non-interactive mode can be used for daily build or automated testing. The interactive mode will write the images onto a USB disk, it will detect if a USB stick is available and detects and verifies a partition is available. If two or more USB devices are present, you will be asked to select the target device. This way the contents of the existing USB stick won't be destroyed unless no appropriate partition is found, end user should use it to create the live USB.&lt;br /&gt;
&lt;br /&gt;
'''Create Loop Image'''&lt;br /&gt;
&lt;br /&gt;
This is the simplest image format available. Such images can be loop mounted and chrooted into, for example, to build applications or for debugging purposes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=loop --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.2-default-XX.img is created. You can use below to mount it and chroot into it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mount -o loop meego-1.2-default-XX.img /mnt&lt;br /&gt;
sudo chroot /mnt su -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create KVM Image'''&lt;br /&gt;
&lt;br /&gt;
Can be used with QEMU or other VMM applications to launch MeeGo as a virtualized instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=raw --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.2-default-XX folder with a meego-1.2-default-XX-sda.raw image is created. For optimal results, use this feature in a machine with VT support and enable it in the BIOS.&lt;br /&gt;
&lt;br /&gt;
If you use Fedora or openSUSE, run the following command to launch the image into MeeGo KVM virtual machine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo qemu-kvm -m 512 -boot c -hda meego-1.2-default-XX-sda.raw -std-vga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use Ubuntu, run the following command launch image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo kvm -m 512 -boot c -hda meego-1.2-default-XX-sda.raw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create VMDK Image'''&lt;br /&gt;
&lt;br /&gt;
VMDK images can be loaded into Vmware or Vmware player. MIC2 also generates a VMX file that has image configuration and can be used to launch the image in Vmware by just clicking the file. If you have vmplayer, it should open automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --config=default.ks --format=vmdk --cache=mycache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A file named meego-1.2-default-XX folder with both meego-1.2-default-XX-sda.vmdk image and meego-1.2-default-XX-sda.vmx is created. Just run vmware or vmware player, and select the generated vmx file.&lt;br /&gt;
&lt;br /&gt;
=== KickStart Files (configuration files used for image creation) ===&lt;br /&gt;
&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== MIC2 Configuration file ===&lt;br /&gt;
&lt;br /&gt;
MIC2 options can be specified in a global configuration file ('''/etc/mic2/mic2.conf''') and local configuration file ('''$HOME/.mic2.conf'''), where you can specify: &lt;br /&gt;
* Repository configuration&lt;br /&gt;
* proxy settings&lt;br /&gt;
* cache directories and &lt;br /&gt;
* other variables &lt;br /&gt;
that you normally would have to re-type in your command-line. &lt;br /&gt;
&lt;br /&gt;
The two configuration files have the same format, /etc/mic2/mic2.conf is global, no matter whoever is running MIC2, this configuration file will be read first, $HOME/.mic2.conf is just valid for current user, every user can have their own settings.&lt;br /&gt;
The final configuration is a combination of two configuration files, options in '''$HOME/.mic2.conf''' will override those from '''/etc/mic2/mic2.conf'''. Options from command line have the highest priority. &lt;br /&gt;
If an option is specified on the command line, the same option in both configuration files, global and local will be ignored.&lt;br /&gt;
&lt;br /&gt;
Below is an example you can cut-and-paste, and reuse for your needs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[main]&lt;br /&gt;
cachedir=/home/user1/mycache&lt;br /&gt;
tmpdir=/home/user1/mystorage/tmp&lt;br /&gt;
outdir=/home/user1/mystorage&lt;br /&gt;
proxy=http://my.proxy.com:911/&lt;br /&gt;
no_proxy=localhost,127.0.0.0/8,.mysite.com,172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''cachedir'' = directory where the cached repo(s) will reside.  With this variable set, you do not need to pass the --cache flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''tmpdir'' = temporary directory used by MIC2 when creating images.  With this variable set, you do not need to pass the --tmpdir flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''outdir'' = where your images will reside once they are created.  With this variable set, you do not need to pass the --outdir flag in the command-line.&lt;br /&gt;
&lt;br /&gt;
''proxy'' = specify your proxy if you're behind a behind a firewall.&lt;br /&gt;
&lt;br /&gt;
''no_proxy'' = specify what domains should not sure the proxy setting.&lt;br /&gt;
&lt;br /&gt;
''image_format'' = specify image format.&lt;br /&gt;
&lt;br /&gt;
''default_ks'' = specify a default kickstart file, there are several kickstart files provided in repository http://repo.meego.com/MeeGo/devel/trunk/repo/ia32/os/&lt;br /&gt;
&lt;br /&gt;
'''Note:''' When specifying proxy and no_proxy, you do not need to use the --proxy flag in your .ks files when referring to repos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In configuration files, you also can specify one or multiple repositories, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[trunk]&lt;br /&gt;
name=trunk&lt;br /&gt;
baseurl=http://repo.meego.com/MeeGo/devel/trunk/repo/ia32/os/&lt;br /&gt;
enabled=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once there is this repository info in your configuration files, and both image_format and default_ks are set, you can just run &amp;quot;sudo mic-image-creator&amp;quot; to create a image, there isn't any extra argument needed.&lt;br /&gt;
&lt;br /&gt;
=== Use Bootstrap ===&lt;br /&gt;
&lt;br /&gt;
MIC2 highly depends on yum and librpm, but different Linux distributions used diffrent yum and librpm versions, so MIC2 has some compatibility issues on OpenSUSE, Ubuntu and Debian, bootstrap is just for fixing these compatibility issues.&lt;br /&gt;
&lt;br /&gt;
bootstrap is a minimal MeeGo file system, MIC2 can run very smoothly on it using chroot mode. You can use the below command to create a bootstrap:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-create-bootstrap -n trunk -k /your/repo/cache/path -r http://repo.meego.com/MeeGo/builds/trunk/latest/repos/oss/ia32/packages/ -o /your/final/bootstrap&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
NOTE: The repo-url specific for your needs may differ&lt;br /&gt;
&lt;br /&gt;
-n is used to specify repository name, if you have its cache before, it can reduce runtime dramatically to use it with -k option, -k is used to specify your repository cache dir, -r is used to specify MeeGo main repository.&lt;br /&gt;
&lt;br /&gt;
Once you created your bootstrap, you can use this bootstrap to run MIC2 as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --bootstrap=/your/final/bootstrap --format=livecd --config=default.ks --cache=/your/repo/cache/path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can create and use bootstrap in one mic-image-creator run, as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-creator --build-bootstrap --bootstrap=/your/final/bootstrap --format=livecd --config=default.ks --cache=/your/repo/cache/path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running mic-image-writer ==&lt;br /&gt;
&lt;br /&gt;
mic-image-writer writes a Meego image to a USB disk as an alternative to dd.&lt;br /&gt;
&lt;br /&gt;
mic-image-writer can run in both console mode and GUI mode. It can decide which mode to run, according to current system environment. You can also use a given option to force it to run in some other mode. Run 'mic-image-writer --help' to get usage information:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Usage: mic-image-writer [options] [image file]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
  -h, --help     Show this help message and exit&lt;br /&gt;
  -c, --console  Run in console mode&lt;br /&gt;
  -g, --gui      Run in GUI mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here is a run example in console mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mic-image-writer meego-xxx.img&lt;br /&gt;
Available usb disk:&lt;br /&gt;
        [1] /dev/sdc: SanDisk USB Flash Drive&lt;br /&gt;
        [2] /dev/sdb: SanDisk U3 Cruzer Micro&lt;br /&gt;
Please choice [1..2] ? 2&lt;br /&gt;
Source: /myhome/meego-xxx.img&lt;br /&gt;
Target: /dev/sdb&lt;br /&gt;
Image size: 559 MB&lt;br /&gt;
Estimated time: 55 seconds&lt;br /&gt;
Elapsed time: 64, progress: 100% 8944+0 records in&lt;br /&gt;
8944+0 records out&lt;br /&gt;
586153984 bytes (586 MB) copied, 63.0486 s, 9.3 MB/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mic-image-writer can estimate how long it will take to write the given image to your USB disk and reports current writing progress. It automatically unmounts your USB disk, if it is mounted. If your USB can't be unmounted, it will terminate.&lt;br /&gt;
&lt;br /&gt;
If you love UI mode, you can run it in X enviroment. The command with the added -g flag:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-writer -g meego-xxx.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Image name is optional.&lt;br /&gt;
&lt;br /&gt;
== Running mic-image-convertor ==&lt;br /&gt;
&lt;br /&gt;
It's very easy to use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-convertor --source-image=InputImage --target-format=Targegformat&lt;br /&gt;
&lt;br /&gt;
sudo mic-image-convertor -I InputImage -T Targegformat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, to translate a KVM raw image to livecd image, just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-image-convertor --source-image=meego-core-200902200545/meego-core-200902200545-sda.raw --target-format=livecd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A new livecd image of meego-converted-from-raw-200902201804.iso is generated. The tool can detect the type of input image, either raw or vmdk.&lt;br /&gt;
&lt;br /&gt;
This tool is very useful. For example, the developer can launch a virtual machine running MeeGo v2 and make whatever changes on the virtual system like yum install/remove a package, scp a source tarball to VM and build and try, and etc. Then with a simple &amp;quot;sync&amp;quot; or shutdown of VM, the VM image now contains his changes. With this tool, the VM image can be transformed to a live image and burned to a USB flash disk. Now developers can have final verifications in a target device, with changes in the live system.&lt;br /&gt;
&lt;br /&gt;
== Running mic-chroot ==&lt;br /&gt;
&lt;br /&gt;
There are two major usage models for mic-chroot for developers.&lt;br /&gt;
&lt;br /&gt;
'''chroot directly into the image to use it as a development environment, then optionally create a new image based off of your changes'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-chroot  -c livecd meego-core-200903131337.iso&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above command would present a chroot, using the livecd image, to developers with some bind mounts like /proc /sys /dev/pts and /parentroot. With those bind mounts, developers now can easily exchange files in chroot env with host /parentroot, and conduct yum install, yum remove and any other network related operations. After done and typing &amp;quot;exit&amp;quot;, a new live ISO image is created from the chroot env with the changes developers made.&lt;br /&gt;
&lt;br /&gt;
'''Unpack and modify the image's filesystem (which you can save), and create a new image based off of your changes'''&lt;br /&gt;
&lt;br /&gt;
Sometimes, developers want to keep the chroot env, so that they can do multiple changes in that root file system at different times. So they want to execute following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-chroot -s my-chroot-fs --unpack-only  meego-core-200903131337.iso --bind-mounts=/proc:/proc;/:/parentroot;/sys:/sys;/dev/pts:/dev/pts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above command creates a folder called 'my-chroot-fs' in the current directory, using the chroot environment from the livecd image. Of course, if one forgets to add the --bind-mounts options, you'll need to manually do the bind mounting yourself. Don't forget copying /etc/reslov.conf into my-chroot-fs if you need to use DNS. Should you wish to create an image from the chroot, just execute following to create a livecd image&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mic-chroot -c livecd --convert-only my-chroot-fs/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enabling Autoinstallation ==&lt;br /&gt;
&lt;br /&gt;
You need to copy a kickstart file into /root/mic2-ks.cfg which is used for&lt;br /&gt;
automated installation of the image. To activate autoinstall mode, boot with autoinst on the command line&lt;br /&gt;
or add --menus=autoinst to the bootloader directive in the kickstart file you use to&lt;br /&gt;
create the image.&lt;br /&gt;
&lt;br /&gt;
= Development Release Processes =&lt;br /&gt;
&lt;br /&gt;
http://wiki.meego.com/MIC2_Development_Release_Processes&lt;br /&gt;
&lt;br /&gt;
= Known issues =&lt;br /&gt;
&lt;br /&gt;
* MIC2 is not compatible with Ubuntu 8.04 (Yum package compatibility)&lt;br /&gt;
* MIC2 is not compatible with the initial Ubuntu 9.04.  Make sure you have package libsqlite3-0 of 3.6.10-1ubuntu0.2 or later.&lt;br /&gt;
* MIC2 has some issues on Debian, please refer to [[MIC on Debian]] to get installation instructions&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
You can file a bug on http://bugzilla.meego.com/enter_bug.cgi?product=Development%20Tools (Note: you should select MIC for component) if you run into any MIC2-related issue, bugzilla can track your issue faster and more efficiently.&lt;br /&gt;
&lt;br /&gt;
===libgcc related issues===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
libgcc_s.so.1 must be installed for pthread_cancel to work&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Error: failed to create image : '/sbin/mksquashfs /var/tmp/imgcreate-FKCSsk/iso-u8xCPh/LiveOS/osmin /var/tmp/imgcreate-FKCSsk/iso-u8xCPh/LiveOS/osmin.img' exited with error (-6)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This error occurs when MIC2 is unable to find the proper version of libgcc.  This usually happens on x86_64 systems - MIC2 is looking for the 32 bit version of libgcc, but only the 64 bit version is installed.  Installing the 32 bit version of libgcc should resolve this.&lt;br /&gt;
&lt;br /&gt;
===General squashfs issues===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;Error: failed to create image : '/sbin/mksquashfs /var/tmp/imgcreate-FKCSsk/iso-u8xCPh/LiveOS/osmin /var/tmp/imgcreate-FKCSsk/iso-u8xCPh/LiveOS/osmin.img' exited with error (-6)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This error can also be an issue with the syslinux package.  Try updating to the latest version for your distro.&lt;br /&gt;
&lt;br /&gt;
===device-mapper issues===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unable to remove open device&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a race condition with device-mapper in Fedora:  https://bugzilla.redhat.com/show_bug.cgi?id=506644. Usually rerunning the MIC2 command will resolve this.&lt;br /&gt;
&lt;br /&gt;
===python related issues===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from urlgrabber.grabber import URLGrabber&lt;br /&gt;
ImportError: No module named urlgrabber.grabber&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people are using python they built themselves, so some python modules aren't under their python library path. For such error, only one way is not to use your own python but to use python your system installed.&lt;br /&gt;
&lt;br /&gt;
===debian-based distros related issues===&lt;br /&gt;
On debian-based distros, we used pycentral to package mic2, but mic2 source installtion used distutils, so two kinds of installation have different installation path, if they exist there at the same time, it will result in some unpredictable errors to run mic2. To run it correctly, you can keep only one installation, source or binary.&lt;br /&gt;
&lt;br /&gt;
Remove binary installation&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get remove mic2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove source installation&lt;br /&gt;
&lt;br /&gt;
Get python lib path&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python&lt;br /&gt;
Python 2.5.2 (r252:60911, Sep 30 2008, 15:41:38)&lt;br /&gt;
[GCC 4.3.2 20080917 (Red Hat 4.3.2-4)] on linux2&lt;br /&gt;
Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import distutils.sysconfig&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print distutils.sysconfig.get_python_lib()&lt;br /&gt;
&amp;lt;PYTHONLIBPATH&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove mic2 files&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo rm -rf &amp;lt;PYTHONLIBPATH&amp;gt;/mic&lt;br /&gt;
$ sudo rm -rf &amp;lt;PYTHONLIBPATH&amp;gt;/mic-0.*&lt;br /&gt;
$ sudo rm -f /usr/bin/mic&lt;br /&gt;
$ sudo rm -f /usr/bin/mic-*&lt;br /&gt;
$ sudo rm -f /usr/bin/moblin-*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: You must replace &amp;lt;PYTHONLIBPATH&amp;gt; with the above python lib path&lt;br /&gt;
&lt;br /&gt;
If program jams after mkfs.vfat, it might be due missing ''vol_id'' program. ''vol_id'' is replaced with ''blkid'' in new ubuntu versions. Try run ''/lib/udev/vol_id'', if it's missing you have troubles.&lt;br /&gt;
&lt;br /&gt;
===ARM related issues===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/usr/bin/mic-image-creator&amp;quot;, line 856, in &amp;lt;module&amp;gt;&lt;br /&gt;
    ret = main()&lt;br /&gt;
  File &amp;quot;/usr/bin/mic-image-creator&amp;quot;, line 682, in main&lt;br /&gt;
    run_in_bootstrap(options.bootstrap, argv, bindmounts, arch = options.arch)&lt;br /&gt;
  File &amp;quot;/usr/bin/mic-image-creator&amp;quot;, line 261, in run_in_bootstrap&lt;br /&gt;
    ret = subprocess.call(args, preexec_fn = chroot_bootstrap)&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.5/subprocess.py&amp;quot;, line 444, in call&lt;br /&gt;
    return Popen(*popenargs, **kwargs).wait()&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.5/subprocess.py&amp;quot;, line 594, in __init__&lt;br /&gt;
    errread, errwrite)&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.5/subprocess.py&amp;quot;, line 1149, in _execute_child&lt;br /&gt;
    raise child_exception&lt;br /&gt;
OSError: [Errno 8] Exec format error&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This error occurs when trying to build ARM images without passing ''--arch=armv7l'' to ''meego-image-creator''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Error: Requires qemu version &amp;gt;= 0.13 for armv7hl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you should update the version of 'qemu-arm' or 'qemu-arm-static' to 0.13.0 or above.&lt;br /&gt;
&lt;br /&gt;
Tips: if you encounter arm images creating failed, please try to run bootstrap mode, for armv7hl and armv7nhl is not supported in legacy mode.&lt;br /&gt;
&lt;br /&gt;
===Proxy cache===&lt;br /&gt;
&lt;br /&gt;
See http://bugs.meego.com/show_bug.cgi?id=2343&lt;br /&gt;
&lt;br /&gt;
Some servers (such as with squid as a proxy) may cache more aggressively than&lt;br /&gt;
others, and as a result repomd.xml is invalid (old copy) and&lt;br /&gt;
references out of date metadata files (primary, comps, filelists, etc). This is&lt;br /&gt;
because the server is returning a cached/old copy of repomd.xml.&lt;br /&gt;
&lt;br /&gt;
Proxy cache should be disabled in mic and yum.&lt;br /&gt;
&lt;br /&gt;
= Advanced Hacking Tips = &lt;br /&gt;
&lt;br /&gt;
===replace kernel in live image===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$sudo mic-image-convertor --source-image=&amp;lt;your-netbook.img&amp;gt; --target-format=livecd --shell&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command will give you a chroot environment of MeeGo, you can follow the below steps to replace the default kernel with a new one.&lt;br /&gt;
&lt;br /&gt;
1). remove the old kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -e kernel-netbook&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: execute the above command in chroot environment.&lt;br /&gt;
&lt;br /&gt;
2). copy new kernel to chroot environment of MeeGo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$sudo cp /path/to/kernel-*.rpm /var/tmp/imgcreate-*/install_root/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: execute the above command in your host system.&lt;br /&gt;
&lt;br /&gt;
/path/to/kernel-*.rpm is your new kernel to install, /var/tmp/imgcreate-*/install_root/ is the directory where chroot MeeGo mounted on.&lt;br /&gt;
&lt;br /&gt;
3). install the new kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -ivh /kernel-*.rpm&lt;br /&gt;
# rm /kernel-*.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: execute the above command in chroot environment.&lt;br /&gt;
&lt;br /&gt;
After that, you can find out the new kernel in directory /boot/.&lt;br /&gt;
&lt;br /&gt;
4). update contents of isolinux&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$sudo cp /var/tmp/imgcreate-*/install_root/boot/initrd-*.img  /var/tmp/imgcreate-*/iso-*/isolinux/initrd0.img&lt;br /&gt;
$sudo cp /var/tmp/imgcreate-*/install_root/boot/vmlinuz-*  /var/tmp/imgcreate-*/iso-*/isolinux/vmlinuz0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: execute the above command in your host system.&lt;br /&gt;
&lt;br /&gt;
5. create a new image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE: execute the above command in chroot environment.&lt;br /&gt;
&lt;br /&gt;
After following all the above steps, you'll have a new image.&lt;br /&gt;
&lt;br /&gt;
===build btrfs image===&lt;br /&gt;
From version 0.20.1 on, mic2 can support btrfs, you can create btrfs image by change fstype=ext3 in your kickstart file to fstype=btrfs. A successful creation will depend on btrfs-progs (btrfs-tools on debian-based distros, btrfsprogs on openSUSE) and btrfs kernel module in your local system, the known issue is we can't create btrfs image on Fedora 11, the issue is the default btrfs kernel module has some issue which will make kernel panic, so for this case, you must make sure you have a stable and latest kernel and btrfs-progs 0.19 on your system. You'll need to build your kernel by yourself and use it to boot your system.&lt;br /&gt;
&lt;br /&gt;
Btrfs-progs is a prerequisite tool, it includes /sbin/mkfs.btrfs, but its version must match btrfs kernel module, so you must ensure this, mic2 repo http://repo.meego.com/MeeGo/tools/repos/ has an issue which will install btrfs-progs 0.19 when you install mic2, this is an repo sync error, so please make sure you have your distro's btrfs-progs after mic2 is installed, if your distro's btrfs-progs version is 0.19, this isn't an issue, otherwise you must remove btrfs-progs installation introduced by mic2 and reinstall your distro's btrfs-progs.&lt;br /&gt;
&lt;br /&gt;
How to build btrfs image on Fedora 11 or lower version?&lt;br /&gt;
&lt;br /&gt;
# Download kernel-2.6.34 or kernel-2.6.35&lt;br /&gt;
# Configure btrfs as module&lt;br /&gt;
# make; make modules; make install; make modules_install&lt;br /&gt;
# Reboot your system using this built-newly kernel&lt;br /&gt;
# Install btrfs-progs 0.19&lt;br /&gt;
&lt;br /&gt;
Done, you're ready for creating btrfs image.&lt;br /&gt;
&lt;br /&gt;
===Metapackages, Patterns, and Repository Creation===&lt;br /&gt;
Meta-packages are discouraged in MeeGo.  The preferred method is to use patterns in the repository (supported by both zypper and mic2).  This is done by creating a patterns.xml file, which is a fairly simple XML file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;pattern xmlns:rpm=&amp;quot;http://linux.duke.edu/metadata/rpm&amp;quot;&lt;br /&gt;
         xmlns=&amp;quot;http://novell.com/package/metadata/suse/pattern&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;name&amp;gt;meego-core&amp;lt;/name&amp;gt;&lt;br /&gt;
   &amp;lt;summary&amp;gt;MeeGo Core&amp;lt;/summary&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;Packages needed for Compliance&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;uservisible/&amp;gt;&lt;br /&gt;
   &amp;lt;category lang=&amp;quot;en&amp;quot;&amp;gt;Base Group&amp;lt;/category&amp;gt;&lt;br /&gt;
   &amp;lt;rpm:requires&amp;gt;&lt;br /&gt;
      &amp;lt;rpm:entry name=&amp;quot;pam&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;rpm:entry name=&amp;quot;rootfiles&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;rpm:entry name=&amp;quot;bash&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;rpm:entry name=&amp;quot;sysvinit&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;!-- ...etc... --&amp;gt;&lt;br /&gt;
   &amp;lt;/rpm:requires&amp;gt;&lt;br /&gt;
&amp;lt;/pattern&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The detailed documentation for this XML schema may be found on the [http://en.opensuse.org/openSUSE:Standards_Rpm_Metadata OpenSuSe Wiki].  There is also a Relax NG schema found in the source code for [http://gitorious.org/opensuse/libzypp libzypp] (buried in the folder zypp/parser/yum/schema).&lt;br /&gt;
&lt;br /&gt;
In MeeGo's [http://meego.gitorious.org/meego-os-base/package-groups package-groups], you can find several utilities, style sheets, and examples for how to create patterns and convert them to groups (comps).&lt;br /&gt;
&lt;br /&gt;
Once you have both a patterns.xml and comps.xml file, you can create your repository like this.  (For brevity, assuming a simple 'packages' repository.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    ## Copy RPM packages to a folder, repos/&lt;br /&gt;
    $ mkdir -p repos/repodata&lt;br /&gt;
    $ cp -f patterns.xml comps.xml repos/repodata&lt;br /&gt;
    $ createrepo -g repos/repodata/comps.xml repos/&lt;br /&gt;
    $ modifyrepo repos/repodata/patterns.xml repos/repodata&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, GPG sign your repos/repodata/repomd.xml file.  Note that `modifyrepo` is a part of the `createrepo` package.&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T13:40:13Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Generate .ks file from Kickstarter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release: http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example: http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg should NOT be included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
packages 'carrick' and 'package-xyz' will _not_ be included in the image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should be removed also, otherwise MIC2 will ignore your request and keep that package in the image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it will include both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is created.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generate .ks file from Kickstarter ==&lt;br /&gt;
You can also create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
=== Kickstarter ===&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files, please get from the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
This file has the definition of configurations. The Configurations inherit from platforms first then from the DEFAULT section. The image configurations override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
=== image-configuration ===&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk &lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T13:39:19Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Add Packages Groups and Packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release: http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example: http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg should NOT be included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
packages 'carrick' and 'package-xyz' will _not_ be included in the image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should be removed also, otherwise MIC2 will ignore your request and keep that package in the image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it will include both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is created.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generate .ks file from Kickstarter ==&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
=== Kickstarter ===&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files, please get from the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
This file has the definition of configurations. The Configurations inherit from platforms first then from the DEFAULT section. The image configurations override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
=== image-configuration ===&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk &lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T13:37:59Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Official Meego .ks files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release: http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example:&lt;br /&gt;
 http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: &lt;br /&gt;
 https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg should NOT be included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
packages 'carrick' and 'package-xyz' will _not_ be included in the image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should be removed also, otherwise MIC2 will ignore your request and keep that package in the image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it will include both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is created.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generate .ks file from Kickstarter ==&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
=== Kickstarter ===&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files, please get from the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
This file has the definition of configurations. The Configurations inherit from platforms first then from the DEFAULT section. The image configurations override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
=== image-configuration ===&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk &lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T13:23:18Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example:&lt;br /&gt;
 http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: &lt;br /&gt;
 https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg should NOT be included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
packages 'carrick' and 'package-xyz' will _not_ be included in the image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should be removed also, otherwise MIC2 will ignore your request and keep that package in the image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it will include both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is created.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generate .ks file from Kickstarter ==&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
=== Kickstarter ===&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files, please get from the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
This file has the definition of configurations. The Configurations inherit from platforms first then from the DEFAULT section. The image configurations override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
=== image-configuration ===&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk &lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T13:21:44Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* image-configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example:&lt;br /&gt;
 http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: &lt;br /&gt;
 https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg should NOT be included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
packages 'carrick' and 'package-xyz' will _not_ be included in the image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should be removed also, otherwise MIC2 will ignore your request and keep that package in the image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it will include both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is created.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generate .ks file from Kickstarter ==&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
=== Kickstarter ===&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files, please get from the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
This file has the definition of configurations. The Configurations inherit from platforms first then from the DEFAULT section. The image configurations override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T13:19:29Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Kickstarter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example:&lt;br /&gt;
 http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: &lt;br /&gt;
 https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg should NOT be included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
packages 'carrick' and 'package-xyz' will _not_ be included in the image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should be removed also, otherwise MIC2 will ignore your request and keep that package in the image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it will include both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is created.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generate .ks file from Kickstarter ==&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
=== image-configuration ===&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk &lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
=== Kickstarter ===&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files, please get from the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
This file has the definition of configurations. The Configurations inherit from platforms first then from the DEFAULT section. The image configurations override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T13:16:56Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* MeeGo Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example:&lt;br /&gt;
 http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: &lt;br /&gt;
 https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg should NOT be included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
packages 'carrick' and 'package-xyz' will _not_ be included in the image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should be removed also, otherwise MIC2 will ignore your request and keep that package in the image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it will include both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is created.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generate .ks file from Kickstarter ==&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
=== image-configuration ===&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk &lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T13:10:25Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Post scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example:&lt;br /&gt;
 http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: &lt;br /&gt;
 https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg should NOT be included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
packages 'carrick' and 'package-xyz' will _not_ be included in the image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should be removed also, otherwise MIC2 will ignore your request and keep that package in the image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it will include both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is created.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T13:07:56Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Remove Packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example:&lt;br /&gt;
 http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: &lt;br /&gt;
 https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg should NOT be included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
packages 'carrick' and 'package-xyz' will _not_ be included in the image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should be removed also, otherwise MIC2 will ignore your request and keep that package in the image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it will include both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T12:58:21Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* How MIC2 picks a package when different versions are available */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example:&lt;br /&gt;
 http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: &lt;br /&gt;
 https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T12:41:27Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Add Packages and Package Groups */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example:&lt;br /&gt;
 http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The Meego package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-Meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: &lt;br /&gt;
 https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-06T12:22:35Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Distribution Infrastructure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is done by using the upstream project [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)]. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Submit your changes.&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release_Infrastructure/BOSS|Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:15:46Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Modify your .ks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T09:30:02Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* MeeGo Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T09:29:24Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Modify your .ks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T09:27:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Official Meego .ks files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T02:14:02Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: Created page with &amp;quot;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
== Kickstarter ==&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-06T02:09:07Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Image Creation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is done by using the upstream project [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)]. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Sumbmit your changes.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
* MeeGo is using RPM as package end and ZYpper for repo &lt;br /&gt;
** [[List of MeeGo releases and repos]]&lt;br /&gt;
* MeeGo is using Open Build System (OBS) for building: [[OBS basic]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations - KickStart Files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-05T14:30:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Package Management and Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using [http://www.rpm.org/max-rpm/index.html RPM] package end. The RPM packages are managed in [http://wiki.meego.com/Zypper Zypper] repos. The MeeGo development is done by using the upstream project [http://wiki.opensuse.org/Portal:Build_Service Open Build Service (OBS)]. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Sumbmit your changes.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
* MeeGo is using RPM as package end and ZYpper for repo &lt;br /&gt;
** [[List of MeeGo releases and repos]]&lt;br /&gt;
* MeeGo is using Open Build System (OBS) for building: [[OBS basic]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations &amp;amp; KS files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Recompile_kernel</id>
		<title>Recompile kernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Recompile_kernel"/>
				<updated>2011-07-05T14:13:44Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Recompiling the MeeGo Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the kernel recompilation process. There is also information on how to [[MeeGo kernel documentation for contributors|configure the MeeGo kernel]]. There already is a guide on how to compile the kernel for MeeGo, including links to packaging: [[Tips on compiling and packaging kernels in MeeGo]].&lt;br /&gt;
&lt;br /&gt;
== Fetch the kernel source ==&lt;br /&gt;
&lt;br /&gt;
The first thing you'll need to do to recompile the MeeGo kernel is to download and unpack the MeeGo kernel package. To get that package you can download it with wget like this;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/source/kernel-2.6.37.2-8.27.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can of course get your kernel directly from upstream at kernel.org for example or clone it from MeeGo's git repos;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://gitorious.org/meego-os-base/kernel-source.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unpack source rpm ==&lt;br /&gt;
&lt;br /&gt;
If you take the packaged MeeGo kernel, then you'll need to unpack this rpm. You can do that this way;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm2cpio kernel-2.6.37.2-8.27.src.rpm | cpio -id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modify source code ==&lt;br /&gt;
&lt;br /&gt;
Your development work should be in the kernel source code directory, you may do the follow modification:&lt;br /&gt;
* If you want to add a patch, you need copy the patch to current directory and add this patch in spec file. &lt;br /&gt;
* If you wan to remove patches, you just need to remove them in spec file. &lt;br /&gt;
* If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
== Re-build kernel ==&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows: &lt;br /&gt;
&lt;br /&gt;
 build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 kernel.spec \&lt;br /&gt;
 ---dist  /usr/lib/build/configs/meego-1.2.conf &lt;br /&gt;
binary RPM package can be found in /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==Trouble shooting==&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed ===&lt;br /&gt;
If you encounter &amp;quot;rpm verify failed&amp;quot; issue while executing build. You need to download the meego-release pacakge from repo, and import the gpg key in meego-release package.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
  rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
  rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&lt;br /&gt;
=== build kernel on 64 bit system ===&lt;br /&gt;
You may encounter some issue while your host system is 64 bit, in this case, you'd better go into the chroot env, and build it manually. for example: you may met the follow error while building kernel &lt;br /&gt;
  -----------------------------------------------------------------&lt;br /&gt;
  ----- building kernel.spec (user abuild)&lt;br /&gt;
  -----------------------------------------------------------------&lt;br /&gt;
  -----------------------------------------------------------------&lt;br /&gt;
  + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' /home/abuild/rpmbuild/SOURCES/kernel.spec&lt;br /&gt;
  error: Architecture is not included: x86_64&lt;br /&gt;
You can follow the steps to solve this :&lt;br /&gt;
&lt;br /&gt;
  [root@xq-desktop development]# chroot /var/tmp/mybuildroot/&lt;br /&gt;
  bash-3.2# su abuild&lt;br /&gt;
  bash-3.2$ exec rpmbuild -ba --define '_srcdefattr (-,root,root)' /home/abuild/rpmbuild/SOURCES/kernel.spec --target=i686&lt;br /&gt;
&lt;br /&gt;
You may also meet compiling error as follows:&lt;br /&gt;
  sorry, unimplemented: 64-bit mode not compiled in&lt;br /&gt;
To solve this issue, you still need to go into chroot, and exclude -m64 options in CFLAGS CXXFLAGS and CPPFLAGS.&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Recompile_kernel</id>
		<title>Recompile kernel</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Recompile_kernel"/>
				<updated>2011-07-05T14:13:10Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Environment setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Recompiling the MeeGo Kernel==&lt;br /&gt;
&lt;br /&gt;
This page explains the kernel recompilation process. There is also information on how to [[MeeGo kernel documentation for contributors|configure the MeeGo kernel]]. There already is a guide on how to compile the kernel for MeeGo, including links to packaging: [[Tips on compiling and packaging kernels in MeeGo]].&lt;br /&gt;
&lt;br /&gt;
== Fetch the kernel source ==&lt;br /&gt;
&lt;br /&gt;
The first thing you'll need to do to recompile the MeeGo kernel is to download and unpack the MeeGo kernel package. To get that package you can download it with wget like this;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/source/kernel-2.6.37.2-8.27.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can of course get your kernel directly from upstream at kernel.org for example or clone it from MeeGo's git repos;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://gitorious.org/meego-os-base/kernel-source.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unpack source rpm ==&lt;br /&gt;
&lt;br /&gt;
If you take the packaged MeeGo kernel, then you'll need to unpack this rpm. You can do that this way;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm2cpio kernel-2.6.37.2-8.27.src.rpm | cpio -id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modify source code ==&lt;br /&gt;
&lt;br /&gt;
Your development work should be in the kernel source code directory, you may do the follow modification:&lt;br /&gt;
* If you want to add a patch, you need copy the patch to current directory and add this patch in spec file. &lt;br /&gt;
* If you wan to remove patches, you just need to remove them in spec file. &lt;br /&gt;
* If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
== Re-build kernel ==&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows: &lt;br /&gt;
&lt;br /&gt;
 build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 kernel.spec \&lt;br /&gt;
 ---dist  /usr/lib/build/configs/meego-1.2.conf &lt;br /&gt;
binary RPM package can be found in /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==Trouble shooting==&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed ===&lt;br /&gt;
If you encounter &amp;quot;rpm verify failed&amp;quot; issue while executing build. You need to download the meego-release pacakge from repo, and import the gpg key in meego-release package.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
  rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
  rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&lt;br /&gt;
=== build kernel on 64 bit system ===&lt;br /&gt;
You may encounter some issue while your host system is 64 bit, in this case, you'd better go into the chroot env, and build it manually. for example: you may met the follow error while building kernel &lt;br /&gt;
  -----------------------------------------------------------------&lt;br /&gt;
  ----- building kernel.spec (user abuild)&lt;br /&gt;
  -----------------------------------------------------------------&lt;br /&gt;
  -----------------------------------------------------------------&lt;br /&gt;
  + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' /home/abuild/rpmbuild/SOURCES/kernel.spec&lt;br /&gt;
  error: Architecture is not included: x86_64&lt;br /&gt;
You can follow the steps to solve this :&lt;br /&gt;
&lt;br /&gt;
  [root@xq-desktop development]# chroot /var/tmp/mybuildroot/&lt;br /&gt;
  bash-3.2# su abuild&lt;br /&gt;
  bash-3.2$ exec rpmbuild -ba --define '_srcdefattr (-,root,root)' /home/abuild/rpmbuild/SOURCES/kernel.spec --target=i686&lt;br /&gt;
&lt;br /&gt;
You may also meet compiling error as follows:&lt;br /&gt;
  sorry, unimplemented: 64-bit mode not compiled in&lt;br /&gt;
To solve this issue, you still need to go into chroot, and exclude -m64 options in CFLAGS CXXFLAGS and CPPFLAGS.&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T14:11:06Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Install 'build' */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using 'build' ==&lt;br /&gt;
=== Install 'build' ===&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
&lt;br /&gt;
* If your host is MeeGo, you need to install one more package 'perl-XML-Parser'&lt;br /&gt;
&lt;br /&gt;
=== Setup ===	&lt;br /&gt;
After you install it, you can run “build –help” to get help info. You need to run 'build' as root. &lt;br /&gt;
&lt;br /&gt;
* Proxy&lt;br /&gt;
If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Conf file&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* GPG Key&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build a package ===	&lt;br /&gt;
&lt;br /&gt;
* Build from src rpm&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* Build from Spec file&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Build with multiple repository&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* Specify cache dir&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
=== Unpack &amp;amp; make change ===&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
=== Build the package ===&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
=== rpm verify failed ===&lt;br /&gt;
If you meet below error, please import GPG key first, if the issue still exist and you are using Ubuntu10.04, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Steps to fix:&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
You may have such issue when using 'build' to create a armv7l rpm package, please see detailed solution for the distro&lt;br /&gt;
* Fedora13&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm', and its output should show &amp;quot;statically linked&amp;quot;, if not, you can re-install the qemu package(the package maybe changes, you can go the web address to get it, then install it).&lt;br /&gt;
 $file /usr/bin/qemu-arm&lt;br /&gt;
 $sudo rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm  &lt;br /&gt;
* Ubuntu10.04&lt;br /&gt;
Please install 'qemu-arm-static'&lt;br /&gt;
 $sudo apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
* Debian&lt;br /&gt;
Please install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
'Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory'&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm, modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf, change armv7el to armv7l in these files, maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T14:05:01Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using 'build' ==&lt;br /&gt;
=== Install 'build' ===&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
&lt;br /&gt;
=== Setup ===	&lt;br /&gt;
After you install it, you can run “build –help” to get help info. You need to run 'build' as root. &lt;br /&gt;
&lt;br /&gt;
* Proxy&lt;br /&gt;
If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Conf file&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* GPG Key&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build a package ===	&lt;br /&gt;
&lt;br /&gt;
* Build from src rpm&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* Build from Spec file&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Build with multiple repository&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* Specify cache dir&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
=== Unpack &amp;amp; make change ===&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
=== Build the package ===&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
=== rpm verify failed ===&lt;br /&gt;
If you meet below error, please import GPG key first, if the issue still exist and you are using Ubuntu10.04, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Steps to fix:&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
You may have such issue when using 'build' to create a armv7l rpm package, please see detailed solution for the distro&lt;br /&gt;
* Fedora13&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm', and its output should show &amp;quot;statically linked&amp;quot;, if not, you can re-install the qemu package(the package maybe changes, you can go the web address to get it, then install it).&lt;br /&gt;
 $file /usr/bin/qemu-arm&lt;br /&gt;
 $sudo rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm  &lt;br /&gt;
* Ubuntu10.04&lt;br /&gt;
Please install 'qemu-arm-static'&lt;br /&gt;
 $sudo apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
* Debian&lt;br /&gt;
Please install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
'Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory'&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm, modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf, change armv7el to armv7l in these files, maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T13:54:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using 'build' ==&lt;br /&gt;
=== Install 'build' ===&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
&lt;br /&gt;
=== Setup ===	&lt;br /&gt;
After you install it, you can run “build –help” to get help info. You need to run 'build' as root. &lt;br /&gt;
&lt;br /&gt;
* Proxy&lt;br /&gt;
If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Conf file&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* GPG Key&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build a package ===	&lt;br /&gt;
&lt;br /&gt;
* Build from src rpm&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* Build from Spec file&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Build with multiple repository&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* Specify cache dir&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
=== Unpack &amp;amp; make change ===&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
=== Build the package ===&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
You may have such issue when using 'build' to create a armv7l rpm package, please see detailed solution for the distro&lt;br /&gt;
* Fedora13&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm', and its output should show &amp;quot;statically linked&amp;quot;, if not, you can re-install the qemu package(the package maybe changes, you can go the web address to get it, then install it).&lt;br /&gt;
 $file /usr/bin/qemu-arm&lt;br /&gt;
 $sudo rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm  &lt;br /&gt;
* ubuntu10.04&lt;br /&gt;
Please install 'qemu-arm-static'&lt;br /&gt;
 $sudo apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
* Debian&lt;br /&gt;
Please install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
'Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory'&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm, modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf, change armv7el to armv7l in these files, maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed in Ubuntu 10.04 ===&lt;br /&gt;
If you meet below error, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Steps to fix:&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T13:32:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Development your package using build */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using 'build' ==&lt;br /&gt;
=== Install 'build' ===&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
&lt;br /&gt;
=== Setup ===	&lt;br /&gt;
After you install it, you can run “build –help” to get help info. You need to run 'build' as root. &lt;br /&gt;
&lt;br /&gt;
* Proxy&lt;br /&gt;
If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Conf file&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* GPG Key&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build a package ===	&lt;br /&gt;
&lt;br /&gt;
* Build from src rpm&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* Build from Spec file&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Build with multiple repository&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* Specify cache dir&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
=== Unpack &amp;amp; make change ===&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
=== Build the package ===&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
Meet this problem :&lt;br /&gt;
on fedora13 when  using 'build' to create a armv7l rpm package.&lt;br /&gt;
one of reasons: maybe 'qemu-arm' is not right set.&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm' ,and if its output show 'dynamically linked',and the problem maye is here,and it should be  'statically linked'.you can use commands 'rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm' (the package maybe changes,so you can go the web address to get it ,then install it  )to reinstall this part, and maybe you will meet some problem because of its dependencies ,and  you can uninstall all of them first.&lt;br /&gt;
  &lt;br /&gt;
on ubuntu10.04,you should install 'qemu-arm-static',use command:apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
On Debian, you should install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
'Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory'&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm,modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf ,change armv7el to armv7l in these files,maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed in Ubuntu 10.04 ===&lt;br /&gt;
If you meet below error, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T13:28:46Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Building your package using build */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using 'build' ==&lt;br /&gt;
=== Install 'build' ===&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
&lt;br /&gt;
=== Setup ===	&lt;br /&gt;
After you install it, you can run “build –help” to get help info. You need to run 'build' as root. &lt;br /&gt;
&lt;br /&gt;
* Proxy&lt;br /&gt;
If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Conf file&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* GPG Key&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build a package ===	&lt;br /&gt;
&lt;br /&gt;
* Build from src rpm&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* Build from Spec file&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Build with multiple repository&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
* Specify cache dir&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
Meet this problem :&lt;br /&gt;
on fedora13 when  using 'build' to create a armv7l rpm package.&lt;br /&gt;
one of reasons: maybe 'qemu-arm' is not right set.&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm' ,and if its output show 'dynamically linked',and the problem maye is here,and it should be  'statically linked'.you can use commands 'rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm' (the package maybe changes,so you can go the web address to get it ,then install it  )to reinstall this part, and maybe you will meet some problem because of its dependencies ,and  you can uninstall all of them first.&lt;br /&gt;
  &lt;br /&gt;
on ubuntu10.04,you should install 'qemu-arm-static',use command:apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
On Debian, you should install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
'Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory'&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm,modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf ,change armv7el to armv7l in these files,maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed in Ubuntu 10.04 ===&lt;br /&gt;
If you meet below error, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-05T10:19:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Development without MeeGo OBS account */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using RPM package end. The RPM packages are managed in ZYpper repos. The MeeGo development is done by using the upstream project [http://wiki.opensuse.org/Portal:Build_Service openSUSE Build Service (OBS)]. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Sumbmit your changes.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
* MeeGo is using RPM as package end and ZYpper for repo &lt;br /&gt;
** [[List of MeeGo releases and repos]]&lt;br /&gt;
* MeeGo is using Open Build System (OBS) for building: [[OBS basic]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations &amp;amp; KS files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-05T01:31:51Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using RPM package end. The RPM packages are managed in ZYpper repos. The MeeGo development is done by using the upstream project [http://wiki.opensuse.org/Portal:Build_Service openSUSE Build Service (OBS)]. If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Sumbmit your changes.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
* MeeGo is using RPM as package end and ZYpper for repo &lt;br /&gt;
** [[List of MeeGo releases and repos]]&lt;br /&gt;
* MeeGo is using Open Build System (OBS) for building: [[OBS basic]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations &amp;amp; KS files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-05T01:29:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Packaging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using RPM package end. The RPM packages are managed in ZYpper repos. The MeeGo development is done by using [[Open Build System]] (OBS). If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Sumbmit your changes.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
* MeeGo is using RPM as package end and ZYpper for repo &lt;br /&gt;
** [[List of MeeGo releases and repos]]&lt;br /&gt;
* MeeGo is using Open Build System (OBS) for building: [[OBS basic]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[How to development with multiple packages with dependencies]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations &amp;amp; KS files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-04T09:34:52Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes basic information you needed if you want to contribute to MeeGo. Target audience is community member who wish to involve in MeeGo development.&lt;br /&gt;
&lt;br /&gt;
== Package Management and Development ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Like other Linux distros, MeeGo is a package-based system, and it is using RPM package end. The RPM packages are managed in ZYpper repos. The MeeGo development is done by using [[Open Build System]] (OBS). If you are a serious and frequent MeeGo contributor, you need an OBS account to commit your changes back to MeeGo. Other casual contributors can work without using OBS, but you need a MeeGo development team member to help review and commit your changes into MeeGo.&lt;br /&gt;
&lt;br /&gt;
The process of develop with an OBS account:&lt;br /&gt;
Branch, Check-out, Make changes, Deployment the new package and test, Make a new image (optional), Sumbmit your changes.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
The process of develop without using OBS:&lt;br /&gt;
Download MeeGo from a repo, build a chroot env, get the source of a package, make changes, build and test the new package, how to debug the local build, find a MeeGo team member to sponsor your changes and submit them back.&lt;br /&gt;
&lt;br /&gt;
TODO: Tutorial?&lt;br /&gt;
&lt;br /&gt;
* MeeGo is using RPM as package end and ZYpper for repo &lt;br /&gt;
** [[List of MeeGo releases and repos]]&lt;br /&gt;
* MeeGo is using Open Build System (OBS) for building: [[OBS basic]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Link packages and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
* [[SDK/Docs/1.0/Packaging/Tutorial|Application Packaging Tutorial]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Release_Engineering/New_Package_Checklist|Checklist for new package submissions]]&lt;br /&gt;
* [[Release_Engineering/Submission_Checklist|Developer's checklist for code submissions]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations &amp;amp; KS files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Software Repo ==&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-04T06:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Development with MeeGo OBS account */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development ==&lt;br /&gt;
=== Basic ===&lt;br /&gt;
* [[rpm and repos]]&lt;br /&gt;
* [[OBS basic]]&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_1|Login and first steps]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/WebUI_part_2|Creating a link and adding a repository]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
* [[SDK/Docs/1.0/Packaging/Tutorial|Application Packaging Tutorial]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Create new package in OBS]]&lt;br /&gt;
* [[Remove package from OBS]]&lt;br /&gt;
* [[Commit changes to OBS]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations &amp;amp; KS files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-04T06:01:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* OBS &amp;amp; Repos &amp;amp; Package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development ==&lt;br /&gt;
=== Basic ===&lt;br /&gt;
* [[rpm and repos]]&lt;br /&gt;
* [[OBS basic]]&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_webinterface|How to use the web interface to view, manage and build your packages.]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
* [[SDK/Docs/1.0/Packaging/Tutorial|Application Packaging Tutorial]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Create new package in OBS]]&lt;br /&gt;
* [[Remove package from OBS]]&lt;br /&gt;
* [[Commit changes to OBS]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations &amp;amp; KS files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Distribution</id>
		<title>Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Distribution"/>
				<updated>2011-07-04T05:44:36Z</updated>
		
		<summary type="html">&lt;p&gt;Kevinwang: /* Packaging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development ==&lt;br /&gt;
=== OBS &amp;amp; Repos &amp;amp; Package===&lt;br /&gt;
* [[OBS basic]]&lt;br /&gt;
* [[repos and released images]]&lt;br /&gt;
* [[Create and update repos]]&lt;br /&gt;
* [[Distribution/Package_Management|Package Management]]&lt;br /&gt;
&lt;br /&gt;
=== Development with MeeGo OBS account === &lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_webinterface|How to use the web interface to view, manage and build your packages.]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_use_the_commandline_client|How to use the command line client for daily operations]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers/Using_OBS_chroot_for_development|Using OBS chroot for development]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
=== Development without MeeGo OBS account ===&lt;br /&gt;
* [[Local_Build_Without_OBS_Needed|Build and develop packages without OBS ]]&lt;br /&gt;
* [[Recompile_kernel | Example: Recompile kernel]]&lt;br /&gt;
* [[Distribution/Create_image_based_on_new_RPM|Create image based on new RPM]]&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
* [[Packaging/Guidelines|Packaging Guidelines]]&lt;br /&gt;
* [[SDK/Docs/1.0/Packaging/Tutorial|Application Packaging Tutorial]]&lt;br /&gt;
&lt;br /&gt;
=== Process ===&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#How_to_get_started|Request a new OBS account]]&lt;br /&gt;
* [[Create new package in OBS]]&lt;br /&gt;
* [[Remove package from OBS]]&lt;br /&gt;
* [[Commit changes to OBS]]&lt;br /&gt;
* [[Build_Infrastructure/Packagers_Developers#IRC_.2F_mailinglists_.2F_contact|irc / mailing lists / contact]]&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
=== Image Creation ===&lt;br /&gt;
* [[Image_Creation|MIC2]]&lt;br /&gt;
* [[Image_Creation_For_Beginners|MIC2 for Beginners]]&lt;br /&gt;
* [[Image Configurations &amp;amp; KS files]]&lt;br /&gt;
&lt;br /&gt;
=== OBS command line ===&lt;br /&gt;
* Part 1 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_1|initial setup]]&lt;br /&gt;
* Part 2 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_2|checkout &amp;amp; branch]]&lt;br /&gt;
* Part 3 - [[Build_Infrastructure/Packagers_Developers/CLI_Part_4|more commands: localcheckbuild]]&lt;br /&gt;
&lt;br /&gt;
=== Spec tool ===&lt;br /&gt;
* [[Spectacle|Spectacle]]&lt;br /&gt;
&lt;br /&gt;
== Distribution Infrastructure ==&lt;br /&gt;
* [[Build_Infrastructure|Build Infrastructure - OBS]]&lt;br /&gt;
* [[Release Infrastructure - BOSS]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [[Quality/Compliance|Compliance]]&lt;br /&gt;
* [[Quality|Quality]]&lt;/div&gt;</summary>
		<author><name>Kevinwang</name></author>	</entry>

	</feed>